File: iset.mm

package info (click to toggle)
metamath-databases 0.0.0~20210101.git55fe226-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 48,584 kB
  • sloc: makefile: 7; sh: 6
file content (93135 lines) | stat: -rw-r--r-- 4,490,687 bytes parent folder | download
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
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
13469
13470
13471
13472
13473
13474
13475
13476
13477
13478
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
14218
14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
14232
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255
14256
14257
14258
14259
14260
14261
14262
14263
14264
14265
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305
14306
14307
14308
14309
14310
14311
14312
14313
14314
14315
14316
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339
14340
14341
14342
14343
14344
14345
14346
14347
14348
14349
14350
14351
14352
14353
14354
14355
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380
14381
14382
14383
14384
14385
14386
14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422
14423
14424
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511
14512
14513
14514
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844
14845
14846
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895
14896
14897
14898
14899
14900
14901
14902
14903
14904
14905
14906
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918
14919
14920
14921
14922
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
15001
15002
15003
15004
15005
15006
15007
15008
15009
15010
15011
15012
15013
15014
15015
15016
15017
15018
15019
15020
15021
15022
15023
15024
15025
15026
15027
15028
15029
15030
15031
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050
15051
15052
15053
15054
15055
15056
15057
15058
15059
15060
15061
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085
15086
15087
15088
15089
15090
15091
15092
15093
15094
15095
15096
15097
15098
15099
15100
15101
15102
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134
15135
15136
15137
15138
15139
15140
15141
15142
15143
15144
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184
15185
15186
15187
15188
15189
15190
15191
15192
15193
15194
15195
15196
15197
15198
15199
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209
15210
15211
15212
15213
15214
15215
15216
15217
15218
15219
15220
15221
15222
15223
15224
15225
15226
15227
15228
15229
15230
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240
15241
15242
15243
15244
15245
15246
15247
15248
15249
15250
15251
15252
15253
15254
15255
15256
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267
15268
15269
15270
15271
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
15285
15286
15287
15288
15289
15290
15291
15292
15293
15294
15295
15296
15297
15298
15299
15300
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317
15318
15319
15320
15321
15322
15323
15324
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337
15338
15339
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15354
15355
15356
15357
15358
15359
15360
15361
15362
15363
15364
15365
15366
15367
15368
15369
15370
15371
15372
15373
15374
15375
15376
15377
15378
15379
15380
15381
15382
15383
15384
15385
15386
15387
15388
15389
15390
15391
15392
15393
15394
15395
15396
15397
15398
15399
15400
15401
15402
15403
15404
15405
15406
15407
15408
15409
15410
15411
15412
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438
15439
15440
15441
15442
15443
15444
15445
15446
15447
15448
15449
15450
15451
15452
15453
15454
15455
15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792
15793
15794
15795
15796
15797
15798
15799
15800
15801
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
15849
15850
15851
15852
15853
15854
15855
15856
15857
15858
15859
15860
15861
15862
15863
15864
15865
15866
15867
15868
15869
15870
15871
15872
15873
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
15887
15888
15889
15890
15891
15892
15893
15894
15895
15896
15897
15898
15899
15900
15901
15902
15903
15904
15905
15906
15907
15908
15909
15910
15911
15912
15913
15914
15915
15916
15917
15918
15919
15920
15921
15922
15923
15924
15925
15926
15927
15928
15929
15930
15931
15932
15933
15934
15935
15936
15937
15938
15939
15940
15941
15942
15943
15944
15945
15946
15947
15948
15949
15950
15951
15952
15953
15954
15955
15956
15957
15958
15959
15960
15961
15962
15963
15964
15965
15966
15967
15968
15969
15970
15971
15972
15973
15974
15975
15976
15977
15978
15979
15980
15981
15982
15983
15984
15985
15986
15987
15988
15989
15990
15991
15992
15993
15994
15995
15996
15997
15998
15999
16000
16001
16002
16003
16004
16005
16006
16007
16008
16009
16010
16011
16012
16013
16014
16015
16016
16017
16018
16019
16020
16021
16022
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033
16034
16035
16036
16037
16038
16039
16040
16041
16042
16043
16044
16045
16046
16047
16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
16104
16105
16106
16107
16108
16109
16110
16111
16112
16113
16114
16115
16116
16117
16118
16119
16120
16121
16122
16123
16124
16125
16126
16127
16128
16129
16130
16131
16132
16133
16134
16135
16136
16137
16138
16139
16140
16141
16142
16143
16144
16145
16146
16147
16148
16149
16150
16151
16152
16153
16154
16155
16156
16157
16158
16159
16160
16161
16162
16163
16164
16165
16166
16167
16168
16169
16170
16171
16172
16173
16174
16175
16176
16177
16178
16179
16180
16181
16182
16183
16184
16185
16186
16187
16188
16189
16190
16191
16192
16193
16194
16195
16196
16197
16198
16199
16200
16201
16202
16203
16204
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220
16221
16222
16223
16224
16225
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
16249
16250
16251
16252
16253
16254
16255
16256
16257
16258
16259
16260
16261
16262
16263
16264
16265
16266
16267
16268
16269
16270
16271
16272
16273
16274
16275
16276
16277
16278
16279
16280
16281
16282
16283
16284
16285
16286
16287
16288
16289
16290
16291
16292
16293
16294
16295
16296
16297
16298
16299
16300
16301
16302
16303
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317
16318
16319
16320
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366
16367
16368
16369
16370
16371
16372
16373
16374
16375
16376
16377
16378
16379
16380
16381
16382
16383
16384
16385
16386
16387
16388
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398
16399
16400
16401
16402
16403
16404
16405
16406
16407
16408
16409
16410
16411
16412
16413
16414
16415
16416
16417
16418
16419
16420
16421
16422
16423
16424
16425
16426
16427
16428
16429
16430
16431
16432
16433
16434
16435
16436
16437
16438
16439
16440
16441
16442
16443
16444
16445
16446
16447
16448
16449
16450
16451
16452
16453
16454
16455
16456
16457
16458
16459
16460
16461
16462
16463
16464
16465
16466
16467
16468
16469
16470
16471
16472
16473
16474
16475
16476
16477
16478
16479
16480
16481
16482
16483
16484
16485
16486
16487
16488
16489
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531
16532
16533
16534
16535
16536
16537
16538
16539
16540
16541
16542
16543
16544
16545
16546
16547
16548
16549
16550
16551
16552
16553
16554
16555
16556
16557
16558
16559
16560
16561
16562
16563
16564
16565
16566
16567
16568
16569
16570
16571
16572
16573
16574
16575
16576
16577
16578
16579
16580
16581
16582
16583
16584
16585
16586
16587
16588
16589
16590
16591
16592
16593
16594
16595
16596
16597
16598
16599
16600
16601
16602
16603
16604
16605
16606
16607
16608
16609
16610
16611
16612
16613
16614
16615
16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
16644
16645
16646
16647
16648
16649
16650
16651
16652
16653
16654
16655
16656
16657
16658
16659
16660
16661
16662
16663
16664
16665
16666
16667
16668
16669
16670
16671
16672
16673
16674
16675
16676
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
16692
16693
16694
16695
16696
16697
16698
16699
16700
16701
16702
16703
16704
16705
16706
16707
16708
16709
16710
16711
16712
16713
16714
16715
16716
16717
16718
16719
16720
16721
16722
16723
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
16739
16740
16741
16742
16743
16744
16745
16746
16747
16748
16749
16750
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
16773
16774
16775
16776
16777
16778
16779
16780
16781
16782
16783
16784
16785
16786
16787
16788
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
16804
16805
16806
16807
16808
16809
16810
16811
16812
16813
16814
16815
16816
16817
16818
16819
16820
16821
16822
16823
16824
16825
16826
16827
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908
16909
16910
16911
16912
16913
16914
16915
16916
16917
16918
16919
16920
16921
16922
16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
16955
16956
16957
16958
16959
16960
16961
16962
16963
16964
16965
16966
16967
16968
16969
16970
16971
16972
16973
16974
16975
16976
16977
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
16997
16998
16999
17000
17001
17002
17003
17004
17005
17006
17007
17008
17009
17010
17011
17012
17013
17014
17015
17016
17017
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
17042
17043
17044
17045
17046
17047
17048
17049
17050
17051
17052
17053
17054
17055
17056
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
17099
17100
17101
17102
17103
17104
17105
17106
17107
17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
17171
17172
17173
17174
17175
17176
17177
17178
17179
17180
17181
17182
17183
17184
17185
17186
17187
17188
17189
17190
17191
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
17219
17220
17221
17222
17223
17224
17225
17226
17227
17228
17229
17230
17231
17232
17233
17234
17235
17236
17237
17238
17239
17240
17241
17242
17243
17244
17245
17246
17247
17248
17249
17250
17251
17252
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
17268
17269
17270
17271
17272
17273
17274
17275
17276
17277
17278
17279
17280
17281
17282
17283
17284
17285
17286
17287
17288
17289
17290
17291
17292
17293
17294
17295
17296
17297
17298
17299
17300
17301
17302
17303
17304
17305
17306
17307
17308
17309
17310
17311
17312
17313
17314
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354
17355
17356
17357
17358
17359
17360
17361
17362
17363
17364
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400
17401
17402
17403
17404
17405
17406
17407
17408
17409
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432
17433
17434
17435
17436
17437
17438
17439
17440
17441
17442
17443
17444
17445
17446
17447
17448
17449
17450
17451
17452
17453
17454
17455
17456
17457
17458
17459
17460
17461
17462
17463
17464
17465
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
17476
17477
17478
17479
17480
17481
17482
17483
17484
17485
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495
17496
17497
17498
17499
17500
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510
17511
17512
17513
17514
17515
17516
17517
17518
17519
17520
17521
17522
17523
17524
17525
17526
17527
17528
17529
17530
17531
17532
17533
17534
17535
17536
17537
17538
17539
17540
17541
17542
17543
17544
17545
17546
17547
17548
17549
17550
17551
17552
17553
17554
17555
17556
17557
17558
17559
17560
17561
17562
17563
17564
17565
17566
17567
17568
17569
17570
17571
17572
17573
17574
17575
17576
17577
17578
17579
17580
17581
17582
17583
17584
17585
17586
17587
17588
17589
17590
17591
17592
17593
17594
17595
17596
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607
17608
17609
17610
17611
17612
17613
17614
17615
17616
17617
17618
17619
17620
17621
17622
17623
17624
17625
17626
17627
17628
17629
17630
17631
17632
17633
17634
17635
17636
17637
17638
17639
17640
17641
17642
17643
17644
17645
17646
17647
17648
17649
17650
17651
17652
17653
17654
17655
17656
17657
17658
17659
17660
17661
17662
17663
17664
17665
17666
17667
17668
17669
17670
17671
17672
17673
17674
17675
17676
17677
17678
17679
17680
17681
17682
17683
17684
17685
17686
17687
17688
17689
17690
17691
17692
17693
17694
17695
17696
17697
17698
17699
17700
17701
17702
17703
17704
17705
17706
17707
17708
17709
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726
17727
17728
17729
17730
17731
17732
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746
17747
17748
17749
17750
17751
17752
17753
17754
17755
17756
17757
17758
17759
17760
17761
17762
17763
17764
17765
17766
17767
17768
17769
17770
17771
17772
17773
17774
17775
17776
17777
17778
17779
17780
17781
17782
17783
17784
17785
17786
17787
17788
17789
17790
17791
17792
17793
17794
17795
17796
17797
17798
17799
17800
17801
17802
17803
17804
17805
17806
17807
17808
17809
17810
17811
17812
17813
17814
17815
17816
17817
17818
17819
17820
17821
17822
17823
17824
17825
17826
17827
17828
17829
17830
17831
17832
17833
17834
17835
17836
17837
17838
17839
17840
17841
17842
17843
17844
17845
17846
17847
17848
17849
17850
17851
17852
17853
17854
17855
17856
17857
17858
17859
17860
17861
17862
17863
17864
17865
17866
17867
17868
17869
17870
17871
17872
17873
17874
17875
17876
17877
17878
17879
17880
17881
17882
17883
17884
17885
17886
17887
17888
17889
17890
17891
17892
17893
17894
17895
17896
17897
17898
17899
17900
17901
17902
17903
17904
17905
17906
17907
17908
17909
17910
17911
17912
17913
17914
17915
17916
17917
17918
17919
17920
17921
17922
17923
17924
17925
17926
17927
17928
17929
17930
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
17956
17957
17958
17959
17960
17961
17962
17963
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
17976
17977
17978
17979
17980
17981
17982
17983
17984
17985
17986
17987
17988
17989
17990
17991
17992
17993
17994
17995
17996
17997
17998
17999
18000
18001
18002
18003
18004
18005
18006
18007
18008
18009
18010
18011
18012
18013
18014
18015
18016
18017
18018
18019
18020
18021
18022
18023
18024
18025
18026
18027
18028
18029
18030
18031
18032
18033
18034
18035
18036
18037
18038
18039
18040
18041
18042
18043
18044
18045
18046
18047
18048
18049
18050
18051
18052
18053
18054
18055
18056
18057
18058
18059
18060
18061
18062
18063
18064
18065
18066
18067
18068
18069
18070
18071
18072
18073
18074
18075
18076
18077
18078
18079
18080
18081
18082
18083
18084
18085
18086
18087
18088
18089
18090
18091
18092
18093
18094
18095
18096
18097
18098
18099
18100
18101
18102
18103
18104
18105
18106
18107
18108
18109
18110
18111
18112
18113
18114
18115
18116
18117
18118
18119
18120
18121
18122
18123
18124
18125
18126
18127
18128
18129
18130
18131
18132
18133
18134
18135
18136
18137
18138
18139
18140
18141
18142
18143
18144
18145
18146
18147
18148
18149
18150
18151
18152
18153
18154
18155
18156
18157
18158
18159
18160
18161
18162
18163
18164
18165
18166
18167
18168
18169
18170
18171
18172
18173
18174
18175
18176
18177
18178
18179
18180
18181
18182
18183
18184
18185
18186
18187
18188
18189
18190
18191
18192
18193
18194
18195
18196
18197
18198
18199
18200
18201
18202
18203
18204
18205
18206
18207
18208
18209
18210
18211
18212
18213
18214
18215
18216
18217
18218
18219
18220
18221
18222
18223
18224
18225
18226
18227
18228
18229
18230
18231
18232
18233
18234
18235
18236
18237
18238
18239
18240
18241
18242
18243
18244
18245
18246
18247
18248
18249
18250
18251
18252
18253
18254
18255
18256
18257
18258
18259
18260
18261
18262
18263
18264
18265
18266
18267
18268
18269
18270
18271
18272
18273
18274
18275
18276
18277
18278
18279
18280
18281
18282
18283
18284
18285
18286
18287
18288
18289
18290
18291
18292
18293
18294
18295
18296
18297
18298
18299
18300
18301
18302
18303
18304
18305
18306
18307
18308
18309
18310
18311
18312
18313
18314
18315
18316
18317
18318
18319
18320
18321
18322
18323
18324
18325
18326
18327
18328
18329
18330
18331
18332
18333
18334
18335
18336
18337
18338
18339
18340
18341
18342
18343
18344
18345
18346
18347
18348
18349
18350
18351
18352
18353
18354
18355
18356
18357
18358
18359
18360
18361
18362
18363
18364
18365
18366
18367
18368
18369
18370
18371
18372
18373
18374
18375
18376
18377
18378
18379
18380
18381
18382
18383
18384
18385
18386
18387
18388
18389
18390
18391
18392
18393
18394
18395
18396
18397
18398
18399
18400
18401
18402
18403
18404
18405
18406
18407
18408
18409
18410
18411
18412
18413
18414
18415
18416
18417
18418
18419
18420
18421
18422
18423
18424
18425
18426
18427
18428
18429
18430
18431
18432
18433
18434
18435
18436
18437
18438
18439
18440
18441
18442
18443
18444
18445
18446
18447
18448
18449
18450
18451
18452
18453
18454
18455
18456
18457
18458
18459
18460
18461
18462
18463
18464
18465
18466
18467
18468
18469
18470
18471
18472
18473
18474
18475
18476
18477
18478
18479
18480
18481
18482
18483
18484
18485
18486
18487
18488
18489
18490
18491
18492
18493
18494
18495
18496
18497
18498
18499
18500
18501
18502
18503
18504
18505
18506
18507
18508
18509
18510
18511
18512
18513
18514
18515
18516
18517
18518
18519
18520
18521
18522
18523
18524
18525
18526
18527
18528
18529
18530
18531
18532
18533
18534
18535
18536
18537
18538
18539
18540
18541
18542
18543
18544
18545
18546
18547
18548
18549
18550
18551
18552
18553
18554
18555
18556
18557
18558
18559
18560
18561
18562
18563
18564
18565
18566
18567
18568
18569
18570
18571
18572
18573
18574
18575
18576
18577
18578
18579
18580
18581
18582
18583
18584
18585
18586
18587
18588
18589
18590
18591
18592
18593
18594
18595
18596
18597
18598
18599
18600
18601
18602
18603
18604
18605
18606
18607
18608
18609
18610
18611
18612
18613
18614
18615
18616
18617
18618
18619
18620
18621
18622
18623
18624
18625
18626
18627
18628
18629
18630
18631
18632
18633
18634
18635
18636
18637
18638
18639
18640
18641
18642
18643
18644
18645
18646
18647
18648
18649
18650
18651
18652
18653
18654
18655
18656
18657
18658
18659
18660
18661
18662
18663
18664
18665
18666
18667
18668
18669
18670
18671
18672
18673
18674
18675
18676
18677
18678
18679
18680
18681
18682
18683
18684
18685
18686
18687
18688
18689
18690
18691
18692
18693
18694
18695
18696
18697
18698
18699
18700
18701
18702
18703
18704
18705
18706
18707
18708
18709
18710
18711
18712
18713
18714
18715
18716
18717
18718
18719
18720
18721
18722
18723
18724
18725
18726
18727
18728
18729
18730
18731
18732
18733
18734
18735
18736
18737
18738
18739
18740
18741
18742
18743
18744
18745
18746
18747
18748
18749
18750
18751
18752
18753
18754
18755
18756
18757
18758
18759
18760
18761
18762
18763
18764
18765
18766
18767
18768
18769
18770
18771
18772
18773
18774
18775
18776
18777
18778
18779
18780
18781
18782
18783
18784
18785
18786
18787
18788
18789
18790
18791
18792
18793
18794
18795
18796
18797
18798
18799
18800
18801
18802
18803
18804
18805
18806
18807
18808
18809
18810
18811
18812
18813
18814
18815
18816
18817
18818
18819
18820
18821
18822
18823
18824
18825
18826
18827
18828
18829
18830
18831
18832
18833
18834
18835
18836
18837
18838
18839
18840
18841
18842
18843
18844
18845
18846
18847
18848
18849
18850
18851
18852
18853
18854
18855
18856
18857
18858
18859
18860
18861
18862
18863
18864
18865
18866
18867
18868
18869
18870
18871
18872
18873
18874
18875
18876
18877
18878
18879
18880
18881
18882
18883
18884
18885
18886
18887
18888
18889
18890
18891
18892
18893
18894
18895
18896
18897
18898
18899
18900
18901
18902
18903
18904
18905
18906
18907
18908
18909
18910
18911
18912
18913
18914
18915
18916
18917
18918
18919
18920
18921
18922
18923
18924
18925
18926
18927
18928
18929
18930
18931
18932
18933
18934
18935
18936
18937
18938
18939
18940
18941
18942
18943
18944
18945
18946
18947
18948
18949
18950
18951
18952
18953
18954
18955
18956
18957
18958
18959
18960
18961
18962
18963
18964
18965
18966
18967
18968
18969
18970
18971
18972
18973
18974
18975
18976
18977
18978
18979
18980
18981
18982
18983
18984
18985
18986
18987
18988
18989
18990
18991
18992
18993
18994
18995
18996
18997
18998
18999
19000
19001
19002
19003
19004
19005
19006
19007
19008
19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024
19025
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
19036
19037
19038
19039
19040
19041
19042
19043
19044
19045
19046
19047
19048
19049
19050
19051
19052
19053
19054
19055
19056
19057
19058
19059
19060
19061
19062
19063
19064
19065
19066
19067
19068
19069
19070
19071
19072
19073
19074
19075
19076
19077
19078
19079
19080
19081
19082
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
19100
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114
19115
19116
19117
19118
19119
19120
19121
19122
19123
19124
19125
19126
19127
19128
19129
19130
19131
19132
19133
19134
19135
19136
19137
19138
19139
19140
19141
19142
19143
19144
19145
19146
19147
19148
19149
19150
19151
19152
19153
19154
19155
19156
19157
19158
19159
19160
19161
19162
19163
19164
19165
19166
19167
19168
19169
19170
19171
19172
19173
19174
19175
19176
19177
19178
19179
19180
19181
19182
19183
19184
19185
19186
19187
19188
19189
19190
19191
19192
19193
19194
19195
19196
19197
19198
19199
19200
19201
19202
19203
19204
19205
19206
19207
19208
19209
19210
19211
19212
19213
19214
19215
19216
19217
19218
19219
19220
19221
19222
19223
19224
19225
19226
19227
19228
19229
19230
19231
19232
19233
19234
19235
19236
19237
19238
19239
19240
19241
19242
19243
19244
19245
19246
19247
19248
19249
19250
19251
19252
19253
19254
19255
19256
19257
19258
19259
19260
19261
19262
19263
19264
19265
19266
19267
19268
19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280
19281
19282
19283
19284
19285
19286
19287
19288
19289
19290
19291
19292
19293
19294
19295
19296
19297
19298
19299
19300
19301
19302
19303
19304
19305
19306
19307
19308
19309
19310
19311
19312
19313
19314
19315
19316
19317
19318
19319
19320
19321
19322
19323
19324
19325
19326
19327
19328
19329
19330
19331
19332
19333
19334
19335
19336
19337
19338
19339
19340
19341
19342
19343
19344
19345
19346
19347
19348
19349
19350
19351
19352
19353
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372
19373
19374
19375
19376
19377
19378
19379
19380
19381
19382
19383
19384
19385
19386
19387
19388
19389
19390
19391
19392
19393
19394
19395
19396
19397
19398
19399
19400
19401
19402
19403
19404
19405
19406
19407
19408
19409
19410
19411
19412
19413
19414
19415
19416
19417
19418
19419
19420
19421
19422
19423
19424
19425
19426
19427
19428
19429
19430
19431
19432
19433
19434
19435
19436
19437
19438
19439
19440
19441
19442
19443
19444
19445
19446
19447
19448
19449
19450
19451
19452
19453
19454
19455
19456
19457
19458
19459
19460
19461
19462
19463
19464
19465
19466
19467
19468
19469
19470
19471
19472
19473
19474
19475
19476
19477
19478
19479
19480
19481
19482
19483
19484
19485
19486
19487
19488
19489
19490
19491
19492
19493
19494
19495
19496
19497
19498
19499
19500
19501
19502
19503
19504
19505
19506
19507
19508
19509
19510
19511
19512
19513
19514
19515
19516
19517
19518
19519
19520
19521
19522
19523
19524
19525
19526
19527
19528
19529
19530
19531
19532
19533
19534
19535
19536
19537
19538
19539
19540
19541
19542
19543
19544
19545
19546
19547
19548
19549
19550
19551
19552
19553
19554
19555
19556
19557
19558
19559
19560
19561
19562
19563
19564
19565
19566
19567
19568
19569
19570
19571
19572
19573
19574
19575
19576
19577
19578
19579
19580
19581
19582
19583
19584
19585
19586
19587
19588
19589
19590
19591
19592
19593
19594
19595
19596
19597
19598
19599
19600
19601
19602
19603
19604
19605
19606
19607
19608
19609
19610
19611
19612
19613
19614
19615
19616
19617
19618
19619
19620
19621
19622
19623
19624
19625
19626
19627
19628
19629
19630
19631
19632
19633
19634
19635
19636
19637
19638
19639
19640
19641
19642
19643
19644
19645
19646
19647
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
19668
19669
19670
19671
19672
19673
19674
19675
19676
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
19691
19692
19693
19694
19695
19696
19697
19698
19699
19700
19701
19702
19703
19704
19705
19706
19707
19708
19709
19710
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
19723
19724
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744
19745
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
19761
19762
19763
19764
19765
19766
19767
19768
19769
19770
19771
19772
19773
19774
19775
19776
19777
19778
19779
19780
19781
19782
19783
19784
19785
19786
19787
19788
19789
19790
19791
19792
19793
19794
19795
19796
19797
19798
19799
19800
19801
19802
19803
19804
19805
19806
19807
19808
19809
19810
19811
19812
19813
19814
19815
19816
19817
19818
19819
19820
19821
19822
19823
19824
19825
19826
19827
19828
19829
19830
19831
19832
19833
19834
19835
19836
19837
19838
19839
19840
19841
19842
19843
19844
19845
19846
19847
19848
19849
19850
19851
19852
19853
19854
19855
19856
19857
19858
19859
19860
19861
19862
19863
19864
19865
19866
19867
19868
19869
19870
19871
19872
19873
19874
19875
19876
19877
19878
19879
19880
19881
19882
19883
19884
19885
19886
19887
19888
19889
19890
19891
19892
19893
19894
19895
19896
19897
19898
19899
19900
19901
19902
19903
19904
19905
19906
19907
19908
19909
19910
19911
19912
19913
19914
19915
19916
19917
19918
19919
19920
19921
19922
19923
19924
19925
19926
19927
19928
19929
19930
19931
19932
19933
19934
19935
19936
19937
19938
19939
19940
19941
19942
19943
19944
19945
19946
19947
19948
19949
19950
19951
19952
19953
19954
19955
19956
19957
19958
19959
19960
19961
19962
19963
19964
19965
19966
19967
19968
19969
19970
19971
19972
19973
19974
19975
19976
19977
19978
19979
19980
19981
19982
19983
19984
19985
19986
19987
19988
19989
19990
19991
19992
19993
19994
19995
19996
19997
19998
19999
20000
20001
20002
20003
20004
20005
20006
20007
20008
20009
20010
20011
20012
20013
20014
20015
20016
20017
20018
20019
20020
20021
20022
20023
20024
20025
20026
20027
20028
20029
20030
20031
20032
20033
20034
20035
20036
20037
20038
20039
20040
20041
20042
20043
20044
20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
20059
20060
20061
20062
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
20108
20109
20110
20111
20112
20113
20114
20115
20116
20117
20118
20119
20120
20121
20122
20123
20124
20125
20126
20127
20128
20129
20130
20131
20132
20133
20134
20135
20136
20137
20138
20139
20140
20141
20142
20143
20144
20145
20146
20147
20148
20149
20150
20151
20152
20153
20154
20155
20156
20157
20158
20159
20160
20161
20162
20163
20164
20165
20166
20167
20168
20169
20170
20171
20172
20173
20174
20175
20176
20177
20178
20179
20180
20181
20182
20183
20184
20185
20186
20187
20188
20189
20190
20191
20192
20193
20194
20195
20196
20197
20198
20199
20200
20201
20202
20203
20204
20205
20206
20207
20208
20209
20210
20211
20212
20213
20214
20215
20216
20217
20218
20219
20220
20221
20222
20223
20224
20225
20226
20227
20228
20229
20230
20231
20232
20233
20234
20235
20236
20237
20238
20239
20240
20241
20242
20243
20244
20245
20246
20247
20248
20249
20250
20251
20252
20253
20254
20255
20256
20257
20258
20259
20260
20261
20262
20263
20264
20265
20266
20267
20268
20269
20270
20271
20272
20273
20274
20275
20276
20277
20278
20279
20280
20281
20282
20283
20284
20285
20286
20287
20288
20289
20290
20291
20292
20293
20294
20295
20296
20297
20298
20299
20300
20301
20302
20303
20304
20305
20306
20307
20308
20309
20310
20311
20312
20313
20314
20315
20316
20317
20318
20319
20320
20321
20322
20323
20324
20325
20326
20327
20328
20329
20330
20331
20332
20333
20334
20335
20336
20337
20338
20339
20340
20341
20342
20343
20344
20345
20346
20347
20348
20349
20350
20351
20352
20353
20354
20355
20356
20357
20358
20359
20360
20361
20362
20363
20364
20365
20366
20367
20368
20369
20370
20371
20372
20373
20374
20375
20376
20377
20378
20379
20380
20381
20382
20383
20384
20385
20386
20387
20388
20389
20390
20391
20392
20393
20394
20395
20396
20397
20398
20399
20400
20401
20402
20403
20404
20405
20406
20407
20408
20409
20410
20411
20412
20413
20414
20415
20416
20417
20418
20419
20420
20421
20422
20423
20424
20425
20426
20427
20428
20429
20430
20431
20432
20433
20434
20435
20436
20437
20438
20439
20440
20441
20442
20443
20444
20445
20446
20447
20448
20449
20450
20451
20452
20453
20454
20455
20456
20457
20458
20459
20460
20461
20462
20463
20464
20465
20466
20467
20468
20469
20470
20471
20472
20473
20474
20475
20476
20477
20478
20479
20480
20481
20482
20483
20484
20485
20486
20487
20488
20489
20490
20491
20492
20493
20494
20495
20496
20497
20498
20499
20500
20501
20502
20503
20504
20505
20506
20507
20508
20509
20510
20511
20512
20513
20514
20515
20516
20517
20518
20519
20520
20521
20522
20523
20524
20525
20526
20527
20528
20529
20530
20531
20532
20533
20534
20535
20536
20537
20538
20539
20540
20541
20542
20543
20544
20545
20546
20547
20548
20549
20550
20551
20552
20553
20554
20555
20556
20557
20558
20559
20560
20561
20562
20563
20564
20565
20566
20567
20568
20569
20570
20571
20572
20573
20574
20575
20576
20577
20578
20579
20580
20581
20582
20583
20584
20585
20586
20587
20588
20589
20590
20591
20592
20593
20594
20595
20596
20597
20598
20599
20600
20601
20602
20603
20604
20605
20606
20607
20608
20609
20610
20611
20612
20613
20614
20615
20616
20617
20618
20619
20620
20621
20622
20623
20624
20625
20626
20627
20628
20629
20630
20631
20632
20633
20634
20635
20636
20637
20638
20639
20640
20641
20642
20643
20644
20645
20646
20647
20648
20649
20650
20651
20652
20653
20654
20655
20656
20657
20658
20659
20660
20661
20662
20663
20664
20665
20666
20667
20668
20669
20670
20671
20672
20673
20674
20675
20676
20677
20678
20679
20680
20681
20682
20683
20684
20685
20686
20687
20688
20689
20690
20691
20692
20693
20694
20695
20696
20697
20698
20699
20700
20701
20702
20703
20704
20705
20706
20707
20708
20709
20710
20711
20712
20713
20714
20715
20716
20717
20718
20719
20720
20721
20722
20723
20724
20725
20726
20727
20728
20729
20730
20731
20732
20733
20734
20735
20736
20737
20738
20739
20740
20741
20742
20743
20744
20745
20746
20747
20748
20749
20750
20751
20752
20753
20754
20755
20756
20757
20758
20759
20760
20761
20762
20763
20764
20765
20766
20767
20768
20769
20770
20771
20772
20773
20774
20775
20776
20777
20778
20779
20780
20781
20782
20783
20784
20785
20786
20787
20788
20789
20790
20791
20792
20793
20794
20795
20796
20797
20798
20799
20800
20801
20802
20803
20804
20805
20806
20807
20808
20809
20810
20811
20812
20813
20814
20815
20816
20817
20818
20819
20820
20821
20822
20823
20824
20825
20826
20827
20828
20829
20830
20831
20832
20833
20834
20835
20836
20837
20838
20839
20840
20841
20842
20843
20844
20845
20846
20847
20848
20849
20850
20851
20852
20853
20854
20855
20856
20857
20858
20859
20860
20861
20862
20863
20864
20865
20866
20867
20868
20869
20870
20871
20872
20873
20874
20875
20876
20877
20878
20879
20880
20881
20882
20883
20884
20885
20886
20887
20888
20889
20890
20891
20892
20893
20894
20895
20896
20897
20898
20899
20900
20901
20902
20903
20904
20905
20906
20907
20908
20909
20910
20911
20912
20913
20914
20915
20916
20917
20918
20919
20920
20921
20922
20923
20924
20925
20926
20927
20928
20929
20930
20931
20932
20933
20934
20935
20936
20937
20938
20939
20940
20941
20942
20943
20944
20945
20946
20947
20948
20949
20950
20951
20952
20953
20954
20955
20956
20957
20958
20959
20960
20961
20962
20963
20964
20965
20966
20967
20968
20969
20970
20971
20972
20973
20974
20975
20976
20977
20978
20979
20980
20981
20982
20983
20984
20985
20986
20987
20988
20989
20990
20991
20992
20993
20994
20995
20996
20997
20998
20999
21000
21001
21002
21003
21004
21005
21006
21007
21008
21009
21010
21011
21012
21013
21014
21015
21016
21017
21018
21019
21020
21021
21022
21023
21024
21025
21026
21027
21028
21029
21030
21031
21032
21033
21034
21035
21036
21037
21038
21039
21040
21041
21042
21043
21044
21045
21046
21047
21048
21049
21050
21051
21052
21053
21054
21055
21056
21057
21058
21059
21060
21061
21062
21063
21064
21065
21066
21067
21068
21069
21070
21071
21072
21073
21074
21075
21076
21077
21078
21079
21080
21081
21082
21083
21084
21085
21086
21087
21088
21089
21090
21091
21092
21093
21094
21095
21096
21097
21098
21099
21100
21101
21102
21103
21104
21105
21106
21107
21108
21109
21110
21111
21112
21113
21114
21115
21116
21117
21118
21119
21120
21121
21122
21123
21124
21125
21126
21127
21128
21129
21130
21131
21132
21133
21134
21135
21136
21137
21138
21139
21140
21141
21142
21143
21144
21145
21146
21147
21148
21149
21150
21151
21152
21153
21154
21155
21156
21157
21158
21159
21160
21161
21162
21163
21164
21165
21166
21167
21168
21169
21170
21171
21172
21173
21174
21175
21176
21177
21178
21179
21180
21181
21182
21183
21184
21185
21186
21187
21188
21189
21190
21191
21192
21193
21194
21195
21196
21197
21198
21199
21200
21201
21202
21203
21204
21205
21206
21207
21208
21209
21210
21211
21212
21213
21214
21215
21216
21217
21218
21219
21220
21221
21222
21223
21224
21225
21226
21227
21228
21229
21230
21231
21232
21233
21234
21235
21236
21237
21238
21239
21240
21241
21242
21243
21244
21245
21246
21247
21248
21249
21250
21251
21252
21253
21254
21255
21256
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
21280
21281
21282
21283
21284
21285
21286
21287
21288
21289
21290
21291
21292
21293
21294
21295
21296
21297
21298
21299
21300
21301
21302
21303
21304
21305
21306
21307
21308
21309
21310
21311
21312
21313
21314
21315
21316
21317
21318
21319
21320
21321
21322
21323
21324
21325
21326
21327
21328
21329
21330
21331
21332
21333
21334
21335
21336
21337
21338
21339
21340
21341
21342
21343
21344
21345
21346
21347
21348
21349
21350
21351
21352
21353
21354
21355
21356
21357
21358
21359
21360
21361
21362
21363
21364
21365
21366
21367
21368
21369
21370
21371
21372
21373
21374
21375
21376
21377
21378
21379
21380
21381
21382
21383
21384
21385
21386
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
21400
21401
21402
21403
21404
21405
21406
21407
21408
21409
21410
21411
21412
21413
21414
21415
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
21438
21439
21440
21441
21442
21443
21444
21445
21446
21447
21448
21449
21450
21451
21452
21453
21454
21455
21456
21457
21458
21459
21460
21461
21462
21463
21464
21465
21466
21467
21468
21469
21470
21471
21472
21473
21474
21475
21476
21477
21478
21479
21480
21481
21482
21483
21484
21485
21486
21487
21488
21489
21490
21491
21492
21493
21494
21495
21496
21497
21498
21499
21500
21501
21502
21503
21504
21505
21506
21507
21508
21509
21510
21511
21512
21513
21514
21515
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542
21543
21544
21545
21546
21547
21548
21549
21550
21551
21552
21553
21554
21555
21556
21557
21558
21559
21560
21561
21562
21563
21564
21565
21566
21567
21568
21569
21570
21571
21572
21573
21574
21575
21576
21577
21578
21579
21580
21581
21582
21583
21584
21585
21586
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
21607
21608
21609
21610
21611
21612
21613
21614
21615
21616
21617
21618
21619
21620
21621
21622
21623
21624
21625
21626
21627
21628
21629
21630
21631
21632
21633
21634
21635
21636
21637
21638
21639
21640
21641
21642
21643
21644
21645
21646
21647
21648
21649
21650
21651
21652
21653
21654
21655
21656
21657
21658
21659
21660
21661
21662
21663
21664
21665
21666
21667
21668
21669
21670
21671
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685
21686
21687
21688
21689
21690
21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732
21733
21734
21735
21736
21737
21738
21739
21740
21741
21742
21743
21744
21745
21746
21747
21748
21749
21750
21751
21752
21753
21754
21755
21756
21757
21758
21759
21760
21761
21762
21763
21764
21765
21766
21767
21768
21769
21770
21771
21772
21773
21774
21775
21776
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
21792
21793
21794
21795
21796
21797
21798
21799
21800
21801
21802
21803
21804
21805
21806
21807
21808
21809
21810
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
21829
21830
21831
21832
21833
21834
21835
21836
21837
21838
21839
21840
21841
21842
21843
21844
21845
21846
21847
21848
21849
21850
21851
21852
21853
21854
21855
21856
21857
21858
21859
21860
21861
21862
21863
21864
21865
21866
21867
21868
21869
21870
21871
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
21899
21900
21901
21902
21903
21904
21905
21906
21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921
21922
21923
21924
21925
21926
21927
21928
21929
21930
21931
21932
21933
21934
21935
21936
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
21955
21956
21957
21958
21959
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
21985
21986
21987
21988
21989
21990
21991
21992
21993
21994
21995
21996
21997
21998
21999
22000
22001
22002
22003
22004
22005
22006
22007
22008
22009
22010
22011
22012
22013
22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049
22050
22051
22052
22053
22054
22055
22056
22057
22058
22059
22060
22061
22062
22063
22064
22065
22066
22067
22068
22069
22070
22071
22072
22073
22074
22075
22076
22077
22078
22079
22080
22081
22082
22083
22084
22085
22086
22087
22088
22089
22090
22091
22092
22093
22094
22095
22096
22097
22098
22099
22100
22101
22102
22103
22104
22105
22106
22107
22108
22109
22110
22111
22112
22113
22114
22115
22116
22117
22118
22119
22120
22121
22122
22123
22124
22125
22126
22127
22128
22129
22130
22131
22132
22133
22134
22135
22136
22137
22138
22139
22140
22141
22142
22143
22144
22145
22146
22147
22148
22149
22150
22151
22152
22153
22154
22155
22156
22157
22158
22159
22160
22161
22162
22163
22164
22165
22166
22167
22168
22169
22170
22171
22172
22173
22174
22175
22176
22177
22178
22179
22180
22181
22182
22183
22184
22185
22186
22187
22188
22189
22190
22191
22192
22193
22194
22195
22196
22197
22198
22199
22200
22201
22202
22203
22204
22205
22206
22207
22208
22209
22210
22211
22212
22213
22214
22215
22216
22217
22218
22219
22220
22221
22222
22223
22224
22225
22226
22227
22228
22229
22230
22231
22232
22233
22234
22235
22236
22237
22238
22239
22240
22241
22242
22243
22244
22245
22246
22247
22248
22249
22250
22251
22252
22253
22254
22255
22256
22257
22258
22259
22260
22261
22262
22263
22264
22265
22266
22267
22268
22269
22270
22271
22272
22273
22274
22275
22276
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304
22305
22306
22307
22308
22309
22310
22311
22312
22313
22314
22315
22316
22317
22318
22319
22320
22321
22322
22323
22324
22325
22326
22327
22328
22329
22330
22331
22332
22333
22334
22335
22336
22337
22338
22339
22340
22341
22342
22343
22344
22345
22346
22347
22348
22349
22350
22351
22352
22353
22354
22355
22356
22357
22358
22359
22360
22361
22362
22363
22364
22365
22366
22367
22368
22369
22370
22371
22372
22373
22374
22375
22376
22377
22378
22379
22380
22381
22382
22383
22384
22385
22386
22387
22388
22389
22390
22391
22392
22393
22394
22395
22396
22397
22398
22399
22400
22401
22402
22403
22404
22405
22406
22407
22408
22409
22410
22411
22412
22413
22414
22415
22416
22417
22418
22419
22420
22421
22422
22423
22424
22425
22426
22427
22428
22429
22430
22431
22432
22433
22434
22435
22436
22437
22438
22439
22440
22441
22442
22443
22444
22445
22446
22447
22448
22449
22450
22451
22452
22453
22454
22455
22456
22457
22458
22459
22460
22461
22462
22463
22464
22465
22466
22467
22468
22469
22470
22471
22472
22473
22474
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
22488
22489
22490
22491
22492
22493
22494
22495
22496
22497
22498
22499
22500
22501
22502
22503
22504
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
22518
22519
22520
22521
22522
22523
22524
22525
22526
22527
22528
22529
22530
22531
22532
22533
22534
22535
22536
22537
22538
22539
22540
22541
22542
22543
22544
22545
22546
22547
22548
22549
22550
22551
22552
22553
22554
22555
22556
22557
22558
22559
22560
22561
22562
22563
22564
22565
22566
22567
22568
22569
22570
22571
22572
22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
22583
22584
22585
22586
22587
22588
22589
22590
22591
22592
22593
22594
22595
22596
22597
22598
22599
22600
22601
22602
22603
22604
22605
22606
22607
22608
22609
22610
22611
22612
22613
22614
22615
22616
22617
22618
22619
22620
22621
22622
22623
22624
22625
22626
22627
22628
22629
22630
22631
22632
22633
22634
22635
22636
22637
22638
22639
22640
22641
22642
22643
22644
22645
22646
22647
22648
22649
22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
22664
22665
22666
22667
22668
22669
22670
22671
22672
22673
22674
22675
22676
22677
22678
22679
22680
22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
22696
22697
22698
22699
22700
22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
22739
22740
22741
22742
22743
22744
22745
22746
22747
22748
22749
22750
22751
22752
22753
22754
22755
22756
22757
22758
22759
22760
22761
22762
22763
22764
22765
22766
22767
22768
22769
22770
22771
22772
22773
22774
22775
22776
22777
22778
22779
22780
22781
22782
22783
22784
22785
22786
22787
22788
22789
22790
22791
22792
22793
22794
22795
22796
22797
22798
22799
22800
22801
22802
22803
22804
22805
22806
22807
22808
22809
22810
22811
22812
22813
22814
22815
22816
22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
22831
22832
22833
22834
22835
22836
22837
22838
22839
22840
22841
22842
22843
22844
22845
22846
22847
22848
22849
22850
22851
22852
22853
22854
22855
22856
22857
22858
22859
22860
22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
22875
22876
22877
22878
22879
22880
22881
22882
22883
22884
22885
22886
22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899
22900
22901
22902
22903
22904
22905
22906
22907
22908
22909
22910
22911
22912
22913
22914
22915
22916
22917
22918
22919
22920
22921
22922
22923
22924
22925
22926
22927
22928
22929
22930
22931
22932
22933
22934
22935
22936
22937
22938
22939
22940
22941
22942
22943
22944
22945
22946
22947
22948
22949
22950
22951
22952
22953
22954
22955
22956
22957
22958
22959
22960
22961
22962
22963
22964
22965
22966
22967
22968
22969
22970
22971
22972
22973
22974
22975
22976
22977
22978
22979
22980
22981
22982
22983
22984
22985
22986
22987
22988
22989
22990
22991
22992
22993
22994
22995
22996
22997
22998
22999
23000
23001
23002
23003
23004
23005
23006
23007
23008
23009
23010
23011
23012
23013
23014
23015
23016
23017
23018
23019
23020
23021
23022
23023
23024
23025
23026
23027
23028
23029
23030
23031
23032
23033
23034
23035
23036
23037
23038
23039
23040
23041
23042
23043
23044
23045
23046
23047
23048
23049
23050
23051
23052
23053
23054
23055
23056
23057
23058
23059
23060
23061
23062
23063
23064
23065
23066
23067
23068
23069
23070
23071
23072
23073
23074
23075
23076
23077
23078
23079
23080
23081
23082
23083
23084
23085
23086
23087
23088
23089
23090
23091
23092
23093
23094
23095
23096
23097
23098
23099
23100
23101
23102
23103
23104
23105
23106
23107
23108
23109
23110
23111
23112
23113
23114
23115
23116
23117
23118
23119
23120
23121
23122
23123
23124
23125
23126
23127
23128
23129
23130
23131
23132
23133
23134
23135
23136
23137
23138
23139
23140
23141
23142
23143
23144
23145
23146
23147
23148
23149
23150
23151
23152
23153
23154
23155
23156
23157
23158
23159
23160
23161
23162
23163
23164
23165
23166
23167
23168
23169
23170
23171
23172
23173
23174
23175
23176
23177
23178
23179
23180
23181
23182
23183
23184
23185
23186
23187
23188
23189
23190
23191
23192
23193
23194
23195
23196
23197
23198
23199
23200
23201
23202
23203
23204
23205
23206
23207
23208
23209
23210
23211
23212
23213
23214
23215
23216
23217
23218
23219
23220
23221
23222
23223
23224
23225
23226
23227
23228
23229
23230
23231
23232
23233
23234
23235
23236
23237
23238
23239
23240
23241
23242
23243
23244
23245
23246
23247
23248
23249
23250
23251
23252
23253
23254
23255
23256
23257
23258
23259
23260
23261
23262
23263
23264
23265
23266
23267
23268
23269
23270
23271
23272
23273
23274
23275
23276
23277
23278
23279
23280
23281
23282
23283
23284
23285
23286
23287
23288
23289
23290
23291
23292
23293
23294
23295
23296
23297
23298
23299
23300
23301
23302
23303
23304
23305
23306
23307
23308
23309
23310
23311
23312
23313
23314
23315
23316
23317
23318
23319
23320
23321
23322
23323
23324
23325
23326
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
23347
23348
23349
23350
23351
23352
23353
23354
23355
23356
23357
23358
23359
23360
23361
23362
23363
23364
23365
23366
23367
23368
23369
23370
23371
23372
23373
23374
23375
23376
23377
23378
23379
23380
23381
23382
23383
23384
23385
23386
23387
23388
23389
23390
23391
23392
23393
23394
23395
23396
23397
23398
23399
23400
23401
23402
23403
23404
23405
23406
23407
23408
23409
23410
23411
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421
23422
23423
23424
23425
23426
23427
23428
23429
23430
23431
23432
23433
23434
23435
23436
23437
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
23451
23452
23453
23454
23455
23456
23457
23458
23459
23460
23461
23462
23463
23464
23465
23466
23467
23468
23469
23470
23471
23472
23473
23474
23475
23476
23477
23478
23479
23480
23481
23482
23483
23484
23485
23486
23487
23488
23489
23490
23491
23492
23493
23494
23495
23496
23497
23498
23499
23500
23501
23502
23503
23504
23505
23506
23507
23508
23509
23510
23511
23512
23513
23514
23515
23516
23517
23518
23519
23520
23521
23522
23523
23524
23525
23526
23527
23528
23529
23530
23531
23532
23533
23534
23535
23536
23537
23538
23539
23540
23541
23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
23556
23557
23558
23559
23560
23561
23562
23563
23564
23565
23566
23567
23568
23569
23570
23571
23572
23573
23574
23575
23576
23577
23578
23579
23580
23581
23582
23583
23584
23585
23586
23587
23588
23589
23590
23591
23592
23593
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
23606
23607
23608
23609
23610
23611
23612
23613
23614
23615
23616
23617
23618
23619
23620
23621
23622
23623
23624
23625
23626
23627
23628
23629
23630
23631
23632
23633
23634
23635
23636
23637
23638
23639
23640
23641
23642
23643
23644
23645
23646
23647
23648
23649
23650
23651
23652
23653
23654
23655
23656
23657
23658
23659
23660
23661
23662
23663
23664
23665
23666
23667
23668
23669
23670
23671
23672
23673
23674
23675
23676
23677
23678
23679
23680
23681
23682
23683
23684
23685
23686
23687
23688
23689
23690
23691
23692
23693
23694
23695
23696
23697
23698
23699
23700
23701
23702
23703
23704
23705
23706
23707
23708
23709
23710
23711
23712
23713
23714
23715
23716
23717
23718
23719
23720
23721
23722
23723
23724
23725
23726
23727
23728
23729
23730
23731
23732
23733
23734
23735
23736
23737
23738
23739
23740
23741
23742
23743
23744
23745
23746
23747
23748
23749
23750
23751
23752
23753
23754
23755
23756
23757
23758
23759
23760
23761
23762
23763
23764
23765
23766
23767
23768
23769
23770
23771
23772
23773
23774
23775
23776
23777
23778
23779
23780
23781
23782
23783
23784
23785
23786
23787
23788
23789
23790
23791
23792
23793
23794
23795
23796
23797
23798
23799
23800
23801
23802
23803
23804
23805
23806
23807
23808
23809
23810
23811
23812
23813
23814
23815
23816
23817
23818
23819
23820
23821
23822
23823
23824
23825
23826
23827
23828
23829
23830
23831
23832
23833
23834
23835
23836
23837
23838
23839
23840
23841
23842
23843
23844
23845
23846
23847
23848
23849
23850
23851
23852
23853
23854
23855
23856
23857
23858
23859
23860
23861
23862
23863
23864
23865
23866
23867
23868
23869
23870
23871
23872
23873
23874
23875
23876
23877
23878
23879
23880
23881
23882
23883
23884
23885
23886
23887
23888
23889
23890
23891
23892
23893
23894
23895
23896
23897
23898
23899
23900
23901
23902
23903
23904
23905
23906
23907
23908
23909
23910
23911
23912
23913
23914
23915
23916
23917
23918
23919
23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930
23931
23932
23933
23934
23935
23936
23937
23938
23939
23940
23941
23942
23943
23944
23945
23946
23947
23948
23949
23950
23951
23952
23953
23954
23955
23956
23957
23958
23959
23960
23961
23962
23963
23964
23965
23966
23967
23968
23969
23970
23971
23972
23973
23974
23975
23976
23977
23978
23979
23980
23981
23982
23983
23984
23985
23986
23987
23988
23989
23990
23991
23992
23993
23994
23995
23996
23997
23998
23999
24000
24001
24002
24003
24004
24005
24006
24007
24008
24009
24010
24011
24012
24013
24014
24015
24016
24017
24018
24019
24020
24021
24022
24023
24024
24025
24026
24027
24028
24029
24030
24031
24032
24033
24034
24035
24036
24037
24038
24039
24040
24041
24042
24043
24044
24045
24046
24047
24048
24049
24050
24051
24052
24053
24054
24055
24056
24057
24058
24059
24060
24061
24062
24063
24064
24065
24066
24067
24068
24069
24070
24071
24072
24073
24074
24075
24076
24077
24078
24079
24080
24081
24082
24083
24084
24085
24086
24087
24088
24089
24090
24091
24092
24093
24094
24095
24096
24097
24098
24099
24100
24101
24102
24103
24104
24105
24106
24107
24108
24109
24110
24111
24112
24113
24114
24115
24116
24117
24118
24119
24120
24121
24122
24123
24124
24125
24126
24127
24128
24129
24130
24131
24132
24133
24134
24135
24136
24137
24138
24139
24140
24141
24142
24143
24144
24145
24146
24147
24148
24149
24150
24151
24152
24153
24154
24155
24156
24157
24158
24159
24160
24161
24162
24163
24164
24165
24166
24167
24168
24169
24170
24171
24172
24173
24174
24175
24176
24177
24178
24179
24180
24181
24182
24183
24184
24185
24186
24187
24188
24189
24190
24191
24192
24193
24194
24195
24196
24197
24198
24199
24200
24201
24202
24203
24204
24205
24206
24207
24208
24209
24210
24211
24212
24213
24214
24215
24216
24217
24218
24219
24220
24221
24222
24223
24224
24225
24226
24227
24228
24229
24230
24231
24232
24233
24234
24235
24236
24237
24238
24239
24240
24241
24242
24243
24244
24245
24246
24247
24248
24249
24250
24251
24252
24253
24254
24255
24256
24257
24258
24259
24260
24261
24262
24263
24264
24265
24266
24267
24268
24269
24270
24271
24272
24273
24274
24275
24276
24277
24278
24279
24280
24281
24282
24283
24284
24285
24286
24287
24288
24289
24290
24291
24292
24293
24294
24295
24296
24297
24298
24299
24300
24301
24302
24303
24304
24305
24306
24307
24308
24309
24310
24311
24312
24313
24314
24315
24316
24317
24318
24319
24320
24321
24322
24323
24324
24325
24326
24327
24328
24329
24330
24331
24332
24333
24334
24335
24336
24337
24338
24339
24340
24341
24342
24343
24344
24345
24346
24347
24348
24349
24350
24351
24352
24353
24354
24355
24356
24357
24358
24359
24360
24361
24362
24363
24364
24365
24366
24367
24368
24369
24370
24371
24372
24373
24374
24375
24376
24377
24378
24379
24380
24381
24382
24383
24384
24385
24386
24387
24388
24389
24390
24391
24392
24393
24394
24395
24396
24397
24398
24399
24400
24401
24402
24403
24404
24405
24406
24407
24408
24409
24410
24411
24412
24413
24414
24415
24416
24417
24418
24419
24420
24421
24422
24423
24424
24425
24426
24427
24428
24429
24430
24431
24432
24433
24434
24435
24436
24437
24438
24439
24440
24441
24442
24443
24444
24445
24446
24447
24448
24449
24450
24451
24452
24453
24454
24455
24456
24457
24458
24459
24460
24461
24462
24463
24464
24465
24466
24467
24468
24469
24470
24471
24472
24473
24474
24475
24476
24477
24478
24479
24480
24481
24482
24483
24484
24485
24486
24487
24488
24489
24490
24491
24492
24493
24494
24495
24496
24497
24498
24499
24500
24501
24502
24503
24504
24505
24506
24507
24508
24509
24510
24511
24512
24513
24514
24515
24516
24517
24518
24519
24520
24521
24522
24523
24524
24525
24526
24527
24528
24529
24530
24531
24532
24533
24534
24535
24536
24537
24538
24539
24540
24541
24542
24543
24544
24545
24546
24547
24548
24549
24550
24551
24552
24553
24554
24555
24556
24557
24558
24559
24560
24561
24562
24563
24564
24565
24566
24567
24568
24569
24570
24571
24572
24573
24574
24575
24576
24577
24578
24579
24580
24581
24582
24583
24584
24585
24586
24587
24588
24589
24590
24591
24592
24593
24594
24595
24596
24597
24598
24599
24600
24601
24602
24603
24604
24605
24606
24607
24608
24609
24610
24611
24612
24613
24614
24615
24616
24617
24618
24619
24620
24621
24622
24623
24624
24625
24626
24627
24628
24629
24630
24631
24632
24633
24634
24635
24636
24637
24638
24639
24640
24641
24642
24643
24644
24645
24646
24647
24648
24649
24650
24651
24652
24653
24654
24655
24656
24657
24658
24659
24660
24661
24662
24663
24664
24665
24666
24667
24668
24669
24670
24671
24672
24673
24674
24675
24676
24677
24678
24679
24680
24681
24682
24683
24684
24685
24686
24687
24688
24689
24690
24691
24692
24693
24694
24695
24696
24697
24698
24699
24700
24701
24702
24703
24704
24705
24706
24707
24708
24709
24710
24711
24712
24713
24714
24715
24716
24717
24718
24719
24720
24721
24722
24723
24724
24725
24726
24727
24728
24729
24730
24731
24732
24733
24734
24735
24736
24737
24738
24739
24740
24741
24742
24743
24744
24745
24746
24747
24748
24749
24750
24751
24752
24753
24754
24755
24756
24757
24758
24759
24760
24761
24762
24763
24764
24765
24766
24767
24768
24769
24770
24771
24772
24773
24774
24775
24776
24777
24778
24779
24780
24781
24782
24783
24784
24785
24786
24787
24788
24789
24790
24791
24792
24793
24794
24795
24796
24797
24798
24799
24800
24801
24802
24803
24804
24805
24806
24807
24808
24809
24810
24811
24812
24813
24814
24815
24816
24817
24818
24819
24820
24821
24822
24823
24824
24825
24826
24827
24828
24829
24830
24831
24832
24833
24834
24835
24836
24837
24838
24839
24840
24841
24842
24843
24844
24845
24846
24847
24848
24849
24850
24851
24852
24853
24854
24855
24856
24857
24858
24859
24860
24861
24862
24863
24864
24865
24866
24867
24868
24869
24870
24871
24872
24873
24874
24875
24876
24877
24878
24879
24880
24881
24882
24883
24884
24885
24886
24887
24888
24889
24890
24891
24892
24893
24894
24895
24896
24897
24898
24899
24900
24901
24902
24903
24904
24905
24906
24907
24908
24909
24910
24911
24912
24913
24914
24915
24916
24917
24918
24919
24920
24921
24922
24923
24924
24925
24926
24927
24928
24929
24930
24931
24932
24933
24934
24935
24936
24937
24938
24939
24940
24941
24942
24943
24944
24945
24946
24947
24948
24949
24950
24951
24952
24953
24954
24955
24956
24957
24958
24959
24960
24961
24962
24963
24964
24965
24966
24967
24968
24969
24970
24971
24972
24973
24974
24975
24976
24977
24978
24979
24980
24981
24982
24983
24984
24985
24986
24987
24988
24989
24990
24991
24992
24993
24994
24995
24996
24997
24998
24999
25000
25001
25002
25003
25004
25005
25006
25007
25008
25009
25010
25011
25012
25013
25014
25015
25016
25017
25018
25019
25020
25021
25022
25023
25024
25025
25026
25027
25028
25029
25030
25031
25032
25033
25034
25035
25036
25037
25038
25039
25040
25041
25042
25043
25044
25045
25046
25047
25048
25049
25050
25051
25052
25053
25054
25055
25056
25057
25058
25059
25060
25061
25062
25063
25064
25065
25066
25067
25068
25069
25070
25071
25072
25073
25074
25075
25076
25077
25078
25079
25080
25081
25082
25083
25084
25085
25086
25087
25088
25089
25090
25091
25092
25093
25094
25095
25096
25097
25098
25099
25100
25101
25102
25103
25104
25105
25106
25107
25108
25109
25110
25111
25112
25113
25114
25115
25116
25117
25118
25119
25120
25121
25122
25123
25124
25125
25126
25127
25128
25129
25130
25131
25132
25133
25134
25135
25136
25137
25138
25139
25140
25141
25142
25143
25144
25145
25146
25147
25148
25149
25150
25151
25152
25153
25154
25155
25156
25157
25158
25159
25160
25161
25162
25163
25164
25165
25166
25167
25168
25169
25170
25171
25172
25173
25174
25175
25176
25177
25178
25179
25180
25181
25182
25183
25184
25185
25186
25187
25188
25189
25190
25191
25192
25193
25194
25195
25196
25197
25198
25199
25200
25201
25202
25203
25204
25205
25206
25207
25208
25209
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
25221
25222
25223
25224
25225
25226
25227
25228
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243
25244
25245
25246
25247
25248
25249
25250
25251
25252
25253
25254
25255
25256
25257
25258
25259
25260
25261
25262
25263
25264
25265
25266
25267
25268
25269
25270
25271
25272
25273
25274
25275
25276
25277
25278
25279
25280
25281
25282
25283
25284
25285
25286
25287
25288
25289
25290
25291
25292
25293
25294
25295
25296
25297
25298
25299
25300
25301
25302
25303
25304
25305
25306
25307
25308
25309
25310
25311
25312
25313
25314
25315
25316
25317
25318
25319
25320
25321
25322
25323
25324
25325
25326
25327
25328
25329
25330
25331
25332
25333
25334
25335
25336
25337
25338
25339
25340
25341
25342
25343
25344
25345
25346
25347
25348
25349
25350
25351
25352
25353
25354
25355
25356
25357
25358
25359
25360
25361
25362
25363
25364
25365
25366
25367
25368
25369
25370
25371
25372
25373
25374
25375
25376
25377
25378
25379
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
25401
25402
25403
25404
25405
25406
25407
25408
25409
25410
25411
25412
25413
25414
25415
25416
25417
25418
25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429
25430
25431
25432
25433
25434
25435
25436
25437
25438
25439
25440
25441
25442
25443
25444
25445
25446
25447
25448
25449
25450
25451
25452
25453
25454
25455
25456
25457
25458
25459
25460
25461
25462
25463
25464
25465
25466
25467
25468
25469
25470
25471
25472
25473
25474
25475
25476
25477
25478
25479
25480
25481
25482
25483
25484
25485
25486
25487
25488
25489
25490
25491
25492
25493
25494
25495
25496
25497
25498
25499
25500
25501
25502
25503
25504
25505
25506
25507
25508
25509
25510
25511
25512
25513
25514
25515
25516
25517
25518
25519
25520
25521
25522
25523
25524
25525
25526
25527
25528
25529
25530
25531
25532
25533
25534
25535
25536
25537
25538
25539
25540
25541
25542
25543
25544
25545
25546
25547
25548
25549
25550
25551
25552
25553
25554
25555
25556
25557
25558
25559
25560
25561
25562
25563
25564
25565
25566
25567
25568
25569
25570
25571
25572
25573
25574
25575
25576
25577
25578
25579
25580
25581
25582
25583
25584
25585
25586
25587
25588
25589
25590
25591
25592
25593
25594
25595
25596
25597
25598
25599
25600
25601
25602
25603
25604
25605
25606
25607
25608
25609
25610
25611
25612
25613
25614
25615
25616
25617
25618
25619
25620
25621
25622
25623
25624
25625
25626
25627
25628
25629
25630
25631
25632
25633
25634
25635
25636
25637
25638
25639
25640
25641
25642
25643
25644
25645
25646
25647
25648
25649
25650
25651
25652
25653
25654
25655
25656
25657
25658
25659
25660
25661
25662
25663
25664
25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678
25679
25680
25681
25682
25683
25684
25685
25686
25687
25688
25689
25690
25691
25692
25693
25694
25695
25696
25697
25698
25699
25700
25701
25702
25703
25704
25705
25706
25707
25708
25709
25710
25711
25712
25713
25714
25715
25716
25717
25718
25719
25720
25721
25722
25723
25724
25725
25726
25727
25728
25729
25730
25731
25732
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750
25751
25752
25753
25754
25755
25756
25757
25758
25759
25760
25761
25762
25763
25764
25765
25766
25767
25768
25769
25770
25771
25772
25773
25774
25775
25776
25777
25778
25779
25780
25781
25782
25783
25784
25785
25786
25787
25788
25789
25790
25791
25792
25793
25794
25795
25796
25797
25798
25799
25800
25801
25802
25803
25804
25805
25806
25807
25808
25809
25810
25811
25812
25813
25814
25815
25816
25817
25818
25819
25820
25821
25822
25823
25824
25825
25826
25827
25828
25829
25830
25831
25832
25833
25834
25835
25836
25837
25838
25839
25840
25841
25842
25843
25844
25845
25846
25847
25848
25849
25850
25851
25852
25853
25854
25855
25856
25857
25858
25859
25860
25861
25862
25863
25864
25865
25866
25867
25868
25869
25870
25871
25872
25873
25874
25875
25876
25877
25878
25879
25880
25881
25882
25883
25884
25885
25886
25887
25888
25889
25890
25891
25892
25893
25894
25895
25896
25897
25898
25899
25900
25901
25902
25903
25904
25905
25906
25907
25908
25909
25910
25911
25912
25913
25914
25915
25916
25917
25918
25919
25920
25921
25922
25923
25924
25925
25926
25927
25928
25929
25930
25931
25932
25933
25934
25935
25936
25937
25938
25939
25940
25941
25942
25943
25944
25945
25946
25947
25948
25949
25950
25951
25952
25953
25954
25955
25956
25957
25958
25959
25960
25961
25962
25963
25964
25965
25966
25967
25968
25969
25970
25971
25972
25973
25974
25975
25976
25977
25978
25979
25980
25981
25982
25983
25984
25985
25986
25987
25988
25989
25990
25991
25992
25993
25994
25995
25996
25997
25998
25999
26000
26001
26002
26003
26004
26005
26006
26007
26008
26009
26010
26011
26012
26013
26014
26015
26016
26017
26018
26019
26020
26021
26022
26023
26024
26025
26026
26027
26028
26029
26030
26031
26032
26033
26034
26035
26036
26037
26038
26039
26040
26041
26042
26043
26044
26045
26046
26047
26048
26049
26050
26051
26052
26053
26054
26055
26056
26057
26058
26059
26060
26061
26062
26063
26064
26065
26066
26067
26068
26069
26070
26071
26072
26073
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083
26084
26085
26086
26087
26088
26089
26090
26091
26092
26093
26094
26095
26096
26097
26098
26099
26100
26101
26102
26103
26104
26105
26106
26107
26108
26109
26110
26111
26112
26113
26114
26115
26116
26117
26118
26119
26120
26121
26122
26123
26124
26125
26126
26127
26128
26129
26130
26131
26132
26133
26134
26135
26136
26137
26138
26139
26140
26141
26142
26143
26144
26145
26146
26147
26148
26149
26150
26151
26152
26153
26154
26155
26156
26157
26158
26159
26160
26161
26162
26163
26164
26165
26166
26167
26168
26169
26170
26171
26172
26173
26174
26175
26176
26177
26178
26179
26180
26181
26182
26183
26184
26185
26186
26187
26188
26189
26190
26191
26192
26193
26194
26195
26196
26197
26198
26199
26200
26201
26202
26203
26204
26205
26206
26207
26208
26209
26210
26211
26212
26213
26214
26215
26216
26217
26218
26219
26220
26221
26222
26223
26224
26225
26226
26227
26228
26229
26230
26231
26232
26233
26234
26235
26236
26237
26238
26239
26240
26241
26242
26243
26244
26245
26246
26247
26248
26249
26250
26251
26252
26253
26254
26255
26256
26257
26258
26259
26260
26261
26262
26263
26264
26265
26266
26267
26268
26269
26270
26271
26272
26273
26274
26275
26276
26277
26278
26279
26280
26281
26282
26283
26284
26285
26286
26287
26288
26289
26290
26291
26292
26293
26294
26295
26296
26297
26298
26299
26300
26301
26302
26303
26304
26305
26306
26307
26308
26309
26310
26311
26312
26313
26314
26315
26316
26317
26318
26319
26320
26321
26322
26323
26324
26325
26326
26327
26328
26329
26330
26331
26332
26333
26334
26335
26336
26337
26338
26339
26340
26341
26342
26343
26344
26345
26346
26347
26348
26349
26350
26351
26352
26353
26354
26355
26356
26357
26358
26359
26360
26361
26362
26363
26364
26365
26366
26367
26368
26369
26370
26371
26372
26373
26374
26375
26376
26377
26378
26379
26380
26381
26382
26383
26384
26385
26386
26387
26388
26389
26390
26391
26392
26393
26394
26395
26396
26397
26398
26399
26400
26401
26402
26403
26404
26405
26406
26407
26408
26409
26410
26411
26412
26413
26414
26415
26416
26417
26418
26419
26420
26421
26422
26423
26424
26425
26426
26427
26428
26429
26430
26431
26432
26433
26434
26435
26436
26437
26438
26439
26440
26441
26442
26443
26444
26445
26446
26447
26448
26449
26450
26451
26452
26453
26454
26455
26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467
26468
26469
26470
26471
26472
26473
26474
26475
26476
26477
26478
26479
26480
26481
26482
26483
26484
26485
26486
26487
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
26501
26502
26503
26504
26505
26506
26507
26508
26509
26510
26511
26512
26513
26514
26515
26516
26517
26518
26519
26520
26521
26522
26523
26524
26525
26526
26527
26528
26529
26530
26531
26532
26533
26534
26535
26536
26537
26538
26539
26540
26541
26542
26543
26544
26545
26546
26547
26548
26549
26550
26551
26552
26553
26554
26555
26556
26557
26558
26559
26560
26561
26562
26563
26564
26565
26566
26567
26568
26569
26570
26571
26572
26573
26574
26575
26576
26577
26578
26579
26580
26581
26582
26583
26584
26585
26586
26587
26588
26589
26590
26591
26592
26593
26594
26595
26596
26597
26598
26599
26600
26601
26602
26603
26604
26605
26606
26607
26608
26609
26610
26611
26612
26613
26614
26615
26616
26617
26618
26619
26620
26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
26666
26667
26668
26669
26670
26671
26672
26673
26674
26675
26676
26677
26678
26679
26680
26681
26682
26683
26684
26685
26686
26687
26688
26689
26690
26691
26692
26693
26694
26695
26696
26697
26698
26699
26700
26701
26702
26703
26704
26705
26706
26707
26708
26709
26710
26711
26712
26713
26714
26715
26716
26717
26718
26719
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
26787
26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
26801
26802
26803
26804
26805
26806
26807
26808
26809
26810
26811
26812
26813
26814
26815
26816
26817
26818
26819
26820
26821
26822
26823
26824
26825
26826
26827
26828
26829
26830
26831
26832
26833
26834
26835
26836
26837
26838
26839
26840
26841
26842
26843
26844
26845
26846
26847
26848
26849
26850
26851
26852
26853
26854
26855
26856
26857
26858
26859
26860
26861
26862
26863
26864
26865
26866
26867
26868
26869
26870
26871
26872
26873
26874
26875
26876
26877
26878
26879
26880
26881
26882
26883
26884
26885
26886
26887
26888
26889
26890
26891
26892
26893
26894
26895
26896
26897
26898
26899
26900
26901
26902
26903
26904
26905
26906
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
26917
26918
26919
26920
26921
26922
26923
26924
26925
26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
26942
26943
26944
26945
26946
26947
26948
26949
26950
26951
26952
26953
26954
26955
26956
26957
26958
26959
26960
26961
26962
26963
26964
26965
26966
26967
26968
26969
26970
26971
26972
26973
26974
26975
26976
26977
26978
26979
26980
26981
26982
26983
26984
26985
26986
26987
26988
26989
26990
26991
26992
26993
26994
26995
26996
26997
26998
26999
27000
27001
27002
27003
27004
27005
27006
27007
27008
27009
27010
27011
27012
27013
27014
27015
27016
27017
27018
27019
27020
27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
27052
27053
27054
27055
27056
27057
27058
27059
27060
27061
27062
27063
27064
27065
27066
27067
27068
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
27109
27110
27111
27112
27113
27114
27115
27116
27117
27118
27119
27120
27121
27122
27123
27124
27125
27126
27127
27128
27129
27130
27131
27132
27133
27134
27135
27136
27137
27138
27139
27140
27141
27142
27143
27144
27145
27146
27147
27148
27149
27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164
27165
27166
27167
27168
27169
27170
27171
27172
27173
27174
27175
27176
27177
27178
27179
27180
27181
27182
27183
27184
27185
27186
27187
27188
27189
27190
27191
27192
27193
27194
27195
27196
27197
27198
27199
27200
27201
27202
27203
27204
27205
27206
27207
27208
27209
27210
27211
27212
27213
27214
27215
27216
27217
27218
27219
27220
27221
27222
27223
27224
27225
27226
27227
27228
27229
27230
27231
27232
27233
27234
27235
27236
27237
27238
27239
27240
27241
27242
27243
27244
27245
27246
27247
27248
27249
27250
27251
27252
27253
27254
27255
27256
27257
27258
27259
27260
27261
27262
27263
27264
27265
27266
27267
27268
27269
27270
27271
27272
27273
27274
27275
27276
27277
27278
27279
27280
27281
27282
27283
27284
27285
27286
27287
27288
27289
27290
27291
27292
27293
27294
27295
27296
27297
27298
27299
27300
27301
27302
27303
27304
27305
27306
27307
27308
27309
27310
27311
27312
27313
27314
27315
27316
27317
27318
27319
27320
27321
27322
27323
27324
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340
27341
27342
27343
27344
27345
27346
27347
27348
27349
27350
27351
27352
27353
27354
27355
27356
27357
27358
27359
27360
27361
27362
27363
27364
27365
27366
27367
27368
27369
27370
27371
27372
27373
27374
27375
27376
27377
27378
27379
27380
27381
27382
27383
27384
27385
27386
27387
27388
27389
27390
27391
27392
27393
27394
27395
27396
27397
27398
27399
27400
27401
27402
27403
27404
27405
27406
27407
27408
27409
27410
27411
27412
27413
27414
27415
27416
27417
27418
27419
27420
27421
27422
27423
27424
27425
27426
27427
27428
27429
27430
27431
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
27444
27445
27446
27447
27448
27449
27450
27451
27452
27453
27454
27455
27456
27457
27458
27459
27460
27461
27462
27463
27464
27465
27466
27467
27468
27469
27470
27471
27472
27473
27474
27475
27476
27477
27478
27479
27480
27481
27482
27483
27484
27485
27486
27487
27488
27489
27490
27491
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
27518
27519
27520
27521
27522
27523
27524
27525
27526
27527
27528
27529
27530
27531
27532
27533
27534
27535
27536
27537
27538
27539
27540
27541
27542
27543
27544
27545
27546
27547
27548
27549
27550
27551
27552
27553
27554
27555
27556
27557
27558
27559
27560
27561
27562
27563
27564
27565
27566
27567
27568
27569
27570
27571
27572
27573
27574
27575
27576
27577
27578
27579
27580
27581
27582
27583
27584
27585
27586
27587
27588
27589
27590
27591
27592
27593
27594
27595
27596
27597
27598
27599
27600
27601
27602
27603
27604
27605
27606
27607
27608
27609
27610
27611
27612
27613
27614
27615
27616
27617
27618
27619
27620
27621
27622
27623
27624
27625
27626
27627
27628
27629
27630
27631
27632
27633
27634
27635
27636
27637
27638
27639
27640
27641
27642
27643
27644
27645
27646
27647
27648
27649
27650
27651
27652
27653
27654
27655
27656
27657
27658
27659
27660
27661
27662
27663
27664
27665
27666
27667
27668
27669
27670
27671
27672
27673
27674
27675
27676
27677
27678
27679
27680
27681
27682
27683
27684
27685
27686
27687
27688
27689
27690
27691
27692
27693
27694
27695
27696
27697
27698
27699
27700
27701
27702
27703
27704
27705
27706
27707
27708
27709
27710
27711
27712
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728
27729
27730
27731
27732
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
27788
27789
27790
27791
27792
27793
27794
27795
27796
27797
27798
27799
27800
27801
27802
27803
27804
27805
27806
27807
27808
27809
27810
27811
27812
27813
27814
27815
27816
27817
27818
27819
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
27882
27883
27884
27885
27886
27887
27888
27889
27890
27891
27892
27893
27894
27895
27896
27897
27898
27899
27900
27901
27902
27903
27904
27905
27906
27907
27908
27909
27910
27911
27912
27913
27914
27915
27916
27917
27918
27919
27920
27921
27922
27923
27924
27925
27926
27927
27928
27929
27930
27931
27932
27933
27934
27935
27936
27937
27938
27939
27940
27941
27942
27943
27944
27945
27946
27947
27948
27949
27950
27951
27952
27953
27954
27955
27956
27957
27958
27959
27960
27961
27962
27963
27964
27965
27966
27967
27968
27969
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980
27981
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999
28000
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
28023
28024
28025
28026
28027
28028
28029
28030
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
28070
28071
28072
28073
28074
28075
28076
28077
28078
28079
28080
28081
28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150
28151
28152
28153
28154
28155
28156
28157
28158
28159
28160
28161
28162
28163
28164
28165
28166
28167
28168
28169
28170
28171
28172
28173
28174
28175
28176
28177
28178
28179
28180
28181
28182
28183
28184
28185
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
28241
28242
28243
28244
28245
28246
28247
28248
28249
28250
28251
28252
28253
28254
28255
28256
28257
28258
28259
28260
28261
28262
28263
28264
28265
28266
28267
28268
28269
28270
28271
28272
28273
28274
28275
28276
28277
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349
28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366
28367
28368
28369
28370
28371
28372
28373
28374
28375
28376
28377
28378
28379
28380
28381
28382
28383
28384
28385
28386
28387
28388
28389
28390
28391
28392
28393
28394
28395
28396
28397
28398
28399
28400
28401
28402
28403
28404
28405
28406
28407
28408
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
28426
28427
28428
28429
28430
28431
28432
28433
28434
28435
28436
28437
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501
28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645
28646
28647
28648
28649
28650
28651
28652
28653
28654
28655
28656
28657
28658
28659
28660
28661
28662
28663
28664
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
28701
28702
28703
28704
28705
28706
28707
28708
28709
28710
28711
28712
28713
28714
28715
28716
28717
28718
28719
28720
28721
28722
28723
28724
28725
28726
28727
28728
28729
28730
28731
28732
28733
28734
28735
28736
28737
28738
28739
28740
28741
28742
28743
28744
28745
28746
28747
28748
28749
28750
28751
28752
28753
28754
28755
28756
28757
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777
28778
28779
28780
28781
28782
28783
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
28800
28801
28802
28803
28804
28805
28806
28807
28808
28809
28810
28811
28812
28813
28814
28815
28816
28817
28818
28819
28820
28821
28822
28823
28824
28825
28826
28827
28828
28829
28830
28831
28832
28833
28834
28835
28836
28837
28838
28839
28840
28841
28842
28843
28844
28845
28846
28847
28848
28849
28850
28851
28852
28853
28854
28855
28856
28857
28858
28859
28860
28861
28862
28863
28864
28865
28866
28867
28868
28869
28870
28871
28872
28873
28874
28875
28876
28877
28878
28879
28880
28881
28882
28883
28884
28885
28886
28887
28888
28889
28890
28891
28892
28893
28894
28895
28896
28897
28898
28899
28900
28901
28902
28903
28904
28905
28906
28907
28908
28909
28910
28911
28912
28913
28914
28915
28916
28917
28918
28919
28920
28921
28922
28923
28924
28925
28926
28927
28928
28929
28930
28931
28932
28933
28934
28935
28936
28937
28938
28939
28940
28941
28942
28943
28944
28945
28946
28947
28948
28949
28950
28951
28952
28953
28954
28955
28956
28957
28958
28959
28960
28961
28962
28963
28964
28965
28966
28967
28968
28969
28970
28971
28972
28973
28974
28975
28976
28977
28978
28979
28980
28981
28982
28983
28984
28985
28986
28987
28988
28989
28990
28991
28992
28993
28994
28995
28996
28997
28998
28999
29000
29001
29002
29003
29004
29005
29006
29007
29008
29009
29010
29011
29012
29013
29014
29015
29016
29017
29018
29019
29020
29021
29022
29023
29024
29025
29026
29027
29028
29029
29030
29031
29032
29033
29034
29035
29036
29037
29038
29039
29040
29041
29042
29043
29044
29045
29046
29047
29048
29049
29050
29051
29052
29053
29054
29055
29056
29057
29058
29059
29060
29061
29062
29063
29064
29065
29066
29067
29068
29069
29070
29071
29072
29073
29074
29075
29076
29077
29078
29079
29080
29081
29082
29083
29084
29085
29086
29087
29088
29089
29090
29091
29092
29093
29094
29095
29096
29097
29098
29099
29100
29101
29102
29103
29104
29105
29106
29107
29108
29109
29110
29111
29112
29113
29114
29115
29116
29117
29118
29119
29120
29121
29122
29123
29124
29125
29126
29127
29128
29129
29130
29131
29132
29133
29134
29135
29136
29137
29138
29139
29140
29141
29142
29143
29144
29145
29146
29147
29148
29149
29150
29151
29152
29153
29154
29155
29156
29157
29158
29159
29160
29161
29162
29163
29164
29165
29166
29167
29168
29169
29170
29171
29172
29173
29174
29175
29176
29177
29178
29179
29180
29181
29182
29183
29184
29185
29186
29187
29188
29189
29190
29191
29192
29193
29194
29195
29196
29197
29198
29199
29200
29201
29202
29203
29204
29205
29206
29207
29208
29209
29210
29211
29212
29213
29214
29215
29216
29217
29218
29219
29220
29221
29222
29223
29224
29225
29226
29227
29228
29229
29230
29231
29232
29233
29234
29235
29236
29237
29238
29239
29240
29241
29242
29243
29244
29245
29246
29247
29248
29249
29250
29251
29252
29253
29254
29255
29256
29257
29258
29259
29260
29261
29262
29263
29264
29265
29266
29267
29268
29269
29270
29271
29272
29273
29274
29275
29276
29277
29278
29279
29280
29281
29282
29283
29284
29285
29286
29287
29288
29289
29290
29291
29292
29293
29294
29295
29296
29297
29298
29299
29300
29301
29302
29303
29304
29305
29306
29307
29308
29309
29310
29311
29312
29313
29314
29315
29316
29317
29318
29319
29320
29321
29322
29323
29324
29325
29326
29327
29328
29329
29330
29331
29332
29333
29334
29335
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351
29352
29353
29354
29355
29356
29357
29358
29359
29360
29361
29362
29363
29364
29365
29366
29367
29368
29369
29370
29371
29372
29373
29374
29375
29376
29377
29378
29379
29380
29381
29382
29383
29384
29385
29386
29387
29388
29389
29390
29391
29392
29393
29394
29395
29396
29397
29398
29399
29400
29401
29402
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
29413
29414
29415
29416
29417
29418
29419
29420
29421
29422
29423
29424
29425
29426
29427
29428
29429
29430
29431
29432
29433
29434
29435
29436
29437
29438
29439
29440
29441
29442
29443
29444
29445
29446
29447
29448
29449
29450
29451
29452
29453
29454
29455
29456
29457
29458
29459
29460
29461
29462
29463
29464
29465
29466
29467
29468
29469
29470
29471
29472
29473
29474
29475
29476
29477
29478
29479
29480
29481
29482
29483
29484
29485
29486
29487
29488
29489
29490
29491
29492
29493
29494
29495
29496
29497
29498
29499
29500
29501
29502
29503
29504
29505
29506
29507
29508
29509
29510
29511
29512
29513
29514
29515
29516
29517
29518
29519
29520
29521
29522
29523
29524
29525
29526
29527
29528
29529
29530
29531
29532
29533
29534
29535
29536
29537
29538
29539
29540
29541
29542
29543
29544
29545
29546
29547
29548
29549
29550
29551
29552
29553
29554
29555
29556
29557
29558
29559
29560
29561
29562
29563
29564
29565
29566
29567
29568
29569
29570
29571
29572
29573
29574
29575
29576
29577
29578
29579
29580
29581
29582
29583
29584
29585
29586
29587
29588
29589
29590
29591
29592
29593
29594
29595
29596
29597
29598
29599
29600
29601
29602
29603
29604
29605
29606
29607
29608
29609
29610
29611
29612
29613
29614
29615
29616
29617
29618
29619
29620
29621
29622
29623
29624
29625
29626
29627
29628
29629
29630
29631
29632
29633
29634
29635
29636
29637
29638
29639
29640
29641
29642
29643
29644
29645
29646
29647
29648
29649
29650
29651
29652
29653
29654
29655
29656
29657
29658
29659
29660
29661
29662
29663
29664
29665
29666
29667
29668
29669
29670
29671
29672
29673
29674
29675
29676
29677
29678
29679
29680
29681
29682
29683
29684
29685
29686
29687
29688
29689
29690
29691
29692
29693
29694
29695
29696
29697
29698
29699
29700
29701
29702
29703
29704
29705
29706
29707
29708
29709
29710
29711
29712
29713
29714
29715
29716
29717
29718
29719
29720
29721
29722
29723
29724
29725
29726
29727
29728
29729
29730
29731
29732
29733
29734
29735
29736
29737
29738
29739
29740
29741
29742
29743
29744
29745
29746
29747
29748
29749
29750
29751
29752
29753
29754
29755
29756
29757
29758
29759
29760
29761
29762
29763
29764
29765
29766
29767
29768
29769
29770
29771
29772
29773
29774
29775
29776
29777
29778
29779
29780
29781
29782
29783
29784
29785
29786
29787
29788
29789
29790
29791
29792
29793
29794
29795
29796
29797
29798
29799
29800
29801
29802
29803
29804
29805
29806
29807
29808
29809
29810
29811
29812
29813
29814
29815
29816
29817
29818
29819
29820
29821
29822
29823
29824
29825
29826
29827
29828
29829
29830
29831
29832
29833
29834
29835
29836
29837
29838
29839
29840
29841
29842
29843
29844
29845
29846
29847
29848
29849
29850
29851
29852
29853
29854
29855
29856
29857
29858
29859
29860
29861
29862
29863
29864
29865
29866
29867
29868
29869
29870
29871
29872
29873
29874
29875
29876
29877
29878
29879
29880
29881
29882
29883
29884
29885
29886
29887
29888
29889
29890
29891
29892
29893
29894
29895
29896
29897
29898
29899
29900
29901
29902
29903
29904
29905
29906
29907
29908
29909
29910
29911
29912
29913
29914
29915
29916
29917
29918
29919
29920
29921
29922
29923
29924
29925
29926
29927
29928
29929
29930
29931
29932
29933
29934
29935
29936
29937
29938
29939
29940
29941
29942
29943
29944
29945
29946
29947
29948
29949
29950
29951
29952
29953
29954
29955
29956
29957
29958
29959
29960
29961
29962
29963
29964
29965
29966
29967
29968
29969
29970
29971
29972
29973
29974
29975
29976
29977
29978
29979
29980
29981
29982
29983
29984
29985
29986
29987
29988
29989
29990
29991
29992
29993
29994
29995
29996
29997
29998
29999
30000
30001
30002
30003
30004
30005
30006
30007
30008
30009
30010
30011
30012
30013
30014
30015
30016
30017
30018
30019
30020
30021
30022
30023
30024
30025
30026
30027
30028
30029
30030
30031
30032
30033
30034
30035
30036
30037
30038
30039
30040
30041
30042
30043
30044
30045
30046
30047
30048
30049
30050
30051
30052
30053
30054
30055
30056
30057
30058
30059
30060
30061
30062
30063
30064
30065
30066
30067
30068
30069
30070
30071
30072
30073
30074
30075
30076
30077
30078
30079
30080
30081
30082
30083
30084
30085
30086
30087
30088
30089
30090
30091
30092
30093
30094
30095
30096
30097
30098
30099
30100
30101
30102
30103
30104
30105
30106
30107
30108
30109
30110
30111
30112
30113
30114
30115
30116
30117
30118
30119
30120
30121
30122
30123
30124
30125
30126
30127
30128
30129
30130
30131
30132
30133
30134
30135
30136
30137
30138
30139
30140
30141
30142
30143
30144
30145
30146
30147
30148
30149
30150
30151
30152
30153
30154
30155
30156
30157
30158
30159
30160
30161
30162
30163
30164
30165
30166
30167
30168
30169
30170
30171
30172
30173
30174
30175
30176
30177
30178
30179
30180
30181
30182
30183
30184
30185
30186
30187
30188
30189
30190
30191
30192
30193
30194
30195
30196
30197
30198
30199
30200
30201
30202
30203
30204
30205
30206
30207
30208
30209
30210
30211
30212
30213
30214
30215
30216
30217
30218
30219
30220
30221
30222
30223
30224
30225
30226
30227
30228
30229
30230
30231
30232
30233
30234
30235
30236
30237
30238
30239
30240
30241
30242
30243
30244
30245
30246
30247
30248
30249
30250
30251
30252
30253
30254
30255
30256
30257
30258
30259
30260
30261
30262
30263
30264
30265
30266
30267
30268
30269
30270
30271
30272
30273
30274
30275
30276
30277
30278
30279
30280
30281
30282
30283
30284
30285
30286
30287
30288
30289
30290
30291
30292
30293
30294
30295
30296
30297
30298
30299
30300
30301
30302
30303
30304
30305
30306
30307
30308
30309
30310
30311
30312
30313
30314
30315
30316
30317
30318
30319
30320
30321
30322
30323
30324
30325
30326
30327
30328
30329
30330
30331
30332
30333
30334
30335
30336
30337
30338
30339
30340
30341
30342
30343
30344
30345
30346
30347
30348
30349
30350
30351
30352
30353
30354
30355
30356
30357
30358
30359
30360
30361
30362
30363
30364
30365
30366
30367
30368
30369
30370
30371
30372
30373
30374
30375
30376
30377
30378
30379
30380
30381
30382
30383
30384
30385
30386
30387
30388
30389
30390
30391
30392
30393
30394
30395
30396
30397
30398
30399
30400
30401
30402
30403
30404
30405
30406
30407
30408
30409
30410
30411
30412
30413
30414
30415
30416
30417
30418
30419
30420
30421
30422
30423
30424
30425
30426
30427
30428
30429
30430
30431
30432
30433
30434
30435
30436
30437
30438
30439
30440
30441
30442
30443
30444
30445
30446
30447
30448
30449
30450
30451
30452
30453
30454
30455
30456
30457
30458
30459
30460
30461
30462
30463
30464
30465
30466
30467
30468
30469
30470
30471
30472
30473
30474
30475
30476
30477
30478
30479
30480
30481
30482
30483
30484
30485
30486
30487
30488
30489
30490
30491
30492
30493
30494
30495
30496
30497
30498
30499
30500
30501
30502
30503
30504
30505
30506
30507
30508
30509
30510
30511
30512
30513
30514
30515
30516
30517
30518
30519
30520
30521
30522
30523
30524
30525
30526
30527
30528
30529
30530
30531
30532
30533
30534
30535
30536
30537
30538
30539
30540
30541
30542
30543
30544
30545
30546
30547
30548
30549
30550
30551
30552
30553
30554
30555
30556
30557
30558
30559
30560
30561
30562
30563
30564
30565
30566
30567
30568
30569
30570
30571
30572
30573
30574
30575
30576
30577
30578
30579
30580
30581
30582
30583
30584
30585
30586
30587
30588
30589
30590
30591
30592
30593
30594
30595
30596
30597
30598
30599
30600
30601
30602
30603
30604
30605
30606
30607
30608
30609
30610
30611
30612
30613
30614
30615
30616
30617
30618
30619
30620
30621
30622
30623
30624
30625
30626
30627
30628
30629
30630
30631
30632
30633
30634
30635
30636
30637
30638
30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
30650
30651
30652
30653
30654
30655
30656
30657
30658
30659
30660
30661
30662
30663
30664
30665
30666
30667
30668
30669
30670
30671
30672
30673
30674
30675
30676
30677
30678
30679
30680
30681
30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
30694
30695
30696
30697
30698
30699
30700
30701
30702
30703
30704
30705
30706
30707
30708
30709
30710
30711
30712
30713
30714
30715
30716
30717
30718
30719
30720
30721
30722
30723
30724
30725
30726
30727
30728
30729
30730
30731
30732
30733
30734
30735
30736
30737
30738
30739
30740
30741
30742
30743
30744
30745
30746
30747
30748
30749
30750
30751
30752
30753
30754
30755
30756
30757
30758
30759
30760
30761
30762
30763
30764
30765
30766
30767
30768
30769
30770
30771
30772
30773
30774
30775
30776
30777
30778
30779
30780
30781
30782
30783
30784
30785
30786
30787
30788
30789
30790
30791
30792
30793
30794
30795
30796
30797
30798
30799
30800
30801
30802
30803
30804
30805
30806
30807
30808
30809
30810
30811
30812
30813
30814
30815
30816
30817
30818
30819
30820
30821
30822
30823
30824
30825
30826
30827
30828
30829
30830
30831
30832
30833
30834
30835
30836
30837
30838
30839
30840
30841
30842
30843
30844
30845
30846
30847
30848
30849
30850
30851
30852
30853
30854
30855
30856
30857
30858
30859
30860
30861
30862
30863
30864
30865
30866
30867
30868
30869
30870
30871
30872
30873
30874
30875
30876
30877
30878
30879
30880
30881
30882
30883
30884
30885
30886
30887
30888
30889
30890
30891
30892
30893
30894
30895
30896
30897
30898
30899
30900
30901
30902
30903
30904
30905
30906
30907
30908
30909
30910
30911
30912
30913
30914
30915
30916
30917
30918
30919
30920
30921
30922
30923
30924
30925
30926
30927
30928
30929
30930
30931
30932
30933
30934
30935
30936
30937
30938
30939
30940
30941
30942
30943
30944
30945
30946
30947
30948
30949
30950
30951
30952
30953
30954
30955
30956
30957
30958
30959
30960
30961
30962
30963
30964
30965
30966
30967
30968
30969
30970
30971
30972
30973
30974
30975
30976
30977
30978
30979
30980
30981
30982
30983
30984
30985
30986
30987
30988
30989
30990
30991
30992
30993
30994
30995
30996
30997
30998
30999
31000
31001
31002
31003
31004
31005
31006
31007
31008
31009
31010
31011
31012
31013
31014
31015
31016
31017
31018
31019
31020
31021
31022
31023
31024
31025
31026
31027
31028
31029
31030
31031
31032
31033
31034
31035
31036
31037
31038
31039
31040
31041
31042
31043
31044
31045
31046
31047
31048
31049
31050
31051
31052
31053
31054
31055
31056
31057
31058
31059
31060
31061
31062
31063
31064
31065
31066
31067
31068
31069
31070
31071
31072
31073
31074
31075
31076
31077
31078
31079
31080
31081
31082
31083
31084
31085
31086
31087
31088
31089
31090
31091
31092
31093
31094
31095
31096
31097
31098
31099
31100
31101
31102
31103
31104
31105
31106
31107
31108
31109
31110
31111
31112
31113
31114
31115
31116
31117
31118
31119
31120
31121
31122
31123
31124
31125
31126
31127
31128
31129
31130
31131
31132
31133
31134
31135
31136
31137
31138
31139
31140
31141
31142
31143
31144
31145
31146
31147
31148
31149
31150
31151
31152
31153
31154
31155
31156
31157
31158
31159
31160
31161
31162
31163
31164
31165
31166
31167
31168
31169
31170
31171
31172
31173
31174
31175
31176
31177
31178
31179
31180
31181
31182
31183
31184
31185
31186
31187
31188
31189
31190
31191
31192
31193
31194
31195
31196
31197
31198
31199
31200
31201
31202
31203
31204
31205
31206
31207
31208
31209
31210
31211
31212
31213
31214
31215
31216
31217
31218
31219
31220
31221
31222
31223
31224
31225
31226
31227
31228
31229
31230
31231
31232
31233
31234
31235
31236
31237
31238
31239
31240
31241
31242
31243
31244
31245
31246
31247
31248
31249
31250
31251
31252
31253
31254
31255
31256
31257
31258
31259
31260
31261
31262
31263
31264
31265
31266
31267
31268
31269
31270
31271
31272
31273
31274
31275
31276
31277
31278
31279
31280
31281
31282
31283
31284
31285
31286
31287
31288
31289
31290
31291
31292
31293
31294
31295
31296
31297
31298
31299
31300
31301
31302
31303
31304
31305
31306
31307
31308
31309
31310
31311
31312
31313
31314
31315
31316
31317
31318
31319
31320
31321
31322
31323
31324
31325
31326
31327
31328
31329
31330
31331
31332
31333
31334
31335
31336
31337
31338
31339
31340
31341
31342
31343
31344
31345
31346
31347
31348
31349
31350
31351
31352
31353
31354
31355
31356
31357
31358
31359
31360
31361
31362
31363
31364
31365
31366
31367
31368
31369
31370
31371
31372
31373
31374
31375
31376
31377
31378
31379
31380
31381
31382
31383
31384
31385
31386
31387
31388
31389
31390
31391
31392
31393
31394
31395
31396
31397
31398
31399
31400
31401
31402
31403
31404
31405
31406
31407
31408
31409
31410
31411
31412
31413
31414
31415
31416
31417
31418
31419
31420
31421
31422
31423
31424
31425
31426
31427
31428
31429
31430
31431
31432
31433
31434
31435
31436
31437
31438
31439
31440
31441
31442
31443
31444
31445
31446
31447
31448
31449
31450
31451
31452
31453
31454
31455
31456
31457
31458
31459
31460
31461
31462
31463
31464
31465
31466
31467
31468
31469
31470
31471
31472
31473
31474
31475
31476
31477
31478
31479
31480
31481
31482
31483
31484
31485
31486
31487
31488
31489
31490
31491
31492
31493
31494
31495
31496
31497
31498
31499
31500
31501
31502
31503
31504
31505
31506
31507
31508
31509
31510
31511
31512
31513
31514
31515
31516
31517
31518
31519
31520
31521
31522
31523
31524
31525
31526
31527
31528
31529
31530
31531
31532
31533
31534
31535
31536
31537
31538
31539
31540
31541
31542
31543
31544
31545
31546
31547
31548
31549
31550
31551
31552
31553
31554
31555
31556
31557
31558
31559
31560
31561
31562
31563
31564
31565
31566
31567
31568
31569
31570
31571
31572
31573
31574
31575
31576
31577
31578
31579
31580
31581
31582
31583
31584
31585
31586
31587
31588
31589
31590
31591
31592
31593
31594
31595
31596
31597
31598
31599
31600
31601
31602
31603
31604
31605
31606
31607
31608
31609
31610
31611
31612
31613
31614
31615
31616
31617
31618
31619
31620
31621
31622
31623
31624
31625
31626
31627
31628
31629
31630
31631
31632
31633
31634
31635
31636
31637
31638
31639
31640
31641
31642
31643
31644
31645
31646
31647
31648
31649
31650
31651
31652
31653
31654
31655
31656
31657
31658
31659
31660
31661
31662
31663
31664
31665
31666
31667
31668
31669
31670
31671
31672
31673
31674
31675
31676
31677
31678
31679
31680
31681
31682
31683
31684
31685
31686
31687
31688
31689
31690
31691
31692
31693
31694
31695
31696
31697
31698
31699
31700
31701
31702
31703
31704
31705
31706
31707
31708
31709
31710
31711
31712
31713
31714
31715
31716
31717
31718
31719
31720
31721
31722
31723
31724
31725
31726
31727
31728
31729
31730
31731
31732
31733
31734
31735
31736
31737
31738
31739
31740
31741
31742
31743
31744
31745
31746
31747
31748
31749
31750
31751
31752
31753
31754
31755
31756
31757
31758
31759
31760
31761
31762
31763
31764
31765
31766
31767
31768
31769
31770
31771
31772
31773
31774
31775
31776
31777
31778
31779
31780
31781
31782
31783
31784
31785
31786
31787
31788
31789
31790
31791
31792
31793
31794
31795
31796
31797
31798
31799
31800
31801
31802
31803
31804
31805
31806
31807
31808
31809
31810
31811
31812
31813
31814
31815
31816
31817
31818
31819
31820
31821
31822
31823
31824
31825
31826
31827
31828
31829
31830
31831
31832
31833
31834
31835
31836
31837
31838
31839
31840
31841
31842
31843
31844
31845
31846
31847
31848
31849
31850
31851
31852
31853
31854
31855
31856
31857
31858
31859
31860
31861
31862
31863
31864
31865
31866
31867
31868
31869
31870
31871
31872
31873
31874
31875
31876
31877
31878
31879
31880
31881
31882
31883
31884
31885
31886
31887
31888
31889
31890
31891
31892
31893
31894
31895
31896
31897
31898
31899
31900
31901
31902
31903
31904
31905
31906
31907
31908
31909
31910
31911
31912
31913
31914
31915
31916
31917
31918
31919
31920
31921
31922
31923
31924
31925
31926
31927
31928
31929
31930
31931
31932
31933
31934
31935
31936
31937
31938
31939
31940
31941
31942
31943
31944
31945
31946
31947
31948
31949
31950
31951
31952
31953
31954
31955
31956
31957
31958
31959
31960
31961
31962
31963
31964
31965
31966
31967
31968
31969
31970
31971
31972
31973
31974
31975
31976
31977
31978
31979
31980
31981
31982
31983
31984
31985
31986
31987
31988
31989
31990
31991
31992
31993
31994
31995
31996
31997
31998
31999
32000
32001
32002
32003
32004
32005
32006
32007
32008
32009
32010
32011
32012
32013
32014
32015
32016
32017
32018
32019
32020
32021
32022
32023
32024
32025
32026
32027
32028
32029
32030
32031
32032
32033
32034
32035
32036
32037
32038
32039
32040
32041
32042
32043
32044
32045
32046
32047
32048
32049
32050
32051
32052
32053
32054
32055
32056
32057
32058
32059
32060
32061
32062
32063
32064
32065
32066
32067
32068
32069
32070
32071
32072
32073
32074
32075
32076
32077
32078
32079
32080
32081
32082
32083
32084
32085
32086
32087
32088
32089
32090
32091
32092
32093
32094
32095
32096
32097
32098
32099
32100
32101
32102
32103
32104
32105
32106
32107
32108
32109
32110
32111
32112
32113
32114
32115
32116
32117
32118
32119
32120
32121
32122
32123
32124
32125
32126
32127
32128
32129
32130
32131
32132
32133
32134
32135
32136
32137
32138
32139
32140
32141
32142
32143
32144
32145
32146
32147
32148
32149
32150
32151
32152
32153
32154
32155
32156
32157
32158
32159
32160
32161
32162
32163
32164
32165
32166
32167
32168
32169
32170
32171
32172
32173
32174
32175
32176
32177
32178
32179
32180
32181
32182
32183
32184
32185
32186
32187
32188
32189
32190
32191
32192
32193
32194
32195
32196
32197
32198
32199
32200
32201
32202
32203
32204
32205
32206
32207
32208
32209
32210
32211
32212
32213
32214
32215
32216
32217
32218
32219
32220
32221
32222
32223
32224
32225
32226
32227
32228
32229
32230
32231
32232
32233
32234
32235
32236
32237
32238
32239
32240
32241
32242
32243
32244
32245
32246
32247
32248
32249
32250
32251
32252
32253
32254
32255
32256
32257
32258
32259
32260
32261
32262
32263
32264
32265
32266
32267
32268
32269
32270
32271
32272
32273
32274
32275
32276
32277
32278
32279
32280
32281
32282
32283
32284
32285
32286
32287
32288
32289
32290
32291
32292
32293
32294
32295
32296
32297
32298
32299
32300
32301
32302
32303
32304
32305
32306
32307
32308
32309
32310
32311
32312
32313
32314
32315
32316
32317
32318
32319
32320
32321
32322
32323
32324
32325
32326
32327
32328
32329
32330
32331
32332
32333
32334
32335
32336
32337
32338
32339
32340
32341
32342
32343
32344
32345
32346
32347
32348
32349
32350
32351
32352
32353
32354
32355
32356
32357
32358
32359
32360
32361
32362
32363
32364
32365
32366
32367
32368
32369
32370
32371
32372
32373
32374
32375
32376
32377
32378
32379
32380
32381
32382
32383
32384
32385
32386
32387
32388
32389
32390
32391
32392
32393
32394
32395
32396
32397
32398
32399
32400
32401
32402
32403
32404
32405
32406
32407
32408
32409
32410
32411
32412
32413
32414
32415
32416
32417
32418
32419
32420
32421
32422
32423
32424
32425
32426
32427
32428
32429
32430
32431
32432
32433
32434
32435
32436
32437
32438
32439
32440
32441
32442
32443
32444
32445
32446
32447
32448
32449
32450
32451
32452
32453
32454
32455
32456
32457
32458
32459
32460
32461
32462
32463
32464
32465
32466
32467
32468
32469
32470
32471
32472
32473
32474
32475
32476
32477
32478
32479
32480
32481
32482
32483
32484
32485
32486
32487
32488
32489
32490
32491
32492
32493
32494
32495
32496
32497
32498
32499
32500
32501
32502
32503
32504
32505
32506
32507
32508
32509
32510
32511
32512
32513
32514
32515
32516
32517
32518
32519
32520
32521
32522
32523
32524
32525
32526
32527
32528
32529
32530
32531
32532
32533
32534
32535
32536
32537
32538
32539
32540
32541
32542
32543
32544
32545
32546
32547
32548
32549
32550
32551
32552
32553
32554
32555
32556
32557
32558
32559
32560
32561
32562
32563
32564
32565
32566
32567
32568
32569
32570
32571
32572
32573
32574
32575
32576
32577
32578
32579
32580
32581
32582
32583
32584
32585
32586
32587
32588
32589
32590
32591
32592
32593
32594
32595
32596
32597
32598
32599
32600
32601
32602
32603
32604
32605
32606
32607
32608
32609
32610
32611
32612
32613
32614
32615
32616
32617
32618
32619
32620
32621
32622
32623
32624
32625
32626
32627
32628
32629
32630
32631
32632
32633
32634
32635
32636
32637
32638
32639
32640
32641
32642
32643
32644
32645
32646
32647
32648
32649
32650
32651
32652
32653
32654
32655
32656
32657
32658
32659
32660
32661
32662
32663
32664
32665
32666
32667
32668
32669
32670
32671
32672
32673
32674
32675
32676
32677
32678
32679
32680
32681
32682
32683
32684
32685
32686
32687
32688
32689
32690
32691
32692
32693
32694
32695
32696
32697
32698
32699
32700
32701
32702
32703
32704
32705
32706
32707
32708
32709
32710
32711
32712
32713
32714
32715
32716
32717
32718
32719
32720
32721
32722
32723
32724
32725
32726
32727
32728
32729
32730
32731
32732
32733
32734
32735
32736
32737
32738
32739
32740
32741
32742
32743
32744
32745
32746
32747
32748
32749
32750
32751
32752
32753
32754
32755
32756
32757
32758
32759
32760
32761
32762
32763
32764
32765
32766
32767
32768
32769
32770
32771
32772
32773
32774
32775
32776
32777
32778
32779
32780
32781
32782
32783
32784
32785
32786
32787
32788
32789
32790
32791
32792
32793
32794
32795
32796
32797
32798
32799
32800
32801
32802
32803
32804
32805
32806
32807
32808
32809
32810
32811
32812
32813
32814
32815
32816
32817
32818
32819
32820
32821
32822
32823
32824
32825
32826
32827
32828
32829
32830
32831
32832
32833
32834
32835
32836
32837
32838
32839
32840
32841
32842
32843
32844
32845
32846
32847
32848
32849
32850
32851
32852
32853
32854
32855
32856
32857
32858
32859
32860
32861
32862
32863
32864
32865
32866
32867
32868
32869
32870
32871
32872
32873
32874
32875
32876
32877
32878
32879
32880
32881
32882
32883
32884
32885
32886
32887
32888
32889
32890
32891
32892
32893
32894
32895
32896
32897
32898
32899
32900
32901
32902
32903
32904
32905
32906
32907
32908
32909
32910
32911
32912
32913
32914
32915
32916
32917
32918
32919
32920
32921
32922
32923
32924
32925
32926
32927
32928
32929
32930
32931
32932
32933
32934
32935
32936
32937
32938
32939
32940
32941
32942
32943
32944
32945
32946
32947
32948
32949
32950
32951
32952
32953
32954
32955
32956
32957
32958
32959
32960
32961
32962
32963
32964
32965
32966
32967
32968
32969
32970
32971
32972
32973
32974
32975
32976
32977
32978
32979
32980
32981
32982
32983
32984
32985
32986
32987
32988
32989
32990
32991
32992
32993
32994
32995
32996
32997
32998
32999
33000
33001
33002
33003
33004
33005
33006
33007
33008
33009
33010
33011
33012
33013
33014
33015
33016
33017
33018
33019
33020
33021
33022
33023
33024
33025
33026
33027
33028
33029
33030
33031
33032
33033
33034
33035
33036
33037
33038
33039
33040
33041
33042
33043
33044
33045
33046
33047
33048
33049
33050
33051
33052
33053
33054
33055
33056
33057
33058
33059
33060
33061
33062
33063
33064
33065
33066
33067
33068
33069
33070
33071
33072
33073
33074
33075
33076
33077
33078
33079
33080
33081
33082
33083
33084
33085
33086
33087
33088
33089
33090
33091
33092
33093
33094
33095
33096
33097
33098
33099
33100
33101
33102
33103
33104
33105
33106
33107
33108
33109
33110
33111
33112
33113
33114
33115
33116
33117
33118
33119
33120
33121
33122
33123
33124
33125
33126
33127
33128
33129
33130
33131
33132
33133
33134
33135
33136
33137
33138
33139
33140
33141
33142
33143
33144
33145
33146
33147
33148
33149
33150
33151
33152
33153
33154
33155
33156
33157
33158
33159
33160
33161
33162
33163
33164
33165
33166
33167
33168
33169
33170
33171
33172
33173
33174
33175
33176
33177
33178
33179
33180
33181
33182
33183
33184
33185
33186
33187
33188
33189
33190
33191
33192
33193
33194
33195
33196
33197
33198
33199
33200
33201
33202
33203
33204
33205
33206
33207
33208
33209
33210
33211
33212
33213
33214
33215
33216
33217
33218
33219
33220
33221
33222
33223
33224
33225
33226
33227
33228
33229
33230
33231
33232
33233
33234
33235
33236
33237
33238
33239
33240
33241
33242
33243
33244
33245
33246
33247
33248
33249
33250
33251
33252
33253
33254
33255
33256
33257
33258
33259
33260
33261
33262
33263
33264
33265
33266
33267
33268
33269
33270
33271
33272
33273
33274
33275
33276
33277
33278
33279
33280
33281
33282
33283
33284
33285
33286
33287
33288
33289
33290
33291
33292
33293
33294
33295
33296
33297
33298
33299
33300
33301
33302
33303
33304
33305
33306
33307
33308
33309
33310
33311
33312
33313
33314
33315
33316
33317
33318
33319
33320
33321
33322
33323
33324
33325
33326
33327
33328
33329
33330
33331
33332
33333
33334
33335
33336
33337
33338
33339
33340
33341
33342
33343
33344
33345
33346
33347
33348
33349
33350
33351
33352
33353
33354
33355
33356
33357
33358
33359
33360
33361
33362
33363
33364
33365
33366
33367
33368
33369
33370
33371
33372
33373
33374
33375
33376
33377
33378
33379
33380
33381
33382
33383
33384
33385
33386
33387
33388
33389
33390
33391
33392
33393
33394
33395
33396
33397
33398
33399
33400
33401
33402
33403
33404
33405
33406
33407
33408
33409
33410
33411
33412
33413
33414
33415
33416
33417
33418
33419
33420
33421
33422
33423
33424
33425
33426
33427
33428
33429
33430
33431
33432
33433
33434
33435
33436
33437
33438
33439
33440
33441
33442
33443
33444
33445
33446
33447
33448
33449
33450
33451
33452
33453
33454
33455
33456
33457
33458
33459
33460
33461
33462
33463
33464
33465
33466
33467
33468
33469
33470
33471
33472
33473
33474
33475
33476
33477
33478
33479
33480
33481
33482
33483
33484
33485
33486
33487
33488
33489
33490
33491
33492
33493
33494
33495
33496
33497
33498
33499
33500
33501
33502
33503
33504
33505
33506
33507
33508
33509
33510
33511
33512
33513
33514
33515
33516
33517
33518
33519
33520
33521
33522
33523
33524
33525
33526
33527
33528
33529
33530
33531
33532
33533
33534
33535
33536
33537
33538
33539
33540
33541
33542
33543
33544
33545
33546
33547
33548
33549
33550
33551
33552
33553
33554
33555
33556
33557
33558
33559
33560
33561
33562
33563
33564
33565
33566
33567
33568
33569
33570
33571
33572
33573
33574
33575
33576
33577
33578
33579
33580
33581
33582
33583
33584
33585
33586
33587
33588
33589
33590
33591
33592
33593
33594
33595
33596
33597
33598
33599
33600
33601
33602
33603
33604
33605
33606
33607
33608
33609
33610
33611
33612
33613
33614
33615
33616
33617
33618
33619
33620
33621
33622
33623
33624
33625
33626
33627
33628
33629
33630
33631
33632
33633
33634
33635
33636
33637
33638
33639
33640
33641
33642
33643
33644
33645
33646
33647
33648
33649
33650
33651
33652
33653
33654
33655
33656
33657
33658
33659
33660
33661
33662
33663
33664
33665
33666
33667
33668
33669
33670
33671
33672
33673
33674
33675
33676
33677
33678
33679
33680
33681
33682
33683
33684
33685
33686
33687
33688
33689
33690
33691
33692
33693
33694
33695
33696
33697
33698
33699
33700
33701
33702
33703
33704
33705
33706
33707
33708
33709
33710
33711
33712
33713
33714
33715
33716
33717
33718
33719
33720
33721
33722
33723
33724
33725
33726
33727
33728
33729
33730
33731
33732
33733
33734
33735
33736
33737
33738
33739
33740
33741
33742
33743
33744
33745
33746
33747
33748
33749
33750
33751
33752
33753
33754
33755
33756
33757
33758
33759
33760
33761
33762
33763
33764
33765
33766
33767
33768
33769
33770
33771
33772
33773
33774
33775
33776
33777
33778
33779
33780
33781
33782
33783
33784
33785
33786
33787
33788
33789
33790
33791
33792
33793
33794
33795
33796
33797
33798
33799
33800
33801
33802
33803
33804
33805
33806
33807
33808
33809
33810
33811
33812
33813
33814
33815
33816
33817
33818
33819
33820
33821
33822
33823
33824
33825
33826
33827
33828
33829
33830
33831
33832
33833
33834
33835
33836
33837
33838
33839
33840
33841
33842
33843
33844
33845
33846
33847
33848
33849
33850
33851
33852
33853
33854
33855
33856
33857
33858
33859
33860
33861
33862
33863
33864
33865
33866
33867
33868
33869
33870
33871
33872
33873
33874
33875
33876
33877
33878
33879
33880
33881
33882
33883
33884
33885
33886
33887
33888
33889
33890
33891
33892
33893
33894
33895
33896
33897
33898
33899
33900
33901
33902
33903
33904
33905
33906
33907
33908
33909
33910
33911
33912
33913
33914
33915
33916
33917
33918
33919
33920
33921
33922
33923
33924
33925
33926
33927
33928
33929
33930
33931
33932
33933
33934
33935
33936
33937
33938
33939
33940
33941
33942
33943
33944
33945
33946
33947
33948
33949
33950
33951
33952
33953
33954
33955
33956
33957
33958
33959
33960
33961
33962
33963
33964
33965
33966
33967
33968
33969
33970
33971
33972
33973
33974
33975
33976
33977
33978
33979
33980
33981
33982
33983
33984
33985
33986
33987
33988
33989
33990
33991
33992
33993
33994
33995
33996
33997
33998
33999
34000
34001
34002
34003
34004
34005
34006
34007
34008
34009
34010
34011
34012
34013
34014
34015
34016
34017
34018
34019
34020
34021
34022
34023
34024
34025
34026
34027
34028
34029
34030
34031
34032
34033
34034
34035
34036
34037
34038
34039
34040
34041
34042
34043
34044
34045
34046
34047
34048
34049
34050
34051
34052
34053
34054
34055
34056
34057
34058
34059
34060
34061
34062
34063
34064
34065
34066
34067
34068
34069
34070
34071
34072
34073
34074
34075
34076
34077
34078
34079
34080
34081
34082
34083
34084
34085
34086
34087
34088
34089
34090
34091
34092
34093
34094
34095
34096
34097
34098
34099
34100
34101
34102
34103
34104
34105
34106
34107
34108
34109
34110
34111
34112
34113
34114
34115
34116
34117
34118
34119
34120
34121
34122
34123
34124
34125
34126
34127
34128
34129
34130
34131
34132
34133
34134
34135
34136
34137
34138
34139
34140
34141
34142
34143
34144
34145
34146
34147
34148
34149
34150
34151
34152
34153
34154
34155
34156
34157
34158
34159
34160
34161
34162
34163
34164
34165
34166
34167
34168
34169
34170
34171
34172
34173
34174
34175
34176
34177
34178
34179
34180
34181
34182
34183
34184
34185
34186
34187
34188
34189
34190
34191
34192
34193
34194
34195
34196
34197
34198
34199
34200
34201
34202
34203
34204
34205
34206
34207
34208
34209
34210
34211
34212
34213
34214
34215
34216
34217
34218
34219
34220
34221
34222
34223
34224
34225
34226
34227
34228
34229
34230
34231
34232
34233
34234
34235
34236
34237
34238
34239
34240
34241
34242
34243
34244
34245
34246
34247
34248
34249
34250
34251
34252
34253
34254
34255
34256
34257
34258
34259
34260
34261
34262
34263
34264
34265
34266
34267
34268
34269
34270
34271
34272
34273
34274
34275
34276
34277
34278
34279
34280
34281
34282
34283
34284
34285
34286
34287
34288
34289
34290
34291
34292
34293
34294
34295
34296
34297
34298
34299
34300
34301
34302
34303
34304
34305
34306
34307
34308
34309
34310
34311
34312
34313
34314
34315
34316
34317
34318
34319
34320
34321
34322
34323
34324
34325
34326
34327
34328
34329
34330
34331
34332
34333
34334
34335
34336
34337
34338
34339
34340
34341
34342
34343
34344
34345
34346
34347
34348
34349
34350
34351
34352
34353
34354
34355
34356
34357
34358
34359
34360
34361
34362
34363
34364
34365
34366
34367
34368
34369
34370
34371
34372
34373
34374
34375
34376
34377
34378
34379
34380
34381
34382
34383
34384
34385
34386
34387
34388
34389
34390
34391
34392
34393
34394
34395
34396
34397
34398
34399
34400
34401
34402
34403
34404
34405
34406
34407
34408
34409
34410
34411
34412
34413
34414
34415
34416
34417
34418
34419
34420
34421
34422
34423
34424
34425
34426
34427
34428
34429
34430
34431
34432
34433
34434
34435
34436
34437
34438
34439
34440
34441
34442
34443
34444
34445
34446
34447
34448
34449
34450
34451
34452
34453
34454
34455
34456
34457
34458
34459
34460
34461
34462
34463
34464
34465
34466
34467
34468
34469
34470
34471
34472
34473
34474
34475
34476
34477
34478
34479
34480
34481
34482
34483
34484
34485
34486
34487
34488
34489
34490
34491
34492
34493
34494
34495
34496
34497
34498
34499
34500
34501
34502
34503
34504
34505
34506
34507
34508
34509
34510
34511
34512
34513
34514
34515
34516
34517
34518
34519
34520
34521
34522
34523
34524
34525
34526
34527
34528
34529
34530
34531
34532
34533
34534
34535
34536
34537
34538
34539
34540
34541
34542
34543
34544
34545
34546
34547
34548
34549
34550
34551
34552
34553
34554
34555
34556
34557
34558
34559
34560
34561
34562
34563
34564
34565
34566
34567
34568
34569
34570
34571
34572
34573
34574
34575
34576
34577
34578
34579
34580
34581
34582
34583
34584
34585
34586
34587
34588
34589
34590
34591
34592
34593
34594
34595
34596
34597
34598
34599
34600
34601
34602
34603
34604
34605
34606
34607
34608
34609
34610
34611
34612
34613
34614
34615
34616
34617
34618
34619
34620
34621
34622
34623
34624
34625
34626
34627
34628
34629
34630
34631
34632
34633
34634
34635
34636
34637
34638
34639
34640
34641
34642
34643
34644
34645
34646
34647
34648
34649
34650
34651
34652
34653
34654
34655
34656
34657
34658
34659
34660
34661
34662
34663
34664
34665
34666
34667
34668
34669
34670
34671
34672
34673
34674
34675
34676
34677
34678
34679
34680
34681
34682
34683
34684
34685
34686
34687
34688
34689
34690
34691
34692
34693
34694
34695
34696
34697
34698
34699
34700
34701
34702
34703
34704
34705
34706
34707
34708
34709
34710
34711
34712
34713
34714
34715
34716
34717
34718
34719
34720
34721
34722
34723
34724
34725
34726
34727
34728
34729
34730
34731
34732
34733
34734
34735
34736
34737
34738
34739
34740
34741
34742
34743
34744
34745
34746
34747
34748
34749
34750
34751
34752
34753
34754
34755
34756
34757
34758
34759
34760
34761
34762
34763
34764
34765
34766
34767
34768
34769
34770
34771
34772
34773
34774
34775
34776
34777
34778
34779
34780
34781
34782
34783
34784
34785
34786
34787
34788
34789
34790
34791
34792
34793
34794
34795
34796
34797
34798
34799
34800
34801
34802
34803
34804
34805
34806
34807
34808
34809
34810
34811
34812
34813
34814
34815
34816
34817
34818
34819
34820
34821
34822
34823
34824
34825
34826
34827
34828
34829
34830
34831
34832
34833
34834
34835
34836
34837
34838
34839
34840
34841
34842
34843
34844
34845
34846
34847
34848
34849
34850
34851
34852
34853
34854
34855
34856
34857
34858
34859
34860
34861
34862
34863
34864
34865
34866
34867
34868
34869
34870
34871
34872
34873
34874
34875
34876
34877
34878
34879
34880
34881
34882
34883
34884
34885
34886
34887
34888
34889
34890
34891
34892
34893
34894
34895
34896
34897
34898
34899
34900
34901
34902
34903
34904
34905
34906
34907
34908
34909
34910
34911
34912
34913
34914
34915
34916
34917
34918
34919
34920
34921
34922
34923
34924
34925
34926
34927
34928
34929
34930
34931
34932
34933
34934
34935
34936
34937
34938
34939
34940
34941
34942
34943
34944
34945
34946
34947
34948
34949
34950
34951
34952
34953
34954
34955
34956
34957
34958
34959
34960
34961
34962
34963
34964
34965
34966
34967
34968
34969
34970
34971
34972
34973
34974
34975
34976
34977
34978
34979
34980
34981
34982
34983
34984
34985
34986
34987
34988
34989
34990
34991
34992
34993
34994
34995
34996
34997
34998
34999
35000
35001
35002
35003
35004
35005
35006
35007
35008
35009
35010
35011
35012
35013
35014
35015
35016
35017
35018
35019
35020
35021
35022
35023
35024
35025
35026
35027
35028
35029
35030
35031
35032
35033
35034
35035
35036
35037
35038
35039
35040
35041
35042
35043
35044
35045
35046
35047
35048
35049
35050
35051
35052
35053
35054
35055
35056
35057
35058
35059
35060
35061
35062
35063
35064
35065
35066
35067
35068
35069
35070
35071
35072
35073
35074
35075
35076
35077
35078
35079
35080
35081
35082
35083
35084
35085
35086
35087
35088
35089
35090
35091
35092
35093
35094
35095
35096
35097
35098
35099
35100
35101
35102
35103
35104
35105
35106
35107
35108
35109
35110
35111
35112
35113
35114
35115
35116
35117
35118
35119
35120
35121
35122
35123
35124
35125
35126
35127
35128
35129
35130
35131
35132
35133
35134
35135
35136
35137
35138
35139
35140
35141
35142
35143
35144
35145
35146
35147
35148
35149
35150
35151
35152
35153
35154
35155
35156
35157
35158
35159
35160
35161
35162
35163
35164
35165
35166
35167
35168
35169
35170
35171
35172
35173
35174
35175
35176
35177
35178
35179
35180
35181
35182
35183
35184
35185
35186
35187
35188
35189
35190
35191
35192
35193
35194
35195
35196
35197
35198
35199
35200
35201
35202
35203
35204
35205
35206
35207
35208
35209
35210
35211
35212
35213
35214
35215
35216
35217
35218
35219
35220
35221
35222
35223
35224
35225
35226
35227
35228
35229
35230
35231
35232
35233
35234
35235
35236
35237
35238
35239
35240
35241
35242
35243
35244
35245
35246
35247
35248
35249
35250
35251
35252
35253
35254
35255
35256
35257
35258
35259
35260
35261
35262
35263
35264
35265
35266
35267
35268
35269
35270
35271
35272
35273
35274
35275
35276
35277
35278
35279
35280
35281
35282
35283
35284
35285
35286
35287
35288
35289
35290
35291
35292
35293
35294
35295
35296
35297
35298
35299
35300
35301
35302
35303
35304
35305
35306
35307
35308
35309
35310
35311
35312
35313
35314
35315
35316
35317
35318
35319
35320
35321
35322
35323
35324
35325
35326
35327
35328
35329
35330
35331
35332
35333
35334
35335
35336
35337
35338
35339
35340
35341
35342
35343
35344
35345
35346
35347
35348
35349
35350
35351
35352
35353
35354
35355
35356
35357
35358
35359
35360
35361
35362
35363
35364
35365
35366
35367
35368
35369
35370
35371
35372
35373
35374
35375
35376
35377
35378
35379
35380
35381
35382
35383
35384
35385
35386
35387
35388
35389
35390
35391
35392
35393
35394
35395
35396
35397
35398
35399
35400
35401
35402
35403
35404
35405
35406
35407
35408
35409
35410
35411
35412
35413
35414
35415
35416
35417
35418
35419
35420
35421
35422
35423
35424
35425
35426
35427
35428
35429
35430
35431
35432
35433
35434
35435
35436
35437
35438
35439
35440
35441
35442
35443
35444
35445
35446
35447
35448
35449
35450
35451
35452
35453
35454
35455
35456
35457
35458
35459
35460
35461
35462
35463
35464
35465
35466
35467
35468
35469
35470
35471
35472
35473
35474
35475
35476
35477
35478
35479
35480
35481
35482
35483
35484
35485
35486
35487
35488
35489
35490
35491
35492
35493
35494
35495
35496
35497
35498
35499
35500
35501
35502
35503
35504
35505
35506
35507
35508
35509
35510
35511
35512
35513
35514
35515
35516
35517
35518
35519
35520
35521
35522
35523
35524
35525
35526
35527
35528
35529
35530
35531
35532
35533
35534
35535
35536
35537
35538
35539
35540
35541
35542
35543
35544
35545
35546
35547
35548
35549
35550
35551
35552
35553
35554
35555
35556
35557
35558
35559
35560
35561
35562
35563
35564
35565
35566
35567
35568
35569
35570
35571
35572
35573
35574
35575
35576
35577
35578
35579
35580
35581
35582
35583
35584
35585
35586
35587
35588
35589
35590
35591
35592
35593
35594
35595
35596
35597
35598
35599
35600
35601
35602
35603
35604
35605
35606
35607
35608
35609
35610
35611
35612
35613
35614
35615
35616
35617
35618
35619
35620
35621
35622
35623
35624
35625
35626
35627
35628
35629
35630
35631
35632
35633
35634
35635
35636
35637
35638
35639
35640
35641
35642
35643
35644
35645
35646
35647
35648
35649
35650
35651
35652
35653
35654
35655
35656
35657
35658
35659
35660
35661
35662
35663
35664
35665
35666
35667
35668
35669
35670
35671
35672
35673
35674
35675
35676
35677
35678
35679
35680
35681
35682
35683
35684
35685
35686
35687
35688
35689
35690
35691
35692
35693
35694
35695
35696
35697
35698
35699
35700
35701
35702
35703
35704
35705
35706
35707
35708
35709
35710
35711
35712
35713
35714
35715
35716
35717
35718
35719
35720
35721
35722
35723
35724
35725
35726
35727
35728
35729
35730
35731
35732
35733
35734
35735
35736
35737
35738
35739
35740
35741
35742
35743
35744
35745
35746
35747
35748
35749
35750
35751
35752
35753
35754
35755
35756
35757
35758
35759
35760
35761
35762
35763
35764
35765
35766
35767
35768
35769
35770
35771
35772
35773
35774
35775
35776
35777
35778
35779
35780
35781
35782
35783
35784
35785
35786
35787
35788
35789
35790
35791
35792
35793
35794
35795
35796
35797
35798
35799
35800
35801
35802
35803
35804
35805
35806
35807
35808
35809
35810
35811
35812
35813
35814
35815
35816
35817
35818
35819
35820
35821
35822
35823
35824
35825
35826
35827
35828
35829
35830
35831
35832
35833
35834
35835
35836
35837
35838
35839
35840
35841
35842
35843
35844
35845
35846
35847
35848
35849
35850
35851
35852
35853
35854
35855
35856
35857
35858
35859
35860
35861
35862
35863
35864
35865
35866
35867
35868
35869
35870
35871
35872
35873
35874
35875
35876
35877
35878
35879
35880
35881
35882
35883
35884
35885
35886
35887
35888
35889
35890
35891
35892
35893
35894
35895
35896
35897
35898
35899
35900
35901
35902
35903
35904
35905
35906
35907
35908
35909
35910
35911
35912
35913
35914
35915
35916
35917
35918
35919
35920
35921
35922
35923
35924
35925
35926
35927
35928
35929
35930
35931
35932
35933
35934
35935
35936
35937
35938
35939
35940
35941
35942
35943
35944
35945
35946
35947
35948
35949
35950
35951
35952
35953
35954
35955
35956
35957
35958
35959
35960
35961
35962
35963
35964
35965
35966
35967
35968
35969
35970
35971
35972
35973
35974
35975
35976
35977
35978
35979
35980
35981
35982
35983
35984
35985
35986
35987
35988
35989
35990
35991
35992
35993
35994
35995
35996
35997
35998
35999
36000
36001
36002
36003
36004
36005
36006
36007
36008
36009
36010
36011
36012
36013
36014
36015
36016
36017
36018
36019
36020
36021
36022
36023
36024
36025
36026
36027
36028
36029
36030
36031
36032
36033
36034
36035
36036
36037
36038
36039
36040
36041
36042
36043
36044
36045
36046
36047
36048
36049
36050
36051
36052
36053
36054
36055
36056
36057
36058
36059
36060
36061
36062
36063
36064
36065
36066
36067
36068
36069
36070
36071
36072
36073
36074
36075
36076
36077
36078
36079
36080
36081
36082
36083
36084
36085
36086
36087
36088
36089
36090
36091
36092
36093
36094
36095
36096
36097
36098
36099
36100
36101
36102
36103
36104
36105
36106
36107
36108
36109
36110
36111
36112
36113
36114
36115
36116
36117
36118
36119
36120
36121
36122
36123
36124
36125
36126
36127
36128
36129
36130
36131
36132
36133
36134
36135
36136
36137
36138
36139
36140
36141
36142
36143
36144
36145
36146
36147
36148
36149
36150
36151
36152
36153
36154
36155
36156
36157
36158
36159
36160
36161
36162
36163
36164
36165
36166
36167
36168
36169
36170
36171
36172
36173
36174
36175
36176
36177
36178
36179
36180
36181
36182
36183
36184
36185
36186
36187
36188
36189
36190
36191
36192
36193
36194
36195
36196
36197
36198
36199
36200
36201
36202
36203
36204
36205
36206
36207
36208
36209
36210
36211
36212
36213
36214
36215
36216
36217
36218
36219
36220
36221
36222
36223
36224
36225
36226
36227
36228
36229
36230
36231
36232
36233
36234
36235
36236
36237
36238
36239
36240
36241
36242
36243
36244
36245
36246
36247
36248
36249
36250
36251
36252
36253
36254
36255
36256
36257
36258
36259
36260
36261
36262
36263
36264
36265
36266
36267
36268
36269
36270
36271
36272
36273
36274
36275
36276
36277
36278
36279
36280
36281
36282
36283
36284
36285
36286
36287
36288
36289
36290
36291
36292
36293
36294
36295
36296
36297
36298
36299
36300
36301
36302
36303
36304
36305
36306
36307
36308
36309
36310
36311
36312
36313
36314
36315
36316
36317
36318
36319
36320
36321
36322
36323
36324
36325
36326
36327
36328
36329
36330
36331
36332
36333
36334
36335
36336
36337
36338
36339
36340
36341
36342
36343
36344
36345
36346
36347
36348
36349
36350
36351
36352
36353
36354
36355
36356
36357
36358
36359
36360
36361
36362
36363
36364
36365
36366
36367
36368
36369
36370
36371
36372
36373
36374
36375
36376
36377
36378
36379
36380
36381
36382
36383
36384
36385
36386
36387
36388
36389
36390
36391
36392
36393
36394
36395
36396
36397
36398
36399
36400
36401
36402
36403
36404
36405
36406
36407
36408
36409
36410
36411
36412
36413
36414
36415
36416
36417
36418
36419
36420
36421
36422
36423
36424
36425
36426
36427
36428
36429
36430
36431
36432
36433
36434
36435
36436
36437
36438
36439
36440
36441
36442
36443
36444
36445
36446
36447
36448
36449
36450
36451
36452
36453
36454
36455
36456
36457
36458
36459
36460
36461
36462
36463
36464
36465
36466
36467
36468
36469
36470
36471
36472
36473
36474
36475
36476
36477
36478
36479
36480
36481
36482
36483
36484
36485
36486
36487
36488
36489
36490
36491
36492
36493
36494
36495
36496
36497
36498
36499
36500
36501
36502
36503
36504
36505
36506
36507
36508
36509
36510
36511
36512
36513
36514
36515
36516
36517
36518
36519
36520
36521
36522
36523
36524
36525
36526
36527
36528
36529
36530
36531
36532
36533
36534
36535
36536
36537
36538
36539
36540
36541
36542
36543
36544
36545
36546
36547
36548
36549
36550
36551
36552
36553
36554
36555
36556
36557
36558
36559
36560
36561
36562
36563
36564
36565
36566
36567
36568
36569
36570
36571
36572
36573
36574
36575
36576
36577
36578
36579
36580
36581
36582
36583
36584
36585
36586
36587
36588
36589
36590
36591
36592
36593
36594
36595
36596
36597
36598
36599
36600
36601
36602
36603
36604
36605
36606
36607
36608
36609
36610
36611
36612
36613
36614
36615
36616
36617
36618
36619
36620
36621
36622
36623
36624
36625
36626
36627
36628
36629
36630
36631
36632
36633
36634
36635
36636
36637
36638
36639
36640
36641
36642
36643
36644
36645
36646
36647
36648
36649
36650
36651
36652
36653
36654
36655
36656
36657
36658
36659
36660
36661
36662
36663
36664
36665
36666
36667
36668
36669
36670
36671
36672
36673
36674
36675
36676
36677
36678
36679
36680
36681
36682
36683
36684
36685
36686
36687
36688
36689
36690
36691
36692
36693
36694
36695
36696
36697
36698
36699
36700
36701
36702
36703
36704
36705
36706
36707
36708
36709
36710
36711
36712
36713
36714
36715
36716
36717
36718
36719
36720
36721
36722
36723
36724
36725
36726
36727
36728
36729
36730
36731
36732
36733
36734
36735
36736
36737
36738
36739
36740
36741
36742
36743
36744
36745
36746
36747
36748
36749
36750
36751
36752
36753
36754
36755
36756
36757
36758
36759
36760
36761
36762
36763
36764
36765
36766
36767
36768
36769
36770
36771
36772
36773
36774
36775
36776
36777
36778
36779
36780
36781
36782
36783
36784
36785
36786
36787
36788
36789
36790
36791
36792
36793
36794
36795
36796
36797
36798
36799
36800
36801
36802
36803
36804
36805
36806
36807
36808
36809
36810
36811
36812
36813
36814
36815
36816
36817
36818
36819
36820
36821
36822
36823
36824
36825
36826
36827
36828
36829
36830
36831
36832
36833
36834
36835
36836
36837
36838
36839
36840
36841
36842
36843
36844
36845
36846
36847
36848
36849
36850
36851
36852
36853
36854
36855
36856
36857
36858
36859
36860
36861
36862
36863
36864
36865
36866
36867
36868
36869
36870
36871
36872
36873
36874
36875
36876
36877
36878
36879
36880
36881
36882
36883
36884
36885
36886
36887
36888
36889
36890
36891
36892
36893
36894
36895
36896
36897
36898
36899
36900
36901
36902
36903
36904
36905
36906
36907
36908
36909
36910
36911
36912
36913
36914
36915
36916
36917
36918
36919
36920
36921
36922
36923
36924
36925
36926
36927
36928
36929
36930
36931
36932
36933
36934
36935
36936
36937
36938
36939
36940
36941
36942
36943
36944
36945
36946
36947
36948
36949
36950
36951
36952
36953
36954
36955
36956
36957
36958
36959
36960
36961
36962
36963
36964
36965
36966
36967
36968
36969
36970
36971
36972
36973
36974
36975
36976
36977
36978
36979
36980
36981
36982
36983
36984
36985
36986
36987
36988
36989
36990
36991
36992
36993
36994
36995
36996
36997
36998
36999
37000
37001
37002
37003
37004
37005
37006
37007
37008
37009
37010
37011
37012
37013
37014
37015
37016
37017
37018
37019
37020
37021
37022
37023
37024
37025
37026
37027
37028
37029
37030
37031
37032
37033
37034
37035
37036
37037
37038
37039
37040
37041
37042
37043
37044
37045
37046
37047
37048
37049
37050
37051
37052
37053
37054
37055
37056
37057
37058
37059
37060
37061
37062
37063
37064
37065
37066
37067
37068
37069
37070
37071
37072
37073
37074
37075
37076
37077
37078
37079
37080
37081
37082
37083
37084
37085
37086
37087
37088
37089
37090
37091
37092
37093
37094
37095
37096
37097
37098
37099
37100
37101
37102
37103
37104
37105
37106
37107
37108
37109
37110
37111
37112
37113
37114
37115
37116
37117
37118
37119
37120
37121
37122
37123
37124
37125
37126
37127
37128
37129
37130
37131
37132
37133
37134
37135
37136
37137
37138
37139
37140
37141
37142
37143
37144
37145
37146
37147
37148
37149
37150
37151
37152
37153
37154
37155
37156
37157
37158
37159
37160
37161
37162
37163
37164
37165
37166
37167
37168
37169
37170
37171
37172
37173
37174
37175
37176
37177
37178
37179
37180
37181
37182
37183
37184
37185
37186
37187
37188
37189
37190
37191
37192
37193
37194
37195
37196
37197
37198
37199
37200
37201
37202
37203
37204
37205
37206
37207
37208
37209
37210
37211
37212
37213
37214
37215
37216
37217
37218
37219
37220
37221
37222
37223
37224
37225
37226
37227
37228
37229
37230
37231
37232
37233
37234
37235
37236
37237
37238
37239
37240
37241
37242
37243
37244
37245
37246
37247
37248
37249
37250
37251
37252
37253
37254
37255
37256
37257
37258
37259
37260
37261
37262
37263
37264
37265
37266
37267
37268
37269
37270
37271
37272
37273
37274
37275
37276
37277
37278
37279
37280
37281
37282
37283
37284
37285
37286
37287
37288
37289
37290
37291
37292
37293
37294
37295
37296
37297
37298
37299
37300
37301
37302
37303
37304
37305
37306
37307
37308
37309
37310
37311
37312
37313
37314
37315
37316
37317
37318
37319
37320
37321
37322
37323
37324
37325
37326
37327
37328
37329
37330
37331
37332
37333
37334
37335
37336
37337
37338
37339
37340
37341
37342
37343
37344
37345
37346
37347
37348
37349
37350
37351
37352
37353
37354
37355
37356
37357
37358
37359
37360
37361
37362
37363
37364
37365
37366
37367
37368
37369
37370
37371
37372
37373
37374
37375
37376
37377
37378
37379
37380
37381
37382
37383
37384
37385
37386
37387
37388
37389
37390
37391
37392
37393
37394
37395
37396
37397
37398
37399
37400
37401
37402
37403
37404
37405
37406
37407
37408
37409
37410
37411
37412
37413
37414
37415
37416
37417
37418
37419
37420
37421
37422
37423
37424
37425
37426
37427
37428
37429
37430
37431
37432
37433
37434
37435
37436
37437
37438
37439
37440
37441
37442
37443
37444
37445
37446
37447
37448
37449
37450
37451
37452
37453
37454
37455
37456
37457
37458
37459
37460
37461
37462
37463
37464
37465
37466
37467
37468
37469
37470
37471
37472
37473
37474
37475
37476
37477
37478
37479
37480
37481
37482
37483
37484
37485
37486
37487
37488
37489
37490
37491
37492
37493
37494
37495
37496
37497
37498
37499
37500
37501
37502
37503
37504
37505
37506
37507
37508
37509
37510
37511
37512
37513
37514
37515
37516
37517
37518
37519
37520
37521
37522
37523
37524
37525
37526
37527
37528
37529
37530
37531
37532
37533
37534
37535
37536
37537
37538
37539
37540
37541
37542
37543
37544
37545
37546
37547
37548
37549
37550
37551
37552
37553
37554
37555
37556
37557
37558
37559
37560
37561
37562
37563
37564
37565
37566
37567
37568
37569
37570
37571
37572
37573
37574
37575
37576
37577
37578
37579
37580
37581
37582
37583
37584
37585
37586
37587
37588
37589
37590
37591
37592
37593
37594
37595
37596
37597
37598
37599
37600
37601
37602
37603
37604
37605
37606
37607
37608
37609
37610
37611
37612
37613
37614
37615
37616
37617
37618
37619
37620
37621
37622
37623
37624
37625
37626
37627
37628
37629
37630
37631
37632
37633
37634
37635
37636
37637
37638
37639
37640
37641
37642
37643
37644
37645
37646
37647
37648
37649
37650
37651
37652
37653
37654
37655
37656
37657
37658
37659
37660
37661
37662
37663
37664
37665
37666
37667
37668
37669
37670
37671
37672
37673
37674
37675
37676
37677
37678
37679
37680
37681
37682
37683
37684
37685
37686
37687
37688
37689
37690
37691
37692
37693
37694
37695
37696
37697
37698
37699
37700
37701
37702
37703
37704
37705
37706
37707
37708
37709
37710
37711
37712
37713
37714
37715
37716
37717
37718
37719
37720
37721
37722
37723
37724
37725
37726
37727
37728
37729
37730
37731
37732
37733
37734
37735
37736
37737
37738
37739
37740
37741
37742
37743
37744
37745
37746
37747
37748
37749
37750
37751
37752
37753
37754
37755
37756
37757
37758
37759
37760
37761
37762
37763
37764
37765
37766
37767
37768
37769
37770
37771
37772
37773
37774
37775
37776
37777
37778
37779
37780
37781
37782
37783
37784
37785
37786
37787
37788
37789
37790
37791
37792
37793
37794
37795
37796
37797
37798
37799
37800
37801
37802
37803
37804
37805
37806
37807
37808
37809
37810
37811
37812
37813
37814
37815
37816
37817
37818
37819
37820
37821
37822
37823
37824
37825
37826
37827
37828
37829
37830
37831
37832
37833
37834
37835
37836
37837
37838
37839
37840
37841
37842
37843
37844
37845
37846
37847
37848
37849
37850
37851
37852
37853
37854
37855
37856
37857
37858
37859
37860
37861
37862
37863
37864
37865
37866
37867
37868
37869
37870
37871
37872
37873
37874
37875
37876
37877
37878
37879
37880
37881
37882
37883
37884
37885
37886
37887
37888
37889
37890
37891
37892
37893
37894
37895
37896
37897
37898
37899
37900
37901
37902
37903
37904
37905
37906
37907
37908
37909
37910
37911
37912
37913
37914
37915
37916
37917
37918
37919
37920
37921
37922
37923
37924
37925
37926
37927
37928
37929
37930
37931
37932
37933
37934
37935
37936
37937
37938
37939
37940
37941
37942
37943
37944
37945
37946
37947
37948
37949
37950
37951
37952
37953
37954
37955
37956
37957
37958
37959
37960
37961
37962
37963
37964
37965
37966
37967
37968
37969
37970
37971
37972
37973
37974
37975
37976
37977
37978
37979
37980
37981
37982
37983
37984
37985
37986
37987
37988
37989
37990
37991
37992
37993
37994
37995
37996
37997
37998
37999
38000
38001
38002
38003
38004
38005
38006
38007
38008
38009
38010
38011
38012
38013
38014
38015
38016
38017
38018
38019
38020
38021
38022
38023
38024
38025
38026
38027
38028
38029
38030
38031
38032
38033
38034
38035
38036
38037
38038
38039
38040
38041
38042
38043
38044
38045
38046
38047
38048
38049
38050
38051
38052
38053
38054
38055
38056
38057
38058
38059
38060
38061
38062
38063
38064
38065
38066
38067
38068
38069
38070
38071
38072
38073
38074
38075
38076
38077
38078
38079
38080
38081
38082
38083
38084
38085
38086
38087
38088
38089
38090
38091
38092
38093
38094
38095
38096
38097
38098
38099
38100
38101
38102
38103
38104
38105
38106
38107
38108
38109
38110
38111
38112
38113
38114
38115
38116
38117
38118
38119
38120
38121
38122
38123
38124
38125
38126
38127
38128
38129
38130
38131
38132
38133
38134
38135
38136
38137
38138
38139
38140
38141
38142
38143
38144
38145
38146
38147
38148
38149
38150
38151
38152
38153
38154
38155
38156
38157
38158
38159
38160
38161
38162
38163
38164
38165
38166
38167
38168
38169
38170
38171
38172
38173
38174
38175
38176
38177
38178
38179
38180
38181
38182
38183
38184
38185
38186
38187
38188
38189
38190
38191
38192
38193
38194
38195
38196
38197
38198
38199
38200
38201
38202
38203
38204
38205
38206
38207
38208
38209
38210
38211
38212
38213
38214
38215
38216
38217
38218
38219
38220
38221
38222
38223
38224
38225
38226
38227
38228
38229
38230
38231
38232
38233
38234
38235
38236
38237
38238
38239
38240
38241
38242
38243
38244
38245
38246
38247
38248
38249
38250
38251
38252
38253
38254
38255
38256
38257
38258
38259
38260
38261
38262
38263
38264
38265
38266
38267
38268
38269
38270
38271
38272
38273
38274
38275
38276
38277
38278
38279
38280
38281
38282
38283
38284
38285
38286
38287
38288
38289
38290
38291
38292
38293
38294
38295
38296
38297
38298
38299
38300
38301
38302
38303
38304
38305
38306
38307
38308
38309
38310
38311
38312
38313
38314
38315
38316
38317
38318
38319
38320
38321
38322
38323
38324
38325
38326
38327
38328
38329
38330
38331
38332
38333
38334
38335
38336
38337
38338
38339
38340
38341
38342
38343
38344
38345
38346
38347
38348
38349
38350
38351
38352
38353
38354
38355
38356
38357
38358
38359
38360
38361
38362
38363
38364
38365
38366
38367
38368
38369
38370
38371
38372
38373
38374
38375
38376
38377
38378
38379
38380
38381
38382
38383
38384
38385
38386
38387
38388
38389
38390
38391
38392
38393
38394
38395
38396
38397
38398
38399
38400
38401
38402
38403
38404
38405
38406
38407
38408
38409
38410
38411
38412
38413
38414
38415
38416
38417
38418
38419
38420
38421
38422
38423
38424
38425
38426
38427
38428
38429
38430
38431
38432
38433
38434
38435
38436
38437
38438
38439
38440
38441
38442
38443
38444
38445
38446
38447
38448
38449
38450
38451
38452
38453
38454
38455
38456
38457
38458
38459
38460
38461
38462
38463
38464
38465
38466
38467
38468
38469
38470
38471
38472
38473
38474
38475
38476
38477
38478
38479
38480
38481
38482
38483
38484
38485
38486
38487
38488
38489
38490
38491
38492
38493
38494
38495
38496
38497
38498
38499
38500
38501
38502
38503
38504
38505
38506
38507
38508
38509
38510
38511
38512
38513
38514
38515
38516
38517
38518
38519
38520
38521
38522
38523
38524
38525
38526
38527
38528
38529
38530
38531
38532
38533
38534
38535
38536
38537
38538
38539
38540
38541
38542
38543
38544
38545
38546
38547
38548
38549
38550
38551
38552
38553
38554
38555
38556
38557
38558
38559
38560
38561
38562
38563
38564
38565
38566
38567
38568
38569
38570
38571
38572
38573
38574
38575
38576
38577
38578
38579
38580
38581
38582
38583
38584
38585
38586
38587
38588
38589
38590
38591
38592
38593
38594
38595
38596
38597
38598
38599
38600
38601
38602
38603
38604
38605
38606
38607
38608
38609
38610
38611
38612
38613
38614
38615
38616
38617
38618
38619
38620
38621
38622
38623
38624
38625
38626
38627
38628
38629
38630
38631
38632
38633
38634
38635
38636
38637
38638
38639
38640
38641
38642
38643
38644
38645
38646
38647
38648
38649
38650
38651
38652
38653
38654
38655
38656
38657
38658
38659
38660
38661
38662
38663
38664
38665
38666
38667
38668
38669
38670
38671
38672
38673
38674
38675
38676
38677
38678
38679
38680
38681
38682
38683
38684
38685
38686
38687
38688
38689
38690
38691
38692
38693
38694
38695
38696
38697
38698
38699
38700
38701
38702
38703
38704
38705
38706
38707
38708
38709
38710
38711
38712
38713
38714
38715
38716
38717
38718
38719
38720
38721
38722
38723
38724
38725
38726
38727
38728
38729
38730
38731
38732
38733
38734
38735
38736
38737
38738
38739
38740
38741
38742
38743
38744
38745
38746
38747
38748
38749
38750
38751
38752
38753
38754
38755
38756
38757
38758
38759
38760
38761
38762
38763
38764
38765
38766
38767
38768
38769
38770
38771
38772
38773
38774
38775
38776
38777
38778
38779
38780
38781
38782
38783
38784
38785
38786
38787
38788
38789
38790
38791
38792
38793
38794
38795
38796
38797
38798
38799
38800
38801
38802
38803
38804
38805
38806
38807
38808
38809
38810
38811
38812
38813
38814
38815
38816
38817
38818
38819
38820
38821
38822
38823
38824
38825
38826
38827
38828
38829
38830
38831
38832
38833
38834
38835
38836
38837
38838
38839
38840
38841
38842
38843
38844
38845
38846
38847
38848
38849
38850
38851
38852
38853
38854
38855
38856
38857
38858
38859
38860
38861
38862
38863
38864
38865
38866
38867
38868
38869
38870
38871
38872
38873
38874
38875
38876
38877
38878
38879
38880
38881
38882
38883
38884
38885
38886
38887
38888
38889
38890
38891
38892
38893
38894
38895
38896
38897
38898
38899
38900
38901
38902
38903
38904
38905
38906
38907
38908
38909
38910
38911
38912
38913
38914
38915
38916
38917
38918
38919
38920
38921
38922
38923
38924
38925
38926
38927
38928
38929
38930
38931
38932
38933
38934
38935
38936
38937
38938
38939
38940
38941
38942
38943
38944
38945
38946
38947
38948
38949
38950
38951
38952
38953
38954
38955
38956
38957
38958
38959
38960
38961
38962
38963
38964
38965
38966
38967
38968
38969
38970
38971
38972
38973
38974
38975
38976
38977
38978
38979
38980
38981
38982
38983
38984
38985
38986
38987
38988
38989
38990
38991
38992
38993
38994
38995
38996
38997
38998
38999
39000
39001
39002
39003
39004
39005
39006
39007
39008
39009
39010
39011
39012
39013
39014
39015
39016
39017
39018
39019
39020
39021
39022
39023
39024
39025
39026
39027
39028
39029
39030
39031
39032
39033
39034
39035
39036
39037
39038
39039
39040
39041
39042
39043
39044
39045
39046
39047
39048
39049
39050
39051
39052
39053
39054
39055
39056
39057
39058
39059
39060
39061
39062
39063
39064
39065
39066
39067
39068
39069
39070
39071
39072
39073
39074
39075
39076
39077
39078
39079
39080
39081
39082
39083
39084
39085
39086
39087
39088
39089
39090
39091
39092
39093
39094
39095
39096
39097
39098
39099
39100
39101
39102
39103
39104
39105
39106
39107
39108
39109
39110
39111
39112
39113
39114
39115
39116
39117
39118
39119
39120
39121
39122
39123
39124
39125
39126
39127
39128
39129
39130
39131
39132
39133
39134
39135
39136
39137
39138
39139
39140
39141
39142
39143
39144
39145
39146
39147
39148
39149
39150
39151
39152
39153
39154
39155
39156
39157
39158
39159
39160
39161
39162
39163
39164
39165
39166
39167
39168
39169
39170
39171
39172
39173
39174
39175
39176
39177
39178
39179
39180
39181
39182
39183
39184
39185
39186
39187
39188
39189
39190
39191
39192
39193
39194
39195
39196
39197
39198
39199
39200
39201
39202
39203
39204
39205
39206
39207
39208
39209
39210
39211
39212
39213
39214
39215
39216
39217
39218
39219
39220
39221
39222
39223
39224
39225
39226
39227
39228
39229
39230
39231
39232
39233
39234
39235
39236
39237
39238
39239
39240
39241
39242
39243
39244
39245
39246
39247
39248
39249
39250
39251
39252
39253
39254
39255
39256
39257
39258
39259
39260
39261
39262
39263
39264
39265
39266
39267
39268
39269
39270
39271
39272
39273
39274
39275
39276
39277
39278
39279
39280
39281
39282
39283
39284
39285
39286
39287
39288
39289
39290
39291
39292
39293
39294
39295
39296
39297
39298
39299
39300
39301
39302
39303
39304
39305
39306
39307
39308
39309
39310
39311
39312
39313
39314
39315
39316
39317
39318
39319
39320
39321
39322
39323
39324
39325
39326
39327
39328
39329
39330
39331
39332
39333
39334
39335
39336
39337
39338
39339
39340
39341
39342
39343
39344
39345
39346
39347
39348
39349
39350
39351
39352
39353
39354
39355
39356
39357
39358
39359
39360
39361
39362
39363
39364
39365
39366
39367
39368
39369
39370
39371
39372
39373
39374
39375
39376
39377
39378
39379
39380
39381
39382
39383
39384
39385
39386
39387
39388
39389
39390
39391
39392
39393
39394
39395
39396
39397
39398
39399
39400
39401
39402
39403
39404
39405
39406
39407
39408
39409
39410
39411
39412
39413
39414
39415
39416
39417
39418
39419
39420
39421
39422
39423
39424
39425
39426
39427
39428
39429
39430
39431
39432
39433
39434
39435
39436
39437
39438
39439
39440
39441
39442
39443
39444
39445
39446
39447
39448
39449
39450
39451
39452
39453
39454
39455
39456
39457
39458
39459
39460
39461
39462
39463
39464
39465
39466
39467
39468
39469
39470
39471
39472
39473
39474
39475
39476
39477
39478
39479
39480
39481
39482
39483
39484
39485
39486
39487
39488
39489
39490
39491
39492
39493
39494
39495
39496
39497
39498
39499
39500
39501
39502
39503
39504
39505
39506
39507
39508
39509
39510
39511
39512
39513
39514
39515
39516
39517
39518
39519
39520
39521
39522
39523
39524
39525
39526
39527
39528
39529
39530
39531
39532
39533
39534
39535
39536
39537
39538
39539
39540
39541
39542
39543
39544
39545
39546
39547
39548
39549
39550
39551
39552
39553
39554
39555
39556
39557
39558
39559
39560
39561
39562
39563
39564
39565
39566
39567
39568
39569
39570
39571
39572
39573
39574
39575
39576
39577
39578
39579
39580
39581
39582
39583
39584
39585
39586
39587
39588
39589
39590
39591
39592
39593
39594
39595
39596
39597
39598
39599
39600
39601
39602
39603
39604
39605
39606
39607
39608
39609
39610
39611
39612
39613
39614
39615
39616
39617
39618
39619
39620
39621
39622
39623
39624
39625
39626
39627
39628
39629
39630
39631
39632
39633
39634
39635
39636
39637
39638
39639
39640
39641
39642
39643
39644
39645
39646
39647
39648
39649
39650
39651
39652
39653
39654
39655
39656
39657
39658
39659
39660
39661
39662
39663
39664
39665
39666
39667
39668
39669
39670
39671
39672
39673
39674
39675
39676
39677
39678
39679
39680
39681
39682
39683
39684
39685
39686
39687
39688
39689
39690
39691
39692
39693
39694
39695
39696
39697
39698
39699
39700
39701
39702
39703
39704
39705
39706
39707
39708
39709
39710
39711
39712
39713
39714
39715
39716
39717
39718
39719
39720
39721
39722
39723
39724
39725
39726
39727
39728
39729
39730
39731
39732
39733
39734
39735
39736
39737
39738
39739
39740
39741
39742
39743
39744
39745
39746
39747
39748
39749
39750
39751
39752
39753
39754
39755
39756
39757
39758
39759
39760
39761
39762
39763
39764
39765
39766
39767
39768
39769
39770
39771
39772
39773
39774
39775
39776
39777
39778
39779
39780
39781
39782
39783
39784
39785
39786
39787
39788
39789
39790
39791
39792
39793
39794
39795
39796
39797
39798
39799
39800
39801
39802
39803
39804
39805
39806
39807
39808
39809
39810
39811
39812
39813
39814
39815
39816
39817
39818
39819
39820
39821
39822
39823
39824
39825
39826
39827
39828
39829
39830
39831
39832
39833
39834
39835
39836
39837
39838
39839
39840
39841
39842
39843
39844
39845
39846
39847
39848
39849
39850
39851
39852
39853
39854
39855
39856
39857
39858
39859
39860
39861
39862
39863
39864
39865
39866
39867
39868
39869
39870
39871
39872
39873
39874
39875
39876
39877
39878
39879
39880
39881
39882
39883
39884
39885
39886
39887
39888
39889
39890
39891
39892
39893
39894
39895
39896
39897
39898
39899
39900
39901
39902
39903
39904
39905
39906
39907
39908
39909
39910
39911
39912
39913
39914
39915
39916
39917
39918
39919
39920
39921
39922
39923
39924
39925
39926
39927
39928
39929
39930
39931
39932
39933
39934
39935
39936
39937
39938
39939
39940
39941
39942
39943
39944
39945
39946
39947
39948
39949
39950
39951
39952
39953
39954
39955
39956
39957
39958
39959
39960
39961
39962
39963
39964
39965
39966
39967
39968
39969
39970
39971
39972
39973
39974
39975
39976
39977
39978
39979
39980
39981
39982
39983
39984
39985
39986
39987
39988
39989
39990
39991
39992
39993
39994
39995
39996
39997
39998
39999
40000
40001
40002
40003
40004
40005
40006
40007
40008
40009
40010
40011
40012
40013
40014
40015
40016
40017
40018
40019
40020
40021
40022
40023
40024
40025
40026
40027
40028
40029
40030
40031
40032
40033
40034
40035
40036
40037
40038
40039
40040
40041
40042
40043
40044
40045
40046
40047
40048
40049
40050
40051
40052
40053
40054
40055
40056
40057
40058
40059
40060
40061
40062
40063
40064
40065
40066
40067
40068
40069
40070
40071
40072
40073
40074
40075
40076
40077
40078
40079
40080
40081
40082
40083
40084
40085
40086
40087
40088
40089
40090
40091
40092
40093
40094
40095
40096
40097
40098
40099
40100
40101
40102
40103
40104
40105
40106
40107
40108
40109
40110
40111
40112
40113
40114
40115
40116
40117
40118
40119
40120
40121
40122
40123
40124
40125
40126
40127
40128
40129
40130
40131
40132
40133
40134
40135
40136
40137
40138
40139
40140
40141
40142
40143
40144
40145
40146
40147
40148
40149
40150
40151
40152
40153
40154
40155
40156
40157
40158
40159
40160
40161
40162
40163
40164
40165
40166
40167
40168
40169
40170
40171
40172
40173
40174
40175
40176
40177
40178
40179
40180
40181
40182
40183
40184
40185
40186
40187
40188
40189
40190
40191
40192
40193
40194
40195
40196
40197
40198
40199
40200
40201
40202
40203
40204
40205
40206
40207
40208
40209
40210
40211
40212
40213
40214
40215
40216
40217
40218
40219
40220
40221
40222
40223
40224
40225
40226
40227
40228
40229
40230
40231
40232
40233
40234
40235
40236
40237
40238
40239
40240
40241
40242
40243
40244
40245
40246
40247
40248
40249
40250
40251
40252
40253
40254
40255
40256
40257
40258
40259
40260
40261
40262
40263
40264
40265
40266
40267
40268
40269
40270
40271
40272
40273
40274
40275
40276
40277
40278
40279
40280
40281
40282
40283
40284
40285
40286
40287
40288
40289
40290
40291
40292
40293
40294
40295
40296
40297
40298
40299
40300
40301
40302
40303
40304
40305
40306
40307
40308
40309
40310
40311
40312
40313
40314
40315
40316
40317
40318
40319
40320
40321
40322
40323
40324
40325
40326
40327
40328
40329
40330
40331
40332
40333
40334
40335
40336
40337
40338
40339
40340
40341
40342
40343
40344
40345
40346
40347
40348
40349
40350
40351
40352
40353
40354
40355
40356
40357
40358
40359
40360
40361
40362
40363
40364
40365
40366
40367
40368
40369
40370
40371
40372
40373
40374
40375
40376
40377
40378
40379
40380
40381
40382
40383
40384
40385
40386
40387
40388
40389
40390
40391
40392
40393
40394
40395
40396
40397
40398
40399
40400
40401
40402
40403
40404
40405
40406
40407
40408
40409
40410
40411
40412
40413
40414
40415
40416
40417
40418
40419
40420
40421
40422
40423
40424
40425
40426
40427
40428
40429
40430
40431
40432
40433
40434
40435
40436
40437
40438
40439
40440
40441
40442
40443
40444
40445
40446
40447
40448
40449
40450
40451
40452
40453
40454
40455
40456
40457
40458
40459
40460
40461
40462
40463
40464
40465
40466
40467
40468
40469
40470
40471
40472
40473
40474
40475
40476
40477
40478
40479
40480
40481
40482
40483
40484
40485
40486
40487
40488
40489
40490
40491
40492
40493
40494
40495
40496
40497
40498
40499
40500
40501
40502
40503
40504
40505
40506
40507
40508
40509
40510
40511
40512
40513
40514
40515
40516
40517
40518
40519
40520
40521
40522
40523
40524
40525
40526
40527
40528
40529
40530
40531
40532
40533
40534
40535
40536
40537
40538
40539
40540
40541
40542
40543
40544
40545
40546
40547
40548
40549
40550
40551
40552
40553
40554
40555
40556
40557
40558
40559
40560
40561
40562
40563
40564
40565
40566
40567
40568
40569
40570
40571
40572
40573
40574
40575
40576
40577
40578
40579
40580
40581
40582
40583
40584
40585
40586
40587
40588
40589
40590
40591
40592
40593
40594
40595
40596
40597
40598
40599
40600
40601
40602
40603
40604
40605
40606
40607
40608
40609
40610
40611
40612
40613
40614
40615
40616
40617
40618
40619
40620
40621
40622
40623
40624
40625
40626
40627
40628
40629
40630
40631
40632
40633
40634
40635
40636
40637
40638
40639
40640
40641
40642
40643
40644
40645
40646
40647
40648
40649
40650
40651
40652
40653
40654
40655
40656
40657
40658
40659
40660
40661
40662
40663
40664
40665
40666
40667
40668
40669
40670
40671
40672
40673
40674
40675
40676
40677
40678
40679
40680
40681
40682
40683
40684
40685
40686
40687
40688
40689
40690
40691
40692
40693
40694
40695
40696
40697
40698
40699
40700
40701
40702
40703
40704
40705
40706
40707
40708
40709
40710
40711
40712
40713
40714
40715
40716
40717
40718
40719
40720
40721
40722
40723
40724
40725
40726
40727
40728
40729
40730
40731
40732
40733
40734
40735
40736
40737
40738
40739
40740
40741
40742
40743
40744
40745
40746
40747
40748
40749
40750
40751
40752
40753
40754
40755
40756
40757
40758
40759
40760
40761
40762
40763
40764
40765
40766
40767
40768
40769
40770
40771
40772
40773
40774
40775
40776
40777
40778
40779
40780
40781
40782
40783
40784
40785
40786
40787
40788
40789
40790
40791
40792
40793
40794
40795
40796
40797
40798
40799
40800
40801
40802
40803
40804
40805
40806
40807
40808
40809
40810
40811
40812
40813
40814
40815
40816
40817
40818
40819
40820
40821
40822
40823
40824
40825
40826
40827
40828
40829
40830
40831
40832
40833
40834
40835
40836
40837
40838
40839
40840
40841
40842
40843
40844
40845
40846
40847
40848
40849
40850
40851
40852
40853
40854
40855
40856
40857
40858
40859
40860
40861
40862
40863
40864
40865
40866
40867
40868
40869
40870
40871
40872
40873
40874
40875
40876
40877
40878
40879
40880
40881
40882
40883
40884
40885
40886
40887
40888
40889
40890
40891
40892
40893
40894
40895
40896
40897
40898
40899
40900
40901
40902
40903
40904
40905
40906
40907
40908
40909
40910
40911
40912
40913
40914
40915
40916
40917
40918
40919
40920
40921
40922
40923
40924
40925
40926
40927
40928
40929
40930
40931
40932
40933
40934
40935
40936
40937
40938
40939
40940
40941
40942
40943
40944
40945
40946
40947
40948
40949
40950
40951
40952
40953
40954
40955
40956
40957
40958
40959
40960
40961
40962
40963
40964
40965
40966
40967
40968
40969
40970
40971
40972
40973
40974
40975
40976
40977
40978
40979
40980
40981
40982
40983
40984
40985
40986
40987
40988
40989
40990
40991
40992
40993
40994
40995
40996
40997
40998
40999
41000
41001
41002
41003
41004
41005
41006
41007
41008
41009
41010
41011
41012
41013
41014
41015
41016
41017
41018
41019
41020
41021
41022
41023
41024
41025
41026
41027
41028
41029
41030
41031
41032
41033
41034
41035
41036
41037
41038
41039
41040
41041
41042
41043
41044
41045
41046
41047
41048
41049
41050
41051
41052
41053
41054
41055
41056
41057
41058
41059
41060
41061
41062
41063
41064
41065
41066
41067
41068
41069
41070
41071
41072
41073
41074
41075
41076
41077
41078
41079
41080
41081
41082
41083
41084
41085
41086
41087
41088
41089
41090
41091
41092
41093
41094
41095
41096
41097
41098
41099
41100
41101
41102
41103
41104
41105
41106
41107
41108
41109
41110
41111
41112
41113
41114
41115
41116
41117
41118
41119
41120
41121
41122
41123
41124
41125
41126
41127
41128
41129
41130
41131
41132
41133
41134
41135
41136
41137
41138
41139
41140
41141
41142
41143
41144
41145
41146
41147
41148
41149
41150
41151
41152
41153
41154
41155
41156
41157
41158
41159
41160
41161
41162
41163
41164
41165
41166
41167
41168
41169
41170
41171
41172
41173
41174
41175
41176
41177
41178
41179
41180
41181
41182
41183
41184
41185
41186
41187
41188
41189
41190
41191
41192
41193
41194
41195
41196
41197
41198
41199
41200
41201
41202
41203
41204
41205
41206
41207
41208
41209
41210
41211
41212
41213
41214
41215
41216
41217
41218
41219
41220
41221
41222
41223
41224
41225
41226
41227
41228
41229
41230
41231
41232
41233
41234
41235
41236
41237
41238
41239
41240
41241
41242
41243
41244
41245
41246
41247
41248
41249
41250
41251
41252
41253
41254
41255
41256
41257
41258
41259
41260
41261
41262
41263
41264
41265
41266
41267
41268
41269
41270
41271
41272
41273
41274
41275
41276
41277
41278
41279
41280
41281
41282
41283
41284
41285
41286
41287
41288
41289
41290
41291
41292
41293
41294
41295
41296
41297
41298
41299
41300
41301
41302
41303
41304
41305
41306
41307
41308
41309
41310
41311
41312
41313
41314
41315
41316
41317
41318
41319
41320
41321
41322
41323
41324
41325
41326
41327
41328
41329
41330
41331
41332
41333
41334
41335
41336
41337
41338
41339
41340
41341
41342
41343
41344
41345
41346
41347
41348
41349
41350
41351
41352
41353
41354
41355
41356
41357
41358
41359
41360
41361
41362
41363
41364
41365
41366
41367
41368
41369
41370
41371
41372
41373
41374
41375
41376
41377
41378
41379
41380
41381
41382
41383
41384
41385
41386
41387
41388
41389
41390
41391
41392
41393
41394
41395
41396
41397
41398
41399
41400
41401
41402
41403
41404
41405
41406
41407
41408
41409
41410
41411
41412
41413
41414
41415
41416
41417
41418
41419
41420
41421
41422
41423
41424
41425
41426
41427
41428
41429
41430
41431
41432
41433
41434
41435
41436
41437
41438
41439
41440
41441
41442
41443
41444
41445
41446
41447
41448
41449
41450
41451
41452
41453
41454
41455
41456
41457
41458
41459
41460
41461
41462
41463
41464
41465
41466
41467
41468
41469
41470
41471
41472
41473
41474
41475
41476
41477
41478
41479
41480
41481
41482
41483
41484
41485
41486
41487
41488
41489
41490
41491
41492
41493
41494
41495
41496
41497
41498
41499
41500
41501
41502
41503
41504
41505
41506
41507
41508
41509
41510
41511
41512
41513
41514
41515
41516
41517
41518
41519
41520
41521
41522
41523
41524
41525
41526
41527
41528
41529
41530
41531
41532
41533
41534
41535
41536
41537
41538
41539
41540
41541
41542
41543
41544
41545
41546
41547
41548
41549
41550
41551
41552
41553
41554
41555
41556
41557
41558
41559
41560
41561
41562
41563
41564
41565
41566
41567
41568
41569
41570
41571
41572
41573
41574
41575
41576
41577
41578
41579
41580
41581
41582
41583
41584
41585
41586
41587
41588
41589
41590
41591
41592
41593
41594
41595
41596
41597
41598
41599
41600
41601
41602
41603
41604
41605
41606
41607
41608
41609
41610
41611
41612
41613
41614
41615
41616
41617
41618
41619
41620
41621
41622
41623
41624
41625
41626
41627
41628
41629
41630
41631
41632
41633
41634
41635
41636
41637
41638
41639
41640
41641
41642
41643
41644
41645
41646
41647
41648
41649
41650
41651
41652
41653
41654
41655
41656
41657
41658
41659
41660
41661
41662
41663
41664
41665
41666
41667
41668
41669
41670
41671
41672
41673
41674
41675
41676
41677
41678
41679
41680
41681
41682
41683
41684
41685
41686
41687
41688
41689
41690
41691
41692
41693
41694
41695
41696
41697
41698
41699
41700
41701
41702
41703
41704
41705
41706
41707
41708
41709
41710
41711
41712
41713
41714
41715
41716
41717
41718
41719
41720
41721
41722
41723
41724
41725
41726
41727
41728
41729
41730
41731
41732
41733
41734
41735
41736
41737
41738
41739
41740
41741
41742
41743
41744
41745
41746
41747
41748
41749
41750
41751
41752
41753
41754
41755
41756
41757
41758
41759
41760
41761
41762
41763
41764
41765
41766
41767
41768
41769
41770
41771
41772
41773
41774
41775
41776
41777
41778
41779
41780
41781
41782
41783
41784
41785
41786
41787
41788
41789
41790
41791
41792
41793
41794
41795
41796
41797
41798
41799
41800
41801
41802
41803
41804
41805
41806
41807
41808
41809
41810
41811
41812
41813
41814
41815
41816
41817
41818
41819
41820
41821
41822
41823
41824
41825
41826
41827
41828
41829
41830
41831
41832
41833
41834
41835
41836
41837
41838
41839
41840
41841
41842
41843
41844
41845
41846
41847
41848
41849
41850
41851
41852
41853
41854
41855
41856
41857
41858
41859
41860
41861
41862
41863
41864
41865
41866
41867
41868
41869
41870
41871
41872
41873
41874
41875
41876
41877
41878
41879
41880
41881
41882
41883
41884
41885
41886
41887
41888
41889
41890
41891
41892
41893
41894
41895
41896
41897
41898
41899
41900
41901
41902
41903
41904
41905
41906
41907
41908
41909
41910
41911
41912
41913
41914
41915
41916
41917
41918
41919
41920
41921
41922
41923
41924
41925
41926
41927
41928
41929
41930
41931
41932
41933
41934
41935
41936
41937
41938
41939
41940
41941
41942
41943
41944
41945
41946
41947
41948
41949
41950
41951
41952
41953
41954
41955
41956
41957
41958
41959
41960
41961
41962
41963
41964
41965
41966
41967
41968
41969
41970
41971
41972
41973
41974
41975
41976
41977
41978
41979
41980
41981
41982
41983
41984
41985
41986
41987
41988
41989
41990
41991
41992
41993
41994
41995
41996
41997
41998
41999
42000
42001
42002
42003
42004
42005
42006
42007
42008
42009
42010
42011
42012
42013
42014
42015
42016
42017
42018
42019
42020
42021
42022
42023
42024
42025
42026
42027
42028
42029
42030
42031
42032
42033
42034
42035
42036
42037
42038
42039
42040
42041
42042
42043
42044
42045
42046
42047
42048
42049
42050
42051
42052
42053
42054
42055
42056
42057
42058
42059
42060
42061
42062
42063
42064
42065
42066
42067
42068
42069
42070
42071
42072
42073
42074
42075
42076
42077
42078
42079
42080
42081
42082
42083
42084
42085
42086
42087
42088
42089
42090
42091
42092
42093
42094
42095
42096
42097
42098
42099
42100
42101
42102
42103
42104
42105
42106
42107
42108
42109
42110
42111
42112
42113
42114
42115
42116
42117
42118
42119
42120
42121
42122
42123
42124
42125
42126
42127
42128
42129
42130
42131
42132
42133
42134
42135
42136
42137
42138
42139
42140
42141
42142
42143
42144
42145
42146
42147
42148
42149
42150
42151
42152
42153
42154
42155
42156
42157
42158
42159
42160
42161
42162
42163
42164
42165
42166
42167
42168
42169
42170
42171
42172
42173
42174
42175
42176
42177
42178
42179
42180
42181
42182
42183
42184
42185
42186
42187
42188
42189
42190
42191
42192
42193
42194
42195
42196
42197
42198
42199
42200
42201
42202
42203
42204
42205
42206
42207
42208
42209
42210
42211
42212
42213
42214
42215
42216
42217
42218
42219
42220
42221
42222
42223
42224
42225
42226
42227
42228
42229
42230
42231
42232
42233
42234
42235
42236
42237
42238
42239
42240
42241
42242
42243
42244
42245
42246
42247
42248
42249
42250
42251
42252
42253
42254
42255
42256
42257
42258
42259
42260
42261
42262
42263
42264
42265
42266
42267
42268
42269
42270
42271
42272
42273
42274
42275
42276
42277
42278
42279
42280
42281
42282
42283
42284
42285
42286
42287
42288
42289
42290
42291
42292
42293
42294
42295
42296
42297
42298
42299
42300
42301
42302
42303
42304
42305
42306
42307
42308
42309
42310
42311
42312
42313
42314
42315
42316
42317
42318
42319
42320
42321
42322
42323
42324
42325
42326
42327
42328
42329
42330
42331
42332
42333
42334
42335
42336
42337
42338
42339
42340
42341
42342
42343
42344
42345
42346
42347
42348
42349
42350
42351
42352
42353
42354
42355
42356
42357
42358
42359
42360
42361
42362
42363
42364
42365
42366
42367
42368
42369
42370
42371
42372
42373
42374
42375
42376
42377
42378
42379
42380
42381
42382
42383
42384
42385
42386
42387
42388
42389
42390
42391
42392
42393
42394
42395
42396
42397
42398
42399
42400
42401
42402
42403
42404
42405
42406
42407
42408
42409
42410
42411
42412
42413
42414
42415
42416
42417
42418
42419
42420
42421
42422
42423
42424
42425
42426
42427
42428
42429
42430
42431
42432
42433
42434
42435
42436
42437
42438
42439
42440
42441
42442
42443
42444
42445
42446
42447
42448
42449
42450
42451
42452
42453
42454
42455
42456
42457
42458
42459
42460
42461
42462
42463
42464
42465
42466
42467
42468
42469
42470
42471
42472
42473
42474
42475
42476
42477
42478
42479
42480
42481
42482
42483
42484
42485
42486
42487
42488
42489
42490
42491
42492
42493
42494
42495
42496
42497
42498
42499
42500
42501
42502
42503
42504
42505
42506
42507
42508
42509
42510
42511
42512
42513
42514
42515
42516
42517
42518
42519
42520
42521
42522
42523
42524
42525
42526
42527
42528
42529
42530
42531
42532
42533
42534
42535
42536
42537
42538
42539
42540
42541
42542
42543
42544
42545
42546
42547
42548
42549
42550
42551
42552
42553
42554
42555
42556
42557
42558
42559
42560
42561
42562
42563
42564
42565
42566
42567
42568
42569
42570
42571
42572
42573
42574
42575
42576
42577
42578
42579
42580
42581
42582
42583
42584
42585
42586
42587
42588
42589
42590
42591
42592
42593
42594
42595
42596
42597
42598
42599
42600
42601
42602
42603
42604
42605
42606
42607
42608
42609
42610
42611
42612
42613
42614
42615
42616
42617
42618
42619
42620
42621
42622
42623
42624
42625
42626
42627
42628
42629
42630
42631
42632
42633
42634
42635
42636
42637
42638
42639
42640
42641
42642
42643
42644
42645
42646
42647
42648
42649
42650
42651
42652
42653
42654
42655
42656
42657
42658
42659
42660
42661
42662
42663
42664
42665
42666
42667
42668
42669
42670
42671
42672
42673
42674
42675
42676
42677
42678
42679
42680
42681
42682
42683
42684
42685
42686
42687
42688
42689
42690
42691
42692
42693
42694
42695
42696
42697
42698
42699
42700
42701
42702
42703
42704
42705
42706
42707
42708
42709
42710
42711
42712
42713
42714
42715
42716
42717
42718
42719
42720
42721
42722
42723
42724
42725
42726
42727
42728
42729
42730
42731
42732
42733
42734
42735
42736
42737
42738
42739
42740
42741
42742
42743
42744
42745
42746
42747
42748
42749
42750
42751
42752
42753
42754
42755
42756
42757
42758
42759
42760
42761
42762
42763
42764
42765
42766
42767
42768
42769
42770
42771
42772
42773
42774
42775
42776
42777
42778
42779
42780
42781
42782
42783
42784
42785
42786
42787
42788
42789
42790
42791
42792
42793
42794
42795
42796
42797
42798
42799
42800
42801
42802
42803
42804
42805
42806
42807
42808
42809
42810
42811
42812
42813
42814
42815
42816
42817
42818
42819
42820
42821
42822
42823
42824
42825
42826
42827
42828
42829
42830
42831
42832
42833
42834
42835
42836
42837
42838
42839
42840
42841
42842
42843
42844
42845
42846
42847
42848
42849
42850
42851
42852
42853
42854
42855
42856
42857
42858
42859
42860
42861
42862
42863
42864
42865
42866
42867
42868
42869
42870
42871
42872
42873
42874
42875
42876
42877
42878
42879
42880
42881
42882
42883
42884
42885
42886
42887
42888
42889
42890
42891
42892
42893
42894
42895
42896
42897
42898
42899
42900
42901
42902
42903
42904
42905
42906
42907
42908
42909
42910
42911
42912
42913
42914
42915
42916
42917
42918
42919
42920
42921
42922
42923
42924
42925
42926
42927
42928
42929
42930
42931
42932
42933
42934
42935
42936
42937
42938
42939
42940
42941
42942
42943
42944
42945
42946
42947
42948
42949
42950
42951
42952
42953
42954
42955
42956
42957
42958
42959
42960
42961
42962
42963
42964
42965
42966
42967
42968
42969
42970
42971
42972
42973
42974
42975
42976
42977
42978
42979
42980
42981
42982
42983
42984
42985
42986
42987
42988
42989
42990
42991
42992
42993
42994
42995
42996
42997
42998
42999
43000
43001
43002
43003
43004
43005
43006
43007
43008
43009
43010
43011
43012
43013
43014
43015
43016
43017
43018
43019
43020
43021
43022
43023
43024
43025
43026
43027
43028
43029
43030
43031
43032
43033
43034
43035
43036
43037
43038
43039
43040
43041
43042
43043
43044
43045
43046
43047
43048
43049
43050
43051
43052
43053
43054
43055
43056
43057
43058
43059
43060
43061
43062
43063
43064
43065
43066
43067
43068
43069
43070
43071
43072
43073
43074
43075
43076
43077
43078
43079
43080
43081
43082
43083
43084
43085
43086
43087
43088
43089
43090
43091
43092
43093
43094
43095
43096
43097
43098
43099
43100
43101
43102
43103
43104
43105
43106
43107
43108
43109
43110
43111
43112
43113
43114
43115
43116
43117
43118
43119
43120
43121
43122
43123
43124
43125
43126
43127
43128
43129
43130
43131
43132
43133
43134
43135
43136
43137
43138
43139
43140
43141
43142
43143
43144
43145
43146
43147
43148
43149
43150
43151
43152
43153
43154
43155
43156
43157
43158
43159
43160
43161
43162
43163
43164
43165
43166
43167
43168
43169
43170
43171
43172
43173
43174
43175
43176
43177
43178
43179
43180
43181
43182
43183
43184
43185
43186
43187
43188
43189
43190
43191
43192
43193
43194
43195
43196
43197
43198
43199
43200
43201
43202
43203
43204
43205
43206
43207
43208
43209
43210
43211
43212
43213
43214
43215
43216
43217
43218
43219
43220
43221
43222
43223
43224
43225
43226
43227
43228
43229
43230
43231
43232
43233
43234
43235
43236
43237
43238
43239
43240
43241
43242
43243
43244
43245
43246
43247
43248
43249
43250
43251
43252
43253
43254
43255
43256
43257
43258
43259
43260
43261
43262
43263
43264
43265
43266
43267
43268
43269
43270
43271
43272
43273
43274
43275
43276
43277
43278
43279
43280
43281
43282
43283
43284
43285
43286
43287
43288
43289
43290
43291
43292
43293
43294
43295
43296
43297
43298
43299
43300
43301
43302
43303
43304
43305
43306
43307
43308
43309
43310
43311
43312
43313
43314
43315
43316
43317
43318
43319
43320
43321
43322
43323
43324
43325
43326
43327
43328
43329
43330
43331
43332
43333
43334
43335
43336
43337
43338
43339
43340
43341
43342
43343
43344
43345
43346
43347
43348
43349
43350
43351
43352
43353
43354
43355
43356
43357
43358
43359
43360
43361
43362
43363
43364
43365
43366
43367
43368
43369
43370
43371
43372
43373
43374
43375
43376
43377
43378
43379
43380
43381
43382
43383
43384
43385
43386
43387
43388
43389
43390
43391
43392
43393
43394
43395
43396
43397
43398
43399
43400
43401
43402
43403
43404
43405
43406
43407
43408
43409
43410
43411
43412
43413
43414
43415
43416
43417
43418
43419
43420
43421
43422
43423
43424
43425
43426
43427
43428
43429
43430
43431
43432
43433
43434
43435
43436
43437
43438
43439
43440
43441
43442
43443
43444
43445
43446
43447
43448
43449
43450
43451
43452
43453
43454
43455
43456
43457
43458
43459
43460
43461
43462
43463
43464
43465
43466
43467
43468
43469
43470
43471
43472
43473
43474
43475
43476
43477
43478
43479
43480
43481
43482
43483
43484
43485
43486
43487
43488
43489
43490
43491
43492
43493
43494
43495
43496
43497
43498
43499
43500
43501
43502
43503
43504
43505
43506
43507
43508
43509
43510
43511
43512
43513
43514
43515
43516
43517
43518
43519
43520
43521
43522
43523
43524
43525
43526
43527
43528
43529
43530
43531
43532
43533
43534
43535
43536
43537
43538
43539
43540
43541
43542
43543
43544
43545
43546
43547
43548
43549
43550
43551
43552
43553
43554
43555
43556
43557
43558
43559
43560
43561
43562
43563
43564
43565
43566
43567
43568
43569
43570
43571
43572
43573
43574
43575
43576
43577
43578
43579
43580
43581
43582
43583
43584
43585
43586
43587
43588
43589
43590
43591
43592
43593
43594
43595
43596
43597
43598
43599
43600
43601
43602
43603
43604
43605
43606
43607
43608
43609
43610
43611
43612
43613
43614
43615
43616
43617
43618
43619
43620
43621
43622
43623
43624
43625
43626
43627
43628
43629
43630
43631
43632
43633
43634
43635
43636
43637
43638
43639
43640
43641
43642
43643
43644
43645
43646
43647
43648
43649
43650
43651
43652
43653
43654
43655
43656
43657
43658
43659
43660
43661
43662
43663
43664
43665
43666
43667
43668
43669
43670
43671
43672
43673
43674
43675
43676
43677
43678
43679
43680
43681
43682
43683
43684
43685
43686
43687
43688
43689
43690
43691
43692
43693
43694
43695
43696
43697
43698
43699
43700
43701
43702
43703
43704
43705
43706
43707
43708
43709
43710
43711
43712
43713
43714
43715
43716
43717
43718
43719
43720
43721
43722
43723
43724
43725
43726
43727
43728
43729
43730
43731
43732
43733
43734
43735
43736
43737
43738
43739
43740
43741
43742
43743
43744
43745
43746
43747
43748
43749
43750
43751
43752
43753
43754
43755
43756
43757
43758
43759
43760
43761
43762
43763
43764
43765
43766
43767
43768
43769
43770
43771
43772
43773
43774
43775
43776
43777
43778
43779
43780
43781
43782
43783
43784
43785
43786
43787
43788
43789
43790
43791
43792
43793
43794
43795
43796
43797
43798
43799
43800
43801
43802
43803
43804
43805
43806
43807
43808
43809
43810
43811
43812
43813
43814
43815
43816
43817
43818
43819
43820
43821
43822
43823
43824
43825
43826
43827
43828
43829
43830
43831
43832
43833
43834
43835
43836
43837
43838
43839
43840
43841
43842
43843
43844
43845
43846
43847
43848
43849
43850
43851
43852
43853
43854
43855
43856
43857
43858
43859
43860
43861
43862
43863
43864
43865
43866
43867
43868
43869
43870
43871
43872
43873
43874
43875
43876
43877
43878
43879
43880
43881
43882
43883
43884
43885
43886
43887
43888
43889
43890
43891
43892
43893
43894
43895
43896
43897
43898
43899
43900
43901
43902
43903
43904
43905
43906
43907
43908
43909
43910
43911
43912
43913
43914
43915
43916
43917
43918
43919
43920
43921
43922
43923
43924
43925
43926
43927
43928
43929
43930
43931
43932
43933
43934
43935
43936
43937
43938
43939
43940
43941
43942
43943
43944
43945
43946
43947
43948
43949
43950
43951
43952
43953
43954
43955
43956
43957
43958
43959
43960
43961
43962
43963
43964
43965
43966
43967
43968
43969
43970
43971
43972
43973
43974
43975
43976
43977
43978
43979
43980
43981
43982
43983
43984
43985
43986
43987
43988
43989
43990
43991
43992
43993
43994
43995
43996
43997
43998
43999
44000
44001
44002
44003
44004
44005
44006
44007
44008
44009
44010
44011
44012
44013
44014
44015
44016
44017
44018
44019
44020
44021
44022
44023
44024
44025
44026
44027
44028
44029
44030
44031
44032
44033
44034
44035
44036
44037
44038
44039
44040
44041
44042
44043
44044
44045
44046
44047
44048
44049
44050
44051
44052
44053
44054
44055
44056
44057
44058
44059
44060
44061
44062
44063
44064
44065
44066
44067
44068
44069
44070
44071
44072
44073
44074
44075
44076
44077
44078
44079
44080
44081
44082
44083
44084
44085
44086
44087
44088
44089
44090
44091
44092
44093
44094
44095
44096
44097
44098
44099
44100
44101
44102
44103
44104
44105
44106
44107
44108
44109
44110
44111
44112
44113
44114
44115
44116
44117
44118
44119
44120
44121
44122
44123
44124
44125
44126
44127
44128
44129
44130
44131
44132
44133
44134
44135
44136
44137
44138
44139
44140
44141
44142
44143
44144
44145
44146
44147
44148
44149
44150
44151
44152
44153
44154
44155
44156
44157
44158
44159
44160
44161
44162
44163
44164
44165
44166
44167
44168
44169
44170
44171
44172
44173
44174
44175
44176
44177
44178
44179
44180
44181
44182
44183
44184
44185
44186
44187
44188
44189
44190
44191
44192
44193
44194
44195
44196
44197
44198
44199
44200
44201
44202
44203
44204
44205
44206
44207
44208
44209
44210
44211
44212
44213
44214
44215
44216
44217
44218
44219
44220
44221
44222
44223
44224
44225
44226
44227
44228
44229
44230
44231
44232
44233
44234
44235
44236
44237
44238
44239
44240
44241
44242
44243
44244
44245
44246
44247
44248
44249
44250
44251
44252
44253
44254
44255
44256
44257
44258
44259
44260
44261
44262
44263
44264
44265
44266
44267
44268
44269
44270
44271
44272
44273
44274
44275
44276
44277
44278
44279
44280
44281
44282
44283
44284
44285
44286
44287
44288
44289
44290
44291
44292
44293
44294
44295
44296
44297
44298
44299
44300
44301
44302
44303
44304
44305
44306
44307
44308
44309
44310
44311
44312
44313
44314
44315
44316
44317
44318
44319
44320
44321
44322
44323
44324
44325
44326
44327
44328
44329
44330
44331
44332
44333
44334
44335
44336
44337
44338
44339
44340
44341
44342
44343
44344
44345
44346
44347
44348
44349
44350
44351
44352
44353
44354
44355
44356
44357
44358
44359
44360
44361
44362
44363
44364
44365
44366
44367
44368
44369
44370
44371
44372
44373
44374
44375
44376
44377
44378
44379
44380
44381
44382
44383
44384
44385
44386
44387
44388
44389
44390
44391
44392
44393
44394
44395
44396
44397
44398
44399
44400
44401
44402
44403
44404
44405
44406
44407
44408
44409
44410
44411
44412
44413
44414
44415
44416
44417
44418
44419
44420
44421
44422
44423
44424
44425
44426
44427
44428
44429
44430
44431
44432
44433
44434
44435
44436
44437
44438
44439
44440
44441
44442
44443
44444
44445
44446
44447
44448
44449
44450
44451
44452
44453
44454
44455
44456
44457
44458
44459
44460
44461
44462
44463
44464
44465
44466
44467
44468
44469
44470
44471
44472
44473
44474
44475
44476
44477
44478
44479
44480
44481
44482
44483
44484
44485
44486
44487
44488
44489
44490
44491
44492
44493
44494
44495
44496
44497
44498
44499
44500
44501
44502
44503
44504
44505
44506
44507
44508
44509
44510
44511
44512
44513
44514
44515
44516
44517
44518
44519
44520
44521
44522
44523
44524
44525
44526
44527
44528
44529
44530
44531
44532
44533
44534
44535
44536
44537
44538
44539
44540
44541
44542
44543
44544
44545
44546
44547
44548
44549
44550
44551
44552
44553
44554
44555
44556
44557
44558
44559
44560
44561
44562
44563
44564
44565
44566
44567
44568
44569
44570
44571
44572
44573
44574
44575
44576
44577
44578
44579
44580
44581
44582
44583
44584
44585
44586
44587
44588
44589
44590
44591
44592
44593
44594
44595
44596
44597
44598
44599
44600
44601
44602
44603
44604
44605
44606
44607
44608
44609
44610
44611
44612
44613
44614
44615
44616
44617
44618
44619
44620
44621
44622
44623
44624
44625
44626
44627
44628
44629
44630
44631
44632
44633
44634
44635
44636
44637
44638
44639
44640
44641
44642
44643
44644
44645
44646
44647
44648
44649
44650
44651
44652
44653
44654
44655
44656
44657
44658
44659
44660
44661
44662
44663
44664
44665
44666
44667
44668
44669
44670
44671
44672
44673
44674
44675
44676
44677
44678
44679
44680
44681
44682
44683
44684
44685
44686
44687
44688
44689
44690
44691
44692
44693
44694
44695
44696
44697
44698
44699
44700
44701
44702
44703
44704
44705
44706
44707
44708
44709
44710
44711
44712
44713
44714
44715
44716
44717
44718
44719
44720
44721
44722
44723
44724
44725
44726
44727
44728
44729
44730
44731
44732
44733
44734
44735
44736
44737
44738
44739
44740
44741
44742
44743
44744
44745
44746
44747
44748
44749
44750
44751
44752
44753
44754
44755
44756
44757
44758
44759
44760
44761
44762
44763
44764
44765
44766
44767
44768
44769
44770
44771
44772
44773
44774
44775
44776
44777
44778
44779
44780
44781
44782
44783
44784
44785
44786
44787
44788
44789
44790
44791
44792
44793
44794
44795
44796
44797
44798
44799
44800
44801
44802
44803
44804
44805
44806
44807
44808
44809
44810
44811
44812
44813
44814
44815
44816
44817
44818
44819
44820
44821
44822
44823
44824
44825
44826
44827
44828
44829
44830
44831
44832
44833
44834
44835
44836
44837
44838
44839
44840
44841
44842
44843
44844
44845
44846
44847
44848
44849
44850
44851
44852
44853
44854
44855
44856
44857
44858
44859
44860
44861
44862
44863
44864
44865
44866
44867
44868
44869
44870
44871
44872
44873
44874
44875
44876
44877
44878
44879
44880
44881
44882
44883
44884
44885
44886
44887
44888
44889
44890
44891
44892
44893
44894
44895
44896
44897
44898
44899
44900
44901
44902
44903
44904
44905
44906
44907
44908
44909
44910
44911
44912
44913
44914
44915
44916
44917
44918
44919
44920
44921
44922
44923
44924
44925
44926
44927
44928
44929
44930
44931
44932
44933
44934
44935
44936
44937
44938
44939
44940
44941
44942
44943
44944
44945
44946
44947
44948
44949
44950
44951
44952
44953
44954
44955
44956
44957
44958
44959
44960
44961
44962
44963
44964
44965
44966
44967
44968
44969
44970
44971
44972
44973
44974
44975
44976
44977
44978
44979
44980
44981
44982
44983
44984
44985
44986
44987
44988
44989
44990
44991
44992
44993
44994
44995
44996
44997
44998
44999
45000
45001
45002
45003
45004
45005
45006
45007
45008
45009
45010
45011
45012
45013
45014
45015
45016
45017
45018
45019
45020
45021
45022
45023
45024
45025
45026
45027
45028
45029
45030
45031
45032
45033
45034
45035
45036
45037
45038
45039
45040
45041
45042
45043
45044
45045
45046
45047
45048
45049
45050
45051
45052
45053
45054
45055
45056
45057
45058
45059
45060
45061
45062
45063
45064
45065
45066
45067
45068
45069
45070
45071
45072
45073
45074
45075
45076
45077
45078
45079
45080
45081
45082
45083
45084
45085
45086
45087
45088
45089
45090
45091
45092
45093
45094
45095
45096
45097
45098
45099
45100
45101
45102
45103
45104
45105
45106
45107
45108
45109
45110
45111
45112
45113
45114
45115
45116
45117
45118
45119
45120
45121
45122
45123
45124
45125
45126
45127
45128
45129
45130
45131
45132
45133
45134
45135
45136
45137
45138
45139
45140
45141
45142
45143
45144
45145
45146
45147
45148
45149
45150
45151
45152
45153
45154
45155
45156
45157
45158
45159
45160
45161
45162
45163
45164
45165
45166
45167
45168
45169
45170
45171
45172
45173
45174
45175
45176
45177
45178
45179
45180
45181
45182
45183
45184
45185
45186
45187
45188
45189
45190
45191
45192
45193
45194
45195
45196
45197
45198
45199
45200
45201
45202
45203
45204
45205
45206
45207
45208
45209
45210
45211
45212
45213
45214
45215
45216
45217
45218
45219
45220
45221
45222
45223
45224
45225
45226
45227
45228
45229
45230
45231
45232
45233
45234
45235
45236
45237
45238
45239
45240
45241
45242
45243
45244
45245
45246
45247
45248
45249
45250
45251
45252
45253
45254
45255
45256
45257
45258
45259
45260
45261
45262
45263
45264
45265
45266
45267
45268
45269
45270
45271
45272
45273
45274
45275
45276
45277
45278
45279
45280
45281
45282
45283
45284
45285
45286
45287
45288
45289
45290
45291
45292
45293
45294
45295
45296
45297
45298
45299
45300
45301
45302
45303
45304
45305
45306
45307
45308
45309
45310
45311
45312
45313
45314
45315
45316
45317
45318
45319
45320
45321
45322
45323
45324
45325
45326
45327
45328
45329
45330
45331
45332
45333
45334
45335
45336
45337
45338
45339
45340
45341
45342
45343
45344
45345
45346
45347
45348
45349
45350
45351
45352
45353
45354
45355
45356
45357
45358
45359
45360
45361
45362
45363
45364
45365
45366
45367
45368
45369
45370
45371
45372
45373
45374
45375
45376
45377
45378
45379
45380
45381
45382
45383
45384
45385
45386
45387
45388
45389
45390
45391
45392
45393
45394
45395
45396
45397
45398
45399
45400
45401
45402
45403
45404
45405
45406
45407
45408
45409
45410
45411
45412
45413
45414
45415
45416
45417
45418
45419
45420
45421
45422
45423
45424
45425
45426
45427
45428
45429
45430
45431
45432
45433
45434
45435
45436
45437
45438
45439
45440
45441
45442
45443
45444
45445
45446
45447
45448
45449
45450
45451
45452
45453
45454
45455
45456
45457
45458
45459
45460
45461
45462
45463
45464
45465
45466
45467
45468
45469
45470
45471
45472
45473
45474
45475
45476
45477
45478
45479
45480
45481
45482
45483
45484
45485
45486
45487
45488
45489
45490
45491
45492
45493
45494
45495
45496
45497
45498
45499
45500
45501
45502
45503
45504
45505
45506
45507
45508
45509
45510
45511
45512
45513
45514
45515
45516
45517
45518
45519
45520
45521
45522
45523
45524
45525
45526
45527
45528
45529
45530
45531
45532
45533
45534
45535
45536
45537
45538
45539
45540
45541
45542
45543
45544
45545
45546
45547
45548
45549
45550
45551
45552
45553
45554
45555
45556
45557
45558
45559
45560
45561
45562
45563
45564
45565
45566
45567
45568
45569
45570
45571
45572
45573
45574
45575
45576
45577
45578
45579
45580
45581
45582
45583
45584
45585
45586
45587
45588
45589
45590
45591
45592
45593
45594
45595
45596
45597
45598
45599
45600
45601
45602
45603
45604
45605
45606
45607
45608
45609
45610
45611
45612
45613
45614
45615
45616
45617
45618
45619
45620
45621
45622
45623
45624
45625
45626
45627
45628
45629
45630
45631
45632
45633
45634
45635
45636
45637
45638
45639
45640
45641
45642
45643
45644
45645
45646
45647
45648
45649
45650
45651
45652
45653
45654
45655
45656
45657
45658
45659
45660
45661
45662
45663
45664
45665
45666
45667
45668
45669
45670
45671
45672
45673
45674
45675
45676
45677
45678
45679
45680
45681
45682
45683
45684
45685
45686
45687
45688
45689
45690
45691
45692
45693
45694
45695
45696
45697
45698
45699
45700
45701
45702
45703
45704
45705
45706
45707
45708
45709
45710
45711
45712
45713
45714
45715
45716
45717
45718
45719
45720
45721
45722
45723
45724
45725
45726
45727
45728
45729
45730
45731
45732
45733
45734
45735
45736
45737
45738
45739
45740
45741
45742
45743
45744
45745
45746
45747
45748
45749
45750
45751
45752
45753
45754
45755
45756
45757
45758
45759
45760
45761
45762
45763
45764
45765
45766
45767
45768
45769
45770
45771
45772
45773
45774
45775
45776
45777
45778
45779
45780
45781
45782
45783
45784
45785
45786
45787
45788
45789
45790
45791
45792
45793
45794
45795
45796
45797
45798
45799
45800
45801
45802
45803
45804
45805
45806
45807
45808
45809
45810
45811
45812
45813
45814
45815
45816
45817
45818
45819
45820
45821
45822
45823
45824
45825
45826
45827
45828
45829
45830
45831
45832
45833
45834
45835
45836
45837
45838
45839
45840
45841
45842
45843
45844
45845
45846
45847
45848
45849
45850
45851
45852
45853
45854
45855
45856
45857
45858
45859
45860
45861
45862
45863
45864
45865
45866
45867
45868
45869
45870
45871
45872
45873
45874
45875
45876
45877
45878
45879
45880
45881
45882
45883
45884
45885
45886
45887
45888
45889
45890
45891
45892
45893
45894
45895
45896
45897
45898
45899
45900
45901
45902
45903
45904
45905
45906
45907
45908
45909
45910
45911
45912
45913
45914
45915
45916
45917
45918
45919
45920
45921
45922
45923
45924
45925
45926
45927
45928
45929
45930
45931
45932
45933
45934
45935
45936
45937
45938
45939
45940
45941
45942
45943
45944
45945
45946
45947
45948
45949
45950
45951
45952
45953
45954
45955
45956
45957
45958
45959
45960
45961
45962
45963
45964
45965
45966
45967
45968
45969
45970
45971
45972
45973
45974
45975
45976
45977
45978
45979
45980
45981
45982
45983
45984
45985
45986
45987
45988
45989
45990
45991
45992
45993
45994
45995
45996
45997
45998
45999
46000
46001
46002
46003
46004
46005
46006
46007
46008
46009
46010
46011
46012
46013
46014
46015
46016
46017
46018
46019
46020
46021
46022
46023
46024
46025
46026
46027
46028
46029
46030
46031
46032
46033
46034
46035
46036
46037
46038
46039
46040
46041
46042
46043
46044
46045
46046
46047
46048
46049
46050
46051
46052
46053
46054
46055
46056
46057
46058
46059
46060
46061
46062
46063
46064
46065
46066
46067
46068
46069
46070
46071
46072
46073
46074
46075
46076
46077
46078
46079
46080
46081
46082
46083
46084
46085
46086
46087
46088
46089
46090
46091
46092
46093
46094
46095
46096
46097
46098
46099
46100
46101
46102
46103
46104
46105
46106
46107
46108
46109
46110
46111
46112
46113
46114
46115
46116
46117
46118
46119
46120
46121
46122
46123
46124
46125
46126
46127
46128
46129
46130
46131
46132
46133
46134
46135
46136
46137
46138
46139
46140
46141
46142
46143
46144
46145
46146
46147
46148
46149
46150
46151
46152
46153
46154
46155
46156
46157
46158
46159
46160
46161
46162
46163
46164
46165
46166
46167
46168
46169
46170
46171
46172
46173
46174
46175
46176
46177
46178
46179
46180
46181
46182
46183
46184
46185
46186
46187
46188
46189
46190
46191
46192
46193
46194
46195
46196
46197
46198
46199
46200
46201
46202
46203
46204
46205
46206
46207
46208
46209
46210
46211
46212
46213
46214
46215
46216
46217
46218
46219
46220
46221
46222
46223
46224
46225
46226
46227
46228
46229
46230
46231
46232
46233
46234
46235
46236
46237
46238
46239
46240
46241
46242
46243
46244
46245
46246
46247
46248
46249
46250
46251
46252
46253
46254
46255
46256
46257
46258
46259
46260
46261
46262
46263
46264
46265
46266
46267
46268
46269
46270
46271
46272
46273
46274
46275
46276
46277
46278
46279
46280
46281
46282
46283
46284
46285
46286
46287
46288
46289
46290
46291
46292
46293
46294
46295
46296
46297
46298
46299
46300
46301
46302
46303
46304
46305
46306
46307
46308
46309
46310
46311
46312
46313
46314
46315
46316
46317
46318
46319
46320
46321
46322
46323
46324
46325
46326
46327
46328
46329
46330
46331
46332
46333
46334
46335
46336
46337
46338
46339
46340
46341
46342
46343
46344
46345
46346
46347
46348
46349
46350
46351
46352
46353
46354
46355
46356
46357
46358
46359
46360
46361
46362
46363
46364
46365
46366
46367
46368
46369
46370
46371
46372
46373
46374
46375
46376
46377
46378
46379
46380
46381
46382
46383
46384
46385
46386
46387
46388
46389
46390
46391
46392
46393
46394
46395
46396
46397
46398
46399
46400
46401
46402
46403
46404
46405
46406
46407
46408
46409
46410
46411
46412
46413
46414
46415
46416
46417
46418
46419
46420
46421
46422
46423
46424
46425
46426
46427
46428
46429
46430
46431
46432
46433
46434
46435
46436
46437
46438
46439
46440
46441
46442
46443
46444
46445
46446
46447
46448
46449
46450
46451
46452
46453
46454
46455
46456
46457
46458
46459
46460
46461
46462
46463
46464
46465
46466
46467
46468
46469
46470
46471
46472
46473
46474
46475
46476
46477
46478
46479
46480
46481
46482
46483
46484
46485
46486
46487
46488
46489
46490
46491
46492
46493
46494
46495
46496
46497
46498
46499
46500
46501
46502
46503
46504
46505
46506
46507
46508
46509
46510
46511
46512
46513
46514
46515
46516
46517
46518
46519
46520
46521
46522
46523
46524
46525
46526
46527
46528
46529
46530
46531
46532
46533
46534
46535
46536
46537
46538
46539
46540
46541
46542
46543
46544
46545
46546
46547
46548
46549
46550
46551
46552
46553
46554
46555
46556
46557
46558
46559
46560
46561
46562
46563
46564
46565
46566
46567
46568
46569
46570
46571
46572
46573
46574
46575
46576
46577
46578
46579
46580
46581
46582
46583
46584
46585
46586
46587
46588
46589
46590
46591
46592
46593
46594
46595
46596
46597
46598
46599
46600
46601
46602
46603
46604
46605
46606
46607
46608
46609
46610
46611
46612
46613
46614
46615
46616
46617
46618
46619
46620
46621
46622
46623
46624
46625
46626
46627
46628
46629
46630
46631
46632
46633
46634
46635
46636
46637
46638
46639
46640
46641
46642
46643
46644
46645
46646
46647
46648
46649
46650
46651
46652
46653
46654
46655
46656
46657
46658
46659
46660
46661
46662
46663
46664
46665
46666
46667
46668
46669
46670
46671
46672
46673
46674
46675
46676
46677
46678
46679
46680
46681
46682
46683
46684
46685
46686
46687
46688
46689
46690
46691
46692
46693
46694
46695
46696
46697
46698
46699
46700
46701
46702
46703
46704
46705
46706
46707
46708
46709
46710
46711
46712
46713
46714
46715
46716
46717
46718
46719
46720
46721
46722
46723
46724
46725
46726
46727
46728
46729
46730
46731
46732
46733
46734
46735
46736
46737
46738
46739
46740
46741
46742
46743
46744
46745
46746
46747
46748
46749
46750
46751
46752
46753
46754
46755
46756
46757
46758
46759
46760
46761
46762
46763
46764
46765
46766
46767
46768
46769
46770
46771
46772
46773
46774
46775
46776
46777
46778
46779
46780
46781
46782
46783
46784
46785
46786
46787
46788
46789
46790
46791
46792
46793
46794
46795
46796
46797
46798
46799
46800
46801
46802
46803
46804
46805
46806
46807
46808
46809
46810
46811
46812
46813
46814
46815
46816
46817
46818
46819
46820
46821
46822
46823
46824
46825
46826
46827
46828
46829
46830
46831
46832
46833
46834
46835
46836
46837
46838
46839
46840
46841
46842
46843
46844
46845
46846
46847
46848
46849
46850
46851
46852
46853
46854
46855
46856
46857
46858
46859
46860
46861
46862
46863
46864
46865
46866
46867
46868
46869
46870
46871
46872
46873
46874
46875
46876
46877
46878
46879
46880
46881
46882
46883
46884
46885
46886
46887
46888
46889
46890
46891
46892
46893
46894
46895
46896
46897
46898
46899
46900
46901
46902
46903
46904
46905
46906
46907
46908
46909
46910
46911
46912
46913
46914
46915
46916
46917
46918
46919
46920
46921
46922
46923
46924
46925
46926
46927
46928
46929
46930
46931
46932
46933
46934
46935
46936
46937
46938
46939
46940
46941
46942
46943
46944
46945
46946
46947
46948
46949
46950
46951
46952
46953
46954
46955
46956
46957
46958
46959
46960
46961
46962
46963
46964
46965
46966
46967
46968
46969
46970
46971
46972
46973
46974
46975
46976
46977
46978
46979
46980
46981
46982
46983
46984
46985
46986
46987
46988
46989
46990
46991
46992
46993
46994
46995
46996
46997
46998
46999
47000
47001
47002
47003
47004
47005
47006
47007
47008
47009
47010
47011
47012
47013
47014
47015
47016
47017
47018
47019
47020
47021
47022
47023
47024
47025
47026
47027
47028
47029
47030
47031
47032
47033
47034
47035
47036
47037
47038
47039
47040
47041
47042
47043
47044
47045
47046
47047
47048
47049
47050
47051
47052
47053
47054
47055
47056
47057
47058
47059
47060
47061
47062
47063
47064
47065
47066
47067
47068
47069
47070
47071
47072
47073
47074
47075
47076
47077
47078
47079
47080
47081
47082
47083
47084
47085
47086
47087
47088
47089
47090
47091
47092
47093
47094
47095
47096
47097
47098
47099
47100
47101
47102
47103
47104
47105
47106
47107
47108
47109
47110
47111
47112
47113
47114
47115
47116
47117
47118
47119
47120
47121
47122
47123
47124
47125
47126
47127
47128
47129
47130
47131
47132
47133
47134
47135
47136
47137
47138
47139
47140
47141
47142
47143
47144
47145
47146
47147
47148
47149
47150
47151
47152
47153
47154
47155
47156
47157
47158
47159
47160
47161
47162
47163
47164
47165
47166
47167
47168
47169
47170
47171
47172
47173
47174
47175
47176
47177
47178
47179
47180
47181
47182
47183
47184
47185
47186
47187
47188
47189
47190
47191
47192
47193
47194
47195
47196
47197
47198
47199
47200
47201
47202
47203
47204
47205
47206
47207
47208
47209
47210
47211
47212
47213
47214
47215
47216
47217
47218
47219
47220
47221
47222
47223
47224
47225
47226
47227
47228
47229
47230
47231
47232
47233
47234
47235
47236
47237
47238
47239
47240
47241
47242
47243
47244
47245
47246
47247
47248
47249
47250
47251
47252
47253
47254
47255
47256
47257
47258
47259
47260
47261
47262
47263
47264
47265
47266
47267
47268
47269
47270
47271
47272
47273
47274
47275
47276
47277
47278
47279
47280
47281
47282
47283
47284
47285
47286
47287
47288
47289
47290
47291
47292
47293
47294
47295
47296
47297
47298
47299
47300
47301
47302
47303
47304
47305
47306
47307
47308
47309
47310
47311
47312
47313
47314
47315
47316
47317
47318
47319
47320
47321
47322
47323
47324
47325
47326
47327
47328
47329
47330
47331
47332
47333
47334
47335
47336
47337
47338
47339
47340
47341
47342
47343
47344
47345
47346
47347
47348
47349
47350
47351
47352
47353
47354
47355
47356
47357
47358
47359
47360
47361
47362
47363
47364
47365
47366
47367
47368
47369
47370
47371
47372
47373
47374
47375
47376
47377
47378
47379
47380
47381
47382
47383
47384
47385
47386
47387
47388
47389
47390
47391
47392
47393
47394
47395
47396
47397
47398
47399
47400
47401
47402
47403
47404
47405
47406
47407
47408
47409
47410
47411
47412
47413
47414
47415
47416
47417
47418
47419
47420
47421
47422
47423
47424
47425
47426
47427
47428
47429
47430
47431
47432
47433
47434
47435
47436
47437
47438
47439
47440
47441
47442
47443
47444
47445
47446
47447
47448
47449
47450
47451
47452
47453
47454
47455
47456
47457
47458
47459
47460
47461
47462
47463
47464
47465
47466
47467
47468
47469
47470
47471
47472
47473
47474
47475
47476
47477
47478
47479
47480
47481
47482
47483
47484
47485
47486
47487
47488
47489
47490
47491
47492
47493
47494
47495
47496
47497
47498
47499
47500
47501
47502
47503
47504
47505
47506
47507
47508
47509
47510
47511
47512
47513
47514
47515
47516
47517
47518
47519
47520
47521
47522
47523
47524
47525
47526
47527
47528
47529
47530
47531
47532
47533
47534
47535
47536
47537
47538
47539
47540
47541
47542
47543
47544
47545
47546
47547
47548
47549
47550
47551
47552
47553
47554
47555
47556
47557
47558
47559
47560
47561
47562
47563
47564
47565
47566
47567
47568
47569
47570
47571
47572
47573
47574
47575
47576
47577
47578
47579
47580
47581
47582
47583
47584
47585
47586
47587
47588
47589
47590
47591
47592
47593
47594
47595
47596
47597
47598
47599
47600
47601
47602
47603
47604
47605
47606
47607
47608
47609
47610
47611
47612
47613
47614
47615
47616
47617
47618
47619
47620
47621
47622
47623
47624
47625
47626
47627
47628
47629
47630
47631
47632
47633
47634
47635
47636
47637
47638
47639
47640
47641
47642
47643
47644
47645
47646
47647
47648
47649
47650
47651
47652
47653
47654
47655
47656
47657
47658
47659
47660
47661
47662
47663
47664
47665
47666
47667
47668
47669
47670
47671
47672
47673
47674
47675
47676
47677
47678
47679
47680
47681
47682
47683
47684
47685
47686
47687
47688
47689
47690
47691
47692
47693
47694
47695
47696
47697
47698
47699
47700
47701
47702
47703
47704
47705
47706
47707
47708
47709
47710
47711
47712
47713
47714
47715
47716
47717
47718
47719
47720
47721
47722
47723
47724
47725
47726
47727
47728
47729
47730
47731
47732
47733
47734
47735
47736
47737
47738
47739
47740
47741
47742
47743
47744
47745
47746
47747
47748
47749
47750
47751
47752
47753
47754
47755
47756
47757
47758
47759
47760
47761
47762
47763
47764
47765
47766
47767
47768
47769
47770
47771
47772
47773
47774
47775
47776
47777
47778
47779
47780
47781
47782
47783
47784
47785
47786
47787
47788
47789
47790
47791
47792
47793
47794
47795
47796
47797
47798
47799
47800
47801
47802
47803
47804
47805
47806
47807
47808
47809
47810
47811
47812
47813
47814
47815
47816
47817
47818
47819
47820
47821
47822
47823
47824
47825
47826
47827
47828
47829
47830
47831
47832
47833
47834
47835
47836
47837
47838
47839
47840
47841
47842
47843
47844
47845
47846
47847
47848
47849
47850
47851
47852
47853
47854
47855
47856
47857
47858
47859
47860
47861
47862
47863
47864
47865
47866
47867
47868
47869
47870
47871
47872
47873
47874
47875
47876
47877
47878
47879
47880
47881
47882
47883
47884
47885
47886
47887
47888
47889
47890
47891
47892
47893
47894
47895
47896
47897
47898
47899
47900
47901
47902
47903
47904
47905
47906
47907
47908
47909
47910
47911
47912
47913
47914
47915
47916
47917
47918
47919
47920
47921
47922
47923
47924
47925
47926
47927
47928
47929
47930
47931
47932
47933
47934
47935
47936
47937
47938
47939
47940
47941
47942
47943
47944
47945
47946
47947
47948
47949
47950
47951
47952
47953
47954
47955
47956
47957
47958
47959
47960
47961
47962
47963
47964
47965
47966
47967
47968
47969
47970
47971
47972
47973
47974
47975
47976
47977
47978
47979
47980
47981
47982
47983
47984
47985
47986
47987
47988
47989
47990
47991
47992
47993
47994
47995
47996
47997
47998
47999
48000
48001
48002
48003
48004
48005
48006
48007
48008
48009
48010
48011
48012
48013
48014
48015
48016
48017
48018
48019
48020
48021
48022
48023
48024
48025
48026
48027
48028
48029
48030
48031
48032
48033
48034
48035
48036
48037
48038
48039
48040
48041
48042
48043
48044
48045
48046
48047
48048
48049
48050
48051
48052
48053
48054
48055
48056
48057
48058
48059
48060
48061
48062
48063
48064
48065
48066
48067
48068
48069
48070
48071
48072
48073
48074
48075
48076
48077
48078
48079
48080
48081
48082
48083
48084
48085
48086
48087
48088
48089
48090
48091
48092
48093
48094
48095
48096
48097
48098
48099
48100
48101
48102
48103
48104
48105
48106
48107
48108
48109
48110
48111
48112
48113
48114
48115
48116
48117
48118
48119
48120
48121
48122
48123
48124
48125
48126
48127
48128
48129
48130
48131
48132
48133
48134
48135
48136
48137
48138
48139
48140
48141
48142
48143
48144
48145
48146
48147
48148
48149
48150
48151
48152
48153
48154
48155
48156
48157
48158
48159
48160
48161
48162
48163
48164
48165
48166
48167
48168
48169
48170
48171
48172
48173
48174
48175
48176
48177
48178
48179
48180
48181
48182
48183
48184
48185
48186
48187
48188
48189
48190
48191
48192
48193
48194
48195
48196
48197
48198
48199
48200
48201
48202
48203
48204
48205
48206
48207
48208
48209
48210
48211
48212
48213
48214
48215
48216
48217
48218
48219
48220
48221
48222
48223
48224
48225
48226
48227
48228
48229
48230
48231
48232
48233
48234
48235
48236
48237
48238
48239
48240
48241
48242
48243
48244
48245
48246
48247
48248
48249
48250
48251
48252
48253
48254
48255
48256
48257
48258
48259
48260
48261
48262
48263
48264
48265
48266
48267
48268
48269
48270
48271
48272
48273
48274
48275
48276
48277
48278
48279
48280
48281
48282
48283
48284
48285
48286
48287
48288
48289
48290
48291
48292
48293
48294
48295
48296
48297
48298
48299
48300
48301
48302
48303
48304
48305
48306
48307
48308
48309
48310
48311
48312
48313
48314
48315
48316
48317
48318
48319
48320
48321
48322
48323
48324
48325
48326
48327
48328
48329
48330
48331
48332
48333
48334
48335
48336
48337
48338
48339
48340
48341
48342
48343
48344
48345
48346
48347
48348
48349
48350
48351
48352
48353
48354
48355
48356
48357
48358
48359
48360
48361
48362
48363
48364
48365
48366
48367
48368
48369
48370
48371
48372
48373
48374
48375
48376
48377
48378
48379
48380
48381
48382
48383
48384
48385
48386
48387
48388
48389
48390
48391
48392
48393
48394
48395
48396
48397
48398
48399
48400
48401
48402
48403
48404
48405
48406
48407
48408
48409
48410
48411
48412
48413
48414
48415
48416
48417
48418
48419
48420
48421
48422
48423
48424
48425
48426
48427
48428
48429
48430
48431
48432
48433
48434
48435
48436
48437
48438
48439
48440
48441
48442
48443
48444
48445
48446
48447
48448
48449
48450
48451
48452
48453
48454
48455
48456
48457
48458
48459
48460
48461
48462
48463
48464
48465
48466
48467
48468
48469
48470
48471
48472
48473
48474
48475
48476
48477
48478
48479
48480
48481
48482
48483
48484
48485
48486
48487
48488
48489
48490
48491
48492
48493
48494
48495
48496
48497
48498
48499
48500
48501
48502
48503
48504
48505
48506
48507
48508
48509
48510
48511
48512
48513
48514
48515
48516
48517
48518
48519
48520
48521
48522
48523
48524
48525
48526
48527
48528
48529
48530
48531
48532
48533
48534
48535
48536
48537
48538
48539
48540
48541
48542
48543
48544
48545
48546
48547
48548
48549
48550
48551
48552
48553
48554
48555
48556
48557
48558
48559
48560
48561
48562
48563
48564
48565
48566
48567
48568
48569
48570
48571
48572
48573
48574
48575
48576
48577
48578
48579
48580
48581
48582
48583
48584
48585
48586
48587
48588
48589
48590
48591
48592
48593
48594
48595
48596
48597
48598
48599
48600
48601
48602
48603
48604
48605
48606
48607
48608
48609
48610
48611
48612
48613
48614
48615
48616
48617
48618
48619
48620
48621
48622
48623
48624
48625
48626
48627
48628
48629
48630
48631
48632
48633
48634
48635
48636
48637
48638
48639
48640
48641
48642
48643
48644
48645
48646
48647
48648
48649
48650
48651
48652
48653
48654
48655
48656
48657
48658
48659
48660
48661
48662
48663
48664
48665
48666
48667
48668
48669
48670
48671
48672
48673
48674
48675
48676
48677
48678
48679
48680
48681
48682
48683
48684
48685
48686
48687
48688
48689
48690
48691
48692
48693
48694
48695
48696
48697
48698
48699
48700
48701
48702
48703
48704
48705
48706
48707
48708
48709
48710
48711
48712
48713
48714
48715
48716
48717
48718
48719
48720
48721
48722
48723
48724
48725
48726
48727
48728
48729
48730
48731
48732
48733
48734
48735
48736
48737
48738
48739
48740
48741
48742
48743
48744
48745
48746
48747
48748
48749
48750
48751
48752
48753
48754
48755
48756
48757
48758
48759
48760
48761
48762
48763
48764
48765
48766
48767
48768
48769
48770
48771
48772
48773
48774
48775
48776
48777
48778
48779
48780
48781
48782
48783
48784
48785
48786
48787
48788
48789
48790
48791
48792
48793
48794
48795
48796
48797
48798
48799
48800
48801
48802
48803
48804
48805
48806
48807
48808
48809
48810
48811
48812
48813
48814
48815
48816
48817
48818
48819
48820
48821
48822
48823
48824
48825
48826
48827
48828
48829
48830
48831
48832
48833
48834
48835
48836
48837
48838
48839
48840
48841
48842
48843
48844
48845
48846
48847
48848
48849
48850
48851
48852
48853
48854
48855
48856
48857
48858
48859
48860
48861
48862
48863
48864
48865
48866
48867
48868
48869
48870
48871
48872
48873
48874
48875
48876
48877
48878
48879
48880
48881
48882
48883
48884
48885
48886
48887
48888
48889
48890
48891
48892
48893
48894
48895
48896
48897
48898
48899
48900
48901
48902
48903
48904
48905
48906
48907
48908
48909
48910
48911
48912
48913
48914
48915
48916
48917
48918
48919
48920
48921
48922
48923
48924
48925
48926
48927
48928
48929
48930
48931
48932
48933
48934
48935
48936
48937
48938
48939
48940
48941
48942
48943
48944
48945
48946
48947
48948
48949
48950
48951
48952
48953
48954
48955
48956
48957
48958
48959
48960
48961
48962
48963
48964
48965
48966
48967
48968
48969
48970
48971
48972
48973
48974
48975
48976
48977
48978
48979
48980
48981
48982
48983
48984
48985
48986
48987
48988
48989
48990
48991
48992
48993
48994
48995
48996
48997
48998
48999
49000
49001
49002
49003
49004
49005
49006
49007
49008
49009
49010
49011
49012
49013
49014
49015
49016
49017
49018
49019
49020
49021
49022
49023
49024
49025
49026
49027
49028
49029
49030
49031
49032
49033
49034
49035
49036
49037
49038
49039
49040
49041
49042
49043
49044
49045
49046
49047
49048
49049
49050
49051
49052
49053
49054
49055
49056
49057
49058
49059
49060
49061
49062
49063
49064
49065
49066
49067
49068
49069
49070
49071
49072
49073
49074
49075
49076
49077
49078
49079
49080
49081
49082
49083
49084
49085
49086
49087
49088
49089
49090
49091
49092
49093
49094
49095
49096
49097
49098
49099
49100
49101
49102
49103
49104
49105
49106
49107
49108
49109
49110
49111
49112
49113
49114
49115
49116
49117
49118
49119
49120
49121
49122
49123
49124
49125
49126
49127
49128
49129
49130
49131
49132
49133
49134
49135
49136
49137
49138
49139
49140
49141
49142
49143
49144
49145
49146
49147
49148
49149
49150
49151
49152
49153
49154
49155
49156
49157
49158
49159
49160
49161
49162
49163
49164
49165
49166
49167
49168
49169
49170
49171
49172
49173
49174
49175
49176
49177
49178
49179
49180
49181
49182
49183
49184
49185
49186
49187
49188
49189
49190
49191
49192
49193
49194
49195
49196
49197
49198
49199
49200
49201
49202
49203
49204
49205
49206
49207
49208
49209
49210
49211
49212
49213
49214
49215
49216
49217
49218
49219
49220
49221
49222
49223
49224
49225
49226
49227
49228
49229
49230
49231
49232
49233
49234
49235
49236
49237
49238
49239
49240
49241
49242
49243
49244
49245
49246
49247
49248
49249
49250
49251
49252
49253
49254
49255
49256
49257
49258
49259
49260
49261
49262
49263
49264
49265
49266
49267
49268
49269
49270
49271
49272
49273
49274
49275
49276
49277
49278
49279
49280
49281
49282
49283
49284
49285
49286
49287
49288
49289
49290
49291
49292
49293
49294
49295
49296
49297
49298
49299
49300
49301
49302
49303
49304
49305
49306
49307
49308
49309
49310
49311
49312
49313
49314
49315
49316
49317
49318
49319
49320
49321
49322
49323
49324
49325
49326
49327
49328
49329
49330
49331
49332
49333
49334
49335
49336
49337
49338
49339
49340
49341
49342
49343
49344
49345
49346
49347
49348
49349
49350
49351
49352
49353
49354
49355
49356
49357
49358
49359
49360
49361
49362
49363
49364
49365
49366
49367
49368
49369
49370
49371
49372
49373
49374
49375
49376
49377
49378
49379
49380
49381
49382
49383
49384
49385
49386
49387
49388
49389
49390
49391
49392
49393
49394
49395
49396
49397
49398
49399
49400
49401
49402
49403
49404
49405
49406
49407
49408
49409
49410
49411
49412
49413
49414
49415
49416
49417
49418
49419
49420
49421
49422
49423
49424
49425
49426
49427
49428
49429
49430
49431
49432
49433
49434
49435
49436
49437
49438
49439
49440
49441
49442
49443
49444
49445
49446
49447
49448
49449
49450
49451
49452
49453
49454
49455
49456
49457
49458
49459
49460
49461
49462
49463
49464
49465
49466
49467
49468
49469
49470
49471
49472
49473
49474
49475
49476
49477
49478
49479
49480
49481
49482
49483
49484
49485
49486
49487
49488
49489
49490
49491
49492
49493
49494
49495
49496
49497
49498
49499
49500
49501
49502
49503
49504
49505
49506
49507
49508
49509
49510
49511
49512
49513
49514
49515
49516
49517
49518
49519
49520
49521
49522
49523
49524
49525
49526
49527
49528
49529
49530
49531
49532
49533
49534
49535
49536
49537
49538
49539
49540
49541
49542
49543
49544
49545
49546
49547
49548
49549
49550
49551
49552
49553
49554
49555
49556
49557
49558
49559
49560
49561
49562
49563
49564
49565
49566
49567
49568
49569
49570
49571
49572
49573
49574
49575
49576
49577
49578
49579
49580
49581
49582
49583
49584
49585
49586
49587
49588
49589
49590
49591
49592
49593
49594
49595
49596
49597
49598
49599
49600
49601
49602
49603
49604
49605
49606
49607
49608
49609
49610
49611
49612
49613
49614
49615
49616
49617
49618
49619
49620
49621
49622
49623
49624
49625
49626
49627
49628
49629
49630
49631
49632
49633
49634
49635
49636
49637
49638
49639
49640
49641
49642
49643
49644
49645
49646
49647
49648
49649
49650
49651
49652
49653
49654
49655
49656
49657
49658
49659
49660
49661
49662
49663
49664
49665
49666
49667
49668
49669
49670
49671
49672
49673
49674
49675
49676
49677
49678
49679
49680
49681
49682
49683
49684
49685
49686
49687
49688
49689
49690
49691
49692
49693
49694
49695
49696
49697
49698
49699
49700
49701
49702
49703
49704
49705
49706
49707
49708
49709
49710
49711
49712
49713
49714
49715
49716
49717
49718
49719
49720
49721
49722
49723
49724
49725
49726
49727
49728
49729
49730
49731
49732
49733
49734
49735
49736
49737
49738
49739
49740
49741
49742
49743
49744
49745
49746
49747
49748
49749
49750
49751
49752
49753
49754
49755
49756
49757
49758
49759
49760
49761
49762
49763
49764
49765
49766
49767
49768
49769
49770
49771
49772
49773
49774
49775
49776
49777
49778
49779
49780
49781
49782
49783
49784
49785
49786
49787
49788
49789
49790
49791
49792
49793
49794
49795
49796
49797
49798
49799
49800
49801
49802
49803
49804
49805
49806
49807
49808
49809
49810
49811
49812
49813
49814
49815
49816
49817
49818
49819
49820
49821
49822
49823
49824
49825
49826
49827
49828
49829
49830
49831
49832
49833
49834
49835
49836
49837
49838
49839
49840
49841
49842
49843
49844
49845
49846
49847
49848
49849
49850
49851
49852
49853
49854
49855
49856
49857
49858
49859
49860
49861
49862
49863
49864
49865
49866
49867
49868
49869
49870
49871
49872
49873
49874
49875
49876
49877
49878
49879
49880
49881
49882
49883
49884
49885
49886
49887
49888
49889
49890
49891
49892
49893
49894
49895
49896
49897
49898
49899
49900
49901
49902
49903
49904
49905
49906
49907
49908
49909
49910
49911
49912
49913
49914
49915
49916
49917
49918
49919
49920
49921
49922
49923
49924
49925
49926
49927
49928
49929
49930
49931
49932
49933
49934
49935
49936
49937
49938
49939
49940
49941
49942
49943
49944
49945
49946
49947
49948
49949
49950
49951
49952
49953
49954
49955
49956
49957
49958
49959
49960
49961
49962
49963
49964
49965
49966
49967
49968
49969
49970
49971
49972
49973
49974
49975
49976
49977
49978
49979
49980
49981
49982
49983
49984
49985
49986
49987
49988
49989
49990
49991
49992
49993
49994
49995
49996
49997
49998
49999
50000
50001
50002
50003
50004
50005
50006
50007
50008
50009
50010
50011
50012
50013
50014
50015
50016
50017
50018
50019
50020
50021
50022
50023
50024
50025
50026
50027
50028
50029
50030
50031
50032
50033
50034
50035
50036
50037
50038
50039
50040
50041
50042
50043
50044
50045
50046
50047
50048
50049
50050
50051
50052
50053
50054
50055
50056
50057
50058
50059
50060
50061
50062
50063
50064
50065
50066
50067
50068
50069
50070
50071
50072
50073
50074
50075
50076
50077
50078
50079
50080
50081
50082
50083
50084
50085
50086
50087
50088
50089
50090
50091
50092
50093
50094
50095
50096
50097
50098
50099
50100
50101
50102
50103
50104
50105
50106
50107
50108
50109
50110
50111
50112
50113
50114
50115
50116
50117
50118
50119
50120
50121
50122
50123
50124
50125
50126
50127
50128
50129
50130
50131
50132
50133
50134
50135
50136
50137
50138
50139
50140
50141
50142
50143
50144
50145
50146
50147
50148
50149
50150
50151
50152
50153
50154
50155
50156
50157
50158
50159
50160
50161
50162
50163
50164
50165
50166
50167
50168
50169
50170
50171
50172
50173
50174
50175
50176
50177
50178
50179
50180
50181
50182
50183
50184
50185
50186
50187
50188
50189
50190
50191
50192
50193
50194
50195
50196
50197
50198
50199
50200
50201
50202
50203
50204
50205
50206
50207
50208
50209
50210
50211
50212
50213
50214
50215
50216
50217
50218
50219
50220
50221
50222
50223
50224
50225
50226
50227
50228
50229
50230
50231
50232
50233
50234
50235
50236
50237
50238
50239
50240
50241
50242
50243
50244
50245
50246
50247
50248
50249
50250
50251
50252
50253
50254
50255
50256
50257
50258
50259
50260
50261
50262
50263
50264
50265
50266
50267
50268
50269
50270
50271
50272
50273
50274
50275
50276
50277
50278
50279
50280
50281
50282
50283
50284
50285
50286
50287
50288
50289
50290
50291
50292
50293
50294
50295
50296
50297
50298
50299
50300
50301
50302
50303
50304
50305
50306
50307
50308
50309
50310
50311
50312
50313
50314
50315
50316
50317
50318
50319
50320
50321
50322
50323
50324
50325
50326
50327
50328
50329
50330
50331
50332
50333
50334
50335
50336
50337
50338
50339
50340
50341
50342
50343
50344
50345
50346
50347
50348
50349
50350
50351
50352
50353
50354
50355
50356
50357
50358
50359
50360
50361
50362
50363
50364
50365
50366
50367
50368
50369
50370
50371
50372
50373
50374
50375
50376
50377
50378
50379
50380
50381
50382
50383
50384
50385
50386
50387
50388
50389
50390
50391
50392
50393
50394
50395
50396
50397
50398
50399
50400
50401
50402
50403
50404
50405
50406
50407
50408
50409
50410
50411
50412
50413
50414
50415
50416
50417
50418
50419
50420
50421
50422
50423
50424
50425
50426
50427
50428
50429
50430
50431
50432
50433
50434
50435
50436
50437
50438
50439
50440
50441
50442
50443
50444
50445
50446
50447
50448
50449
50450
50451
50452
50453
50454
50455
50456
50457
50458
50459
50460
50461
50462
50463
50464
50465
50466
50467
50468
50469
50470
50471
50472
50473
50474
50475
50476
50477
50478
50479
50480
50481
50482
50483
50484
50485
50486
50487
50488
50489
50490
50491
50492
50493
50494
50495
50496
50497
50498
50499
50500
50501
50502
50503
50504
50505
50506
50507
50508
50509
50510
50511
50512
50513
50514
50515
50516
50517
50518
50519
50520
50521
50522
50523
50524
50525
50526
50527
50528
50529
50530
50531
50532
50533
50534
50535
50536
50537
50538
50539
50540
50541
50542
50543
50544
50545
50546
50547
50548
50549
50550
50551
50552
50553
50554
50555
50556
50557
50558
50559
50560
50561
50562
50563
50564
50565
50566
50567
50568
50569
50570
50571
50572
50573
50574
50575
50576
50577
50578
50579
50580
50581
50582
50583
50584
50585
50586
50587
50588
50589
50590
50591
50592
50593
50594
50595
50596
50597
50598
50599
50600
50601
50602
50603
50604
50605
50606
50607
50608
50609
50610
50611
50612
50613
50614
50615
50616
50617
50618
50619
50620
50621
50622
50623
50624
50625
50626
50627
50628
50629
50630
50631
50632
50633
50634
50635
50636
50637
50638
50639
50640
50641
50642
50643
50644
50645
50646
50647
50648
50649
50650
50651
50652
50653
50654
50655
50656
50657
50658
50659
50660
50661
50662
50663
50664
50665
50666
50667
50668
50669
50670
50671
50672
50673
50674
50675
50676
50677
50678
50679
50680
50681
50682
50683
50684
50685
50686
50687
50688
50689
50690
50691
50692
50693
50694
50695
50696
50697
50698
50699
50700
50701
50702
50703
50704
50705
50706
50707
50708
50709
50710
50711
50712
50713
50714
50715
50716
50717
50718
50719
50720
50721
50722
50723
50724
50725
50726
50727
50728
50729
50730
50731
50732
50733
50734
50735
50736
50737
50738
50739
50740
50741
50742
50743
50744
50745
50746
50747
50748
50749
50750
50751
50752
50753
50754
50755
50756
50757
50758
50759
50760
50761
50762
50763
50764
50765
50766
50767
50768
50769
50770
50771
50772
50773
50774
50775
50776
50777
50778
50779
50780
50781
50782
50783
50784
50785
50786
50787
50788
50789
50790
50791
50792
50793
50794
50795
50796
50797
50798
50799
50800
50801
50802
50803
50804
50805
50806
50807
50808
50809
50810
50811
50812
50813
50814
50815
50816
50817
50818
50819
50820
50821
50822
50823
50824
50825
50826
50827
50828
50829
50830
50831
50832
50833
50834
50835
50836
50837
50838
50839
50840
50841
50842
50843
50844
50845
50846
50847
50848
50849
50850
50851
50852
50853
50854
50855
50856
50857
50858
50859
50860
50861
50862
50863
50864
50865
50866
50867
50868
50869
50870
50871
50872
50873
50874
50875
50876
50877
50878
50879
50880
50881
50882
50883
50884
50885
50886
50887
50888
50889
50890
50891
50892
50893
50894
50895
50896
50897
50898
50899
50900
50901
50902
50903
50904
50905
50906
50907
50908
50909
50910
50911
50912
50913
50914
50915
50916
50917
50918
50919
50920
50921
50922
50923
50924
50925
50926
50927
50928
50929
50930
50931
50932
50933
50934
50935
50936
50937
50938
50939
50940
50941
50942
50943
50944
50945
50946
50947
50948
50949
50950
50951
50952
50953
50954
50955
50956
50957
50958
50959
50960
50961
50962
50963
50964
50965
50966
50967
50968
50969
50970
50971
50972
50973
50974
50975
50976
50977
50978
50979
50980
50981
50982
50983
50984
50985
50986
50987
50988
50989
50990
50991
50992
50993
50994
50995
50996
50997
50998
50999
51000
51001
51002
51003
51004
51005
51006
51007
51008
51009
51010
51011
51012
51013
51014
51015
51016
51017
51018
51019
51020
51021
51022
51023
51024
51025
51026
51027
51028
51029
51030
51031
51032
51033
51034
51035
51036
51037
51038
51039
51040
51041
51042
51043
51044
51045
51046
51047
51048
51049
51050
51051
51052
51053
51054
51055
51056
51057
51058
51059
51060
51061
51062
51063
51064
51065
51066
51067
51068
51069
51070
51071
51072
51073
51074
51075
51076
51077
51078
51079
51080
51081
51082
51083
51084
51085
51086
51087
51088
51089
51090
51091
51092
51093
51094
51095
51096
51097
51098
51099
51100
51101
51102
51103
51104
51105
51106
51107
51108
51109
51110
51111
51112
51113
51114
51115
51116
51117
51118
51119
51120
51121
51122
51123
51124
51125
51126
51127
51128
51129
51130
51131
51132
51133
51134
51135
51136
51137
51138
51139
51140
51141
51142
51143
51144
51145
51146
51147
51148
51149
51150
51151
51152
51153
51154
51155
51156
51157
51158
51159
51160
51161
51162
51163
51164
51165
51166
51167
51168
51169
51170
51171
51172
51173
51174
51175
51176
51177
51178
51179
51180
51181
51182
51183
51184
51185
51186
51187
51188
51189
51190
51191
51192
51193
51194
51195
51196
51197
51198
51199
51200
51201
51202
51203
51204
51205
51206
51207
51208
51209
51210
51211
51212
51213
51214
51215
51216
51217
51218
51219
51220
51221
51222
51223
51224
51225
51226
51227
51228
51229
51230
51231
51232
51233
51234
51235
51236
51237
51238
51239
51240
51241
51242
51243
51244
51245
51246
51247
51248
51249
51250
51251
51252
51253
51254
51255
51256
51257
51258
51259
51260
51261
51262
51263
51264
51265
51266
51267
51268
51269
51270
51271
51272
51273
51274
51275
51276
51277
51278
51279
51280
51281
51282
51283
51284
51285
51286
51287
51288
51289
51290
51291
51292
51293
51294
51295
51296
51297
51298
51299
51300
51301
51302
51303
51304
51305
51306
51307
51308
51309
51310
51311
51312
51313
51314
51315
51316
51317
51318
51319
51320
51321
51322
51323
51324
51325
51326
51327
51328
51329
51330
51331
51332
51333
51334
51335
51336
51337
51338
51339
51340
51341
51342
51343
51344
51345
51346
51347
51348
51349
51350
51351
51352
51353
51354
51355
51356
51357
51358
51359
51360
51361
51362
51363
51364
51365
51366
51367
51368
51369
51370
51371
51372
51373
51374
51375
51376
51377
51378
51379
51380
51381
51382
51383
51384
51385
51386
51387
51388
51389
51390
51391
51392
51393
51394
51395
51396
51397
51398
51399
51400
51401
51402
51403
51404
51405
51406
51407
51408
51409
51410
51411
51412
51413
51414
51415
51416
51417
51418
51419
51420
51421
51422
51423
51424
51425
51426
51427
51428
51429
51430
51431
51432
51433
51434
51435
51436
51437
51438
51439
51440
51441
51442
51443
51444
51445
51446
51447
51448
51449
51450
51451
51452
51453
51454
51455
51456
51457
51458
51459
51460
51461
51462
51463
51464
51465
51466
51467
51468
51469
51470
51471
51472
51473
51474
51475
51476
51477
51478
51479
51480
51481
51482
51483
51484
51485
51486
51487
51488
51489
51490
51491
51492
51493
51494
51495
51496
51497
51498
51499
51500
51501
51502
51503
51504
51505
51506
51507
51508
51509
51510
51511
51512
51513
51514
51515
51516
51517
51518
51519
51520
51521
51522
51523
51524
51525
51526
51527
51528
51529
51530
51531
51532
51533
51534
51535
51536
51537
51538
51539
51540
51541
51542
51543
51544
51545
51546
51547
51548
51549
51550
51551
51552
51553
51554
51555
51556
51557
51558
51559
51560
51561
51562
51563
51564
51565
51566
51567
51568
51569
51570
51571
51572
51573
51574
51575
51576
51577
51578
51579
51580
51581
51582
51583
51584
51585
51586
51587
51588
51589
51590
51591
51592
51593
51594
51595
51596
51597
51598
51599
51600
51601
51602
51603
51604
51605
51606
51607
51608
51609
51610
51611
51612
51613
51614
51615
51616
51617
51618
51619
51620
51621
51622
51623
51624
51625
51626
51627
51628
51629
51630
51631
51632
51633
51634
51635
51636
51637
51638
51639
51640
51641
51642
51643
51644
51645
51646
51647
51648
51649
51650
51651
51652
51653
51654
51655
51656
51657
51658
51659
51660
51661
51662
51663
51664
51665
51666
51667
51668
51669
51670
51671
51672
51673
51674
51675
51676
51677
51678
51679
51680
51681
51682
51683
51684
51685
51686
51687
51688
51689
51690
51691
51692
51693
51694
51695
51696
51697
51698
51699
51700
51701
51702
51703
51704
51705
51706
51707
51708
51709
51710
51711
51712
51713
51714
51715
51716
51717
51718
51719
51720
51721
51722
51723
51724
51725
51726
51727
51728
51729
51730
51731
51732
51733
51734
51735
51736
51737
51738
51739
51740
51741
51742
51743
51744
51745
51746
51747
51748
51749
51750
51751
51752
51753
51754
51755
51756
51757
51758
51759
51760
51761
51762
51763
51764
51765
51766
51767
51768
51769
51770
51771
51772
51773
51774
51775
51776
51777
51778
51779
51780
51781
51782
51783
51784
51785
51786
51787
51788
51789
51790
51791
51792
51793
51794
51795
51796
51797
51798
51799
51800
51801
51802
51803
51804
51805
51806
51807
51808
51809
51810
51811
51812
51813
51814
51815
51816
51817
51818
51819
51820
51821
51822
51823
51824
51825
51826
51827
51828
51829
51830
51831
51832
51833
51834
51835
51836
51837
51838
51839
51840
51841
51842
51843
51844
51845
51846
51847
51848
51849
51850
51851
51852
51853
51854
51855
51856
51857
51858
51859
51860
51861
51862
51863
51864
51865
51866
51867
51868
51869
51870
51871
51872
51873
51874
51875
51876
51877
51878
51879
51880
51881
51882
51883
51884
51885
51886
51887
51888
51889
51890
51891
51892
51893
51894
51895
51896
51897
51898
51899
51900
51901
51902
51903
51904
51905
51906
51907
51908
51909
51910
51911
51912
51913
51914
51915
51916
51917
51918
51919
51920
51921
51922
51923
51924
51925
51926
51927
51928
51929
51930
51931
51932
51933
51934
51935
51936
51937
51938
51939
51940
51941
51942
51943
51944
51945
51946
51947
51948
51949
51950
51951
51952
51953
51954
51955
51956
51957
51958
51959
51960
51961
51962
51963
51964
51965
51966
51967
51968
51969
51970
51971
51972
51973
51974
51975
51976
51977
51978
51979
51980
51981
51982
51983
51984
51985
51986
51987
51988
51989
51990
51991
51992
51993
51994
51995
51996
51997
51998
51999
52000
52001
52002
52003
52004
52005
52006
52007
52008
52009
52010
52011
52012
52013
52014
52015
52016
52017
52018
52019
52020
52021
52022
52023
52024
52025
52026
52027
52028
52029
52030
52031
52032
52033
52034
52035
52036
52037
52038
52039
52040
52041
52042
52043
52044
52045
52046
52047
52048
52049
52050
52051
52052
52053
52054
52055
52056
52057
52058
52059
52060
52061
52062
52063
52064
52065
52066
52067
52068
52069
52070
52071
52072
52073
52074
52075
52076
52077
52078
52079
52080
52081
52082
52083
52084
52085
52086
52087
52088
52089
52090
52091
52092
52093
52094
52095
52096
52097
52098
52099
52100
52101
52102
52103
52104
52105
52106
52107
52108
52109
52110
52111
52112
52113
52114
52115
52116
52117
52118
52119
52120
52121
52122
52123
52124
52125
52126
52127
52128
52129
52130
52131
52132
52133
52134
52135
52136
52137
52138
52139
52140
52141
52142
52143
52144
52145
52146
52147
52148
52149
52150
52151
52152
52153
52154
52155
52156
52157
52158
52159
52160
52161
52162
52163
52164
52165
52166
52167
52168
52169
52170
52171
52172
52173
52174
52175
52176
52177
52178
52179
52180
52181
52182
52183
52184
52185
52186
52187
52188
52189
52190
52191
52192
52193
52194
52195
52196
52197
52198
52199
52200
52201
52202
52203
52204
52205
52206
52207
52208
52209
52210
52211
52212
52213
52214
52215
52216
52217
52218
52219
52220
52221
52222
52223
52224
52225
52226
52227
52228
52229
52230
52231
52232
52233
52234
52235
52236
52237
52238
52239
52240
52241
52242
52243
52244
52245
52246
52247
52248
52249
52250
52251
52252
52253
52254
52255
52256
52257
52258
52259
52260
52261
52262
52263
52264
52265
52266
52267
52268
52269
52270
52271
52272
52273
52274
52275
52276
52277
52278
52279
52280
52281
52282
52283
52284
52285
52286
52287
52288
52289
52290
52291
52292
52293
52294
52295
52296
52297
52298
52299
52300
52301
52302
52303
52304
52305
52306
52307
52308
52309
52310
52311
52312
52313
52314
52315
52316
52317
52318
52319
52320
52321
52322
52323
52324
52325
52326
52327
52328
52329
52330
52331
52332
52333
52334
52335
52336
52337
52338
52339
52340
52341
52342
52343
52344
52345
52346
52347
52348
52349
52350
52351
52352
52353
52354
52355
52356
52357
52358
52359
52360
52361
52362
52363
52364
52365
52366
52367
52368
52369
52370
52371
52372
52373
52374
52375
52376
52377
52378
52379
52380
52381
52382
52383
52384
52385
52386
52387
52388
52389
52390
52391
52392
52393
52394
52395
52396
52397
52398
52399
52400
52401
52402
52403
52404
52405
52406
52407
52408
52409
52410
52411
52412
52413
52414
52415
52416
52417
52418
52419
52420
52421
52422
52423
52424
52425
52426
52427
52428
52429
52430
52431
52432
52433
52434
52435
52436
52437
52438
52439
52440
52441
52442
52443
52444
52445
52446
52447
52448
52449
52450
52451
52452
52453
52454
52455
52456
52457
52458
52459
52460
52461
52462
52463
52464
52465
52466
52467
52468
52469
52470
52471
52472
52473
52474
52475
52476
52477
52478
52479
52480
52481
52482
52483
52484
52485
52486
52487
52488
52489
52490
52491
52492
52493
52494
52495
52496
52497
52498
52499
52500
52501
52502
52503
52504
52505
52506
52507
52508
52509
52510
52511
52512
52513
52514
52515
52516
52517
52518
52519
52520
52521
52522
52523
52524
52525
52526
52527
52528
52529
52530
52531
52532
52533
52534
52535
52536
52537
52538
52539
52540
52541
52542
52543
52544
52545
52546
52547
52548
52549
52550
52551
52552
52553
52554
52555
52556
52557
52558
52559
52560
52561
52562
52563
52564
52565
52566
52567
52568
52569
52570
52571
52572
52573
52574
52575
52576
52577
52578
52579
52580
52581
52582
52583
52584
52585
52586
52587
52588
52589
52590
52591
52592
52593
52594
52595
52596
52597
52598
52599
52600
52601
52602
52603
52604
52605
52606
52607
52608
52609
52610
52611
52612
52613
52614
52615
52616
52617
52618
52619
52620
52621
52622
52623
52624
52625
52626
52627
52628
52629
52630
52631
52632
52633
52634
52635
52636
52637
52638
52639
52640
52641
52642
52643
52644
52645
52646
52647
52648
52649
52650
52651
52652
52653
52654
52655
52656
52657
52658
52659
52660
52661
52662
52663
52664
52665
52666
52667
52668
52669
52670
52671
52672
52673
52674
52675
52676
52677
52678
52679
52680
52681
52682
52683
52684
52685
52686
52687
52688
52689
52690
52691
52692
52693
52694
52695
52696
52697
52698
52699
52700
52701
52702
52703
52704
52705
52706
52707
52708
52709
52710
52711
52712
52713
52714
52715
52716
52717
52718
52719
52720
52721
52722
52723
52724
52725
52726
52727
52728
52729
52730
52731
52732
52733
52734
52735
52736
52737
52738
52739
52740
52741
52742
52743
52744
52745
52746
52747
52748
52749
52750
52751
52752
52753
52754
52755
52756
52757
52758
52759
52760
52761
52762
52763
52764
52765
52766
52767
52768
52769
52770
52771
52772
52773
52774
52775
52776
52777
52778
52779
52780
52781
52782
52783
52784
52785
52786
52787
52788
52789
52790
52791
52792
52793
52794
52795
52796
52797
52798
52799
52800
52801
52802
52803
52804
52805
52806
52807
52808
52809
52810
52811
52812
52813
52814
52815
52816
52817
52818
52819
52820
52821
52822
52823
52824
52825
52826
52827
52828
52829
52830
52831
52832
52833
52834
52835
52836
52837
52838
52839
52840
52841
52842
52843
52844
52845
52846
52847
52848
52849
52850
52851
52852
52853
52854
52855
52856
52857
52858
52859
52860
52861
52862
52863
52864
52865
52866
52867
52868
52869
52870
52871
52872
52873
52874
52875
52876
52877
52878
52879
52880
52881
52882
52883
52884
52885
52886
52887
52888
52889
52890
52891
52892
52893
52894
52895
52896
52897
52898
52899
52900
52901
52902
52903
52904
52905
52906
52907
52908
52909
52910
52911
52912
52913
52914
52915
52916
52917
52918
52919
52920
52921
52922
52923
52924
52925
52926
52927
52928
52929
52930
52931
52932
52933
52934
52935
52936
52937
52938
52939
52940
52941
52942
52943
52944
52945
52946
52947
52948
52949
52950
52951
52952
52953
52954
52955
52956
52957
52958
52959
52960
52961
52962
52963
52964
52965
52966
52967
52968
52969
52970
52971
52972
52973
52974
52975
52976
52977
52978
52979
52980
52981
52982
52983
52984
52985
52986
52987
52988
52989
52990
52991
52992
52993
52994
52995
52996
52997
52998
52999
53000
53001
53002
53003
53004
53005
53006
53007
53008
53009
53010
53011
53012
53013
53014
53015
53016
53017
53018
53019
53020
53021
53022
53023
53024
53025
53026
53027
53028
53029
53030
53031
53032
53033
53034
53035
53036
53037
53038
53039
53040
53041
53042
53043
53044
53045
53046
53047
53048
53049
53050
53051
53052
53053
53054
53055
53056
53057
53058
53059
53060
53061
53062
53063
53064
53065
53066
53067
53068
53069
53070
53071
53072
53073
53074
53075
53076
53077
53078
53079
53080
53081
53082
53083
53084
53085
53086
53087
53088
53089
53090
53091
53092
53093
53094
53095
53096
53097
53098
53099
53100
53101
53102
53103
53104
53105
53106
53107
53108
53109
53110
53111
53112
53113
53114
53115
53116
53117
53118
53119
53120
53121
53122
53123
53124
53125
53126
53127
53128
53129
53130
53131
53132
53133
53134
53135
53136
53137
53138
53139
53140
53141
53142
53143
53144
53145
53146
53147
53148
53149
53150
53151
53152
53153
53154
53155
53156
53157
53158
53159
53160
53161
53162
53163
53164
53165
53166
53167
53168
53169
53170
53171
53172
53173
53174
53175
53176
53177
53178
53179
53180
53181
53182
53183
53184
53185
53186
53187
53188
53189
53190
53191
53192
53193
53194
53195
53196
53197
53198
53199
53200
53201
53202
53203
53204
53205
53206
53207
53208
53209
53210
53211
53212
53213
53214
53215
53216
53217
53218
53219
53220
53221
53222
53223
53224
53225
53226
53227
53228
53229
53230
53231
53232
53233
53234
53235
53236
53237
53238
53239
53240
53241
53242
53243
53244
53245
53246
53247
53248
53249
53250
53251
53252
53253
53254
53255
53256
53257
53258
53259
53260
53261
53262
53263
53264
53265
53266
53267
53268
53269
53270
53271
53272
53273
53274
53275
53276
53277
53278
53279
53280
53281
53282
53283
53284
53285
53286
53287
53288
53289
53290
53291
53292
53293
53294
53295
53296
53297
53298
53299
53300
53301
53302
53303
53304
53305
53306
53307
53308
53309
53310
53311
53312
53313
53314
53315
53316
53317
53318
53319
53320
53321
53322
53323
53324
53325
53326
53327
53328
53329
53330
53331
53332
53333
53334
53335
53336
53337
53338
53339
53340
53341
53342
53343
53344
53345
53346
53347
53348
53349
53350
53351
53352
53353
53354
53355
53356
53357
53358
53359
53360
53361
53362
53363
53364
53365
53366
53367
53368
53369
53370
53371
53372
53373
53374
53375
53376
53377
53378
53379
53380
53381
53382
53383
53384
53385
53386
53387
53388
53389
53390
53391
53392
53393
53394
53395
53396
53397
53398
53399
53400
53401
53402
53403
53404
53405
53406
53407
53408
53409
53410
53411
53412
53413
53414
53415
53416
53417
53418
53419
53420
53421
53422
53423
53424
53425
53426
53427
53428
53429
53430
53431
53432
53433
53434
53435
53436
53437
53438
53439
53440
53441
53442
53443
53444
53445
53446
53447
53448
53449
53450
53451
53452
53453
53454
53455
53456
53457
53458
53459
53460
53461
53462
53463
53464
53465
53466
53467
53468
53469
53470
53471
53472
53473
53474
53475
53476
53477
53478
53479
53480
53481
53482
53483
53484
53485
53486
53487
53488
53489
53490
53491
53492
53493
53494
53495
53496
53497
53498
53499
53500
53501
53502
53503
53504
53505
53506
53507
53508
53509
53510
53511
53512
53513
53514
53515
53516
53517
53518
53519
53520
53521
53522
53523
53524
53525
53526
53527
53528
53529
53530
53531
53532
53533
53534
53535
53536
53537
53538
53539
53540
53541
53542
53543
53544
53545
53546
53547
53548
53549
53550
53551
53552
53553
53554
53555
53556
53557
53558
53559
53560
53561
53562
53563
53564
53565
53566
53567
53568
53569
53570
53571
53572
53573
53574
53575
53576
53577
53578
53579
53580
53581
53582
53583
53584
53585
53586
53587
53588
53589
53590
53591
53592
53593
53594
53595
53596
53597
53598
53599
53600
53601
53602
53603
53604
53605
53606
53607
53608
53609
53610
53611
53612
53613
53614
53615
53616
53617
53618
53619
53620
53621
53622
53623
53624
53625
53626
53627
53628
53629
53630
53631
53632
53633
53634
53635
53636
53637
53638
53639
53640
53641
53642
53643
53644
53645
53646
53647
53648
53649
53650
53651
53652
53653
53654
53655
53656
53657
53658
53659
53660
53661
53662
53663
53664
53665
53666
53667
53668
53669
53670
53671
53672
53673
53674
53675
53676
53677
53678
53679
53680
53681
53682
53683
53684
53685
53686
53687
53688
53689
53690
53691
53692
53693
53694
53695
53696
53697
53698
53699
53700
53701
53702
53703
53704
53705
53706
53707
53708
53709
53710
53711
53712
53713
53714
53715
53716
53717
53718
53719
53720
53721
53722
53723
53724
53725
53726
53727
53728
53729
53730
53731
53732
53733
53734
53735
53736
53737
53738
53739
53740
53741
53742
53743
53744
53745
53746
53747
53748
53749
53750
53751
53752
53753
53754
53755
53756
53757
53758
53759
53760
53761
53762
53763
53764
53765
53766
53767
53768
53769
53770
53771
53772
53773
53774
53775
53776
53777
53778
53779
53780
53781
53782
53783
53784
53785
53786
53787
53788
53789
53790
53791
53792
53793
53794
53795
53796
53797
53798
53799
53800
53801
53802
53803
53804
53805
53806
53807
53808
53809
53810
53811
53812
53813
53814
53815
53816
53817
53818
53819
53820
53821
53822
53823
53824
53825
53826
53827
53828
53829
53830
53831
53832
53833
53834
53835
53836
53837
53838
53839
53840
53841
53842
53843
53844
53845
53846
53847
53848
53849
53850
53851
53852
53853
53854
53855
53856
53857
53858
53859
53860
53861
53862
53863
53864
53865
53866
53867
53868
53869
53870
53871
53872
53873
53874
53875
53876
53877
53878
53879
53880
53881
53882
53883
53884
53885
53886
53887
53888
53889
53890
53891
53892
53893
53894
53895
53896
53897
53898
53899
53900
53901
53902
53903
53904
53905
53906
53907
53908
53909
53910
53911
53912
53913
53914
53915
53916
53917
53918
53919
53920
53921
53922
53923
53924
53925
53926
53927
53928
53929
53930
53931
53932
53933
53934
53935
53936
53937
53938
53939
53940
53941
53942
53943
53944
53945
53946
53947
53948
53949
53950
53951
53952
53953
53954
53955
53956
53957
53958
53959
53960
53961
53962
53963
53964
53965
53966
53967
53968
53969
53970
53971
53972
53973
53974
53975
53976
53977
53978
53979
53980
53981
53982
53983
53984
53985
53986
53987
53988
53989
53990
53991
53992
53993
53994
53995
53996
53997
53998
53999
54000
54001
54002
54003
54004
54005
54006
54007
54008
54009
54010
54011
54012
54013
54014
54015
54016
54017
54018
54019
54020
54021
54022
54023
54024
54025
54026
54027
54028
54029
54030
54031
54032
54033
54034
54035
54036
54037
54038
54039
54040
54041
54042
54043
54044
54045
54046
54047
54048
54049
54050
54051
54052
54053
54054
54055
54056
54057
54058
54059
54060
54061
54062
54063
54064
54065
54066
54067
54068
54069
54070
54071
54072
54073
54074
54075
54076
54077
54078
54079
54080
54081
54082
54083
54084
54085
54086
54087
54088
54089
54090
54091
54092
54093
54094
54095
54096
54097
54098
54099
54100
54101
54102
54103
54104
54105
54106
54107
54108
54109
54110
54111
54112
54113
54114
54115
54116
54117
54118
54119
54120
54121
54122
54123
54124
54125
54126
54127
54128
54129
54130
54131
54132
54133
54134
54135
54136
54137
54138
54139
54140
54141
54142
54143
54144
54145
54146
54147
54148
54149
54150
54151
54152
54153
54154
54155
54156
54157
54158
54159
54160
54161
54162
54163
54164
54165
54166
54167
54168
54169
54170
54171
54172
54173
54174
54175
54176
54177
54178
54179
54180
54181
54182
54183
54184
54185
54186
54187
54188
54189
54190
54191
54192
54193
54194
54195
54196
54197
54198
54199
54200
54201
54202
54203
54204
54205
54206
54207
54208
54209
54210
54211
54212
54213
54214
54215
54216
54217
54218
54219
54220
54221
54222
54223
54224
54225
54226
54227
54228
54229
54230
54231
54232
54233
54234
54235
54236
54237
54238
54239
54240
54241
54242
54243
54244
54245
54246
54247
54248
54249
54250
54251
54252
54253
54254
54255
54256
54257
54258
54259
54260
54261
54262
54263
54264
54265
54266
54267
54268
54269
54270
54271
54272
54273
54274
54275
54276
54277
54278
54279
54280
54281
54282
54283
54284
54285
54286
54287
54288
54289
54290
54291
54292
54293
54294
54295
54296
54297
54298
54299
54300
54301
54302
54303
54304
54305
54306
54307
54308
54309
54310
54311
54312
54313
54314
54315
54316
54317
54318
54319
54320
54321
54322
54323
54324
54325
54326
54327
54328
54329
54330
54331
54332
54333
54334
54335
54336
54337
54338
54339
54340
54341
54342
54343
54344
54345
54346
54347
54348
54349
54350
54351
54352
54353
54354
54355
54356
54357
54358
54359
54360
54361
54362
54363
54364
54365
54366
54367
54368
54369
54370
54371
54372
54373
54374
54375
54376
54377
54378
54379
54380
54381
54382
54383
54384
54385
54386
54387
54388
54389
54390
54391
54392
54393
54394
54395
54396
54397
54398
54399
54400
54401
54402
54403
54404
54405
54406
54407
54408
54409
54410
54411
54412
54413
54414
54415
54416
54417
54418
54419
54420
54421
54422
54423
54424
54425
54426
54427
54428
54429
54430
54431
54432
54433
54434
54435
54436
54437
54438
54439
54440
54441
54442
54443
54444
54445
54446
54447
54448
54449
54450
54451
54452
54453
54454
54455
54456
54457
54458
54459
54460
54461
54462
54463
54464
54465
54466
54467
54468
54469
54470
54471
54472
54473
54474
54475
54476
54477
54478
54479
54480
54481
54482
54483
54484
54485
54486
54487
54488
54489
54490
54491
54492
54493
54494
54495
54496
54497
54498
54499
54500
54501
54502
54503
54504
54505
54506
54507
54508
54509
54510
54511
54512
54513
54514
54515
54516
54517
54518
54519
54520
54521
54522
54523
54524
54525
54526
54527
54528
54529
54530
54531
54532
54533
54534
54535
54536
54537
54538
54539
54540
54541
54542
54543
54544
54545
54546
54547
54548
54549
54550
54551
54552
54553
54554
54555
54556
54557
54558
54559
54560
54561
54562
54563
54564
54565
54566
54567
54568
54569
54570
54571
54572
54573
54574
54575
54576
54577
54578
54579
54580
54581
54582
54583
54584
54585
54586
54587
54588
54589
54590
54591
54592
54593
54594
54595
54596
54597
54598
54599
54600
54601
54602
54603
54604
54605
54606
54607
54608
54609
54610
54611
54612
54613
54614
54615
54616
54617
54618
54619
54620
54621
54622
54623
54624
54625
54626
54627
54628
54629
54630
54631
54632
54633
54634
54635
54636
54637
54638
54639
54640
54641
54642
54643
54644
54645
54646
54647
54648
54649
54650
54651
54652
54653
54654
54655
54656
54657
54658
54659
54660
54661
54662
54663
54664
54665
54666
54667
54668
54669
54670
54671
54672
54673
54674
54675
54676
54677
54678
54679
54680
54681
54682
54683
54684
54685
54686
54687
54688
54689
54690
54691
54692
54693
54694
54695
54696
54697
54698
54699
54700
54701
54702
54703
54704
54705
54706
54707
54708
54709
54710
54711
54712
54713
54714
54715
54716
54717
54718
54719
54720
54721
54722
54723
54724
54725
54726
54727
54728
54729
54730
54731
54732
54733
54734
54735
54736
54737
54738
54739
54740
54741
54742
54743
54744
54745
54746
54747
54748
54749
54750
54751
54752
54753
54754
54755
54756
54757
54758
54759
54760
54761
54762
54763
54764
54765
54766
54767
54768
54769
54770
54771
54772
54773
54774
54775
54776
54777
54778
54779
54780
54781
54782
54783
54784
54785
54786
54787
54788
54789
54790
54791
54792
54793
54794
54795
54796
54797
54798
54799
54800
54801
54802
54803
54804
54805
54806
54807
54808
54809
54810
54811
54812
54813
54814
54815
54816
54817
54818
54819
54820
54821
54822
54823
54824
54825
54826
54827
54828
54829
54830
54831
54832
54833
54834
54835
54836
54837
54838
54839
54840
54841
54842
54843
54844
54845
54846
54847
54848
54849
54850
54851
54852
54853
54854
54855
54856
54857
54858
54859
54860
54861
54862
54863
54864
54865
54866
54867
54868
54869
54870
54871
54872
54873
54874
54875
54876
54877
54878
54879
54880
54881
54882
54883
54884
54885
54886
54887
54888
54889
54890
54891
54892
54893
54894
54895
54896
54897
54898
54899
54900
54901
54902
54903
54904
54905
54906
54907
54908
54909
54910
54911
54912
54913
54914
54915
54916
54917
54918
54919
54920
54921
54922
54923
54924
54925
54926
54927
54928
54929
54930
54931
54932
54933
54934
54935
54936
54937
54938
54939
54940
54941
54942
54943
54944
54945
54946
54947
54948
54949
54950
54951
54952
54953
54954
54955
54956
54957
54958
54959
54960
54961
54962
54963
54964
54965
54966
54967
54968
54969
54970
54971
54972
54973
54974
54975
54976
54977
54978
54979
54980
54981
54982
54983
54984
54985
54986
54987
54988
54989
54990
54991
54992
54993
54994
54995
54996
54997
54998
54999
55000
55001
55002
55003
55004
55005
55006
55007
55008
55009
55010
55011
55012
55013
55014
55015
55016
55017
55018
55019
55020
55021
55022
55023
55024
55025
55026
55027
55028
55029
55030
55031
55032
55033
55034
55035
55036
55037
55038
55039
55040
55041
55042
55043
55044
55045
55046
55047
55048
55049
55050
55051
55052
55053
55054
55055
55056
55057
55058
55059
55060
55061
55062
55063
55064
55065
55066
55067
55068
55069
55070
55071
55072
55073
55074
55075
55076
55077
55078
55079
55080
55081
55082
55083
55084
55085
55086
55087
55088
55089
55090
55091
55092
55093
55094
55095
55096
55097
55098
55099
55100
55101
55102
55103
55104
55105
55106
55107
55108
55109
55110
55111
55112
55113
55114
55115
55116
55117
55118
55119
55120
55121
55122
55123
55124
55125
55126
55127
55128
55129
55130
55131
55132
55133
55134
55135
55136
55137
55138
55139
55140
55141
55142
55143
55144
55145
55146
55147
55148
55149
55150
55151
55152
55153
55154
55155
55156
55157
55158
55159
55160
55161
55162
55163
55164
55165
55166
55167
55168
55169
55170
55171
55172
55173
55174
55175
55176
55177
55178
55179
55180
55181
55182
55183
55184
55185
55186
55187
55188
55189
55190
55191
55192
55193
55194
55195
55196
55197
55198
55199
55200
55201
55202
55203
55204
55205
55206
55207
55208
55209
55210
55211
55212
55213
55214
55215
55216
55217
55218
55219
55220
55221
55222
55223
55224
55225
55226
55227
55228
55229
55230
55231
55232
55233
55234
55235
55236
55237
55238
55239
55240
55241
55242
55243
55244
55245
55246
55247
55248
55249
55250
55251
55252
55253
55254
55255
55256
55257
55258
55259
55260
55261
55262
55263
55264
55265
55266
55267
55268
55269
55270
55271
55272
55273
55274
55275
55276
55277
55278
55279
55280
55281
55282
55283
55284
55285
55286
55287
55288
55289
55290
55291
55292
55293
55294
55295
55296
55297
55298
55299
55300
55301
55302
55303
55304
55305
55306
55307
55308
55309
55310
55311
55312
55313
55314
55315
55316
55317
55318
55319
55320
55321
55322
55323
55324
55325
55326
55327
55328
55329
55330
55331
55332
55333
55334
55335
55336
55337
55338
55339
55340
55341
55342
55343
55344
55345
55346
55347
55348
55349
55350
55351
55352
55353
55354
55355
55356
55357
55358
55359
55360
55361
55362
55363
55364
55365
55366
55367
55368
55369
55370
55371
55372
55373
55374
55375
55376
55377
55378
55379
55380
55381
55382
55383
55384
55385
55386
55387
55388
55389
55390
55391
55392
55393
55394
55395
55396
55397
55398
55399
55400
55401
55402
55403
55404
55405
55406
55407
55408
55409
55410
55411
55412
55413
55414
55415
55416
55417
55418
55419
55420
55421
55422
55423
55424
55425
55426
55427
55428
55429
55430
55431
55432
55433
55434
55435
55436
55437
55438
55439
55440
55441
55442
55443
55444
55445
55446
55447
55448
55449
55450
55451
55452
55453
55454
55455
55456
55457
55458
55459
55460
55461
55462
55463
55464
55465
55466
55467
55468
55469
55470
55471
55472
55473
55474
55475
55476
55477
55478
55479
55480
55481
55482
55483
55484
55485
55486
55487
55488
55489
55490
55491
55492
55493
55494
55495
55496
55497
55498
55499
55500
55501
55502
55503
55504
55505
55506
55507
55508
55509
55510
55511
55512
55513
55514
55515
55516
55517
55518
55519
55520
55521
55522
55523
55524
55525
55526
55527
55528
55529
55530
55531
55532
55533
55534
55535
55536
55537
55538
55539
55540
55541
55542
55543
55544
55545
55546
55547
55548
55549
55550
55551
55552
55553
55554
55555
55556
55557
55558
55559
55560
55561
55562
55563
55564
55565
55566
55567
55568
55569
55570
55571
55572
55573
55574
55575
55576
55577
55578
55579
55580
55581
55582
55583
55584
55585
55586
55587
55588
55589
55590
55591
55592
55593
55594
55595
55596
55597
55598
55599
55600
55601
55602
55603
55604
55605
55606
55607
55608
55609
55610
55611
55612
55613
55614
55615
55616
55617
55618
55619
55620
55621
55622
55623
55624
55625
55626
55627
55628
55629
55630
55631
55632
55633
55634
55635
55636
55637
55638
55639
55640
55641
55642
55643
55644
55645
55646
55647
55648
55649
55650
55651
55652
55653
55654
55655
55656
55657
55658
55659
55660
55661
55662
55663
55664
55665
55666
55667
55668
55669
55670
55671
55672
55673
55674
55675
55676
55677
55678
55679
55680
55681
55682
55683
55684
55685
55686
55687
55688
55689
55690
55691
55692
55693
55694
55695
55696
55697
55698
55699
55700
55701
55702
55703
55704
55705
55706
55707
55708
55709
55710
55711
55712
55713
55714
55715
55716
55717
55718
55719
55720
55721
55722
55723
55724
55725
55726
55727
55728
55729
55730
55731
55732
55733
55734
55735
55736
55737
55738
55739
55740
55741
55742
55743
55744
55745
55746
55747
55748
55749
55750
55751
55752
55753
55754
55755
55756
55757
55758
55759
55760
55761
55762
55763
55764
55765
55766
55767
55768
55769
55770
55771
55772
55773
55774
55775
55776
55777
55778
55779
55780
55781
55782
55783
55784
55785
55786
55787
55788
55789
55790
55791
55792
55793
55794
55795
55796
55797
55798
55799
55800
55801
55802
55803
55804
55805
55806
55807
55808
55809
55810
55811
55812
55813
55814
55815
55816
55817
55818
55819
55820
55821
55822
55823
55824
55825
55826
55827
55828
55829
55830
55831
55832
55833
55834
55835
55836
55837
55838
55839
55840
55841
55842
55843
55844
55845
55846
55847
55848
55849
55850
55851
55852
55853
55854
55855
55856
55857
55858
55859
55860
55861
55862
55863
55864
55865
55866
55867
55868
55869
55870
55871
55872
55873
55874
55875
55876
55877
55878
55879
55880
55881
55882
55883
55884
55885
55886
55887
55888
55889
55890
55891
55892
55893
55894
55895
55896
55897
55898
55899
55900
55901
55902
55903
55904
55905
55906
55907
55908
55909
55910
55911
55912
55913
55914
55915
55916
55917
55918
55919
55920
55921
55922
55923
55924
55925
55926
55927
55928
55929
55930
55931
55932
55933
55934
55935
55936
55937
55938
55939
55940
55941
55942
55943
55944
55945
55946
55947
55948
55949
55950
55951
55952
55953
55954
55955
55956
55957
55958
55959
55960
55961
55962
55963
55964
55965
55966
55967
55968
55969
55970
55971
55972
55973
55974
55975
55976
55977
55978
55979
55980
55981
55982
55983
55984
55985
55986
55987
55988
55989
55990
55991
55992
55993
55994
55995
55996
55997
55998
55999
56000
56001
56002
56003
56004
56005
56006
56007
56008
56009
56010
56011
56012
56013
56014
56015
56016
56017
56018
56019
56020
56021
56022
56023
56024
56025
56026
56027
56028
56029
56030
56031
56032
56033
56034
56035
56036
56037
56038
56039
56040
56041
56042
56043
56044
56045
56046
56047
56048
56049
56050
56051
56052
56053
56054
56055
56056
56057
56058
56059
56060
56061
56062
56063
56064
56065
56066
56067
56068
56069
56070
56071
56072
56073
56074
56075
56076
56077
56078
56079
56080
56081
56082
56083
56084
56085
56086
56087
56088
56089
56090
56091
56092
56093
56094
56095
56096
56097
56098
56099
56100
56101
56102
56103
56104
56105
56106
56107
56108
56109
56110
56111
56112
56113
56114
56115
56116
56117
56118
56119
56120
56121
56122
56123
56124
56125
56126
56127
56128
56129
56130
56131
56132
56133
56134
56135
56136
56137
56138
56139
56140
56141
56142
56143
56144
56145
56146
56147
56148
56149
56150
56151
56152
56153
56154
56155
56156
56157
56158
56159
56160
56161
56162
56163
56164
56165
56166
56167
56168
56169
56170
56171
56172
56173
56174
56175
56176
56177
56178
56179
56180
56181
56182
56183
56184
56185
56186
56187
56188
56189
56190
56191
56192
56193
56194
56195
56196
56197
56198
56199
56200
56201
56202
56203
56204
56205
56206
56207
56208
56209
56210
56211
56212
56213
56214
56215
56216
56217
56218
56219
56220
56221
56222
56223
56224
56225
56226
56227
56228
56229
56230
56231
56232
56233
56234
56235
56236
56237
56238
56239
56240
56241
56242
56243
56244
56245
56246
56247
56248
56249
56250
56251
56252
56253
56254
56255
56256
56257
56258
56259
56260
56261
56262
56263
56264
56265
56266
56267
56268
56269
56270
56271
56272
56273
56274
56275
56276
56277
56278
56279
56280
56281
56282
56283
56284
56285
56286
56287
56288
56289
56290
56291
56292
56293
56294
56295
56296
56297
56298
56299
56300
56301
56302
56303
56304
56305
56306
56307
56308
56309
56310
56311
56312
56313
56314
56315
56316
56317
56318
56319
56320
56321
56322
56323
56324
56325
56326
56327
56328
56329
56330
56331
56332
56333
56334
56335
56336
56337
56338
56339
56340
56341
56342
56343
56344
56345
56346
56347
56348
56349
56350
56351
56352
56353
56354
56355
56356
56357
56358
56359
56360
56361
56362
56363
56364
56365
56366
56367
56368
56369
56370
56371
56372
56373
56374
56375
56376
56377
56378
56379
56380
56381
56382
56383
56384
56385
56386
56387
56388
56389
56390
56391
56392
56393
56394
56395
56396
56397
56398
56399
56400
56401
56402
56403
56404
56405
56406
56407
56408
56409
56410
56411
56412
56413
56414
56415
56416
56417
56418
56419
56420
56421
56422
56423
56424
56425
56426
56427
56428
56429
56430
56431
56432
56433
56434
56435
56436
56437
56438
56439
56440
56441
56442
56443
56444
56445
56446
56447
56448
56449
56450
56451
56452
56453
56454
56455
56456
56457
56458
56459
56460
56461
56462
56463
56464
56465
56466
56467
56468
56469
56470
56471
56472
56473
56474
56475
56476
56477
56478
56479
56480
56481
56482
56483
56484
56485
56486
56487
56488
56489
56490
56491
56492
56493
56494
56495
56496
56497
56498
56499
56500
56501
56502
56503
56504
56505
56506
56507
56508
56509
56510
56511
56512
56513
56514
56515
56516
56517
56518
56519
56520
56521
56522
56523
56524
56525
56526
56527
56528
56529
56530
56531
56532
56533
56534
56535
56536
56537
56538
56539
56540
56541
56542
56543
56544
56545
56546
56547
56548
56549
56550
56551
56552
56553
56554
56555
56556
56557
56558
56559
56560
56561
56562
56563
56564
56565
56566
56567
56568
56569
56570
56571
56572
56573
56574
56575
56576
56577
56578
56579
56580
56581
56582
56583
56584
56585
56586
56587
56588
56589
56590
56591
56592
56593
56594
56595
56596
56597
56598
56599
56600
56601
56602
56603
56604
56605
56606
56607
56608
56609
56610
56611
56612
56613
56614
56615
56616
56617
56618
56619
56620
56621
56622
56623
56624
56625
56626
56627
56628
56629
56630
56631
56632
56633
56634
56635
56636
56637
56638
56639
56640
56641
56642
56643
56644
56645
56646
56647
56648
56649
56650
56651
56652
56653
56654
56655
56656
56657
56658
56659
56660
56661
56662
56663
56664
56665
56666
56667
56668
56669
56670
56671
56672
56673
56674
56675
56676
56677
56678
56679
56680
56681
56682
56683
56684
56685
56686
56687
56688
56689
56690
56691
56692
56693
56694
56695
56696
56697
56698
56699
56700
56701
56702
56703
56704
56705
56706
56707
56708
56709
56710
56711
56712
56713
56714
56715
56716
56717
56718
56719
56720
56721
56722
56723
56724
56725
56726
56727
56728
56729
56730
56731
56732
56733
56734
56735
56736
56737
56738
56739
56740
56741
56742
56743
56744
56745
56746
56747
56748
56749
56750
56751
56752
56753
56754
56755
56756
56757
56758
56759
56760
56761
56762
56763
56764
56765
56766
56767
56768
56769
56770
56771
56772
56773
56774
56775
56776
56777
56778
56779
56780
56781
56782
56783
56784
56785
56786
56787
56788
56789
56790
56791
56792
56793
56794
56795
56796
56797
56798
56799
56800
56801
56802
56803
56804
56805
56806
56807
56808
56809
56810
56811
56812
56813
56814
56815
56816
56817
56818
56819
56820
56821
56822
56823
56824
56825
56826
56827
56828
56829
56830
56831
56832
56833
56834
56835
56836
56837
56838
56839
56840
56841
56842
56843
56844
56845
56846
56847
56848
56849
56850
56851
56852
56853
56854
56855
56856
56857
56858
56859
56860
56861
56862
56863
56864
56865
56866
56867
56868
56869
56870
56871
56872
56873
56874
56875
56876
56877
56878
56879
56880
56881
56882
56883
56884
56885
56886
56887
56888
56889
56890
56891
56892
56893
56894
56895
56896
56897
56898
56899
56900
56901
56902
56903
56904
56905
56906
56907
56908
56909
56910
56911
56912
56913
56914
56915
56916
56917
56918
56919
56920
56921
56922
56923
56924
56925
56926
56927
56928
56929
56930
56931
56932
56933
56934
56935
56936
56937
56938
56939
56940
56941
56942
56943
56944
56945
56946
56947
56948
56949
56950
56951
56952
56953
56954
56955
56956
56957
56958
56959
56960
56961
56962
56963
56964
56965
56966
56967
56968
56969
56970
56971
56972
56973
56974
56975
56976
56977
56978
56979
56980
56981
56982
56983
56984
56985
56986
56987
56988
56989
56990
56991
56992
56993
56994
56995
56996
56997
56998
56999
57000
57001
57002
57003
57004
57005
57006
57007
57008
57009
57010
57011
57012
57013
57014
57015
57016
57017
57018
57019
57020
57021
57022
57023
57024
57025
57026
57027
57028
57029
57030
57031
57032
57033
57034
57035
57036
57037
57038
57039
57040
57041
57042
57043
57044
57045
57046
57047
57048
57049
57050
57051
57052
57053
57054
57055
57056
57057
57058
57059
57060
57061
57062
57063
57064
57065
57066
57067
57068
57069
57070
57071
57072
57073
57074
57075
57076
57077
57078
57079
57080
57081
57082
57083
57084
57085
57086
57087
57088
57089
57090
57091
57092
57093
57094
57095
57096
57097
57098
57099
57100
57101
57102
57103
57104
57105
57106
57107
57108
57109
57110
57111
57112
57113
57114
57115
57116
57117
57118
57119
57120
57121
57122
57123
57124
57125
57126
57127
57128
57129
57130
57131
57132
57133
57134
57135
57136
57137
57138
57139
57140
57141
57142
57143
57144
57145
57146
57147
57148
57149
57150
57151
57152
57153
57154
57155
57156
57157
57158
57159
57160
57161
57162
57163
57164
57165
57166
57167
57168
57169
57170
57171
57172
57173
57174
57175
57176
57177
57178
57179
57180
57181
57182
57183
57184
57185
57186
57187
57188
57189
57190
57191
57192
57193
57194
57195
57196
57197
57198
57199
57200
57201
57202
57203
57204
57205
57206
57207
57208
57209
57210
57211
57212
57213
57214
57215
57216
57217
57218
57219
57220
57221
57222
57223
57224
57225
57226
57227
57228
57229
57230
57231
57232
57233
57234
57235
57236
57237
57238
57239
57240
57241
57242
57243
57244
57245
57246
57247
57248
57249
57250
57251
57252
57253
57254
57255
57256
57257
57258
57259
57260
57261
57262
57263
57264
57265
57266
57267
57268
57269
57270
57271
57272
57273
57274
57275
57276
57277
57278
57279
57280
57281
57282
57283
57284
57285
57286
57287
57288
57289
57290
57291
57292
57293
57294
57295
57296
57297
57298
57299
57300
57301
57302
57303
57304
57305
57306
57307
57308
57309
57310
57311
57312
57313
57314
57315
57316
57317
57318
57319
57320
57321
57322
57323
57324
57325
57326
57327
57328
57329
57330
57331
57332
57333
57334
57335
57336
57337
57338
57339
57340
57341
57342
57343
57344
57345
57346
57347
57348
57349
57350
57351
57352
57353
57354
57355
57356
57357
57358
57359
57360
57361
57362
57363
57364
57365
57366
57367
57368
57369
57370
57371
57372
57373
57374
57375
57376
57377
57378
57379
57380
57381
57382
57383
57384
57385
57386
57387
57388
57389
57390
57391
57392
57393
57394
57395
57396
57397
57398
57399
57400
57401
57402
57403
57404
57405
57406
57407
57408
57409
57410
57411
57412
57413
57414
57415
57416
57417
57418
57419
57420
57421
57422
57423
57424
57425
57426
57427
57428
57429
57430
57431
57432
57433
57434
57435
57436
57437
57438
57439
57440
57441
57442
57443
57444
57445
57446
57447
57448
57449
57450
57451
57452
57453
57454
57455
57456
57457
57458
57459
57460
57461
57462
57463
57464
57465
57466
57467
57468
57469
57470
57471
57472
57473
57474
57475
57476
57477
57478
57479
57480
57481
57482
57483
57484
57485
57486
57487
57488
57489
57490
57491
57492
57493
57494
57495
57496
57497
57498
57499
57500
57501
57502
57503
57504
57505
57506
57507
57508
57509
57510
57511
57512
57513
57514
57515
57516
57517
57518
57519
57520
57521
57522
57523
57524
57525
57526
57527
57528
57529
57530
57531
57532
57533
57534
57535
57536
57537
57538
57539
57540
57541
57542
57543
57544
57545
57546
57547
57548
57549
57550
57551
57552
57553
57554
57555
57556
57557
57558
57559
57560
57561
57562
57563
57564
57565
57566
57567
57568
57569
57570
57571
57572
57573
57574
57575
57576
57577
57578
57579
57580
57581
57582
57583
57584
57585
57586
57587
57588
57589
57590
57591
57592
57593
57594
57595
57596
57597
57598
57599
57600
57601
57602
57603
57604
57605
57606
57607
57608
57609
57610
57611
57612
57613
57614
57615
57616
57617
57618
57619
57620
57621
57622
57623
57624
57625
57626
57627
57628
57629
57630
57631
57632
57633
57634
57635
57636
57637
57638
57639
57640
57641
57642
57643
57644
57645
57646
57647
57648
57649
57650
57651
57652
57653
57654
57655
57656
57657
57658
57659
57660
57661
57662
57663
57664
57665
57666
57667
57668
57669
57670
57671
57672
57673
57674
57675
57676
57677
57678
57679
57680
57681
57682
57683
57684
57685
57686
57687
57688
57689
57690
57691
57692
57693
57694
57695
57696
57697
57698
57699
57700
57701
57702
57703
57704
57705
57706
57707
57708
57709
57710
57711
57712
57713
57714
57715
57716
57717
57718
57719
57720
57721
57722
57723
57724
57725
57726
57727
57728
57729
57730
57731
57732
57733
57734
57735
57736
57737
57738
57739
57740
57741
57742
57743
57744
57745
57746
57747
57748
57749
57750
57751
57752
57753
57754
57755
57756
57757
57758
57759
57760
57761
57762
57763
57764
57765
57766
57767
57768
57769
57770
57771
57772
57773
57774
57775
57776
57777
57778
57779
57780
57781
57782
57783
57784
57785
57786
57787
57788
57789
57790
57791
57792
57793
57794
57795
57796
57797
57798
57799
57800
57801
57802
57803
57804
57805
57806
57807
57808
57809
57810
57811
57812
57813
57814
57815
57816
57817
57818
57819
57820
57821
57822
57823
57824
57825
57826
57827
57828
57829
57830
57831
57832
57833
57834
57835
57836
57837
57838
57839
57840
57841
57842
57843
57844
57845
57846
57847
57848
57849
57850
57851
57852
57853
57854
57855
57856
57857
57858
57859
57860
57861
57862
57863
57864
57865
57866
57867
57868
57869
57870
57871
57872
57873
57874
57875
57876
57877
57878
57879
57880
57881
57882
57883
57884
57885
57886
57887
57888
57889
57890
57891
57892
57893
57894
57895
57896
57897
57898
57899
57900
57901
57902
57903
57904
57905
57906
57907
57908
57909
57910
57911
57912
57913
57914
57915
57916
57917
57918
57919
57920
57921
57922
57923
57924
57925
57926
57927
57928
57929
57930
57931
57932
57933
57934
57935
57936
57937
57938
57939
57940
57941
57942
57943
57944
57945
57946
57947
57948
57949
57950
57951
57952
57953
57954
57955
57956
57957
57958
57959
57960
57961
57962
57963
57964
57965
57966
57967
57968
57969
57970
57971
57972
57973
57974
57975
57976
57977
57978
57979
57980
57981
57982
57983
57984
57985
57986
57987
57988
57989
57990
57991
57992
57993
57994
57995
57996
57997
57998
57999
58000
58001
58002
58003
58004
58005
58006
58007
58008
58009
58010
58011
58012
58013
58014
58015
58016
58017
58018
58019
58020
58021
58022
58023
58024
58025
58026
58027
58028
58029
58030
58031
58032
58033
58034
58035
58036
58037
58038
58039
58040
58041
58042
58043
58044
58045
58046
58047
58048
58049
58050
58051
58052
58053
58054
58055
58056
58057
58058
58059
58060
58061
58062
58063
58064
58065
58066
58067
58068
58069
58070
58071
58072
58073
58074
58075
58076
58077
58078
58079
58080
58081
58082
58083
58084
58085
58086
58087
58088
58089
58090
58091
58092
58093
58094
58095
58096
58097
58098
58099
58100
58101
58102
58103
58104
58105
58106
58107
58108
58109
58110
58111
58112
58113
58114
58115
58116
58117
58118
58119
58120
58121
58122
58123
58124
58125
58126
58127
58128
58129
58130
58131
58132
58133
58134
58135
58136
58137
58138
58139
58140
58141
58142
58143
58144
58145
58146
58147
58148
58149
58150
58151
58152
58153
58154
58155
58156
58157
58158
58159
58160
58161
58162
58163
58164
58165
58166
58167
58168
58169
58170
58171
58172
58173
58174
58175
58176
58177
58178
58179
58180
58181
58182
58183
58184
58185
58186
58187
58188
58189
58190
58191
58192
58193
58194
58195
58196
58197
58198
58199
58200
58201
58202
58203
58204
58205
58206
58207
58208
58209
58210
58211
58212
58213
58214
58215
58216
58217
58218
58219
58220
58221
58222
58223
58224
58225
58226
58227
58228
58229
58230
58231
58232
58233
58234
58235
58236
58237
58238
58239
58240
58241
58242
58243
58244
58245
58246
58247
58248
58249
58250
58251
58252
58253
58254
58255
58256
58257
58258
58259
58260
58261
58262
58263
58264
58265
58266
58267
58268
58269
58270
58271
58272
58273
58274
58275
58276
58277
58278
58279
58280
58281
58282
58283
58284
58285
58286
58287
58288
58289
58290
58291
58292
58293
58294
58295
58296
58297
58298
58299
58300
58301
58302
58303
58304
58305
58306
58307
58308
58309
58310
58311
58312
58313
58314
58315
58316
58317
58318
58319
58320
58321
58322
58323
58324
58325
58326
58327
58328
58329
58330
58331
58332
58333
58334
58335
58336
58337
58338
58339
58340
58341
58342
58343
58344
58345
58346
58347
58348
58349
58350
58351
58352
58353
58354
58355
58356
58357
58358
58359
58360
58361
58362
58363
58364
58365
58366
58367
58368
58369
58370
58371
58372
58373
58374
58375
58376
58377
58378
58379
58380
58381
58382
58383
58384
58385
58386
58387
58388
58389
58390
58391
58392
58393
58394
58395
58396
58397
58398
58399
58400
58401
58402
58403
58404
58405
58406
58407
58408
58409
58410
58411
58412
58413
58414
58415
58416
58417
58418
58419
58420
58421
58422
58423
58424
58425
58426
58427
58428
58429
58430
58431
58432
58433
58434
58435
58436
58437
58438
58439
58440
58441
58442
58443
58444
58445
58446
58447
58448
58449
58450
58451
58452
58453
58454
58455
58456
58457
58458
58459
58460
58461
58462
58463
58464
58465
58466
58467
58468
58469
58470
58471
58472
58473
58474
58475
58476
58477
58478
58479
58480
58481
58482
58483
58484
58485
58486
58487
58488
58489
58490
58491
58492
58493
58494
58495
58496
58497
58498
58499
58500
58501
58502
58503
58504
58505
58506
58507
58508
58509
58510
58511
58512
58513
58514
58515
58516
58517
58518
58519
58520
58521
58522
58523
58524
58525
58526
58527
58528
58529
58530
58531
58532
58533
58534
58535
58536
58537
58538
58539
58540
58541
58542
58543
58544
58545
58546
58547
58548
58549
58550
58551
58552
58553
58554
58555
58556
58557
58558
58559
58560
58561
58562
58563
58564
58565
58566
58567
58568
58569
58570
58571
58572
58573
58574
58575
58576
58577
58578
58579
58580
58581
58582
58583
58584
58585
58586
58587
58588
58589
58590
58591
58592
58593
58594
58595
58596
58597
58598
58599
58600
58601
58602
58603
58604
58605
58606
58607
58608
58609
58610
58611
58612
58613
58614
58615
58616
58617
58618
58619
58620
58621
58622
58623
58624
58625
58626
58627
58628
58629
58630
58631
58632
58633
58634
58635
58636
58637
58638
58639
58640
58641
58642
58643
58644
58645
58646
58647
58648
58649
58650
58651
58652
58653
58654
58655
58656
58657
58658
58659
58660
58661
58662
58663
58664
58665
58666
58667
58668
58669
58670
58671
58672
58673
58674
58675
58676
58677
58678
58679
58680
58681
58682
58683
58684
58685
58686
58687
58688
58689
58690
58691
58692
58693
58694
58695
58696
58697
58698
58699
58700
58701
58702
58703
58704
58705
58706
58707
58708
58709
58710
58711
58712
58713
58714
58715
58716
58717
58718
58719
58720
58721
58722
58723
58724
58725
58726
58727
58728
58729
58730
58731
58732
58733
58734
58735
58736
58737
58738
58739
58740
58741
58742
58743
58744
58745
58746
58747
58748
58749
58750
58751
58752
58753
58754
58755
58756
58757
58758
58759
58760
58761
58762
58763
58764
58765
58766
58767
58768
58769
58770
58771
58772
58773
58774
58775
58776
58777
58778
58779
58780
58781
58782
58783
58784
58785
58786
58787
58788
58789
58790
58791
58792
58793
58794
58795
58796
58797
58798
58799
58800
58801
58802
58803
58804
58805
58806
58807
58808
58809
58810
58811
58812
58813
58814
58815
58816
58817
58818
58819
58820
58821
58822
58823
58824
58825
58826
58827
58828
58829
58830
58831
58832
58833
58834
58835
58836
58837
58838
58839
58840
58841
58842
58843
58844
58845
58846
58847
58848
58849
58850
58851
58852
58853
58854
58855
58856
58857
58858
58859
58860
58861
58862
58863
58864
58865
58866
58867
58868
58869
58870
58871
58872
58873
58874
58875
58876
58877
58878
58879
58880
58881
58882
58883
58884
58885
58886
58887
58888
58889
58890
58891
58892
58893
58894
58895
58896
58897
58898
58899
58900
58901
58902
58903
58904
58905
58906
58907
58908
58909
58910
58911
58912
58913
58914
58915
58916
58917
58918
58919
58920
58921
58922
58923
58924
58925
58926
58927
58928
58929
58930
58931
58932
58933
58934
58935
58936
58937
58938
58939
58940
58941
58942
58943
58944
58945
58946
58947
58948
58949
58950
58951
58952
58953
58954
58955
58956
58957
58958
58959
58960
58961
58962
58963
58964
58965
58966
58967
58968
58969
58970
58971
58972
58973
58974
58975
58976
58977
58978
58979
58980
58981
58982
58983
58984
58985
58986
58987
58988
58989
58990
58991
58992
58993
58994
58995
58996
58997
58998
58999
59000
59001
59002
59003
59004
59005
59006
59007
59008
59009
59010
59011
59012
59013
59014
59015
59016
59017
59018
59019
59020
59021
59022
59023
59024
59025
59026
59027
59028
59029
59030
59031
59032
59033
59034
59035
59036
59037
59038
59039
59040
59041
59042
59043
59044
59045
59046
59047
59048
59049
59050
59051
59052
59053
59054
59055
59056
59057
59058
59059
59060
59061
59062
59063
59064
59065
59066
59067
59068
59069
59070
59071
59072
59073
59074
59075
59076
59077
59078
59079
59080
59081
59082
59083
59084
59085
59086
59087
59088
59089
59090
59091
59092
59093
59094
59095
59096
59097
59098
59099
59100
59101
59102
59103
59104
59105
59106
59107
59108
59109
59110
59111
59112
59113
59114
59115
59116
59117
59118
59119
59120
59121
59122
59123
59124
59125
59126
59127
59128
59129
59130
59131
59132
59133
59134
59135
59136
59137
59138
59139
59140
59141
59142
59143
59144
59145
59146
59147
59148
59149
59150
59151
59152
59153
59154
59155
59156
59157
59158
59159
59160
59161
59162
59163
59164
59165
59166
59167
59168
59169
59170
59171
59172
59173
59174
59175
59176
59177
59178
59179
59180
59181
59182
59183
59184
59185
59186
59187
59188
59189
59190
59191
59192
59193
59194
59195
59196
59197
59198
59199
59200
59201
59202
59203
59204
59205
59206
59207
59208
59209
59210
59211
59212
59213
59214
59215
59216
59217
59218
59219
59220
59221
59222
59223
59224
59225
59226
59227
59228
59229
59230
59231
59232
59233
59234
59235
59236
59237
59238
59239
59240
59241
59242
59243
59244
59245
59246
59247
59248
59249
59250
59251
59252
59253
59254
59255
59256
59257
59258
59259
59260
59261
59262
59263
59264
59265
59266
59267
59268
59269
59270
59271
59272
59273
59274
59275
59276
59277
59278
59279
59280
59281
59282
59283
59284
59285
59286
59287
59288
59289
59290
59291
59292
59293
59294
59295
59296
59297
59298
59299
59300
59301
59302
59303
59304
59305
59306
59307
59308
59309
59310
59311
59312
59313
59314
59315
59316
59317
59318
59319
59320
59321
59322
59323
59324
59325
59326
59327
59328
59329
59330
59331
59332
59333
59334
59335
59336
59337
59338
59339
59340
59341
59342
59343
59344
59345
59346
59347
59348
59349
59350
59351
59352
59353
59354
59355
59356
59357
59358
59359
59360
59361
59362
59363
59364
59365
59366
59367
59368
59369
59370
59371
59372
59373
59374
59375
59376
59377
59378
59379
59380
59381
59382
59383
59384
59385
59386
59387
59388
59389
59390
59391
59392
59393
59394
59395
59396
59397
59398
59399
59400
59401
59402
59403
59404
59405
59406
59407
59408
59409
59410
59411
59412
59413
59414
59415
59416
59417
59418
59419
59420
59421
59422
59423
59424
59425
59426
59427
59428
59429
59430
59431
59432
59433
59434
59435
59436
59437
59438
59439
59440
59441
59442
59443
59444
59445
59446
59447
59448
59449
59450
59451
59452
59453
59454
59455
59456
59457
59458
59459
59460
59461
59462
59463
59464
59465
59466
59467
59468
59469
59470
59471
59472
59473
59474
59475
59476
59477
59478
59479
59480
59481
59482
59483
59484
59485
59486
59487
59488
59489
59490
59491
59492
59493
59494
59495
59496
59497
59498
59499
59500
59501
59502
59503
59504
59505
59506
59507
59508
59509
59510
59511
59512
59513
59514
59515
59516
59517
59518
59519
59520
59521
59522
59523
59524
59525
59526
59527
59528
59529
59530
59531
59532
59533
59534
59535
59536
59537
59538
59539
59540
59541
59542
59543
59544
59545
59546
59547
59548
59549
59550
59551
59552
59553
59554
59555
59556
59557
59558
59559
59560
59561
59562
59563
59564
59565
59566
59567
59568
59569
59570
59571
59572
59573
59574
59575
59576
59577
59578
59579
59580
59581
59582
59583
59584
59585
59586
59587
59588
59589
59590
59591
59592
59593
59594
59595
59596
59597
59598
59599
59600
59601
59602
59603
59604
59605
59606
59607
59608
59609
59610
59611
59612
59613
59614
59615
59616
59617
59618
59619
59620
59621
59622
59623
59624
59625
59626
59627
59628
59629
59630
59631
59632
59633
59634
59635
59636
59637
59638
59639
59640
59641
59642
59643
59644
59645
59646
59647
59648
59649
59650
59651
59652
59653
59654
59655
59656
59657
59658
59659
59660
59661
59662
59663
59664
59665
59666
59667
59668
59669
59670
59671
59672
59673
59674
59675
59676
59677
59678
59679
59680
59681
59682
59683
59684
59685
59686
59687
59688
59689
59690
59691
59692
59693
59694
59695
59696
59697
59698
59699
59700
59701
59702
59703
59704
59705
59706
59707
59708
59709
59710
59711
59712
59713
59714
59715
59716
59717
59718
59719
59720
59721
59722
59723
59724
59725
59726
59727
59728
59729
59730
59731
59732
59733
59734
59735
59736
59737
59738
59739
59740
59741
59742
59743
59744
59745
59746
59747
59748
59749
59750
59751
59752
59753
59754
59755
59756
59757
59758
59759
59760
59761
59762
59763
59764
59765
59766
59767
59768
59769
59770
59771
59772
59773
59774
59775
59776
59777
59778
59779
59780
59781
59782
59783
59784
59785
59786
59787
59788
59789
59790
59791
59792
59793
59794
59795
59796
59797
59798
59799
59800
59801
59802
59803
59804
59805
59806
59807
59808
59809
59810
59811
59812
59813
59814
59815
59816
59817
59818
59819
59820
59821
59822
59823
59824
59825
59826
59827
59828
59829
59830
59831
59832
59833
59834
59835
59836
59837
59838
59839
59840
59841
59842
59843
59844
59845
59846
59847
59848
59849
59850
59851
59852
59853
59854
59855
59856
59857
59858
59859
59860
59861
59862
59863
59864
59865
59866
59867
59868
59869
59870
59871
59872
59873
59874
59875
59876
59877
59878
59879
59880
59881
59882
59883
59884
59885
59886
59887
59888
59889
59890
59891
59892
59893
59894
59895
59896
59897
59898
59899
59900
59901
59902
59903
59904
59905
59906
59907
59908
59909
59910
59911
59912
59913
59914
59915
59916
59917
59918
59919
59920
59921
59922
59923
59924
59925
59926
59927
59928
59929
59930
59931
59932
59933
59934
59935
59936
59937
59938
59939
59940
59941
59942
59943
59944
59945
59946
59947
59948
59949
59950
59951
59952
59953
59954
59955
59956
59957
59958
59959
59960
59961
59962
59963
59964
59965
59966
59967
59968
59969
59970
59971
59972
59973
59974
59975
59976
59977
59978
59979
59980
59981
59982
59983
59984
59985
59986
59987
59988
59989
59990
59991
59992
59993
59994
59995
59996
59997
59998
59999
60000
60001
60002
60003
60004
60005
60006
60007
60008
60009
60010
60011
60012
60013
60014
60015
60016
60017
60018
60019
60020
60021
60022
60023
60024
60025
60026
60027
60028
60029
60030
60031
60032
60033
60034
60035
60036
60037
60038
60039
60040
60041
60042
60043
60044
60045
60046
60047
60048
60049
60050
60051
60052
60053
60054
60055
60056
60057
60058
60059
60060
60061
60062
60063
60064
60065
60066
60067
60068
60069
60070
60071
60072
60073
60074
60075
60076
60077
60078
60079
60080
60081
60082
60083
60084
60085
60086
60087
60088
60089
60090
60091
60092
60093
60094
60095
60096
60097
60098
60099
60100
60101
60102
60103
60104
60105
60106
60107
60108
60109
60110
60111
60112
60113
60114
60115
60116
60117
60118
60119
60120
60121
60122
60123
60124
60125
60126
60127
60128
60129
60130
60131
60132
60133
60134
60135
60136
60137
60138
60139
60140
60141
60142
60143
60144
60145
60146
60147
60148
60149
60150
60151
60152
60153
60154
60155
60156
60157
60158
60159
60160
60161
60162
60163
60164
60165
60166
60167
60168
60169
60170
60171
60172
60173
60174
60175
60176
60177
60178
60179
60180
60181
60182
60183
60184
60185
60186
60187
60188
60189
60190
60191
60192
60193
60194
60195
60196
60197
60198
60199
60200
60201
60202
60203
60204
60205
60206
60207
60208
60209
60210
60211
60212
60213
60214
60215
60216
60217
60218
60219
60220
60221
60222
60223
60224
60225
60226
60227
60228
60229
60230
60231
60232
60233
60234
60235
60236
60237
60238
60239
60240
60241
60242
60243
60244
60245
60246
60247
60248
60249
60250
60251
60252
60253
60254
60255
60256
60257
60258
60259
60260
60261
60262
60263
60264
60265
60266
60267
60268
60269
60270
60271
60272
60273
60274
60275
60276
60277
60278
60279
60280
60281
60282
60283
60284
60285
60286
60287
60288
60289
60290
60291
60292
60293
60294
60295
60296
60297
60298
60299
60300
60301
60302
60303
60304
60305
60306
60307
60308
60309
60310
60311
60312
60313
60314
60315
60316
60317
60318
60319
60320
60321
60322
60323
60324
60325
60326
60327
60328
60329
60330
60331
60332
60333
60334
60335
60336
60337
60338
60339
60340
60341
60342
60343
60344
60345
60346
60347
60348
60349
60350
60351
60352
60353
60354
60355
60356
60357
60358
60359
60360
60361
60362
60363
60364
60365
60366
60367
60368
60369
60370
60371
60372
60373
60374
60375
60376
60377
60378
60379
60380
60381
60382
60383
60384
60385
60386
60387
60388
60389
60390
60391
60392
60393
60394
60395
60396
60397
60398
60399
60400
60401
60402
60403
60404
60405
60406
60407
60408
60409
60410
60411
60412
60413
60414
60415
60416
60417
60418
60419
60420
60421
60422
60423
60424
60425
60426
60427
60428
60429
60430
60431
60432
60433
60434
60435
60436
60437
60438
60439
60440
60441
60442
60443
60444
60445
60446
60447
60448
60449
60450
60451
60452
60453
60454
60455
60456
60457
60458
60459
60460
60461
60462
60463
60464
60465
60466
60467
60468
60469
60470
60471
60472
60473
60474
60475
60476
60477
60478
60479
60480
60481
60482
60483
60484
60485
60486
60487
60488
60489
60490
60491
60492
60493
60494
60495
60496
60497
60498
60499
60500
60501
60502
60503
60504
60505
60506
60507
60508
60509
60510
60511
60512
60513
60514
60515
60516
60517
60518
60519
60520
60521
60522
60523
60524
60525
60526
60527
60528
60529
60530
60531
60532
60533
60534
60535
60536
60537
60538
60539
60540
60541
60542
60543
60544
60545
60546
60547
60548
60549
60550
60551
60552
60553
60554
60555
60556
60557
60558
60559
60560
60561
60562
60563
60564
60565
60566
60567
60568
60569
60570
60571
60572
60573
60574
60575
60576
60577
60578
60579
60580
60581
60582
60583
60584
60585
60586
60587
60588
60589
60590
60591
60592
60593
60594
60595
60596
60597
60598
60599
60600
60601
60602
60603
60604
60605
60606
60607
60608
60609
60610
60611
60612
60613
60614
60615
60616
60617
60618
60619
60620
60621
60622
60623
60624
60625
60626
60627
60628
60629
60630
60631
60632
60633
60634
60635
60636
60637
60638
60639
60640
60641
60642
60643
60644
60645
60646
60647
60648
60649
60650
60651
60652
60653
60654
60655
60656
60657
60658
60659
60660
60661
60662
60663
60664
60665
60666
60667
60668
60669
60670
60671
60672
60673
60674
60675
60676
60677
60678
60679
60680
60681
60682
60683
60684
60685
60686
60687
60688
60689
60690
60691
60692
60693
60694
60695
60696
60697
60698
60699
60700
60701
60702
60703
60704
60705
60706
60707
60708
60709
60710
60711
60712
60713
60714
60715
60716
60717
60718
60719
60720
60721
60722
60723
60724
60725
60726
60727
60728
60729
60730
60731
60732
60733
60734
60735
60736
60737
60738
60739
60740
60741
60742
60743
60744
60745
60746
60747
60748
60749
60750
60751
60752
60753
60754
60755
60756
60757
60758
60759
60760
60761
60762
60763
60764
60765
60766
60767
60768
60769
60770
60771
60772
60773
60774
60775
60776
60777
60778
60779
60780
60781
60782
60783
60784
60785
60786
60787
60788
60789
60790
60791
60792
60793
60794
60795
60796
60797
60798
60799
60800
60801
60802
60803
60804
60805
60806
60807
60808
60809
60810
60811
60812
60813
60814
60815
60816
60817
60818
60819
60820
60821
60822
60823
60824
60825
60826
60827
60828
60829
60830
60831
60832
60833
60834
60835
60836
60837
60838
60839
60840
60841
60842
60843
60844
60845
60846
60847
60848
60849
60850
60851
60852
60853
60854
60855
60856
60857
60858
60859
60860
60861
60862
60863
60864
60865
60866
60867
60868
60869
60870
60871
60872
60873
60874
60875
60876
60877
60878
60879
60880
60881
60882
60883
60884
60885
60886
60887
60888
60889
60890
60891
60892
60893
60894
60895
60896
60897
60898
60899
60900
60901
60902
60903
60904
60905
60906
60907
60908
60909
60910
60911
60912
60913
60914
60915
60916
60917
60918
60919
60920
60921
60922
60923
60924
60925
60926
60927
60928
60929
60930
60931
60932
60933
60934
60935
60936
60937
60938
60939
60940
60941
60942
60943
60944
60945
60946
60947
60948
60949
60950
60951
60952
60953
60954
60955
60956
60957
60958
60959
60960
60961
60962
60963
60964
60965
60966
60967
60968
60969
60970
60971
60972
60973
60974
60975
60976
60977
60978
60979
60980
60981
60982
60983
60984
60985
60986
60987
60988
60989
60990
60991
60992
60993
60994
60995
60996
60997
60998
60999
61000
61001
61002
61003
61004
61005
61006
61007
61008
61009
61010
61011
61012
61013
61014
61015
61016
61017
61018
61019
61020
61021
61022
61023
61024
61025
61026
61027
61028
61029
61030
61031
61032
61033
61034
61035
61036
61037
61038
61039
61040
61041
61042
61043
61044
61045
61046
61047
61048
61049
61050
61051
61052
61053
61054
61055
61056
61057
61058
61059
61060
61061
61062
61063
61064
61065
61066
61067
61068
61069
61070
61071
61072
61073
61074
61075
61076
61077
61078
61079
61080
61081
61082
61083
61084
61085
61086
61087
61088
61089
61090
61091
61092
61093
61094
61095
61096
61097
61098
61099
61100
61101
61102
61103
61104
61105
61106
61107
61108
61109
61110
61111
61112
61113
61114
61115
61116
61117
61118
61119
61120
61121
61122
61123
61124
61125
61126
61127
61128
61129
61130
61131
61132
61133
61134
61135
61136
61137
61138
61139
61140
61141
61142
61143
61144
61145
61146
61147
61148
61149
61150
61151
61152
61153
61154
61155
61156
61157
61158
61159
61160
61161
61162
61163
61164
61165
61166
61167
61168
61169
61170
61171
61172
61173
61174
61175
61176
61177
61178
61179
61180
61181
61182
61183
61184
61185
61186
61187
61188
61189
61190
61191
61192
61193
61194
61195
61196
61197
61198
61199
61200
61201
61202
61203
61204
61205
61206
61207
61208
61209
61210
61211
61212
61213
61214
61215
61216
61217
61218
61219
61220
61221
61222
61223
61224
61225
61226
61227
61228
61229
61230
61231
61232
61233
61234
61235
61236
61237
61238
61239
61240
61241
61242
61243
61244
61245
61246
61247
61248
61249
61250
61251
61252
61253
61254
61255
61256
61257
61258
61259
61260
61261
61262
61263
61264
61265
61266
61267
61268
61269
61270
61271
61272
61273
61274
61275
61276
61277
61278
61279
61280
61281
61282
61283
61284
61285
61286
61287
61288
61289
61290
61291
61292
61293
61294
61295
61296
61297
61298
61299
61300
61301
61302
61303
61304
61305
61306
61307
61308
61309
61310
61311
61312
61313
61314
61315
61316
61317
61318
61319
61320
61321
61322
61323
61324
61325
61326
61327
61328
61329
61330
61331
61332
61333
61334
61335
61336
61337
61338
61339
61340
61341
61342
61343
61344
61345
61346
61347
61348
61349
61350
61351
61352
61353
61354
61355
61356
61357
61358
61359
61360
61361
61362
61363
61364
61365
61366
61367
61368
61369
61370
61371
61372
61373
61374
61375
61376
61377
61378
61379
61380
61381
61382
61383
61384
61385
61386
61387
61388
61389
61390
61391
61392
61393
61394
61395
61396
61397
61398
61399
61400
61401
61402
61403
61404
61405
61406
61407
61408
61409
61410
61411
61412
61413
61414
61415
61416
61417
61418
61419
61420
61421
61422
61423
61424
61425
61426
61427
61428
61429
61430
61431
61432
61433
61434
61435
61436
61437
61438
61439
61440
61441
61442
61443
61444
61445
61446
61447
61448
61449
61450
61451
61452
61453
61454
61455
61456
61457
61458
61459
61460
61461
61462
61463
61464
61465
61466
61467
61468
61469
61470
61471
61472
61473
61474
61475
61476
61477
61478
61479
61480
61481
61482
61483
61484
61485
61486
61487
61488
61489
61490
61491
61492
61493
61494
61495
61496
61497
61498
61499
61500
61501
61502
61503
61504
61505
61506
61507
61508
61509
61510
61511
61512
61513
61514
61515
61516
61517
61518
61519
61520
61521
61522
61523
61524
61525
61526
61527
61528
61529
61530
61531
61532
61533
61534
61535
61536
61537
61538
61539
61540
61541
61542
61543
61544
61545
61546
61547
61548
61549
61550
61551
61552
61553
61554
61555
61556
61557
61558
61559
61560
61561
61562
61563
61564
61565
61566
61567
61568
61569
61570
61571
61572
61573
61574
61575
61576
61577
61578
61579
61580
61581
61582
61583
61584
61585
61586
61587
61588
61589
61590
61591
61592
61593
61594
61595
61596
61597
61598
61599
61600
61601
61602
61603
61604
61605
61606
61607
61608
61609
61610
61611
61612
61613
61614
61615
61616
61617
61618
61619
61620
61621
61622
61623
61624
61625
61626
61627
61628
61629
61630
61631
61632
61633
61634
61635
61636
61637
61638
61639
61640
61641
61642
61643
61644
61645
61646
61647
61648
61649
61650
61651
61652
61653
61654
61655
61656
61657
61658
61659
61660
61661
61662
61663
61664
61665
61666
61667
61668
61669
61670
61671
61672
61673
61674
61675
61676
61677
61678
61679
61680
61681
61682
61683
61684
61685
61686
61687
61688
61689
61690
61691
61692
61693
61694
61695
61696
61697
61698
61699
61700
61701
61702
61703
61704
61705
61706
61707
61708
61709
61710
61711
61712
61713
61714
61715
61716
61717
61718
61719
61720
61721
61722
61723
61724
61725
61726
61727
61728
61729
61730
61731
61732
61733
61734
61735
61736
61737
61738
61739
61740
61741
61742
61743
61744
61745
61746
61747
61748
61749
61750
61751
61752
61753
61754
61755
61756
61757
61758
61759
61760
61761
61762
61763
61764
61765
61766
61767
61768
61769
61770
61771
61772
61773
61774
61775
61776
61777
61778
61779
61780
61781
61782
61783
61784
61785
61786
61787
61788
61789
61790
61791
61792
61793
61794
61795
61796
61797
61798
61799
61800
61801
61802
61803
61804
61805
61806
61807
61808
61809
61810
61811
61812
61813
61814
61815
61816
61817
61818
61819
61820
61821
61822
61823
61824
61825
61826
61827
61828
61829
61830
61831
61832
61833
61834
61835
61836
61837
61838
61839
61840
61841
61842
61843
61844
61845
61846
61847
61848
61849
61850
61851
61852
61853
61854
61855
61856
61857
61858
61859
61860
61861
61862
61863
61864
61865
61866
61867
61868
61869
61870
61871
61872
61873
61874
61875
61876
61877
61878
61879
61880
61881
61882
61883
61884
61885
61886
61887
61888
61889
61890
61891
61892
61893
61894
61895
61896
61897
61898
61899
61900
61901
61902
61903
61904
61905
61906
61907
61908
61909
61910
61911
61912
61913
61914
61915
61916
61917
61918
61919
61920
61921
61922
61923
61924
61925
61926
61927
61928
61929
61930
61931
61932
61933
61934
61935
61936
61937
61938
61939
61940
61941
61942
61943
61944
61945
61946
61947
61948
61949
61950
61951
61952
61953
61954
61955
61956
61957
61958
61959
61960
61961
61962
61963
61964
61965
61966
61967
61968
61969
61970
61971
61972
61973
61974
61975
61976
61977
61978
61979
61980
61981
61982
61983
61984
61985
61986
61987
61988
61989
61990
61991
61992
61993
61994
61995
61996
61997
61998
61999
62000
62001
62002
62003
62004
62005
62006
62007
62008
62009
62010
62011
62012
62013
62014
62015
62016
62017
62018
62019
62020
62021
62022
62023
62024
62025
62026
62027
62028
62029
62030
62031
62032
62033
62034
62035
62036
62037
62038
62039
62040
62041
62042
62043
62044
62045
62046
62047
62048
62049
62050
62051
62052
62053
62054
62055
62056
62057
62058
62059
62060
62061
62062
62063
62064
62065
62066
62067
62068
62069
62070
62071
62072
62073
62074
62075
62076
62077
62078
62079
62080
62081
62082
62083
62084
62085
62086
62087
62088
62089
62090
62091
62092
62093
62094
62095
62096
62097
62098
62099
62100
62101
62102
62103
62104
62105
62106
62107
62108
62109
62110
62111
62112
62113
62114
62115
62116
62117
62118
62119
62120
62121
62122
62123
62124
62125
62126
62127
62128
62129
62130
62131
62132
62133
62134
62135
62136
62137
62138
62139
62140
62141
62142
62143
62144
62145
62146
62147
62148
62149
62150
62151
62152
62153
62154
62155
62156
62157
62158
62159
62160
62161
62162
62163
62164
62165
62166
62167
62168
62169
62170
62171
62172
62173
62174
62175
62176
62177
62178
62179
62180
62181
62182
62183
62184
62185
62186
62187
62188
62189
62190
62191
62192
62193
62194
62195
62196
62197
62198
62199
62200
62201
62202
62203
62204
62205
62206
62207
62208
62209
62210
62211
62212
62213
62214
62215
62216
62217
62218
62219
62220
62221
62222
62223
62224
62225
62226
62227
62228
62229
62230
62231
62232
62233
62234
62235
62236
62237
62238
62239
62240
62241
62242
62243
62244
62245
62246
62247
62248
62249
62250
62251
62252
62253
62254
62255
62256
62257
62258
62259
62260
62261
62262
62263
62264
62265
62266
62267
62268
62269
62270
62271
62272
62273
62274
62275
62276
62277
62278
62279
62280
62281
62282
62283
62284
62285
62286
62287
62288
62289
62290
62291
62292
62293
62294
62295
62296
62297
62298
62299
62300
62301
62302
62303
62304
62305
62306
62307
62308
62309
62310
62311
62312
62313
62314
62315
62316
62317
62318
62319
62320
62321
62322
62323
62324
62325
62326
62327
62328
62329
62330
62331
62332
62333
62334
62335
62336
62337
62338
62339
62340
62341
62342
62343
62344
62345
62346
62347
62348
62349
62350
62351
62352
62353
62354
62355
62356
62357
62358
62359
62360
62361
62362
62363
62364
62365
62366
62367
62368
62369
62370
62371
62372
62373
62374
62375
62376
62377
62378
62379
62380
62381
62382
62383
62384
62385
62386
62387
62388
62389
62390
62391
62392
62393
62394
62395
62396
62397
62398
62399
62400
62401
62402
62403
62404
62405
62406
62407
62408
62409
62410
62411
62412
62413
62414
62415
62416
62417
62418
62419
62420
62421
62422
62423
62424
62425
62426
62427
62428
62429
62430
62431
62432
62433
62434
62435
62436
62437
62438
62439
62440
62441
62442
62443
62444
62445
62446
62447
62448
62449
62450
62451
62452
62453
62454
62455
62456
62457
62458
62459
62460
62461
62462
62463
62464
62465
62466
62467
62468
62469
62470
62471
62472
62473
62474
62475
62476
62477
62478
62479
62480
62481
62482
62483
62484
62485
62486
62487
62488
62489
62490
62491
62492
62493
62494
62495
62496
62497
62498
62499
62500
62501
62502
62503
62504
62505
62506
62507
62508
62509
62510
62511
62512
62513
62514
62515
62516
62517
62518
62519
62520
62521
62522
62523
62524
62525
62526
62527
62528
62529
62530
62531
62532
62533
62534
62535
62536
62537
62538
62539
62540
62541
62542
62543
62544
62545
62546
62547
62548
62549
62550
62551
62552
62553
62554
62555
62556
62557
62558
62559
62560
62561
62562
62563
62564
62565
62566
62567
62568
62569
62570
62571
62572
62573
62574
62575
62576
62577
62578
62579
62580
62581
62582
62583
62584
62585
62586
62587
62588
62589
62590
62591
62592
62593
62594
62595
62596
62597
62598
62599
62600
62601
62602
62603
62604
62605
62606
62607
62608
62609
62610
62611
62612
62613
62614
62615
62616
62617
62618
62619
62620
62621
62622
62623
62624
62625
62626
62627
62628
62629
62630
62631
62632
62633
62634
62635
62636
62637
62638
62639
62640
62641
62642
62643
62644
62645
62646
62647
62648
62649
62650
62651
62652
62653
62654
62655
62656
62657
62658
62659
62660
62661
62662
62663
62664
62665
62666
62667
62668
62669
62670
62671
62672
62673
62674
62675
62676
62677
62678
62679
62680
62681
62682
62683
62684
62685
62686
62687
62688
62689
62690
62691
62692
62693
62694
62695
62696
62697
62698
62699
62700
62701
62702
62703
62704
62705
62706
62707
62708
62709
62710
62711
62712
62713
62714
62715
62716
62717
62718
62719
62720
62721
62722
62723
62724
62725
62726
62727
62728
62729
62730
62731
62732
62733
62734
62735
62736
62737
62738
62739
62740
62741
62742
62743
62744
62745
62746
62747
62748
62749
62750
62751
62752
62753
62754
62755
62756
62757
62758
62759
62760
62761
62762
62763
62764
62765
62766
62767
62768
62769
62770
62771
62772
62773
62774
62775
62776
62777
62778
62779
62780
62781
62782
62783
62784
62785
62786
62787
62788
62789
62790
62791
62792
62793
62794
62795
62796
62797
62798
62799
62800
62801
62802
62803
62804
62805
62806
62807
62808
62809
62810
62811
62812
62813
62814
62815
62816
62817
62818
62819
62820
62821
62822
62823
62824
62825
62826
62827
62828
62829
62830
62831
62832
62833
62834
62835
62836
62837
62838
62839
62840
62841
62842
62843
62844
62845
62846
62847
62848
62849
62850
62851
62852
62853
62854
62855
62856
62857
62858
62859
62860
62861
62862
62863
62864
62865
62866
62867
62868
62869
62870
62871
62872
62873
62874
62875
62876
62877
62878
62879
62880
62881
62882
62883
62884
62885
62886
62887
62888
62889
62890
62891
62892
62893
62894
62895
62896
62897
62898
62899
62900
62901
62902
62903
62904
62905
62906
62907
62908
62909
62910
62911
62912
62913
62914
62915
62916
62917
62918
62919
62920
62921
62922
62923
62924
62925
62926
62927
62928
62929
62930
62931
62932
62933
62934
62935
62936
62937
62938
62939
62940
62941
62942
62943
62944
62945
62946
62947
62948
62949
62950
62951
62952
62953
62954
62955
62956
62957
62958
62959
62960
62961
62962
62963
62964
62965
62966
62967
62968
62969
62970
62971
62972
62973
62974
62975
62976
62977
62978
62979
62980
62981
62982
62983
62984
62985
62986
62987
62988
62989
62990
62991
62992
62993
62994
62995
62996
62997
62998
62999
63000
63001
63002
63003
63004
63005
63006
63007
63008
63009
63010
63011
63012
63013
63014
63015
63016
63017
63018
63019
63020
63021
63022
63023
63024
63025
63026
63027
63028
63029
63030
63031
63032
63033
63034
63035
63036
63037
63038
63039
63040
63041
63042
63043
63044
63045
63046
63047
63048
63049
63050
63051
63052
63053
63054
63055
63056
63057
63058
63059
63060
63061
63062
63063
63064
63065
63066
63067
63068
63069
63070
63071
63072
63073
63074
63075
63076
63077
63078
63079
63080
63081
63082
63083
63084
63085
63086
63087
63088
63089
63090
63091
63092
63093
63094
63095
63096
63097
63098
63099
63100
63101
63102
63103
63104
63105
63106
63107
63108
63109
63110
63111
63112
63113
63114
63115
63116
63117
63118
63119
63120
63121
63122
63123
63124
63125
63126
63127
63128
63129
63130
63131
63132
63133
63134
63135
63136
63137
63138
63139
63140
63141
63142
63143
63144
63145
63146
63147
63148
63149
63150
63151
63152
63153
63154
63155
63156
63157
63158
63159
63160
63161
63162
63163
63164
63165
63166
63167
63168
63169
63170
63171
63172
63173
63174
63175
63176
63177
63178
63179
63180
63181
63182
63183
63184
63185
63186
63187
63188
63189
63190
63191
63192
63193
63194
63195
63196
63197
63198
63199
63200
63201
63202
63203
63204
63205
63206
63207
63208
63209
63210
63211
63212
63213
63214
63215
63216
63217
63218
63219
63220
63221
63222
63223
63224
63225
63226
63227
63228
63229
63230
63231
63232
63233
63234
63235
63236
63237
63238
63239
63240
63241
63242
63243
63244
63245
63246
63247
63248
63249
63250
63251
63252
63253
63254
63255
63256
63257
63258
63259
63260
63261
63262
63263
63264
63265
63266
63267
63268
63269
63270
63271
63272
63273
63274
63275
63276
63277
63278
63279
63280
63281
63282
63283
63284
63285
63286
63287
63288
63289
63290
63291
63292
63293
63294
63295
63296
63297
63298
63299
63300
63301
63302
63303
63304
63305
63306
63307
63308
63309
63310
63311
63312
63313
63314
63315
63316
63317
63318
63319
63320
63321
63322
63323
63324
63325
63326
63327
63328
63329
63330
63331
63332
63333
63334
63335
63336
63337
63338
63339
63340
63341
63342
63343
63344
63345
63346
63347
63348
63349
63350
63351
63352
63353
63354
63355
63356
63357
63358
63359
63360
63361
63362
63363
63364
63365
63366
63367
63368
63369
63370
63371
63372
63373
63374
63375
63376
63377
63378
63379
63380
63381
63382
63383
63384
63385
63386
63387
63388
63389
63390
63391
63392
63393
63394
63395
63396
63397
63398
63399
63400
63401
63402
63403
63404
63405
63406
63407
63408
63409
63410
63411
63412
63413
63414
63415
63416
63417
63418
63419
63420
63421
63422
63423
63424
63425
63426
63427
63428
63429
63430
63431
63432
63433
63434
63435
63436
63437
63438
63439
63440
63441
63442
63443
63444
63445
63446
63447
63448
63449
63450
63451
63452
63453
63454
63455
63456
63457
63458
63459
63460
63461
63462
63463
63464
63465
63466
63467
63468
63469
63470
63471
63472
63473
63474
63475
63476
63477
63478
63479
63480
63481
63482
63483
63484
63485
63486
63487
63488
63489
63490
63491
63492
63493
63494
63495
63496
63497
63498
63499
63500
63501
63502
63503
63504
63505
63506
63507
63508
63509
63510
63511
63512
63513
63514
63515
63516
63517
63518
63519
63520
63521
63522
63523
63524
63525
63526
63527
63528
63529
63530
63531
63532
63533
63534
63535
63536
63537
63538
63539
63540
63541
63542
63543
63544
63545
63546
63547
63548
63549
63550
63551
63552
63553
63554
63555
63556
63557
63558
63559
63560
63561
63562
63563
63564
63565
63566
63567
63568
63569
63570
63571
63572
63573
63574
63575
63576
63577
63578
63579
63580
63581
63582
63583
63584
63585
63586
63587
63588
63589
63590
63591
63592
63593
63594
63595
63596
63597
63598
63599
63600
63601
63602
63603
63604
63605
63606
63607
63608
63609
63610
63611
63612
63613
63614
63615
63616
63617
63618
63619
63620
63621
63622
63623
63624
63625
63626
63627
63628
63629
63630
63631
63632
63633
63634
63635
63636
63637
63638
63639
63640
63641
63642
63643
63644
63645
63646
63647
63648
63649
63650
63651
63652
63653
63654
63655
63656
63657
63658
63659
63660
63661
63662
63663
63664
63665
63666
63667
63668
63669
63670
63671
63672
63673
63674
63675
63676
63677
63678
63679
63680
63681
63682
63683
63684
63685
63686
63687
63688
63689
63690
63691
63692
63693
63694
63695
63696
63697
63698
63699
63700
63701
63702
63703
63704
63705
63706
63707
63708
63709
63710
63711
63712
63713
63714
63715
63716
63717
63718
63719
63720
63721
63722
63723
63724
63725
63726
63727
63728
63729
63730
63731
63732
63733
63734
63735
63736
63737
63738
63739
63740
63741
63742
63743
63744
63745
63746
63747
63748
63749
63750
63751
63752
63753
63754
63755
63756
63757
63758
63759
63760
63761
63762
63763
63764
63765
63766
63767
63768
63769
63770
63771
63772
63773
63774
63775
63776
63777
63778
63779
63780
63781
63782
63783
63784
63785
63786
63787
63788
63789
63790
63791
63792
63793
63794
63795
63796
63797
63798
63799
63800
63801
63802
63803
63804
63805
63806
63807
63808
63809
63810
63811
63812
63813
63814
63815
63816
63817
63818
63819
63820
63821
63822
63823
63824
63825
63826
63827
63828
63829
63830
63831
63832
63833
63834
63835
63836
63837
63838
63839
63840
63841
63842
63843
63844
63845
63846
63847
63848
63849
63850
63851
63852
63853
63854
63855
63856
63857
63858
63859
63860
63861
63862
63863
63864
63865
63866
63867
63868
63869
63870
63871
63872
63873
63874
63875
63876
63877
63878
63879
63880
63881
63882
63883
63884
63885
63886
63887
63888
63889
63890
63891
63892
63893
63894
63895
63896
63897
63898
63899
63900
63901
63902
63903
63904
63905
63906
63907
63908
63909
63910
63911
63912
63913
63914
63915
63916
63917
63918
63919
63920
63921
63922
63923
63924
63925
63926
63927
63928
63929
63930
63931
63932
63933
63934
63935
63936
63937
63938
63939
63940
63941
63942
63943
63944
63945
63946
63947
63948
63949
63950
63951
63952
63953
63954
63955
63956
63957
63958
63959
63960
63961
63962
63963
63964
63965
63966
63967
63968
63969
63970
63971
63972
63973
63974
63975
63976
63977
63978
63979
63980
63981
63982
63983
63984
63985
63986
63987
63988
63989
63990
63991
63992
63993
63994
63995
63996
63997
63998
63999
64000
64001
64002
64003
64004
64005
64006
64007
64008
64009
64010
64011
64012
64013
64014
64015
64016
64017
64018
64019
64020
64021
64022
64023
64024
64025
64026
64027
64028
64029
64030
64031
64032
64033
64034
64035
64036
64037
64038
64039
64040
64041
64042
64043
64044
64045
64046
64047
64048
64049
64050
64051
64052
64053
64054
64055
64056
64057
64058
64059
64060
64061
64062
64063
64064
64065
64066
64067
64068
64069
64070
64071
64072
64073
64074
64075
64076
64077
64078
64079
64080
64081
64082
64083
64084
64085
64086
64087
64088
64089
64090
64091
64092
64093
64094
64095
64096
64097
64098
64099
64100
64101
64102
64103
64104
64105
64106
64107
64108
64109
64110
64111
64112
64113
64114
64115
64116
64117
64118
64119
64120
64121
64122
64123
64124
64125
64126
64127
64128
64129
64130
64131
64132
64133
64134
64135
64136
64137
64138
64139
64140
64141
64142
64143
64144
64145
64146
64147
64148
64149
64150
64151
64152
64153
64154
64155
64156
64157
64158
64159
64160
64161
64162
64163
64164
64165
64166
64167
64168
64169
64170
64171
64172
64173
64174
64175
64176
64177
64178
64179
64180
64181
64182
64183
64184
64185
64186
64187
64188
64189
64190
64191
64192
64193
64194
64195
64196
64197
64198
64199
64200
64201
64202
64203
64204
64205
64206
64207
64208
64209
64210
64211
64212
64213
64214
64215
64216
64217
64218
64219
64220
64221
64222
64223
64224
64225
64226
64227
64228
64229
64230
64231
64232
64233
64234
64235
64236
64237
64238
64239
64240
64241
64242
64243
64244
64245
64246
64247
64248
64249
64250
64251
64252
64253
64254
64255
64256
64257
64258
64259
64260
64261
64262
64263
64264
64265
64266
64267
64268
64269
64270
64271
64272
64273
64274
64275
64276
64277
64278
64279
64280
64281
64282
64283
64284
64285
64286
64287
64288
64289
64290
64291
64292
64293
64294
64295
64296
64297
64298
64299
64300
64301
64302
64303
64304
64305
64306
64307
64308
64309
64310
64311
64312
64313
64314
64315
64316
64317
64318
64319
64320
64321
64322
64323
64324
64325
64326
64327
64328
64329
64330
64331
64332
64333
64334
64335
64336
64337
64338
64339
64340
64341
64342
64343
64344
64345
64346
64347
64348
64349
64350
64351
64352
64353
64354
64355
64356
64357
64358
64359
64360
64361
64362
64363
64364
64365
64366
64367
64368
64369
64370
64371
64372
64373
64374
64375
64376
64377
64378
64379
64380
64381
64382
64383
64384
64385
64386
64387
64388
64389
64390
64391
64392
64393
64394
64395
64396
64397
64398
64399
64400
64401
64402
64403
64404
64405
64406
64407
64408
64409
64410
64411
64412
64413
64414
64415
64416
64417
64418
64419
64420
64421
64422
64423
64424
64425
64426
64427
64428
64429
64430
64431
64432
64433
64434
64435
64436
64437
64438
64439
64440
64441
64442
64443
64444
64445
64446
64447
64448
64449
64450
64451
64452
64453
64454
64455
64456
64457
64458
64459
64460
64461
64462
64463
64464
64465
64466
64467
64468
64469
64470
64471
64472
64473
64474
64475
64476
64477
64478
64479
64480
64481
64482
64483
64484
64485
64486
64487
64488
64489
64490
64491
64492
64493
64494
64495
64496
64497
64498
64499
64500
64501
64502
64503
64504
64505
64506
64507
64508
64509
64510
64511
64512
64513
64514
64515
64516
64517
64518
64519
64520
64521
64522
64523
64524
64525
64526
64527
64528
64529
64530
64531
64532
64533
64534
64535
64536
64537
64538
64539
64540
64541
64542
64543
64544
64545
64546
64547
64548
64549
64550
64551
64552
64553
64554
64555
64556
64557
64558
64559
64560
64561
64562
64563
64564
64565
64566
64567
64568
64569
64570
64571
64572
64573
64574
64575
64576
64577
64578
64579
64580
64581
64582
64583
64584
64585
64586
64587
64588
64589
64590
64591
64592
64593
64594
64595
64596
64597
64598
64599
64600
64601
64602
64603
64604
64605
64606
64607
64608
64609
64610
64611
64612
64613
64614
64615
64616
64617
64618
64619
64620
64621
64622
64623
64624
64625
64626
64627
64628
64629
64630
64631
64632
64633
64634
64635
64636
64637
64638
64639
64640
64641
64642
64643
64644
64645
64646
64647
64648
64649
64650
64651
64652
64653
64654
64655
64656
64657
64658
64659
64660
64661
64662
64663
64664
64665
64666
64667
64668
64669
64670
64671
64672
64673
64674
64675
64676
64677
64678
64679
64680
64681
64682
64683
64684
64685
64686
64687
64688
64689
64690
64691
64692
64693
64694
64695
64696
64697
64698
64699
64700
64701
64702
64703
64704
64705
64706
64707
64708
64709
64710
64711
64712
64713
64714
64715
64716
64717
64718
64719
64720
64721
64722
64723
64724
64725
64726
64727
64728
64729
64730
64731
64732
64733
64734
64735
64736
64737
64738
64739
64740
64741
64742
64743
64744
64745
64746
64747
64748
64749
64750
64751
64752
64753
64754
64755
64756
64757
64758
64759
64760
64761
64762
64763
64764
64765
64766
64767
64768
64769
64770
64771
64772
64773
64774
64775
64776
64777
64778
64779
64780
64781
64782
64783
64784
64785
64786
64787
64788
64789
64790
64791
64792
64793
64794
64795
64796
64797
64798
64799
64800
64801
64802
64803
64804
64805
64806
64807
64808
64809
64810
64811
64812
64813
64814
64815
64816
64817
64818
64819
64820
64821
64822
64823
64824
64825
64826
64827
64828
64829
64830
64831
64832
64833
64834
64835
64836
64837
64838
64839
64840
64841
64842
64843
64844
64845
64846
64847
64848
64849
64850
64851
64852
64853
64854
64855
64856
64857
64858
64859
64860
64861
64862
64863
64864
64865
64866
64867
64868
64869
64870
64871
64872
64873
64874
64875
64876
64877
64878
64879
64880
64881
64882
64883
64884
64885
64886
64887
64888
64889
64890
64891
64892
64893
64894
64895
64896
64897
64898
64899
64900
64901
64902
64903
64904
64905
64906
64907
64908
64909
64910
64911
64912
64913
64914
64915
64916
64917
64918
64919
64920
64921
64922
64923
64924
64925
64926
64927
64928
64929
64930
64931
64932
64933
64934
64935
64936
64937
64938
64939
64940
64941
64942
64943
64944
64945
64946
64947
64948
64949
64950
64951
64952
64953
64954
64955
64956
64957
64958
64959
64960
64961
64962
64963
64964
64965
64966
64967
64968
64969
64970
64971
64972
64973
64974
64975
64976
64977
64978
64979
64980
64981
64982
64983
64984
64985
64986
64987
64988
64989
64990
64991
64992
64993
64994
64995
64996
64997
64998
64999
65000
65001
65002
65003
65004
65005
65006
65007
65008
65009
65010
65011
65012
65013
65014
65015
65016
65017
65018
65019
65020
65021
65022
65023
65024
65025
65026
65027
65028
65029
65030
65031
65032
65033
65034
65035
65036
65037
65038
65039
65040
65041
65042
65043
65044
65045
65046
65047
65048
65049
65050
65051
65052
65053
65054
65055
65056
65057
65058
65059
65060
65061
65062
65063
65064
65065
65066
65067
65068
65069
65070
65071
65072
65073
65074
65075
65076
65077
65078
65079
65080
65081
65082
65083
65084
65085
65086
65087
65088
65089
65090
65091
65092
65093
65094
65095
65096
65097
65098
65099
65100
65101
65102
65103
65104
65105
65106
65107
65108
65109
65110
65111
65112
65113
65114
65115
65116
65117
65118
65119
65120
65121
65122
65123
65124
65125
65126
65127
65128
65129
65130
65131
65132
65133
65134
65135
65136
65137
65138
65139
65140
65141
65142
65143
65144
65145
65146
65147
65148
65149
65150
65151
65152
65153
65154
65155
65156
65157
65158
65159
65160
65161
65162
65163
65164
65165
65166
65167
65168
65169
65170
65171
65172
65173
65174
65175
65176
65177
65178
65179
65180
65181
65182
65183
65184
65185
65186
65187
65188
65189
65190
65191
65192
65193
65194
65195
65196
65197
65198
65199
65200
65201
65202
65203
65204
65205
65206
65207
65208
65209
65210
65211
65212
65213
65214
65215
65216
65217
65218
65219
65220
65221
65222
65223
65224
65225
65226
65227
65228
65229
65230
65231
65232
65233
65234
65235
65236
65237
65238
65239
65240
65241
65242
65243
65244
65245
65246
65247
65248
65249
65250
65251
65252
65253
65254
65255
65256
65257
65258
65259
65260
65261
65262
65263
65264
65265
65266
65267
65268
65269
65270
65271
65272
65273
65274
65275
65276
65277
65278
65279
65280
65281
65282
65283
65284
65285
65286
65287
65288
65289
65290
65291
65292
65293
65294
65295
65296
65297
65298
65299
65300
65301
65302
65303
65304
65305
65306
65307
65308
65309
65310
65311
65312
65313
65314
65315
65316
65317
65318
65319
65320
65321
65322
65323
65324
65325
65326
65327
65328
65329
65330
65331
65332
65333
65334
65335
65336
65337
65338
65339
65340
65341
65342
65343
65344
65345
65346
65347
65348
65349
65350
65351
65352
65353
65354
65355
65356
65357
65358
65359
65360
65361
65362
65363
65364
65365
65366
65367
65368
65369
65370
65371
65372
65373
65374
65375
65376
65377
65378
65379
65380
65381
65382
65383
65384
65385
65386
65387
65388
65389
65390
65391
65392
65393
65394
65395
65396
65397
65398
65399
65400
65401
65402
65403
65404
65405
65406
65407
65408
65409
65410
65411
65412
65413
65414
65415
65416
65417
65418
65419
65420
65421
65422
65423
65424
65425
65426
65427
65428
65429
65430
65431
65432
65433
65434
65435
65436
65437
65438
65439
65440
65441
65442
65443
65444
65445
65446
65447
65448
65449
65450
65451
65452
65453
65454
65455
65456
65457
65458
65459
65460
65461
65462
65463
65464
65465
65466
65467
65468
65469
65470
65471
65472
65473
65474
65475
65476
65477
65478
65479
65480
65481
65482
65483
65484
65485
65486
65487
65488
65489
65490
65491
65492
65493
65494
65495
65496
65497
65498
65499
65500
65501
65502
65503
65504
65505
65506
65507
65508
65509
65510
65511
65512
65513
65514
65515
65516
65517
65518
65519
65520
65521
65522
65523
65524
65525
65526
65527
65528
65529
65530
65531
65532
65533
65534
65535
65536
65537
65538
65539
65540
65541
65542
65543
65544
65545
65546
65547
65548
65549
65550
65551
65552
65553
65554
65555
65556
65557
65558
65559
65560
65561
65562
65563
65564
65565
65566
65567
65568
65569
65570
65571
65572
65573
65574
65575
65576
65577
65578
65579
65580
65581
65582
65583
65584
65585
65586
65587
65588
65589
65590
65591
65592
65593
65594
65595
65596
65597
65598
65599
65600
65601
65602
65603
65604
65605
65606
65607
65608
65609
65610
65611
65612
65613
65614
65615
65616
65617
65618
65619
65620
65621
65622
65623
65624
65625
65626
65627
65628
65629
65630
65631
65632
65633
65634
65635
65636
65637
65638
65639
65640
65641
65642
65643
65644
65645
65646
65647
65648
65649
65650
65651
65652
65653
65654
65655
65656
65657
65658
65659
65660
65661
65662
65663
65664
65665
65666
65667
65668
65669
65670
65671
65672
65673
65674
65675
65676
65677
65678
65679
65680
65681
65682
65683
65684
65685
65686
65687
65688
65689
65690
65691
65692
65693
65694
65695
65696
65697
65698
65699
65700
65701
65702
65703
65704
65705
65706
65707
65708
65709
65710
65711
65712
65713
65714
65715
65716
65717
65718
65719
65720
65721
65722
65723
65724
65725
65726
65727
65728
65729
65730
65731
65732
65733
65734
65735
65736
65737
65738
65739
65740
65741
65742
65743
65744
65745
65746
65747
65748
65749
65750
65751
65752
65753
65754
65755
65756
65757
65758
65759
65760
65761
65762
65763
65764
65765
65766
65767
65768
65769
65770
65771
65772
65773
65774
65775
65776
65777
65778
65779
65780
65781
65782
65783
65784
65785
65786
65787
65788
65789
65790
65791
65792
65793
65794
65795
65796
65797
65798
65799
65800
65801
65802
65803
65804
65805
65806
65807
65808
65809
65810
65811
65812
65813
65814
65815
65816
65817
65818
65819
65820
65821
65822
65823
65824
65825
65826
65827
65828
65829
65830
65831
65832
65833
65834
65835
65836
65837
65838
65839
65840
65841
65842
65843
65844
65845
65846
65847
65848
65849
65850
65851
65852
65853
65854
65855
65856
65857
65858
65859
65860
65861
65862
65863
65864
65865
65866
65867
65868
65869
65870
65871
65872
65873
65874
65875
65876
65877
65878
65879
65880
65881
65882
65883
65884
65885
65886
65887
65888
65889
65890
65891
65892
65893
65894
65895
65896
65897
65898
65899
65900
65901
65902
65903
65904
65905
65906
65907
65908
65909
65910
65911
65912
65913
65914
65915
65916
65917
65918
65919
65920
65921
65922
65923
65924
65925
65926
65927
65928
65929
65930
65931
65932
65933
65934
65935
65936
65937
65938
65939
65940
65941
65942
65943
65944
65945
65946
65947
65948
65949
65950
65951
65952
65953
65954
65955
65956
65957
65958
65959
65960
65961
65962
65963
65964
65965
65966
65967
65968
65969
65970
65971
65972
65973
65974
65975
65976
65977
65978
65979
65980
65981
65982
65983
65984
65985
65986
65987
65988
65989
65990
65991
65992
65993
65994
65995
65996
65997
65998
65999
66000
66001
66002
66003
66004
66005
66006
66007
66008
66009
66010
66011
66012
66013
66014
66015
66016
66017
66018
66019
66020
66021
66022
66023
66024
66025
66026
66027
66028
66029
66030
66031
66032
66033
66034
66035
66036
66037
66038
66039
66040
66041
66042
66043
66044
66045
66046
66047
66048
66049
66050
66051
66052
66053
66054
66055
66056
66057
66058
66059
66060
66061
66062
66063
66064
66065
66066
66067
66068
66069
66070
66071
66072
66073
66074
66075
66076
66077
66078
66079
66080
66081
66082
66083
66084
66085
66086
66087
66088
66089
66090
66091
66092
66093
66094
66095
66096
66097
66098
66099
66100
66101
66102
66103
66104
66105
66106
66107
66108
66109
66110
66111
66112
66113
66114
66115
66116
66117
66118
66119
66120
66121
66122
66123
66124
66125
66126
66127
66128
66129
66130
66131
66132
66133
66134
66135
66136
66137
66138
66139
66140
66141
66142
66143
66144
66145
66146
66147
66148
66149
66150
66151
66152
66153
66154
66155
66156
66157
66158
66159
66160
66161
66162
66163
66164
66165
66166
66167
66168
66169
66170
66171
66172
66173
66174
66175
66176
66177
66178
66179
66180
66181
66182
66183
66184
66185
66186
66187
66188
66189
66190
66191
66192
66193
66194
66195
66196
66197
66198
66199
66200
66201
66202
66203
66204
66205
66206
66207
66208
66209
66210
66211
66212
66213
66214
66215
66216
66217
66218
66219
66220
66221
66222
66223
66224
66225
66226
66227
66228
66229
66230
66231
66232
66233
66234
66235
66236
66237
66238
66239
66240
66241
66242
66243
66244
66245
66246
66247
66248
66249
66250
66251
66252
66253
66254
66255
66256
66257
66258
66259
66260
66261
66262
66263
66264
66265
66266
66267
66268
66269
66270
66271
66272
66273
66274
66275
66276
66277
66278
66279
66280
66281
66282
66283
66284
66285
66286
66287
66288
66289
66290
66291
66292
66293
66294
66295
66296
66297
66298
66299
66300
66301
66302
66303
66304
66305
66306
66307
66308
66309
66310
66311
66312
66313
66314
66315
66316
66317
66318
66319
66320
66321
66322
66323
66324
66325
66326
66327
66328
66329
66330
66331
66332
66333
66334
66335
66336
66337
66338
66339
66340
66341
66342
66343
66344
66345
66346
66347
66348
66349
66350
66351
66352
66353
66354
66355
66356
66357
66358
66359
66360
66361
66362
66363
66364
66365
66366
66367
66368
66369
66370
66371
66372
66373
66374
66375
66376
66377
66378
66379
66380
66381
66382
66383
66384
66385
66386
66387
66388
66389
66390
66391
66392
66393
66394
66395
66396
66397
66398
66399
66400
66401
66402
66403
66404
66405
66406
66407
66408
66409
66410
66411
66412
66413
66414
66415
66416
66417
66418
66419
66420
66421
66422
66423
66424
66425
66426
66427
66428
66429
66430
66431
66432
66433
66434
66435
66436
66437
66438
66439
66440
66441
66442
66443
66444
66445
66446
66447
66448
66449
66450
66451
66452
66453
66454
66455
66456
66457
66458
66459
66460
66461
66462
66463
66464
66465
66466
66467
66468
66469
66470
66471
66472
66473
66474
66475
66476
66477
66478
66479
66480
66481
66482
66483
66484
66485
66486
66487
66488
66489
66490
66491
66492
66493
66494
66495
66496
66497
66498
66499
66500
66501
66502
66503
66504
66505
66506
66507
66508
66509
66510
66511
66512
66513
66514
66515
66516
66517
66518
66519
66520
66521
66522
66523
66524
66525
66526
66527
66528
66529
66530
66531
66532
66533
66534
66535
66536
66537
66538
66539
66540
66541
66542
66543
66544
66545
66546
66547
66548
66549
66550
66551
66552
66553
66554
66555
66556
66557
66558
66559
66560
66561
66562
66563
66564
66565
66566
66567
66568
66569
66570
66571
66572
66573
66574
66575
66576
66577
66578
66579
66580
66581
66582
66583
66584
66585
66586
66587
66588
66589
66590
66591
66592
66593
66594
66595
66596
66597
66598
66599
66600
66601
66602
66603
66604
66605
66606
66607
66608
66609
66610
66611
66612
66613
66614
66615
66616
66617
66618
66619
66620
66621
66622
66623
66624
66625
66626
66627
66628
66629
66630
66631
66632
66633
66634
66635
66636
66637
66638
66639
66640
66641
66642
66643
66644
66645
66646
66647
66648
66649
66650
66651
66652
66653
66654
66655
66656
66657
66658
66659
66660
66661
66662
66663
66664
66665
66666
66667
66668
66669
66670
66671
66672
66673
66674
66675
66676
66677
66678
66679
66680
66681
66682
66683
66684
66685
66686
66687
66688
66689
66690
66691
66692
66693
66694
66695
66696
66697
66698
66699
66700
66701
66702
66703
66704
66705
66706
66707
66708
66709
66710
66711
66712
66713
66714
66715
66716
66717
66718
66719
66720
66721
66722
66723
66724
66725
66726
66727
66728
66729
66730
66731
66732
66733
66734
66735
66736
66737
66738
66739
66740
66741
66742
66743
66744
66745
66746
66747
66748
66749
66750
66751
66752
66753
66754
66755
66756
66757
66758
66759
66760
66761
66762
66763
66764
66765
66766
66767
66768
66769
66770
66771
66772
66773
66774
66775
66776
66777
66778
66779
66780
66781
66782
66783
66784
66785
66786
66787
66788
66789
66790
66791
66792
66793
66794
66795
66796
66797
66798
66799
66800
66801
66802
66803
66804
66805
66806
66807
66808
66809
66810
66811
66812
66813
66814
66815
66816
66817
66818
66819
66820
66821
66822
66823
66824
66825
66826
66827
66828
66829
66830
66831
66832
66833
66834
66835
66836
66837
66838
66839
66840
66841
66842
66843
66844
66845
66846
66847
66848
66849
66850
66851
66852
66853
66854
66855
66856
66857
66858
66859
66860
66861
66862
66863
66864
66865
66866
66867
66868
66869
66870
66871
66872
66873
66874
66875
66876
66877
66878
66879
66880
66881
66882
66883
66884
66885
66886
66887
66888
66889
66890
66891
66892
66893
66894
66895
66896
66897
66898
66899
66900
66901
66902
66903
66904
66905
66906
66907
66908
66909
66910
66911
66912
66913
66914
66915
66916
66917
66918
66919
66920
66921
66922
66923
66924
66925
66926
66927
66928
66929
66930
66931
66932
66933
66934
66935
66936
66937
66938
66939
66940
66941
66942
66943
66944
66945
66946
66947
66948
66949
66950
66951
66952
66953
66954
66955
66956
66957
66958
66959
66960
66961
66962
66963
66964
66965
66966
66967
66968
66969
66970
66971
66972
66973
66974
66975
66976
66977
66978
66979
66980
66981
66982
66983
66984
66985
66986
66987
66988
66989
66990
66991
66992
66993
66994
66995
66996
66997
66998
66999
67000
67001
67002
67003
67004
67005
67006
67007
67008
67009
67010
67011
67012
67013
67014
67015
67016
67017
67018
67019
67020
67021
67022
67023
67024
67025
67026
67027
67028
67029
67030
67031
67032
67033
67034
67035
67036
67037
67038
67039
67040
67041
67042
67043
67044
67045
67046
67047
67048
67049
67050
67051
67052
67053
67054
67055
67056
67057
67058
67059
67060
67061
67062
67063
67064
67065
67066
67067
67068
67069
67070
67071
67072
67073
67074
67075
67076
67077
67078
67079
67080
67081
67082
67083
67084
67085
67086
67087
67088
67089
67090
67091
67092
67093
67094
67095
67096
67097
67098
67099
67100
67101
67102
67103
67104
67105
67106
67107
67108
67109
67110
67111
67112
67113
67114
67115
67116
67117
67118
67119
67120
67121
67122
67123
67124
67125
67126
67127
67128
67129
67130
67131
67132
67133
67134
67135
67136
67137
67138
67139
67140
67141
67142
67143
67144
67145
67146
67147
67148
67149
67150
67151
67152
67153
67154
67155
67156
67157
67158
67159
67160
67161
67162
67163
67164
67165
67166
67167
67168
67169
67170
67171
67172
67173
67174
67175
67176
67177
67178
67179
67180
67181
67182
67183
67184
67185
67186
67187
67188
67189
67190
67191
67192
67193
67194
67195
67196
67197
67198
67199
67200
67201
67202
67203
67204
67205
67206
67207
67208
67209
67210
67211
67212
67213
67214
67215
67216
67217
67218
67219
67220
67221
67222
67223
67224
67225
67226
67227
67228
67229
67230
67231
67232
67233
67234
67235
67236
67237
67238
67239
67240
67241
67242
67243
67244
67245
67246
67247
67248
67249
67250
67251
67252
67253
67254
67255
67256
67257
67258
67259
67260
67261
67262
67263
67264
67265
67266
67267
67268
67269
67270
67271
67272
67273
67274
67275
67276
67277
67278
67279
67280
67281
67282
67283
67284
67285
67286
67287
67288
67289
67290
67291
67292
67293
67294
67295
67296
67297
67298
67299
67300
67301
67302
67303
67304
67305
67306
67307
67308
67309
67310
67311
67312
67313
67314
67315
67316
67317
67318
67319
67320
67321
67322
67323
67324
67325
67326
67327
67328
67329
67330
67331
67332
67333
67334
67335
67336
67337
67338
67339
67340
67341
67342
67343
67344
67345
67346
67347
67348
67349
67350
67351
67352
67353
67354
67355
67356
67357
67358
67359
67360
67361
67362
67363
67364
67365
67366
67367
67368
67369
67370
67371
67372
67373
67374
67375
67376
67377
67378
67379
67380
67381
67382
67383
67384
67385
67386
67387
67388
67389
67390
67391
67392
67393
67394
67395
67396
67397
67398
67399
67400
67401
67402
67403
67404
67405
67406
67407
67408
67409
67410
67411
67412
67413
67414
67415
67416
67417
67418
67419
67420
67421
67422
67423
67424
67425
67426
67427
67428
67429
67430
67431
67432
67433
67434
67435
67436
67437
67438
67439
67440
67441
67442
67443
67444
67445
67446
67447
67448
67449
67450
67451
67452
67453
67454
67455
67456
67457
67458
67459
67460
67461
67462
67463
67464
67465
67466
67467
67468
67469
67470
67471
67472
67473
67474
67475
67476
67477
67478
67479
67480
67481
67482
67483
67484
67485
67486
67487
67488
67489
67490
67491
67492
67493
67494
67495
67496
67497
67498
67499
67500
67501
67502
67503
67504
67505
67506
67507
67508
67509
67510
67511
67512
67513
67514
67515
67516
67517
67518
67519
67520
67521
67522
67523
67524
67525
67526
67527
67528
67529
67530
67531
67532
67533
67534
67535
67536
67537
67538
67539
67540
67541
67542
67543
67544
67545
67546
67547
67548
67549
67550
67551
67552
67553
67554
67555
67556
67557
67558
67559
67560
67561
67562
67563
67564
67565
67566
67567
67568
67569
67570
67571
67572
67573
67574
67575
67576
67577
67578
67579
67580
67581
67582
67583
67584
67585
67586
67587
67588
67589
67590
67591
67592
67593
67594
67595
67596
67597
67598
67599
67600
67601
67602
67603
67604
67605
67606
67607
67608
67609
67610
67611
67612
67613
67614
67615
67616
67617
67618
67619
67620
67621
67622
67623
67624
67625
67626
67627
67628
67629
67630
67631
67632
67633
67634
67635
67636
67637
67638
67639
67640
67641
67642
67643
67644
67645
67646
67647
67648
67649
67650
67651
67652
67653
67654
67655
67656
67657
67658
67659
67660
67661
67662
67663
67664
67665
67666
67667
67668
67669
67670
67671
67672
67673
67674
67675
67676
67677
67678
67679
67680
67681
67682
67683
67684
67685
67686
67687
67688
67689
67690
67691
67692
67693
67694
67695
67696
67697
67698
67699
67700
67701
67702
67703
67704
67705
67706
67707
67708
67709
67710
67711
67712
67713
67714
67715
67716
67717
67718
67719
67720
67721
67722
67723
67724
67725
67726
67727
67728
67729
67730
67731
67732
67733
67734
67735
67736
67737
67738
67739
67740
67741
67742
67743
67744
67745
67746
67747
67748
67749
67750
67751
67752
67753
67754
67755
67756
67757
67758
67759
67760
67761
67762
67763
67764
67765
67766
67767
67768
67769
67770
67771
67772
67773
67774
67775
67776
67777
67778
67779
67780
67781
67782
67783
67784
67785
67786
67787
67788
67789
67790
67791
67792
67793
67794
67795
67796
67797
67798
67799
67800
67801
67802
67803
67804
67805
67806
67807
67808
67809
67810
67811
67812
67813
67814
67815
67816
67817
67818
67819
67820
67821
67822
67823
67824
67825
67826
67827
67828
67829
67830
67831
67832
67833
67834
67835
67836
67837
67838
67839
67840
67841
67842
67843
67844
67845
67846
67847
67848
67849
67850
67851
67852
67853
67854
67855
67856
67857
67858
67859
67860
67861
67862
67863
67864
67865
67866
67867
67868
67869
67870
67871
67872
67873
67874
67875
67876
67877
67878
67879
67880
67881
67882
67883
67884
67885
67886
67887
67888
67889
67890
67891
67892
67893
67894
67895
67896
67897
67898
67899
67900
67901
67902
67903
67904
67905
67906
67907
67908
67909
67910
67911
67912
67913
67914
67915
67916
67917
67918
67919
67920
67921
67922
67923
67924
67925
67926
67927
67928
67929
67930
67931
67932
67933
67934
67935
67936
67937
67938
67939
67940
67941
67942
67943
67944
67945
67946
67947
67948
67949
67950
67951
67952
67953
67954
67955
67956
67957
67958
67959
67960
67961
67962
67963
67964
67965
67966
67967
67968
67969
67970
67971
67972
67973
67974
67975
67976
67977
67978
67979
67980
67981
67982
67983
67984
67985
67986
67987
67988
67989
67990
67991
67992
67993
67994
67995
67996
67997
67998
67999
68000
68001
68002
68003
68004
68005
68006
68007
68008
68009
68010
68011
68012
68013
68014
68015
68016
68017
68018
68019
68020
68021
68022
68023
68024
68025
68026
68027
68028
68029
68030
68031
68032
68033
68034
68035
68036
68037
68038
68039
68040
68041
68042
68043
68044
68045
68046
68047
68048
68049
68050
68051
68052
68053
68054
68055
68056
68057
68058
68059
68060
68061
68062
68063
68064
68065
68066
68067
68068
68069
68070
68071
68072
68073
68074
68075
68076
68077
68078
68079
68080
68081
68082
68083
68084
68085
68086
68087
68088
68089
68090
68091
68092
68093
68094
68095
68096
68097
68098
68099
68100
68101
68102
68103
68104
68105
68106
68107
68108
68109
68110
68111
68112
68113
68114
68115
68116
68117
68118
68119
68120
68121
68122
68123
68124
68125
68126
68127
68128
68129
68130
68131
68132
68133
68134
68135
68136
68137
68138
68139
68140
68141
68142
68143
68144
68145
68146
68147
68148
68149
68150
68151
68152
68153
68154
68155
68156
68157
68158
68159
68160
68161
68162
68163
68164
68165
68166
68167
68168
68169
68170
68171
68172
68173
68174
68175
68176
68177
68178
68179
68180
68181
68182
68183
68184
68185
68186
68187
68188
68189
68190
68191
68192
68193
68194
68195
68196
68197
68198
68199
68200
68201
68202
68203
68204
68205
68206
68207
68208
68209
68210
68211
68212
68213
68214
68215
68216
68217
68218
68219
68220
68221
68222
68223
68224
68225
68226
68227
68228
68229
68230
68231
68232
68233
68234
68235
68236
68237
68238
68239
68240
68241
68242
68243
68244
68245
68246
68247
68248
68249
68250
68251
68252
68253
68254
68255
68256
68257
68258
68259
68260
68261
68262
68263
68264
68265
68266
68267
68268
68269
68270
68271
68272
68273
68274
68275
68276
68277
68278
68279
68280
68281
68282
68283
68284
68285
68286
68287
68288
68289
68290
68291
68292
68293
68294
68295
68296
68297
68298
68299
68300
68301
68302
68303
68304
68305
68306
68307
68308
68309
68310
68311
68312
68313
68314
68315
68316
68317
68318
68319
68320
68321
68322
68323
68324
68325
68326
68327
68328
68329
68330
68331
68332
68333
68334
68335
68336
68337
68338
68339
68340
68341
68342
68343
68344
68345
68346
68347
68348
68349
68350
68351
68352
68353
68354
68355
68356
68357
68358
68359
68360
68361
68362
68363
68364
68365
68366
68367
68368
68369
68370
68371
68372
68373
68374
68375
68376
68377
68378
68379
68380
68381
68382
68383
68384
68385
68386
68387
68388
68389
68390
68391
68392
68393
68394
68395
68396
68397
68398
68399
68400
68401
68402
68403
68404
68405
68406
68407
68408
68409
68410
68411
68412
68413
68414
68415
68416
68417
68418
68419
68420
68421
68422
68423
68424
68425
68426
68427
68428
68429
68430
68431
68432
68433
68434
68435
68436
68437
68438
68439
68440
68441
68442
68443
68444
68445
68446
68447
68448
68449
68450
68451
68452
68453
68454
68455
68456
68457
68458
68459
68460
68461
68462
68463
68464
68465
68466
68467
68468
68469
68470
68471
68472
68473
68474
68475
68476
68477
68478
68479
68480
68481
68482
68483
68484
68485
68486
68487
68488
68489
68490
68491
68492
68493
68494
68495
68496
68497
68498
68499
68500
68501
68502
68503
68504
68505
68506
68507
68508
68509
68510
68511
68512
68513
68514
68515
68516
68517
68518
68519
68520
68521
68522
68523
68524
68525
68526
68527
68528
68529
68530
68531
68532
68533
68534
68535
68536
68537
68538
68539
68540
68541
68542
68543
68544
68545
68546
68547
68548
68549
68550
68551
68552
68553
68554
68555
68556
68557
68558
68559
68560
68561
68562
68563
68564
68565
68566
68567
68568
68569
68570
68571
68572
68573
68574
68575
68576
68577
68578
68579
68580
68581
68582
68583
68584
68585
68586
68587
68588
68589
68590
68591
68592
68593
68594
68595
68596
68597
68598
68599
68600
68601
68602
68603
68604
68605
68606
68607
68608
68609
68610
68611
68612
68613
68614
68615
68616
68617
68618
68619
68620
68621
68622
68623
68624
68625
68626
68627
68628
68629
68630
68631
68632
68633
68634
68635
68636
68637
68638
68639
68640
68641
68642
68643
68644
68645
68646
68647
68648
68649
68650
68651
68652
68653
68654
68655
68656
68657
68658
68659
68660
68661
68662
68663
68664
68665
68666
68667
68668
68669
68670
68671
68672
68673
68674
68675
68676
68677
68678
68679
68680
68681
68682
68683
68684
68685
68686
68687
68688
68689
68690
68691
68692
68693
68694
68695
68696
68697
68698
68699
68700
68701
68702
68703
68704
68705
68706
68707
68708
68709
68710
68711
68712
68713
68714
68715
68716
68717
68718
68719
68720
68721
68722
68723
68724
68725
68726
68727
68728
68729
68730
68731
68732
68733
68734
68735
68736
68737
68738
68739
68740
68741
68742
68743
68744
68745
68746
68747
68748
68749
68750
68751
68752
68753
68754
68755
68756
68757
68758
68759
68760
68761
68762
68763
68764
68765
68766
68767
68768
68769
68770
68771
68772
68773
68774
68775
68776
68777
68778
68779
68780
68781
68782
68783
68784
68785
68786
68787
68788
68789
68790
68791
68792
68793
68794
68795
68796
68797
68798
68799
68800
68801
68802
68803
68804
68805
68806
68807
68808
68809
68810
68811
68812
68813
68814
68815
68816
68817
68818
68819
68820
68821
68822
68823
68824
68825
68826
68827
68828
68829
68830
68831
68832
68833
68834
68835
68836
68837
68838
68839
68840
68841
68842
68843
68844
68845
68846
68847
68848
68849
68850
68851
68852
68853
68854
68855
68856
68857
68858
68859
68860
68861
68862
68863
68864
68865
68866
68867
68868
68869
68870
68871
68872
68873
68874
68875
68876
68877
68878
68879
68880
68881
68882
68883
68884
68885
68886
68887
68888
68889
68890
68891
68892
68893
68894
68895
68896
68897
68898
68899
68900
68901
68902
68903
68904
68905
68906
68907
68908
68909
68910
68911
68912
68913
68914
68915
68916
68917
68918
68919
68920
68921
68922
68923
68924
68925
68926
68927
68928
68929
68930
68931
68932
68933
68934
68935
68936
68937
68938
68939
68940
68941
68942
68943
68944
68945
68946
68947
68948
68949
68950
68951
68952
68953
68954
68955
68956
68957
68958
68959
68960
68961
68962
68963
68964
68965
68966
68967
68968
68969
68970
68971
68972
68973
68974
68975
68976
68977
68978
68979
68980
68981
68982
68983
68984
68985
68986
68987
68988
68989
68990
68991
68992
68993
68994
68995
68996
68997
68998
68999
69000
69001
69002
69003
69004
69005
69006
69007
69008
69009
69010
69011
69012
69013
69014
69015
69016
69017
69018
69019
69020
69021
69022
69023
69024
69025
69026
69027
69028
69029
69030
69031
69032
69033
69034
69035
69036
69037
69038
69039
69040
69041
69042
69043
69044
69045
69046
69047
69048
69049
69050
69051
69052
69053
69054
69055
69056
69057
69058
69059
69060
69061
69062
69063
69064
69065
69066
69067
69068
69069
69070
69071
69072
69073
69074
69075
69076
69077
69078
69079
69080
69081
69082
69083
69084
69085
69086
69087
69088
69089
69090
69091
69092
69093
69094
69095
69096
69097
69098
69099
69100
69101
69102
69103
69104
69105
69106
69107
69108
69109
69110
69111
69112
69113
69114
69115
69116
69117
69118
69119
69120
69121
69122
69123
69124
69125
69126
69127
69128
69129
69130
69131
69132
69133
69134
69135
69136
69137
69138
69139
69140
69141
69142
69143
69144
69145
69146
69147
69148
69149
69150
69151
69152
69153
69154
69155
69156
69157
69158
69159
69160
69161
69162
69163
69164
69165
69166
69167
69168
69169
69170
69171
69172
69173
69174
69175
69176
69177
69178
69179
69180
69181
69182
69183
69184
69185
69186
69187
69188
69189
69190
69191
69192
69193
69194
69195
69196
69197
69198
69199
69200
69201
69202
69203
69204
69205
69206
69207
69208
69209
69210
69211
69212
69213
69214
69215
69216
69217
69218
69219
69220
69221
69222
69223
69224
69225
69226
69227
69228
69229
69230
69231
69232
69233
69234
69235
69236
69237
69238
69239
69240
69241
69242
69243
69244
69245
69246
69247
69248
69249
69250
69251
69252
69253
69254
69255
69256
69257
69258
69259
69260
69261
69262
69263
69264
69265
69266
69267
69268
69269
69270
69271
69272
69273
69274
69275
69276
69277
69278
69279
69280
69281
69282
69283
69284
69285
69286
69287
69288
69289
69290
69291
69292
69293
69294
69295
69296
69297
69298
69299
69300
69301
69302
69303
69304
69305
69306
69307
69308
69309
69310
69311
69312
69313
69314
69315
69316
69317
69318
69319
69320
69321
69322
69323
69324
69325
69326
69327
69328
69329
69330
69331
69332
69333
69334
69335
69336
69337
69338
69339
69340
69341
69342
69343
69344
69345
69346
69347
69348
69349
69350
69351
69352
69353
69354
69355
69356
69357
69358
69359
69360
69361
69362
69363
69364
69365
69366
69367
69368
69369
69370
69371
69372
69373
69374
69375
69376
69377
69378
69379
69380
69381
69382
69383
69384
69385
69386
69387
69388
69389
69390
69391
69392
69393
69394
69395
69396
69397
69398
69399
69400
69401
69402
69403
69404
69405
69406
69407
69408
69409
69410
69411
69412
69413
69414
69415
69416
69417
69418
69419
69420
69421
69422
69423
69424
69425
69426
69427
69428
69429
69430
69431
69432
69433
69434
69435
69436
69437
69438
69439
69440
69441
69442
69443
69444
69445
69446
69447
69448
69449
69450
69451
69452
69453
69454
69455
69456
69457
69458
69459
69460
69461
69462
69463
69464
69465
69466
69467
69468
69469
69470
69471
69472
69473
69474
69475
69476
69477
69478
69479
69480
69481
69482
69483
69484
69485
69486
69487
69488
69489
69490
69491
69492
69493
69494
69495
69496
69497
69498
69499
69500
69501
69502
69503
69504
69505
69506
69507
69508
69509
69510
69511
69512
69513
69514
69515
69516
69517
69518
69519
69520
69521
69522
69523
69524
69525
69526
69527
69528
69529
69530
69531
69532
69533
69534
69535
69536
69537
69538
69539
69540
69541
69542
69543
69544
69545
69546
69547
69548
69549
69550
69551
69552
69553
69554
69555
69556
69557
69558
69559
69560
69561
69562
69563
69564
69565
69566
69567
69568
69569
69570
69571
69572
69573
69574
69575
69576
69577
69578
69579
69580
69581
69582
69583
69584
69585
69586
69587
69588
69589
69590
69591
69592
69593
69594
69595
69596
69597
69598
69599
69600
69601
69602
69603
69604
69605
69606
69607
69608
69609
69610
69611
69612
69613
69614
69615
69616
69617
69618
69619
69620
69621
69622
69623
69624
69625
69626
69627
69628
69629
69630
69631
69632
69633
69634
69635
69636
69637
69638
69639
69640
69641
69642
69643
69644
69645
69646
69647
69648
69649
69650
69651
69652
69653
69654
69655
69656
69657
69658
69659
69660
69661
69662
69663
69664
69665
69666
69667
69668
69669
69670
69671
69672
69673
69674
69675
69676
69677
69678
69679
69680
69681
69682
69683
69684
69685
69686
69687
69688
69689
69690
69691
69692
69693
69694
69695
69696
69697
69698
69699
69700
69701
69702
69703
69704
69705
69706
69707
69708
69709
69710
69711
69712
69713
69714
69715
69716
69717
69718
69719
69720
69721
69722
69723
69724
69725
69726
69727
69728
69729
69730
69731
69732
69733
69734
69735
69736
69737
69738
69739
69740
69741
69742
69743
69744
69745
69746
69747
69748
69749
69750
69751
69752
69753
69754
69755
69756
69757
69758
69759
69760
69761
69762
69763
69764
69765
69766
69767
69768
69769
69770
69771
69772
69773
69774
69775
69776
69777
69778
69779
69780
69781
69782
69783
69784
69785
69786
69787
69788
69789
69790
69791
69792
69793
69794
69795
69796
69797
69798
69799
69800
69801
69802
69803
69804
69805
69806
69807
69808
69809
69810
69811
69812
69813
69814
69815
69816
69817
69818
69819
69820
69821
69822
69823
69824
69825
69826
69827
69828
69829
69830
69831
69832
69833
69834
69835
69836
69837
69838
69839
69840
69841
69842
69843
69844
69845
69846
69847
69848
69849
69850
69851
69852
69853
69854
69855
69856
69857
69858
69859
69860
69861
69862
69863
69864
69865
69866
69867
69868
69869
69870
69871
69872
69873
69874
69875
69876
69877
69878
69879
69880
69881
69882
69883
69884
69885
69886
69887
69888
69889
69890
69891
69892
69893
69894
69895
69896
69897
69898
69899
69900
69901
69902
69903
69904
69905
69906
69907
69908
69909
69910
69911
69912
69913
69914
69915
69916
69917
69918
69919
69920
69921
69922
69923
69924
69925
69926
69927
69928
69929
69930
69931
69932
69933
69934
69935
69936
69937
69938
69939
69940
69941
69942
69943
69944
69945
69946
69947
69948
69949
69950
69951
69952
69953
69954
69955
69956
69957
69958
69959
69960
69961
69962
69963
69964
69965
69966
69967
69968
69969
69970
69971
69972
69973
69974
69975
69976
69977
69978
69979
69980
69981
69982
69983
69984
69985
69986
69987
69988
69989
69990
69991
69992
69993
69994
69995
69996
69997
69998
69999
70000
70001
70002
70003
70004
70005
70006
70007
70008
70009
70010
70011
70012
70013
70014
70015
70016
70017
70018
70019
70020
70021
70022
70023
70024
70025
70026
70027
70028
70029
70030
70031
70032
70033
70034
70035
70036
70037
70038
70039
70040
70041
70042
70043
70044
70045
70046
70047
70048
70049
70050
70051
70052
70053
70054
70055
70056
70057
70058
70059
70060
70061
70062
70063
70064
70065
70066
70067
70068
70069
70070
70071
70072
70073
70074
70075
70076
70077
70078
70079
70080
70081
70082
70083
70084
70085
70086
70087
70088
70089
70090
70091
70092
70093
70094
70095
70096
70097
70098
70099
70100
70101
70102
70103
70104
70105
70106
70107
70108
70109
70110
70111
70112
70113
70114
70115
70116
70117
70118
70119
70120
70121
70122
70123
70124
70125
70126
70127
70128
70129
70130
70131
70132
70133
70134
70135
70136
70137
70138
70139
70140
70141
70142
70143
70144
70145
70146
70147
70148
70149
70150
70151
70152
70153
70154
70155
70156
70157
70158
70159
70160
70161
70162
70163
70164
70165
70166
70167
70168
70169
70170
70171
70172
70173
70174
70175
70176
70177
70178
70179
70180
70181
70182
70183
70184
70185
70186
70187
70188
70189
70190
70191
70192
70193
70194
70195
70196
70197
70198
70199
70200
70201
70202
70203
70204
70205
70206
70207
70208
70209
70210
70211
70212
70213
70214
70215
70216
70217
70218
70219
70220
70221
70222
70223
70224
70225
70226
70227
70228
70229
70230
70231
70232
70233
70234
70235
70236
70237
70238
70239
70240
70241
70242
70243
70244
70245
70246
70247
70248
70249
70250
70251
70252
70253
70254
70255
70256
70257
70258
70259
70260
70261
70262
70263
70264
70265
70266
70267
70268
70269
70270
70271
70272
70273
70274
70275
70276
70277
70278
70279
70280
70281
70282
70283
70284
70285
70286
70287
70288
70289
70290
70291
70292
70293
70294
70295
70296
70297
70298
70299
70300
70301
70302
70303
70304
70305
70306
70307
70308
70309
70310
70311
70312
70313
70314
70315
70316
70317
70318
70319
70320
70321
70322
70323
70324
70325
70326
70327
70328
70329
70330
70331
70332
70333
70334
70335
70336
70337
70338
70339
70340
70341
70342
70343
70344
70345
70346
70347
70348
70349
70350
70351
70352
70353
70354
70355
70356
70357
70358
70359
70360
70361
70362
70363
70364
70365
70366
70367
70368
70369
70370
70371
70372
70373
70374
70375
70376
70377
70378
70379
70380
70381
70382
70383
70384
70385
70386
70387
70388
70389
70390
70391
70392
70393
70394
70395
70396
70397
70398
70399
70400
70401
70402
70403
70404
70405
70406
70407
70408
70409
70410
70411
70412
70413
70414
70415
70416
70417
70418
70419
70420
70421
70422
70423
70424
70425
70426
70427
70428
70429
70430
70431
70432
70433
70434
70435
70436
70437
70438
70439
70440
70441
70442
70443
70444
70445
70446
70447
70448
70449
70450
70451
70452
70453
70454
70455
70456
70457
70458
70459
70460
70461
70462
70463
70464
70465
70466
70467
70468
70469
70470
70471
70472
70473
70474
70475
70476
70477
70478
70479
70480
70481
70482
70483
70484
70485
70486
70487
70488
70489
70490
70491
70492
70493
70494
70495
70496
70497
70498
70499
70500
70501
70502
70503
70504
70505
70506
70507
70508
70509
70510
70511
70512
70513
70514
70515
70516
70517
70518
70519
70520
70521
70522
70523
70524
70525
70526
70527
70528
70529
70530
70531
70532
70533
70534
70535
70536
70537
70538
70539
70540
70541
70542
70543
70544
70545
70546
70547
70548
70549
70550
70551
70552
70553
70554
70555
70556
70557
70558
70559
70560
70561
70562
70563
70564
70565
70566
70567
70568
70569
70570
70571
70572
70573
70574
70575
70576
70577
70578
70579
70580
70581
70582
70583
70584
70585
70586
70587
70588
70589
70590
70591
70592
70593
70594
70595
70596
70597
70598
70599
70600
70601
70602
70603
70604
70605
70606
70607
70608
70609
70610
70611
70612
70613
70614
70615
70616
70617
70618
70619
70620
70621
70622
70623
70624
70625
70626
70627
70628
70629
70630
70631
70632
70633
70634
70635
70636
70637
70638
70639
70640
70641
70642
70643
70644
70645
70646
70647
70648
70649
70650
70651
70652
70653
70654
70655
70656
70657
70658
70659
70660
70661
70662
70663
70664
70665
70666
70667
70668
70669
70670
70671
70672
70673
70674
70675
70676
70677
70678
70679
70680
70681
70682
70683
70684
70685
70686
70687
70688
70689
70690
70691
70692
70693
70694
70695
70696
70697
70698
70699
70700
70701
70702
70703
70704
70705
70706
70707
70708
70709
70710
70711
70712
70713
70714
70715
70716
70717
70718
70719
70720
70721
70722
70723
70724
70725
70726
70727
70728
70729
70730
70731
70732
70733
70734
70735
70736
70737
70738
70739
70740
70741
70742
70743
70744
70745
70746
70747
70748
70749
70750
70751
70752
70753
70754
70755
70756
70757
70758
70759
70760
70761
70762
70763
70764
70765
70766
70767
70768
70769
70770
70771
70772
70773
70774
70775
70776
70777
70778
70779
70780
70781
70782
70783
70784
70785
70786
70787
70788
70789
70790
70791
70792
70793
70794
70795
70796
70797
70798
70799
70800
70801
70802
70803
70804
70805
70806
70807
70808
70809
70810
70811
70812
70813
70814
70815
70816
70817
70818
70819
70820
70821
70822
70823
70824
70825
70826
70827
70828
70829
70830
70831
70832
70833
70834
70835
70836
70837
70838
70839
70840
70841
70842
70843
70844
70845
70846
70847
70848
70849
70850
70851
70852
70853
70854
70855
70856
70857
70858
70859
70860
70861
70862
70863
70864
70865
70866
70867
70868
70869
70870
70871
70872
70873
70874
70875
70876
70877
70878
70879
70880
70881
70882
70883
70884
70885
70886
70887
70888
70889
70890
70891
70892
70893
70894
70895
70896
70897
70898
70899
70900
70901
70902
70903
70904
70905
70906
70907
70908
70909
70910
70911
70912
70913
70914
70915
70916
70917
70918
70919
70920
70921
70922
70923
70924
70925
70926
70927
70928
70929
70930
70931
70932
70933
70934
70935
70936
70937
70938
70939
70940
70941
70942
70943
70944
70945
70946
70947
70948
70949
70950
70951
70952
70953
70954
70955
70956
70957
70958
70959
70960
70961
70962
70963
70964
70965
70966
70967
70968
70969
70970
70971
70972
70973
70974
70975
70976
70977
70978
70979
70980
70981
70982
70983
70984
70985
70986
70987
70988
70989
70990
70991
70992
70993
70994
70995
70996
70997
70998
70999
71000
71001
71002
71003
71004
71005
71006
71007
71008
71009
71010
71011
71012
71013
71014
71015
71016
71017
71018
71019
71020
71021
71022
71023
71024
71025
71026
71027
71028
71029
71030
71031
71032
71033
71034
71035
71036
71037
71038
71039
71040
71041
71042
71043
71044
71045
71046
71047
71048
71049
71050
71051
71052
71053
71054
71055
71056
71057
71058
71059
71060
71061
71062
71063
71064
71065
71066
71067
71068
71069
71070
71071
71072
71073
71074
71075
71076
71077
71078
71079
71080
71081
71082
71083
71084
71085
71086
71087
71088
71089
71090
71091
71092
71093
71094
71095
71096
71097
71098
71099
71100
71101
71102
71103
71104
71105
71106
71107
71108
71109
71110
71111
71112
71113
71114
71115
71116
71117
71118
71119
71120
71121
71122
71123
71124
71125
71126
71127
71128
71129
71130
71131
71132
71133
71134
71135
71136
71137
71138
71139
71140
71141
71142
71143
71144
71145
71146
71147
71148
71149
71150
71151
71152
71153
71154
71155
71156
71157
71158
71159
71160
71161
71162
71163
71164
71165
71166
71167
71168
71169
71170
71171
71172
71173
71174
71175
71176
71177
71178
71179
71180
71181
71182
71183
71184
71185
71186
71187
71188
71189
71190
71191
71192
71193
71194
71195
71196
71197
71198
71199
71200
71201
71202
71203
71204
71205
71206
71207
71208
71209
71210
71211
71212
71213
71214
71215
71216
71217
71218
71219
71220
71221
71222
71223
71224
71225
71226
71227
71228
71229
71230
71231
71232
71233
71234
71235
71236
71237
71238
71239
71240
71241
71242
71243
71244
71245
71246
71247
71248
71249
71250
71251
71252
71253
71254
71255
71256
71257
71258
71259
71260
71261
71262
71263
71264
71265
71266
71267
71268
71269
71270
71271
71272
71273
71274
71275
71276
71277
71278
71279
71280
71281
71282
71283
71284
71285
71286
71287
71288
71289
71290
71291
71292
71293
71294
71295
71296
71297
71298
71299
71300
71301
71302
71303
71304
71305
71306
71307
71308
71309
71310
71311
71312
71313
71314
71315
71316
71317
71318
71319
71320
71321
71322
71323
71324
71325
71326
71327
71328
71329
71330
71331
71332
71333
71334
71335
71336
71337
71338
71339
71340
71341
71342
71343
71344
71345
71346
71347
71348
71349
71350
71351
71352
71353
71354
71355
71356
71357
71358
71359
71360
71361
71362
71363
71364
71365
71366
71367
71368
71369
71370
71371
71372
71373
71374
71375
71376
71377
71378
71379
71380
71381
71382
71383
71384
71385
71386
71387
71388
71389
71390
71391
71392
71393
71394
71395
71396
71397
71398
71399
71400
71401
71402
71403
71404
71405
71406
71407
71408
71409
71410
71411
71412
71413
71414
71415
71416
71417
71418
71419
71420
71421
71422
71423
71424
71425
71426
71427
71428
71429
71430
71431
71432
71433
71434
71435
71436
71437
71438
71439
71440
71441
71442
71443
71444
71445
71446
71447
71448
71449
71450
71451
71452
71453
71454
71455
71456
71457
71458
71459
71460
71461
71462
71463
71464
71465
71466
71467
71468
71469
71470
71471
71472
71473
71474
71475
71476
71477
71478
71479
71480
71481
71482
71483
71484
71485
71486
71487
71488
71489
71490
71491
71492
71493
71494
71495
71496
71497
71498
71499
71500
71501
71502
71503
71504
71505
71506
71507
71508
71509
71510
71511
71512
71513
71514
71515
71516
71517
71518
71519
71520
71521
71522
71523
71524
71525
71526
71527
71528
71529
71530
71531
71532
71533
71534
71535
71536
71537
71538
71539
71540
71541
71542
71543
71544
71545
71546
71547
71548
71549
71550
71551
71552
71553
71554
71555
71556
71557
71558
71559
71560
71561
71562
71563
71564
71565
71566
71567
71568
71569
71570
71571
71572
71573
71574
71575
71576
71577
71578
71579
71580
71581
71582
71583
71584
71585
71586
71587
71588
71589
71590
71591
71592
71593
71594
71595
71596
71597
71598
71599
71600
71601
71602
71603
71604
71605
71606
71607
71608
71609
71610
71611
71612
71613
71614
71615
71616
71617
71618
71619
71620
71621
71622
71623
71624
71625
71626
71627
71628
71629
71630
71631
71632
71633
71634
71635
71636
71637
71638
71639
71640
71641
71642
71643
71644
71645
71646
71647
71648
71649
71650
71651
71652
71653
71654
71655
71656
71657
71658
71659
71660
71661
71662
71663
71664
71665
71666
71667
71668
71669
71670
71671
71672
71673
71674
71675
71676
71677
71678
71679
71680
71681
71682
71683
71684
71685
71686
71687
71688
71689
71690
71691
71692
71693
71694
71695
71696
71697
71698
71699
71700
71701
71702
71703
71704
71705
71706
71707
71708
71709
71710
71711
71712
71713
71714
71715
71716
71717
71718
71719
71720
71721
71722
71723
71724
71725
71726
71727
71728
71729
71730
71731
71732
71733
71734
71735
71736
71737
71738
71739
71740
71741
71742
71743
71744
71745
71746
71747
71748
71749
71750
71751
71752
71753
71754
71755
71756
71757
71758
71759
71760
71761
71762
71763
71764
71765
71766
71767
71768
71769
71770
71771
71772
71773
71774
71775
71776
71777
71778
71779
71780
71781
71782
71783
71784
71785
71786
71787
71788
71789
71790
71791
71792
71793
71794
71795
71796
71797
71798
71799
71800
71801
71802
71803
71804
71805
71806
71807
71808
71809
71810
71811
71812
71813
71814
71815
71816
71817
71818
71819
71820
71821
71822
71823
71824
71825
71826
71827
71828
71829
71830
71831
71832
71833
71834
71835
71836
71837
71838
71839
71840
71841
71842
71843
71844
71845
71846
71847
71848
71849
71850
71851
71852
71853
71854
71855
71856
71857
71858
71859
71860
71861
71862
71863
71864
71865
71866
71867
71868
71869
71870
71871
71872
71873
71874
71875
71876
71877
71878
71879
71880
71881
71882
71883
71884
71885
71886
71887
71888
71889
71890
71891
71892
71893
71894
71895
71896
71897
71898
71899
71900
71901
71902
71903
71904
71905
71906
71907
71908
71909
71910
71911
71912
71913
71914
71915
71916
71917
71918
71919
71920
71921
71922
71923
71924
71925
71926
71927
71928
71929
71930
71931
71932
71933
71934
71935
71936
71937
71938
71939
71940
71941
71942
71943
71944
71945
71946
71947
71948
71949
71950
71951
71952
71953
71954
71955
71956
71957
71958
71959
71960
71961
71962
71963
71964
71965
71966
71967
71968
71969
71970
71971
71972
71973
71974
71975
71976
71977
71978
71979
71980
71981
71982
71983
71984
71985
71986
71987
71988
71989
71990
71991
71992
71993
71994
71995
71996
71997
71998
71999
72000
72001
72002
72003
72004
72005
72006
72007
72008
72009
72010
72011
72012
72013
72014
72015
72016
72017
72018
72019
72020
72021
72022
72023
72024
72025
72026
72027
72028
72029
72030
72031
72032
72033
72034
72035
72036
72037
72038
72039
72040
72041
72042
72043
72044
72045
72046
72047
72048
72049
72050
72051
72052
72053
72054
72055
72056
72057
72058
72059
72060
72061
72062
72063
72064
72065
72066
72067
72068
72069
72070
72071
72072
72073
72074
72075
72076
72077
72078
72079
72080
72081
72082
72083
72084
72085
72086
72087
72088
72089
72090
72091
72092
72093
72094
72095
72096
72097
72098
72099
72100
72101
72102
72103
72104
72105
72106
72107
72108
72109
72110
72111
72112
72113
72114
72115
72116
72117
72118
72119
72120
72121
72122
72123
72124
72125
72126
72127
72128
72129
72130
72131
72132
72133
72134
72135
72136
72137
72138
72139
72140
72141
72142
72143
72144
72145
72146
72147
72148
72149
72150
72151
72152
72153
72154
72155
72156
72157
72158
72159
72160
72161
72162
72163
72164
72165
72166
72167
72168
72169
72170
72171
72172
72173
72174
72175
72176
72177
72178
72179
72180
72181
72182
72183
72184
72185
72186
72187
72188
72189
72190
72191
72192
72193
72194
72195
72196
72197
72198
72199
72200
72201
72202
72203
72204
72205
72206
72207
72208
72209
72210
72211
72212
72213
72214
72215
72216
72217
72218
72219
72220
72221
72222
72223
72224
72225
72226
72227
72228
72229
72230
72231
72232
72233
72234
72235
72236
72237
72238
72239
72240
72241
72242
72243
72244
72245
72246
72247
72248
72249
72250
72251
72252
72253
72254
72255
72256
72257
72258
72259
72260
72261
72262
72263
72264
72265
72266
72267
72268
72269
72270
72271
72272
72273
72274
72275
72276
72277
72278
72279
72280
72281
72282
72283
72284
72285
72286
72287
72288
72289
72290
72291
72292
72293
72294
72295
72296
72297
72298
72299
72300
72301
72302
72303
72304
72305
72306
72307
72308
72309
72310
72311
72312
72313
72314
72315
72316
72317
72318
72319
72320
72321
72322
72323
72324
72325
72326
72327
72328
72329
72330
72331
72332
72333
72334
72335
72336
72337
72338
72339
72340
72341
72342
72343
72344
72345
72346
72347
72348
72349
72350
72351
72352
72353
72354
72355
72356
72357
72358
72359
72360
72361
72362
72363
72364
72365
72366
72367
72368
72369
72370
72371
72372
72373
72374
72375
72376
72377
72378
72379
72380
72381
72382
72383
72384
72385
72386
72387
72388
72389
72390
72391
72392
72393
72394
72395
72396
72397
72398
72399
72400
72401
72402
72403
72404
72405
72406
72407
72408
72409
72410
72411
72412
72413
72414
72415
72416
72417
72418
72419
72420
72421
72422
72423
72424
72425
72426
72427
72428
72429
72430
72431
72432
72433
72434
72435
72436
72437
72438
72439
72440
72441
72442
72443
72444
72445
72446
72447
72448
72449
72450
72451
72452
72453
72454
72455
72456
72457
72458
72459
72460
72461
72462
72463
72464
72465
72466
72467
72468
72469
72470
72471
72472
72473
72474
72475
72476
72477
72478
72479
72480
72481
72482
72483
72484
72485
72486
72487
72488
72489
72490
72491
72492
72493
72494
72495
72496
72497
72498
72499
72500
72501
72502
72503
72504
72505
72506
72507
72508
72509
72510
72511
72512
72513
72514
72515
72516
72517
72518
72519
72520
72521
72522
72523
72524
72525
72526
72527
72528
72529
72530
72531
72532
72533
72534
72535
72536
72537
72538
72539
72540
72541
72542
72543
72544
72545
72546
72547
72548
72549
72550
72551
72552
72553
72554
72555
72556
72557
72558
72559
72560
72561
72562
72563
72564
72565
72566
72567
72568
72569
72570
72571
72572
72573
72574
72575
72576
72577
72578
72579
72580
72581
72582
72583
72584
72585
72586
72587
72588
72589
72590
72591
72592
72593
72594
72595
72596
72597
72598
72599
72600
72601
72602
72603
72604
72605
72606
72607
72608
72609
72610
72611
72612
72613
72614
72615
72616
72617
72618
72619
72620
72621
72622
72623
72624
72625
72626
72627
72628
72629
72630
72631
72632
72633
72634
72635
72636
72637
72638
72639
72640
72641
72642
72643
72644
72645
72646
72647
72648
72649
72650
72651
72652
72653
72654
72655
72656
72657
72658
72659
72660
72661
72662
72663
72664
72665
72666
72667
72668
72669
72670
72671
72672
72673
72674
72675
72676
72677
72678
72679
72680
72681
72682
72683
72684
72685
72686
72687
72688
72689
72690
72691
72692
72693
72694
72695
72696
72697
72698
72699
72700
72701
72702
72703
72704
72705
72706
72707
72708
72709
72710
72711
72712
72713
72714
72715
72716
72717
72718
72719
72720
72721
72722
72723
72724
72725
72726
72727
72728
72729
72730
72731
72732
72733
72734
72735
72736
72737
72738
72739
72740
72741
72742
72743
72744
72745
72746
72747
72748
72749
72750
72751
72752
72753
72754
72755
72756
72757
72758
72759
72760
72761
72762
72763
72764
72765
72766
72767
72768
72769
72770
72771
72772
72773
72774
72775
72776
72777
72778
72779
72780
72781
72782
72783
72784
72785
72786
72787
72788
72789
72790
72791
72792
72793
72794
72795
72796
72797
72798
72799
72800
72801
72802
72803
72804
72805
72806
72807
72808
72809
72810
72811
72812
72813
72814
72815
72816
72817
72818
72819
72820
72821
72822
72823
72824
72825
72826
72827
72828
72829
72830
72831
72832
72833
72834
72835
72836
72837
72838
72839
72840
72841
72842
72843
72844
72845
72846
72847
72848
72849
72850
72851
72852
72853
72854
72855
72856
72857
72858
72859
72860
72861
72862
72863
72864
72865
72866
72867
72868
72869
72870
72871
72872
72873
72874
72875
72876
72877
72878
72879
72880
72881
72882
72883
72884
72885
72886
72887
72888
72889
72890
72891
72892
72893
72894
72895
72896
72897
72898
72899
72900
72901
72902
72903
72904
72905
72906
72907
72908
72909
72910
72911
72912
72913
72914
72915
72916
72917
72918
72919
72920
72921
72922
72923
72924
72925
72926
72927
72928
72929
72930
72931
72932
72933
72934
72935
72936
72937
72938
72939
72940
72941
72942
72943
72944
72945
72946
72947
72948
72949
72950
72951
72952
72953
72954
72955
72956
72957
72958
72959
72960
72961
72962
72963
72964
72965
72966
72967
72968
72969
72970
72971
72972
72973
72974
72975
72976
72977
72978
72979
72980
72981
72982
72983
72984
72985
72986
72987
72988
72989
72990
72991
72992
72993
72994
72995
72996
72997
72998
72999
73000
73001
73002
73003
73004
73005
73006
73007
73008
73009
73010
73011
73012
73013
73014
73015
73016
73017
73018
73019
73020
73021
73022
73023
73024
73025
73026
73027
73028
73029
73030
73031
73032
73033
73034
73035
73036
73037
73038
73039
73040
73041
73042
73043
73044
73045
73046
73047
73048
73049
73050
73051
73052
73053
73054
73055
73056
73057
73058
73059
73060
73061
73062
73063
73064
73065
73066
73067
73068
73069
73070
73071
73072
73073
73074
73075
73076
73077
73078
73079
73080
73081
73082
73083
73084
73085
73086
73087
73088
73089
73090
73091
73092
73093
73094
73095
73096
73097
73098
73099
73100
73101
73102
73103
73104
73105
73106
73107
73108
73109
73110
73111
73112
73113
73114
73115
73116
73117
73118
73119
73120
73121
73122
73123
73124
73125
73126
73127
73128
73129
73130
73131
73132
73133
73134
73135
73136
73137
73138
73139
73140
73141
73142
73143
73144
73145
73146
73147
73148
73149
73150
73151
73152
73153
73154
73155
73156
73157
73158
73159
73160
73161
73162
73163
73164
73165
73166
73167
73168
73169
73170
73171
73172
73173
73174
73175
73176
73177
73178
73179
73180
73181
73182
73183
73184
73185
73186
73187
73188
73189
73190
73191
73192
73193
73194
73195
73196
73197
73198
73199
73200
73201
73202
73203
73204
73205
73206
73207
73208
73209
73210
73211
73212
73213
73214
73215
73216
73217
73218
73219
73220
73221
73222
73223
73224
73225
73226
73227
73228
73229
73230
73231
73232
73233
73234
73235
73236
73237
73238
73239
73240
73241
73242
73243
73244
73245
73246
73247
73248
73249
73250
73251
73252
73253
73254
73255
73256
73257
73258
73259
73260
73261
73262
73263
73264
73265
73266
73267
73268
73269
73270
73271
73272
73273
73274
73275
73276
73277
73278
73279
73280
73281
73282
73283
73284
73285
73286
73287
73288
73289
73290
73291
73292
73293
73294
73295
73296
73297
73298
73299
73300
73301
73302
73303
73304
73305
73306
73307
73308
73309
73310
73311
73312
73313
73314
73315
73316
73317
73318
73319
73320
73321
73322
73323
73324
73325
73326
73327
73328
73329
73330
73331
73332
73333
73334
73335
73336
73337
73338
73339
73340
73341
73342
73343
73344
73345
73346
73347
73348
73349
73350
73351
73352
73353
73354
73355
73356
73357
73358
73359
73360
73361
73362
73363
73364
73365
73366
73367
73368
73369
73370
73371
73372
73373
73374
73375
73376
73377
73378
73379
73380
73381
73382
73383
73384
73385
73386
73387
73388
73389
73390
73391
73392
73393
73394
73395
73396
73397
73398
73399
73400
73401
73402
73403
73404
73405
73406
73407
73408
73409
73410
73411
73412
73413
73414
73415
73416
73417
73418
73419
73420
73421
73422
73423
73424
73425
73426
73427
73428
73429
73430
73431
73432
73433
73434
73435
73436
73437
73438
73439
73440
73441
73442
73443
73444
73445
73446
73447
73448
73449
73450
73451
73452
73453
73454
73455
73456
73457
73458
73459
73460
73461
73462
73463
73464
73465
73466
73467
73468
73469
73470
73471
73472
73473
73474
73475
73476
73477
73478
73479
73480
73481
73482
73483
73484
73485
73486
73487
73488
73489
73490
73491
73492
73493
73494
73495
73496
73497
73498
73499
73500
73501
73502
73503
73504
73505
73506
73507
73508
73509
73510
73511
73512
73513
73514
73515
73516
73517
73518
73519
73520
73521
73522
73523
73524
73525
73526
73527
73528
73529
73530
73531
73532
73533
73534
73535
73536
73537
73538
73539
73540
73541
73542
73543
73544
73545
73546
73547
73548
73549
73550
73551
73552
73553
73554
73555
73556
73557
73558
73559
73560
73561
73562
73563
73564
73565
73566
73567
73568
73569
73570
73571
73572
73573
73574
73575
73576
73577
73578
73579
73580
73581
73582
73583
73584
73585
73586
73587
73588
73589
73590
73591
73592
73593
73594
73595
73596
73597
73598
73599
73600
73601
73602
73603
73604
73605
73606
73607
73608
73609
73610
73611
73612
73613
73614
73615
73616
73617
73618
73619
73620
73621
73622
73623
73624
73625
73626
73627
73628
73629
73630
73631
73632
73633
73634
73635
73636
73637
73638
73639
73640
73641
73642
73643
73644
73645
73646
73647
73648
73649
73650
73651
73652
73653
73654
73655
73656
73657
73658
73659
73660
73661
73662
73663
73664
73665
73666
73667
73668
73669
73670
73671
73672
73673
73674
73675
73676
73677
73678
73679
73680
73681
73682
73683
73684
73685
73686
73687
73688
73689
73690
73691
73692
73693
73694
73695
73696
73697
73698
73699
73700
73701
73702
73703
73704
73705
73706
73707
73708
73709
73710
73711
73712
73713
73714
73715
73716
73717
73718
73719
73720
73721
73722
73723
73724
73725
73726
73727
73728
73729
73730
73731
73732
73733
73734
73735
73736
73737
73738
73739
73740
73741
73742
73743
73744
73745
73746
73747
73748
73749
73750
73751
73752
73753
73754
73755
73756
73757
73758
73759
73760
73761
73762
73763
73764
73765
73766
73767
73768
73769
73770
73771
73772
73773
73774
73775
73776
73777
73778
73779
73780
73781
73782
73783
73784
73785
73786
73787
73788
73789
73790
73791
73792
73793
73794
73795
73796
73797
73798
73799
73800
73801
73802
73803
73804
73805
73806
73807
73808
73809
73810
73811
73812
73813
73814
73815
73816
73817
73818
73819
73820
73821
73822
73823
73824
73825
73826
73827
73828
73829
73830
73831
73832
73833
73834
73835
73836
73837
73838
73839
73840
73841
73842
73843
73844
73845
73846
73847
73848
73849
73850
73851
73852
73853
73854
73855
73856
73857
73858
73859
73860
73861
73862
73863
73864
73865
73866
73867
73868
73869
73870
73871
73872
73873
73874
73875
73876
73877
73878
73879
73880
73881
73882
73883
73884
73885
73886
73887
73888
73889
73890
73891
73892
73893
73894
73895
73896
73897
73898
73899
73900
73901
73902
73903
73904
73905
73906
73907
73908
73909
73910
73911
73912
73913
73914
73915
73916
73917
73918
73919
73920
73921
73922
73923
73924
73925
73926
73927
73928
73929
73930
73931
73932
73933
73934
73935
73936
73937
73938
73939
73940
73941
73942
73943
73944
73945
73946
73947
73948
73949
73950
73951
73952
73953
73954
73955
73956
73957
73958
73959
73960
73961
73962
73963
73964
73965
73966
73967
73968
73969
73970
73971
73972
73973
73974
73975
73976
73977
73978
73979
73980
73981
73982
73983
73984
73985
73986
73987
73988
73989
73990
73991
73992
73993
73994
73995
73996
73997
73998
73999
74000
74001
74002
74003
74004
74005
74006
74007
74008
74009
74010
74011
74012
74013
74014
74015
74016
74017
74018
74019
74020
74021
74022
74023
74024
74025
74026
74027
74028
74029
74030
74031
74032
74033
74034
74035
74036
74037
74038
74039
74040
74041
74042
74043
74044
74045
74046
74047
74048
74049
74050
74051
74052
74053
74054
74055
74056
74057
74058
74059
74060
74061
74062
74063
74064
74065
74066
74067
74068
74069
74070
74071
74072
74073
74074
74075
74076
74077
74078
74079
74080
74081
74082
74083
74084
74085
74086
74087
74088
74089
74090
74091
74092
74093
74094
74095
74096
74097
74098
74099
74100
74101
74102
74103
74104
74105
74106
74107
74108
74109
74110
74111
74112
74113
74114
74115
74116
74117
74118
74119
74120
74121
74122
74123
74124
74125
74126
74127
74128
74129
74130
74131
74132
74133
74134
74135
74136
74137
74138
74139
74140
74141
74142
74143
74144
74145
74146
74147
74148
74149
74150
74151
74152
74153
74154
74155
74156
74157
74158
74159
74160
74161
74162
74163
74164
74165
74166
74167
74168
74169
74170
74171
74172
74173
74174
74175
74176
74177
74178
74179
74180
74181
74182
74183
74184
74185
74186
74187
74188
74189
74190
74191
74192
74193
74194
74195
74196
74197
74198
74199
74200
74201
74202
74203
74204
74205
74206
74207
74208
74209
74210
74211
74212
74213
74214
74215
74216
74217
74218
74219
74220
74221
74222
74223
74224
74225
74226
74227
74228
74229
74230
74231
74232
74233
74234
74235
74236
74237
74238
74239
74240
74241
74242
74243
74244
74245
74246
74247
74248
74249
74250
74251
74252
74253
74254
74255
74256
74257
74258
74259
74260
74261
74262
74263
74264
74265
74266
74267
74268
74269
74270
74271
74272
74273
74274
74275
74276
74277
74278
74279
74280
74281
74282
74283
74284
74285
74286
74287
74288
74289
74290
74291
74292
74293
74294
74295
74296
74297
74298
74299
74300
74301
74302
74303
74304
74305
74306
74307
74308
74309
74310
74311
74312
74313
74314
74315
74316
74317
74318
74319
74320
74321
74322
74323
74324
74325
74326
74327
74328
74329
74330
74331
74332
74333
74334
74335
74336
74337
74338
74339
74340
74341
74342
74343
74344
74345
74346
74347
74348
74349
74350
74351
74352
74353
74354
74355
74356
74357
74358
74359
74360
74361
74362
74363
74364
74365
74366
74367
74368
74369
74370
74371
74372
74373
74374
74375
74376
74377
74378
74379
74380
74381
74382
74383
74384
74385
74386
74387
74388
74389
74390
74391
74392
74393
74394
74395
74396
74397
74398
74399
74400
74401
74402
74403
74404
74405
74406
74407
74408
74409
74410
74411
74412
74413
74414
74415
74416
74417
74418
74419
74420
74421
74422
74423
74424
74425
74426
74427
74428
74429
74430
74431
74432
74433
74434
74435
74436
74437
74438
74439
74440
74441
74442
74443
74444
74445
74446
74447
74448
74449
74450
74451
74452
74453
74454
74455
74456
74457
74458
74459
74460
74461
74462
74463
74464
74465
74466
74467
74468
74469
74470
74471
74472
74473
74474
74475
74476
74477
74478
74479
74480
74481
74482
74483
74484
74485
74486
74487
74488
74489
74490
74491
74492
74493
74494
74495
74496
74497
74498
74499
74500
74501
74502
74503
74504
74505
74506
74507
74508
74509
74510
74511
74512
74513
74514
74515
74516
74517
74518
74519
74520
74521
74522
74523
74524
74525
74526
74527
74528
74529
74530
74531
74532
74533
74534
74535
74536
74537
74538
74539
74540
74541
74542
74543
74544
74545
74546
74547
74548
74549
74550
74551
74552
74553
74554
74555
74556
74557
74558
74559
74560
74561
74562
74563
74564
74565
74566
74567
74568
74569
74570
74571
74572
74573
74574
74575
74576
74577
74578
74579
74580
74581
74582
74583
74584
74585
74586
74587
74588
74589
74590
74591
74592
74593
74594
74595
74596
74597
74598
74599
74600
74601
74602
74603
74604
74605
74606
74607
74608
74609
74610
74611
74612
74613
74614
74615
74616
74617
74618
74619
74620
74621
74622
74623
74624
74625
74626
74627
74628
74629
74630
74631
74632
74633
74634
74635
74636
74637
74638
74639
74640
74641
74642
74643
74644
74645
74646
74647
74648
74649
74650
74651
74652
74653
74654
74655
74656
74657
74658
74659
74660
74661
74662
74663
74664
74665
74666
74667
74668
74669
74670
74671
74672
74673
74674
74675
74676
74677
74678
74679
74680
74681
74682
74683
74684
74685
74686
74687
74688
74689
74690
74691
74692
74693
74694
74695
74696
74697
74698
74699
74700
74701
74702
74703
74704
74705
74706
74707
74708
74709
74710
74711
74712
74713
74714
74715
74716
74717
74718
74719
74720
74721
74722
74723
74724
74725
74726
74727
74728
74729
74730
74731
74732
74733
74734
74735
74736
74737
74738
74739
74740
74741
74742
74743
74744
74745
74746
74747
74748
74749
74750
74751
74752
74753
74754
74755
74756
74757
74758
74759
74760
74761
74762
74763
74764
74765
74766
74767
74768
74769
74770
74771
74772
74773
74774
74775
74776
74777
74778
74779
74780
74781
74782
74783
74784
74785
74786
74787
74788
74789
74790
74791
74792
74793
74794
74795
74796
74797
74798
74799
74800
74801
74802
74803
74804
74805
74806
74807
74808
74809
74810
74811
74812
74813
74814
74815
74816
74817
74818
74819
74820
74821
74822
74823
74824
74825
74826
74827
74828
74829
74830
74831
74832
74833
74834
74835
74836
74837
74838
74839
74840
74841
74842
74843
74844
74845
74846
74847
74848
74849
74850
74851
74852
74853
74854
74855
74856
74857
74858
74859
74860
74861
74862
74863
74864
74865
74866
74867
74868
74869
74870
74871
74872
74873
74874
74875
74876
74877
74878
74879
74880
74881
74882
74883
74884
74885
74886
74887
74888
74889
74890
74891
74892
74893
74894
74895
74896
74897
74898
74899
74900
74901
74902
74903
74904
74905
74906
74907
74908
74909
74910
74911
74912
74913
74914
74915
74916
74917
74918
74919
74920
74921
74922
74923
74924
74925
74926
74927
74928
74929
74930
74931
74932
74933
74934
74935
74936
74937
74938
74939
74940
74941
74942
74943
74944
74945
74946
74947
74948
74949
74950
74951
74952
74953
74954
74955
74956
74957
74958
74959
74960
74961
74962
74963
74964
74965
74966
74967
74968
74969
74970
74971
74972
74973
74974
74975
74976
74977
74978
74979
74980
74981
74982
74983
74984
74985
74986
74987
74988
74989
74990
74991
74992
74993
74994
74995
74996
74997
74998
74999
75000
75001
75002
75003
75004
75005
75006
75007
75008
75009
75010
75011
75012
75013
75014
75015
75016
75017
75018
75019
75020
75021
75022
75023
75024
75025
75026
75027
75028
75029
75030
75031
75032
75033
75034
75035
75036
75037
75038
75039
75040
75041
75042
75043
75044
75045
75046
75047
75048
75049
75050
75051
75052
75053
75054
75055
75056
75057
75058
75059
75060
75061
75062
75063
75064
75065
75066
75067
75068
75069
75070
75071
75072
75073
75074
75075
75076
75077
75078
75079
75080
75081
75082
75083
75084
75085
75086
75087
75088
75089
75090
75091
75092
75093
75094
75095
75096
75097
75098
75099
75100
75101
75102
75103
75104
75105
75106
75107
75108
75109
75110
75111
75112
75113
75114
75115
75116
75117
75118
75119
75120
75121
75122
75123
75124
75125
75126
75127
75128
75129
75130
75131
75132
75133
75134
75135
75136
75137
75138
75139
75140
75141
75142
75143
75144
75145
75146
75147
75148
75149
75150
75151
75152
75153
75154
75155
75156
75157
75158
75159
75160
75161
75162
75163
75164
75165
75166
75167
75168
75169
75170
75171
75172
75173
75174
75175
75176
75177
75178
75179
75180
75181
75182
75183
75184
75185
75186
75187
75188
75189
75190
75191
75192
75193
75194
75195
75196
75197
75198
75199
75200
75201
75202
75203
75204
75205
75206
75207
75208
75209
75210
75211
75212
75213
75214
75215
75216
75217
75218
75219
75220
75221
75222
75223
75224
75225
75226
75227
75228
75229
75230
75231
75232
75233
75234
75235
75236
75237
75238
75239
75240
75241
75242
75243
75244
75245
75246
75247
75248
75249
75250
75251
75252
75253
75254
75255
75256
75257
75258
75259
75260
75261
75262
75263
75264
75265
75266
75267
75268
75269
75270
75271
75272
75273
75274
75275
75276
75277
75278
75279
75280
75281
75282
75283
75284
75285
75286
75287
75288
75289
75290
75291
75292
75293
75294
75295
75296
75297
75298
75299
75300
75301
75302
75303
75304
75305
75306
75307
75308
75309
75310
75311
75312
75313
75314
75315
75316
75317
75318
75319
75320
75321
75322
75323
75324
75325
75326
75327
75328
75329
75330
75331
75332
75333
75334
75335
75336
75337
75338
75339
75340
75341
75342
75343
75344
75345
75346
75347
75348
75349
75350
75351
75352
75353
75354
75355
75356
75357
75358
75359
75360
75361
75362
75363
75364
75365
75366
75367
75368
75369
75370
75371
75372
75373
75374
75375
75376
75377
75378
75379
75380
75381
75382
75383
75384
75385
75386
75387
75388
75389
75390
75391
75392
75393
75394
75395
75396
75397
75398
75399
75400
75401
75402
75403
75404
75405
75406
75407
75408
75409
75410
75411
75412
75413
75414
75415
75416
75417
75418
75419
75420
75421
75422
75423
75424
75425
75426
75427
75428
75429
75430
75431
75432
75433
75434
75435
75436
75437
75438
75439
75440
75441
75442
75443
75444
75445
75446
75447
75448
75449
75450
75451
75452
75453
75454
75455
75456
75457
75458
75459
75460
75461
75462
75463
75464
75465
75466
75467
75468
75469
75470
75471
75472
75473
75474
75475
75476
75477
75478
75479
75480
75481
75482
75483
75484
75485
75486
75487
75488
75489
75490
75491
75492
75493
75494
75495
75496
75497
75498
75499
75500
75501
75502
75503
75504
75505
75506
75507
75508
75509
75510
75511
75512
75513
75514
75515
75516
75517
75518
75519
75520
75521
75522
75523
75524
75525
75526
75527
75528
75529
75530
75531
75532
75533
75534
75535
75536
75537
75538
75539
75540
75541
75542
75543
75544
75545
75546
75547
75548
75549
75550
75551
75552
75553
75554
75555
75556
75557
75558
75559
75560
75561
75562
75563
75564
75565
75566
75567
75568
75569
75570
75571
75572
75573
75574
75575
75576
75577
75578
75579
75580
75581
75582
75583
75584
75585
75586
75587
75588
75589
75590
75591
75592
75593
75594
75595
75596
75597
75598
75599
75600
75601
75602
75603
75604
75605
75606
75607
75608
75609
75610
75611
75612
75613
75614
75615
75616
75617
75618
75619
75620
75621
75622
75623
75624
75625
75626
75627
75628
75629
75630
75631
75632
75633
75634
75635
75636
75637
75638
75639
75640
75641
75642
75643
75644
75645
75646
75647
75648
75649
75650
75651
75652
75653
75654
75655
75656
75657
75658
75659
75660
75661
75662
75663
75664
75665
75666
75667
75668
75669
75670
75671
75672
75673
75674
75675
75676
75677
75678
75679
75680
75681
75682
75683
75684
75685
75686
75687
75688
75689
75690
75691
75692
75693
75694
75695
75696
75697
75698
75699
75700
75701
75702
75703
75704
75705
75706
75707
75708
75709
75710
75711
75712
75713
75714
75715
75716
75717
75718
75719
75720
75721
75722
75723
75724
75725
75726
75727
75728
75729
75730
75731
75732
75733
75734
75735
75736
75737
75738
75739
75740
75741
75742
75743
75744
75745
75746
75747
75748
75749
75750
75751
75752
75753
75754
75755
75756
75757
75758
75759
75760
75761
75762
75763
75764
75765
75766
75767
75768
75769
75770
75771
75772
75773
75774
75775
75776
75777
75778
75779
75780
75781
75782
75783
75784
75785
75786
75787
75788
75789
75790
75791
75792
75793
75794
75795
75796
75797
75798
75799
75800
75801
75802
75803
75804
75805
75806
75807
75808
75809
75810
75811
75812
75813
75814
75815
75816
75817
75818
75819
75820
75821
75822
75823
75824
75825
75826
75827
75828
75829
75830
75831
75832
75833
75834
75835
75836
75837
75838
75839
75840
75841
75842
75843
75844
75845
75846
75847
75848
75849
75850
75851
75852
75853
75854
75855
75856
75857
75858
75859
75860
75861
75862
75863
75864
75865
75866
75867
75868
75869
75870
75871
75872
75873
75874
75875
75876
75877
75878
75879
75880
75881
75882
75883
75884
75885
75886
75887
75888
75889
75890
75891
75892
75893
75894
75895
75896
75897
75898
75899
75900
75901
75902
75903
75904
75905
75906
75907
75908
75909
75910
75911
75912
75913
75914
75915
75916
75917
75918
75919
75920
75921
75922
75923
75924
75925
75926
75927
75928
75929
75930
75931
75932
75933
75934
75935
75936
75937
75938
75939
75940
75941
75942
75943
75944
75945
75946
75947
75948
75949
75950
75951
75952
75953
75954
75955
75956
75957
75958
75959
75960
75961
75962
75963
75964
75965
75966
75967
75968
75969
75970
75971
75972
75973
75974
75975
75976
75977
75978
75979
75980
75981
75982
75983
75984
75985
75986
75987
75988
75989
75990
75991
75992
75993
75994
75995
75996
75997
75998
75999
76000
76001
76002
76003
76004
76005
76006
76007
76008
76009
76010
76011
76012
76013
76014
76015
76016
76017
76018
76019
76020
76021
76022
76023
76024
76025
76026
76027
76028
76029
76030
76031
76032
76033
76034
76035
76036
76037
76038
76039
76040
76041
76042
76043
76044
76045
76046
76047
76048
76049
76050
76051
76052
76053
76054
76055
76056
76057
76058
76059
76060
76061
76062
76063
76064
76065
76066
76067
76068
76069
76070
76071
76072
76073
76074
76075
76076
76077
76078
76079
76080
76081
76082
76083
76084
76085
76086
76087
76088
76089
76090
76091
76092
76093
76094
76095
76096
76097
76098
76099
76100
76101
76102
76103
76104
76105
76106
76107
76108
76109
76110
76111
76112
76113
76114
76115
76116
76117
76118
76119
76120
76121
76122
76123
76124
76125
76126
76127
76128
76129
76130
76131
76132
76133
76134
76135
76136
76137
76138
76139
76140
76141
76142
76143
76144
76145
76146
76147
76148
76149
76150
76151
76152
76153
76154
76155
76156
76157
76158
76159
76160
76161
76162
76163
76164
76165
76166
76167
76168
76169
76170
76171
76172
76173
76174
76175
76176
76177
76178
76179
76180
76181
76182
76183
76184
76185
76186
76187
76188
76189
76190
76191
76192
76193
76194
76195
76196
76197
76198
76199
76200
76201
76202
76203
76204
76205
76206
76207
76208
76209
76210
76211
76212
76213
76214
76215
76216
76217
76218
76219
76220
76221
76222
76223
76224
76225
76226
76227
76228
76229
76230
76231
76232
76233
76234
76235
76236
76237
76238
76239
76240
76241
76242
76243
76244
76245
76246
76247
76248
76249
76250
76251
76252
76253
76254
76255
76256
76257
76258
76259
76260
76261
76262
76263
76264
76265
76266
76267
76268
76269
76270
76271
76272
76273
76274
76275
76276
76277
76278
76279
76280
76281
76282
76283
76284
76285
76286
76287
76288
76289
76290
76291
76292
76293
76294
76295
76296
76297
76298
76299
76300
76301
76302
76303
76304
76305
76306
76307
76308
76309
76310
76311
76312
76313
76314
76315
76316
76317
76318
76319
76320
76321
76322
76323
76324
76325
76326
76327
76328
76329
76330
76331
76332
76333
76334
76335
76336
76337
76338
76339
76340
76341
76342
76343
76344
76345
76346
76347
76348
76349
76350
76351
76352
76353
76354
76355
76356
76357
76358
76359
76360
76361
76362
76363
76364
76365
76366
76367
76368
76369
76370
76371
76372
76373
76374
76375
76376
76377
76378
76379
76380
76381
76382
76383
76384
76385
76386
76387
76388
76389
76390
76391
76392
76393
76394
76395
76396
76397
76398
76399
76400
76401
76402
76403
76404
76405
76406
76407
76408
76409
76410
76411
76412
76413
76414
76415
76416
76417
76418
76419
76420
76421
76422
76423
76424
76425
76426
76427
76428
76429
76430
76431
76432
76433
76434
76435
76436
76437
76438
76439
76440
76441
76442
76443
76444
76445
76446
76447
76448
76449
76450
76451
76452
76453
76454
76455
76456
76457
76458
76459
76460
76461
76462
76463
76464
76465
76466
76467
76468
76469
76470
76471
76472
76473
76474
76475
76476
76477
76478
76479
76480
76481
76482
76483
76484
76485
76486
76487
76488
76489
76490
76491
76492
76493
76494
76495
76496
76497
76498
76499
76500
76501
76502
76503
76504
76505
76506
76507
76508
76509
76510
76511
76512
76513
76514
76515
76516
76517
76518
76519
76520
76521
76522
76523
76524
76525
76526
76527
76528
76529
76530
76531
76532
76533
76534
76535
76536
76537
76538
76539
76540
76541
76542
76543
76544
76545
76546
76547
76548
76549
76550
76551
76552
76553
76554
76555
76556
76557
76558
76559
76560
76561
76562
76563
76564
76565
76566
76567
76568
76569
76570
76571
76572
76573
76574
76575
76576
76577
76578
76579
76580
76581
76582
76583
76584
76585
76586
76587
76588
76589
76590
76591
76592
76593
76594
76595
76596
76597
76598
76599
76600
76601
76602
76603
76604
76605
76606
76607
76608
76609
76610
76611
76612
76613
76614
76615
76616
76617
76618
76619
76620
76621
76622
76623
76624
76625
76626
76627
76628
76629
76630
76631
76632
76633
76634
76635
76636
76637
76638
76639
76640
76641
76642
76643
76644
76645
76646
76647
76648
76649
76650
76651
76652
76653
76654
76655
76656
76657
76658
76659
76660
76661
76662
76663
76664
76665
76666
76667
76668
76669
76670
76671
76672
76673
76674
76675
76676
76677
76678
76679
76680
76681
76682
76683
76684
76685
76686
76687
76688
76689
76690
76691
76692
76693
76694
76695
76696
76697
76698
76699
76700
76701
76702
76703
76704
76705
76706
76707
76708
76709
76710
76711
76712
76713
76714
76715
76716
76717
76718
76719
76720
76721
76722
76723
76724
76725
76726
76727
76728
76729
76730
76731
76732
76733
76734
76735
76736
76737
76738
76739
76740
76741
76742
76743
76744
76745
76746
76747
76748
76749
76750
76751
76752
76753
76754
76755
76756
76757
76758
76759
76760
76761
76762
76763
76764
76765
76766
76767
76768
76769
76770
76771
76772
76773
76774
76775
76776
76777
76778
76779
76780
76781
76782
76783
76784
76785
76786
76787
76788
76789
76790
76791
76792
76793
76794
76795
76796
76797
76798
76799
76800
76801
76802
76803
76804
76805
76806
76807
76808
76809
76810
76811
76812
76813
76814
76815
76816
76817
76818
76819
76820
76821
76822
76823
76824
76825
76826
76827
76828
76829
76830
76831
76832
76833
76834
76835
76836
76837
76838
76839
76840
76841
76842
76843
76844
76845
76846
76847
76848
76849
76850
76851
76852
76853
76854
76855
76856
76857
76858
76859
76860
76861
76862
76863
76864
76865
76866
76867
76868
76869
76870
76871
76872
76873
76874
76875
76876
76877
76878
76879
76880
76881
76882
76883
76884
76885
76886
76887
76888
76889
76890
76891
76892
76893
76894
76895
76896
76897
76898
76899
76900
76901
76902
76903
76904
76905
76906
76907
76908
76909
76910
76911
76912
76913
76914
76915
76916
76917
76918
76919
76920
76921
76922
76923
76924
76925
76926
76927
76928
76929
76930
76931
76932
76933
76934
76935
76936
76937
76938
76939
76940
76941
76942
76943
76944
76945
76946
76947
76948
76949
76950
76951
76952
76953
76954
76955
76956
76957
76958
76959
76960
76961
76962
76963
76964
76965
76966
76967
76968
76969
76970
76971
76972
76973
76974
76975
76976
76977
76978
76979
76980
76981
76982
76983
76984
76985
76986
76987
76988
76989
76990
76991
76992
76993
76994
76995
76996
76997
76998
76999
77000
77001
77002
77003
77004
77005
77006
77007
77008
77009
77010
77011
77012
77013
77014
77015
77016
77017
77018
77019
77020
77021
77022
77023
77024
77025
77026
77027
77028
77029
77030
77031
77032
77033
77034
77035
77036
77037
77038
77039
77040
77041
77042
77043
77044
77045
77046
77047
77048
77049
77050
77051
77052
77053
77054
77055
77056
77057
77058
77059
77060
77061
77062
77063
77064
77065
77066
77067
77068
77069
77070
77071
77072
77073
77074
77075
77076
77077
77078
77079
77080
77081
77082
77083
77084
77085
77086
77087
77088
77089
77090
77091
77092
77093
77094
77095
77096
77097
77098
77099
77100
77101
77102
77103
77104
77105
77106
77107
77108
77109
77110
77111
77112
77113
77114
77115
77116
77117
77118
77119
77120
77121
77122
77123
77124
77125
77126
77127
77128
77129
77130
77131
77132
77133
77134
77135
77136
77137
77138
77139
77140
77141
77142
77143
77144
77145
77146
77147
77148
77149
77150
77151
77152
77153
77154
77155
77156
77157
77158
77159
77160
77161
77162
77163
77164
77165
77166
77167
77168
77169
77170
77171
77172
77173
77174
77175
77176
77177
77178
77179
77180
77181
77182
77183
77184
77185
77186
77187
77188
77189
77190
77191
77192
77193
77194
77195
77196
77197
77198
77199
77200
77201
77202
77203
77204
77205
77206
77207
77208
77209
77210
77211
77212
77213
77214
77215
77216
77217
77218
77219
77220
77221
77222
77223
77224
77225
77226
77227
77228
77229
77230
77231
77232
77233
77234
77235
77236
77237
77238
77239
77240
77241
77242
77243
77244
77245
77246
77247
77248
77249
77250
77251
77252
77253
77254
77255
77256
77257
77258
77259
77260
77261
77262
77263
77264
77265
77266
77267
77268
77269
77270
77271
77272
77273
77274
77275
77276
77277
77278
77279
77280
77281
77282
77283
77284
77285
77286
77287
77288
77289
77290
77291
77292
77293
77294
77295
77296
77297
77298
77299
77300
77301
77302
77303
77304
77305
77306
77307
77308
77309
77310
77311
77312
77313
77314
77315
77316
77317
77318
77319
77320
77321
77322
77323
77324
77325
77326
77327
77328
77329
77330
77331
77332
77333
77334
77335
77336
77337
77338
77339
77340
77341
77342
77343
77344
77345
77346
77347
77348
77349
77350
77351
77352
77353
77354
77355
77356
77357
77358
77359
77360
77361
77362
77363
77364
77365
77366
77367
77368
77369
77370
77371
77372
77373
77374
77375
77376
77377
77378
77379
77380
77381
77382
77383
77384
77385
77386
77387
77388
77389
77390
77391
77392
77393
77394
77395
77396
77397
77398
77399
77400
77401
77402
77403
77404
77405
77406
77407
77408
77409
77410
77411
77412
77413
77414
77415
77416
77417
77418
77419
77420
77421
77422
77423
77424
77425
77426
77427
77428
77429
77430
77431
77432
77433
77434
77435
77436
77437
77438
77439
77440
77441
77442
77443
77444
77445
77446
77447
77448
77449
77450
77451
77452
77453
77454
77455
77456
77457
77458
77459
77460
77461
77462
77463
77464
77465
77466
77467
77468
77469
77470
77471
77472
77473
77474
77475
77476
77477
77478
77479
77480
77481
77482
77483
77484
77485
77486
77487
77488
77489
77490
77491
77492
77493
77494
77495
77496
77497
77498
77499
77500
77501
77502
77503
77504
77505
77506
77507
77508
77509
77510
77511
77512
77513
77514
77515
77516
77517
77518
77519
77520
77521
77522
77523
77524
77525
77526
77527
77528
77529
77530
77531
77532
77533
77534
77535
77536
77537
77538
77539
77540
77541
77542
77543
77544
77545
77546
77547
77548
77549
77550
77551
77552
77553
77554
77555
77556
77557
77558
77559
77560
77561
77562
77563
77564
77565
77566
77567
77568
77569
77570
77571
77572
77573
77574
77575
77576
77577
77578
77579
77580
77581
77582
77583
77584
77585
77586
77587
77588
77589
77590
77591
77592
77593
77594
77595
77596
77597
77598
77599
77600
77601
77602
77603
77604
77605
77606
77607
77608
77609
77610
77611
77612
77613
77614
77615
77616
77617
77618
77619
77620
77621
77622
77623
77624
77625
77626
77627
77628
77629
77630
77631
77632
77633
77634
77635
77636
77637
77638
77639
77640
77641
77642
77643
77644
77645
77646
77647
77648
77649
77650
77651
77652
77653
77654
77655
77656
77657
77658
77659
77660
77661
77662
77663
77664
77665
77666
77667
77668
77669
77670
77671
77672
77673
77674
77675
77676
77677
77678
77679
77680
77681
77682
77683
77684
77685
77686
77687
77688
77689
77690
77691
77692
77693
77694
77695
77696
77697
77698
77699
77700
77701
77702
77703
77704
77705
77706
77707
77708
77709
77710
77711
77712
77713
77714
77715
77716
77717
77718
77719
77720
77721
77722
77723
77724
77725
77726
77727
77728
77729
77730
77731
77732
77733
77734
77735
77736
77737
77738
77739
77740
77741
77742
77743
77744
77745
77746
77747
77748
77749
77750
77751
77752
77753
77754
77755
77756
77757
77758
77759
77760
77761
77762
77763
77764
77765
77766
77767
77768
77769
77770
77771
77772
77773
77774
77775
77776
77777
77778
77779
77780
77781
77782
77783
77784
77785
77786
77787
77788
77789
77790
77791
77792
77793
77794
77795
77796
77797
77798
77799
77800
77801
77802
77803
77804
77805
77806
77807
77808
77809
77810
77811
77812
77813
77814
77815
77816
77817
77818
77819
77820
77821
77822
77823
77824
77825
77826
77827
77828
77829
77830
77831
77832
77833
77834
77835
77836
77837
77838
77839
77840
77841
77842
77843
77844
77845
77846
77847
77848
77849
77850
77851
77852
77853
77854
77855
77856
77857
77858
77859
77860
77861
77862
77863
77864
77865
77866
77867
77868
77869
77870
77871
77872
77873
77874
77875
77876
77877
77878
77879
77880
77881
77882
77883
77884
77885
77886
77887
77888
77889
77890
77891
77892
77893
77894
77895
77896
77897
77898
77899
77900
77901
77902
77903
77904
77905
77906
77907
77908
77909
77910
77911
77912
77913
77914
77915
77916
77917
77918
77919
77920
77921
77922
77923
77924
77925
77926
77927
77928
77929
77930
77931
77932
77933
77934
77935
77936
77937
77938
77939
77940
77941
77942
77943
77944
77945
77946
77947
77948
77949
77950
77951
77952
77953
77954
77955
77956
77957
77958
77959
77960
77961
77962
77963
77964
77965
77966
77967
77968
77969
77970
77971
77972
77973
77974
77975
77976
77977
77978
77979
77980
77981
77982
77983
77984
77985
77986
77987
77988
77989
77990
77991
77992
77993
77994
77995
77996
77997
77998
77999
78000
78001
78002
78003
78004
78005
78006
78007
78008
78009
78010
78011
78012
78013
78014
78015
78016
78017
78018
78019
78020
78021
78022
78023
78024
78025
78026
78027
78028
78029
78030
78031
78032
78033
78034
78035
78036
78037
78038
78039
78040
78041
78042
78043
78044
78045
78046
78047
78048
78049
78050
78051
78052
78053
78054
78055
78056
78057
78058
78059
78060
78061
78062
78063
78064
78065
78066
78067
78068
78069
78070
78071
78072
78073
78074
78075
78076
78077
78078
78079
78080
78081
78082
78083
78084
78085
78086
78087
78088
78089
78090
78091
78092
78093
78094
78095
78096
78097
78098
78099
78100
78101
78102
78103
78104
78105
78106
78107
78108
78109
78110
78111
78112
78113
78114
78115
78116
78117
78118
78119
78120
78121
78122
78123
78124
78125
78126
78127
78128
78129
78130
78131
78132
78133
78134
78135
78136
78137
78138
78139
78140
78141
78142
78143
78144
78145
78146
78147
78148
78149
78150
78151
78152
78153
78154
78155
78156
78157
78158
78159
78160
78161
78162
78163
78164
78165
78166
78167
78168
78169
78170
78171
78172
78173
78174
78175
78176
78177
78178
78179
78180
78181
78182
78183
78184
78185
78186
78187
78188
78189
78190
78191
78192
78193
78194
78195
78196
78197
78198
78199
78200
78201
78202
78203
78204
78205
78206
78207
78208
78209
78210
78211
78212
78213
78214
78215
78216
78217
78218
78219
78220
78221
78222
78223
78224
78225
78226
78227
78228
78229
78230
78231
78232
78233
78234
78235
78236
78237
78238
78239
78240
78241
78242
78243
78244
78245
78246
78247
78248
78249
78250
78251
78252
78253
78254
78255
78256
78257
78258
78259
78260
78261
78262
78263
78264
78265
78266
78267
78268
78269
78270
78271
78272
78273
78274
78275
78276
78277
78278
78279
78280
78281
78282
78283
78284
78285
78286
78287
78288
78289
78290
78291
78292
78293
78294
78295
78296
78297
78298
78299
78300
78301
78302
78303
78304
78305
78306
78307
78308
78309
78310
78311
78312
78313
78314
78315
78316
78317
78318
78319
78320
78321
78322
78323
78324
78325
78326
78327
78328
78329
78330
78331
78332
78333
78334
78335
78336
78337
78338
78339
78340
78341
78342
78343
78344
78345
78346
78347
78348
78349
78350
78351
78352
78353
78354
78355
78356
78357
78358
78359
78360
78361
78362
78363
78364
78365
78366
78367
78368
78369
78370
78371
78372
78373
78374
78375
78376
78377
78378
78379
78380
78381
78382
78383
78384
78385
78386
78387
78388
78389
78390
78391
78392
78393
78394
78395
78396
78397
78398
78399
78400
78401
78402
78403
78404
78405
78406
78407
78408
78409
78410
78411
78412
78413
78414
78415
78416
78417
78418
78419
78420
78421
78422
78423
78424
78425
78426
78427
78428
78429
78430
78431
78432
78433
78434
78435
78436
78437
78438
78439
78440
78441
78442
78443
78444
78445
78446
78447
78448
78449
78450
78451
78452
78453
78454
78455
78456
78457
78458
78459
78460
78461
78462
78463
78464
78465
78466
78467
78468
78469
78470
78471
78472
78473
78474
78475
78476
78477
78478
78479
78480
78481
78482
78483
78484
78485
78486
78487
78488
78489
78490
78491
78492
78493
78494
78495
78496
78497
78498
78499
78500
78501
78502
78503
78504
78505
78506
78507
78508
78509
78510
78511
78512
78513
78514
78515
78516
78517
78518
78519
78520
78521
78522
78523
78524
78525
78526
78527
78528
78529
78530
78531
78532
78533
78534
78535
78536
78537
78538
78539
78540
78541
78542
78543
78544
78545
78546
78547
78548
78549
78550
78551
78552
78553
78554
78555
78556
78557
78558
78559
78560
78561
78562
78563
78564
78565
78566
78567
78568
78569
78570
78571
78572
78573
78574
78575
78576
78577
78578
78579
78580
78581
78582
78583
78584
78585
78586
78587
78588
78589
78590
78591
78592
78593
78594
78595
78596
78597
78598
78599
78600
78601
78602
78603
78604
78605
78606
78607
78608
78609
78610
78611
78612
78613
78614
78615
78616
78617
78618
78619
78620
78621
78622
78623
78624
78625
78626
78627
78628
78629
78630
78631
78632
78633
78634
78635
78636
78637
78638
78639
78640
78641
78642
78643
78644
78645
78646
78647
78648
78649
78650
78651
78652
78653
78654
78655
78656
78657
78658
78659
78660
78661
78662
78663
78664
78665
78666
78667
78668
78669
78670
78671
78672
78673
78674
78675
78676
78677
78678
78679
78680
78681
78682
78683
78684
78685
78686
78687
78688
78689
78690
78691
78692
78693
78694
78695
78696
78697
78698
78699
78700
78701
78702
78703
78704
78705
78706
78707
78708
78709
78710
78711
78712
78713
78714
78715
78716
78717
78718
78719
78720
78721
78722
78723
78724
78725
78726
78727
78728
78729
78730
78731
78732
78733
78734
78735
78736
78737
78738
78739
78740
78741
78742
78743
78744
78745
78746
78747
78748
78749
78750
78751
78752
78753
78754
78755
78756
78757
78758
78759
78760
78761
78762
78763
78764
78765
78766
78767
78768
78769
78770
78771
78772
78773
78774
78775
78776
78777
78778
78779
78780
78781
78782
78783
78784
78785
78786
78787
78788
78789
78790
78791
78792
78793
78794
78795
78796
78797
78798
78799
78800
78801
78802
78803
78804
78805
78806
78807
78808
78809
78810
78811
78812
78813
78814
78815
78816
78817
78818
78819
78820
78821
78822
78823
78824
78825
78826
78827
78828
78829
78830
78831
78832
78833
78834
78835
78836
78837
78838
78839
78840
78841
78842
78843
78844
78845
78846
78847
78848
78849
78850
78851
78852
78853
78854
78855
78856
78857
78858
78859
78860
78861
78862
78863
78864
78865
78866
78867
78868
78869
78870
78871
78872
78873
78874
78875
78876
78877
78878
78879
78880
78881
78882
78883
78884
78885
78886
78887
78888
78889
78890
78891
78892
78893
78894
78895
78896
78897
78898
78899
78900
78901
78902
78903
78904
78905
78906
78907
78908
78909
78910
78911
78912
78913
78914
78915
78916
78917
78918
78919
78920
78921
78922
78923
78924
78925
78926
78927
78928
78929
78930
78931
78932
78933
78934
78935
78936
78937
78938
78939
78940
78941
78942
78943
78944
78945
78946
78947
78948
78949
78950
78951
78952
78953
78954
78955
78956
78957
78958
78959
78960
78961
78962
78963
78964
78965
78966
78967
78968
78969
78970
78971
78972
78973
78974
78975
78976
78977
78978
78979
78980
78981
78982
78983
78984
78985
78986
78987
78988
78989
78990
78991
78992
78993
78994
78995
78996
78997
78998
78999
79000
79001
79002
79003
79004
79005
79006
79007
79008
79009
79010
79011
79012
79013
79014
79015
79016
79017
79018
79019
79020
79021
79022
79023
79024
79025
79026
79027
79028
79029
79030
79031
79032
79033
79034
79035
79036
79037
79038
79039
79040
79041
79042
79043
79044
79045
79046
79047
79048
79049
79050
79051
79052
79053
79054
79055
79056
79057
79058
79059
79060
79061
79062
79063
79064
79065
79066
79067
79068
79069
79070
79071
79072
79073
79074
79075
79076
79077
79078
79079
79080
79081
79082
79083
79084
79085
79086
79087
79088
79089
79090
79091
79092
79093
79094
79095
79096
79097
79098
79099
79100
79101
79102
79103
79104
79105
79106
79107
79108
79109
79110
79111
79112
79113
79114
79115
79116
79117
79118
79119
79120
79121
79122
79123
79124
79125
79126
79127
79128
79129
79130
79131
79132
79133
79134
79135
79136
79137
79138
79139
79140
79141
79142
79143
79144
79145
79146
79147
79148
79149
79150
79151
79152
79153
79154
79155
79156
79157
79158
79159
79160
79161
79162
79163
79164
79165
79166
79167
79168
79169
79170
79171
79172
79173
79174
79175
79176
79177
79178
79179
79180
79181
79182
79183
79184
79185
79186
79187
79188
79189
79190
79191
79192
79193
79194
79195
79196
79197
79198
79199
79200
79201
79202
79203
79204
79205
79206
79207
79208
79209
79210
79211
79212
79213
79214
79215
79216
79217
79218
79219
79220
79221
79222
79223
79224
79225
79226
79227
79228
79229
79230
79231
79232
79233
79234
79235
79236
79237
79238
79239
79240
79241
79242
79243
79244
79245
79246
79247
79248
79249
79250
79251
79252
79253
79254
79255
79256
79257
79258
79259
79260
79261
79262
79263
79264
79265
79266
79267
79268
79269
79270
79271
79272
79273
79274
79275
79276
79277
79278
79279
79280
79281
79282
79283
79284
79285
79286
79287
79288
79289
79290
79291
79292
79293
79294
79295
79296
79297
79298
79299
79300
79301
79302
79303
79304
79305
79306
79307
79308
79309
79310
79311
79312
79313
79314
79315
79316
79317
79318
79319
79320
79321
79322
79323
79324
79325
79326
79327
79328
79329
79330
79331
79332
79333
79334
79335
79336
79337
79338
79339
79340
79341
79342
79343
79344
79345
79346
79347
79348
79349
79350
79351
79352
79353
79354
79355
79356
79357
79358
79359
79360
79361
79362
79363
79364
79365
79366
79367
79368
79369
79370
79371
79372
79373
79374
79375
79376
79377
79378
79379
79380
79381
79382
79383
79384
79385
79386
79387
79388
79389
79390
79391
79392
79393
79394
79395
79396
79397
79398
79399
79400
79401
79402
79403
79404
79405
79406
79407
79408
79409
79410
79411
79412
79413
79414
79415
79416
79417
79418
79419
79420
79421
79422
79423
79424
79425
79426
79427
79428
79429
79430
79431
79432
79433
79434
79435
79436
79437
79438
79439
79440
79441
79442
79443
79444
79445
79446
79447
79448
79449
79450
79451
79452
79453
79454
79455
79456
79457
79458
79459
79460
79461
79462
79463
79464
79465
79466
79467
79468
79469
79470
79471
79472
79473
79474
79475
79476
79477
79478
79479
79480
79481
79482
79483
79484
79485
79486
79487
79488
79489
79490
79491
79492
79493
79494
79495
79496
79497
79498
79499
79500
79501
79502
79503
79504
79505
79506
79507
79508
79509
79510
79511
79512
79513
79514
79515
79516
79517
79518
79519
79520
79521
79522
79523
79524
79525
79526
79527
79528
79529
79530
79531
79532
79533
79534
79535
79536
79537
79538
79539
79540
79541
79542
79543
79544
79545
79546
79547
79548
79549
79550
79551
79552
79553
79554
79555
79556
79557
79558
79559
79560
79561
79562
79563
79564
79565
79566
79567
79568
79569
79570
79571
79572
79573
79574
79575
79576
79577
79578
79579
79580
79581
79582
79583
79584
79585
79586
79587
79588
79589
79590
79591
79592
79593
79594
79595
79596
79597
79598
79599
79600
79601
79602
79603
79604
79605
79606
79607
79608
79609
79610
79611
79612
79613
79614
79615
79616
79617
79618
79619
79620
79621
79622
79623
79624
79625
79626
79627
79628
79629
79630
79631
79632
79633
79634
79635
79636
79637
79638
79639
79640
79641
79642
79643
79644
79645
79646
79647
79648
79649
79650
79651
79652
79653
79654
79655
79656
79657
79658
79659
79660
79661
79662
79663
79664
79665
79666
79667
79668
79669
79670
79671
79672
79673
79674
79675
79676
79677
79678
79679
79680
79681
79682
79683
79684
79685
79686
79687
79688
79689
79690
79691
79692
79693
79694
79695
79696
79697
79698
79699
79700
79701
79702
79703
79704
79705
79706
79707
79708
79709
79710
79711
79712
79713
79714
79715
79716
79717
79718
79719
79720
79721
79722
79723
79724
79725
79726
79727
79728
79729
79730
79731
79732
79733
79734
79735
79736
79737
79738
79739
79740
79741
79742
79743
79744
79745
79746
79747
79748
79749
79750
79751
79752
79753
79754
79755
79756
79757
79758
79759
79760
79761
79762
79763
79764
79765
79766
79767
79768
79769
79770
79771
79772
79773
79774
79775
79776
79777
79778
79779
79780
79781
79782
79783
79784
79785
79786
79787
79788
79789
79790
79791
79792
79793
79794
79795
79796
79797
79798
79799
79800
79801
79802
79803
79804
79805
79806
79807
79808
79809
79810
79811
79812
79813
79814
79815
79816
79817
79818
79819
79820
79821
79822
79823
79824
79825
79826
79827
79828
79829
79830
79831
79832
79833
79834
79835
79836
79837
79838
79839
79840
79841
79842
79843
79844
79845
79846
79847
79848
79849
79850
79851
79852
79853
79854
79855
79856
79857
79858
79859
79860
79861
79862
79863
79864
79865
79866
79867
79868
79869
79870
79871
79872
79873
79874
79875
79876
79877
79878
79879
79880
79881
79882
79883
79884
79885
79886
79887
79888
79889
79890
79891
79892
79893
79894
79895
79896
79897
79898
79899
79900
79901
79902
79903
79904
79905
79906
79907
79908
79909
79910
79911
79912
79913
79914
79915
79916
79917
79918
79919
79920
79921
79922
79923
79924
79925
79926
79927
79928
79929
79930
79931
79932
79933
79934
79935
79936
79937
79938
79939
79940
79941
79942
79943
79944
79945
79946
79947
79948
79949
79950
79951
79952
79953
79954
79955
79956
79957
79958
79959
79960
79961
79962
79963
79964
79965
79966
79967
79968
79969
79970
79971
79972
79973
79974
79975
79976
79977
79978
79979
79980
79981
79982
79983
79984
79985
79986
79987
79988
79989
79990
79991
79992
79993
79994
79995
79996
79997
79998
79999
80000
80001
80002
80003
80004
80005
80006
80007
80008
80009
80010
80011
80012
80013
80014
80015
80016
80017
80018
80019
80020
80021
80022
80023
80024
80025
80026
80027
80028
80029
80030
80031
80032
80033
80034
80035
80036
80037
80038
80039
80040
80041
80042
80043
80044
80045
80046
80047
80048
80049
80050
80051
80052
80053
80054
80055
80056
80057
80058
80059
80060
80061
80062
80063
80064
80065
80066
80067
80068
80069
80070
80071
80072
80073
80074
80075
80076
80077
80078
80079
80080
80081
80082
80083
80084
80085
80086
80087
80088
80089
80090
80091
80092
80093
80094
80095
80096
80097
80098
80099
80100
80101
80102
80103
80104
80105
80106
80107
80108
80109
80110
80111
80112
80113
80114
80115
80116
80117
80118
80119
80120
80121
80122
80123
80124
80125
80126
80127
80128
80129
80130
80131
80132
80133
80134
80135
80136
80137
80138
80139
80140
80141
80142
80143
80144
80145
80146
80147
80148
80149
80150
80151
80152
80153
80154
80155
80156
80157
80158
80159
80160
80161
80162
80163
80164
80165
80166
80167
80168
80169
80170
80171
80172
80173
80174
80175
80176
80177
80178
80179
80180
80181
80182
80183
80184
80185
80186
80187
80188
80189
80190
80191
80192
80193
80194
80195
80196
80197
80198
80199
80200
80201
80202
80203
80204
80205
80206
80207
80208
80209
80210
80211
80212
80213
80214
80215
80216
80217
80218
80219
80220
80221
80222
80223
80224
80225
80226
80227
80228
80229
80230
80231
80232
80233
80234
80235
80236
80237
80238
80239
80240
80241
80242
80243
80244
80245
80246
80247
80248
80249
80250
80251
80252
80253
80254
80255
80256
80257
80258
80259
80260
80261
80262
80263
80264
80265
80266
80267
80268
80269
80270
80271
80272
80273
80274
80275
80276
80277
80278
80279
80280
80281
80282
80283
80284
80285
80286
80287
80288
80289
80290
80291
80292
80293
80294
80295
80296
80297
80298
80299
80300
80301
80302
80303
80304
80305
80306
80307
80308
80309
80310
80311
80312
80313
80314
80315
80316
80317
80318
80319
80320
80321
80322
80323
80324
80325
80326
80327
80328
80329
80330
80331
80332
80333
80334
80335
80336
80337
80338
80339
80340
80341
80342
80343
80344
80345
80346
80347
80348
80349
80350
80351
80352
80353
80354
80355
80356
80357
80358
80359
80360
80361
80362
80363
80364
80365
80366
80367
80368
80369
80370
80371
80372
80373
80374
80375
80376
80377
80378
80379
80380
80381
80382
80383
80384
80385
80386
80387
80388
80389
80390
80391
80392
80393
80394
80395
80396
80397
80398
80399
80400
80401
80402
80403
80404
80405
80406
80407
80408
80409
80410
80411
80412
80413
80414
80415
80416
80417
80418
80419
80420
80421
80422
80423
80424
80425
80426
80427
80428
80429
80430
80431
80432
80433
80434
80435
80436
80437
80438
80439
80440
80441
80442
80443
80444
80445
80446
80447
80448
80449
80450
80451
80452
80453
80454
80455
80456
80457
80458
80459
80460
80461
80462
80463
80464
80465
80466
80467
80468
80469
80470
80471
80472
80473
80474
80475
80476
80477
80478
80479
80480
80481
80482
80483
80484
80485
80486
80487
80488
80489
80490
80491
80492
80493
80494
80495
80496
80497
80498
80499
80500
80501
80502
80503
80504
80505
80506
80507
80508
80509
80510
80511
80512
80513
80514
80515
80516
80517
80518
80519
80520
80521
80522
80523
80524
80525
80526
80527
80528
80529
80530
80531
80532
80533
80534
80535
80536
80537
80538
80539
80540
80541
80542
80543
80544
80545
80546
80547
80548
80549
80550
80551
80552
80553
80554
80555
80556
80557
80558
80559
80560
80561
80562
80563
80564
80565
80566
80567
80568
80569
80570
80571
80572
80573
80574
80575
80576
80577
80578
80579
80580
80581
80582
80583
80584
80585
80586
80587
80588
80589
80590
80591
80592
80593
80594
80595
80596
80597
80598
80599
80600
80601
80602
80603
80604
80605
80606
80607
80608
80609
80610
80611
80612
80613
80614
80615
80616
80617
80618
80619
80620
80621
80622
80623
80624
80625
80626
80627
80628
80629
80630
80631
80632
80633
80634
80635
80636
80637
80638
80639
80640
80641
80642
80643
80644
80645
80646
80647
80648
80649
80650
80651
80652
80653
80654
80655
80656
80657
80658
80659
80660
80661
80662
80663
80664
80665
80666
80667
80668
80669
80670
80671
80672
80673
80674
80675
80676
80677
80678
80679
80680
80681
80682
80683
80684
80685
80686
80687
80688
80689
80690
80691
80692
80693
80694
80695
80696
80697
80698
80699
80700
80701
80702
80703
80704
80705
80706
80707
80708
80709
80710
80711
80712
80713
80714
80715
80716
80717
80718
80719
80720
80721
80722
80723
80724
80725
80726
80727
80728
80729
80730
80731
80732
80733
80734
80735
80736
80737
80738
80739
80740
80741
80742
80743
80744
80745
80746
80747
80748
80749
80750
80751
80752
80753
80754
80755
80756
80757
80758
80759
80760
80761
80762
80763
80764
80765
80766
80767
80768
80769
80770
80771
80772
80773
80774
80775
80776
80777
80778
80779
80780
80781
80782
80783
80784
80785
80786
80787
80788
80789
80790
80791
80792
80793
80794
80795
80796
80797
80798
80799
80800
80801
80802
80803
80804
80805
80806
80807
80808
80809
80810
80811
80812
80813
80814
80815
80816
80817
80818
80819
80820
80821
80822
80823
80824
80825
80826
80827
80828
80829
80830
80831
80832
80833
80834
80835
80836
80837
80838
80839
80840
80841
80842
80843
80844
80845
80846
80847
80848
80849
80850
80851
80852
80853
80854
80855
80856
80857
80858
80859
80860
80861
80862
80863
80864
80865
80866
80867
80868
80869
80870
80871
80872
80873
80874
80875
80876
80877
80878
80879
80880
80881
80882
80883
80884
80885
80886
80887
80888
80889
80890
80891
80892
80893
80894
80895
80896
80897
80898
80899
80900
80901
80902
80903
80904
80905
80906
80907
80908
80909
80910
80911
80912
80913
80914
80915
80916
80917
80918
80919
80920
80921
80922
80923
80924
80925
80926
80927
80928
80929
80930
80931
80932
80933
80934
80935
80936
80937
80938
80939
80940
80941
80942
80943
80944
80945
80946
80947
80948
80949
80950
80951
80952
80953
80954
80955
80956
80957
80958
80959
80960
80961
80962
80963
80964
80965
80966
80967
80968
80969
80970
80971
80972
80973
80974
80975
80976
80977
80978
80979
80980
80981
80982
80983
80984
80985
80986
80987
80988
80989
80990
80991
80992
80993
80994
80995
80996
80997
80998
80999
81000
81001
81002
81003
81004
81005
81006
81007
81008
81009
81010
81011
81012
81013
81014
81015
81016
81017
81018
81019
81020
81021
81022
81023
81024
81025
81026
81027
81028
81029
81030
81031
81032
81033
81034
81035
81036
81037
81038
81039
81040
81041
81042
81043
81044
81045
81046
81047
81048
81049
81050
81051
81052
81053
81054
81055
81056
81057
81058
81059
81060
81061
81062
81063
81064
81065
81066
81067
81068
81069
81070
81071
81072
81073
81074
81075
81076
81077
81078
81079
81080
81081
81082
81083
81084
81085
81086
81087
81088
81089
81090
81091
81092
81093
81094
81095
81096
81097
81098
81099
81100
81101
81102
81103
81104
81105
81106
81107
81108
81109
81110
81111
81112
81113
81114
81115
81116
81117
81118
81119
81120
81121
81122
81123
81124
81125
81126
81127
81128
81129
81130
81131
81132
81133
81134
81135
81136
81137
81138
81139
81140
81141
81142
81143
81144
81145
81146
81147
81148
81149
81150
81151
81152
81153
81154
81155
81156
81157
81158
81159
81160
81161
81162
81163
81164
81165
81166
81167
81168
81169
81170
81171
81172
81173
81174
81175
81176
81177
81178
81179
81180
81181
81182
81183
81184
81185
81186
81187
81188
81189
81190
81191
81192
81193
81194
81195
81196
81197
81198
81199
81200
81201
81202
81203
81204
81205
81206
81207
81208
81209
81210
81211
81212
81213
81214
81215
81216
81217
81218
81219
81220
81221
81222
81223
81224
81225
81226
81227
81228
81229
81230
81231
81232
81233
81234
81235
81236
81237
81238
81239
81240
81241
81242
81243
81244
81245
81246
81247
81248
81249
81250
81251
81252
81253
81254
81255
81256
81257
81258
81259
81260
81261
81262
81263
81264
81265
81266
81267
81268
81269
81270
81271
81272
81273
81274
81275
81276
81277
81278
81279
81280
81281
81282
81283
81284
81285
81286
81287
81288
81289
81290
81291
81292
81293
81294
81295
81296
81297
81298
81299
81300
81301
81302
81303
81304
81305
81306
81307
81308
81309
81310
81311
81312
81313
81314
81315
81316
81317
81318
81319
81320
81321
81322
81323
81324
81325
81326
81327
81328
81329
81330
81331
81332
81333
81334
81335
81336
81337
81338
81339
81340
81341
81342
81343
81344
81345
81346
81347
81348
81349
81350
81351
81352
81353
81354
81355
81356
81357
81358
81359
81360
81361
81362
81363
81364
81365
81366
81367
81368
81369
81370
81371
81372
81373
81374
81375
81376
81377
81378
81379
81380
81381
81382
81383
81384
81385
81386
81387
81388
81389
81390
81391
81392
81393
81394
81395
81396
81397
81398
81399
81400
81401
81402
81403
81404
81405
81406
81407
81408
81409
81410
81411
81412
81413
81414
81415
81416
81417
81418
81419
81420
81421
81422
81423
81424
81425
81426
81427
81428
81429
81430
81431
81432
81433
81434
81435
81436
81437
81438
81439
81440
81441
81442
81443
81444
81445
81446
81447
81448
81449
81450
81451
81452
81453
81454
81455
81456
81457
81458
81459
81460
81461
81462
81463
81464
81465
81466
81467
81468
81469
81470
81471
81472
81473
81474
81475
81476
81477
81478
81479
81480
81481
81482
81483
81484
81485
81486
81487
81488
81489
81490
81491
81492
81493
81494
81495
81496
81497
81498
81499
81500
81501
81502
81503
81504
81505
81506
81507
81508
81509
81510
81511
81512
81513
81514
81515
81516
81517
81518
81519
81520
81521
81522
81523
81524
81525
81526
81527
81528
81529
81530
81531
81532
81533
81534
81535
81536
81537
81538
81539
81540
81541
81542
81543
81544
81545
81546
81547
81548
81549
81550
81551
81552
81553
81554
81555
81556
81557
81558
81559
81560
81561
81562
81563
81564
81565
81566
81567
81568
81569
81570
81571
81572
81573
81574
81575
81576
81577
81578
81579
81580
81581
81582
81583
81584
81585
81586
81587
81588
81589
81590
81591
81592
81593
81594
81595
81596
81597
81598
81599
81600
81601
81602
81603
81604
81605
81606
81607
81608
81609
81610
81611
81612
81613
81614
81615
81616
81617
81618
81619
81620
81621
81622
81623
81624
81625
81626
81627
81628
81629
81630
81631
81632
81633
81634
81635
81636
81637
81638
81639
81640
81641
81642
81643
81644
81645
81646
81647
81648
81649
81650
81651
81652
81653
81654
81655
81656
81657
81658
81659
81660
81661
81662
81663
81664
81665
81666
81667
81668
81669
81670
81671
81672
81673
81674
81675
81676
81677
81678
81679
81680
81681
81682
81683
81684
81685
81686
81687
81688
81689
81690
81691
81692
81693
81694
81695
81696
81697
81698
81699
81700
81701
81702
81703
81704
81705
81706
81707
81708
81709
81710
81711
81712
81713
81714
81715
81716
81717
81718
81719
81720
81721
81722
81723
81724
81725
81726
81727
81728
81729
81730
81731
81732
81733
81734
81735
81736
81737
81738
81739
81740
81741
81742
81743
81744
81745
81746
81747
81748
81749
81750
81751
81752
81753
81754
81755
81756
81757
81758
81759
81760
81761
81762
81763
81764
81765
81766
81767
81768
81769
81770
81771
81772
81773
81774
81775
81776
81777
81778
81779
81780
81781
81782
81783
81784
81785
81786
81787
81788
81789
81790
81791
81792
81793
81794
81795
81796
81797
81798
81799
81800
81801
81802
81803
81804
81805
81806
81807
81808
81809
81810
81811
81812
81813
81814
81815
81816
81817
81818
81819
81820
81821
81822
81823
81824
81825
81826
81827
81828
81829
81830
81831
81832
81833
81834
81835
81836
81837
81838
81839
81840
81841
81842
81843
81844
81845
81846
81847
81848
81849
81850
81851
81852
81853
81854
81855
81856
81857
81858
81859
81860
81861
81862
81863
81864
81865
81866
81867
81868
81869
81870
81871
81872
81873
81874
81875
81876
81877
81878
81879
81880
81881
81882
81883
81884
81885
81886
81887
81888
81889
81890
81891
81892
81893
81894
81895
81896
81897
81898
81899
81900
81901
81902
81903
81904
81905
81906
81907
81908
81909
81910
81911
81912
81913
81914
81915
81916
81917
81918
81919
81920
81921
81922
81923
81924
81925
81926
81927
81928
81929
81930
81931
81932
81933
81934
81935
81936
81937
81938
81939
81940
81941
81942
81943
81944
81945
81946
81947
81948
81949
81950
81951
81952
81953
81954
81955
81956
81957
81958
81959
81960
81961
81962
81963
81964
81965
81966
81967
81968
81969
81970
81971
81972
81973
81974
81975
81976
81977
81978
81979
81980
81981
81982
81983
81984
81985
81986
81987
81988
81989
81990
81991
81992
81993
81994
81995
81996
81997
81998
81999
82000
82001
82002
82003
82004
82005
82006
82007
82008
82009
82010
82011
82012
82013
82014
82015
82016
82017
82018
82019
82020
82021
82022
82023
82024
82025
82026
82027
82028
82029
82030
82031
82032
82033
82034
82035
82036
82037
82038
82039
82040
82041
82042
82043
82044
82045
82046
82047
82048
82049
82050
82051
82052
82053
82054
82055
82056
82057
82058
82059
82060
82061
82062
82063
82064
82065
82066
82067
82068
82069
82070
82071
82072
82073
82074
82075
82076
82077
82078
82079
82080
82081
82082
82083
82084
82085
82086
82087
82088
82089
82090
82091
82092
82093
82094
82095
82096
82097
82098
82099
82100
82101
82102
82103
82104
82105
82106
82107
82108
82109
82110
82111
82112
82113
82114
82115
82116
82117
82118
82119
82120
82121
82122
82123
82124
82125
82126
82127
82128
82129
82130
82131
82132
82133
82134
82135
82136
82137
82138
82139
82140
82141
82142
82143
82144
82145
82146
82147
82148
82149
82150
82151
82152
82153
82154
82155
82156
82157
82158
82159
82160
82161
82162
82163
82164
82165
82166
82167
82168
82169
82170
82171
82172
82173
82174
82175
82176
82177
82178
82179
82180
82181
82182
82183
82184
82185
82186
82187
82188
82189
82190
82191
82192
82193
82194
82195
82196
82197
82198
82199
82200
82201
82202
82203
82204
82205
82206
82207
82208
82209
82210
82211
82212
82213
82214
82215
82216
82217
82218
82219
82220
82221
82222
82223
82224
82225
82226
82227
82228
82229
82230
82231
82232
82233
82234
82235
82236
82237
82238
82239
82240
82241
82242
82243
82244
82245
82246
82247
82248
82249
82250
82251
82252
82253
82254
82255
82256
82257
82258
82259
82260
82261
82262
82263
82264
82265
82266
82267
82268
82269
82270
82271
82272
82273
82274
82275
82276
82277
82278
82279
82280
82281
82282
82283
82284
82285
82286
82287
82288
82289
82290
82291
82292
82293
82294
82295
82296
82297
82298
82299
82300
82301
82302
82303
82304
82305
82306
82307
82308
82309
82310
82311
82312
82313
82314
82315
82316
82317
82318
82319
82320
82321
82322
82323
82324
82325
82326
82327
82328
82329
82330
82331
82332
82333
82334
82335
82336
82337
82338
82339
82340
82341
82342
82343
82344
82345
82346
82347
82348
82349
82350
82351
82352
82353
82354
82355
82356
82357
82358
82359
82360
82361
82362
82363
82364
82365
82366
82367
82368
82369
82370
82371
82372
82373
82374
82375
82376
82377
82378
82379
82380
82381
82382
82383
82384
82385
82386
82387
82388
82389
82390
82391
82392
82393
82394
82395
82396
82397
82398
82399
82400
82401
82402
82403
82404
82405
82406
82407
82408
82409
82410
82411
82412
82413
82414
82415
82416
82417
82418
82419
82420
82421
82422
82423
82424
82425
82426
82427
82428
82429
82430
82431
82432
82433
82434
82435
82436
82437
82438
82439
82440
82441
82442
82443
82444
82445
82446
82447
82448
82449
82450
82451
82452
82453
82454
82455
82456
82457
82458
82459
82460
82461
82462
82463
82464
82465
82466
82467
82468
82469
82470
82471
82472
82473
82474
82475
82476
82477
82478
82479
82480
82481
82482
82483
82484
82485
82486
82487
82488
82489
82490
82491
82492
82493
82494
82495
82496
82497
82498
82499
82500
82501
82502
82503
82504
82505
82506
82507
82508
82509
82510
82511
82512
82513
82514
82515
82516
82517
82518
82519
82520
82521
82522
82523
82524
82525
82526
82527
82528
82529
82530
82531
82532
82533
82534
82535
82536
82537
82538
82539
82540
82541
82542
82543
82544
82545
82546
82547
82548
82549
82550
82551
82552
82553
82554
82555
82556
82557
82558
82559
82560
82561
82562
82563
82564
82565
82566
82567
82568
82569
82570
82571
82572
82573
82574
82575
82576
82577
82578
82579
82580
82581
82582
82583
82584
82585
82586
82587
82588
82589
82590
82591
82592
82593
82594
82595
82596
82597
82598
82599
82600
82601
82602
82603
82604
82605
82606
82607
82608
82609
82610
82611
82612
82613
82614
82615
82616
82617
82618
82619
82620
82621
82622
82623
82624
82625
82626
82627
82628
82629
82630
82631
82632
82633
82634
82635
82636
82637
82638
82639
82640
82641
82642
82643
82644
82645
82646
82647
82648
82649
82650
82651
82652
82653
82654
82655
82656
82657
82658
82659
82660
82661
82662
82663
82664
82665
82666
82667
82668
82669
82670
82671
82672
82673
82674
82675
82676
82677
82678
82679
82680
82681
82682
82683
82684
82685
82686
82687
82688
82689
82690
82691
82692
82693
82694
82695
82696
82697
82698
82699
82700
82701
82702
82703
82704
82705
82706
82707
82708
82709
82710
82711
82712
82713
82714
82715
82716
82717
82718
82719
82720
82721
82722
82723
82724
82725
82726
82727
82728
82729
82730
82731
82732
82733
82734
82735
82736
82737
82738
82739
82740
82741
82742
82743
82744
82745
82746
82747
82748
82749
82750
82751
82752
82753
82754
82755
82756
82757
82758
82759
82760
82761
82762
82763
82764
82765
82766
82767
82768
82769
82770
82771
82772
82773
82774
82775
82776
82777
82778
82779
82780
82781
82782
82783
82784
82785
82786
82787
82788
82789
82790
82791
82792
82793
82794
82795
82796
82797
82798
82799
82800
82801
82802
82803
82804
82805
82806
82807
82808
82809
82810
82811
82812
82813
82814
82815
82816
82817
82818
82819
82820
82821
82822
82823
82824
82825
82826
82827
82828
82829
82830
82831
82832
82833
82834
82835
82836
82837
82838
82839
82840
82841
82842
82843
82844
82845
82846
82847
82848
82849
82850
82851
82852
82853
82854
82855
82856
82857
82858
82859
82860
82861
82862
82863
82864
82865
82866
82867
82868
82869
82870
82871
82872
82873
82874
82875
82876
82877
82878
82879
82880
82881
82882
82883
82884
82885
82886
82887
82888
82889
82890
82891
82892
82893
82894
82895
82896
82897
82898
82899
82900
82901
82902
82903
82904
82905
82906
82907
82908
82909
82910
82911
82912
82913
82914
82915
82916
82917
82918
82919
82920
82921
82922
82923
82924
82925
82926
82927
82928
82929
82930
82931
82932
82933
82934
82935
82936
82937
82938
82939
82940
82941
82942
82943
82944
82945
82946
82947
82948
82949
82950
82951
82952
82953
82954
82955
82956
82957
82958
82959
82960
82961
82962
82963
82964
82965
82966
82967
82968
82969
82970
82971
82972
82973
82974
82975
82976
82977
82978
82979
82980
82981
82982
82983
82984
82985
82986
82987
82988
82989
82990
82991
82992
82993
82994
82995
82996
82997
82998
82999
83000
83001
83002
83003
83004
83005
83006
83007
83008
83009
83010
83011
83012
83013
83014
83015
83016
83017
83018
83019
83020
83021
83022
83023
83024
83025
83026
83027
83028
83029
83030
83031
83032
83033
83034
83035
83036
83037
83038
83039
83040
83041
83042
83043
83044
83045
83046
83047
83048
83049
83050
83051
83052
83053
83054
83055
83056
83057
83058
83059
83060
83061
83062
83063
83064
83065
83066
83067
83068
83069
83070
83071
83072
83073
83074
83075
83076
83077
83078
83079
83080
83081
83082
83083
83084
83085
83086
83087
83088
83089
83090
83091
83092
83093
83094
83095
83096
83097
83098
83099
83100
83101
83102
83103
83104
83105
83106
83107
83108
83109
83110
83111
83112
83113
83114
83115
83116
83117
83118
83119
83120
83121
83122
83123
83124
83125
83126
83127
83128
83129
83130
83131
83132
83133
83134
83135
83136
83137
83138
83139
83140
83141
83142
83143
83144
83145
83146
83147
83148
83149
83150
83151
83152
83153
83154
83155
83156
83157
83158
83159
83160
83161
83162
83163
83164
83165
83166
83167
83168
83169
83170
83171
83172
83173
83174
83175
83176
83177
83178
83179
83180
83181
83182
83183
83184
83185
83186
83187
83188
83189
83190
83191
83192
83193
83194
83195
83196
83197
83198
83199
83200
83201
83202
83203
83204
83205
83206
83207
83208
83209
83210
83211
83212
83213
83214
83215
83216
83217
83218
83219
83220
83221
83222
83223
83224
83225
83226
83227
83228
83229
83230
83231
83232
83233
83234
83235
83236
83237
83238
83239
83240
83241
83242
83243
83244
83245
83246
83247
83248
83249
83250
83251
83252
83253
83254
83255
83256
83257
83258
83259
83260
83261
83262
83263
83264
83265
83266
83267
83268
83269
83270
83271
83272
83273
83274
83275
83276
83277
83278
83279
83280
83281
83282
83283
83284
83285
83286
83287
83288
83289
83290
83291
83292
83293
83294
83295
83296
83297
83298
83299
83300
83301
83302
83303
83304
83305
83306
83307
83308
83309
83310
83311
83312
83313
83314
83315
83316
83317
83318
83319
83320
83321
83322
83323
83324
83325
83326
83327
83328
83329
83330
83331
83332
83333
83334
83335
83336
83337
83338
83339
83340
83341
83342
83343
83344
83345
83346
83347
83348
83349
83350
83351
83352
83353
83354
83355
83356
83357
83358
83359
83360
83361
83362
83363
83364
83365
83366
83367
83368
83369
83370
83371
83372
83373
83374
83375
83376
83377
83378
83379
83380
83381
83382
83383
83384
83385
83386
83387
83388
83389
83390
83391
83392
83393
83394
83395
83396
83397
83398
83399
83400
83401
83402
83403
83404
83405
83406
83407
83408
83409
83410
83411
83412
83413
83414
83415
83416
83417
83418
83419
83420
83421
83422
83423
83424
83425
83426
83427
83428
83429
83430
83431
83432
83433
83434
83435
83436
83437
83438
83439
83440
83441
83442
83443
83444
83445
83446
83447
83448
83449
83450
83451
83452
83453
83454
83455
83456
83457
83458
83459
83460
83461
83462
83463
83464
83465
83466
83467
83468
83469
83470
83471
83472
83473
83474
83475
83476
83477
83478
83479
83480
83481
83482
83483
83484
83485
83486
83487
83488
83489
83490
83491
83492
83493
83494
83495
83496
83497
83498
83499
83500
83501
83502
83503
83504
83505
83506
83507
83508
83509
83510
83511
83512
83513
83514
83515
83516
83517
83518
83519
83520
83521
83522
83523
83524
83525
83526
83527
83528
83529
83530
83531
83532
83533
83534
83535
83536
83537
83538
83539
83540
83541
83542
83543
83544
83545
83546
83547
83548
83549
83550
83551
83552
83553
83554
83555
83556
83557
83558
83559
83560
83561
83562
83563
83564
83565
83566
83567
83568
83569
83570
83571
83572
83573
83574
83575
83576
83577
83578
83579
83580
83581
83582
83583
83584
83585
83586
83587
83588
83589
83590
83591
83592
83593
83594
83595
83596
83597
83598
83599
83600
83601
83602
83603
83604
83605
83606
83607
83608
83609
83610
83611
83612
83613
83614
83615
83616
83617
83618
83619
83620
83621
83622
83623
83624
83625
83626
83627
83628
83629
83630
83631
83632
83633
83634
83635
83636
83637
83638
83639
83640
83641
83642
83643
83644
83645
83646
83647
83648
83649
83650
83651
83652
83653
83654
83655
83656
83657
83658
83659
83660
83661
83662
83663
83664
83665
83666
83667
83668
83669
83670
83671
83672
83673
83674
83675
83676
83677
83678
83679
83680
83681
83682
83683
83684
83685
83686
83687
83688
83689
83690
83691
83692
83693
83694
83695
83696
83697
83698
83699
83700
83701
83702
83703
83704
83705
83706
83707
83708
83709
83710
83711
83712
83713
83714
83715
83716
83717
83718
83719
83720
83721
83722
83723
83724
83725
83726
83727
83728
83729
83730
83731
83732
83733
83734
83735
83736
83737
83738
83739
83740
83741
83742
83743
83744
83745
83746
83747
83748
83749
83750
83751
83752
83753
83754
83755
83756
83757
83758
83759
83760
83761
83762
83763
83764
83765
83766
83767
83768
83769
83770
83771
83772
83773
83774
83775
83776
83777
83778
83779
83780
83781
83782
83783
83784
83785
83786
83787
83788
83789
83790
83791
83792
83793
83794
83795
83796
83797
83798
83799
83800
83801
83802
83803
83804
83805
83806
83807
83808
83809
83810
83811
83812
83813
83814
83815
83816
83817
83818
83819
83820
83821
83822
83823
83824
83825
83826
83827
83828
83829
83830
83831
83832
83833
83834
83835
83836
83837
83838
83839
83840
83841
83842
83843
83844
83845
83846
83847
83848
83849
83850
83851
83852
83853
83854
83855
83856
83857
83858
83859
83860
83861
83862
83863
83864
83865
83866
83867
83868
83869
83870
83871
83872
83873
83874
83875
83876
83877
83878
83879
83880
83881
83882
83883
83884
83885
83886
83887
83888
83889
83890
83891
83892
83893
83894
83895
83896
83897
83898
83899
83900
83901
83902
83903
83904
83905
83906
83907
83908
83909
83910
83911
83912
83913
83914
83915
83916
83917
83918
83919
83920
83921
83922
83923
83924
83925
83926
83927
83928
83929
83930
83931
83932
83933
83934
83935
83936
83937
83938
83939
83940
83941
83942
83943
83944
83945
83946
83947
83948
83949
83950
83951
83952
83953
83954
83955
83956
83957
83958
83959
83960
83961
83962
83963
83964
83965
83966
83967
83968
83969
83970
83971
83972
83973
83974
83975
83976
83977
83978
83979
83980
83981
83982
83983
83984
83985
83986
83987
83988
83989
83990
83991
83992
83993
83994
83995
83996
83997
83998
83999
84000
84001
84002
84003
84004
84005
84006
84007
84008
84009
84010
84011
84012
84013
84014
84015
84016
84017
84018
84019
84020
84021
84022
84023
84024
84025
84026
84027
84028
84029
84030
84031
84032
84033
84034
84035
84036
84037
84038
84039
84040
84041
84042
84043
84044
84045
84046
84047
84048
84049
84050
84051
84052
84053
84054
84055
84056
84057
84058
84059
84060
84061
84062
84063
84064
84065
84066
84067
84068
84069
84070
84071
84072
84073
84074
84075
84076
84077
84078
84079
84080
84081
84082
84083
84084
84085
84086
84087
84088
84089
84090
84091
84092
84093
84094
84095
84096
84097
84098
84099
84100
84101
84102
84103
84104
84105
84106
84107
84108
84109
84110
84111
84112
84113
84114
84115
84116
84117
84118
84119
84120
84121
84122
84123
84124
84125
84126
84127
84128
84129
84130
84131
84132
84133
84134
84135
84136
84137
84138
84139
84140
84141
84142
84143
84144
84145
84146
84147
84148
84149
84150
84151
84152
84153
84154
84155
84156
84157
84158
84159
84160
84161
84162
84163
84164
84165
84166
84167
84168
84169
84170
84171
84172
84173
84174
84175
84176
84177
84178
84179
84180
84181
84182
84183
84184
84185
84186
84187
84188
84189
84190
84191
84192
84193
84194
84195
84196
84197
84198
84199
84200
84201
84202
84203
84204
84205
84206
84207
84208
84209
84210
84211
84212
84213
84214
84215
84216
84217
84218
84219
84220
84221
84222
84223
84224
84225
84226
84227
84228
84229
84230
84231
84232
84233
84234
84235
84236
84237
84238
84239
84240
84241
84242
84243
84244
84245
84246
84247
84248
84249
84250
84251
84252
84253
84254
84255
84256
84257
84258
84259
84260
84261
84262
84263
84264
84265
84266
84267
84268
84269
84270
84271
84272
84273
84274
84275
84276
84277
84278
84279
84280
84281
84282
84283
84284
84285
84286
84287
84288
84289
84290
84291
84292
84293
84294
84295
84296
84297
84298
84299
84300
84301
84302
84303
84304
84305
84306
84307
84308
84309
84310
84311
84312
84313
84314
84315
84316
84317
84318
84319
84320
84321
84322
84323
84324
84325
84326
84327
84328
84329
84330
84331
84332
84333
84334
84335
84336
84337
84338
84339
84340
84341
84342
84343
84344
84345
84346
84347
84348
84349
84350
84351
84352
84353
84354
84355
84356
84357
84358
84359
84360
84361
84362
84363
84364
84365
84366
84367
84368
84369
84370
84371
84372
84373
84374
84375
84376
84377
84378
84379
84380
84381
84382
84383
84384
84385
84386
84387
84388
84389
84390
84391
84392
84393
84394
84395
84396
84397
84398
84399
84400
84401
84402
84403
84404
84405
84406
84407
84408
84409
84410
84411
84412
84413
84414
84415
84416
84417
84418
84419
84420
84421
84422
84423
84424
84425
84426
84427
84428
84429
84430
84431
84432
84433
84434
84435
84436
84437
84438
84439
84440
84441
84442
84443
84444
84445
84446
84447
84448
84449
84450
84451
84452
84453
84454
84455
84456
84457
84458
84459
84460
84461
84462
84463
84464
84465
84466
84467
84468
84469
84470
84471
84472
84473
84474
84475
84476
84477
84478
84479
84480
84481
84482
84483
84484
84485
84486
84487
84488
84489
84490
84491
84492
84493
84494
84495
84496
84497
84498
84499
84500
84501
84502
84503
84504
84505
84506
84507
84508
84509
84510
84511
84512
84513
84514
84515
84516
84517
84518
84519
84520
84521
84522
84523
84524
84525
84526
84527
84528
84529
84530
84531
84532
84533
84534
84535
84536
84537
84538
84539
84540
84541
84542
84543
84544
84545
84546
84547
84548
84549
84550
84551
84552
84553
84554
84555
84556
84557
84558
84559
84560
84561
84562
84563
84564
84565
84566
84567
84568
84569
84570
84571
84572
84573
84574
84575
84576
84577
84578
84579
84580
84581
84582
84583
84584
84585
84586
84587
84588
84589
84590
84591
84592
84593
84594
84595
84596
84597
84598
84599
84600
84601
84602
84603
84604
84605
84606
84607
84608
84609
84610
84611
84612
84613
84614
84615
84616
84617
84618
84619
84620
84621
84622
84623
84624
84625
84626
84627
84628
84629
84630
84631
84632
84633
84634
84635
84636
84637
84638
84639
84640
84641
84642
84643
84644
84645
84646
84647
84648
84649
84650
84651
84652
84653
84654
84655
84656
84657
84658
84659
84660
84661
84662
84663
84664
84665
84666
84667
84668
84669
84670
84671
84672
84673
84674
84675
84676
84677
84678
84679
84680
84681
84682
84683
84684
84685
84686
84687
84688
84689
84690
84691
84692
84693
84694
84695
84696
84697
84698
84699
84700
84701
84702
84703
84704
84705
84706
84707
84708
84709
84710
84711
84712
84713
84714
84715
84716
84717
84718
84719
84720
84721
84722
84723
84724
84725
84726
84727
84728
84729
84730
84731
84732
84733
84734
84735
84736
84737
84738
84739
84740
84741
84742
84743
84744
84745
84746
84747
84748
84749
84750
84751
84752
84753
84754
84755
84756
84757
84758
84759
84760
84761
84762
84763
84764
84765
84766
84767
84768
84769
84770
84771
84772
84773
84774
84775
84776
84777
84778
84779
84780
84781
84782
84783
84784
84785
84786
84787
84788
84789
84790
84791
84792
84793
84794
84795
84796
84797
84798
84799
84800
84801
84802
84803
84804
84805
84806
84807
84808
84809
84810
84811
84812
84813
84814
84815
84816
84817
84818
84819
84820
84821
84822
84823
84824
84825
84826
84827
84828
84829
84830
84831
84832
84833
84834
84835
84836
84837
84838
84839
84840
84841
84842
84843
84844
84845
84846
84847
84848
84849
84850
84851
84852
84853
84854
84855
84856
84857
84858
84859
84860
84861
84862
84863
84864
84865
84866
84867
84868
84869
84870
84871
84872
84873
84874
84875
84876
84877
84878
84879
84880
84881
84882
84883
84884
84885
84886
84887
84888
84889
84890
84891
84892
84893
84894
84895
84896
84897
84898
84899
84900
84901
84902
84903
84904
84905
84906
84907
84908
84909
84910
84911
84912
84913
84914
84915
84916
84917
84918
84919
84920
84921
84922
84923
84924
84925
84926
84927
84928
84929
84930
84931
84932
84933
84934
84935
84936
84937
84938
84939
84940
84941
84942
84943
84944
84945
84946
84947
84948
84949
84950
84951
84952
84953
84954
84955
84956
84957
84958
84959
84960
84961
84962
84963
84964
84965
84966
84967
84968
84969
84970
84971
84972
84973
84974
84975
84976
84977
84978
84979
84980
84981
84982
84983
84984
84985
84986
84987
84988
84989
84990
84991
84992
84993
84994
84995
84996
84997
84998
84999
85000
85001
85002
85003
85004
85005
85006
85007
85008
85009
85010
85011
85012
85013
85014
85015
85016
85017
85018
85019
85020
85021
85022
85023
85024
85025
85026
85027
85028
85029
85030
85031
85032
85033
85034
85035
85036
85037
85038
85039
85040
85041
85042
85043
85044
85045
85046
85047
85048
85049
85050
85051
85052
85053
85054
85055
85056
85057
85058
85059
85060
85061
85062
85063
85064
85065
85066
85067
85068
85069
85070
85071
85072
85073
85074
85075
85076
85077
85078
85079
85080
85081
85082
85083
85084
85085
85086
85087
85088
85089
85090
85091
85092
85093
85094
85095
85096
85097
85098
85099
85100
85101
85102
85103
85104
85105
85106
85107
85108
85109
85110
85111
85112
85113
85114
85115
85116
85117
85118
85119
85120
85121
85122
85123
85124
85125
85126
85127
85128
85129
85130
85131
85132
85133
85134
85135
85136
85137
85138
85139
85140
85141
85142
85143
85144
85145
85146
85147
85148
85149
85150
85151
85152
85153
85154
85155
85156
85157
85158
85159
85160
85161
85162
85163
85164
85165
85166
85167
85168
85169
85170
85171
85172
85173
85174
85175
85176
85177
85178
85179
85180
85181
85182
85183
85184
85185
85186
85187
85188
85189
85190
85191
85192
85193
85194
85195
85196
85197
85198
85199
85200
85201
85202
85203
85204
85205
85206
85207
85208
85209
85210
85211
85212
85213
85214
85215
85216
85217
85218
85219
85220
85221
85222
85223
85224
85225
85226
85227
85228
85229
85230
85231
85232
85233
85234
85235
85236
85237
85238
85239
85240
85241
85242
85243
85244
85245
85246
85247
85248
85249
85250
85251
85252
85253
85254
85255
85256
85257
85258
85259
85260
85261
85262
85263
85264
85265
85266
85267
85268
85269
85270
85271
85272
85273
85274
85275
85276
85277
85278
85279
85280
85281
85282
85283
85284
85285
85286
85287
85288
85289
85290
85291
85292
85293
85294
85295
85296
85297
85298
85299
85300
85301
85302
85303
85304
85305
85306
85307
85308
85309
85310
85311
85312
85313
85314
85315
85316
85317
85318
85319
85320
85321
85322
85323
85324
85325
85326
85327
85328
85329
85330
85331
85332
85333
85334
85335
85336
85337
85338
85339
85340
85341
85342
85343
85344
85345
85346
85347
85348
85349
85350
85351
85352
85353
85354
85355
85356
85357
85358
85359
85360
85361
85362
85363
85364
85365
85366
85367
85368
85369
85370
85371
85372
85373
85374
85375
85376
85377
85378
85379
85380
85381
85382
85383
85384
85385
85386
85387
85388
85389
85390
85391
85392
85393
85394
85395
85396
85397
85398
85399
85400
85401
85402
85403
85404
85405
85406
85407
85408
85409
85410
85411
85412
85413
85414
85415
85416
85417
85418
85419
85420
85421
85422
85423
85424
85425
85426
85427
85428
85429
85430
85431
85432
85433
85434
85435
85436
85437
85438
85439
85440
85441
85442
85443
85444
85445
85446
85447
85448
85449
85450
85451
85452
85453
85454
85455
85456
85457
85458
85459
85460
85461
85462
85463
85464
85465
85466
85467
85468
85469
85470
85471
85472
85473
85474
85475
85476
85477
85478
85479
85480
85481
85482
85483
85484
85485
85486
85487
85488
85489
85490
85491
85492
85493
85494
85495
85496
85497
85498
85499
85500
85501
85502
85503
85504
85505
85506
85507
85508
85509
85510
85511
85512
85513
85514
85515
85516
85517
85518
85519
85520
85521
85522
85523
85524
85525
85526
85527
85528
85529
85530
85531
85532
85533
85534
85535
85536
85537
85538
85539
85540
85541
85542
85543
85544
85545
85546
85547
85548
85549
85550
85551
85552
85553
85554
85555
85556
85557
85558
85559
85560
85561
85562
85563
85564
85565
85566
85567
85568
85569
85570
85571
85572
85573
85574
85575
85576
85577
85578
85579
85580
85581
85582
85583
85584
85585
85586
85587
85588
85589
85590
85591
85592
85593
85594
85595
85596
85597
85598
85599
85600
85601
85602
85603
85604
85605
85606
85607
85608
85609
85610
85611
85612
85613
85614
85615
85616
85617
85618
85619
85620
85621
85622
85623
85624
85625
85626
85627
85628
85629
85630
85631
85632
85633
85634
85635
85636
85637
85638
85639
85640
85641
85642
85643
85644
85645
85646
85647
85648
85649
85650
85651
85652
85653
85654
85655
85656
85657
85658
85659
85660
85661
85662
85663
85664
85665
85666
85667
85668
85669
85670
85671
85672
85673
85674
85675
85676
85677
85678
85679
85680
85681
85682
85683
85684
85685
85686
85687
85688
85689
85690
85691
85692
85693
85694
85695
85696
85697
85698
85699
85700
85701
85702
85703
85704
85705
85706
85707
85708
85709
85710
85711
85712
85713
85714
85715
85716
85717
85718
85719
85720
85721
85722
85723
85724
85725
85726
85727
85728
85729
85730
85731
85732
85733
85734
85735
85736
85737
85738
85739
85740
85741
85742
85743
85744
85745
85746
85747
85748
85749
85750
85751
85752
85753
85754
85755
85756
85757
85758
85759
85760
85761
85762
85763
85764
85765
85766
85767
85768
85769
85770
85771
85772
85773
85774
85775
85776
85777
85778
85779
85780
85781
85782
85783
85784
85785
85786
85787
85788
85789
85790
85791
85792
85793
85794
85795
85796
85797
85798
85799
85800
85801
85802
85803
85804
85805
85806
85807
85808
85809
85810
85811
85812
85813
85814
85815
85816
85817
85818
85819
85820
85821
85822
85823
85824
85825
85826
85827
85828
85829
85830
85831
85832
85833
85834
85835
85836
85837
85838
85839
85840
85841
85842
85843
85844
85845
85846
85847
85848
85849
85850
85851
85852
85853
85854
85855
85856
85857
85858
85859
85860
85861
85862
85863
85864
85865
85866
85867
85868
85869
85870
85871
85872
85873
85874
85875
85876
85877
85878
85879
85880
85881
85882
85883
85884
85885
85886
85887
85888
85889
85890
85891
85892
85893
85894
85895
85896
85897
85898
85899
85900
85901
85902
85903
85904
85905
85906
85907
85908
85909
85910
85911
85912
85913
85914
85915
85916
85917
85918
85919
85920
85921
85922
85923
85924
85925
85926
85927
85928
85929
85930
85931
85932
85933
85934
85935
85936
85937
85938
85939
85940
85941
85942
85943
85944
85945
85946
85947
85948
85949
85950
85951
85952
85953
85954
85955
85956
85957
85958
85959
85960
85961
85962
85963
85964
85965
85966
85967
85968
85969
85970
85971
85972
85973
85974
85975
85976
85977
85978
85979
85980
85981
85982
85983
85984
85985
85986
85987
85988
85989
85990
85991
85992
85993
85994
85995
85996
85997
85998
85999
86000
86001
86002
86003
86004
86005
86006
86007
86008
86009
86010
86011
86012
86013
86014
86015
86016
86017
86018
86019
86020
86021
86022
86023
86024
86025
86026
86027
86028
86029
86030
86031
86032
86033
86034
86035
86036
86037
86038
86039
86040
86041
86042
86043
86044
86045
86046
86047
86048
86049
86050
86051
86052
86053
86054
86055
86056
86057
86058
86059
86060
86061
86062
86063
86064
86065
86066
86067
86068
86069
86070
86071
86072
86073
86074
86075
86076
86077
86078
86079
86080
86081
86082
86083
86084
86085
86086
86087
86088
86089
86090
86091
86092
86093
86094
86095
86096
86097
86098
86099
86100
86101
86102
86103
86104
86105
86106
86107
86108
86109
86110
86111
86112
86113
86114
86115
86116
86117
86118
86119
86120
86121
86122
86123
86124
86125
86126
86127
86128
86129
86130
86131
86132
86133
86134
86135
86136
86137
86138
86139
86140
86141
86142
86143
86144
86145
86146
86147
86148
86149
86150
86151
86152
86153
86154
86155
86156
86157
86158
86159
86160
86161
86162
86163
86164
86165
86166
86167
86168
86169
86170
86171
86172
86173
86174
86175
86176
86177
86178
86179
86180
86181
86182
86183
86184
86185
86186
86187
86188
86189
86190
86191
86192
86193
86194
86195
86196
86197
86198
86199
86200
86201
86202
86203
86204
86205
86206
86207
86208
86209
86210
86211
86212
86213
86214
86215
86216
86217
86218
86219
86220
86221
86222
86223
86224
86225
86226
86227
86228
86229
86230
86231
86232
86233
86234
86235
86236
86237
86238
86239
86240
86241
86242
86243
86244
86245
86246
86247
86248
86249
86250
86251
86252
86253
86254
86255
86256
86257
86258
86259
86260
86261
86262
86263
86264
86265
86266
86267
86268
86269
86270
86271
86272
86273
86274
86275
86276
86277
86278
86279
86280
86281
86282
86283
86284
86285
86286
86287
86288
86289
86290
86291
86292
86293
86294
86295
86296
86297
86298
86299
86300
86301
86302
86303
86304
86305
86306
86307
86308
86309
86310
86311
86312
86313
86314
86315
86316
86317
86318
86319
86320
86321
86322
86323
86324
86325
86326
86327
86328
86329
86330
86331
86332
86333
86334
86335
86336
86337
86338
86339
86340
86341
86342
86343
86344
86345
86346
86347
86348
86349
86350
86351
86352
86353
86354
86355
86356
86357
86358
86359
86360
86361
86362
86363
86364
86365
86366
86367
86368
86369
86370
86371
86372
86373
86374
86375
86376
86377
86378
86379
86380
86381
86382
86383
86384
86385
86386
86387
86388
86389
86390
86391
86392
86393
86394
86395
86396
86397
86398
86399
86400
86401
86402
86403
86404
86405
86406
86407
86408
86409
86410
86411
86412
86413
86414
86415
86416
86417
86418
86419
86420
86421
86422
86423
86424
86425
86426
86427
86428
86429
86430
86431
86432
86433
86434
86435
86436
86437
86438
86439
86440
86441
86442
86443
86444
86445
86446
86447
86448
86449
86450
86451
86452
86453
86454
86455
86456
86457
86458
86459
86460
86461
86462
86463
86464
86465
86466
86467
86468
86469
86470
86471
86472
86473
86474
86475
86476
86477
86478
86479
86480
86481
86482
86483
86484
86485
86486
86487
86488
86489
86490
86491
86492
86493
86494
86495
86496
86497
86498
86499
86500
86501
86502
86503
86504
86505
86506
86507
86508
86509
86510
86511
86512
86513
86514
86515
86516
86517
86518
86519
86520
86521
86522
86523
86524
86525
86526
86527
86528
86529
86530
86531
86532
86533
86534
86535
86536
86537
86538
86539
86540
86541
86542
86543
86544
86545
86546
86547
86548
86549
86550
86551
86552
86553
86554
86555
86556
86557
86558
86559
86560
86561
86562
86563
86564
86565
86566
86567
86568
86569
86570
86571
86572
86573
86574
86575
86576
86577
86578
86579
86580
86581
86582
86583
86584
86585
86586
86587
86588
86589
86590
86591
86592
86593
86594
86595
86596
86597
86598
86599
86600
86601
86602
86603
86604
86605
86606
86607
86608
86609
86610
86611
86612
86613
86614
86615
86616
86617
86618
86619
86620
86621
86622
86623
86624
86625
86626
86627
86628
86629
86630
86631
86632
86633
86634
86635
86636
86637
86638
86639
86640
86641
86642
86643
86644
86645
86646
86647
86648
86649
86650
86651
86652
86653
86654
86655
86656
86657
86658
86659
86660
86661
86662
86663
86664
86665
86666
86667
86668
86669
86670
86671
86672
86673
86674
86675
86676
86677
86678
86679
86680
86681
86682
86683
86684
86685
86686
86687
86688
86689
86690
86691
86692
86693
86694
86695
86696
86697
86698
86699
86700
86701
86702
86703
86704
86705
86706
86707
86708
86709
86710
86711
86712
86713
86714
86715
86716
86717
86718
86719
86720
86721
86722
86723
86724
86725
86726
86727
86728
86729
86730
86731
86732
86733
86734
86735
86736
86737
86738
86739
86740
86741
86742
86743
86744
86745
86746
86747
86748
86749
86750
86751
86752
86753
86754
86755
86756
86757
86758
86759
86760
86761
86762
86763
86764
86765
86766
86767
86768
86769
86770
86771
86772
86773
86774
86775
86776
86777
86778
86779
86780
86781
86782
86783
86784
86785
86786
86787
86788
86789
86790
86791
86792
86793
86794
86795
86796
86797
86798
86799
86800
86801
86802
86803
86804
86805
86806
86807
86808
86809
86810
86811
86812
86813
86814
86815
86816
86817
86818
86819
86820
86821
86822
86823
86824
86825
86826
86827
86828
86829
86830
86831
86832
86833
86834
86835
86836
86837
86838
86839
86840
86841
86842
86843
86844
86845
86846
86847
86848
86849
86850
86851
86852
86853
86854
86855
86856
86857
86858
86859
86860
86861
86862
86863
86864
86865
86866
86867
86868
86869
86870
86871
86872
86873
86874
86875
86876
86877
86878
86879
86880
86881
86882
86883
86884
86885
86886
86887
86888
86889
86890
86891
86892
86893
86894
86895
86896
86897
86898
86899
86900
86901
86902
86903
86904
86905
86906
86907
86908
86909
86910
86911
86912
86913
86914
86915
86916
86917
86918
86919
86920
86921
86922
86923
86924
86925
86926
86927
86928
86929
86930
86931
86932
86933
86934
86935
86936
86937
86938
86939
86940
86941
86942
86943
86944
86945
86946
86947
86948
86949
86950
86951
86952
86953
86954
86955
86956
86957
86958
86959
86960
86961
86962
86963
86964
86965
86966
86967
86968
86969
86970
86971
86972
86973
86974
86975
86976
86977
86978
86979
86980
86981
86982
86983
86984
86985
86986
86987
86988
86989
86990
86991
86992
86993
86994
86995
86996
86997
86998
86999
87000
87001
87002
87003
87004
87005
87006
87007
87008
87009
87010
87011
87012
87013
87014
87015
87016
87017
87018
87019
87020
87021
87022
87023
87024
87025
87026
87027
87028
87029
87030
87031
87032
87033
87034
87035
87036
87037
87038
87039
87040
87041
87042
87043
87044
87045
87046
87047
87048
87049
87050
87051
87052
87053
87054
87055
87056
87057
87058
87059
87060
87061
87062
87063
87064
87065
87066
87067
87068
87069
87070
87071
87072
87073
87074
87075
87076
87077
87078
87079
87080
87081
87082
87083
87084
87085
87086
87087
87088
87089
87090
87091
87092
87093
87094
87095
87096
87097
87098
87099
87100
87101
87102
87103
87104
87105
87106
87107
87108
87109
87110
87111
87112
87113
87114
87115
87116
87117
87118
87119
87120
87121
87122
87123
87124
87125
87126
87127
87128
87129
87130
87131
87132
87133
87134
87135
87136
87137
87138
87139
87140
87141
87142
87143
87144
87145
87146
87147
87148
87149
87150
87151
87152
87153
87154
87155
87156
87157
87158
87159
87160
87161
87162
87163
87164
87165
87166
87167
87168
87169
87170
87171
87172
87173
87174
87175
87176
87177
87178
87179
87180
87181
87182
87183
87184
87185
87186
87187
87188
87189
87190
87191
87192
87193
87194
87195
87196
87197
87198
87199
87200
87201
87202
87203
87204
87205
87206
87207
87208
87209
87210
87211
87212
87213
87214
87215
87216
87217
87218
87219
87220
87221
87222
87223
87224
87225
87226
87227
87228
87229
87230
87231
87232
87233
87234
87235
87236
87237
87238
87239
87240
87241
87242
87243
87244
87245
87246
87247
87248
87249
87250
87251
87252
87253
87254
87255
87256
87257
87258
87259
87260
87261
87262
87263
87264
87265
87266
87267
87268
87269
87270
87271
87272
87273
87274
87275
87276
87277
87278
87279
87280
87281
87282
87283
87284
87285
87286
87287
87288
87289
87290
87291
87292
87293
87294
87295
87296
87297
87298
87299
87300
87301
87302
87303
87304
87305
87306
87307
87308
87309
87310
87311
87312
87313
87314
87315
87316
87317
87318
87319
87320
87321
87322
87323
87324
87325
87326
87327
87328
87329
87330
87331
87332
87333
87334
87335
87336
87337
87338
87339
87340
87341
87342
87343
87344
87345
87346
87347
87348
87349
87350
87351
87352
87353
87354
87355
87356
87357
87358
87359
87360
87361
87362
87363
87364
87365
87366
87367
87368
87369
87370
87371
87372
87373
87374
87375
87376
87377
87378
87379
87380
87381
87382
87383
87384
87385
87386
87387
87388
87389
87390
87391
87392
87393
87394
87395
87396
87397
87398
87399
87400
87401
87402
87403
87404
87405
87406
87407
87408
87409
87410
87411
87412
87413
87414
87415
87416
87417
87418
87419
87420
87421
87422
87423
87424
87425
87426
87427
87428
87429
87430
87431
87432
87433
87434
87435
87436
87437
87438
87439
87440
87441
87442
87443
87444
87445
87446
87447
87448
87449
87450
87451
87452
87453
87454
87455
87456
87457
87458
87459
87460
87461
87462
87463
87464
87465
87466
87467
87468
87469
87470
87471
87472
87473
87474
87475
87476
87477
87478
87479
87480
87481
87482
87483
87484
87485
87486
87487
87488
87489
87490
87491
87492
87493
87494
87495
87496
87497
87498
87499
87500
87501
87502
87503
87504
87505
87506
87507
87508
87509
87510
87511
87512
87513
87514
87515
87516
87517
87518
87519
87520
87521
87522
87523
87524
87525
87526
87527
87528
87529
87530
87531
87532
87533
87534
87535
87536
87537
87538
87539
87540
87541
87542
87543
87544
87545
87546
87547
87548
87549
87550
87551
87552
87553
87554
87555
87556
87557
87558
87559
87560
87561
87562
87563
87564
87565
87566
87567
87568
87569
87570
87571
87572
87573
87574
87575
87576
87577
87578
87579
87580
87581
87582
87583
87584
87585
87586
87587
87588
87589
87590
87591
87592
87593
87594
87595
87596
87597
87598
87599
87600
87601
87602
87603
87604
87605
87606
87607
87608
87609
87610
87611
87612
87613
87614
87615
87616
87617
87618
87619
87620
87621
87622
87623
87624
87625
87626
87627
87628
87629
87630
87631
87632
87633
87634
87635
87636
87637
87638
87639
87640
87641
87642
87643
87644
87645
87646
87647
87648
87649
87650
87651
87652
87653
87654
87655
87656
87657
87658
87659
87660
87661
87662
87663
87664
87665
87666
87667
87668
87669
87670
87671
87672
87673
87674
87675
87676
87677
87678
87679
87680
87681
87682
87683
87684
87685
87686
87687
87688
87689
87690
87691
87692
87693
87694
87695
87696
87697
87698
87699
87700
87701
87702
87703
87704
87705
87706
87707
87708
87709
87710
87711
87712
87713
87714
87715
87716
87717
87718
87719
87720
87721
87722
87723
87724
87725
87726
87727
87728
87729
87730
87731
87732
87733
87734
87735
87736
87737
87738
87739
87740
87741
87742
87743
87744
87745
87746
87747
87748
87749
87750
87751
87752
87753
87754
87755
87756
87757
87758
87759
87760
87761
87762
87763
87764
87765
87766
87767
87768
87769
87770
87771
87772
87773
87774
87775
87776
87777
87778
87779
87780
87781
87782
87783
87784
87785
87786
87787
87788
87789
87790
87791
87792
87793
87794
87795
87796
87797
87798
87799
87800
87801
87802
87803
87804
87805
87806
87807
87808
87809
87810
87811
87812
87813
87814
87815
87816
87817
87818
87819
87820
87821
87822
87823
87824
87825
87826
87827
87828
87829
87830
87831
87832
87833
87834
87835
87836
87837
87838
87839
87840
87841
87842
87843
87844
87845
87846
87847
87848
87849
87850
87851
87852
87853
87854
87855
87856
87857
87858
87859
87860
87861
87862
87863
87864
87865
87866
87867
87868
87869
87870
87871
87872
87873
87874
87875
87876
87877
87878
87879
87880
87881
87882
87883
87884
87885
87886
87887
87888
87889
87890
87891
87892
87893
87894
87895
87896
87897
87898
87899
87900
87901
87902
87903
87904
87905
87906
87907
87908
87909
87910
87911
87912
87913
87914
87915
87916
87917
87918
87919
87920
87921
87922
87923
87924
87925
87926
87927
87928
87929
87930
87931
87932
87933
87934
87935
87936
87937
87938
87939
87940
87941
87942
87943
87944
87945
87946
87947
87948
87949
87950
87951
87952
87953
87954
87955
87956
87957
87958
87959
87960
87961
87962
87963
87964
87965
87966
87967
87968
87969
87970
87971
87972
87973
87974
87975
87976
87977
87978
87979
87980
87981
87982
87983
87984
87985
87986
87987
87988
87989
87990
87991
87992
87993
87994
87995
87996
87997
87998
87999
88000
88001
88002
88003
88004
88005
88006
88007
88008
88009
88010
88011
88012
88013
88014
88015
88016
88017
88018
88019
88020
88021
88022
88023
88024
88025
88026
88027
88028
88029
88030
88031
88032
88033
88034
88035
88036
88037
88038
88039
88040
88041
88042
88043
88044
88045
88046
88047
88048
88049
88050
88051
88052
88053
88054
88055
88056
88057
88058
88059
88060
88061
88062
88063
88064
88065
88066
88067
88068
88069
88070
88071
88072
88073
88074
88075
88076
88077
88078
88079
88080
88081
88082
88083
88084
88085
88086
88087
88088
88089
88090
88091
88092
88093
88094
88095
88096
88097
88098
88099
88100
88101
88102
88103
88104
88105
88106
88107
88108
88109
88110
88111
88112
88113
88114
88115
88116
88117
88118
88119
88120
88121
88122
88123
88124
88125
88126
88127
88128
88129
88130
88131
88132
88133
88134
88135
88136
88137
88138
88139
88140
88141
88142
88143
88144
88145
88146
88147
88148
88149
88150
88151
88152
88153
88154
88155
88156
88157
88158
88159
88160
88161
88162
88163
88164
88165
88166
88167
88168
88169
88170
88171
88172
88173
88174
88175
88176
88177
88178
88179
88180
88181
88182
88183
88184
88185
88186
88187
88188
88189
88190
88191
88192
88193
88194
88195
88196
88197
88198
88199
88200
88201
88202
88203
88204
88205
88206
88207
88208
88209
88210
88211
88212
88213
88214
88215
88216
88217
88218
88219
88220
88221
88222
88223
88224
88225
88226
88227
88228
88229
88230
88231
88232
88233
88234
88235
88236
88237
88238
88239
88240
88241
88242
88243
88244
88245
88246
88247
88248
88249
88250
88251
88252
88253
88254
88255
88256
88257
88258
88259
88260
88261
88262
88263
88264
88265
88266
88267
88268
88269
88270
88271
88272
88273
88274
88275
88276
88277
88278
88279
88280
88281
88282
88283
88284
88285
88286
88287
88288
88289
88290
88291
88292
88293
88294
88295
88296
88297
88298
88299
88300
88301
88302
88303
88304
88305
88306
88307
88308
88309
88310
88311
88312
88313
88314
88315
88316
88317
88318
88319
88320
88321
88322
88323
88324
88325
88326
88327
88328
88329
88330
88331
88332
88333
88334
88335
88336
88337
88338
88339
88340
88341
88342
88343
88344
88345
88346
88347
88348
88349
88350
88351
88352
88353
88354
88355
88356
88357
88358
88359
88360
88361
88362
88363
88364
88365
88366
88367
88368
88369
88370
88371
88372
88373
88374
88375
88376
88377
88378
88379
88380
88381
88382
88383
88384
88385
88386
88387
88388
88389
88390
88391
88392
88393
88394
88395
88396
88397
88398
88399
88400
88401
88402
88403
88404
88405
88406
88407
88408
88409
88410
88411
88412
88413
88414
88415
88416
88417
88418
88419
88420
88421
88422
88423
88424
88425
88426
88427
88428
88429
88430
88431
88432
88433
88434
88435
88436
88437
88438
88439
88440
88441
88442
88443
88444
88445
88446
88447
88448
88449
88450
88451
88452
88453
88454
88455
88456
88457
88458
88459
88460
88461
88462
88463
88464
88465
88466
88467
88468
88469
88470
88471
88472
88473
88474
88475
88476
88477
88478
88479
88480
88481
88482
88483
88484
88485
88486
88487
88488
88489
88490
88491
88492
88493
88494
88495
88496
88497
88498
88499
88500
88501
88502
88503
88504
88505
88506
88507
88508
88509
88510
88511
88512
88513
88514
88515
88516
88517
88518
88519
88520
88521
88522
88523
88524
88525
88526
88527
88528
88529
88530
88531
88532
88533
88534
88535
88536
88537
88538
88539
88540
88541
88542
88543
88544
88545
88546
88547
88548
88549
88550
88551
88552
88553
88554
88555
88556
88557
88558
88559
88560
88561
88562
88563
88564
88565
88566
88567
88568
88569
88570
88571
88572
88573
88574
88575
88576
88577
88578
88579
88580
88581
88582
88583
88584
88585
88586
88587
88588
88589
88590
88591
88592
88593
88594
88595
88596
88597
88598
88599
88600
88601
88602
88603
88604
88605
88606
88607
88608
88609
88610
88611
88612
88613
88614
88615
88616
88617
88618
88619
88620
88621
88622
88623
88624
88625
88626
88627
88628
88629
88630
88631
88632
88633
88634
88635
88636
88637
88638
88639
88640
88641
88642
88643
88644
88645
88646
88647
88648
88649
88650
88651
88652
88653
88654
88655
88656
88657
88658
88659
88660
88661
88662
88663
88664
88665
88666
88667
88668
88669
88670
88671
88672
88673
88674
88675
88676
88677
88678
88679
88680
88681
88682
88683
88684
88685
88686
88687
88688
88689
88690
88691
88692
88693
88694
88695
88696
88697
88698
88699
88700
88701
88702
88703
88704
88705
88706
88707
88708
88709
88710
88711
88712
88713
88714
88715
88716
88717
88718
88719
88720
88721
88722
88723
88724
88725
88726
88727
88728
88729
88730
88731
88732
88733
88734
88735
88736
88737
88738
88739
88740
88741
88742
88743
88744
88745
88746
88747
88748
88749
88750
88751
88752
88753
88754
88755
88756
88757
88758
88759
88760
88761
88762
88763
88764
88765
88766
88767
88768
88769
88770
88771
88772
88773
88774
88775
88776
88777
88778
88779
88780
88781
88782
88783
88784
88785
88786
88787
88788
88789
88790
88791
88792
88793
88794
88795
88796
88797
88798
88799
88800
88801
88802
88803
88804
88805
88806
88807
88808
88809
88810
88811
88812
88813
88814
88815
88816
88817
88818
88819
88820
88821
88822
88823
88824
88825
88826
88827
88828
88829
88830
88831
88832
88833
88834
88835
88836
88837
88838
88839
88840
88841
88842
88843
88844
88845
88846
88847
88848
88849
88850
88851
88852
88853
88854
88855
88856
88857
88858
88859
88860
88861
88862
88863
88864
88865
88866
88867
88868
88869
88870
88871
88872
88873
88874
88875
88876
88877
88878
88879
88880
88881
88882
88883
88884
88885
88886
88887
88888
88889
88890
88891
88892
88893
88894
88895
88896
88897
88898
88899
88900
88901
88902
88903
88904
88905
88906
88907
88908
88909
88910
88911
88912
88913
88914
88915
88916
88917
88918
88919
88920
88921
88922
88923
88924
88925
88926
88927
88928
88929
88930
88931
88932
88933
88934
88935
88936
88937
88938
88939
88940
88941
88942
88943
88944
88945
88946
88947
88948
88949
88950
88951
88952
88953
88954
88955
88956
88957
88958
88959
88960
88961
88962
88963
88964
88965
88966
88967
88968
88969
88970
88971
88972
88973
88974
88975
88976
88977
88978
88979
88980
88981
88982
88983
88984
88985
88986
88987
88988
88989
88990
88991
88992
88993
88994
88995
88996
88997
88998
88999
89000
89001
89002
89003
89004
89005
89006
89007
89008
89009
89010
89011
89012
89013
89014
89015
89016
89017
89018
89019
89020
89021
89022
89023
89024
89025
89026
89027
89028
89029
89030
89031
89032
89033
89034
89035
89036
89037
89038
89039
89040
89041
89042
89043
89044
89045
89046
89047
89048
89049
89050
89051
89052
89053
89054
89055
89056
89057
89058
89059
89060
89061
89062
89063
89064
89065
89066
89067
89068
89069
89070
89071
89072
89073
89074
89075
89076
89077
89078
89079
89080
89081
89082
89083
89084
89085
89086
89087
89088
89089
89090
89091
89092
89093
89094
89095
89096
89097
89098
89099
89100
89101
89102
89103
89104
89105
89106
89107
89108
89109
89110
89111
89112
89113
89114
89115
89116
89117
89118
89119
89120
89121
89122
89123
89124
89125
89126
89127
89128
89129
89130
89131
89132
89133
89134
89135
89136
89137
89138
89139
89140
89141
89142
89143
89144
89145
89146
89147
89148
89149
89150
89151
89152
89153
89154
89155
89156
89157
89158
89159
89160
89161
89162
89163
89164
89165
89166
89167
89168
89169
89170
89171
89172
89173
89174
89175
89176
89177
89178
89179
89180
89181
89182
89183
89184
89185
89186
89187
89188
89189
89190
89191
89192
89193
89194
89195
89196
89197
89198
89199
89200
89201
89202
89203
89204
89205
89206
89207
89208
89209
89210
89211
89212
89213
89214
89215
89216
89217
89218
89219
89220
89221
89222
89223
89224
89225
89226
89227
89228
89229
89230
89231
89232
89233
89234
89235
89236
89237
89238
89239
89240
89241
89242
89243
89244
89245
89246
89247
89248
89249
89250
89251
89252
89253
89254
89255
89256
89257
89258
89259
89260
89261
89262
89263
89264
89265
89266
89267
89268
89269
89270
89271
89272
89273
89274
89275
89276
89277
89278
89279
89280
89281
89282
89283
89284
89285
89286
89287
89288
89289
89290
89291
89292
89293
89294
89295
89296
89297
89298
89299
89300
89301
89302
89303
89304
89305
89306
89307
89308
89309
89310
89311
89312
89313
89314
89315
89316
89317
89318
89319
89320
89321
89322
89323
89324
89325
89326
89327
89328
89329
89330
89331
89332
89333
89334
89335
89336
89337
89338
89339
89340
89341
89342
89343
89344
89345
89346
89347
89348
89349
89350
89351
89352
89353
89354
89355
89356
89357
89358
89359
89360
89361
89362
89363
89364
89365
89366
89367
89368
89369
89370
89371
89372
89373
89374
89375
89376
89377
89378
89379
89380
89381
89382
89383
89384
89385
89386
89387
89388
89389
89390
89391
89392
89393
89394
89395
89396
89397
89398
89399
89400
89401
89402
89403
89404
89405
89406
89407
89408
89409
89410
89411
89412
89413
89414
89415
89416
89417
89418
89419
89420
89421
89422
89423
89424
89425
89426
89427
89428
89429
89430
89431
89432
89433
89434
89435
89436
89437
89438
89439
89440
89441
89442
89443
89444
89445
89446
89447
89448
89449
89450
89451
89452
89453
89454
89455
89456
89457
89458
89459
89460
89461
89462
89463
89464
89465
89466
89467
89468
89469
89470
89471
89472
89473
89474
89475
89476
89477
89478
89479
89480
89481
89482
89483
89484
89485
89486
89487
89488
89489
89490
89491
89492
89493
89494
89495
89496
89497
89498
89499
89500
89501
89502
89503
89504
89505
89506
89507
89508
89509
89510
89511
89512
89513
89514
89515
89516
89517
89518
89519
89520
89521
89522
89523
89524
89525
89526
89527
89528
89529
89530
89531
89532
89533
89534
89535
89536
89537
89538
89539
89540
89541
89542
89543
89544
89545
89546
89547
89548
89549
89550
89551
89552
89553
89554
89555
89556
89557
89558
89559
89560
89561
89562
89563
89564
89565
89566
89567
89568
89569
89570
89571
89572
89573
89574
89575
89576
89577
89578
89579
89580
89581
89582
89583
89584
89585
89586
89587
89588
89589
89590
89591
89592
89593
89594
89595
89596
89597
89598
89599
89600
89601
89602
89603
89604
89605
89606
89607
89608
89609
89610
89611
89612
89613
89614
89615
89616
89617
89618
89619
89620
89621
89622
89623
89624
89625
89626
89627
89628
89629
89630
89631
89632
89633
89634
89635
89636
89637
89638
89639
89640
89641
89642
89643
89644
89645
89646
89647
89648
89649
89650
89651
89652
89653
89654
89655
89656
89657
89658
89659
89660
89661
89662
89663
89664
89665
89666
89667
89668
89669
89670
89671
89672
89673
89674
89675
89676
89677
89678
89679
89680
89681
89682
89683
89684
89685
89686
89687
89688
89689
89690
89691
89692
89693
89694
89695
89696
89697
89698
89699
89700
89701
89702
89703
89704
89705
89706
89707
89708
89709
89710
89711
89712
89713
89714
89715
89716
89717
89718
89719
89720
89721
89722
89723
89724
89725
89726
89727
89728
89729
89730
89731
89732
89733
89734
89735
89736
89737
89738
89739
89740
89741
89742
89743
89744
89745
89746
89747
89748
89749
89750
89751
89752
89753
89754
89755
89756
89757
89758
89759
89760
89761
89762
89763
89764
89765
89766
89767
89768
89769
89770
89771
89772
89773
89774
89775
89776
89777
89778
89779
89780
89781
89782
89783
89784
89785
89786
89787
89788
89789
89790
89791
89792
89793
89794
89795
89796
89797
89798
89799
89800
89801
89802
89803
89804
89805
89806
89807
89808
89809
89810
89811
89812
89813
89814
89815
89816
89817
89818
89819
89820
89821
89822
89823
89824
89825
89826
89827
89828
89829
89830
89831
89832
89833
89834
89835
89836
89837
89838
89839
89840
89841
89842
89843
89844
89845
89846
89847
89848
89849
89850
89851
89852
89853
89854
89855
89856
89857
89858
89859
89860
89861
89862
89863
89864
89865
89866
89867
89868
89869
89870
89871
89872
89873
89874
89875
89876
89877
89878
89879
89880
89881
89882
89883
89884
89885
89886
89887
89888
89889
89890
89891
89892
89893
89894
89895
89896
89897
89898
89899
89900
89901
89902
89903
89904
89905
89906
89907
89908
89909
89910
89911
89912
89913
89914
89915
89916
89917
89918
89919
89920
89921
89922
89923
89924
89925
89926
89927
89928
89929
89930
89931
89932
89933
89934
89935
89936
89937
89938
89939
89940
89941
89942
89943
89944
89945
89946
89947
89948
89949
89950
89951
89952
89953
89954
89955
89956
89957
89958
89959
89960
89961
89962
89963
89964
89965
89966
89967
89968
89969
89970
89971
89972
89973
89974
89975
89976
89977
89978
89979
89980
89981
89982
89983
89984
89985
89986
89987
89988
89989
89990
89991
89992
89993
89994
89995
89996
89997
89998
89999
90000
90001
90002
90003
90004
90005
90006
90007
90008
90009
90010
90011
90012
90013
90014
90015
90016
90017
90018
90019
90020
90021
90022
90023
90024
90025
90026
90027
90028
90029
90030
90031
90032
90033
90034
90035
90036
90037
90038
90039
90040
90041
90042
90043
90044
90045
90046
90047
90048
90049
90050
90051
90052
90053
90054
90055
90056
90057
90058
90059
90060
90061
90062
90063
90064
90065
90066
90067
90068
90069
90070
90071
90072
90073
90074
90075
90076
90077
90078
90079
90080
90081
90082
90083
90084
90085
90086
90087
90088
90089
90090
90091
90092
90093
90094
90095
90096
90097
90098
90099
90100
90101
90102
90103
90104
90105
90106
90107
90108
90109
90110
90111
90112
90113
90114
90115
90116
90117
90118
90119
90120
90121
90122
90123
90124
90125
90126
90127
90128
90129
90130
90131
90132
90133
90134
90135
90136
90137
90138
90139
90140
90141
90142
90143
90144
90145
90146
90147
90148
90149
90150
90151
90152
90153
90154
90155
90156
90157
90158
90159
90160
90161
90162
90163
90164
90165
90166
90167
90168
90169
90170
90171
90172
90173
90174
90175
90176
90177
90178
90179
90180
90181
90182
90183
90184
90185
90186
90187
90188
90189
90190
90191
90192
90193
90194
90195
90196
90197
90198
90199
90200
90201
90202
90203
90204
90205
90206
90207
90208
90209
90210
90211
90212
90213
90214
90215
90216
90217
90218
90219
90220
90221
90222
90223
90224
90225
90226
90227
90228
90229
90230
90231
90232
90233
90234
90235
90236
90237
90238
90239
90240
90241
90242
90243
90244
90245
90246
90247
90248
90249
90250
90251
90252
90253
90254
90255
90256
90257
90258
90259
90260
90261
90262
90263
90264
90265
90266
90267
90268
90269
90270
90271
90272
90273
90274
90275
90276
90277
90278
90279
90280
90281
90282
90283
90284
90285
90286
90287
90288
90289
90290
90291
90292
90293
90294
90295
90296
90297
90298
90299
90300
90301
90302
90303
90304
90305
90306
90307
90308
90309
90310
90311
90312
90313
90314
90315
90316
90317
90318
90319
90320
90321
90322
90323
90324
90325
90326
90327
90328
90329
90330
90331
90332
90333
90334
90335
90336
90337
90338
90339
90340
90341
90342
90343
90344
90345
90346
90347
90348
90349
90350
90351
90352
90353
90354
90355
90356
90357
90358
90359
90360
90361
90362
90363
90364
90365
90366
90367
90368
90369
90370
90371
90372
90373
90374
90375
90376
90377
90378
90379
90380
90381
90382
90383
90384
90385
90386
90387
90388
90389
90390
90391
90392
90393
90394
90395
90396
90397
90398
90399
90400
90401
90402
90403
90404
90405
90406
90407
90408
90409
90410
90411
90412
90413
90414
90415
90416
90417
90418
90419
90420
90421
90422
90423
90424
90425
90426
90427
90428
90429
90430
90431
90432
90433
90434
90435
90436
90437
90438
90439
90440
90441
90442
90443
90444
90445
90446
90447
90448
90449
90450
90451
90452
90453
90454
90455
90456
90457
90458
90459
90460
90461
90462
90463
90464
90465
90466
90467
90468
90469
90470
90471
90472
90473
90474
90475
90476
90477
90478
90479
90480
90481
90482
90483
90484
90485
90486
90487
90488
90489
90490
90491
90492
90493
90494
90495
90496
90497
90498
90499
90500
90501
90502
90503
90504
90505
90506
90507
90508
90509
90510
90511
90512
90513
90514
90515
90516
90517
90518
90519
90520
90521
90522
90523
90524
90525
90526
90527
90528
90529
90530
90531
90532
90533
90534
90535
90536
90537
90538
90539
90540
90541
90542
90543
90544
90545
90546
90547
90548
90549
90550
90551
90552
90553
90554
90555
90556
90557
90558
90559
90560
90561
90562
90563
90564
90565
90566
90567
90568
90569
90570
90571
90572
90573
90574
90575
90576
90577
90578
90579
90580
90581
90582
90583
90584
90585
90586
90587
90588
90589
90590
90591
90592
90593
90594
90595
90596
90597
90598
90599
90600
90601
90602
90603
90604
90605
90606
90607
90608
90609
90610
90611
90612
90613
90614
90615
90616
90617
90618
90619
90620
90621
90622
90623
90624
90625
90626
90627
90628
90629
90630
90631
90632
90633
90634
90635
90636
90637
90638
90639
90640
90641
90642
90643
90644
90645
90646
90647
90648
90649
90650
90651
90652
90653
90654
90655
90656
90657
90658
90659
90660
90661
90662
90663
90664
90665
90666
90667
90668
90669
90670
90671
90672
90673
90674
90675
90676
90677
90678
90679
90680
90681
90682
90683
90684
90685
90686
90687
90688
90689
90690
90691
90692
90693
90694
90695
90696
90697
90698
90699
90700
90701
90702
90703
90704
90705
90706
90707
90708
90709
90710
90711
90712
90713
90714
90715
90716
90717
90718
90719
90720
90721
90722
90723
90724
90725
90726
90727
90728
90729
90730
90731
90732
90733
90734
90735
90736
90737
90738
90739
90740
90741
90742
90743
90744
90745
90746
90747
90748
90749
90750
90751
90752
90753
90754
90755
90756
90757
90758
90759
90760
90761
90762
90763
90764
90765
90766
90767
90768
90769
90770
90771
90772
90773
90774
90775
90776
90777
90778
90779
90780
90781
90782
90783
90784
90785
90786
90787
90788
90789
90790
90791
90792
90793
90794
90795
90796
90797
90798
90799
90800
90801
90802
90803
90804
90805
90806
90807
90808
90809
90810
90811
90812
90813
90814
90815
90816
90817
90818
90819
90820
90821
90822
90823
90824
90825
90826
90827
90828
90829
90830
90831
90832
90833
90834
90835
90836
90837
90838
90839
90840
90841
90842
90843
90844
90845
90846
90847
90848
90849
90850
90851
90852
90853
90854
90855
90856
90857
90858
90859
90860
90861
90862
90863
90864
90865
90866
90867
90868
90869
90870
90871
90872
90873
90874
90875
90876
90877
90878
90879
90880
90881
90882
90883
90884
90885
90886
90887
90888
90889
90890
90891
90892
90893
90894
90895
90896
90897
90898
90899
90900
90901
90902
90903
90904
90905
90906
90907
90908
90909
90910
90911
90912
90913
90914
90915
90916
90917
90918
90919
90920
90921
90922
90923
90924
90925
90926
90927
90928
90929
90930
90931
90932
90933
90934
90935
90936
90937
90938
90939
90940
90941
90942
90943
90944
90945
90946
90947
90948
90949
90950
90951
90952
90953
90954
90955
90956
90957
90958
90959
90960
90961
90962
90963
90964
90965
90966
90967
90968
90969
90970
90971
90972
90973
90974
90975
90976
90977
90978
90979
90980
90981
90982
90983
90984
90985
90986
90987
90988
90989
90990
90991
90992
90993
90994
90995
90996
90997
90998
90999
91000
91001
91002
91003
91004
91005
91006
91007
91008
91009
91010
91011
91012
91013
91014
91015
91016
91017
91018
91019
91020
91021
91022
91023
91024
91025
91026
91027
91028
91029
91030
91031
91032
91033
91034
91035
91036
91037
91038
91039
91040
91041
91042
91043
91044
91045
91046
91047
91048
91049
91050
91051
91052
91053
91054
91055
91056
91057
91058
91059
91060
91061
91062
91063
91064
91065
91066
91067
91068
91069
91070
91071
91072
91073
91074
91075
91076
91077
91078
91079
91080
91081
91082
91083
91084
91085
91086
91087
91088
91089
91090
91091
91092
91093
91094
91095
91096
91097
91098
91099
91100
91101
91102
91103
91104
91105
91106
91107
91108
91109
91110
91111
91112
91113
91114
91115
91116
91117
91118
91119
91120
91121
91122
91123
91124
91125
91126
91127
91128
91129
91130
91131
91132
91133
91134
91135
91136
91137
91138
91139
91140
91141
91142
91143
91144
91145
91146
91147
91148
91149
91150
91151
91152
91153
91154
91155
91156
91157
91158
91159
91160
91161
91162
91163
91164
91165
91166
91167
91168
91169
91170
91171
91172
91173
91174
91175
91176
91177
91178
91179
91180
91181
91182
91183
91184
91185
91186
91187
91188
91189
91190
91191
91192
91193
91194
91195
91196
91197
91198
91199
91200
91201
91202
91203
91204
91205
91206
91207
91208
91209
91210
91211
91212
91213
91214
91215
91216
91217
91218
91219
91220
91221
91222
91223
91224
91225
91226
91227
91228
91229
91230
91231
91232
91233
91234
91235
91236
91237
91238
91239
91240
91241
91242
91243
91244
91245
91246
91247
91248
91249
91250
91251
91252
91253
91254
91255
91256
91257
91258
91259
91260
91261
91262
91263
91264
91265
91266
91267
91268
91269
91270
91271
91272
91273
91274
91275
91276
91277
91278
91279
91280
91281
91282
91283
91284
91285
91286
91287
91288
91289
91290
91291
91292
91293
91294
91295
91296
91297
91298
91299
91300
91301
91302
91303
91304
91305
91306
91307
91308
91309
91310
91311
91312
91313
91314
91315
91316
91317
91318
91319
91320
91321
91322
91323
91324
91325
91326
91327
91328
91329
91330
91331
91332
91333
91334
91335
91336
91337
91338
91339
91340
91341
91342
91343
91344
91345
91346
91347
91348
91349
91350
91351
91352
91353
91354
91355
91356
91357
91358
91359
91360
91361
91362
91363
91364
91365
91366
91367
91368
91369
91370
91371
91372
91373
91374
91375
91376
91377
91378
91379
91380
91381
91382
91383
91384
91385
91386
91387
91388
91389
91390
91391
91392
91393
91394
91395
91396
91397
91398
91399
91400
91401
91402
91403
91404
91405
91406
91407
91408
91409
91410
91411
91412
91413
91414
91415
91416
91417
91418
91419
91420
91421
91422
91423
91424
91425
91426
91427
91428
91429
91430
91431
91432
91433
91434
91435
91436
91437
91438
91439
91440
91441
91442
91443
91444
91445
91446
91447
91448
91449
91450
91451
91452
91453
91454
91455
91456
91457
91458
91459
91460
91461
91462
91463
91464
91465
91466
91467
91468
91469
91470
91471
91472
91473
91474
91475
91476
91477
91478
91479
91480
91481
91482
91483
91484
91485
91486
91487
91488
91489
91490
91491
91492
91493
91494
91495
91496
91497
91498
91499
91500
91501
91502
91503
91504
91505
91506
91507
91508
91509
91510
91511
91512
91513
91514
91515
91516
91517
91518
91519
91520
91521
91522
91523
91524
91525
91526
91527
91528
91529
91530
91531
91532
91533
91534
91535
91536
91537
91538
91539
91540
91541
91542
91543
91544
91545
91546
91547
91548
91549
91550
91551
91552
91553
91554
91555
91556
91557
91558
91559
91560
91561
91562
91563
91564
91565
91566
91567
91568
91569
91570
91571
91572
91573
91574
91575
91576
91577
91578
91579
91580
91581
91582
91583
91584
91585
91586
91587
91588
91589
91590
91591
91592
91593
91594
91595
91596
91597
91598
91599
91600
91601
91602
91603
91604
91605
91606
91607
91608
91609
91610
91611
91612
91613
91614
91615
91616
91617
91618
91619
91620
91621
91622
91623
91624
91625
91626
91627
91628
91629
91630
91631
91632
91633
91634
91635
91636
91637
91638
91639
91640
91641
91642
91643
91644
91645
91646
91647
91648
91649
91650
91651
91652
91653
91654
91655
91656
91657
91658
91659
91660
91661
91662
91663
91664
91665
91666
91667
91668
91669
91670
91671
91672
91673
91674
91675
91676
91677
91678
91679
91680
91681
91682
91683
91684
91685
91686
91687
91688
91689
91690
91691
91692
91693
91694
91695
91696
91697
91698
91699
91700
91701
91702
91703
91704
91705
91706
91707
91708
91709
91710
91711
91712
91713
91714
91715
91716
91717
91718
91719
91720
91721
91722
91723
91724
91725
91726
91727
91728
91729
91730
91731
91732
91733
91734
91735
91736
91737
91738
91739
91740
91741
91742
91743
91744
91745
91746
91747
91748
91749
91750
91751
91752
91753
91754
91755
91756
91757
91758
91759
91760
91761
91762
91763
91764
91765
91766
91767
91768
91769
91770
91771
91772
91773
91774
91775
91776
91777
91778
91779
91780
91781
91782
91783
91784
91785
91786
91787
91788
91789
91790
91791
91792
91793
91794
91795
91796
91797
91798
91799
91800
91801
91802
91803
91804
91805
91806
91807
91808
91809
91810
91811
91812
91813
91814
91815
91816
91817
91818
91819
91820
91821
91822
91823
91824
91825
91826
91827
91828
91829
91830
91831
91832
91833
91834
91835
91836
91837
91838
91839
91840
91841
91842
91843
91844
91845
91846
91847
91848
91849
91850
91851
91852
91853
91854
91855
91856
91857
91858
91859
91860
91861
91862
91863
91864
91865
91866
91867
91868
91869
91870
91871
91872
91873
91874
91875
91876
91877
91878
91879
91880
91881
91882
91883
91884
91885
91886
91887
91888
91889
91890
91891
91892
91893
91894
91895
91896
91897
91898
91899
91900
91901
91902
91903
91904
91905
91906
91907
91908
91909
91910
91911
91912
91913
91914
91915
91916
91917
91918
91919
91920
91921
91922
91923
91924
91925
91926
91927
91928
91929
91930
91931
91932
91933
91934
91935
91936
91937
91938
91939
91940
91941
91942
91943
91944
91945
91946
91947
91948
91949
91950
91951
91952
91953
91954
91955
91956
91957
91958
91959
91960
91961
91962
91963
91964
91965
91966
91967
91968
91969
91970
91971
91972
91973
91974
91975
91976
91977
91978
91979
91980
91981
91982
91983
91984
91985
91986
91987
91988
91989
91990
91991
91992
91993
91994
91995
91996
91997
91998
91999
92000
92001
92002
92003
92004
92005
92006
92007
92008
92009
92010
92011
92012
92013
92014
92015
92016
92017
92018
92019
92020
92021
92022
92023
92024
92025
92026
92027
92028
92029
92030
92031
92032
92033
92034
92035
92036
92037
92038
92039
92040
92041
92042
92043
92044
92045
92046
92047
92048
92049
92050
92051
92052
92053
92054
92055
92056
92057
92058
92059
92060
92061
92062
92063
92064
92065
92066
92067
92068
92069
92070
92071
92072
92073
92074
92075
92076
92077
92078
92079
92080
92081
92082
92083
92084
92085
92086
92087
92088
92089
92090
92091
92092
92093
92094
92095
92096
92097
92098
92099
92100
92101
92102
92103
92104
92105
92106
92107
92108
92109
92110
92111
92112
92113
92114
92115
92116
92117
92118
92119
92120
92121
92122
92123
92124
92125
92126
92127
92128
92129
92130
92131
92132
92133
92134
92135
92136
92137
92138
92139
92140
92141
92142
92143
92144
92145
92146
92147
92148
92149
92150
92151
92152
92153
92154
92155
92156
92157
92158
92159
92160
92161
92162
92163
92164
92165
92166
92167
92168
92169
92170
92171
92172
92173
92174
92175
92176
92177
92178
92179
92180
92181
92182
92183
92184
92185
92186
92187
92188
92189
92190
92191
92192
92193
92194
92195
92196
92197
92198
92199
92200
92201
92202
92203
92204
92205
92206
92207
92208
92209
92210
92211
92212
92213
92214
92215
92216
92217
92218
92219
92220
92221
92222
92223
92224
92225
92226
92227
92228
92229
92230
92231
92232
92233
92234
92235
92236
92237
92238
92239
92240
92241
92242
92243
92244
92245
92246
92247
92248
92249
92250
92251
92252
92253
92254
92255
92256
92257
92258
92259
92260
92261
92262
92263
92264
92265
92266
92267
92268
92269
92270
92271
92272
92273
92274
92275
92276
92277
92278
92279
92280
92281
92282
92283
92284
92285
92286
92287
92288
92289
92290
92291
92292
92293
92294
92295
92296
92297
92298
92299
92300
92301
92302
92303
92304
92305
92306
92307
92308
92309
92310
92311
92312
92313
92314
92315
92316
92317
92318
92319
92320
92321
92322
92323
92324
92325
92326
92327
92328
92329
92330
92331
92332
92333
92334
92335
92336
92337
92338
92339
92340
92341
92342
92343
92344
92345
92346
92347
92348
92349
92350
92351
92352
92353
92354
92355
92356
92357
92358
92359
92360
92361
92362
92363
92364
92365
92366
92367
92368
92369
92370
92371
92372
92373
92374
92375
92376
92377
92378
92379
92380
92381
92382
92383
92384
92385
92386
92387
92388
92389
92390
92391
92392
92393
92394
92395
92396
92397
92398
92399
92400
92401
92402
92403
92404
92405
92406
92407
92408
92409
92410
92411
92412
92413
92414
92415
92416
92417
92418
92419
92420
92421
92422
92423
92424
92425
92426
92427
92428
92429
92430
92431
92432
92433
92434
92435
92436
92437
92438
92439
92440
92441
92442
92443
92444
92445
92446
92447
92448
92449
92450
92451
92452
92453
92454
92455
92456
92457
92458
92459
92460
92461
92462
92463
92464
92465
92466
92467
92468
92469
92470
92471
92472
92473
92474
92475
92476
92477
92478
92479
92480
92481
92482
92483
92484
92485
92486
92487
92488
92489
92490
92491
92492
92493
92494
92495
92496
92497
92498
92499
92500
92501
92502
92503
92504
92505
92506
92507
92508
92509
92510
92511
92512
92513
92514
92515
92516
92517
92518
92519
92520
92521
92522
92523
92524
92525
92526
92527
92528
92529
92530
92531
92532
92533
92534
92535
92536
92537
92538
92539
92540
92541
92542
92543
92544
92545
92546
92547
92548
92549
92550
92551
92552
92553
92554
92555
92556
92557
92558
92559
92560
92561
92562
92563
92564
92565
92566
92567
92568
92569
92570
92571
92572
92573
92574
92575
92576
92577
92578
92579
92580
92581
92582
92583
92584
92585
92586
92587
92588
92589
92590
92591
92592
92593
92594
92595
92596
92597
92598
92599
92600
92601
92602
92603
92604
92605
92606
92607
92608
92609
92610
92611
92612
92613
92614
92615
92616
92617
92618
92619
92620
92621
92622
92623
92624
92625
92626
92627
92628
92629
92630
92631
92632
92633
92634
92635
92636
92637
92638
92639
92640
92641
92642
92643
92644
92645
92646
92647
92648
92649
92650
92651
92652
92653
92654
92655
92656
92657
92658
92659
92660
92661
92662
92663
92664
92665
92666
92667
92668
92669
92670
92671
92672
92673
92674
92675
92676
92677
92678
92679
92680
92681
92682
92683
92684
92685
92686
92687
92688
92689
92690
92691
92692
92693
92694
92695
92696
92697
92698
92699
92700
92701
92702
92703
92704
92705
92706
92707
92708
92709
92710
92711
92712
92713
92714
92715
92716
92717
92718
92719
92720
92721
92722
92723
92724
92725
92726
92727
92728
92729
92730
92731
92732
92733
92734
92735
92736
92737
92738
92739
92740
92741
92742
92743
92744
92745
92746
92747
92748
92749
92750
92751
92752
92753
92754
92755
92756
92757
92758
92759
92760
92761
92762
92763
92764
92765
92766
92767
92768
92769
92770
92771
92772
92773
92774
92775
92776
92777
92778
92779
92780
92781
92782
92783
92784
92785
92786
92787
92788
92789
92790
92791
92792
92793
92794
92795
92796
92797
92798
92799
92800
92801
92802
92803
92804
92805
92806
92807
92808
92809
92810
92811
92812
92813
92814
92815
92816
92817
92818
92819
92820
92821
92822
92823
92824
92825
92826
92827
92828
92829
92830
92831
92832
92833
92834
92835
92836
92837
92838
92839
92840
92841
92842
92843
92844
92845
92846
92847
92848
92849
92850
92851
92852
92853
92854
92855
92856
92857
92858
92859
92860
92861
92862
92863
92864
92865
92866
92867
92868
92869
92870
92871
92872
92873
92874
92875
92876
92877
92878
92879
92880
92881
92882
92883
92884
92885
92886
92887
92888
92889
92890
92891
92892
92893
92894
92895
92896
92897
92898
92899
92900
92901
92902
92903
92904
92905
92906
92907
92908
92909
92910
92911
92912
92913
92914
92915
92916
92917
92918
92919
92920
92921
92922
92923
92924
92925
92926
92927
92928
92929
92930
92931
92932
92933
92934
92935
92936
92937
92938
92939
92940
92941
92942
92943
92944
92945
92946
92947
92948
92949
92950
92951
92952
92953
92954
92955
92956
92957
92958
92959
92960
92961
92962
92963
92964
92965
92966
92967
92968
92969
92970
92971
92972
92973
92974
92975
92976
92977
92978
92979
92980
92981
92982
92983
92984
92985
92986
92987
92988
92989
92990
92991
92992
92993
92994
92995
92996
92997
92998
92999
93000
93001
93002
93003
93004
93005
93006
93007
93008
93009
93010
93011
93012
93013
93014
93015
93016
93017
93018
93019
93020
93021
93022
93023
93024
93025
93026
93027
93028
93029
93030
93031
93032
93033
93034
93035
93036
93037
93038
93039
93040
93041
93042
93043
93044
93045
93046
93047
93048
93049
93050
93051
93052
93053
93054
93055
93056
93057
93058
93059
93060
93061
93062
93063
93064
93065
93066
93067
93068
93069
93070
93071
93072
93073
93074
93075
93076
93077
93078
93079
93080
93081
93082
93083
93084
93085
93086
93087
93088
93089
93090
93091
93092
93093
93094
93095
93096
93097
93098
93099
93100
93101
93102
93103
93104
93105
93106
93107
93108
93109
93110
93111
93112
93113
93114
93115
93116
93117
93118
93119
93120
93121
93122
93123
93124
93125
93126
93127
93128
93129
93130
93131
93132
93133
93134
93135
$( iset.mm - Version of 23-Oct-2020

Created by Mario Carneiro, starting from the 21-Jan-2015 version of
set.mm (with updates since then, including copying entire theorems
and sections from set.mm).

#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
         Metamath source file for intuitionistic logic and set theory
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

                           ~~ PUBLIC DOMAIN ~~
This work is waived of all rights, including copyright, according to the CC0
Public Domain Dedication.  http://creativecommons.org/publicdomain/zero/1.0/

Maintainer and default contributor:

NM  Norman Megill - http://us.metamath.org/email.html

Contributor list:

DA  David Abernethy      JH  Jeff Hoffman          SO  Stefan O'Rear
SA  Stefan Allan         SJ  Szymon Jaroszewicz    JO  Jason Orendorff
TA  Thierry Arnoux       BJ  Benoit Jubin          JP  Josh Purinton
JA  Juha Arpiainen       JK  Jim Kingdon           SR  Steve Rodriguez
JB  Jonathan Ben-Naim    WL  Wolf Lammen           ATS Andrew Salmon
GB  Gregory Bush         GL  Gerard Lang           AS  Alan Sare
MC  Mario Carneiro       BL  Brendan Leahy         ES  Eric Schmidt
PC  Paul Chapman         RL  Raph Levien           GS  Glauco Siliprandi
DF  Drahflow             FL  Frederic Line         SS  Saveliy Skresanov
GD  Georgy Dunaev        RFL Roy F. Longton        JU  Jarvin Udandy
SF  Scott Fenton         JM  Jeff Madsen           AV  Alexander van der Vekens
JGH Jeff Hankins         RM  Rodolfo Medina        DAW David A. Wheeler
AH  Anthony Hart         NM  Norman Megill         JY  Jonathan Yan
DH  David Harvey         MO  Mel L. O'Cat          FZ  Fan Zheng
CH  Chen-Pang He         MM  Mykola Mostovenko

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                          Contents of this header
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. Naming
2. Quick "How To"
3. Bibliography
4. Metamath syntax summary
5. Other notes
6. Acceptable shorter proofs

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                                1. Naming
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Theorems which are the same as in set.mm should be named the same (that is,
where the statement of the theorem is the same; the proof can differ without
a new name being called for).  Theorems which are different should be named
differently (although if additional hypotheses are added in iset.mm the name
need not be changed).

As with set.mm, we welcome suggestions for better names (such as names which
are more consistent with naming conventions).

We do try to keep set.mm and iset.mm similar where we can. For example, if
a theorem exists both places but the name in set.mm isn't great, we tend to
keep that name for iset.mm, or change it in both files together. This is
mainly to make it easier to copy theorems, but also to generally help people
browse proofs, find theorems, write proofs, etc.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                           2. Quick "How To"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

How to use this file under Windows 95/98/NT/2K/XP/Vista:

1. Download the program metamath.exe per the instructions on the
   Metamath home page (http://us.metamath.org) and put it in the same
   directory as this file (set.mm).
2. In Windows Explorer, double-click on metamath.exe.
3. Type "read set.mm" and press Enter.
4. Type "help" for a list of help topics, and "help demo" for some
   command examples.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                             3. Bibliography
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Bibliographical references are made by bracketing an identifer in a theorem's
comment, such as [RussellWhitehead].  These refer to HTML tags on the following
web pages:

  Logic and set theory - see http://us.metamath.org/mpegif/mmset.html#bib
  Hilbert space - see http://us.metamath.org/mpegif/mmhil.html#ref


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                      4. Metamath syntax summary
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

The HELP LANGUAGE command in the Metamath program will give you a quick
overview of Metamath.  Syntax summary:

          $c ... $. - Constant declaration
          $v ... $. - Variable declaration
          $d ... $. - Disjoint (distinct) variable restriction
  <label> $f ... $. - "Floating" hypothesis (i.e. variable type declaration)
  <label> $e ... $. - "Essential" hypothesis (i.e. a logical assumption for a
                      theorem or axiom)
  <label> $a ... $. - Axiom or definition or syntax construction
  <label> $p ... $= ... $. - Theorem and its proof
          ${ ... $} - Block for defining the scope of the above statements
                      (except $a, $p which are forever active)
$)        $( ... $)
$(                  - Comments (may not be nested); see HELP LANGUAGE
                      for markup features
          $[ ... $] - Include a file

The above two-character sequences beginning with "$" are the only primitives
built into the Metamath language.  The only "logic" Metamath uses in its proof
verification algorithm is the substitution of expressions for variables while
checking for distinct variable violations.  Everything else, including the
axioms for logic, is defined in this database file.

Here is some more detail about the syntax.  There are two kinds of user-defined
syntax elements, called math symbols (or just symbols) and labels.  A symbol
may contain any non-whitespace printable character except "$".  A label may
contain only alphanumeric characters and the characters "."  (period), "-"
(hyphen), and "_" (underscore).  Tokens and labels are case-sensitive.  All
labels (except in proofs) must be distinct.  A label may not have the same name
as a token (to simplify the coding of certain parsers and translators).

  $c <symbollist> $.
      <symbollist> is a (whitespace-separated) list of distinct symbols that
      haven't been used before.
  $v <symbollist> $.
      <symbollist> is a list of distinct symbols that haven't been used yet
      in the current scope (see ${ ... $} below).
  $d <symbollist> $.
      <symbollist> is a (whitespace-separated) list of distinct symbols
      previously declared with $v in current scope.  It means that
      substitutions into these symbols may not have variables in common.
  <label> $f <symbollist> $.
      <symbollist> is a list of 2 symbols, the first of which must be
      previously declared with $c in the current scope.
  <label> $e <symbollist> $.
      <symbollist> is a list of 2 or more symbols, the first of which must be
      previously declared with $c in the current scope.
  <label> $a <symbollist> $.
      <symbollist> is a list of 2 or more symbols, the first of which must be
      previously declared with $c in the current scope.
  <label> $p <symbollist> $= <proof> $.
      <symbollist> is a list of 2 or more symbols, the first of which must be
      previously declared with $c in the current scope.  <proof> is either a
      whitespace-delimited sequence of previous labels (created by
      SAVE PROOF <label> /NORMAL) or a compressed proof (created by
      SAVE PROOF <label> /COMPRESSED).  After using SAVE PROOF, use
      WRITE SOURCE to save the database file to disk.
  ${ ... $}
      Block for scoping the above statements (except $a, $p which are forever
      active).  Currently, $c may not occur inside of a block.
$)
  $( <any text> $)
$(    Comment.  Note: <any text> may not contain adjacent "$" and ")"
      characters.
  $[ <filename> $]
      Insert contents of <filename> at this point.  If <filename> is current
      file or has been already been inserted, it will not be inserted again.

Inside of comments, it is recommended that labels be preceded with a tilde (~)
and math symbol tokens be enclosed in grave accents (` `).  This way the LaTeX
and HTML rendition of comments will be accurate, and (future) tools to globally
change labels and math symbols will also change them in comments.  Note that ``
inside of grave accents is interpreted as a single ` .  A special comment
containing $ t defines LaTeX and HTML symbols.  See HELP LANGUAGE and
HELP HTML for other markup features in comments.

The proofs in this file are in "compressed" format for storage efficiency.  The
Metamath program reads the compressed format directly.  This format is
described in an Appendix of the Metamath book.  It is not intended to be read
by humans.  For viewing proofs you should use the various SHOW PROOF commands
described in the Metamath book (or the on-line HELP).

The Metamath program does not normally affect any content of this file (set.mm)
other than proofs, i.e. tokens between "$=" and "$.".  All other content is
user-created.  Proofs are created or modified with the PROVE command.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                          5. Other notes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. It is recommended that you be familiar with chapters 2 and 4 of the
'Metamath' book to understand the Metamath language.  Chapters 2, 3 and 5
explain how to use the program.  Chapter 3 gives you an informal overview of
what this source file is all about.  Appendix A shows you the standard
mathematical symbols corresponding to some of the ASCII tokens in this file.

The ASCII tokens may seem cryptic at first, even if you are familiar with set
theory, but a review of the definition summary in Chapter 3 should quickly
enable you to see the correspondence to standard mathematical notation.  To
easily find the definition of a token, search for the first occurrences of the
token surrounded by spaces.  Some odd-looking ones include "-." for "not", and
"C_" for "is a subset of."  (HELP TEX tells you how to obtain a LaTeX output to
see the real mathematical symbols.)  Let me know if you have better suggestions
for naming ASCII tokens.

2. Logic and set theory provide a foundation for all of mathematics.  To learn
about them, you should study one or more of the references listed below.  The
textbooks provide a motivation for what we are doing, whereas Metamath lets you
see in detail all hidden and implicit steps.  Most standard theorems are
accompanied by citations.  Some closely followed texts include the following:

  Axioms of propositional calculus - [Margaris].
  Axioms of predicate calculus - [Megill] (System S3' in the article
      referenced).
  Theorems of propositional calculus - [WhiteheadRussell].
  Theorems of pure predicate calculus - [Margaris].
  Theorems of equality and substitution - [Monk2], [Tarski], [Megill].
  Axioms of set theory - [BellMachover].
  Development of set theory - [TakeutiZaring].  (The first part of [Quine]
      has a good explanation of the powerful device of "virtual" or
      class abstractions, which is essential to our development.)
  Construction of real and complex numbers - [Gleason]
  Theorems about real numbers - [Apostol]
  Intuitionistic logic and constructive mathematics - [Bauer] is an sampling
    of theorems and arguments which give a flavor of constructive mathematics.
    [Heyting] is a more comprehensive treatment of intuitionistic logic.

3. Convention:  All $a statements starting with "|-" have labels
starting with "ax-" (axioms) or "df-" (definitions).  "ax-" corresponds
to what is traditionally called an axiom.  "df-" introduces new symbols
or a new relationship among symbols that can be eliminated; they always
extend the definition of a wff or class.  Metamath blindly treats $a
statements as new given facts but does not try to justify them.  The
mmj2 program will justify the definitions as sound, except for 5 (df-bi,
df-cleq, df-clel, df-clab, df-sbc) that require a more complex metalogical
justification by hand.

4. Our method of definition, the axioms for predicate calculus, and the
development of substitution are somewhat different from those found in standard
texts.  The axioms were designed for direct derivation of standard results
without excessive use of metatheorems.  (See Theorem 9.7 of [Megill] for a
rigorous justification.)  Typically we are minimalist when introducing new
definitions; they are introduced only when a clear advantage becomes apparent
for reducing the number of symbols, shortening proofs, etc.  We generally avoid
the introduction of gratuitous definitions because each one requires associated
theorems and additional elimination steps in proofs.

5. Where possible, the notation attempts to conform to modern conventions, with
variations due to our choice of the axiom system or to make proofs shorter.
Listed below are some important conventions and how they correspond to textbook
language.  The notation is usually explained in more detail when first
introduced.

  Typically, Greek letters (ph = phi, ps = psi, ch = chi, etc.) are used for
      propositional (wff) variables; x,y,z,... for individual (i.e. set)
      variables; and A,B,C,... for class variables.
  "|-", meaning "It is provable that," is the first token of all assertions
      and hypotheses that aren't syntax constructions.  This is a standard
      convention in logic.  For us, it also prevents any ambiguity with
      statements that are syntax constructions, such as "wff -. ph".
  "$e |- ( ph -> A. x ph ) $." should be read "Assume variable x is
      (effectively) not free in wff phi."  Literally, this says "Assume it is
      provable that phi implies for all x phi."
  "|- ( -. A. x x = y -> ..." should be read "If x and y are distinct
      variables, then..."  This antecedent provides us with a technical
      device (called a "distinctor" in [Megill]) to avoid the need for the
      $d statement early in our development of predicate calculus, permitting
      unrestricted substitituions as conceptually simple as those in
      propositional calculus.  However, the $d eventually becomes a
      requirement, and after that this device is rarely used.
  "[ y / x ] ph" should be read "the wff that results when y is properly
      substituted for x in ph."
  "$d x y $." should be read "Assume x and y are distinct variables."
  "$d x ph $." should be read "Assume x does not occur in phi $."  Sometimes
      a theorem is proved with "$e |- ( ph -> A. x ph ) $." in place of
      "$d x ph $." when a more general result is desired; ~ ax-17 can be used
      to derive the $d version.  For an example of how to get from the $d
      version back to the $e version, see the proof of ~ euf from ~ df-eu .
  "$d x A $." should be read "Assume x is not a variable occurring in class A."
  "$d x A $.  $d x ps $.  $e |- ( x = A -> ( ph <-> ps ) ) $." is an idiom
      often used instead of explicit substitution, meaning "Assume psi results
      from the substitution of A for x in phi."
  "$e |- A e. _V $." should be read "Assume class A is a set (i.e. exists)."
      This is a convenient convention used by [Quine].
  "$d x y $.  $e |- y e. A -> A. x y e. A $." should be read "Assume x is
      (effectively) not a free variable in class A."
  "`' R" should be read "converse of (relation) R" and is the same as the more
      standard notation R^{-1}.
  "( f ` x )" should be read "the value of function f at x" and is the same as
      the more familiar f(x).
  The Deduction Theorem of standard logic is never used.  Instead, in set
      theory, we use other tricks to make a $e hypothesis become an antecedent.
      See the comment for theorem ~ dedth below.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           6. Acceptable shorter proofs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Shorter proofs are welcome, and any shorter proof I accept will be acknowledged
in the theorem's description.  However, in some cases a proof may be "shorter"
or not depending on how it is formatted.  This section provides general
guidelines.

Usually I will automatically accept shorter proofs that (1) shorten the set.mm
file (with compressed proofs), (2) reduce the size of the HTML file generated
with SHOW STATEMENT xx / HTML, (3) use only existing, unmodified theorems in
the database (the order of theorems may be changed, though), and (4) use no
additional axioms.

Usually I will also automatically accept a _new_ theorem that is used to
shorten multiple proofs, if the total size of set.mm (including the comment of
the new theorem, not including the acknowledgment) decreases as a result.

In borderline cases, I typically place more importance on the number of
compressed proof steps and less on the length of the label section (since the
names are in principal arbitrary).  If two proofs have the same number of
compressed proof steps, I will typically give preference to the one with the
smaller number of different labels, or if these numbers are the same, the proof
with the fewest number of characters that the proofs happen to have by chance
when label lengths are included.

A few theorems have a longer proof than necessary in order to avoid the use of
certain axioms, for pedagogical purposes, and for other reasons.  Usually this
is clear from the theorem's description.  For example, ~ idALT shows a proof
directly from axioms.  Shorter proofs for such cases won't be accepted, of
course, unless the criteria described continues to be satisfied.

$)


$(
###############################################################################
            FIRST ORDER LOGIC WITH EQUALITY
###############################################################################
$)

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
                           Pre-logic
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $( Declare the primitive constant symbols for propositional calculus. $)
  $c ( $.  $( Left parenthesis $)
  $c ) $.  $( Right parenthesis $)
  $c -> $. $( Right arrow (read:  "implies") $)
  $c -. $. $( Right handle (read:  "not") $)
  $c wff $. $( Well-formed formula symbol (read:  "the following symbol
               sequence is a wff") $)
  $c |- $. $( Turnstile (read:  "the following symbol sequence is provable" or
              'a proof exists for") $)

  $( Declare typographical constant symbols that are not directly used
     in the formalism, but *are* symbols we find useful when
     explaining the formalism. It is much easier to consistently use
     a single typographical system when generating text. $)

  $c & $. $( Ampersand (read: "and-also") $)
  $c => $. $( Big-to (read: "proves") $)

  $( wff variable sequence:  ph ps ch th ta et ze si rh mu la ka $)
  $( Introduce some variable names we will use to represent well-formed
     formulas (wff's). $)
  $v ph $.  $( Greek phi $)
  $v ps $.  $( Greek psi $)
  $v ch $.  $( Greek chi $)
  $v th $.  $( Greek theta $)
  $v ta $.  $( Greek tau $)
  $v et $.  $( Greek eta $)
  $v ze $.  $( Greek zeta $)
  $v si $.  $( Greek sigma $)
  $v rh $.  $( Greek rho $)
  $v mu $.  $( Greek mu $)
  $v la $.  $( Greek lambda $)
  $v ka $.  $( Greek kappa $)

  $( Specify some variables that we will use to represent wff's.
     The fact that a variable represents a wff is relevant only to a theorem
     referring to that variable, so we may use $f hypotheses.  The symbol
     ` wff ` specifies that the variable that follows it represents a wff. $)
  $( Let variable ` ph ` be a wff. $)
  wph $f wff ph $.
  $( Let variable ` ps ` be a wff. $)
  wps $f wff ps $.
  $( Let variable ` ch ` be a wff. $)
  wch $f wff ch $.
  $( Let variable ` th ` be a wff. $)
  wth $f wff th $.
  $( Let variable ` ta ` be a wff. $)
  wta $f wff ta $.
  $( Let variable ` et ` be a wff. $)
  wet $f wff et $.
  $( Let variable ` ze ` be a wff. $)
  wze $f wff ze $.
  $( Let variable ` si ` be a wff. $)
  wsi $f wff si $.
  $( Let variable ` rh ` be a wff. $)
  wrh $f wff rh $.
  $( Let variable ` mu ` be a wff. $)
  wmu $f wff mu $.
  $( Let variable ` la ` be a wff. $)
  wla $f wff la $.
  $( Let variable ` ka ` be a wff. $)
  wka $f wff ka $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Inferences for assisting proof development
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    dummylink.1 $e |- ph $.
    dummylink.2 $e |- ps $.
    $( (_Note_:  This inference rule and the next one, ~ idi , will normally
       never appear in a completed proof.  It can be ignored if you are using
       this database to assist learning logic - please start with the statement
       ~ wn instead.)

       This is a technical inference to assist proof development.  It provides
       a temporary way to add an independent subproof to a proof under
       development, for later assignment to a normal proof step.

       The metamath program's Proof Assistant requires proofs to be developed
       backwards from the conclusion with no gaps, and it has no mechanism that
       lets the user to work on isolated subproofs.  This inference provides a
       workaround for this limitation.  It can be inserted at any point in a
       proof to allow an independent subproof to be developed on the side, for
       later use as part of the final proof.

       _Instructions_:  (1) Assign this inference to any unknown step in the
       proof.  Typically, the last unknown step is the most convenient, since
       'assign last' can be used.  This step will be replicated in hypothesis
       dummylink.1, from where the development of the main proof can continue.
       (2) Develop the independent subproof backwards from hypothesis
       dummylink.2.  If desired, use a 'let' command to pre-assign the
       conclusion of the independent subproof to dummylink.2.  (3) After the
       independent subproof is complete, use 'improve all' to assign it
       automatically to an unknown step in the main proof that matches it.  (4)
       After the entire proof is complete, use 'minimize *' to clean up
       (discard) all dummylink references automatically.

       This inference was originally designed to assist importing partially
       completed Proof Worksheets from the mmj2 Proof Assistant GUI, but it can
       also be useful on its own.  Interestingly, no axioms are required for
       its proof.  (Contributed by NM, 7-Feb-2006.) $)
    dummylink $p |- ph $=
      (  ) C $.
  $}

  ${
    idi.1 $e |- ph $.
    $( Inference form of ~ id .  This inference rule, which requires no axioms
       for its proof, is useful as a copy-paste mechanism during proof
       development in mmj2.  It is normally not referenced in the final version
       of a proof, since it is always redundant and can be removed using the
       'minimize *' command in the metamath program's Proof Assistant.
       (Contributed by Alan Sare, 31-Dec-2011.) $)
    idi $p |- ph $=
      (  ) B $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
                           Propositional calculus
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Recursively define primitive wffs for propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( If ` ph ` is a wff, so is ` -. ph ` or "not ` ph ` ."  Part of the
     recursive definition of a wff (well-formed formula).  Traditionally, Greek
     letters are used to represent wffs, and we follow this convention.  In
     propositional calculus, we define only wffs built up from other wffs, i.e.
     there is no starting or "atomic" wff.  Later, in predicate calculus, we
     will extend the basic wff definition by including atomic wffs ( ~ weq and
     ~ wel ). $)
  wn $a wff -. ph $.

  $( If ` ph ` and ` ps ` are wff's, so is ` ( ph -> ps ) ` or " ` ph ` implies
     ` ps ` ."  Part of the recursive definition of a wff.  The left-hand wff
     is called the antecedent, and the right-hand wff is called the
     consequent.  In the case of ` ( ph -> ( ps -> ch ) ) ` , the middle ` ps `
     may be informally called either an antecedent or part of the consequent
     depending on context. $)
  wi $a wff ( ph -> ps ) $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
             Propositional logic axioms for implication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom _Simp_.  Axiom A1 of [Margaris] p. 49.  One of the axioms of
     propositional calculus.  This axiom is called _Simp_ or "the principle of
     simplification" in _Principia Mathematica_ (Theorem *2.02 of
     [WhiteheadRussell] p. 100) because "it enables us to pass from the joint
     assertion of ` ph ` and ` ps ` to the assertion of ` ph ` simply."

     The theorems of propositional calculus are also called _tautologies_.
     Although classical propositional logic tautologies can be proved using
     truth tables, there is no similarly simple system for intuitionistic
     propositional logic, so proving tautologies from axioms is the preferred
     approach.  (Contributed by NM, 5-Aug-1993.) $)
  ax-1 $a |- ( ph -> ( ps -> ph ) ) $.

  $( Axiom _Frege_.  Axiom A2 of [Margaris] p. 49.  This axiom "distributes" an
     antecedent over two consequents.  This axiom was part of Frege's original
     system and is known as _Frege_ in the literature.  It is also proved as
     Theorem *2.77 of [WhiteheadRussell] p. 108.  The other direction of this
     axiom also turns out to be true, as demonstrated by ~ pm5.41 .
     (Contributed by NM, 5-Aug-1993.) $)
  ax-2 $a |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ps ) -> ( ph -> ch ) ) ) $.

  $(
     Postulate the modus ponens rule of inference.
  $)

  ${
    $( Minor premise for modus ponens. $)
    min $e |- ph $.
    $( Major premise for modus ponens. $)
    maj $e |- ( ph -> ps ) $.
    $( Rule of Modus Ponens.  The postulated inference rule of propositional
       calculus.  See e.g.  Rule 1 of [Hamilton] p. 73.  The rule says, "if
       ` ph ` is true, and ` ph ` implies ` ps ` , then ` ps ` must also be
       true."  This rule is sometimes called "detachment," since it detaches
       the minor premise from the major premise.

       Note:  In some web page displays such as the Statement List, the symbols
       "&" and "=>" informally indicate the relationship between the hypotheses
       and the assertion (conclusion), abbreviating the English words "and" and
       "implies."  They are not part of the formal language.  (Contributed by
       NM, 5-Aug-1993.) $)
    ax-mp $a |- ps $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Logical implication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

   The results in this section are based on implication only, and only use
   ~ ax-1 , ~ ax-2 , and ~ ax-mp .
   In an implication, the wff before the arrow is called the "antecedent" and
   the wff after the arrow is called the "consequent."

   We will use the following descriptive terms very loosely:  A "closed form"
   or "tautology" has no $e hypotheses.  An "inference" has one or more $e
   hypotheses.  A "deduction" is an inference in which the hypotheses and the
   conclusion share the same antecedent.
$)

  ${
    mp2b.1 $e |- ph $.
    mp2b.2 $e |- ( ph -> ps ) $.
    mp2b.3 $e |- ( ps -> ch ) $.
    $( A double modus ponens inference.  (Contributed by Mario Carneiro,
       24-Jan-2013.) $)
    mp2b $p |- ch $=
      ( ax-mp ) BCABDEGFG $.
  $}

  ${
    $( Premise for ~ a1i . $)
    a1i.1 $e |- ph $.
    $( Inference derived from axiom ~ ax-1 .  See ~ a1d for an explanation of
       our informal use of the terms "inference" and "deduction."  See also the
       comment in ~ syld .  (Contributed by NM, 5-Aug-1993.) $)
    a1i $p |- ( ps -> ph ) $=
      ( wi ax-1 ax-mp ) ABADCABEF $.
  $}

  ${
    mp1i.a $e |- ph $.
    mp1i.b $e |- ( ph -> ps ) $.
    $( Drop and replace an antecedent.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    mp1i $p |- ( ch -> ps ) $=
      ( ax-mp a1i ) BCABDEFG $.
  $}

  ${
    $( Premise for ~ a2i . $)
    a2i.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference derived from axiom ~ ax-2 .  (Contributed by NM,
       5-Aug-1993.) $)
    a2i $p |- ( ( ph -> ps ) -> ( ph -> ch ) ) $=
      ( wi ax-2 ax-mp ) ABCEEABEACEEDABCFG $.
  $}

  ${
    imim2i.1 $e |- ( ph -> ps ) $.
    $( Inference adding common antecedents in an implication.  (Contributed by
       NM, 5-Aug-1993.) $)
    imim2i $p |- ( ( ch -> ph ) -> ( ch -> ps ) ) $=
      ( wi a1i a2i ) CABABECDFG $.
  $}

  ${
    mpd.1 $e |- ( ph -> ps ) $.
    mpd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A modus ponens deduction.  (Contributed by NM, 5-Aug-1993.) $)
    mpd $p |- ( ph -> ch ) $=
      ( wi a2i ax-mp ) ABFACFDABCEGH $.
  $}

  ${
    $( First of 2 premises for ~ syl . $)
    syl.1 $e |- ( ph -> ps ) $.
    $( Second of 2 premises for ~ syl . $)
    syl.2 $e |- ( ps -> ch ) $.
    $( An inference version of the transitive laws for implication ~ imim2 and
       ~ imim1 , which Russell and Whitehead call "the principle of the
       syllogism...because...the syllogism in Barbara is derived from them"
       (quote after Theorem *2.06 of [WhiteheadRussell] p. 101).  Some authors
       call this law a "hypothetical syllogism."  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by O'Cat, 20-Oct-2011.)  (Proof shortened
       by Wolf Lammen, 26-Jul-2012.) $)
    syl $p |- ( ph -> ch ) $=
      ( wi a1i mpd ) ABCDBCFAEGH $.
  $}

  ${
    mpi.1 $e |- ps $.
    mpi.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A nested modus ponens inference.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Stefan Allan, 20-Mar-2006.) $)
    mpi $p |- ( ph -> ch ) $=
      ( a1i mpd ) ABCBADFEG $.
  $}

  ${
    mp2.1 $e |- ph $.
    mp2.2 $e |- ps $.
    mp2.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A double modus ponens inference.  (Contributed by NM, 5-Apr-1994.)
       (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    mp2 $p |- ch $=
      ( mpi ax-mp ) ACDABCEFGH $.
  $}

  ${
    3syl.1 $e |- ( ph -> ps ) $.
    3syl.2 $e |- ( ps -> ch ) $.
    3syl.3 $e |- ( ch -> th ) $.
    $( Inference chaining two syllogisms.  (Contributed by NM, 5-Aug-1993.) $)
    3syl $p |- ( ph -> th ) $=
      ( syl ) ACDABCEFHGH $.
  $}

  ${
    4syl.1 $e |- ( ph -> ps ) $.
    4syl.2 $e |- ( ps -> ch ) $.
    4syl.3 $e |- ( ch -> th ) $.
    4syl.4 $e |- ( th -> ta ) $.
    $( Inference chaining three syllogisms.  The use of this theorem is marked
       "discouraged" because it can cause the "minimize" command to have very
       long run times.  However, feel free to use "minimize 4syl /override" if
       you wish.  (Contributed by BJ, 14-Jul-2018.)
       (New usage is discouraged.) $)
    4syl $p |- ( ph -> ta ) $=
      ( 3syl syl ) ADEABCDFGHJIK $.
  $}

  $( Principle of identity.  Theorem *2.08 of [WhiteheadRussell] p. 101.  For
     another version of the proof directly from axioms, see ~ idALT .
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Stefan Allan,
     20-Mar-2006.) $)
  id $p |- ( ph -> ph ) $=
    ( wi ax-1 mpd ) AAABZAAACAECD $.

  $( Principle of identity.  Theorem *2.08 of [WhiteheadRussell] p. 101.  This
     version is proved directly from the axioms for demonstration purposes.
     This proof is a popular example in the literature and is identical, step
     for step, to the proofs of Theorem 1 of [Margaris] p. 51, Example 2.7(a)
     of [Hamilton] p. 31, Lemma 10.3 of [BellMachover] p. 36, and Lemma 1.8 of
     [Mendelson] p. 36.  It is also "Our first proof" in Hirst and Hirst's _A
     Primer for Logic and Proof_ p. 17 (PDF p. 23) at
     ~ http://www.mathsci.appstate.edu/~~jlh/primer/hirst.pdf .  For a shorter
     version of the proof that takes advantage of previously proved theorems,
     see ~ id .  (Contributed by NM, 5-Aug-1993.)
     (Proof modification is discouraged.)  Use ~ id instead.
     (New usage is discouraged.) $)
  idALT $p |- ( ph -> ph ) $=
    ( wi ax-1 ax-2 ax-mp ) AAABZBZFAACAFABBGFBAFCAFADEE $.

  $( Principle of identity with antecedent.  (Contributed by NM,
     26-Nov-1995.) $)
  idd $p |- ( ph -> ( ps -> ps ) ) $=
    ( wi id a1i ) BBCABDE $.

  ${
    a1d.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing an embedded antecedent.  (The proof was revised by
       Stefan Allan, 20-Mar-2006.)

       _Naming convention_:  We often call a theorem a "deduction" and suffix
       its label with "d" whenever the hypotheses and conclusion are each
       prefixed with the same antecedent.  This allows us to use the theorem in
       places where (in traditional textbook formalizations) the standard
       Deduction Theorem would be used; here ` ph ` would be replaced with a
       conjunction ( ~ wa ) of the hypotheses of the would-be deduction.  By
       contrast, we tend to call the simpler version with no common antecedent
       an "inference" and suffix its label with "i"; compare theorem ~ a1i .
       Finally, a "theorem" would be the form with no hypotheses; in this case
       the "theorem" form would be the original axiom ~ ax-1 .  We usually show
       the theorem form without a suffix on its label (e.g. ~ pm2.43 vs.
       ~ pm2.43i vs. ~ pm2.43d ).  (Contributed by NM, 5-Aug-1993.)  (Revised
       by NM, 20-Mar-2006.) $)
    a1d $p |- ( ph -> ( ch -> ps ) ) $=
      ( wi ax-1 syl ) ABCBEDBCFG $.
  $}

  ${
    a2d.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Deduction distributing an embedded antecedent.  (Contributed by NM,
       23-Jun-1994.) $)
    a2d $p |- ( ph -> ( ( ps -> ch ) -> ( ps -> th ) ) ) $=
      ( wi ax-2 syl ) ABCDFFBCFBDFFEBCDGH $.
  $}

  ${
    a1ii.1 $e |- ch $.
    $( Add two antecedents to a wff.  (Contributed by Jeff Hankins,
       4-Aug-2009.)  (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    a1ii $p |- ( ph -> ( ps -> ch ) ) $=
      ( a1i a1d ) ACBCADEF $.
  $}

  ${
    sylcom.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylcom.2 $e |- ( ps -> ( ch -> th ) ) $.
    $( Syllogism inference with commutation of antecedents.  (Contributed by
       NM, 29-Aug-2004.)  (Proof shortened by O'Cat, 2-Feb-2006.)  (Proof
       shortened by Stefan Allan, 23-Feb-2006.) $)
    sylcom $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a2i syl ) ABCGBDGEBCDFHI $.
  $}

  ${
    syl5com.1 $e |- ( ph -> ps ) $.
    syl5com.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( Syllogism inference with commuted antecedents.  (Contributed by NM,
       24-May-2005.) $)
    syl5com $p |- ( ph -> ( ch -> th ) ) $=
      ( a1d sylcom ) ACBDABCEGFH $.
  $}

  ${
    $( Premise for ~ com12 .  See ~ pm2.04 for the theorem form. $)
    com12.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference that swaps (commutes) antecedents in an implication.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       4-Aug-2012.) $)
    com12 $p |- ( ps -> ( ph -> ch ) ) $=
      ( id syl5com ) BBACBEDF $.
  $}

  ${
    syl5.1 $e |- ( ph -> ps ) $.
    syl5.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the second antecedent of the first premise.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Wolf Lammen, 25-May-2013.) $)
    syl5 $p |- ( ch -> ( ph -> th ) ) $=
      ( syl5com com12 ) ACDABCDEFGH $.
  $}

  ${
    syl6.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6.2 $e |- ( ch -> th ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the consequent of the first premise.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Wolf Lammen, 30-Jul-2012.) $)
    syl6 $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a1i sylcom ) ABCDECDGBFHI $.
  $}

  ${
    syl56.1 $e |- ( ph -> ps ) $.
    syl56.2 $e |- ( ch -> ( ps -> th ) ) $.
    syl56.3 $e |- ( th -> ta ) $.
    $( Combine ~ syl5 and ~ syl6 .  (Contributed by NM, 14-Nov-2013.) $)
    syl56 $p |- ( ch -> ( ph -> ta ) ) $=
      ( syl6 syl5 ) ABCEFCBDEGHIJ $.
  $}

  ${
    syl6com.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6com.2 $e |- ( ch -> th ) $.
    $( Syllogism inference with commuted antecedents.  (Contributed by NM,
       25-May-2005.) $)
    syl6com $p |- ( ps -> ( ph -> th ) ) $=
      ( syl6 com12 ) ABDABCDEFGH $.
  $}

  ${
    mpcom.1 $e |- ( ps -> ph ) $.
    mpcom.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Modus ponens inference with commutation of antecedents.  (Contributed by
       NM, 17-Mar-1996.) $)
    mpcom $p |- ( ps -> ch ) $=
      ( com12 mpd ) BACDABCEFG $.
  $}

  ${
    syli.1 $e |- ( ps -> ( ph -> ch ) ) $.
    syli.2 $e |- ( ch -> ( ph -> th ) ) $.
    $( Syllogism inference with common nested antecedent.  (Contributed by NM,
       4-Nov-2004.) $)
    syli $p |- ( ps -> ( ph -> th ) ) $=
      ( com12 sylcom ) BACDECADFGH $.
  $}

  ${
    syl2im.1 $e |- ( ph -> ps ) $.
    syl2im.2 $e |- ( ch -> th ) $.
    syl2im.3 $e |- ( ps -> ( th -> ta ) ) $.
    $( Replace two antecedents.  Implication-only version of ~ syl2an .
       (Contributed by Wolf Lammen, 14-May-2013.) $)
    syl2im $p |- ( ph -> ( ch -> ta ) ) $=
      ( wi syl5 syl ) ABCEIFCDBEGHJK $.
  $}

  $( This theorem, called "Assertion," can be thought of as closed form of
     modus ponens ~ ax-mp .  Theorem *2.27 of [WhiteheadRussell] p. 104.
     (Contributed by NM, 5-Aug-1993.) $)
  pm2.27 $p |- ( ph -> ( ( ph -> ps ) -> ps ) ) $=
    ( wi id com12 ) ABCZABFDE $.

  ${
    mpdd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    mpdd.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A nested modus ponens deduction.  (Contributed by NM, 12-Dec-2004.) $)
    mpdd $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a2d mpd ) ABCGBDGEABCDFHI $.
  $}

  ${
    mpid.1 $e |- ( ph -> ch ) $.
    mpid.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A nested modus ponens deduction.  (Contributed by NM, 14-Dec-2004.) $)
    mpid $p |- ( ph -> ( ps -> th ) ) $=
      ( a1d mpdd ) ABCDACBEGFH $.
  $}

  ${
    mpdi.1 $e |- ( ps -> ch ) $.
    mpdi.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A nested modus ponens deduction.  (Contributed by NM, 16-Apr-2005.)
       (Proof shortened by O'Cat, 15-Jan-2008.) $)
    mpdi $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a1i mpdd ) ABCDBCGAEHFI $.
  $}

  ${
    mpii.1 $e |- ch $.
    mpii.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A doubly nested modus ponens inference.  (Contributed by NM,
       31-Dec-1993.)  (Proof shortened by Wolf Lammen, 31-Jul-2012.) $)
    mpii $p |- ( ph -> ( ps -> th ) ) $=
      ( a1i mpdi ) ABCDCBEGFH $.
  $}

  ${
    syld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syld.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Syllogism deduction.

       Notice that ~ syld has the same form as ~ syl with ` ph ` added in front
       of each hypothesis and conclusion.  When all theorems referenced in a
       proof are converted in this way, we can replace ` ph ` with a hypothesis
       of the proof, allowing the hypothesis to be eliminated with ~ id and
       become an antecedent.  The Deduction Theorem for propositional calculus,
       e.g.  Theorem 3 in [Margaris] p. 56, tells us that this procedure is
       always possible.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by
       O'Cat, 19-Feb-2008.)  (Proof shortened by Wolf Lammen, 3-Aug-2012.) $)
    syld $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a1d mpdd ) ABCDEACDGBFHI $.
  $}

  ${
    mp2d.1 $e |- ( ph -> ps ) $.
    mp2d.2 $e |- ( ph -> ch ) $.
    mp2d.3 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A double modus ponens deduction.  (Contributed by NM, 23-May-2013.)
       (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    mp2d $p |- ( ph -> th ) $=
      ( mpid mpd ) ABDEABCDFGHI $.
  $}

  ${
    a1dd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction introducing a nested embedded antecedent.  (Contributed by NM,
       17-Dec-2004.)  (Proof shortened by O'Cat, 15-Jan-2008.) $)
    a1dd $p |- ( ph -> ( ps -> ( th -> ch ) ) ) $=
      ( wi ax-1 syl6 ) ABCDCFECDGH $.
  $}

  ${
    pm2.43i.1 $e |- ( ph -> ( ph -> ps ) ) $.
    $( Inference absorbing redundant antecedent.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by O'Cat, 28-Nov-2008.) $)
    pm2.43i $p |- ( ph -> ps ) $=
      ( id mpd ) AABADCE $.
  $}

  ${
    pm2.43d.1 $e |- ( ph -> ( ps -> ( ps -> ch ) ) ) $.
    $( Deduction absorbing redundant antecedent.  (Contributed by NM,
       18-Aug-1993.)  (Proof shortened by O'Cat, 28-Nov-2008.) $)
    pm2.43d $p |- ( ph -> ( ps -> ch ) ) $=
      ( id mpdi ) ABBCBEDF $.
  $}

  ${
    pm2.43a.1 $e |- ( ps -> ( ph -> ( ps -> ch ) ) ) $.
    $( Inference absorbing redundant antecedent.  (Contributed by NM,
       7-Nov-1995.)  (Proof shortened by O'Cat, 28-Nov-2008.) $)
    pm2.43a $p |- ( ps -> ( ph -> ch ) ) $=
      ( id mpid ) BABCBEDF $.
  $}

  ${
    pm2.43b.1 $e |- ( ps -> ( ph -> ( ps -> ch ) ) ) $.
    $( Inference absorbing redundant antecedent.  (Contributed by NM,
       31-Oct-1995.) $)
    pm2.43b $p |- ( ph -> ( ps -> ch ) ) $=
      ( pm2.43a com12 ) BACABCDEF $.
  $}

  $( Absorption of redundant antecedent.  Also called the "Contraction" or
     "Hilbert" axiom.  Theorem *2.43 of [WhiteheadRussell] p. 106.
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by O'Cat,
     15-Aug-2004.) $)
  pm2.43 $p |- ( ( ph -> ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wi pm2.27 a2i ) AABCBABDE $.

  ${
    imim2d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding nested antecedents.  (Contributed by NM,
       5-Aug-1993.) $)
    imim2d $p |- ( ph -> ( ( th -> ps ) -> ( th -> ch ) ) ) $=
      ( wi a1d a2d ) ADBCABCFDEGH $.
  $}

  $( A closed form of syllogism (see ~ syl ).  Theorem *2.05 of
     [WhiteheadRussell] p. 100.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 6-Sep-2012.) $)
  imim2 $p |- ( ( ph -> ps ) -> ( ( ch -> ph ) -> ( ch -> ps ) ) ) $=
    ( wi id imim2d ) ABDZABCGEF $.

  ${
    embantd.1 $e |- ( ph -> ps ) $.
    embantd.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Deduction embedding an antecedent.  (Contributed by Wolf Lammen,
       4-Oct-2013.) $)
    embantd $p |- ( ph -> ( ( ps -> ch ) -> th ) ) $=
      ( wi imim2d mpid ) ABCGBDEACDBFHI $.
  $}

  ${
    3syld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3syld.2 $e |- ( ph -> ( ch -> th ) ) $.
    3syld.3 $e |- ( ph -> ( th -> ta ) ) $.
    $( Triple syllogism deduction.  (Contributed by Jeff Hankins,
       4-Aug-2009.) $)
    3syld $p |- ( ph -> ( ps -> ta ) ) $=
      ( syld ) ABDEABCDFGIHI $.
  $}

  ${
    sylsyld.1 $e |- ( ph -> ps ) $.
    sylsyld.2 $e |- ( ph -> ( ch -> th ) ) $.
    sylsyld.3 $e |- ( ps -> ( th -> ta ) ) $.
    $( Virtual deduction rule.  (Contributed by Alan Sare, 20-Apr-2011.) $)
    sylsyld $p |- ( ph -> ( ch -> ta ) ) $=
      ( wi syl syld ) ACDEGABDEIFHJK $.
  $}

  ${
    imim12i.1 $e |- ( ph -> ps ) $.
    imim12i.2 $e |- ( ch -> th ) $.
    $( Inference joining two implications.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by O'Cat, 29-Oct-2011.) $)
    imim12i $p |- ( ( ps -> ch ) -> ( ph -> th ) ) $=
      ( wi imim2i syl5 ) ABBCGDECDBFHI $.
  $}

  ${
    imim1i.1 $e |- ( ph -> ps ) $.
    $( Inference adding common consequents in an implication, thereby
       interchanging the original antecedent and consequent.  (Contributed by
       NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 4-Aug-2012.) $)
    imim1i $p |- ( ( ps -> ch ) -> ( ph -> ch ) ) $=
      ( id imim12i ) ABCCDCEF $.
  $}

  ${
    imim3i.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference adding three nested antecedents.  (Contributed by NM,
       19-Dec-2006.) $)
    imim3i $p |- ( ( th -> ph ) -> ( ( th -> ps ) -> ( th -> ch ) ) ) $=
      ( wi imim2i a2d ) DAFDBCABCFDEGH $.
  $}

  ${
    sylc.1 $e |- ( ph -> ps ) $.
    sylc.2 $e |- ( ph -> ch ) $.
    sylc.3 $e |- ( ps -> ( ch -> th ) ) $.
    $( A syllogism inference combined with contraction.  (Contributed by NM,
       4-May-1994.)  (Revised by NM, 13-Jul-2013.) $)
    sylc $p |- ( ph -> th ) $=
      ( syl2im pm2.43i ) ADABACDEFGHI $.
  $}

  ${
    syl3c.1 $e |- ( ph -> ps ) $.
    syl3c.2 $e |- ( ph -> ch ) $.
    syl3c.3 $e |- ( ph -> th ) $.
    syl3c.4 $e |- ( ps -> ( ch -> ( th -> ta ) ) ) $.
    $( A syllogism inference combined with contraction.  (Contributed by Alan
       Sare, 7-Jul-2011.) $)
    syl3c $p |- ( ph -> ta ) $=
      ( wi sylc mpd ) ADEHABCDEJFGIKL $.
  $}

  ${
    syl6mpi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6mpi.2 $e |- th $.
    syl6mpi.3 $e |- ( ch -> ( th -> ta ) ) $.
    $( ~ syl6 combined with ~ mpi .  (Contributed by Alan Sare, 8-Jul-2011.)
       (Proof shortened by Wolf Lammen, 13-Sep-2012.) $)
    syl6mpi $p |- ( ph -> ( ps -> ta ) ) $=
      ( mpi syl6 ) ABCEFCDEGHIJ $.
  $}

  ${
    mpsyl.1 $e |- ph $.
    mpsyl.2 $e |- ( ps -> ch ) $.
    mpsyl.3 $e |- ( ph -> ( ch -> th ) ) $.
    $( Modus ponens combined with a syllogism inference.  (Contributed by Alan
       Sare, 20-Apr-2011.) $)
    mpsyl $p |- ( ps -> th ) $=
      ( a1i sylc ) BACDABEHFGI $.
  $}

  ${
    syl6c.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6c.2 $e |- ( ph -> ( ps -> th ) ) $.
    syl6c.3 $e |- ( ch -> ( th -> ta ) ) $.
    $( Inference combining ~ syl6 with contraction.  (Contributed by Alan Sare,
       2-May-2011.) $)
    syl6c $p |- ( ph -> ( ps -> ta ) ) $=
      ( wi syl6 mpdd ) ABDEGABCDEIFHJK $.
  $}

  ${
    syldd.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syldd.2 $e |- ( ph -> ( ps -> ( th -> ta ) ) ) $.
    $( Nested syllogism deduction.  (Contributed by NM, 12-Dec-2004.)  (Proof
       shortened by Wolf Lammen, 11-May-2013.) $)
    syldd $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( wi imim2 syl6c ) ABDEHCDHCEHGFDECIJ $.
  $}

  ${
    syl5d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl5d.2 $e |- ( ph -> ( th -> ( ch -> ta ) ) ) $.
    $( A nested syllogism deduction.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Josh Purinton, 29-Dec-2000.)  (Proof shortened by O'Cat,
       2-Feb-2006.) $)
    syl5d $p |- ( ph -> ( th -> ( ps -> ta ) ) ) $=
      ( wi a1d syldd ) ADBCEABCHDFIGJ $.
  $}

  ${
    syl7.1 $e |- ( ph -> ps ) $.
    syl7.2 $e |- ( ch -> ( th -> ( ps -> ta ) ) ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the third antecedent of the first premise.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Wolf Lammen, 3-Aug-2012.) $)
    syl7 $p |- ( ch -> ( th -> ( ph -> ta ) ) ) $=
      ( wi a1i syl5d ) CABDEABHCFIGJ $.
  $}

  ${
    syl6d.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syl6d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( A nested syllogism deduction.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Josh Purinton, 29-Dec-2000.)  (Proof shortened by O'Cat,
       2-Feb-2006.)  (Revised by NM, 3-Feb-2006.) $)
    syl6d $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( wi a1d syldd ) ABCDEFADEHBGIJ $.
  $}

  ${
    syl8.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syl8.2 $e |- ( th -> ta ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the consequent of the first premise.  (Contributed by NM, 1-Aug-1994.)
       (Proof shortened by Wolf Lammen, 3-Aug-2012.) $)
    syl8 $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( wi a1i syl6d ) ABCDEFDEHAGIJ $.
  $}

  ${
    syl9.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl9.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( A nested syllogism inference with different antecedents.  (Contributed
       by NM, 5-Aug-1993.)  (Proof shortened by Josh Purinton, 29-Dec-2000.) $)
    syl9 $p |- ( ph -> ( th -> ( ps -> ta ) ) ) $=
      ( wi a1i syl5d ) ABCDEFDCEHHAGIJ $.
  $}

  ${
    syl9r.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl9r.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( A nested syllogism inference with different antecedents.  (Contributed
       by NM, 5-Aug-1993.) $)
    syl9r $p |- ( th -> ( ph -> ( ps -> ta ) ) ) $=
      ( wi syl9 com12 ) ADBEHABCDEFGIJ $.
  $}

  ${
    imim12d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    imim12d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( Deduction combining antecedents and consequents.  (Contributed by NM,
       7-Aug-1994.)  (Proof shortened by O'Cat, 30-Oct-2011.) $)
    imim12d $p |- ( ph -> ( ( ch -> th ) -> ( ps -> ta ) ) ) $=
      ( wi imim2d syl5d ) ABCCDHEFADECGIJ $.
  $}

  ${
    imim1d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding nested consequents.  (Contributed by NM, 3-Apr-1994.)
       (Proof shortened by Wolf Lammen, 12-Sep-2012.) $)
    imim1d $p |- ( ph -> ( ( ch -> th ) -> ( ps -> th ) ) ) $=
      ( idd imim12d ) ABCDDEADFG $.
  $}

  $( A closed form of syllogism (see ~ syl ).  Theorem *2.06 of
     [WhiteheadRussell] p. 100.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 25-May-2013.) $)
  imim1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( wi id imim1d ) ABDZABCGEF $.

  $( Theorem *2.83 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.83 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ( ch -> th ) ) ->
                ( ph -> ( ps -> th ) ) ) ) $=
    ( wi imim1 imim3i ) BCECDEBDEABCDFG $.

  ${
    com3.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Commutation of antecedents.  Swap 2nd and 3rd.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Wolf Lammen, 4-Aug-2012.) $)
    com23 $p |- ( ph -> ( ch -> ( ps -> th ) ) ) $=
      ( wi pm2.27 syl9 ) ABCDFCDECDGH $.

    $( Commutation of antecedents.  Rotate right.  (Contributed by NM,
       25-Apr-1994.) $)
    com3r $p |- ( ch -> ( ph -> ( ps -> th ) ) ) $=
      ( wi com23 com12 ) ACBDFABCDEGH $.

    $( Commutation of antecedents.  Swap 1st and 3rd.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Wolf Lammen, 28-Jul-2012.) $)
    com13 $p |- ( ch -> ( ps -> ( ph -> th ) ) ) $=
      ( com3r com23 ) CABDABCDEFG $.

    $( Commutation of antecedents.  Rotate left.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Wolf Lammen, 28-Jul-2012.) $)
    com3l $p |- ( ps -> ( ch -> ( ph -> th ) ) ) $=
      ( com3r ) CABDABCDEFF $.
  $}

  $( Swap antecedents.  Theorem *2.04 of [WhiteheadRussell] p. 100.
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
     12-Sep-2012.) $)
  pm2.04 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi id com23 ) ABCDDZABCGEF $.

  ${
    com4.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $.
    $( Commutation of antecedents.  Swap 3rd and 4th.  (Contributed by NM,
       25-Apr-1994.) $)
    com34 $p |- ( ph -> ( ps -> ( th -> ( ch -> ta ) ) ) ) $=
      ( wi pm2.04 syl6 ) ABCDEGGDCEGGFCDEHI $.

    $( Commutation of antecedents.  Rotate left.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by O'Cat, 15-Aug-2004.) $)
    com4l $p |- ( ps -> ( ch -> ( th -> ( ph -> ta ) ) ) ) $=
      ( wi com3l com34 ) BCADEABCDEGFHI $.

    $( Commutation of antecedents.  Rotate twice.  (Contributed by NM,
       25-Apr-1994.) $)
    com4t $p |- ( ch -> ( th -> ( ph -> ( ps -> ta ) ) ) ) $=
      ( com4l ) BCDAEABCDEFGG $.

    $( Commutation of antecedents.  Rotate right.  (Contributed by NM,
       25-Apr-1994.) $)
    com4r $p |- ( th -> ( ph -> ( ps -> ( ch -> ta ) ) ) ) $=
      ( com4t com4l ) CDABEABCDEFGH $.

    $( Commutation of antecedents.  Swap 2nd and 4th.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Wolf Lammen, 28-Jul-2012.) $)
    com24 $p |- ( ph -> ( th -> ( ch -> ( ps -> ta ) ) ) ) $=
      ( wi com4t com13 ) CDABEGABCDEFHI $.

    $( Commutation of antecedents.  Swap 1st and 4th.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Wolf Lammen, 28-Jul-2012.) $)
    com14 $p |- ( th -> ( ps -> ( ch -> ( ph -> ta ) ) ) ) $=
      ( wi com4l com3r ) BCDAEGABCDEFHI $.
  $}

  ${
    com5.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $.
    $( Commutation of antecedents.  Swap 4th and 5th.  (Contributed by Jeff
       Hankins, 28-Jun-2009.) $)
    com45 $p |- ( ph -> ( ps -> ( ch -> ( ta -> ( th -> et ) ) ) ) ) $=
      ( wi pm2.04 syl8 ) ABCDEFHHEDFHHGDEFIJ $.

    $( Commutation of antecedents.  Swap 3rd and 5th.  (Contributed by Jeff
       Hankins, 28-Jun-2009.) $)
    com35 $p |- ( ph -> ( ps -> ( ta -> ( th -> ( ch -> et ) ) ) ) ) $=
      ( wi com34 com45 ) ABDECFHABDCEFABCDEFHGIJI $.

    $( Commutation of antecedents.  Swap 2nd and 5th.  (Contributed by Jeff
       Hankins, 28-Jun-2009.) $)
    com25 $p |- ( ph -> ( ta -> ( ch -> ( th -> ( ps -> et ) ) ) ) ) $=
      ( wi com24 com45 ) ADCEBFHADCBEFABCDEFHGIJI $.

    $( Commutation of antecedents.  Rotate left.  (Contributed by Jeff Hankins,
       28-Jun-2009.)  (Proof shortened by Wolf Lammen, 29-Jul-2012.) $)
    com5l $p |- ( ps -> ( ch -> ( th -> ( ta -> ( ph -> et ) ) ) ) ) $=
      ( wi com4l com45 ) BCDAEFABCDEFHGIJ $.

    $( Commutation of antecedents.  Swap 1st and 5th.  (Contributed by Jeff
       Hankins, 28-Jun-2009.)  (Proof shortened by Wolf Lammen,
       29-Jul-2012.) $)
    com15 $p |- ( ta -> ( ps -> ( ch -> ( th -> ( ph -> et ) ) ) ) ) $=
      ( wi com5l com4r ) BCDEAFHABCDEFGIJ $.

    $( Commutation of antecedents.  Rotate left twice.  (Contributed by Jeff
       Hankins, 28-Jun-2009.) $)
    com52l $p |- ( ch -> ( th -> ( ta -> ( ph -> ( ps -> et ) ) ) ) ) $=
      ( com5l ) BCDEAFABCDEFGHH $.

    $( Commutation of antecedents.  Rotate right twice.  (Contributed by Jeff
       Hankins, 28-Jun-2009.) $)
    com52r $p |- ( th -> ( ta -> ( ph -> ( ps -> ( ch -> et ) ) ) ) ) $=
      ( com52l com5l ) CDEABFABCDEFGHI $.

    $( Commutation of antecedents.  Rotate right.  (Contributed by Wolf Lammen,
       29-Jul-2012.) $)
    com5r $p |- ( ta -> ( ph -> ( ps -> ( ch -> ( th -> et ) ) ) ) ) $=
      ( com52l ) CDEABFABCDEFGHH $.
  $}

  $( Elimination of a nested antecedent.  (Contributed by Wolf Lammen,
     9-May-2013.) $)
  jarr $p |- ( ( ( ph -> ps ) -> ch ) -> ( ps -> ch ) ) $=
    ( wi ax-1 imim1i ) BABDCBAEF $.

  ${
    pm2.86i.1 $e |- ( ( ph -> ps ) -> ( ph -> ch ) ) $.
    $( Inference based on ~ pm2.86 .  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Wolf Lammen, 3-Apr-2013.) $)
    pm2.86i $p |- ( ph -> ( ps -> ch ) ) $=
      ( wi ax-1 syl com12 ) BACBABEACEBAFDGH $.
  $}

  ${
    pm2.86d.1 $e |- ( ph -> ( ( ps -> ch ) -> ( ps -> th ) ) ) $.
    $( Deduction based on ~ pm2.86 .  (Contributed by NM, 29-Jun-1995.)  (Proof
       shortened by Wolf Lammen, 3-Apr-2013.) $)
    pm2.86d $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wi ax-1 syl5 com23 ) ACBDCBCFABDFCBGEHI $.
  $}

  $( Converse of axiom ~ ax-2 .  Theorem *2.86 of [WhiteheadRussell] p. 108.
     (Contributed by NM, 25-Apr-1994.)  (Proof shortened by Wolf Lammen,
     3-Apr-2013.) $)
  pm2.86 $p |- ( ( ( ph -> ps ) -> ( ph -> ch ) ) ->
              ( ph -> ( ps -> ch ) ) ) $=
    ( wi id pm2.86d ) ABDACDDZABCGEF $.

  $( The Linearity Axiom of the infinite-valued sentential logic (L-infinity)
     of Lukasiewicz.  (Contributed by O'Cat, 12-Aug-2004.) $)
  loolin $p |- ( ( ( ph -> ps ) -> ( ps -> ph ) ) -> ( ps -> ph ) ) $=
    ( wi jarr pm2.43d ) ABCBACZCBAABFDE $.

  $( An alternate for the Linearity Axiom of the infinite-valued sentential
     logic (L-infinity) of Lukasiewicz, due to Barbara Wozniakowska, _Reports
     on Mathematical Logic_ 10, 129-137 (1978).  (Contributed by O'Cat,
     8-Aug-2004.) $)
  loowoz $p |- ( ( ( ph -> ps ) -> ( ph -> ch ) ) ->
                 ( ( ps -> ph ) -> ( ps -> ch ) ) ) $=
    ( wi jarr a2d ) ABDACDZDBACABGEF $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Logical conjunction and logical equivalence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare connectives for conjunction ('and') and biconditional. $)
  $c /\ $. $( Wedge (read:  'and') $)
  $c <-> $. $( Double arrow (read:  'if and only if' or
               'is logically equivalent to') $)

  $( Extend wff definition to include conjunction ('and'). $)
  wa $a wff ( ph /\ ps ) $.

  $( Extend our wff definition to include the biconditional connective. $)
  wb $a wff ( ph <-> ps ) $.

  $( Left 'and' elimination.  Axiom 1 of 10 for intuitionistic logic.  Use its
     alias ~ simpl instead for naming consistency with set.mm.
     (New usage is discouraged.)  (Contributed by Mario Carneiro,
     31-Jan-2015.) $)
  ax-ia1 $a |- ( ( ph /\ ps ) -> ph ) $.

  $( Right 'and' elimination.  Axiom 2 of 10 for intuitionistic logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.)  Use its alias ~ simpr
     instead for naming consistency with set.mm.
     (New usage is discouraged.) $)
  ax-ia2 $a |- ( ( ph /\ ps ) -> ps ) $.

  $( 'And' introduction.  Axiom 3 of 10 for intuitionistic logic.  (Contributed
     by Mario Carneiro, 31-Jan-2015.) $)
  ax-ia3 $a |- ( ph -> ( ps -> ( ph /\ ps ) ) ) $.

  $( Elimination of a conjunct.  Theorem *3.26 (Simp) of [WhiteheadRussell]
     p. 112.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 13-Nov-2012.) $)
  simpl $p |- ( ( ph /\ ps ) -> ph ) $=
    ( ax-ia1 ) ABC $.

  $( Elimination of a conjunct.  Theorem *3.27 (Simp) of [WhiteheadRussell]
     p. 112.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 13-Nov-2012.) $)
  simpr $p |- ( ( ph /\ ps ) -> ps ) $=
    ( ax-ia2 ) ABC $.

  ${
    simpli.1 $e |- ( ph /\ ps ) $.
    $( Inference eliminating a conjunct.  (Contributed by NM, 15-Jun-1994.) $)
    simpli $p |- ph $=
      ( wa simpl ax-mp ) ABDACABEF $.
  $}

  ${
    simpld.1 $e |- ( ph -> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 5-Aug-1993.) $)
    simpld $p |- ( ph -> ps ) $=
      ( wa simpl syl ) ABCEBDBCFG $.
  $}

  ${
    simpri.1 $e |- ( ph /\ ps ) $.
    $( Inference eliminating a conjunct.  (Contributed by NM, 15-Jun-1994.) $)
    simpri $p |- ps $=
      ( wa simpr ax-mp ) ABDBCABEF $.
  $}

  ${
    simprd.1 $e |- ( ph -> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
    simprd $p |- ( ph -> ch ) $=
      ( wa simpr syl ) ABCECDBCFG $.
  $}

  ${
    exp.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Exportation inference.  (This theorem used to be labeled "exp" but was
       changed to "ex" so as not to conflict with the math token "exp", per the
       June 2006 Metamath spec change.)  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Eric Schmidt, 22-Dec-2006.) $)
    ex $p |- ( ph -> ( ps -> ch ) ) $=
      ( wa ax-ia3 syl6 ) ABABECABFDG $.

    $( Exportation inference with commuted antecedents.  (Contributed by NM,
       25-May-2005.) $)
    expcom $p |- ( ps -> ( ph -> ch ) ) $=
      ( ex com12 ) ABCABCDEF $.
  $}

  $( This is our first definition, which introduces and defines the
     biconditional connective ` <-> ` .  We define a wff of the form
     ` ( ph <-> ps ) ` as an abbreviation for
     ` ( ( ph -> ps ) /\ ( ps -> ph ) ) ` .

     Unlike most traditional developments, we have chosen not to have a
     separate symbol such as "Df." to mean "is defined as."  Instead, we will
     later use the biconditional connective for this purpose, as it allows us
     to use logic to manipulate definitions directly.  For an example of such a
     definition, see ~ df-3or .  This greatly simplifies many proofs since it
     eliminates the need for a separate mechanism for introducing and
     eliminating definitions.  Of course, we cannot use this mechanism to
     define the biconditional itself, since it hasn't been introduced yet.
     Instead, we use a more general form of definition, described as follows.

     In its most general form, a definition is simply an assertion that
     introduces a new symbol (or a new combination of existing symbols, as in
     ~ df-3an ) that is eliminable and does not strengthen the existing
     language.  The latter requirement means that the set of provable
     statements not containing the new symbol (or new combination) should
     remain exactly the same after the definition is introduced.  Our
     definition of the biconditional may look unusual compared to most
     definitions, but it strictly satisfies these requirements.

     The justification for our definition is that if we mechanically replace
     ` ( ph <-> ps ) ` (the definiendum i.e. the thing being defined) with
     ` ( ( ph -> ps ) /\ ( ps -> ph ) ) ` (the definiens i.e. the defining
     expression) in the definition, the definition becomes the previously
     proved theorem ~ biijust .  It is impossible to use ~ df-bi to prove any
     statement expressed in the original language that can't be proved from the
     original axioms, because if we simply replace each instance of ~ df-bi in
     the proof with the corresponding ~ biijust instance, we will end up with a
     proof from the original axioms.

     Note that from Metamath's point of view, a definition is just another
     axiom - i.e. an assertion we claim to be true - but from our high level
     point of view, we are are not strengthening the language.  To indicate
     this fact, we prefix definition labels with "df-" instead of "ax-".  (This
     prefixing is an informal convention that means nothing to the Metamath
     proof verifier; it is just for human readability.)

     ~ df-bi itself is a conjunction of two implications (to avoid using the
     biconditional in its own definition), but once we have the biconditional,
     we can prove ~ dfbi2 which uses the biconditional instead.

     Other definitions of the biconditional, such as ~ dfbi3dc , only hold for
     decidable propositions, not all propositions.  (Contributed by NM,
     5-Aug-1993.)  (Revised by Jim Kingdon, 24-Nov-2017.) $)
  df-bi $a |- ( ( ( ph <-> ps ) -> ( ( ph -> ps ) /\ ( ps -> ph ) ) )
        /\ ( ( ( ph -> ps ) /\ ( ps -> ph ) ) -> ( ph <-> ps ) ) ) $.

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.)  (Revised by NM, 31-Jan-2015.) $)
  bi1 $p |- ( ( ph <-> ps ) -> ( ph -> ps ) ) $=
    ( wb wi wa df-bi simpli simpld ) ABCZABDZBADZIJKEZDLIDABFGH $.

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.) $)
  bi3 $p |- ( ( ph -> ps ) -> ( ( ps -> ph ) -> ( ph <-> ps ) ) ) $=
    ( wi wb wa df-bi simpri ex ) ABCZBACZABDZKIJEZCLKCABFGH $.

  ${
    biimpi.1 $e |- ( ph <-> ps ) $.
    $( Infer an implication from a logical equivalence.  (Contributed by NM,
       5-Aug-1993.) $)
    biimpi $p |- ( ph -> ps ) $=
      ( wb wi bi1 ax-mp ) ABDABECABFG $.
  $}

  ${
    sylbi.1 $e |- ( ph <-> ps ) $.
    sylbi.2 $e |- ( ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       Useful for substituting an antecedent with a definition.  (Contributed
       by NM, 5-Aug-1993.) $)
    sylbi $p |- ( ph -> ch ) $=
      ( biimpi syl ) ABCABDFEG $.
  $}

  ${
    imp.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Importation inference.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Eric Schmidt, 22-Dec-2006.) $)
    imp $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa simpl simpr sylc ) ABEABCABFABGDH $.

    $( Importation inference with commuted antecedents.  (Contributed by NM,
       25-May-2005.) $)
    impcom $p |- ( ( ps /\ ph ) -> ch ) $=
      ( com12 imp ) BACABCDEF $.
  $}

  ${
    impbii.1 $e |- ( ph -> ps ) $.
    impbii.2 $e |- ( ps -> ph ) $.
    $( Infer an equivalence from an implication and its converse.  (Contributed
       by NM, 5-Aug-1993.) $)
    impbii $p |- ( ph <-> ps ) $=
      ( wi wb bi3 mp2 ) ABEBAEABFCDABGH $.
  $}

  ${
    impbidd.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    impbidd.2 $e |- ( ph -> ( ps -> ( th -> ch ) ) ) $.
    $( Deduce an equivalence from two implications.  (Contributed by Rodolfo
       Medina, 12-Oct-2010.) $)
    impbidd $p |- ( ph -> ( ps -> ( ch <-> th ) ) ) $=
      ( wi wb bi3 syl6c ) ABCDGDCGCDHEFCDIJ $.
  $}

  ${
    impbid21d.1 $e |- ( ps -> ( ch -> th ) ) $.
    impbid21d.2 $e |- ( ph -> ( th -> ch ) ) $.
    $( Deduce an equivalence from two implications.  (Contributed by Wolf
       Lammen, 12-May-2013.) $)
    impbid21d $p |- ( ph -> ( ps -> ( ch <-> th ) ) ) $=
      ( wi a1i a1d impbidd ) ABCDBCDGGAEHADCGBFIJ $.
  $}

  ${
    impbid.1 $e |- ( ph -> ( ps -> ch ) ) $.
    impbid.2 $e |- ( ph -> ( ch -> ps ) ) $.
    $( Deduce an equivalence from two implications.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Wolf Lammen, 3-Nov-2012.) $)
    impbid $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wb impbid21d pm2.43i ) ABCFAABCDEGH $.
  $}

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.)  (Proof shortened by Wolf Lammen, 11-Nov-2012.) $)
  bi2 $p |- ( ( ph <-> ps ) -> ( ps -> ph ) ) $=
    ( wb wi wa df-bi simpli simprd ) ABCZABDZBADZIJKEZDLIDABFGH $.

  $( Commutative law for equivalence.  (Contributed by Wolf Lammen,
     10-Nov-2012.) $)
  bicom1 $p |- ( ( ph <-> ps ) -> ( ps <-> ph ) ) $=
    ( wb bi2 bi1 impbid ) ABCBAABDABEF $.

  ${
    bicomi.1 $e |- ( ph <-> ps ) $.
    $( Inference from commutative law for logical equivalence.  (Contributed by
       NM, 5-Aug-1993.)  (Revised by NM, 16-Sep-2013.) $)
    bicomi $p |- ( ps <-> ph ) $=
      ( wb bicom1 ax-mp ) ABDBADCABEF $.
  $}

  ${
    biimpri.1 $e |- ( ph <-> ps ) $.
    $( Infer a converse implication from a logical equivalence.  (Contributed
       by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 16-Sep-2013.) $)
    biimpri $p |- ( ps -> ph ) $=
      ( bicomi biimpi ) BAABCDE $.
  $}

  ${
    sylbir.1 $e |- ( ps <-> ph ) $.
    sylbir.2 $e |- ( ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       (Contributed by NM, 5-Aug-1993.) $)
    sylbir $p |- ( ph -> ch ) $=
      ( biimpri syl ) ABCBADFEG $.
  $}

  $( Join antecedents with conjunction.  Theorem *3.2 of [WhiteheadRussell]
     p. 111.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 12-Nov-2012.)  (Proof shortened by Jia Ming, 17-Nov-2020.) $)
  pm3.2 $p |- ( ph -> ( ps -> ( ph /\ ps ) ) ) $=
    ( ax-ia3 ) ABC $.

  ${
    sylib.1 $e |- ( ph -> ps ) $.
    sylib.2 $e |- ( ps <-> ch ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       (Contributed by NM, 5-Aug-1993.) $)
    sylib $p |- ( ph -> ch ) $=
      ( biimpi syl ) ABCDBCEFG $.
  $}

  $( Commutative law for equivalence.  Theorem *4.21 of [WhiteheadRussell]
     p. 117.  (Contributed by NM, 5-Aug-1993.)  (Revised by NM,
     11-Nov-2012.) $)
  bicom $p |- ( ( ph <-> ps ) <-> ( ps <-> ph ) ) $=
    ( wb bicom1 impbii ) ABCBACABDBADE $.

  ${
    bicomd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Commute two sides of a biconditional in a deduction.  (Contributed by
       NM, 5-Aug-1993.) $)
    bicomd $p |- ( ph -> ( ch <-> ps ) ) $=
      ( wb bicom sylib ) ABCECBEDBCFG $.
  $}

  ${
    impbid1.1 $e |- ( ph -> ( ps -> ch ) ) $.
    impbid1.2 $e |- ( ch -> ps ) $.
    $( Infer an equivalence from two implications.  (Contributed by NM,
       6-Mar-2007.) $)
    impbid1 $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wi a1i impbid ) ABCDCBFAEGH $.
  $}

  ${
    impbid2.1 $e |- ( ps -> ch ) $.
    impbid2.2 $e |- ( ph -> ( ch -> ps ) ) $.
    $( Infer an equivalence from two implications.  (Contributed by NM,
       6-Mar-2007.)  (Proof shortened by Wolf Lammen, 27-Sep-2013.) $)
    impbid2 $p |- ( ph -> ( ps <-> ch ) ) $=
      ( impbid1 bicomd ) ACBACBEDFG $.
  $}

  ${
    biimpd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduce an implication from a logical equivalence.  (Contributed by NM,
       5-Aug-1993.) $)
    biimpd $p |- ( ph -> ( ps -> ch ) ) $=
      ( wb wi bi1 syl ) ABCEBCFDBCGH $.
  $}

  ${
    mpbi.min $e |- ph $.
    mpbi.maj $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus ponens.
       (Contributed by NM, 5-Aug-1993.) $)
    mpbi $p |- ps $=
      ( biimpi ax-mp ) ABCABDEF $.
  $}

  ${
    mpbir.min $e |- ps $.
    mpbir.maj $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus ponens.
       (Contributed by NM, 5-Aug-1993.) $)
    mpbir $p |- ph $=
      ( biimpri ax-mp ) BACABDEF $.
  $}

  ${
    mpbid.min $e |- ( ph -> ps ) $.
    mpbid.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, related to modus ponens.  (Contributed
       by NM, 5-Aug-1993.) $)
    mpbid $p |- ( ph -> ch ) $=
      ( biimpd mpd ) ABCDABCEFG $.
  $}

  ${
    mpbii.min $e |- ps $.
    mpbii.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a nested biconditional, related to modus ponens.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       25-Oct-2012.) $)
    mpbii $p |- ( ph -> ch ) $=
      ( a1i mpbid ) ABCBADFEG $.
  $}

  ${
    sylibr.1 $e |- ( ph -> ps ) $.
    sylibr.2 $e |- ( ch <-> ps ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       Useful for substituting a consequent with a definition.  (Contributed by
       NM, 5-Aug-1993.) $)
    sylibr $p |- ( ph -> ch ) $=
      ( biimpri syl ) ABCDCBEFG $.
  $}

  ${
    sylibd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylibd.2 $e |- ( ph -> ( ch <-> th ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylibd $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpd syld ) ABCDEACDFGH $.
  $}

  ${
    sylbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    sylbid.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylbid $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpd syld ) ABCDABCEGFH $.
  $}

  ${
    mpbidi.min $e |- ( th -> ( ph -> ps ) ) $.
    mpbidi.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, related to modus ponens.  (Contributed
       by NM, 9-Aug-1994.) $)
    mpbidi $p |- ( th -> ( ph -> ch ) ) $=
      ( biimpd sylcom ) DABCEABCFGH $.
  $}

  ${
    syl5bi.1 $e |- ( ph <-> ps ) $.
    syl5bi.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  Useful for substituting an embedded antecedent with a
       definition.  (Contributed by NM, 5-Aug-1993.) $)
    syl5bi $p |- ( ch -> ( ph -> th ) ) $=
      ( biimpi syl5 ) ABCDABEGFH $.
  $}

  ${
    syl5bir.1 $e |- ( ps <-> ph ) $.
    syl5bir.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  (Contributed by NM, 5-Aug-1993.) $)
    syl5bir $p |- ( ch -> ( ph -> th ) ) $=
      ( biimpri syl5 ) ABCDBAEGFH $.
  $}

  ${
    syl5ib.1 $e |- ( ph -> ps ) $.
    syl5ib.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 5-Aug-1993.) $)
    syl5ib $p |- ( ch -> ( ph -> th ) ) $=
      ( biimpd syl5 ) ABCDECBDFGH $.

    $( A mixed syllogism inference.  (Contributed by NM, 19-Jun-2007.) $)
    syl5ibcom $p |- ( ph -> ( ch -> th ) ) $=
      ( syl5ib com12 ) CADABCDEFGH $.
  $}

  ${
    syl5ibr.1 $e |- ( ph -> th ) $.
    syl5ibr.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 3-Apr-1994.)  (Revised
       by NM, 22-Sep-2013.) $)
    syl5ibr $p |- ( ch -> ( ph -> ps ) ) $=
      ( bicomd syl5ib ) ADCBECBDFGH $.

    $( A mixed syllogism inference.  (Contributed by NM, 20-Jun-2007.) $)
    syl5ibrcom $p |- ( ph -> ( ch -> ps ) ) $=
      ( syl5ibr com12 ) CABABCDEFGH $.
  $}

  ${
    biimprd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduce a converse implication from a logical equivalence.  (Contributed
       by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 22-Sep-2013.) $)
    biimprd $p |- ( ph -> ( ch -> ps ) ) $=
      ( id syl5ibr ) CBACCEDF $.
  $}

  ${
    biimpcd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduce a commuted implication from a logical equivalence.  (Contributed
       by NM, 3-May-1994.)  (Proof shortened by Wolf Lammen, 22-Sep-2013.) $)
    biimpcd $p |- ( ps -> ( ph -> ch ) ) $=
      ( id syl5ibcom ) BBACBEDF $.

    $( Deduce a converse commuted implication from a logical equivalence.
       (Contributed by NM, 3-May-1994.)  (Proof shortened by Wolf Lammen,
       20-Dec-2013.) $)
    biimprcd $p |- ( ch -> ( ph -> ps ) ) $=
      ( id syl5ibrcom ) CBACCEDF $.
  $}

  ${
    syl6ib.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6ib.2 $e |- ( ch <-> th ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  (Contributed by NM, 5-Aug-1993.) $)
    syl6ib $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpi syl6 ) ABCDECDFGH $.
  $}

  ${
    syl6ibr.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6ibr.2 $e |- ( th <-> ch ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  Useful for substituting an embedded consequent with a
       definition.  (Contributed by NM, 5-Aug-1993.) $)
    syl6ibr $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpri syl6 ) ABCDEDCFGH $.
  $}


  ${
    syl6bi.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6bi.2 $e |- ( ch -> th ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 2-Jan-1994.) $)
    syl6bi $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpd syl6 ) ABCDABCEGFH $.
  $}

  ${
    syl6bir.1 $e |- ( ph -> ( ch <-> ps ) ) $.
    syl6bir.2 $e |- ( ch -> th ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 18-May-1994.) $)
    syl6bir $p |- ( ph -> ( ps -> th ) ) $=
      ( biimprd syl6 ) ABCDACBEGFH $.
  $}

  ${
    syl7bi.1 $e |- ( ph <-> ps ) $.
    syl7bi.2 $e |- ( ch -> ( th -> ( ps -> ta ) ) ) $.
    $( A mixed syllogism inference from a doubly nested implication and a
       biconditional.  (Contributed by NM, 5-Aug-1993.) $)
    syl7bi $p |- ( ch -> ( th -> ( ph -> ta ) ) ) $=
      ( biimpi syl7 ) ABCDEABFHGI $.
  $}

  ${
    syl8ib.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syl8ib.2 $e |- ( th <-> ta ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the consequent of the first premise.  (Contributed by NM,
       1-Aug-1994.) $)
    syl8ib $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( biimpi syl8 ) ABCDEFDEGHI $.
  $}

  ${
    mpbird.min $e |- ( ph -> ch ) $.
    mpbird.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, related to modus ponens.  (Contributed
       by NM, 5-Aug-1993.) $)
    mpbird $p |- ( ph -> ps ) $=
      ( biimprd mpd ) ACBDABCEFG $.
  $}

  ${
    mpbiri.min $e |- ch $.
    mpbiri.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a nested biconditional, related to modus ponens.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       25-Oct-2012.) $)
    mpbiri $p |- ( ph -> ps ) $=
      ( a1i mpbird ) ABCCADFEG $.
  $}

  ${
    sylibrd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylibrd.2 $e |- ( ph -> ( th <-> ch ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylibrd $p |- ( ph -> ( ps -> th ) ) $=
      ( biimprd syld ) ABCDEADCFGH $.
  $}

  ${
    sylbird.1 $e |- ( ph -> ( ch <-> ps ) ) $.
    sylbird.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylbird $p |- ( ph -> ( ps -> th ) ) $=
      ( biimprd syld ) ABCDACBEGFH $.
  $}

  $( Principle of identity for logical equivalence.  Theorem *4.2 of
     [WhiteheadRussell] p. 117.  (Contributed by NM, 5-Aug-1993.) $)
  biid $p |- ( ph <-> ph ) $=
    ( id impbii ) AAABZDC $.

  $( Principle of identity with antecedent.  (Contributed by NM,
     25-Nov-1995.) $)
  biidd $p |- ( ph -> ( ps <-> ps ) ) $=
    ( wb biid a1i ) BBCABDE $.

  $( Two propositions are equivalent if they are both true.  Closed form of
     ~ 2th .  Equivalent to a ~ bi1 -like version of the xor-connective.  This
     theorem stays true, no matter how you permute its operands.  This is
     evident from its sharper version
     ` ( ph <-> ( ps <-> ( ph <-> ps ) ) ) ` .  (Contributed by Wolf Lammen,
     12-May-2013.) $)
  pm5.1im $p |- ( ph -> ( ps -> ( ph <-> ps ) ) ) $=
    ( ax-1 impbid21d ) ABABBACABCD $.

  ${
    2th.1 $e |- ph $.
    2th.2 $e |- ps $.
    $( Two truths are equivalent.  (Contributed by NM, 18-Aug-1993.) $)
    2th $p |- ( ph <-> ps ) $=
      ( a1i impbii ) ABBADEABCEF $.
  $}

  ${
    2thd.1 $e |- ( ph -> ps ) $.
    2thd.2 $e |- ( ph -> ch ) $.
    $( Two truths are equivalent (deduction rule).  (Contributed by NM,
       3-Jun-2012.)  (Revised by NM, 29-Jan-2013.) $)
    2thd $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wb pm5.1im sylc ) ABCBCFDEBCGH $.
  $}

  ${
    ibi.1 $e |- ( ph -> ( ph <-> ps ) ) $.
    $( Inference that converts a biconditional implied by one of its arguments,
       into an implication.  (Contributed by NM, 17-Oct-2003.) $)
    ibi $p |- ( ph -> ps ) $=
      ( biimpd pm2.43i ) ABAABCDE $.
  $}

  ${
    ibir.1 $e |- ( ph -> ( ps <-> ph ) ) $.
    $( Inference that converts a biconditional implied by one of its arguments,
       into an implication.  (Contributed by NM, 22-Jul-2004.) $)
    ibir $p |- ( ph -> ps ) $=
      ( bicomd ibi ) ABABACDE $.
  $}

  ${
    ibd.1 $e |- ( ph -> ( ps -> ( ps <-> ch ) ) ) $.
    $( Deduction that converts a biconditional implied by one of its arguments,
       into an implication.  (Contributed by NM, 26-Jun-2004.) $)
    ibd $p |- ( ph -> ( ps -> ch ) ) $=
      ( wb bi1 syli ) BABCECDBCFG $.
  $}

  $( Distribution of implication over biconditional.  Theorem *5.74 of
     [WhiteheadRussell] p. 126.  (Contributed by NM, 1-Aug-1994.)  (Proof
     shortened by Wolf Lammen, 11-Apr-2013.) $)
  pm5.74 $p |- ( ( ph -> ( ps <-> ch ) ) <->
               ( ( ph -> ps ) <-> ( ph -> ch ) ) ) $=
    ( wb wi bi1 imim3i bi2 impbid pm2.86d impbidd impbii ) ABCDZEZABEZACEZDZNOP
    MBCABCFGMCBABCHGIQABCQABCOPFJQACBOPHJKL $.

  ${
    pm5.74i.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Distribution of implication over biconditional (inference rule).
       (Contributed by NM, 1-Aug-1994.) $)
    pm5.74i $p |- ( ( ph -> ps ) <-> ( ph -> ch ) ) $=
      ( wb wi pm5.74 mpbi ) ABCEFABFACFEDABCGH $.
  $}

  ${
    pm5.74ri.1 $e |- ( ( ph -> ps ) <-> ( ph -> ch ) ) $.
    $( Distribution of implication over biconditional (reverse inference
       rule).  (Contributed by NM, 1-Aug-1994.) $)
    pm5.74ri $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wb wi pm5.74 mpbir ) ABCEFABFACFEDABCGH $.
  $}

  ${
    pm5.74d.1 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 21-Mar-1996.) $)
    pm5.74d $p |- ( ph -> ( ( ps -> ch ) <-> ( ps -> th ) ) ) $=
      ( wb wi pm5.74 sylib ) ABCDFGBCGBDGFEBCDHI $.
  $}

  ${
    pm5.74rd.1 $e |- ( ph -> ( ( ps -> ch ) <-> ( ps -> th ) ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 19-Mar-1997.) $)
    pm5.74rd $p |- ( ph -> ( ps -> ( ch <-> th ) ) ) $=
      ( wi wb pm5.74 sylibr ) ABCFBDFGBCDGFEBCDHI $.
  $}

  ${
    bitri.1 $e |- ( ph <-> ps ) $.
    bitri.2 $e |- ( ps <-> ch ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 13-Oct-2012.) $)
    bitri $p |- ( ph <-> ch ) $=
      ( biimpi sylib biimpri sylibr impbii ) ACABCABDFEGCBABCEHDIJ $.
  $}

  ${
    bitr2i.1 $e |- ( ph <-> ps ) $.
    bitr2i.2 $e |- ( ps <-> ch ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 5-Aug-1993.) $)
    bitr2i $p |- ( ch <-> ph ) $=
      ( bitri bicomi ) ACABCDEFG $.
  $}

  ${
    bitr3i.1 $e |- ( ps <-> ph ) $.
    bitr3i.2 $e |- ( ps <-> ch ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 5-Aug-1993.) $)
    bitr3i $p |- ( ph <-> ch ) $=
      ( bicomi bitri ) ABCBADFEG $.
  $}

  ${
    bitr4i.1 $e |- ( ph <-> ps ) $.
    bitr4i.2 $e |- ( ch <-> ps ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 5-Aug-1993.) $)
    bitr4i $p |- ( ph <-> ch ) $=
      ( bicomi bitri ) ABCDCBEFG $.
  $}

  ${
    bitrd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitrd.2 $e |- ( ph -> ( ch <-> th ) ) $.
    $( Deduction form of ~ bitri .  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Wolf Lammen, 14-Apr-2013.) $)
    bitrd $p |- ( ph -> ( ps <-> th ) ) $=
      ( wi pm5.74i bitri pm5.74ri ) ABDABGACGADGABCEHACDFHIJ $.
  $}

  ${
    bitr2d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitr2d.2 $e |- ( ph -> ( ch <-> th ) ) $.
    $( Deduction form of ~ bitr2i .  (Contributed by NM, 9-Jun-2004.) $)
    bitr2d $p |- ( ph -> ( th <-> ps ) ) $=
      ( bitrd bicomd ) ABDABCDEFGH $.
  $}

  ${
    bitr3d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitr3d.2 $e |- ( ph -> ( ps <-> th ) ) $.
    $( Deduction form of ~ bitr3i .  (Contributed by NM, 5-Aug-1993.) $)
    bitr3d $p |- ( ph -> ( ch <-> th ) ) $=
      ( bicomd bitrd ) ACBDABCEGFH $.
  $}

  ${
    bitr4d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitr4d.2 $e |- ( ph -> ( th <-> ch ) ) $.
    $( Deduction form of ~ bitr4i .  (Contributed by NM, 5-Aug-1993.) $)
    bitr4d $p |- ( ph -> ( ps <-> th ) ) $=
      ( bicomd bitrd ) ABCDEADCFGH $.
  $}

  ${
    syl5bb.1 $e |- ( ph <-> ps ) $.
    syl5bb.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl5bb $p |- ( ch -> ( ph <-> th ) ) $=
      ( wb a1i bitrd ) CABDABGCEHFI $.
  $}

  ${
    syl5rbb.1 $e |- ( ph <-> ps ) $.
    syl5rbb.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl5rbb $p |- ( ch -> ( th <-> ph ) ) $=
      ( syl5bb bicomd ) CADABCDEFGH $.
  $}

  ${
    syl5bbr.1 $e |- ( ps <-> ph ) $.
    syl5bbr.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl5bbr $p |- ( ch -> ( ph <-> th ) ) $=
      ( bicomi syl5bb ) ABCDBAEGFH $.
  $}

  ${
    syl5rbbr.1 $e |- ( ps <-> ph ) $.
    syl5rbbr.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       25-Nov-1994.) $)
    syl5rbbr $p |- ( ch -> ( th <-> ph ) ) $=
      ( bicomi syl5rbb ) ABCDBAEGFH $.
  $}

  ${
    syl6bb.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6bb.2 $e |- ( ch <-> th ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl6bb $p |- ( ph -> ( ps <-> th ) ) $=
      ( wb a1i bitrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6rbb.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6rbb.2 $e |- ( ch <-> th ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl6rbb $p |- ( ph -> ( th <-> ps ) ) $=
      ( syl6bb bicomd ) ABDABCDEFGH $.
  $}

  ${
    syl6bbr.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6bbr.2 $e |- ( th <-> ch ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl6bbr $p |- ( ph -> ( ps <-> th ) ) $=
      ( bicomi syl6bb ) ABCDEDCFGH $.
  $}

  ${
    syl6rbbr.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6rbbr.2 $e |- ( th <-> ch ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       25-Nov-1994.) $)
    syl6rbbr $p |- ( ph -> ( th <-> ps ) ) $=
      ( bicomi syl6rbb ) ABCDEDCFGH $.
  $}

  ${
    3imtr3.1 $e |- ( ph -> ps ) $.
    3imtr3.2 $e |- ( ph <-> ch ) $.
    3imtr3.3 $e |- ( ps <-> th ) $.
    $( A mixed syllogism inference, useful for removing a definition from both
       sides of an implication.  (Contributed by NM, 10-Aug-1994.) $)
    3imtr3i $p |- ( ch -> th ) $=
      ( sylbir sylib ) CBDCABFEHGI $.
  $}

  ${
    3imtr4.1 $e |- ( ph -> ps ) $.
    3imtr4.2 $e |- ( ch <-> ph ) $.
    3imtr4.3 $e |- ( th <-> ps ) $.
    $( A mixed syllogism inference, useful for applying a definition to both
       sides of an implication.  (Contributed by NM, 5-Aug-1993.) $)
    3imtr4i $p |- ( ch -> th ) $=
      ( sylbi sylibr ) CBDCABFEHGI $.
  $}

  ${
    3imtr3d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr3d.2 $e |- ( ph -> ( ps <-> th ) ) $.
    3imtr3d.3 $e |- ( ph -> ( ch <-> ta ) ) $.
    $( More general version of ~ 3imtr3i .  Useful for converting conditional
       definitions in a formula.  (Contributed by NM, 8-Apr-1996.) $)
    3imtr3d $p |- ( ph -> ( th -> ta ) ) $=
      ( sylibd sylbird ) ADBEGABCEFHIJ $.
  $}

  ${
    3imtr4d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr4d.2 $e |- ( ph -> ( th <-> ps ) ) $.
    3imtr4d.3 $e |- ( ph -> ( ta <-> ch ) ) $.
    $( More general version of ~ 3imtr4i .  Useful for converting conditional
       definitions in a formula.  (Contributed by NM, 26-Oct-1995.) $)
    3imtr4d $p |- ( ph -> ( th -> ta ) ) $=
      ( sylibrd sylbid ) ADBEGABCEFHIJ $.
  $}

  ${
    3imtr3g.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr3g.2 $e |- ( ps <-> th ) $.
    3imtr3g.3 $e |- ( ch <-> ta ) $.
    $( More general version of ~ 3imtr3i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 20-May-1996.)  (Proof shortened by
       Wolf Lammen, 20-Dec-2013.) $)
    3imtr3g $p |- ( ph -> ( th -> ta ) ) $=
      ( syl5bir syl6ib ) ADCEDBACGFIHJ $.
  $}

  ${
    3imtr4g.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr4g.2 $e |- ( th <-> ps ) $.
    3imtr4g.3 $e |- ( ta <-> ch ) $.
    $( More general version of ~ 3imtr4i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 20-May-1996.)  (Proof shortened by
       Wolf Lammen, 20-Dec-2013.) $)
    3imtr4g $p |- ( ph -> ( th -> ta ) ) $=
      ( syl5bi syl6ibr ) ADCEDBACGFIHJ $.
  $}

  ${
    3bitri.1 $e |- ( ph <-> ps ) $.
    3bitri.2 $e |- ( ps <-> ch ) $.
    3bitri.3 $e |- ( ch <-> th ) $.
    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 5-Aug-1993.) $)
    3bitri $p |- ( ph <-> th ) $=
      ( bitri ) ABDEBCDFGHH $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 4-Aug-2006.) $)
    3bitrri $p |- ( th <-> ph ) $=
      ( bitr2i bitr3i ) DCAGABCEFHI $.
  $}

  ${
    3bitr2i.1 $e |- ( ph <-> ps ) $.
    3bitr2i.2 $e |- ( ch <-> ps ) $.
    3bitr2i.3 $e |- ( ch <-> th ) $.
    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 4-Aug-2006.) $)
    3bitr2i $p |- ( ph <-> th ) $=
      ( bitr4i bitri ) ACDABCEFHGI $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 4-Aug-2006.) $)
    3bitr2ri $p |- ( th <-> ph ) $=
      ( bitr4i bitr2i ) ACDABCEFHGI $.
  $}

  ${
    3bitr3i.1 $e |- ( ph <-> ps ) $.
    3bitr3i.2 $e |- ( ph <-> ch ) $.
    3bitr3i.3 $e |- ( ps <-> th ) $.
    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 19-Aug-1993.) $)
    3bitr3i $p |- ( ch <-> th ) $=
      ( bitr3i bitri ) CBDCABFEHGI $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 5-Aug-1993.) $)
    3bitr3ri $p |- ( th <-> ch ) $=
      ( bitr3i ) DBCGBACEFHH $.
  $}

  ${
    3bitr4i.1 $e |- ( ph <-> ps ) $.
    3bitr4i.2 $e |- ( ch <-> ph ) $.
    3bitr4i.3 $e |- ( th <-> ps ) $.
    $( A chained inference from transitive law for logical equivalence.  This
       inference is frequently used to apply a definition to both sides of a
       logical equivalence.  (Contributed by NM, 5-Aug-1993.) $)
    3bitr4i $p |- ( ch <-> th ) $=
      ( bitr4i bitri ) CADFABDEGHI $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 2-Sep-1995.) $)
    3bitr4ri $p |- ( th <-> ch ) $=
      ( bitr4i bitr2i ) CADFABDEGHI $.
  $}

  ${
    3bitrd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitrd.2 $e |- ( ph -> ( ch <-> th ) ) $.
    3bitrd.3 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       13-Aug-1999.) $)
    3bitrd $p |- ( ph -> ( ps <-> ta ) ) $=
      ( bitrd ) ABDEABCDFGIHI $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitrrd $p |- ( ph -> ( ta <-> ps ) ) $=
      ( bitr2d bitr3d ) ADEBHABCDFGIJ $.
  $}

  ${
    3bitr2d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr2d.2 $e |- ( ph -> ( th <-> ch ) ) $.
    3bitr2d.3 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr2d $p |- ( ph -> ( ps <-> ta ) ) $=
      ( bitr4d bitrd ) ABDEABCDFGIHJ $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr2rd $p |- ( ph -> ( ta <-> ps ) ) $=
      ( bitr4d bitr2d ) ABDEABCDFGIHJ $.
  $}

  ${
    3bitr3d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr3d.2 $e |- ( ph -> ( ps <-> th ) ) $.
    3bitr3d.3 $e |- ( ph -> ( ch <-> ta ) ) $.
    $( Deduction from transitivity of biconditional.  Useful for converting
       conditional definitions in a formula.  (Contributed by NM,
       24-Apr-1996.) $)
    3bitr3d $p |- ( ph -> ( th <-> ta ) ) $=
      ( bitr3d bitrd ) ADCEABDCGFIHJ $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr3rd $p |- ( ph -> ( ta <-> th ) ) $=
      ( bitr3d ) ACEDHABCDFGII $.
  $}

  ${
    3bitr4d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr4d.2 $e |- ( ph -> ( th <-> ps ) ) $.
    3bitr4d.3 $e |- ( ph -> ( ta <-> ch ) ) $.
    $( Deduction from transitivity of biconditional.  Useful for converting
       conditional definitions in a formula.  (Contributed by NM,
       18-Oct-1995.) $)
    3bitr4d $p |- ( ph -> ( th <-> ta ) ) $=
      ( bitr4d bitrd ) ADBEGABCEFHIJ $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr4rd $p |- ( ph -> ( ta <-> th ) ) $=
      ( bitr4d ) AEBDAECBHFIGI $.
  $}

  ${
    3bitr3g.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr3g.2 $e |- ( ps <-> th ) $.
    3bitr3g.3 $e |- ( ch <-> ta ) $.
    $( More general version of ~ 3bitr3i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 4-Jun-1995.) $)
    3bitr3g $p |- ( ph -> ( th <-> ta ) ) $=
      ( syl5bbr syl6bb ) ADCEDBACGFIHJ $.
  $}

  ${
    3bitr4g.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr4g.2 $e |- ( th <-> ps ) $.
    3bitr4g.3 $e |- ( ta <-> ch ) $.
    $( More general version of ~ 3bitr4i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 5-Aug-1993.) $)
    3bitr4g $p |- ( ph -> ( th <-> ta ) ) $=
      ( syl5bb syl6bbr ) ADCEDBACGFIHJ $.
  $}

  ${
    bi3ant.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Construct a biconditional in antecedent position.  (Contributed by Wolf
       Lammen, 14-May-2013.) $)
    bi3ant $p |- ( ( ( th -> ta ) -> ph ) -> ( ( ( ta -> th ) -> ps ) ->
                                                ( ( th <-> ta ) -> ch ) ) ) $=
      ( wi wb bi1 imim1i bi2 imim3i syl2im ) DEGZAGDEHZAGEDGZBGOBGOCGONADEIJOPB
      DEKJABCOFLM $.
  $}

  $( Express symmetries of theorems in terms of biconditionals.  (Contributed
     by Wolf Lammen, 14-May-2013.) $)
  bisym $p |- ( ( ( ph -> ps ) -> ( ch -> th ) ) -> ( ( ( ps -> ph )
      -> ( th -> ch ) ) -> ( ( ph <-> ps ) -> ( ch <-> th ) ) ) ) $=
    ( wi wb bi3 bi3ant ) CDEDCECDFABCDGH $.

  $( The next three rules are useful for building up wff's around a
     definition, in order to make use of the definition. $)

  ${
    bi.a $e |- ( ph <-> ps ) $.
    $( Introduce an antecedent to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       6-Feb-2013.) $)
    imbi2i $p |- ( ( ch -> ph ) <-> ( ch -> ps ) ) $=
      ( wb a1i pm5.74i ) CABABECDFG $.
  $}

  ${
    bibi.a $e |- ( ph <-> ps ) $.
    $( Inference adding a biconditional to the left in an equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       7-May-2011.)  (Proof shortened by Wolf Lammen, 16-May-2013.) $)
    bibi2i $p |- ( ( ch <-> ph ) <-> ( ch <-> ps ) ) $=
      ( wb id syl6bb syl6bbr impbii ) CAEZCBEZJCABJFDGKCBAKFDHI $.

    $( Inference adding a biconditional to the right in an equivalence.
       (Contributed by NM, 5-Aug-1993.) $)
    bibi1i $p |- ( ( ph <-> ch ) <-> ( ps <-> ch ) ) $=
      ( wb bicom bibi2i 3bitri ) ACECAECBEBCEACFABCDGCBFH $.

    ${
      bibi12.2 $e |- ( ch <-> th ) $.
      $( The equivalence of two equivalences.  (Contributed by NM,
         5-Aug-1993.) $)
      bibi12i $p |- ( ( ph <-> ch ) <-> ( ps <-> th ) ) $=
        ( wb bibi2i bibi1i bitri ) ACGADGBDGCDAFHABDEIJ $.
    $}
  $}

  ${
    imbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding an antecedent to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.) $)
    imbi2d $p |- ( ph -> ( ( th -> ps ) <-> ( th -> ch ) ) ) $=
      ( wb a1d pm5.74d ) ADBCABCFDEGH $.

    $( Deduction adding a consequent to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       17-Sep-2013.) $)
    imbi1d $p |- ( ph -> ( ( ps -> th ) <-> ( ch -> th ) ) ) $=
      ( wi biimprd imim1d biimpd impbid ) ABDFCDFACBDABCEGHABCDABCEIHJ $.

    $( Deduction adding a biconditional to the left in an equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       19-May-2013.) $)
    bibi2d $p |- ( ph -> ( ( th <-> ps ) <-> ( th <-> ch ) ) ) $=
      ( wb wi pm5.74i bibi2i pm5.74 3bitr4i pm5.74ri ) ADBFZDCFZADGZABGZFOACGZF
      AMGANGPQOABCEHIADBJADCJKL $.

    $( Deduction adding a biconditional to the right in an equivalence.
       (Contributed by NM, 5-Aug-1993.) $)
    bibi1d $p |- ( ph -> ( ( ps <-> th ) <-> ( ch <-> th ) ) ) $=
      ( wb bibi2d bicom 3bitr4g ) ADBFDCFBDFCDFABCDEGBDHCDHI $.
  $}

  ${
    imbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    imbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of implications.
       (Contributed by NM, 5-Aug-1993.) $)
    imbi12d $p |- ( ph -> ( ( ps -> th ) <-> ( ch -> ta ) ) ) $=
      ( wi imbi1d imbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
    $( Deduction joining two equivalences to form equivalence of
       biconditionals.  (Contributed by NM, 5-Aug-1993.) $)
    bibi12d $p |- ( ph -> ( ( ps <-> th ) <-> ( ch <-> ta ) ) ) $=
      ( wb bibi1d bibi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( Theorem *4.84 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  imbi1 $p |- ( ( ph <-> ps ) -> ( ( ph -> ch ) <-> ( ps -> ch ) ) ) $=
    ( wb id imbi1d ) ABDZABCGEF $.

  $( Theorem *4.85 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 19-May-2013.) $)
  imbi2 $p |- ( ( ph <-> ps ) -> ( ( ch -> ph ) <-> ( ch -> ps ) ) ) $=
    ( wb id imbi2d ) ABDZABCGEF $.

  ${
    imbi1i.1 $e |- ( ph <-> ps ) $.
    $( Introduce a consequent to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       17-Sep-2013.) $)
    imbi1i $p |- ( ( ph -> ch ) <-> ( ps -> ch ) ) $=
      ( wb wi imbi1 ax-mp ) ABEACFBCFEDABCGH $.
  $}

  ${
    imbi12i.1 $e |- ( ph <-> ps ) $.
    imbi12i.2 $e |- ( ch <-> th ) $.
    $( Join two logical equivalences to form equivalence of implications.
       (Contributed by NM, 5-Aug-1993.) $)
    imbi12i $p |- ( ( ph -> ch ) <-> ( ps -> th ) ) $=
      ( wi imbi2i imbi1i bitri ) ACGADGBDGCDAFHABDEIJ $.
  $}

  $( Theorem *4.86 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  bibi1 $p |- ( ( ph <-> ps ) -> ( ( ph <-> ch ) <-> ( ps <-> ch ) ) ) $=
    ( wb id bibi1d ) ABDZABCGEF $.

  $( A wff is equivalent to itself with true antecedent.  (Contributed by NM,
     28-Jan-1996.) $)
  biimt $p |- ( ph -> ( ps <-> ( ph -> ps ) ) ) $=
    ( wi ax-1 pm2.27 impbid2 ) ABABCBADABEF $.

  $( Theorem *5.5 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.5 $p |- ( ph -> ( ( ph -> ps ) <-> ps ) ) $=
    ( wi biimt bicomd ) ABABCABDE $.

  ${
    a1bi.1 $e |- ph $.
    $( Inference rule introducing a theorem as an antecedent.  (Contributed by
       NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 11-Nov-2012.) $)
    a1bi $p |- ( ps <-> ( ph -> ps ) ) $=
      ( wi wb biimt ax-mp ) ABABDECABFG $.
  $}

  $( Theorem *5.501 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 24-Jan-2013.) $)
  pm5.501 $p |- ( ph -> ( ps <-> ( ph <-> ps ) ) ) $=
    ( wb pm5.1im bi1 com12 impbid ) ABABCZABDHABABEFG $.

  $( Implication in terms of implication and biconditional.  (Contributed by
     NM, 31-Mar-1994.)  (Proof shortened by Wolf Lammen, 24-Jan-2013.) $)
  ibib $p |- ( ( ph -> ps ) <-> ( ph -> ( ph <-> ps ) ) ) $=
    ( wb pm5.501 pm5.74i ) ABABCABDE $.

  $( Implication in terms of implication and biconditional.  (Contributed by
     NM, 29-Apr-2005.)  (Proof shortened by Wolf Lammen, 21-Dec-2013.) $)
  ibibr $p |- ( ( ph -> ps ) <-> ( ph -> ( ps <-> ph ) ) ) $=
    ( wb pm5.501 bicom syl6bb pm5.74i ) ABBACZABABCHABDABEFG $.

  ${
    tbt.1 $e |- ph $.
    $( A wff is equivalent to its equivalence with truth.  (Contributed by NM,
       18-Aug-1993.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
    tbt $p |- ( ps <-> ( ps <-> ph ) ) $=
      ( wb ibibr pm5.74ri ax-mp ) ABBADZDCABHABEFG $.
  $}

  $( Logical equivalence of commuted antecedents.  Part of Theorem *4.87 of
     [WhiteheadRussell] p. 122.  (Contributed by NM, 5-Aug-1993.) $)
  bi2.04 $p |- ( ( ph -> ( ps -> ch ) ) <-> ( ps -> ( ph -> ch ) ) ) $=
    ( wi pm2.04 impbii ) ABCDDBACDDABCEBACEF $.

  $( Antecedent absorption implication.  Theorem *5.4 of [WhiteheadRussell]
     p. 125.  (Contributed by NM, 5-Aug-1993.) $)
  pm5.4 $p |- ( ( ph -> ( ph -> ps ) ) <-> ( ph -> ps ) ) $=
    ( wi pm2.43 ax-1 impbii ) AABCZCGABDGAEF $.

  $( Distributive law for implication.  Compare Theorem *5.41 of
     [WhiteheadRussell] p. 125.  (Contributed by NM, 5-Aug-1993.) $)
  imdi $p |- ( ( ph -> ( ps -> ch ) ) <->
               ( ( ph -> ps ) -> ( ph -> ch ) ) ) $=
    ( wi ax-2 pm2.86 impbii ) ABCDDABDACDDABCEABCFG $.

  $( Theorem *5.41 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 12-Oct-2012.) $)
  pm5.41 $p |- ( ( ( ph -> ps ) -> ( ph -> ch ) ) <->
                ( ph -> ( ps -> ch ) ) ) $=
    ( wi imdi bicomi ) ABCDDABDACDDABCEF $.

  $( Simplify an implication between two implications when the antecedent of
     the first is a consequence of the antecedent of the second.  The reverse
     form is useful in producing the successor step in induction proofs.
     (Contributed by Paul Chapman, 22-Jun-2011.)  (Proof shortened by Wolf
     Lammen, 14-Sep-2013.) $)
  imim21b $p |- ( ( ps -> ph ) -> ( ( ( ph -> ch ) -> ( ps -> th ) ) <->
                                    ( ps -> ( ch -> th ) ) ) ) $=
    ( wi bi2.04 wb pm5.5 imbi1d imim2i pm5.74d syl5bb ) ACEZBDEEBMDEZEBAEZBCDEZ
    EMBDFOBNPANPGBAMCDACHIJKL $.

  ${
    imp3.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Importation deduction.  (Contributed by NM, 31-Mar-1994.) $)
    impd $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( wa wi com3l imp com12 ) BCFADBCADGABCDEHIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp31 $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( wa wi imp ) ABFCDABCDGEHH $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp32 $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( wa impd imp ) ABCFDABCDEGH $.
  $}

  ${
    exp3a.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Exportation deduction.  (Contributed by NM, 20-Aug-1993.) $)
    expd $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wi wa com12 ex com3r ) BCADBCADFABCGDEHIJ $.

    $( A deduction version of exportation, followed by importation.
       (Contributed by NM, 6-Sep-2008.) $)
    expdimp $p |- ( ( ph /\ ps ) -> ( ch -> th ) ) $=
      ( wi expd imp ) ABCDFABCDEGH $.
  $}

  ${
    impancom.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Mixed importation/commutation inference.  (Contributed by NM,
       22-Jun-2013.) $)
    impancom $p |- ( ( ph /\ ch ) -> ( ps -> th ) ) $=
      ( wi ex com23 imp ) ACBDFABCDABCDFEGHI $.
  $}

  $( Theorem *3.3 (Exp) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 24-Mar-2013.) $)
  pm3.3 $p |- ( ( ( ph /\ ps ) -> ch ) -> ( ph -> ( ps -> ch ) ) ) $=
    ( wa wi id expd ) ABDCEZABCHFG $.

  $( Theorem *3.31 (Imp) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 24-Mar-2013.) $)
  pm3.31 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph /\ ps ) -> ch ) ) $=
    ( wi id impd ) ABCDDZABCGEF $.

  $( Import-export theorem.  Part of Theorem *4.87 of [WhiteheadRussell]
     p. 122.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 24-Mar-2013.) $)
  impexp $p |- ( ( ( ph /\ ps ) -> ch ) <-> ( ph -> ( ps -> ch ) ) ) $=
    ( wa wi pm3.3 pm3.31 impbii ) ABDCEABCEEABCFABCGH $.

  $( Join antecedents with conjunction.  Theorem *3.21 of [WhiteheadRussell]
     p. 111.  (Contributed by NM, 5-Aug-1993.) $)
  pm3.21 $p |- ( ph -> ( ps -> ( ps /\ ph ) ) ) $=
    ( wa pm3.2 com12 ) BABACBADE $.

  $( Theorem *3.22 of [WhiteheadRussell] p. 111.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 13-Nov-2012.) $)
  pm3.22 $p |- ( ( ph /\ ps ) -> ( ps /\ ph ) ) $=
    ( wa pm3.21 imp ) ABBACABDE $.

  $( Commutative law for conjunction.  Theorem *4.3 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 25-Jun-1998.)  (Proof shortened by Wolf
     Lammen, 4-Nov-2012.) $)
  ancom $p |- ( ( ph /\ ps ) <-> ( ps /\ ph ) ) $=
    ( wa pm3.22 impbii ) ABCBACABDBADE $.

  ${
    ancomd.1 $e |- ( ph -> ( ps /\ ch ) ) $.
    $( Commutation of conjuncts in consequent.  (Contributed by Jeff Hankins,
       14-Aug-2009.) $)
    ancomd $p |- ( ph -> ( ch /\ ps ) ) $=
      ( wa ancom sylib ) ABCECBEDBCFG $.
  $}

  ${
    ancoms.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Inference commuting conjunction in antecedent.  (Contributed by NM,
       21-Apr-1994.) $)
    ancoms $p |- ( ( ps /\ ph ) -> ch ) $=
      ( expcom imp ) BACABCDEF $.
  $}

  ${
    ancomsd.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Deduction commuting conjunction in antecedent.  (Contributed by NM,
       12-Dec-2004.) $)
    ancomsd $p |- ( ph -> ( ( ch /\ ps ) -> th ) ) $=
      ( wa ancom syl5bi ) CBFBCFADCBGEH $.
  $}

  ${
    pm3.2i.1 $e |- ph $.
    pm3.2i.2 $e |- ps $.
    $( Infer conjunction of premises.  (Contributed by NM, 5-Aug-1993.) $)
    pm3.2i $p |- ( ph /\ ps ) $=
      ( wa pm3.2 mp2 ) ABABECDABFG $.
  $}

  $( Nested conjunction of antecedents.  (Contributed by NM, 5-Aug-1993.) $)
  pm3.43i $p |- ( ( ph -> ps ) ->
                ( ( ph -> ch ) -> ( ph -> ( ps /\ ch ) ) ) ) $=
    ( wa pm3.2 imim3i ) BCBCDABCEF $.

  ${
    simplbi.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 27-May-1998.) $)
    simplbi $p |- ( ph -> ps ) $=
      ( wa biimpi simpld ) ABCABCEDFG $.
  $}

  ${
    simprbi.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 27-May-1998.) $)
    simprbi $p |- ( ph -> ch ) $=
      ( wa biimpi simprd ) ABCABCEDFG $.
  $}

  ${
    adantr.1 $e |- ( ph -> ps ) $.
    $( Inference adding a conjunct to the right of an antecedent.  (Contributed
       by NM, 30-Aug-1993.) $)
    adantr $p |- ( ( ph /\ ch ) -> ps ) $=
      ( a1d imp ) ACBABCDEF $.
  $}

  ${
    adantl.1 $e |- ( ph -> ps ) $.
    $( Inference adding a conjunct to the left of an antecedent.  (Contributed
       by NM, 30-Aug-1993.)  (Proof shortened by Wolf Lammen, 23-Nov-2012.) $)
    adantl $p |- ( ( ch /\ ph ) -> ps ) $=
      ( adantr ancoms ) ACBABCDEF $.
  $}

  ${
    adantld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding a conjunct to the left of an antecedent.  (Contributed
       by NM, 4-May-1994.)  (Proof shortened by Wolf Lammen, 20-Dec-2012.) $)
    adantld $p |- ( ph -> ( ( th /\ ps ) -> ch ) ) $=
      ( wa simpr syl5 ) DBFBACDBGEH $.
  $}

  ${
    adantrd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding a conjunct to the right of an antecedent.  (Contributed
       by NM, 4-May-1994.) $)
    adantrd $p |- ( ph -> ( ( ps /\ th ) -> ch ) ) $=
      ( wa simpl syl5 ) BDFBACBDGEH $.
  $}

  ${
    mpan9.1 $e |- ( ph -> ps ) $.
    mpan9.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( Modus ponens conjoining dissimilar antecedents.  (Contributed by NM,
       1-Feb-2008.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    mpan9 $p |- ( ( ph /\ ch ) -> th ) $=
      ( syl5 impcom ) CADABCDEFGH $.
  $}

  ${
    syldan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    syldan.2 $e |- ( ( ph /\ ch ) -> th ) $.
    $( A syllogism deduction with conjoined antecents.  (Contributed by NM,
       24-Feb-2005.)  (Proof shortened by Wolf Lammen, 6-Apr-2013.) $)
    syldan $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa expcom adantrd mpcom ) CABGDECADBACDFHIJ $.
  $}

  ${
    sylan.1 $e |- ( ph -> ps ) $.
    sylan.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2012.) $)
    sylan $p |- ( ( ph /\ ch ) -> th ) $=
      ( expcom mpan9 ) ABCDEBCDFGH $.
  $}

  ${
    sylanb.1 $e |- ( ph <-> ps ) $.
    sylanb.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 18-May-1994.) $)
    sylanb $p |- ( ( ph /\ ch ) -> th ) $=
      ( biimpi sylan ) ABCDABEGFH $.
  $}

  ${
    sylanbr.1 $e |- ( ps <-> ph ) $.
    sylanbr.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 18-May-1994.) $)
    sylanbr $p |- ( ( ph /\ ch ) -> th ) $=
      ( biimpri sylan ) ABCDBAEGFH $.
  $}

  ${
    sylan2.1 $e |- ( ph -> ch ) $.
    sylan2.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2012.) $)
    sylan2 $p |- ( ( ps /\ ph ) -> th ) $=
      ( adantl syldan ) BACDACBEGFH $.
  $}

  ${
    sylan2b.1 $e |- ( ph <-> ch ) $.
    sylan2b.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.) $)
    sylan2b $p |- ( ( ps /\ ph ) -> th ) $=
      ( biimpi sylan2 ) ABCDACEGFH $.
  $}

  ${
    sylan2br.1 $e |- ( ch <-> ph ) $.
    sylan2br.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.) $)
    sylan2br $p |- ( ( ps /\ ph ) -> th ) $=
      ( biimpri sylan2 ) ABCDCAEGFH $.
  $}

  ${
    syl2an.1 $e |- ( ph -> ps ) $.
    syl2an.2 $e |- ( ta -> ch ) $.
    syl2an.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A double syllogism inference.  (Contributed by NM, 31-Jan-1997.) $)
    syl2an $p |- ( ( ph /\ ta ) -> th ) $=
      ( sylan sylan2 ) EACDGABCDFHIJ $.

    $( A double syllogism inference.  (Contributed by NM, 17-Sep-2013.) $)
    syl2anr $p |- ( ( ta /\ ph ) -> th ) $=
      ( syl2an ancoms ) AEDABCDEFGHIJ $.
  $}

  ${
    syl2anb.1 $e |- ( ph <-> ps ) $.
    syl2anb.2 $e |- ( ta <-> ch ) $.
    syl2anb.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A double syllogism inference.  (Contributed by NM, 29-Jul-1999.) $)
    syl2anb $p |- ( ( ph /\ ta ) -> th ) $=
      ( sylanb sylan2b ) EACDGABCDFHIJ $.
  $}

  ${
    syl2anbr.1 $e |- ( ps <-> ph ) $.
    syl2anbr.2 $e |- ( ch <-> ta ) $.
    syl2anbr.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A double syllogism inference.  (Contributed by NM, 29-Jul-1999.) $)
    syl2anbr $p |- ( ( ph /\ ta ) -> th ) $=
      ( sylanbr sylan2br ) EACDGABCDFHIJ $.
  $}

  ${
    syland.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syland.2 $e |- ( ph -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 15-Dec-2004.) $)
    syland $p |- ( ph -> ( ( ps /\ th ) -> ta ) ) $=
      ( wi expd syld impd ) ABDEABCDEHFACDEGIJK $.
  $}

  ${
    sylan2d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylan2d.2 $e |- ( ph -> ( ( th /\ ch ) -> ta ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 15-Dec-2004.) $)
    sylan2d $p |- ( ph -> ( ( th /\ ps ) -> ta ) ) $=
      ( ancomsd syland ) ABDEABCDEFADCEGHIH $.
  $}

  ${
    syl2and.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl2and.2 $e |- ( ph -> ( th -> ta ) ) $.
    syl2and.3 $e |- ( ph -> ( ( ch /\ ta ) -> et ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 15-Dec-2004.) $)
    syl2and $p |- ( ph -> ( ( ps /\ th ) -> et ) ) $=
      ( sylan2d syland ) ABCDFGADECFHIJK $.
  $}

  ${
    biimpa.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimpa $p |- ( ( ph /\ ps ) -> ch ) $=
      ( biimpd imp ) ABCABCDEF $.

    $( Inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimpar $p |- ( ( ph /\ ch ) -> ps ) $=
      ( biimprd imp ) ACBABCDEF $.

    $( Inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimpac $p |- ( ( ps /\ ph ) -> ch ) $=
      ( biimpcd imp ) BACABCDEF $.

    $( Inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimparc $p |- ( ( ch /\ ph ) -> ps ) $=
      ( biimprcd imp ) CABABCDEF $.
  $}

  $( Introduction of antecedent as conjunct.  Theorem *4.73 of
     [WhiteheadRussell] p. 121.  (Contributed by NM, 30-Mar-1994.)  (Revised by
     NM, 24-Mar-2013.) $)
  iba $p |- ( ph -> ( ps <-> ( ps /\ ph ) ) ) $=
    ( wa pm3.21 simpl impbid1 ) ABBACABDBAEF $.

  $( Introduction of antecedent as conjunct.  (Contributed by NM, 5-Dec-1995.)
     (Revised by NM, 24-Mar-2013.) $)
  ibar $p |- ( ph -> ( ps <-> ( ph /\ ps ) ) ) $=
    ( wa pm3.2 simpr impbid1 ) ABABCABDABEF $.

  ${
    biantru.1 $e |- ph $.
    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       5-Aug-1993.) $)
    biantru $p |- ( ps <-> ( ps /\ ph ) ) $=
      ( wa wb iba ax-mp ) ABBADECABFG $.
  $}

  ${
    biantrur.1 $e |- ph $.
    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       3-Aug-1994.) $)
    biantrur $p |- ( ps <-> ( ph /\ ps ) ) $=
      ( wa wb ibar ax-mp ) ABABDECABFG $.
  $}

  ${
    biantrud.1 $e |- ( ph -> ps ) $.
    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       2-Aug-1994.)  (Proof shortened by Wolf Lammen, 23-Oct-2013.) $)
    biantrud $p |- ( ph -> ( ch <-> ( ch /\ ps ) ) ) $=
      ( wa wb iba syl ) ABCCBEFDBCGH $.

    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       1-May-1995.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    biantrurd $p |- ( ph -> ( ch <-> ( ps /\ ch ) ) ) $=
      ( wa wb ibar syl ) ABCBCEFDBCGH $.
  $}

  ${
    jca.1 $e |- ( ph -> ps ) $.
    jca.2 $e |- ( ph -> ch ) $.
    $( Deduce conjunction of the consequents of two implications ("join
       consequents with 'and'").  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Wolf Lammen, 25-Oct-2012.) $)
    jca $p |- ( ph -> ( ps /\ ch ) ) $=
      ( wa pm3.2 sylc ) ABCBCFDEBCGH $.
  $}

  ${
    jcad.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jcad.2 $e |- ( ph -> ( ps -> th ) ) $.
    $( Deduction conjoining the consequents of two implications.  (Contributed
       by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    jcad $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( wa pm3.2 syl6c ) ABCDCDGEFCDHI $.
  $}

  ${
    jca31.1 $e |- ( ph -> ps ) $.
    jca31.2 $e |- ( ph -> ch ) $.
    jca31.3 $e |- ( ph -> th ) $.
    $( Join three consequents.  (Contributed by Jeff Hankins, 1-Aug-2009.) $)
    jca31 $p |- ( ph -> ( ( ps /\ ch ) /\ th ) ) $=
      ( wa jca ) ABCHDABCEFIGI $.

    $( Join three consequents.  (Contributed by FL, 1-Aug-2009.) $)
    jca32 $p |- ( ph -> ( ps /\ ( ch /\ th ) ) ) $=
      ( wa jca ) ABCDHEACDFGII $.
  $}

  ${
    jcai.1 $e |- ( ph -> ps ) $.
    jcai.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction replacing implication with conjunction.  (Contributed by NM,
       5-Aug-1993.) $)
    jcai $p |- ( ph -> ( ps /\ ch ) ) $=
      ( mpd jca ) ABCDABCDEFG $.
  $}

  ${
    jctil.1 $e |- ( ph -> ps ) $.
    jctil.2 $e |- ch $.
    $( Inference conjoining a theorem to left of consequent in an implication.
       (Contributed by NM, 31-Dec-1993.) $)
    jctil $p |- ( ph -> ( ch /\ ps ) ) $=
      ( a1i jca ) ACBCAEFDG $.

    $( Inference conjoining a theorem to right of consequent in an
       implication.  (Contributed by NM, 31-Dec-1993.) $)
    jctir $p |- ( ph -> ( ps /\ ch ) ) $=
      ( a1i jca ) ABCDCAEFG $.
  $}

  ${
    jctl.1 $e |- ps $.
    $( Inference conjoining a theorem to the left of a consequent.
       (Contributed by NM, 31-Dec-1993.)  (Proof shortened by Wolf Lammen,
       24-Oct-2012.) $)
    jctl $p |- ( ph -> ( ps /\ ph ) ) $=
      ( id jctil ) AABADCE $.

    $( Inference conjoining a theorem to the right of a consequent.
       (Contributed by NM, 18-Aug-1993.)  (Proof shortened by Wolf Lammen,
       24-Oct-2012.) $)
    jctr $p |- ( ph -> ( ph /\ ps ) ) $=
      ( id jctir ) AABADCE $.
  $}

  ${
    jctild.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jctild.2 $e |- ( ph -> th ) $.
    $( Deduction conjoining a theorem to left of consequent in an implication.
       (Contributed by NM, 21-Apr-2005.) $)
    jctild $p |- ( ph -> ( ps -> ( th /\ ch ) ) ) $=
      ( a1d jcad ) ABDCADBFGEH $.
  $}

  ${
    jctird.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jctird.2 $e |- ( ph -> th ) $.
    $( Deduction conjoining a theorem to right of consequent in an
       implication.  (Contributed by NM, 21-Apr-2005.) $)
    jctird $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( a1d jcad ) ABCDEADBFGH $.
  $}

  $( Conjoin antecedent to left of consequent.  (Contributed by NM,
     15-Aug-1994.) $)
  ancl $p |- ( ( ph -> ps ) -> ( ph -> ( ph /\ ps ) ) ) $=
    ( wa pm3.2 a2i ) ABABCABDE $.

  $( Conjoin antecedent to left of consequent.  Theorem *4.7 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 25-Jul-1999.)  (Proof
     shortened by Wolf Lammen, 24-Mar-2013.) $)
  anclb $p |- ( ( ph -> ps ) <-> ( ph -> ( ph /\ ps ) ) ) $=
    ( wa ibar pm5.74i ) ABABCABDE $.

  $( Theorem *5.42 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.42 $p |- ( ( ph -> ( ps -> ch ) ) <->
                ( ph -> ( ps -> ( ph /\ ch ) ) ) ) $=
    ( wi wa ibar imbi2d pm5.74i ) ABCDBACEZDACIBACFGH $.

  $( Conjoin antecedent to right of consequent.  (Contributed by NM,
     15-Aug-1994.) $)
  ancr $p |- ( ( ph -> ps ) -> ( ph -> ( ps /\ ph ) ) ) $=
    ( wa pm3.21 a2i ) ABBACABDE $.

  $( Conjoin antecedent to right of consequent.  (Contributed by NM,
     25-Jul-1999.)  (Proof shortened by Wolf Lammen, 24-Mar-2013.) $)
  ancrb $p |- ( ( ph -> ps ) <-> ( ph -> ( ps /\ ph ) ) ) $=
    ( wa iba pm5.74i ) ABBACABDE $.

  ${
    ancli.1 $e |- ( ph -> ps ) $.
    $( Deduction conjoining antecedent to left of consequent.  (Contributed by
       NM, 12-Aug-1993.) $)
    ancli $p |- ( ph -> ( ph /\ ps ) ) $=
      ( id jca ) AABADCE $.
  $}

  ${
    ancri.1 $e |- ( ph -> ps ) $.
    $( Deduction conjoining antecedent to right of consequent.  (Contributed by
       NM, 15-Aug-1994.) $)
    ancri $p |- ( ph -> ( ps /\ ph ) ) $=
      ( id jca ) ABACADE $.
  $}

  ${
    ancld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to left of consequent in nested
       implication.  (Contributed by NM, 15-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 1-Nov-2012.) $)
    ancld $p |- ( ph -> ( ps -> ( ps /\ ch ) ) ) $=
      ( idd jcad ) ABBCABEDF $.
  $}

  ${
    ancrd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to right of consequent in nested
       implication.  (Contributed by NM, 15-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 1-Nov-2012.) $)
    ancrd $p |- ( ph -> ( ps -> ( ch /\ ps ) ) ) $=
      ( idd jcad ) ABCBDABEF $.
  $}

  $( Conjoin antecedent to left of consequent in nested implication.
     (Contributed by NM, 10-Aug-1994.)  (Proof shortened by Wolf Lammen,
     14-Jul-2013.) $)
  anc2l $p |- ( ( ph -> ( ps -> ch ) ) -> ( ph -> ( ps -> ( ph /\ ch ) ) ) ) $=
    ( wi wa pm5.42 biimpi ) ABCDDABACEDDABCFG $.

  $( Conjoin antecedent to right of consequent in nested implication.
     (Contributed by NM, 15-Aug-1994.) $)
  anc2r $p |- ( ( ph -> ( ps -> ch ) ) -> ( ph -> ( ps -> ( ch /\ ph ) ) ) ) $=
    ( wi wa pm3.21 imim2d a2i ) ABCDBCAEZDACIBACFGH $.

  ${
    anc2li.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to left of consequent in nested
       implication.  (Contributed by NM, 10-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 7-Dec-2012.) $)
    anc2li $p |- ( ph -> ( ps -> ( ph /\ ch ) ) ) $=
      ( id jctild ) ABCADAEF $.
  $}

  ${
    anc2ri.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to right of consequent in nested
       implication.  (Contributed by NM, 15-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 7-Dec-2012.) $)
    anc2ri $p |- ( ph -> ( ps -> ( ch /\ ph ) ) ) $=
      ( id jctird ) ABCADAEF $.
  $}

  $( Theorem *3.41 of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.41 $p |- ( ( ph -> ch ) -> ( ( ph /\ ps ) -> ch ) ) $=
    ( wa simpl imim1i ) ABDACABEF $.

  $( Theorem *3.42 of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.42 $p |- ( ( ps -> ch ) -> ( ( ph /\ ps ) -> ch ) ) $=
    ( wa simpr imim1i ) ABDBCABEF $.

  $( Conjunction implies implication.  Theorem *3.4 of [WhiteheadRussell]
     p. 113.  (Contributed by NM, 31-Jul-1995.) $)
  pm3.4 $p |- ( ( ph /\ ps ) -> ( ph -> ps ) ) $=
    ( wa simpr a1d ) ABCBAABDE $.

  $( Conjunction with implication.  Compare Theorem *4.45 of [WhiteheadRussell]
     p. 119.  (Contributed by NM, 17-May-1998.) $)
  pm4.45im $p |- ( ph <-> ( ph /\ ( ps -> ph ) ) ) $=
    ( wi wa ax-1 ancli simpl impbii ) AABACZDAIABEFAIGH $.

  ${
    anim12d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    anim12d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( Conjoin antecedents and consequents in a deduction.  (Contributed by NM,
       3-Apr-1994.)  (Proof shortened by Wolf Lammen, 18-Dec-2013.) $)
    anim12d $p |- ( ph -> ( ( ps /\ th ) -> ( ch /\ ta ) ) ) $=
      ( wa idd syl2and ) ABCDECEHZFGAKIJ $.
  $}

  ${
    anim1d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Add a conjunct to right of antecedent and consequent in a deduction.
       (Contributed by NM, 3-Apr-1994.) $)
    anim1d $p |- ( ph -> ( ( ps /\ th ) -> ( ch /\ th ) ) ) $=
      ( idd anim12d ) ABCDDEADFG $.

    $( Add a conjunct to left of antecedent and consequent in a deduction.
       (Contributed by NM, 5-Aug-1993.) $)
    anim2d $p |- ( ph -> ( ( th /\ ps ) -> ( th /\ ch ) ) ) $=
      ( idd anim12d ) ADDBCADFEG $.
  $}

  ${
    anim12i.1 $e |- ( ph -> ps ) $.
    anim12i.2 $e |- ( ch -> th ) $.
    $( Conjoin antecedents and consequents of two premises.  (Contributed by
       NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 14-Dec-2013.) $)
    anim12i $p |- ( ( ph /\ ch ) -> ( ps /\ th ) ) $=
      ( wa id syl2an ) ABDBDGZCEFJHI $.

    $( Variant of ~ anim12i with commutation.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    anim12ci $p |- ( ( ph /\ ch ) -> ( th /\ ps ) ) $=
      ( wa anim12i ancoms ) CADBGCDABFEHI $.
  $}

  ${
    anim1i.1 $e |- ( ph -> ps ) $.
    $( Introduce conjunct to both sides of an implication.  (Contributed by NM,
       5-Aug-1993.) $)
    anim1i $p |- ( ( ph /\ ch ) -> ( ps /\ ch ) ) $=
      ( id anim12i ) ABCCDCEF $.

    $( Introduce conjunct to both sides of an implication.  (Contributed by NM,
       5-Aug-1993.) $)
    anim2i $p |- ( ( ch /\ ph ) -> ( ch /\ ps ) ) $=
      ( id anim12i ) CCABCEDF $.
  $}

  ${
    anim12ii.1 $e |- ( ph -> ( ps -> ch ) ) $.
    anim12ii.2 $e |- ( th -> ( ps -> ta ) ) $.
    $( Conjoin antecedents and consequents in a deduction.  (Contributed by NM,
       11-Nov-2007.)  (Proof shortened by Wolf Lammen, 19-Jul-2013.) $)
    anim12ii $p |- ( ( ph /\ th ) -> ( ps -> ( ch /\ ta ) ) ) $=
      ( wa wi adantr adantl jcad ) ADHBCEABCIDFJDBEIAGKL $.
  $}

  $( Theorem *3.47 of [WhiteheadRussell] p. 113.  It was proved by Leibniz, and
     it evidently pleased him enough to call it 'praeclarum theorema' (splendid
     theorem).  (Contributed by NM, 12-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 7-Apr-2013.) $)
  prth $p |- ( ( ( ph -> ps ) /\ ( ch -> th ) ) ->
              ( ( ph /\ ch ) -> ( ps /\ th ) ) ) $=
    ( wi wa simpl simpr anim12d ) ABEZCDEZFABCDJKGJKHI $.

  $( Theorem *3.33 (Syll) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.33 $p |- ( ( ( ph -> ps ) /\ ( ps -> ch ) ) -> ( ph -> ch ) ) $=
    ( wi imim1 imp ) ABDBCDACDABCEF $.

  $( Theorem *3.34 (Syll) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.34 $p |- ( ( ( ps -> ch ) /\ ( ph -> ps ) ) -> ( ph -> ch ) ) $=
    ( wi imim2 imp ) BCDABDACDBCAEF $.

  $( Conjunctive detachment.  Theorem *3.35 of [WhiteheadRussell] p. 112.
     (Contributed by NM, 14-Dec-2002.) $)
  pm3.35 $p |- ( ( ph /\ ( ph -> ps ) ) -> ps ) $=
    ( wi pm2.27 imp ) AABCBABDE $.

  $( Theorem *5.31 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.31 $p |- ( ( ch /\ ( ph -> ps ) ) -> ( ph -> ( ps /\ ch ) ) ) $=
    ( wi wa pm3.21 imim2d imp ) CABDABCEZDCBIACBFGH $.

  ${
    imp4.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $.
    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp4a $p |- ( ph -> ( ps -> ( ( ch /\ th ) -> ta ) ) ) $=
      ( wi wa impexp syl6ibr ) ABCDEGGCDHEGFCDEIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp4b $p |- ( ( ph /\ ps ) -> ( ( ch /\ th ) -> ta ) ) $=
      ( wa wi imp4a imp ) ABCDGEHABCDEFIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp4c $p |- ( ph -> ( ( ( ps /\ ch ) /\ th ) -> ta ) ) $=
      ( wa wi impd ) ABCGDEABCDEHFII $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp4d $p |- ( ph -> ( ( ps /\ ( ch /\ th ) ) -> ta ) ) $=
      ( wa imp4a impd ) ABCDGEABCDEFHI $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp41 $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $=
      ( wa wi imp imp31 ) ABGCDEABCDEHHFIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp42 $p |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ta ) $=
      ( wa wi imp32 imp ) ABCGGDEABCDEHFIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp43 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $=
      ( wa imp4b imp ) ABGCDGEABCDEFHI $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp44 $p |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ta ) $=
      ( wa imp4c imp ) ABCGDGEABCDEFHI $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp45 $p |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> ta ) $=
      ( wa imp4d imp ) ABCDGGEABCDEFHI $.

  $}

  ${
    imp5.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $.
    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp5a $p |- ( ph -> ( ps -> ( ch -> ( ( th /\ ta ) -> et ) ) ) ) $=
      ( wi wa pm3.31 syl8 ) ABCDEFHHDEIFHGDEFJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp5d $p |- ( ( ( ph /\ ps ) /\ ch ) -> ( ( th /\ ta ) -> et ) ) $=
      ( wa wi imp31 impd ) ABHCHDEFABCDEFIIGJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp5g $p |- ( ( ph /\ ps ) -> ( ( ( ch /\ th ) /\ ta ) -> et ) ) $=
      ( wa wi imp imp4c ) ABHCDEFABCDEFIIIGJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp55 $p |- ( ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) /\ ta ) -> et ) $=
      ( wa wi imp4a imp42 ) ABCDHEFABCDEFIGJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp511 $p |- ( ( ph /\ ( ( ps /\ ( ch /\ th ) ) /\ ta ) ) -> et ) $=
      ( wa wi imp4a imp44 ) ABCDHEFABCDEFIGJK $.
  $}

  ${
    expimpd.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Exportation followed by a deduction version of importation.
       (Contributed by NM, 6-Sep-2008.) $)
    expimpd $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( wi ex impd ) ABCDABCDFEGH $.
  $}

  ${
    exp31.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp31 $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wi wa ex ) ABCDFABGCDEHH $.
  $}

  ${
    exp32.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp32 $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wa ex expd ) ABCDABCFDEGH $.
  $}

  ${
    exp4a.1 $e |- ( ph -> ( ps -> ( ( ch /\ th ) -> ta ) ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp4a $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa wi impexp syl6ib ) ABCDGEHCDEHHFCDEIJ $.
  $}

  ${
    exp4b.1 $e |- ( ( ph /\ ps ) -> ( ( ch /\ th ) -> ta ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 23-Nov-2012.) $)
    exp4b $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa wi ex exp4a ) ABCDEABCDGEHFIJ $.
  $}

  ${
    exp4c.1 $e |- ( ph -> ( ( ( ps /\ ch ) /\ th ) -> ta ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp4c $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa expd ) ABCDEGABCHDEFII $.
  $}

  ${
    exp4d.1 $e |- ( ph -> ( ( ps /\ ( ch /\ th ) ) -> ta ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp4d $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa expd exp4a ) ABCDEABCDGEFHI $.
  $}

  ${
    exp41.1 $e |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp41 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa ex exp31 ) ABCDEGABHCHDEFIJ $.
  $}

  ${
    exp42.1 $e |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp42 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa exp31 expd ) ABCDEGABCHDEFIJ $.
  $}

  ${
    exp43.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp43 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa ex exp4b ) ABCDEABGCDGEFHI $.
  $}

  ${
    exp44.1 $e |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp44 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa exp32 expd ) ABCDEGABCHDEFIJ $.
  $}

  ${
    exp45.1 $e |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp45 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa exp32 exp4a ) ABCDEABCDGEFHI $.
  $}

  ${
    expr.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Export a wff from a right conjunct.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    expr $p |- ( ( ph /\ ps ) -> ( ch -> th ) ) $=
      ( wi exp32 imp ) ABCDFABCDEGH $.
  $}

  ${
    exp5c.1 $e |- ( ph -> ( ( ps /\ ch ) -> ( ( th /\ ta ) -> et ) ) ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp5c $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa exp4a expd ) ABCDEFHHABCIDEFGJK $.
  $}

  ${
    exp53.1 $e |- ( ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) /\ ta ) -> et ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    exp53 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa ex exp43 ) ABCDEFHABICDIIEFGJK $.
  $}

  ${
    expl.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Export a wff from a left conjunct.  (Contributed by Jeff Hankins,
       28-Aug-2009.) $)
    expl $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( exp31 impd ) ABCDABCDEFG $.
  $}

  ${
    impr.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Import a wff into a right conjunct.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    impr $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( wi ex imp32 ) ABCDABCDFEGH $.
  $}

  ${
    impl.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Export a wff from a left conjunct.  (Contributed by Mario Carneiro,
       9-Jul-2014.) $)
    impl $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( expd imp31 ) ABCDABCDEFG $.
  $}

  ${
    impac.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Importation with conjunction in consequent.  (Contributed by NM,
       9-Aug-1994.) $)
    impac $p |- ( ( ph /\ ps ) -> ( ch /\ ps ) ) $=
      ( wa ancrd imp ) ABCBEABCDFG $.
  $}

  ${
    exbiri.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Inference form of ~ exbir .  (Contributed by Alan Sare, 31-Dec-2011.)
       (Proof shortened by Wolf Lammen, 27-Jan-2013.) $)
    exbiri $p |- ( ph -> ( ps -> ( th -> ch ) ) ) $=
      ( wa biimpar exp31 ) ABDCABFCDEGH $.
  $}

  ${
    pm3.26bda.1 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 22-Oct-2007.) $)
    simprbda $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa biimpa simpld ) ABFCDABCDFEGH $.

    $( Deduction eliminating a conjunct.  (Contributed by NM, 22-Oct-2007.) $)
    simplbda $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa biimpa simprd ) ABFCDABCDFEGH $.
  $}

  ${
    pm3.26bi2.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by Alan Sare,
       31-Dec-2011.) $)
    simplbi2 $p |- ( ps -> ( ch -> ph ) ) $=
      ( wa biimpri ex ) BCAABCEDFG $.
  $}

  $( A theorem similar to the standard definition of the biconditional.
     Definition of [Margaris] p. 49.  (Contributed by NM, 5-Aug-1993.)
     (Revised by NM, 31-Jan-2015.) $)
  dfbi2 $p |- ( ( ph <-> ps ) <-> ( ( ph -> ps ) /\ ( ps -> ph ) ) ) $=
    ( wb wi wa df-bi simpli simpri impbii ) ABCZABDBADEZJKDZKJDZABFZGLMNHI $.

  $( Implication in terms of biconditional and conjunction.  Theorem *4.71 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 2-Dec-2012.) $)
  pm4.71 $p |- ( ( ph -> ps ) <-> ( ph <-> ( ph /\ ps ) ) ) $=
    ( wa wi wb simpl biantru anclb dfbi2 3bitr4i ) AABCZDZLKADZCABDAKEMLABFGABH
    AKIJ $.

  $( Implication in terms of biconditional and conjunction.  Theorem *4.71 of
     [WhiteheadRussell] p. 120 (with conjunct reversed).  (Contributed by NM,
     25-Jul-1999.) $)
  pm4.71r $p |- ( ( ph -> ps ) <-> ( ph <-> ( ps /\ ph ) ) ) $=
    ( wi wa wb pm4.71 ancom bibi2i bitri ) ABCAABDZEABADZEABFJKAABGHI $.

  ${
    pm4.71i.1 $e |- ( ph -> ps ) $.
    $( Inference converting an implication to a biconditional with
       conjunction.  Inference from Theorem *4.71 of [WhiteheadRussell]
       p. 120.  (Contributed by NM, 4-Jan-2004.) $)
    pm4.71i $p |- ( ph <-> ( ph /\ ps ) ) $=
      ( wi wa wb pm4.71 mpbi ) ABDAABEFCABGH $.
  $}

  ${
    pm4.71ri.1 $e |- ( ph -> ps ) $.
    $( Inference converting an implication to a biconditional with
       conjunction.  Inference from Theorem *4.71 of [WhiteheadRussell] p. 120
       (with conjunct reversed).  (Contributed by NM, 1-Dec-2003.) $)
    pm4.71ri $p |- ( ph <-> ( ps /\ ph ) ) $=
      ( wi wa wb pm4.71r mpbi ) ABDABAEFCABGH $.
  $}

  ${
    pm4.71rd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction converting an implication to a biconditional with
       conjunction.  Deduction from Theorem *4.71 of [WhiteheadRussell]
       p. 120.  (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    pm4.71d $p |- ( ph -> ( ps <-> ( ps /\ ch ) ) ) $=
      ( wi wa wb pm4.71 sylib ) ABCEBBCFGDBCHI $.

    $( Deduction converting an implication to a biconditional with
       conjunction.  Deduction from Theorem *4.71 of [WhiteheadRussell]
       p. 120.  (Contributed by NM, 10-Feb-2005.) $)
    pm4.71rd $p |- ( ph -> ( ps <-> ( ch /\ ps ) ) ) $=
      ( wi wa wb pm4.71r sylib ) ABCEBCBFGDBCHI $.
  $}

  $( Theorem *4.24 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 14-Mar-2014.) $)
  pm4.24 $p |- ( ph <-> ( ph /\ ph ) ) $=
    ( id pm4.71i ) AAABC $.

  $( Idempotent law for conjunction.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 14-Mar-2014.) $)
  anidm $p |- ( ( ph /\ ph ) <-> ph ) $=
    ( wa pm4.24 bicomi ) AAABACD $.

  ${
    anidms.1 $e |- ( ( ph /\ ph ) -> ps ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       15-Jun-1994.) $)
    anidms $p |- ( ph -> ps ) $=
      ( ex pm2.43i ) ABAABCDE $.
  $}

  $( Conjunction idempotence with antecedent.  (Contributed by Roy F. Longton,
     8-Aug-2005.) $)
  anidmdbi $p |- ( ( ph -> ( ps /\ ps ) ) <-> ( ph -> ps ) ) $=
    ( wa anidm imbi2i ) BBCBABDE $.

  ${
    anasss.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Associative law for conjunction applied to antecedent (eliminates
       syllogism).  (Contributed by NM, 15-Nov-2002.) $)
    anasss $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( exp31 imp32 ) ABCDABCDEFG $.
  $}

  ${
    anassrs.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Associative law for conjunction applied to antecedent (eliminates
       syllogism).  (Contributed by NM, 15-Nov-2002.) $)
    anassrs $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( exp32 imp31 ) ABCDABCDEFG $.
  $}

  $( Associative law for conjunction.  Theorem *4.32 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 24-Nov-2012.) $)
  anass $p |- ( ( ( ph /\ ps ) /\ ch ) <-> ( ph /\ ( ps /\ ch ) ) ) $=
    ( wa id anassrs anasss impbii ) ABDCDZABCDDZABCJJEFABCIIEGH $.

  ${
    sylanl1.1 $e |- ( ph -> ps ) $.
    sylanl1.2 $e |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 10-Mar-2005.) $)
    sylanl1 $p |- ( ( ( ph /\ ch ) /\ th ) -> ta ) $=
      ( wa anim1i sylan ) ACHBCHDEABCFIGJ $.
  $}

  ${
    sylanl2.1 $e |- ( ph -> ch ) $.
    sylanl2.2 $e |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 1-Jan-2005.) $)
    sylanl2 $p |- ( ( ( ps /\ ph ) /\ th ) -> ta ) $=
      ( wa anim2i sylan ) BAHBCHDEACBFIGJ $.
  $}

  ${
    sylanr1.1 $e |- ( ph -> ch ) $.
    sylanr1.2 $e |- ( ( ps /\ ( ch /\ th ) ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 9-Apr-2005.) $)
    sylanr1 $p |- ( ( ps /\ ( ph /\ th ) ) -> ta ) $=
      ( wa anim1i sylan2 ) ADHBCDHEACDFIGJ $.
  $}

  ${
    sylanr2.1 $e |- ( ph -> th ) $.
    sylanr2.2 $e |- ( ( ps /\ ( ch /\ th ) ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 9-Apr-2005.) $)
    sylanr2 $p |- ( ( ps /\ ( ch /\ ph ) ) -> ta ) $=
      ( wa anim2i sylan2 ) CAHBCDHEADCFIGJ $.
  $}

  ${
    sylani.1 $e |- ( ph -> ch ) $.
    sylani.2 $e |- ( ps -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism inference.  (Contributed by NM, 2-May-1996.) $)
    sylani $p |- ( ps -> ( ( ph /\ th ) -> ta ) ) $=
      ( wi a1i syland ) BACDEACHBFIGJ $.
  $}

  ${
    sylan2i.1 $e |- ( ph -> th ) $.
    sylan2i.2 $e |- ( ps -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism inference.  (Contributed by NM, 1-Aug-1994.) $)
    sylan2i $p |- ( ps -> ( ( ch /\ ph ) -> ta ) ) $=
      ( wi a1i sylan2d ) BADCEADHBFIGJ $.
  $}

  ${
    syl2ani.1 $e |- ( ph -> ch ) $.
    syl2ani.2 $e |- ( et -> th ) $.
    syl2ani.3 $e |- ( ps -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism inference.  (Contributed by NM, 3-Aug-1999.) $)
    syl2ani $p |- ( ps -> ( ( ph /\ et ) -> ta ) ) $=
      ( sylan2i sylani ) ABCFEGFBCDEHIJK $.
  $}

  ${
    sylan9.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylan9.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       7-May-2011.) $)
    sylan9 $p |- ( ( ph /\ th ) -> ( ps -> ta ) ) $=
      ( wi syl9 imp ) ADBEHABCDEFGIJ $.
  $}

  ${
    sylan9r.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylan9r.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 5-Aug-1993.) $)
    sylan9r $p |- ( ( th /\ ph ) -> ( ps -> ta ) ) $=
      ( wi syl9r imp ) DABEHABCDEFGIJ $.
  $}

  ${
    syl2anc.1 $e |- ( ph -> ps ) $.
    syl2anc.2 $e |- ( ph -> ch ) $.
    syl2anc.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( Syllogism inference combined with contraction.  (Contributed by NM,
       16-Mar-2012.) $)
    syl2anc $p |- ( ph -> th ) $=
      ( ex sylc ) ABCDEFBCDGHI $.
  $}

  ${
    sylancl.1 $e |- ( ph -> ps ) $.
    sylancl.2 $e |- ch $.
    sylancl.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( Syllogism inference combined with modus ponens.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    sylancl $p |- ( ph -> th ) $=
      ( a1i syl2anc ) ABCDECAFHGI $.
  $}

  ${
    sylancr.1 $e |- ps $.
    sylancr.2 $e |- ( ph -> ch ) $.
    sylancr.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( Syllogism inference combined with modus ponens.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    sylancr $p |- ( ph -> th ) $=
      ( a1i syl2anc ) ABCDBAEHFGI $.
  $}

  ${
    sylanbrc.1 $e |- ( ph -> ps ) $.
    sylanbrc.2 $e |- ( ph -> ch ) $.
    sylanbrc.3 $e |- ( th <-> ( ps /\ ch ) ) $.
    $( Syllogism inference.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    sylanbrc $p |- ( ph -> th ) $=
      ( wa jca sylibr ) ABCHDABCEFIGJ $.
  $}

  ${
    sylancb.1 $e |- ( ph <-> ps ) $.
    sylancb.2 $e |- ( ph <-> ch ) $.
    sylancb.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference combined with contraction.  (Contributed by NM,
       3-Sep-2004.) $)
    sylancb $p |- ( ph -> th ) $=
      ( syl2anb anidms ) ADABCDAEFGHI $.
  $}

  ${
    sylancbr.1 $e |- ( ps <-> ph ) $.
    sylancbr.2 $e |- ( ch <-> ph ) $.
    sylancbr.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference combined with contraction.  (Contributed by NM,
       3-Sep-2004.) $)
    sylancbr $p |- ( ph -> th ) $=
      ( syl2anbr anidms ) ADABCDAEFGHI $.
  $}

  ${
    sylancom.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    sylancom.2 $e |- ( ( ch /\ ps ) -> th ) $.
    $( Syllogism inference with commutation of antecents.  (Contributed by NM,
       2-Jul-2008.) $)
    sylancom $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa simpr syl2anc ) ABGCBDEABHFI $.
  $}

  ${
    mpdan.1 $e |- ( ph -> ps ) $.
    mpdan.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 23-May-1999.)
       (Proof shortened by Wolf Lammen, 22-Nov-2012.) $)
    mpdan $p |- ( ph -> ch ) $=
      ( id syl2anc ) AABCAFDEG $.
  $}

  ${
    mpancom.1 $e |- ( ps -> ph ) $.
    mpancom.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens with commutation of antecedents.
       (Contributed by NM, 28-Oct-2003.)  (Proof shortened by Wolf Lammen,
       7-Apr-2013.) $)
    mpancom $p |- ( ps -> ch ) $=
      ( id syl2anc ) BABCDBFEG $.
  $}

  ${
    mpan.1 $e |- ph $.
    mpan.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 30-Aug-1993.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpan $p |- ( ps -> ch ) $=
      ( a1i mpancom ) ABCABDFEG $.
  $}

  ${
    mpan2.1 $e |- ps $.
    mpan2.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 16-Sep-1993.)
       (Proof shortened by Wolf Lammen, 19-Nov-2012.) $)
    mpan2 $p |- ( ph -> ch ) $=
      ( a1i mpdan ) ABCBADFEG $.
  $}

  ${
    mp2an.1 $e |- ph $.
    mp2an.2 $e |- ps $.
    mp2an.3 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       13-Apr-1995.) $)
    mp2an $p |- ch $=
      ( mpan ax-mp ) BCEABCDFGH $.
  $}

  ${
    mp4an.1 $e |- ph $.
    mp4an.2 $e |- ps $.
    mp4an.3 $e |- ch $.
    mp4an.4 $e |- th $.
    mp4an.5 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by Jeff Madsen,
       15-Jun-2011.) $)
    mp4an $p |- ta $=
      ( wa pm3.2i mp2an ) ABKCDKEABFGLCDHILJM $.
  $}

  ${
    mpan2d.1 $e |- ( ph -> ch ) $.
    mpan2d.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( A deduction based on modus ponens.  (Contributed by NM, 12-Dec-2004.) $)
    mpan2d $p |- ( ph -> ( ps -> th ) ) $=
      ( expd mpid ) ABCDEABCDFGH $.
  $}

  ${
    mpand.1 $e |- ( ph -> ps ) $.
    mpand.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( A deduction based on modus ponens.  (Contributed by NM, 12-Dec-2004.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpand $p |- ( ph -> ( ch -> th ) ) $=
      ( ancomsd mpan2d ) ACBDEABCDFGH $.
  $}

  ${
    mpani.1 $e |- ps $.
    mpani.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 10-Apr-1994.)
       (Proof shortened by Wolf Lammen, 19-Nov-2012.) $)
    mpani $p |- ( ph -> ( ch -> th ) ) $=
      ( a1i mpand ) ABCDBAEGFH $.
  $}

  ${
    mpan2i.1 $e |- ch $.
    mpan2i.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 10-Apr-1994.)
       (Proof shortened by Wolf Lammen, 19-Nov-2012.) $)
    mpan2i $p |- ( ph -> ( ps -> th ) ) $=
      ( a1i mpan2d ) ABCDCAEGFH $.
  $}

  ${
    mp2ani.1 $e |- ps $.
    mp2ani.2 $e |- ch $.
    mp2ani.3 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       12-Dec-2004.) $)
    mp2ani $p |- ( ph -> th ) $=
      ( mpani mpi ) ACDFABCDEGHI $.
  $}

  ${
    mp2and.1 $e |- ( ph -> ps ) $.
    mp2and.2 $e |- ( ph -> ch ) $.
    mp2and.3 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( A deduction based on modus ponens.  (Contributed by NM, 12-Dec-2004.) $)
    mp2and $p |- ( ph -> th ) $=
      ( mpand mpd ) ACDFABCDEGHI $.
  $}

  ${
    mpanl1.1 $e |- ph $.
    mpanl1.2 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 16-Aug-1994.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpanl1 $p |- ( ( ps /\ ch ) -> th ) $=
      ( wa jctl sylan ) BABGCDBAEHFI $.
  $}

  ${
    mpanl2.1 $e |- ps $.
    mpanl2.2 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 16-Aug-1994.)
       (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    mpanl2 $p |- ( ( ph /\ ch ) -> th ) $=
      ( wa jctr sylan ) AABGCDABEHFI $.
  $}

  ${
    mpanl12.1 $e |- ph $.
    mpanl12.2 $e |- ps $.
    mpanl12.3 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       13-Jul-2005.) $)
    mpanl12 $p |- ( ch -> th ) $=
      ( mpanl1 mpan ) BCDFABCDEGHI $.
  $}

  ${
    mpanr1.1 $e |- ps $.
    mpanr1.2 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 3-May-1994.)
       (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    mpanr1 $p |- ( ( ph /\ ch ) -> th ) $=
      ( anassrs mpanl2 ) ABCDEABCDFGH $.
  $}

  ${
    mpanr2.1 $e |- ch $.
    mpanr2.2 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 3-May-1994.)
       (Proof shortened by Andrew Salmon, 7-May-2011.)  (Proof shortened by
       Wolf Lammen, 7-Apr-2013.) $)
    mpanr2 $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa jctr sylan2 ) BABCGDBCEHFI $.
  $}

  ${
    mpanr12.1 $e |- ps $.
    mpanr12.2 $e |- ch $.
    mpanr12.3 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Jul-2009.) $)
    mpanr12 $p |- ( ph -> th ) $=
      ( mpanr1 mpan2 ) ACDFABCDEGHI $.
  $}

  ${
    mpanlr1.1 $e |- ps $.
    mpanlr1.2 $e |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 30-Dec-2004.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpanlr1 $p |- ( ( ( ph /\ ch ) /\ th ) -> ta ) $=
      ( wa jctl sylanl2 ) CABCHDECBFIGJ $.
  $}

  ${
    pm5.74da.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 4-May-2007.) $)
    pm5.74da $p |- ( ph -> ( ( ps -> ch ) <-> ( ps -> th ) ) ) $=
      ( wb ex pm5.74d ) ABCDABCDFEGH $.
  $}

  $( Distribution of implication with conjunction.  (Contributed by NM,
     31-May-1999.)  (Proof shortened by Wolf Lammen, 6-Dec-2012.) $)
  imdistan $p |- ( ( ph -> ( ps -> ch ) ) <->
                ( ( ph /\ ps ) -> ( ph /\ ch ) ) ) $=
    ( wi wa pm5.42 impexp bitr4i ) ABCDDABACEZDDABEIDABCFABIGH $.

  ${
    imdistani.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Distribution of implication with conjunction.  (Contributed by NM,
       1-Aug-1994.) $)
    imdistani $p |- ( ( ph /\ ps ) -> ( ph /\ ch ) ) $=
      ( wa anc2li imp ) ABACEABCDFG $.
  $}

  ${
    imdistanri.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Distribution of implication with conjunction.  (Contributed by NM,
       8-Jan-2002.) $)
    imdistanri $p |- ( ( ps /\ ph ) -> ( ch /\ ph ) ) $=
      ( com12 impac ) BACABCDEF $.
  $}

  ${
    imdistand.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Distribution of implication with conjunction (deduction rule).
       (Contributed by NM, 27-Aug-2004.) $)
    imdistand $p |- ( ph -> ( ( ps /\ ch ) -> ( ps /\ th ) ) ) $=
      ( wi wa imdistan sylib ) ABCDFFBCGBDGFEBCDHI $.
  $}

  ${
    imdistanda.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Distribution of implication with conjunction (deduction version with
       conjoined antecedent).  (Contributed by Jeff Madsen, 19-Jun-2011.) $)
    imdistanda $p |- ( ph -> ( ( ps /\ ch ) -> ( ps /\ th ) ) ) $=
      ( wi ex imdistand ) ABCDABCDFEGH $.
  $}

  ${
    pm5.32d.1 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 29-Oct-1996.)  (Revised by NM, 31-Jan-2015.) $)
    pm5.32d $p |- ( ph -> ( ( ps /\ ch ) <-> ( ps /\ th ) ) ) $=
      ( wa wb wi bi1 syl6 imdistand bi2 impbid ) ABCFBDFABCDABCDGZCDHECDIJKABDC
      ABNDCHECDLJKM $.

    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 25-Dec-2004.) $)
    pm5.32rd $p |- ( ph -> ( ( ch /\ ps ) <-> ( th /\ ps ) ) ) $=
      ( wa pm5.32d ancom 3bitr4g ) ABCFBDFCBFDBFABCDEGCBHDBHI $.
  $}

  ${
    pm5.32da.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 9-Dec-2006.) $)
    pm5.32da $p |- ( ph -> ( ( ps /\ ch ) <-> ( ps /\ th ) ) ) $=
      ( wb ex pm5.32d ) ABCDABCDFEGH $.
  $}

  $( Distribution of implication over biconditional.  Theorem *5.32 of
     [WhiteheadRussell] p. 125.  (Contributed by NM, 1-Aug-1994.)  (Revised by
     NM, 31-Jan-2015.) $)
  pm5.32 $p |- ( ( ph -> ( ps <-> ch ) ) <->
               ( ( ph /\ ps ) <-> ( ph /\ ch ) ) ) $=
    ( wb wi wa id pm5.32d ibar bibi12d biimprcd impbii ) ABCDZEZABFZACFZDZNABCN
    GHAMQABOCPABIACIJKL $.

  ${
    pm5.32i.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Distribution of implication over biconditional (inference rule).
       (Contributed by NM, 1-Aug-1994.) $)
    pm5.32i $p |- ( ( ph /\ ps ) <-> ( ph /\ ch ) ) $=
      ( wb wi wa pm5.32 mpbi ) ABCEFABGACGEDABCHI $.

    $( Distribution of implication over biconditional (inference rule).
       (Contributed by NM, 12-Mar-1995.) $)
    pm5.32ri $p |- ( ( ps /\ ph ) <-> ( ch /\ ph ) ) $=
      ( wa pm5.32i ancom 3bitr4i ) ABEACEBAECAEABCDFBAGCAGH $.
  $}

  ${
    biadan2.1 $e |- ( ph -> ps ) $.
    biadan2.2 $e |- ( ps -> ( ph <-> ch ) ) $.
    $( Add a conjunction to an equivalence.  (Contributed by Jeff Madsen,
       20-Jun-2011.) $)
    biadan2 $p |- ( ph <-> ( ps /\ ch ) ) $=
      ( wa pm4.71ri pm5.32i bitri ) ABAFBCFABDGBACEHI $.
  $}

  ${
    bi.aa $e |- ( ph <-> ps ) $.
    $( Introduce a left conjunct to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       16-Nov-2013.) $)
    anbi2i $p |- ( ( ch /\ ph ) <-> ( ch /\ ps ) ) $=
      ( wb a1i pm5.32i ) CABABECDFG $.

    $( Introduce a right conjunct to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       16-Nov-2013.) $)
    anbi1i $p |- ( ( ph /\ ch ) <-> ( ps /\ ch ) ) $=
      ( wb a1i pm5.32ri ) CABABECDFG $.

    $( Variant of ~ anbi2i with commutation.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.)  (Proof shortened by Andrew Salmon,
       14-Jun-2011.) $)
    anbi2ci $p |- ( ( ph /\ ch ) <-> ( ch /\ ps ) ) $=
      ( wa anbi1i ancom bitri ) ACEBCECBEABCDFBCGH $.
  $}

  ${
    anbi12.1 $e |- ( ph <-> ps ) $.
    anbi12.2 $e |- ( ch <-> th ) $.
    $( Conjoin both sides of two equivalences.  (Contributed by NM,
       5-Aug-1993.) $)
    anbi12i $p |- ( ( ph /\ ch ) <-> ( ps /\ th ) ) $=
      ( wa anbi1i anbi2i bitri ) ACGBCGBDGABCEHCDBFIJ $.

    $( Variant of ~ anbi12i with commutation.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    anbi12ci $p |- ( ( ph /\ ch ) <-> ( th /\ ps ) ) $=
      ( wa anbi12i ancom bitri ) ACGBDGDBGABCDEFHBDIJ $.
  $}

  ${
    sylan9bb.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    sylan9bb.2 $e |- ( th -> ( ch <-> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 4-Mar-1995.) $)
    sylan9bb $p |- ( ( ph /\ th ) -> ( ps <-> ta ) ) $=
      ( wa wb adantr adantl bitrd ) ADHBCEABCIDFJDCEIAGKL $.
  $}

  ${
    sylan9bbr.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    sylan9bbr.2 $e |- ( th -> ( ch <-> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 4-Mar-1995.) $)
    sylan9bbr $p |- ( ( th /\ ph ) -> ( ps <-> ta ) ) $=
      ( wb sylan9bb ancoms ) ADBEHABCDEFGIJ $.
  $}

  ${
    anbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding a left conjunct to both sides of a logical
       equivalence.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
       Lammen, 16-Nov-2013.) $)
    anbi2d $p |- ( ph -> ( ( th /\ ps ) <-> ( th /\ ch ) ) ) $=
      ( wb a1d pm5.32d ) ADBCABCFDEGH $.

    $( Deduction adding a right conjunct to both sides of a logical
       equivalence.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
       Lammen, 16-Nov-2013.) $)
    anbi1d $p |- ( ph -> ( ( ps /\ th ) <-> ( ch /\ th ) ) ) $=
      ( wb a1d pm5.32rd ) ADBCABCFDEGH $.
  $}

  $( Introduce a right conjunct to both sides of a logical equivalence.
     Theorem *4.36 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  anbi1 $p |- ( ( ph <-> ps ) -> ( ( ph /\ ch ) <-> ( ps /\ ch ) ) ) $=
    ( wb id anbi1d ) ABDZABCGEF $.

  $( Introduce a left conjunct to both sides of a logical equivalence.
     (Contributed by NM, 16-Nov-2013.) $)
  anbi2 $p |- ( ( ph <-> ps ) -> ( ( ch /\ ph ) <-> ( ch /\ ps ) ) ) $=
    ( wb id anbi2d ) ABDZABCGEF $.

  $( Theorem *4.22 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.) $)
  bitr $p |- ( ( ( ph <-> ps ) /\ ( ps <-> ch ) ) -> ( ph <-> ch ) ) $=
    ( wb bibi1 biimpar ) ABDACDBCDABCEF $.

  ${
    anbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    anbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of conjunctions.
       (Contributed by NM, 5-Aug-1993.) $)
    anbi12d $p |- ( ph -> ( ( ps /\ th ) <-> ( ch /\ ta ) ) ) $=
      ( wa anbi1d anbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( Modus ponens mixed with several conjunctions.  (Contributed by Jim
     Kingdon, 7-Jan-2018.) $)
  mpan10 $p |- ( ( ( ( ph -> ps ) /\ ch ) /\ ph ) -> ( ps /\ ch ) ) $=
    ( wi wa ancom anbi2i anass 3bitr4i id imp anim1i sylbi ) ABDZCEAEZNAEZCEZBC
    ENCAEZENACEZEOQRSNCAFGNCAHNACHIPBCNABNJKLM $.

  $( Theorem *5.3 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
  pm5.3 $p |- ( ( ( ph /\ ps ) -> ch ) <->
               ( ( ph /\ ps ) -> ( ph /\ ch ) ) ) $=
    ( wa wi impexp imdistan bitri ) ABDZCEABCEEIACDEABCFABCGH $.

  ${
    adant2.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantll $p |- ( ( ( th /\ ph ) /\ ps ) -> ch ) $=
      ( wa simpr sylan ) DAFABCDAGEH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantlr $p |- ( ( ( ph /\ th ) /\ ps ) -> ch ) $=
      ( wa simpl sylan ) ADFABCADGEH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantrl $p |- ( ( ph /\ ( th /\ ps ) ) -> ch ) $=
      ( wa simpr sylan2 ) DBFABCDBGEH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantrr $p |- ( ( ph /\ ( ps /\ th ) ) -> ch ) $=
      ( wa simpl sylan2 ) BDFABCBDGEH $.
  $}

  ${
    adantl2.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 2-Dec-2012.) $)
    adantlll $p |- ( ( ( ( ta /\ ph ) /\ ps ) /\ ch ) -> th ) $=
      ( wa simpr sylanl1 ) EAGABCDEAHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantllr $p |- ( ( ( ( ph /\ ta ) /\ ps ) /\ ch ) -> th ) $=
      ( wa simpl sylanl1 ) AEGABCDAEHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantlrl $p |- ( ( ( ph /\ ( ta /\ ps ) ) /\ ch ) -> th ) $=
      ( wa simpr sylanl2 ) EBGABCDEBHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantlrr $p |- ( ( ( ph /\ ( ps /\ ta ) ) /\ ch ) -> th ) $=
      ( wa simpl sylanl2 ) BEGABCDBEHFI $.
  $}

  ${
    adantr2.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrll $p |- ( ( ph /\ ( ( ta /\ ps ) /\ ch ) ) -> th ) $=
      ( wa simpr sylanr1 ) EBGABCDEBHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrlr $p |- ( ( ph /\ ( ( ps /\ ta ) /\ ch ) ) -> th ) $=
      ( wa simpl sylanr1 ) BEGABCDBEHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrrl $p |- ( ( ph /\ ( ps /\ ( ta /\ ch ) ) ) -> th ) $=
      ( wa simpr sylanr2 ) ECGABCDECHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrrr $p |- ( ( ph /\ ( ps /\ ( ch /\ ta ) ) ) -> th ) $=
      ( wa simpl sylanr2 ) CEGABCDCEHFI $.
  $}

  ${
    ad2ant.1 $e |- ( ph -> ps ) $.
    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.)  (Proof shortened by Wolf Lammen, 20-Nov-2012.) $)
    ad2antrr $p |- ( ( ( ph /\ ch ) /\ th ) -> ps ) $=
      ( adantr adantlr ) ADBCABDEFG $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.)  (Proof shortened by Wolf Lammen, 20-Nov-2012.) $)
    ad2antlr $p |- ( ( ( ch /\ ph ) /\ th ) -> ps ) $=
      ( adantr adantll ) ADBCABDEFG $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.) $)
    ad2antrl $p |- ( ( ch /\ ( ph /\ th ) ) -> ps ) $=
      ( wa adantr adantl ) ADFBCABDEGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.) $)
    ad2antll $p |- ( ( ch /\ ( th /\ ph ) ) -> ps ) $=
      ( wa adantl ) DAFBCABDEGG $.

    $( Deduction adding three conjuncts to antecedent.  (Contributed by NM,
       28-Jul-2012.) $)
    ad3antrrr $p |- ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) -> ps ) $=
      ( wa adantr ad2antrr ) ACGBDEABCFHI $.

    $( Deduction adding three conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad3antlr $p |- ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) -> ps ) $=
      ( wa ad2antlr adantr ) CAGDGBEABCDFHI $.

    $( Deduction adding 4 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad4antr $p |- ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et ) -> ps ) $=
      ( wa ad3antrrr adantr ) ACHDHEHBFABCDEGIJ $.

    $( Deduction adding 4 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad4antlr $p |- ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et ) -> ps ) $=
      ( wa ad3antlr adantr ) CAHDHEHBFABCDEGIJ $.

    $( Deduction adding 5 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad5antr $p |- ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) -> ps ) $=
      ( wa ad4antr adantr ) ACIDIEIFIBGABCDEFHJK $.

    $( Deduction adding 5 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad5antlr $p |- ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) -> ps ) $=
      ( wa ad4antlr adantr ) CAIDIEIFIBGABCDEFHJK $.

    $( Deduction adding 6 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad6antr $p |- ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) -> ps ) $=
      ( wa ad5antr adantr ) ACJDJEJFJGJBHABCDEFGIKL $.

    $( Deduction adding 6 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad6antlr $p |- ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) -> ps ) $=
      ( wa ad5antlr adantr ) CAJDJEJFJGJBHABCDEFGIKL $.

    $( Deduction adding 7 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad7antr $p |- ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) -> ps ) $=
      ( wa ad6antr adantr ) ACKDKEKFKGKHKBIABCDEFGHJLM $.

    $( Deduction adding 7 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad7antlr $p |- ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) -> ps ) $=
      ( wa ad6antlr adantr ) CAKDKEKFKGKHKBIABCDEFGHJLM $.

    $( Deduction adding 8 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad8antr $p |- ( ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) -> ps ) $=
      ( wa ad7antr adantr ) ACLDLELFLGLHLILBJABCDEFGHIKMN $.

    $( Deduction adding 8 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad8antlr $p |- ( ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) -> ps ) $=
      ( wa ad7antlr adantr ) CALDLELFLGLHLILBJABCDEFGHIKMN $.

    $( Deduction adding 9 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad9antr $p |- ( ( ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) -> ps ) $=
      ( wa ad8antr adantr ) ACMDMEMFMGMHMIMJMBKABCDEFGHIJLNO $.

    $( Deduction adding 9 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad9antlr $p |- ( ( ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) -> ps ) $=
      ( wa ad8antlr adantr ) CAMDMEMFMGMHMIMJMBKABCDEFGHIJLNO $.

    $( Deduction adding 10 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad10antr $p |- ( ( ( ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) /\ ka ) -> ps ) $=
      ( wa ad9antr adantr ) ACNDNENFNGNHNINJNKNBLABCDEFGHIJKMOP $.

    $( Deduction adding 10 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad10antlr $p |- ( ( ( ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) /\ ka ) -> ps ) $=
      ( wa ad9antlr adantr ) CANDNENFNGNHNINJNKNBLABCDEFGHIJKMOP $.
  $}

  ${
    ad2ant2.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    ad2ant2l $p |- ( ( ( th /\ ph ) /\ ( ta /\ ps ) ) -> ch ) $=
      ( wa adantrl adantll ) AEBGCDABCEFHI $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    ad2ant2r $p |- ( ( ( ph /\ th ) /\ ( ps /\ ta ) ) -> ch ) $=
      ( wa adantrr adantlr ) ABEGCDABCEFHI $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       23-Nov-2007.) $)
    ad2ant2lr $p |- ( ( ( th /\ ph ) /\ ( ps /\ ta ) ) -> ch ) $=
      ( wa adantrr adantll ) ABEGCDABCEFHI $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       24-Nov-2007.) $)
    ad2ant2rl $p |- ( ( ( ph /\ th ) /\ ( ta /\ ps ) ) -> ch ) $=
      ( wa adantrl adantlr ) AEBGCDABCEFHI $.
  $}

  $( Simplification of a conjunction.  (Contributed by NM, 18-Mar-2007.) $)
  simpll $p |- ( ( ( ph /\ ps ) /\ ch ) -> ph ) $=
    ( id ad2antrr ) AABCADE $.

  $( Simplification of a conjunction.  (Contributed by NM, 20-Mar-2007.) $)
  simplr $p |- ( ( ( ph /\ ps ) /\ ch ) -> ps ) $=
    ( id ad2antlr ) BBACBDE $.

  $( Simplification of a conjunction.  (Contributed by NM, 21-Mar-2007.) $)
  simprl $p |- ( ( ph /\ ( ps /\ ch ) ) -> ps ) $=
    ( id ad2antrl ) BBACBDE $.

  $( Simplification of a conjunction.  (Contributed by NM, 21-Mar-2007.) $)
  simprr $p |- ( ( ph /\ ( ps /\ ch ) ) -> ch ) $=
    ( id ad2antll ) CCABCDE $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simplll $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ph ) $=
    ( wa simpl ad2antrr ) ABEACDABFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simpllr $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ps ) $=
    ( wa simpr ad2antrr ) ABEBCDABFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simplrl $p |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ps ) $=
    ( wa simpl ad2antlr ) BCEBADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simplrr $p |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ch ) $=
    ( wa simpr ad2antlr ) BCECADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprll $p |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ps ) $=
    ( wa simpl ad2antrl ) BCEBADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprlr $p |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ch ) $=
    ( wa simpr ad2antrl ) BCECADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprrl $p |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> ch ) $=
    ( wa simpl ad2antll ) CDECABCDFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprrr $p |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> th ) $=
    ( wa simpr ad2antll ) CDEDABCDFG $.

  $( Theorem *4.87 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Eric Schmidt, 26-Oct-2006.) $)
  pm4.87 $p |- ( ( ( ( ( ph /\ ps ) -> ch ) <-> ( ph -> ( ps -> ch ) ) ) /\
                ( ( ph -> ( ps -> ch ) ) <-> ( ps -> ( ph -> ch ) ) ) ) /\
                ( ( ps -> ( ph -> ch ) ) <-> ( ( ps /\ ph ) -> ch ) ) ) $=
    ( wa wi wb impexp bi2.04 pm3.2i bicomi ) ABDCEABCEEZFZKBACEEZFZDMBADCEZFLNA
    BCGABCHIOMBACGJI $.

  $( Introduce one conjunct as an antecedent to the other.  "abai" stands for
     "and, biconditional, and, implication".  (Contributed by NM,
     12-Aug-1993.)  (Proof shortened by Wolf Lammen, 7-Dec-2012.) $)
  abai $p |- ( ( ph /\ ps ) <-> ( ph /\ ( ph -> ps ) ) ) $=
    ( wi biimt pm5.32i ) ABABCABDE $.

  $( Swap two conjuncts.  Note that the first digit (1) in the label refers to
     the outer conjunct position, and the next digit (2) to the inner conjunct
     position.  (Contributed by NM, 12-Mar-1995.) $)
  an12 $p |- ( ( ph /\ ( ps /\ ch ) ) <-> ( ps /\ ( ph /\ ch ) ) ) $=
    ( wa ancom anbi1i anass 3bitr3i ) ABDZCDBADZCDABCDDBACDDIJCABEFABCGBACGH $.

  $( A rearrangement of conjuncts.  (Contributed by NM, 12-Mar-1995.)  (Proof
     shortened by Wolf Lammen, 25-Dec-2012.) $)
  an32 $p |- ( ( ( ph /\ ps ) /\ ch ) <-> ( ( ph /\ ch ) /\ ps ) ) $=
    ( wa anass an12 ancom 3bitri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( A rearrangement of conjuncts.  (Contributed by NM, 24-Jun-2012.)  (Proof
     shortened by Wolf Lammen, 31-Dec-2012.) $)
  an13 $p |- ( ( ph /\ ( ps /\ ch ) ) <-> ( ch /\ ( ps /\ ph ) ) ) $=
    ( wa an12 anass ancom 3bitr2i ) ABCDDBACDDBADZCDCIDABCEBACFICGH $.

  $( A rearrangement of conjuncts.  (Contributed by NM, 24-Jun-2012.)  (Proof
     shortened by Wolf Lammen, 31-Dec-2012.) $)
  an31 $p |- ( ( ( ph /\ ps ) /\ ch ) <-> ( ( ch /\ ps ) /\ ph ) ) $=
    ( wa an13 anass 3bitr4i ) ABCDDCBADDABDCDCBDADABCEABCFCBAFG $.

  ${
    an12s.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Swap two conjuncts in antecedent.  The label suffix "s" means that
       ~ an12 is combined with ~ syl (or a variant).  (Contributed by NM,
       13-Mar-1996.) $)
    an12s $p |- ( ( ps /\ ( ph /\ ch ) ) -> th ) $=
      ( wa an12 sylbi ) BACFFABCFFDBACGEH $.

    $( Inference commuting a nested conjunction in antecedent.  (Contributed by
       NM, 24-May-2006.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    ancom2s $p |- ( ( ph /\ ( ch /\ ps ) ) -> th ) $=
      ( wa pm3.22 sylan2 ) CBFABCFDCBGEH $.

    $( Swap two conjuncts in antecedent.  (Contributed by NM, 31-May-2006.) $)
    an13s $p |- ( ( ch /\ ( ps /\ ph ) ) -> th ) $=
      ( exp32 com13 imp32 ) CBADABCDABCDEFGH $.
  $}

  ${
    an32s.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Swap two conjuncts in antecedent.  (Contributed by NM, 13-Mar-1996.) $)
    an32s $p |- ( ( ( ph /\ ch ) /\ ps ) -> th ) $=
      ( wa an32 sylbi ) ACFBFABFCFDACBGEH $.

    $( Inference commuting a nested conjunction in antecedent.  (Contributed by
       NM, 24-May-2006.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    ancom1s $p |- ( ( ( ps /\ ph ) /\ ch ) -> th ) $=
      ( wa pm3.22 sylan ) BAFABFCDBAGEH $.

    $( Swap two conjuncts in antecedent.  (Contributed by NM, 31-May-2006.) $)
    an31s $p |- ( ( ( ch /\ ps ) /\ ph ) -> th ) $=
      ( exp31 com13 imp31 ) CBADABCDABCDEFGH $.
  $}

  ${
    anass1rs.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Commutative-associative law for conjunction in an antecedent.
       (Contributed by Jeff Madsen, 19-Jun-2011.) $)
    anass1rs $p |- ( ( ( ph /\ ch ) /\ ps ) -> th ) $=
      ( anassrs an32s ) ABCDABCDEFG $.
  $}

  $( Absorption into embedded conjunct.  (Contributed by NM, 4-Sep-1995.)
     (Proof shortened by Wolf Lammen, 16-Nov-2013.) $)
  anabs1 $p |- ( ( ( ph /\ ps ) /\ ph ) <-> ( ph /\ ps ) ) $=
    ( wa simpl pm4.71i bicomi ) ABCZGACGAABDEF $.

  $( Absorption into embedded conjunct.  (Contributed by NM, 20-Jul-1996.)
     (Proof shortened by Wolf Lammen, 9-Dec-2012.) $)
  anabs5 $p |- ( ( ph /\ ( ph /\ ps ) ) <-> ( ph /\ ps ) ) $=
    ( wa ibar bicomd pm5.32i ) AABCZBABGABDEF $.

  $( Absorption into embedded conjunct.  (Contributed by NM, 20-Jul-1996.)
     (Proof shortened by Wolf Lammen, 17-Nov-2013.) $)
  anabs7 $p |- ( ( ps /\ ( ph /\ ps ) ) <-> ( ph /\ ps ) ) $=
    ( wa simpr pm4.71ri bicomi ) ABCZBGCGBABDEF $.

  ${
    anabsan.1 $e |- ( ( ( ph /\ ph ) /\ ps ) -> ch ) $.
    $( Absorption of antecedent with conjunction.  (Contributed by NM,
       24-Mar-1996.)  (Revised by NM, 18-Nov-2013.) $)
    anabsan $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa pm4.24 sylanb ) AAAEBCAFDG $.
  $}

  ${
    anabss1.1 $e |- ( ( ( ph /\ ps ) /\ ph ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 31-Dec-2012.) $)
    anabss1 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( an32s anabsan ) ABCABACDEF $.
  $}

  ${
    anabss4.1 $e |- ( ( ( ps /\ ph ) /\ ps ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.) $)
    anabss4 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anabss1 ancoms ) BACBACDEF $.
  $}

  ${
    anabss5.1 $e |- ( ( ph /\ ( ph /\ ps ) ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       10-May-1994.)  (Proof shortened by Wolf Lammen, 1-Jan-2013.) $)
    anabss5 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anassrs anabsan ) ABCAABCDEF $.
  $}

  ${
    anabsi5.1 $e |- ( ph -> ( ( ph /\ ps ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       11-Jun-1995.)  (Proof shortened by Wolf Lammen, 18-Nov-2013.) $)
    anabsi5 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa imp anabss5 ) ABCAABECDFG $.
  $}

  ${
    anabsi6.1 $e |- ( ph -> ( ( ps /\ ph ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       14-Aug-2000.) $)
    anabsi6 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( ancomsd anabsi5 ) ABCABACDEF $.
  $}

  ${
    anabsi7.1 $e |- ( ps -> ( ( ph /\ ps ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 18-Nov-2013.) $)
    anabsi7 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anabsi6 ancoms ) BACBACDEF $.
  $}

  ${
    anabsi8.1 $e |- ( ps -> ( ( ps /\ ph ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       26-Sep-1999.) $)
    anabsi8 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anabsi5 ancoms ) BACBACDEF $.
  $}

  ${
    anabss7.1 $e |- ( ( ps /\ ( ph /\ ps ) ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 19-Nov-2013.) $)
    anabss7 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anassrs anabss4 ) ABCBABCDEF $.
  $}

  ${
    anabsan2.1 $e |- ( ( ph /\ ( ps /\ ps ) ) -> ch ) $.
    $( Absorption of antecedent with conjunction.  (Contributed by NM,
       10-May-2004.)  (Revised by NM, 1-Jan-2013.) $)
    anabsan2 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( an12s anabss7 ) ABCABBCDEF $.
  $}

  ${
    anabss3.1 $e |- ( ( ( ph /\ ps ) /\ ps ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 1-Jan-2013.) $)
    anabss3 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anasss anabsan2 ) ABCABBCDEF $.
  $}

  $( Rearrangement of 4 conjuncts.  (Contributed by NM, 10-Jul-1994.) $)
  an4 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
              ( ( ph /\ ch ) /\ ( ps /\ th ) ) ) $=
    ( wa an12 anbi2i anass 3bitr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHAC
    LHI $.

  $( Rearrangement of 4 conjuncts.  (Contributed by NM, 7-Feb-1996.) $)
  an42 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
                 ( ( ph /\ ch ) /\ ( th /\ ps ) ) ) $=
    ( wa an4 ancom anbi2i bitri ) ABECDEEACEZBDEZEJDBEZEABCDFKLJBDGHI $.

  ${
    an4s.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( Inference rearranging 4 conjuncts in antecedent.  (Contributed by NM,
       10-Aug-1995.) $)
    an4s $p |- ( ( ( ph /\ ch ) /\ ( ps /\ th ) ) -> ta ) $=
      ( wa an4 sylbi ) ACGBDGGABGCDGGEACBDHFI $.
  $}

  ${
    an41r3s.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( Inference rearranging 4 conjuncts in antecedent.  (Contributed by NM,
       10-Aug-1995.) $)
    an42s $p |- ( ( ( ph /\ ch ) /\ ( th /\ ps ) ) -> ta ) $=
      ( wa an4s ancom2s ) ACGBDEABCDEFHI $.
  $}

  $( Distribution of conjunction over conjunction.  (Contributed by NM,
     14-Aug-1995.) $)
  anandi $p |- ( ( ph /\ ( ps /\ ch ) ) <->
               ( ( ph /\ ps ) /\ ( ph /\ ch ) ) ) $=
    ( wa anidm anbi1i an4 bitr3i ) ABCDZDAADZIDABDACDDJAIAEFAABCGH $.

  $( Distribution of conjunction over conjunction.  (Contributed by NM,
     24-Aug-1995.) $)
  anandir $p |- ( ( ( ph /\ ps ) /\ ch ) <->
               ( ( ph /\ ch ) /\ ( ps /\ ch ) ) ) $=
    ( wa anidm anbi2i an4 bitr3i ) ABDZCDICCDZDACDBCDDJCICEFABCCGH $.

  ${
    anandis.1 $e |- ( ( ( ph /\ ps ) /\ ( ph /\ ch ) ) -> ta ) $.
    $( Inference that undistributes conjunction in the antecedent.
       (Contributed by NM, 7-Jun-2004.) $)
    anandis $p |- ( ( ph /\ ( ps /\ ch ) ) -> ta ) $=
      ( wa an4s anabsan ) ABCFDABACDEGH $.
  $}

  ${
    anandirs.1 $e |- ( ( ( ph /\ ch ) /\ ( ps /\ ch ) ) -> ta ) $.
    $( Inference that undistributes conjunction in the antecedent.
       (Contributed by NM, 7-Jun-2004.) $)
    anandirs $p |- ( ( ( ph /\ ps ) /\ ch ) -> ta ) $=
      ( wa an4s anabsan2 ) ABFCDACBCDEGH $.
  $}

  ${
    impbida.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    impbida.2 $e |- ( ( ph /\ ch ) -> ps ) $.
    $( Deduce an equivalence from two implications.  (Contributed by NM,
       17-Feb-2007.) $)
    impbida $p |- ( ph -> ( ps <-> ch ) ) $=
      ( ex impbid ) ABCABCDFACBEFG $.
  $}

  $( Theorem *3.45 (Fact) of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.45 $p |- ( ( ph -> ps ) -> ( ( ph /\ ch ) -> ( ps /\ ch ) ) ) $=
    ( wi id anim1d ) ABDZABCGEF $.

  ${
    im2an9.1 $e |- ( ph -> ( ps -> ch ) ) $.
    im2an9.2 $e |- ( th -> ( ta -> et ) ) $.
    $( Deduction joining nested implications to form implication of
       conjunctions.  (Contributed by NM, 29-Feb-1996.) $)
    im2anan9 $p |- ( ( ph /\ th ) -> ( ( ps /\ ta ) -> ( ch /\ et ) ) ) $=
      ( wa wi adantr adantl anim12d ) ADIBCEFABCJDGKDEFJAHLM $.

    $( Deduction joining nested implications to form implication of
       conjunctions.  (Contributed by NM, 29-Feb-1996.) $)
    im2anan9r $p |- ( ( th /\ ph ) -> ( ( ps /\ ta ) -> ( ch /\ et ) ) ) $=
      ( wa wi im2anan9 ancoms ) ADBEICFIJABCDEFGHKL $.
  $}

  ${
    anim12dan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    anim12dan.2 $e |- ( ( ph /\ th ) -> ta ) $.
    $( Conjoin antecedents and consequents in a deduction.  (Contributed by
       Mario Carneiro, 12-May-2014.) $)
    anim12dan $p |- ( ( ph /\ ( ps /\ th ) ) -> ( ch /\ ta ) ) $=
      ( wa ex anim12d imp ) ABDHCEHABCDEABCFIADEGIJK $.
  $}

  $( Two propositions are equivalent if they are both true.  Theorem *5.1 of
     [WhiteheadRussell] p. 123.  (Contributed by NM, 21-May-1994.) $)
  pm5.1 $p |- ( ( ph /\ ps ) -> ( ph <-> ps ) ) $=
    ( wb pm5.501 biimpa ) ABABCABDE $.

  $( Theorem *3.43 (Comp) of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 27-Nov-2013.) $)
  pm3.43 $p |- ( ( ( ph -> ps ) /\ ( ph -> ch ) ) ->
                ( ph -> ( ps /\ ch ) ) ) $=
    ( wi wa pm3.43i imp ) ABDACDABCEDABCFG $.

  $( Distributive law for implication over conjunction.  Compare Theorem *4.76
     of [WhiteheadRussell] p. 121.  (Contributed by NM, 3-Apr-1994.)  (Proof
     shortened by Wolf Lammen, 27-Nov-2013.) $)
  jcab $p |- ( ( ph -> ( ps /\ ch ) ) <->
                ( ( ph -> ps ) /\ ( ph -> ch ) ) ) $=
    ( wa wi simpl imim2i simpr jca pm3.43 impbii ) ABCDZEZABEZACEZDMNOLBABCFGLC
    ABCHGIABCJK $.

  $( Theorem *4.76 of [WhiteheadRussell] p. 121.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.76 $p |- ( ( ( ph -> ps ) /\ ( ph -> ch ) ) <->
                ( ph -> ( ps /\ ch ) ) ) $=
    ( wa wi jcab bicomi ) ABCDEABEACEDABCFG $.

  $( Theorem *4.38 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.38 $p |- ( ( ( ph <-> ch ) /\ ( ps <-> th ) ) ->
                ( ( ph /\ ps ) <-> ( ch /\ th ) ) ) $=
    ( wb wa simpl simpr anbi12d ) ACEZBDEZFACBDJKGJKHI $.

  ${
    bi2an9.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bi2an9.2 $e |- ( th -> ( ta <-> et ) ) $.
    $( Deduction joining two equivalences to form equivalence of conjunctions.
       (Contributed by NM, 31-Jul-1995.) $)
    bi2anan9 $p |- ( ( ph /\ th ) -> ( ( ps /\ ta ) <-> ( ch /\ et ) ) ) $=
      ( wa anbi1d anbi2d sylan9bb ) ABEICEIDCFIABCEGJDEFCHKL $.

    $( Deduction joining two equivalences to form equivalence of conjunctions.
       (Contributed by NM, 19-Feb-1996.) $)
    bi2anan9r $p |- ( ( th /\ ph ) -> ( ( ps /\ ta ) <-> ( ch /\ et ) ) ) $=
      ( wa wb bi2anan9 ancoms ) ADBEICFIJABCDEFGHKL $.

    $( Deduction joining two biconditionals with different antecedents.
       (Contributed by NM, 12-May-2004.) $)
    bi2bian9 $p |- ( ( ph /\ th ) -> ( ( ps <-> ta ) <-> ( ch <-> et ) ) ) $=
      ( wa wb adantr adantl bibi12d ) ADIBCEFABCJDGKDEFJAHLM $.
  $}

  $( Theorem *5.33 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.33 $p |- ( ( ph /\ ( ps -> ch ) ) <->
                ( ph /\ ( ( ph /\ ps ) -> ch ) ) ) $=
    ( wi wa ibar imbi1d pm5.32i ) ABCDABEZCDABICABFGH $.

  $( Theorem *5.36 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.36 $p |- ( ( ph /\ ( ph <-> ps ) ) <-> ( ps /\ ( ph <-> ps ) ) ) $=
    ( wb id pm5.32ri ) ABCZABFDE $.

  ${
    bianabs.1 $e |- ( ph -> ( ps <-> ( ph /\ ch ) ) ) $.
    $( Absorb a hypothesis into the second member of a biconditional.
       (Contributed by FL, 15-Feb-2007.) $)
    bianabs $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wa ibar bitr4d ) ABACECDACFG $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Logical negation (intuitionistic)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( 'Not' introduction.  Axiom 4 of 10 for intuitionistic logic.  (Contributed
     by Mario Carneiro, 31-Jan-2015.) $)
  ax-in1 $a |- ( ( ph -> -. ph ) -> -. ph ) $.

  $( 'Not' elimination.  Axiom 5 of 10 for intuitionistic logic.  (Contributed
     by Mario Carneiro, 31-Jan-2015.) $)
  ax-in2 $a |- ( -. ph -> ( ph -> ps ) ) $.

  $( Reductio ad absurdum.  Theorem *2.01 of [WhiteheadRussell] p. 100.  This
     is valid intuitionistically (in the terminology of Section 1.2 of [Bauer]
     p. 482 it is a proof of negation not a proof by contradiction); compare
     with ~ pm2.18dc which only holds for some propositions.  (Contributed by
     Mario Carneiro, 12-May-2015.) $)
  pm2.01 $p |- ( ( ph -> -. ph ) -> -. ph ) $=
    ( ax-in1 ) AB $.

  $( From a wff and its negation, anything is true.  Theorem *2.21 of
     [WhiteheadRussell] p. 104.  Also called the Duns Scotus law.  (Contributed
     by Mario Carneiro, 12-May-2015.) $)
  pm2.21 $p |- ( -. ph -> ( ph -> ps ) ) $=
    ( ax-in2 ) ABC $.

  ${
    pm2.01d.1 $e |- ( ph -> ( ps -> -. ps ) ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by NM,
       18-Aug-1993.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm2.01d $p |- ( ph -> -. ps ) $=
      ( wn wi pm2.01 syl ) ABBDZEHCBFG $.
  $}

  ${
    pm2.21d.1 $e |- ( ph -> -. ps ) $.
    $( A contradiction implies anything.  Deduction from ~ pm2.21 .
       (Contributed by NM, 10-Feb-1996.) $)
    pm2.21d $p |- ( ph -> ( ps -> ch ) ) $=
      ( wn wi pm2.21 syl ) ABEBCFDBCGH $.
  $}

  ${
    pm2.21dd.1 $e |- ( ph -> ps ) $.
    pm2.21dd.2 $e |- ( ph -> -. ps ) $.
    $( A contradiction implies anything.  Deduction from ~ pm2.21 .
       (Contributed by Mario Carneiro, 9-Feb-2017.) $)
    pm2.21dd $p |- ( ph -> ch ) $=
      ( pm2.21d mpd ) ABCDABCEFG $.
  $}

  $( Theorem *2.24 of [WhiteheadRussell] p. 104.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.24 $p |- ( ph -> ( -. ph -> ps ) ) $=
    ( wn pm2.21 com12 ) ACABABDE $.

  ${
    pm2.24d.1 $e |- ( ph -> ps ) $.
    $( Deduction version of ~ pm2.24 .  (Contributed by NM, 30-Jan-2006.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm2.24d $p |- ( ph -> ( -. ps -> ch ) ) $=
      ( wn wi pm2.24 syl ) ABBECFDBCGH $.
  $}

  ${
    pm2.24i.1 $e |- ph $.
    $( Inference version of ~ pm2.24 .  (Contributed by NM, 20-Aug-2001.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm2.24i $p |- ( -. ph -> ps ) $=
      ( wn pm2.21 mpi ) ADABCABEF $.
  $}

  ${
    con2d.1 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 19-Aug-1993.)  (Revised
       by NM, 12-Feb-2013.) $)
    con2d $p |- ( ph -> ( ch -> -. ps ) ) $=
      ( wn wi ax-in2 syl6 com23 pm2.01 ) ACBBEZFKABCKABCECKFDCKGHIBJH $.
  $}

  ${
    mt2d.1 $e |- ( ph -> ch ) $.
    mt2d.2 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( Modus tollens deduction.  (Contributed by NM, 4-Jul-1994.) $)
    mt2d $p |- ( ph -> -. ps ) $=
      ( wn con2d mpd ) ACBFDABCEGH $.
  $}

  ${
    nsyl3.1 $e |- ( ph -> -. ps ) $.
    nsyl3.2 $e |- ( ch -> ps ) $.
    $( A negated syllogism inference.  (Contributed by NM, 1-Dec-1995.)
       (Revised by NM, 13-Jun-2013.) $)
    nsyl3 $p |- ( ch -> -. ph ) $=
      ( wn wi a1i mt2d ) CABEABFGCDHI $.
  $}

  ${
    con2i.a $e |- ( ph -> -. ps ) $.
    $( A contraposition inference.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by O'Cat, 28-Nov-2008.)  (Proof shortened by Wolf Lammen,
       13-Jun-2013.) $)
    con2i $p |- ( ps -> -. ph ) $=
      ( id nsyl3 ) ABBCBDE $.
  $}

  ${
    nsyl.1 $e |- ( ph -> -. ps ) $.
    nsyl.2 $e |- ( ch -> ps ) $.
    $( A negated syllogism inference.  (Contributed by NM, 31-Dec-1993.)
       (Proof shortened by Wolf Lammen, 2-Mar-2013.) $)
    nsyl $p |- ( ph -> -. ch ) $=
      ( nsyl3 con2i ) CAABCDEFG $.
  $}

  $( Adding double negation.  Theorem *2.12 of [WhiteheadRussell] p. 101.  This
     one holds intuitionistically, but its converse does not (see
     ~ notnot2dc ).  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 2-Mar-2013.) $)
  notnot1 $p |- ( ph -> -. -. ph ) $=
    ( wn id con2i ) ABZAECD $.

  ${
    con3d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 5-Aug-1993.)  (Revised
       by NM, 31-Jan-2015.) $)
    con3d $p |- ( ph -> ( -. ch -> -. ps ) ) $=
      ( wn notnot1 syl6 con2d ) ABCEZABCIEDCFGH $.
  $}

  ${
    con3i.a $e |- ( ph -> ps ) $.
    $( A contraposition inference.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Wolf Lammen, 20-Jun-2013.) $)
    con3i $p |- ( -. ps -> -. ph ) $=
      ( wn id nsyl ) BDZBAGECF $.
  $}

  ${
    con3rr3.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Rotate through consequent right.  (Contributed by Wolf Lammen,
       3-Nov-2013.) $)
    con3rr3 $p |- ( -. ch -> ( ph -> -. ps ) ) $=
      ( wn con3d com12 ) ACEBEABCDFG $.
  $}

  ${
    con3and.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Variant of ~ con3d with importation.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    con3and $p |- ( ( ph /\ -. ch ) -> -. ps ) $=
      ( wn con3d imp ) ACEBEABCDFG $.
  $}

  ${
    pm2.01da.1 $e |- ( ( ph /\ ps ) -> -. ps ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by Mario
       Carneiro, 9-Feb-2017.) $)
    pm2.01da $p |- ( ph -> -. ps ) $=
      ( wn ex pm2.01d ) ABABBDCEF $.
  $}

  $( In classical logic, this is just a restatement of ~ pm3.2 .  In
     intuitionistic logic, it still holds, but is weaker than pm3.2.
     (Contributed by Mario Carneiro, 12-May-2015.) $)
  pm3.2im $p |- ( ph -> ( ps -> -. ( ph -> -. ps ) ) ) $=
    ( wn wi pm2.27 con2d ) AABCZDBAGEF $.

  ${
    expi.1 $e |- ( -. ( ph -> -. ps ) -> ch ) $.
    $( An exportation inference.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by O'Cat, 28-Nov-2008.) $)
    expi $p |- ( ph -> ( ps -> ch ) ) $=
      ( wn wi pm3.2im syl6 ) ABABEFECABGDH $.
  $}

  ${
    pm2.65i.1 $e |- ( ph -> ps ) $.
    pm2.65i.2 $e |- ( ph -> -. ps ) $.
    $( Inference rule for proof by contradiction.  (Contributed by NM,
       18-May-1994.)  (Proof shortened by Wolf Lammen, 11-Sep-2013.) $)
    pm2.65i $p |- -. ph $=
      ( wn wi nsyl3 pm2.01 ax-mp ) AAEZFJABADCGAHI $.
  $}

  ${
    mt2.1 $e |- ps $.
    mt2.2 $e |- ( ph -> -. ps ) $.
    $( A rule similar to modus tollens.  (Contributed by NM, 19-Aug-1993.)
       (Proof shortened by Wolf Lammen, 10-Sep-2013.) $)
    mt2 $p |- -. ph $=
      ( a1i pm2.65i ) ABBACEDF $.
  $}

  $( Theorem used to justify definition of intuitionistic biconditional
     ~ df-bi .  (Contributed by NM, 24-Nov-2017.) $)
  biijust $p  |- ( ( ( ( ph -> ps ) /\ ( ps -> ph ) )
        -> ( ( ph -> ps ) /\ ( ps -> ph ) ) )
    /\ ( ( ( ph -> ps ) /\ ( ps -> ph ) )
           -> ( ( ph -> ps ) /\ ( ps -> ph ) ) ) ) $=
    ( wi wa id pm3.2i ) ABCBACDZGCZHGEZIF $.

  $( Contraposition.  Theorem *2.16 of [WhiteheadRussell] p. 103.  (Contributed
     by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 13-Feb-2013.) $)
  con3 $p |- ( ( ph -> ps ) -> ( -. ps -> -. ph ) ) $=
    ( wi id con3d ) ABCZABFDE $.

  $( Contraposition.  Theorem *2.03 of [WhiteheadRussell] p. 100.  (Contributed
     by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 12-Feb-2013.) $)
  con2 $p |- ( ( ph -> -. ps ) -> ( ps -> -. ph ) ) $=
    ( wn wi id con2d ) ABCDZABGEF $.

  ${
    mt2i.1 $e |- ch $.
    mt2i.2 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( Modus tollens inference.  (Contributed by NM, 26-Mar-1995.)  (Proof
       shortened by Wolf Lammen, 15-Sep-2012.) $)
    mt2i $p |- ( ph -> -. ps ) $=
      ( a1i mt2d ) ABCCADFEG $.
  $}

  ${
    negbi.1 $e |- ph $.
    $( Infer double negation.  (Contributed by NM, 27-Feb-2008.) $)
    notnoti $p |- -. -. ph $=
      ( wn notnot1 ax-mp ) AACCBADE $.
  $}

  ${
    pm2.21i.1 $e |- -. ph $.
    $( A contradiction implies anything.  Inference from ~ pm2.21 .
       (Contributed by NM, 16-Sep-1993.)  (Revised by Mario Carneiro,
       31-Jan-2015.) $)
    pm2.21i $p |- ( ph -> ps ) $=
      ( wn wi pm2.21 ax-mp ) ADABECABFG $.
  $}

  ${
    pm2.24ii.1 $e |- ph $.
    pm2.24ii.2 $e |- -. ph $.
    $( A contradiction implies anything.  Inference from ~ pm2.24 .
       (Contributed by NM, 27-Feb-2008.) $)
    pm2.24ii $p |- ps $=
      ( pm2.21i ax-mp ) ABCABDEF $.
  $}

  ${
    nsyld.1 $e |- ( ph -> ( ps -> -. ch ) ) $.
    nsyld.2 $e |- ( ph -> ( ta -> ch ) ) $.
    $( A negated syllogism deduction.  (Contributed by NM, 9-Apr-2005.) $)
    nsyld $p |- ( ph -> ( ps -> -. ta ) ) $=
      ( wn con3d syld ) ABCGDGEADCFHI $.
  $}

  ${
    nsyli.1 $e |- ( ph -> ( ps -> ch ) ) $.
    nsyli.2 $e |- ( th -> -. ch ) $.
    $( A negated syllogism inference.  (Contributed by NM, 3-May-1994.) $)
    nsyli $p |- ( ph -> ( th -> -. ps ) ) $=
      ( wn con3d syl5 ) DCGABGFABCEHI $.
  $}

  $( Theorem 8 of [Margaris] p. 60.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Josh Purinton, 29-Dec-2000.) $)
  mth8 $p |- ( ph -> ( -. ps -> -. ( ph -> ps ) ) ) $=
    ( wi pm2.27 con3d ) AABCBABDE $.

  ${
    jc.1 $e |- ( ph -> ps ) $.
    jc.2 $e |- ( ph -> ch ) $.
    $( Inference joining the consequents of two premises.  (Contributed by NM,
       5-Aug-1993.) $)
    jc $p |- ( ph -> -. ( ps -> -. ch ) ) $=
      ( wn wi pm3.2im sylc ) ABCBCFGFDEBCHI $.
  $}

  $( Theorem *2.51 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.51 $p |- ( -. ( ph -> ps ) -> ( ph -> -. ps ) ) $=
    ( wi wn ax-1 con3i a1d ) ABCZDBDABHBAEFG $.

  $( Theorem *2.52 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm2.52 $p |- ( -. ( ph -> ps ) -> ( -. ph -> -. ps ) ) $=
    ( wn wi pm2.21 pm2.24d com12 ) ACZABDZCBCZHIJABEFG $.

  $( Exportation theorem expressed with primitive connectives.  (Contributed by
     NM, 5-Aug-1993.) $)
  expt $p |- ( ( -. ( ph -> -. ps ) -> ch ) -> ( ph -> ( ps -> ch ) ) ) $=
    ( wn wi pm3.2im imim1d com12 ) AABDEDZCEBCEABICABFGH $.

  $( Elimination of a nested antecedent.  (Contributed by Wolf Lammen,
     10-May-2013.) $)
  jarl $p |- ( ( ( ph -> ps ) -> ch ) -> ( -. ph -> ch ) ) $=
    ( wn wi pm2.21 imim1i ) ADABECABFG $.

  $( Theorem *2.65 of [WhiteheadRussell] p. 107.  Proof by contradiction.
     Proofs, such as this one, which assume a proposition, here ` ph ` , derive
     a contradiction, and therefore conclude ` -. ph ` , are valid
     intuitionistically (and can be called "proof of negation", for example by
     Section 1.2 of [Bauer] p. 482).  By contrast, proofs which assume
     ` -. ph ` , derive a contradiction, and conclude ` ph ` , such as
     ~ condandc , are only valid for decidable propositions.  (Contributed by
     NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 8-Mar-2013.) $)
  pm2.65 $p |- ( ( ph -> ps ) -> ( ( ph -> -. ps ) -> -. ph ) ) $=
    ( wi wn pm2.27 con2d a2i ) ABCAABDZCZABIDAIBAHEFGF $.

  ${
    pm2.65d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    pm2.65d.2 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( Deduction rule for proof by contradiction.  (Contributed by NM,
       26-Jun-1994.)  (Proof shortened by Wolf Lammen, 26-May-2013.) $)
    pm2.65d $p |- ( ph -> -. ps ) $=
      ( nsyld pm2.01d ) ABABCBEDFG $.
  $}

  ${
    pm2.65da.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    pm2.65da.2 $e |- ( ( ph /\ ps ) -> -. ch ) $.
    $( Deduction rule for proof by contradiction.  (Contributed by NM,
       12-Jun-2014.) $)
    pm2.65da $p |- ( ph -> -. ps ) $=
      ( ex wn pm2.65d ) ABCABCDFABCGEFH $.
  $}

  ${
    mto.1 $e |- -. ps $.
    mto.2 $e |- ( ph -> ps ) $.
    $( The rule of modus tollens.  (Contributed by NM, 19-Aug-1993.)  (Proof
       shortened by Wolf Lammen, 11-Sep-2013.) $)
    mto $p |- -. ph $=
      ( wn a1i pm2.65i ) ABDBEACFG $.
  $}

  ${
    mtod.1 $e |- ( ph -> -. ch ) $.
    mtod.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Modus tollens deduction.  (Contributed by NM, 3-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 11-Sep-2013.) $)
    mtod $p |- ( ph -> -. ps ) $=
      ( wn a1d pm2.65d ) ABCEACFBDGH $.
  $}

  ${
    mtoi.1 $e |- -. ch $.
    mtoi.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Modus tollens inference.  (Contributed by NM, 5-Jul-1994.)  (Proof
       shortened by Wolf Lammen, 15-Sep-2012.) $)
    mtoi $p |- ( ph -> -. ps ) $=
      ( wn a1i mtod ) ABCCFADGEH $.
  $}

  ${
    mtand.1 $e |- ( ph -> -. ch ) $.
    mtand.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( A modus tollens deduction.  (Contributed by Jeff Hankins,
       19-Aug-2009.) $)
    mtand $p |- ( ph -> -. ps ) $=
      ( ex mtod ) ABCDABCEFG $.
  $}

  ${
    notbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction negating both sides of a logical equivalence.  (Contributed by
       NM, 21-May-1994.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    notbid $p |- ( ph -> ( -. ps <-> -. ch ) ) $=
      ( wn biimprd con3d biimpd impbid ) ABECEACBABCDFGABCABCDHGI $.
  $}

  $( Contraposition.  Bidirectional version of ~ con2 .  (Contributed by NM,
     5-Aug-1993.) $)
  con2b $p |- ( ( ph -> -. ps ) <-> ( ps -> -. ph ) ) $=
    ( wn wi con2 impbii ) ABCDBACDABEBAEF $.

  ${
    notbii.1 $e |- ( ph <-> ps ) $.
    $( Negate both sides of a logical equivalence.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    notbii $p |- ( -. ph <-> -. ps ) $=
      ( wb wn id notbid ax-mp ) ABDZAEBEDCIABIFGH $.
  $}

  ${
    mtbi.1 $e |- -. ph $.
    mtbi.2 $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus tollens.
       (Contributed by NM, 15-Nov-1994.)  (Proof shortened by Wolf Lammen,
       25-Oct-2012.) $)
    mtbi $p |- -. ps $=
      ( biimpri mto ) BACABDEF $.
  $}

  ${
    mtbir.1 $e |- -. ps $.
    mtbir.2 $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus tollens.
       (Contributed by NM, 15-Nov-1994.)  (Proof shortened by Wolf Lammen,
       14-Oct-2012.) $)
    mtbir $p |- -. ph $=
      ( bicomi mtbi ) BACABDEF $.
  $}

  ${
    mtbid.min $e |- ( ph -> -. ps ) $.
    mtbid.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, similar to modus tollens.
       (Contributed by NM, 26-Nov-1995.) $)
    mtbid $p |- ( ph -> -. ch ) $=
      ( biimprd mtod ) ACBDABCEFG $.
  $}

  ${
    mtbird.min $e |- ( ph -> -. ch ) $.
    mtbird.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, similar to modus tollens.
       (Contributed by NM, 10-May-1994.) $)
    mtbird $p |- ( ph -> -. ps ) $=
      ( biimpd mtod ) ABCDABCEFG $.
  $}

  ${
    mtbii.min $e |- -. ps $.
    mtbii.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a biconditional, similar to modus tollens.
       (Contributed by NM, 27-Nov-1995.) $)
    mtbii $p |- ( ph -> -. ch ) $=
      ( biimprd mtoi ) ACBDABCEFG $.
  $}

  ${
    mtbiri.min $e |- -. ch $.
    mtbiri.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a biconditional, similar to modus tollens.
       (Contributed by NM, 24-Aug-1995.) $)
    mtbiri $p |- ( ph -> -. ps ) $=
      ( biimpd mtoi ) ABCDABCEFG $.
  $}

  ${
    sylnib.1 $e |- ( ph -> -. ps ) $.
    sylnib.2 $e |- ( ps <-> ch ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       (Contributed by Wolf Lammen, 16-Dec-2013.) $)
    sylnib $p |- ( ph -> -. ch ) $=
      ( wb a1i mtbid ) ABCDBCFAEGH $.
  $}

  ${
    sylnibr.1 $e |- ( ph -> -. ps ) $.
    sylnibr.2 $e |- ( ch <-> ps ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       Useful for substituting an consequent with a definition.  (Contributed
       by Wolf Lammen, 16-Dec-2013.) $)
    sylnibr $p |- ( ph -> -. ch ) $=
      ( bicomi sylnib ) ABCDCBEFG $.
  $}

  ${
    sylnbi.1 $e |- ( ph <-> ps ) $.
    sylnbi.2 $e |- ( -. ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       Useful for substituting an antecedent with a definition.  (Contributed
       by Wolf Lammen, 16-Dec-2013.) $)
    sylnbi $p |- ( -. ph -> ch ) $=
      ( wn notbii sylbi ) AFBFCABDGEH $.
  $}

  ${
    sylnbir.1 $e |- ( ps <-> ph ) $.
    sylnbir.2 $e |- ( -. ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       (Contributed by Wolf Lammen, 16-Dec-2013.) $)
    sylnbir $p |- ( -. ph -> ch ) $=
      ( bicomi sylnbi ) ABCBADFEG $.
  $}

  ${
    xchnxbi.1 $e |- ( -. ph <-> ps ) $.
    xchnxbi.2 $e |- ( ph <-> ch ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchnxbi $p |- ( -. ch <-> ps ) $=
      ( wn notbii bitr3i ) CFAFBACEGDH $.
  $}

  ${
    xchnxbir.1 $e |- ( -. ph <-> ps ) $.
    xchnxbir.2 $e |- ( ch <-> ph ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchnxbir $p |- ( -. ch <-> ps ) $=
      ( bicomi xchnxbi ) ABCDCAEFG $.
  $}

  ${
    xchbinx.1 $e |- ( ph <-> -. ps ) $.
    xchbinx.2 $e |- ( ps <-> ch ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchbinx $p |- ( ph <-> -. ch ) $=
      ( wn notbii bitri ) ABFCFDBCEGH $.
  $}

  ${
    xchbinxr.1 $e |- ( ph <-> -. ps ) $.
    xchbinxr.2 $e |- ( ch <-> ps ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchbinxr $p |- ( ph <-> -. ch ) $=
      ( bicomi xchbinx ) ABCDCBEFG $.
  $}

  ${
    mt2bi.1 $e |- ph $.
    $( A false consequent falsifies an antecedent.  (Contributed by NM,
       19-Aug-1993.)  (Proof shortened by Wolf Lammen, 12-Nov-2012.) $)
    mt2bi $p |- ( -. ps <-> ( ps -> -. ph ) ) $=
      ( wn wi a1bi con2b bitri ) BDZAIEBADEAICFABGH $.
  $}

  $( Modus-tollens-like theorem.  (Contributed by NM, 7-Apr-2001.)  (Revised by
     Mario Carneiro, 31-Jan-2015.) $)
  mtt $p |- ( -. ph -> ( -. ps <-> ( ps -> ph ) ) ) $=
    ( wn wi pm2.21 con3 com12 impbid2 ) ACZBCZBADZBAEKIJBAFGH $.

  $( Two propositions are equivalent if they are both false.  Theorem *5.21 of
     [WhiteheadRussell] p. 124.  (Contributed by NM, 21-May-1994.)  (Revised by
     Mario Carneiro, 31-Jan-2015.) $)
  pm5.21 $p |- ( ( -. ph /\ -. ps ) -> ( ph <-> ps ) ) $=
    ( wn wa simpl pm2.21d simpr impbid ) ACZBCZDZABKABIJEFKBAIJGFH $.

  $( Two propositions are equivalent if they are both false.  Closed form of
     ~ 2false .  Equivalent to a ~ bi2 -like version of the xor-connective.
     (Contributed by Wolf Lammen, 13-May-2013.)  (Revised by Mario Carneiro,
     31-Jan-2015.) $)
  pm5.21im $p |- ( -. ph -> ( -. ps -> ( ph <-> ps ) ) ) $=
    ( wn wb pm5.21 ex ) ACBCABDABEF $.

  $( The negation of a wff is equivalent to the wff's equivalence to
     falsehood.  (Contributed by Juha Arpiainen, 19-Jan-2006.)  (Revised by
     Mario Carneiro, 31-Jan-2015.) $)
  nbn2 $p |- ( -. ph -> ( -. ps <-> ( ph <-> ps ) ) ) $=
    ( wn wb pm5.21im wi bi2 mtt syl5ibr impbid ) ACZBCZABDZABEMLKBAFABGABHIJ $.

  $( Transfer negation via an equivalence.  (Contributed by NM, 3-Oct-2007.)
     (Proof shortened by Wolf Lammen, 28-Jan-2013.) $)
  bibif $p |- ( -. ps -> ( ( ph <-> ps ) <-> -. ph ) ) $=
    ( wn wb nbn2 bicom syl6rbb ) BCACBADABDBAEBAFG $.

  ${
    nbn.1 $e |- -. ph $.
    $( The negation of a wff is equivalent to the wff's equivalence to
       falsehood.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
       Lammen, 3-Oct-2013.) $)
    nbn $p |- ( -. ps <-> ( ps <-> ph ) ) $=
      ( wb wn bibif ax-mp bicomi ) BADZBEZAEIJDCBAFGH $.
  $}

  ${
    nbn3.1 $e |- ph $.
    $( Transfer falsehood via equivalence.  (Contributed by NM,
       11-Sep-2006.) $)
    nbn3 $p |- ( -. ps <-> ( ps <-> -. ph ) ) $=
      ( wn notnoti nbn ) ADBACEF $.
  $}

  ${
    2false.1 $e |- -. ph $.
    2false.2 $e |- -. ps $.
    $( Two falsehoods are equivalent.  (Contributed by NM, 4-Apr-2005.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    2false $p |- ( ph <-> ps ) $=
      ( pm2.21i impbii ) ABABCEBADEF $.
  $}

  ${
    2falsed.1 $e |- ( ph -> -. ps ) $.
    2falsed.2 $e |- ( ph -> -. ch ) $.
    $( Two falsehoods are equivalent (deduction rule).  (Contributed by NM,
       11-Oct-2013.) $)
    2falsed $p |- ( ph -> ( ps <-> ch ) ) $=
      ( pm2.21d impbid ) ABCABCDFACBEFG $.
  $}

  ${
    pm5.21ni.1 $e |- ( ph -> ps ) $.
    pm5.21ni.2 $e |- ( ch -> ps ) $.
    $( Two propositions implying a false one are equivalent.  (Contributed by
       NM, 16-Feb-1996.)  (Proof shortened by Wolf Lammen, 19-May-2013.) $)
    pm5.21ni $p |- ( -. ps -> ( ph <-> ch ) ) $=
      ( wn con3i 2falsed ) BFACABDGCBEGH $.

    pm5.21nii.3 $e |- ( ps -> ( ph <-> ch ) ) $.
    $( Eliminate an antecedent implied by each side of a biconditional.
       (Contributed by NM, 21-May-1999.)  (Revised by Mario Carneiro,
       31-Jan-2015.) $)
    pm5.21nii $p |- ( ph <-> ch ) $=
      ( wb syl ibi ibir impbii ) ACACABACGZDFHICACBLEFHJK $.
  $}

  ${
    pm5.21ndd.1 $e |- ( ph -> ( ch -> ps ) ) $.
    pm5.21ndd.2 $e |- ( ph -> ( th -> ps ) ) $.
    pm5.21ndd.3 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Eliminate an antecedent implied by each side of a biconditional,
       deduction version.  (Contributed by Paul Chapman, 21-Nov-2012.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm5.21ndd $p |- ( ph -> ( ch <-> th ) ) $=
      ( wb syld ibd bicom1 syl6 impbid ) ACDACDACBCDHZEGIJADCADNDCHADBNFGICDKLJ
      M $.
  $}

  $( Theorem *5.19 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm5.19 $p |- -. ( ph <-> -. ph ) $=
    ( wn wb bi1 pm2.01d id mpbird pm2.65i ) AABZCZAJAIJAAIDEZJFGKH $.

  $( Theorem *4.8 of [WhiteheadRussell] p. 122.  This one holds for all
     propositions, but compare with ~ pm4.81dc which requires a decidability
     condition.  (Contributed by NM, 3-Jan-2005.) $)
  pm4.8 $p |- ( ( ph -> -. ph ) <-> -. ph ) $=
    ( wn wi pm2.01 ax-1 impbii ) AABZCGADGAEF $.

  $( Express implication in terms of conjunction.  (Contributed by NM,
     9-Apr-1994.)  (Revised by Mario Carneiro, 1-Feb-2015.) $)
  imnan $p |- ( ( ph -> -. ps ) <-> -. ( ph /\ ps ) ) $=
    ( wn wi wa pm3.2im imp con2i pm3.2 con3rr3 impbii ) ABCDZABEZCMLABLCABFGHAB
    MABIJK $.

  ${
    imnani.1 $e |- -. ( ph /\ ps ) $.
    $( Express implication in terms of conjunction.  (Contributed by Mario
       Carneiro, 28-Sep-2015.) $)
    imnani $p |- ( ph -> -. ps ) $=
      ( wn wi wa imnan mpbir ) ABDEABFDCABGH $.
  $}

  $( Theorem to move a conjunct in and out of a negation.  (Contributed by NM,
     9-Nov-2003.) $)
  nan $p |- ( ( ph -> -. ( ps /\ ch ) ) <-> ( ( ph /\ ps ) -> -. ch ) ) $=
    ( wa wn wi impexp imnan imbi2i bitr2i ) ABDCEZFABKFZFABCDEZFABKGLMABCHIJ $.

  $( Law of noncontradiction.  Theorem *3.24 of [WhiteheadRussell] p. 111 (who
     call it the "law of contradiction").  (Contributed by NM, 16-Sep-1993.)
     (Revised by Mario Carneiro, 2-Feb-2015.) $)
  pm3.24 $p |- -. ( ph /\ -. ph ) $=
    ( wn wi wa notnot1 imnan mpbi ) AABZBCAHDBAEAHFG $.

  $( Triple negation.  (Contributed by Jim Kingdon, 28-Jul-2018.) $)
  notnotnot $p |- ( -. -. -. ph <-> -. ph ) $=
    ( wn notnot1 con3i impbii ) ABZBZBFAGACDFCE $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Logical disjunction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the connective for disjunction ('or'). $)
  $c \/ $. $( Vee (read:  'or') $)

  $( Extend wff definition to include disjunction ('or'). $)
  wo $a wff ( ph \/ ps ) $.

  $( Definition of 'or'.  Axiom 6 of 10 for intuitionistic logic.  (Contributed
     by Mario Carneiro, 31-Jan-2015.) $)
  ax-io $a |- ( ( ( ph \/ ch ) -> ps ) <->
    ( ( ph -> ps ) /\ ( ch -> ps ) ) ) $.

  $( Disjunction of antecedents.  Compare Theorem *4.77 of [WhiteheadRussell]
     p. 121.  (Contributed by NM, 30-May-1994.)  (Revised by Mario Carneiro,
     31-Jan-2015.) $)
  jaob $p |- ( ( ( ph \/ ch ) -> ps ) <-> ( ( ph -> ps ) /\ ( ch -> ps ) ) ) $=
    ( ax-io ) ABCD $.

  $( Introduction of a disjunct.  Axiom *1.3 of [WhiteheadRussell] p. 96.
     (Contributed by NM, 30-Aug-1993.)  (Revised by NM, 31-Jan-2015.) $)
  olc $p |- ( ph -> ( ps \/ ph ) ) $=
    ( wo wi wa id jaob mpbi simpri ) BBACZDZAJDZJJDKLEJFBJAGHI $.

  $( Introduction of a disjunct.  Theorem *2.2 of [WhiteheadRussell] p. 104.
     (Contributed by NM, 30-Aug-1993.)  (Revised by NM, 31-Jan-2015.) $)
  orc $p |- ( ph -> ( ph \/ ps ) ) $=
    ( wo wi wa id jaob mpbi simpli ) AABCZDZBJDZJJDKLEJFAJBGHI $.

  $( Slight generalization of Theorem *2.67 of [WhiteheadRussell] p. 107.
     (Contributed by NM, 3-Jan-2005.)  (Revised by NM, 9-Dec-2012.) $)
  pm2.67-2 $p |- ( ( ( ph \/ ch ) -> ps ) -> ( ph -> ps ) ) $=
    ( wo orc imim1i ) AACDBACEF $.

  $( Theorem *3.44 of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
  pm3.44 $p |- ( ( ( ps -> ph ) /\ ( ch -> ph ) ) ->
                ( ( ps \/ ch ) -> ph ) ) $=
    ( wo wi wa jaob biimpri ) BCDAEBAECAEFBACGH $.

  ${
    jaoi.1 $e |- ( ph -> ps ) $.
    jaoi.2 $e |- ( ch -> ps ) $.
    $( Inference disjoining the antecedents of two implications.  (Contributed
       by NM, 5-Apr-1994.)  (Revised by NM, 31-Jan-2015.) $)
    jaoi $p |- ( ( ph \/ ch ) -> ps ) $=
      ( wi wo pm3.44 mp2an ) ABFCBFACGBFDEBACHI $.
  $}

  ${
    jaod.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jaod.2 $e |- ( ph -> ( th -> ch ) ) $.
    $( Deduction disjoining the antecedents of two implications.  (Contributed
       by NM, 18-Aug-1994.)  (Revised by NM, 4-Apr-2013.) $)
    jaod $p |- ( ph -> ( ( ps \/ th ) -> ch ) ) $=
      ( wo wi com12 jaoi ) BDGACBACHDABCEIADCFIJI $.

    jaod.3 $e |- ( ph -> ( ps \/ th ) ) $.
    $( Eliminate a disjunction in a deduction.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    mpjaod $p |- ( ph -> ch ) $=
      ( wo jaod mpd ) ABDHCGABCDEFIJ $.
  $}

  ${
    jaao.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jaao.2 $e |- ( th -> ( ta -> ch ) ) $.
    $( Inference conjoining and disjoining the antecedents of two
       implications.  (Contributed by NM, 30-Sep-1999.) $)
    jaao $p |- ( ( ph /\ th ) -> ( ( ps \/ ta ) -> ch ) ) $=
      ( wa wi adantr adantl jaod ) ADHBCEABCIDFJDECIAGKL $.

    $( Inference disjoining and conjoining the antecedents of two
       implications.  (Contributed by Stefan Allan, 1-Nov-2008.) $)
    jaoa $p |- ( ( ph \/ th ) -> ( ( ps /\ ta ) -> ch ) ) $=
      ( wa wi adantrd adantld jaoi ) ABEHCIDABCEFJDECBGKL $.
  $}

  $( Theorem *2.53 of [WhiteheadRussell] p. 107.  This holds
     intuitionistically, although its converse does not (see ~ pm2.54dc ).
     (Contributed by NM, 3-Jan-2005.)  (Revised by NM, 31-Jan-2015.) $)
  pm2.53 $p |- ( ( ph \/ ps ) -> ( -. ph -> ps ) ) $=
    ( wn wi pm2.24 ax-1 jaoi ) AACZBDBABEBHFG $.

  ${
    ori.1 $e |- ( ph \/ ps ) $.
    $( Infer implication from disjunction.  (Contributed by NM, 11-Jun-1994.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    ori $p |- ( -. ph -> ps ) $=
      ( wo wn wi pm2.53 ax-mp ) ABDAEBFCABGH $.
  $}

  ${
    ord.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Deduce implication from disjunction.  (Contributed by NM, 18-May-1994.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    ord $p |- ( ph -> ( -. ps -> ch ) ) $=
      ( wo wn wi pm2.53 syl ) ABCEBFCGDBCHI $.
  $}

  $( Elimination of disjunction by denial of a disjunct.  Theorem *2.55 of
     [WhiteheadRussell] p. 107.  (Contributed by NM, 12-Aug-1994.)  (Proof
     shortened by Wolf Lammen, 21-Jul-2012.) $)
  orel1 $p |- ( -. ph -> ( ( ph \/ ps ) -> ps ) ) $=
    ( wo wn pm2.53 com12 ) ABCADBABEF $.

  $( Elimination of disjunction by denial of a disjunct.  Theorem *2.56 of
     [WhiteheadRussell] p. 107.  (Contributed by NM, 12-Aug-1994.)  (Proof
     shortened by Wolf Lammen, 5-Apr-2013.) $)
  orel2 $p |- ( -. ph -> ( ( ps \/ ph ) -> ps ) ) $=
    ( wn idd pm2.21 jaod ) ACZBBAGBDABEF $.

  $( Axiom *1.4 of [WhiteheadRussell] p. 96.  (Contributed by NM, 3-Jan-2005.)
     (Revised by NM, 15-Nov-2012.) $)
  pm1.4 $p |- ( ( ph \/ ps ) -> ( ps \/ ph ) ) $=
    ( wo olc orc jaoi ) ABACBABDBAEF $.

  $( Commutative law for disjunction.  Theorem *4.31 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 15-Nov-2012.) $)
  orcom $p |- ( ( ph \/ ps ) <-> ( ps \/ ph ) ) $=
    ( wo pm1.4 impbii ) ABCBACABDBADE $.

  ${
    orcomd.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Commutation of disjuncts in consequent.  (Contributed by NM,
       2-Dec-2010.) $)
    orcomd $p |- ( ph -> ( ch \/ ps ) ) $=
      ( wo orcom sylib ) ABCECBEDBCFG $.
  $}

  ${
    orcoms.1 $e |- ( ( ph \/ ps ) -> ch ) $.
    $( Commutation of disjuncts in antecedent.  (Contributed by NM,
       2-Dec-2012.) $)
    orcoms $p |- ( ( ps \/ ph ) -> ch ) $=
      ( wo pm1.4 syl ) BAEABECBAFDG $.
  $}

  ${
    orci.1 $e |- ph $.
    $( Deduction introducing a disjunct.  (Contributed by NM, 19-Jan-2008.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    orci $p |- ( ph \/ ps ) $=
      ( wo orc ax-mp ) AABDCABEF $.

    $( Deduction introducing a disjunct.  (Contributed by NM, 19-Jan-2008.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    olci $p |- ( ps \/ ph ) $=
      ( wo olc ax-mp ) ABADCABEF $.
  $}

  ${
    orcd.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing a disjunct.  (Contributed by NM, 20-Sep-2007.) $)
    orcd $p |- ( ph -> ( ps \/ ch ) ) $=
      ( wo orc syl ) ABBCEDBCFG $.

    $( Deduction introducing a disjunct.  (Contributed by NM, 11-Apr-2008.)
       (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
    olcd $p |- ( ph -> ( ch \/ ps ) ) $=
      ( orcd orcomd ) ABCABCDEF $.
  $}

  ${
    orcs.1 $e |- ( ( ph \/ ps ) -> ch ) $.
    $( Deduction eliminating disjunct. _Notational convention_:  We sometimes
       suffix with "s" the label of an inference that manipulates an
       antecedent, leaving the consequent unchanged.  The "s" means that the
       inference eliminates the need for a syllogism ( ~ syl ) -type inference
       in a proof.  (Contributed by NM, 21-Jun-1994.) $)
    orcs $p |- ( ph -> ch ) $=
      ( wo orc syl ) AABECABFDG $.
  $}

  ${
    olcs.1 $e |- ( ( ph \/ ps ) -> ch ) $.
    $( Deduction eliminating disjunct.  (Contributed by NM, 21-Jun-1994.)
       (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
    olcs $p |- ( ps -> ch ) $=
      ( orcoms orcs ) BACABCDEF $.
  $}

  $( Theorem *2.07 of [WhiteheadRussell] p. 101.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.07 $p |- ( ph -> ( ph \/ ph ) ) $=
    ( olc ) AAB $.

  $( Theorem *2.45 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.45 $p |- ( -. ( ph \/ ps ) -> -. ph ) $=
    ( wo orc con3i ) AABCABDE $.

  $( Theorem *2.46 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.46 $p |- ( -. ( ph \/ ps ) -> -. ps ) $=
    ( wo olc con3i ) BABCBADE $.

  $( Theorem *2.47 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.47 $p |- ( -. ( ph \/ ps ) -> ( -. ph \/ ps ) ) $=
    ( wo wn pm2.45 orcd ) ABCDADBABEF $.

  $( Theorem *2.48 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.48 $p |- ( -. ( ph \/ ps ) -> ( ph \/ -. ps ) ) $=
    ( wo wn pm2.46 olcd ) ABCDBDAABEF $.

  $( Theorem *2.49 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.49 $p |- ( -. ( ph \/ ps ) -> ( -. ph \/ -. ps ) ) $=
    ( wo wn pm2.46 olcd ) ABCDBDADABEF $.

  $( Theorem *2.67 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 9-Dec-2012.) $)
  pm2.67 $p |- ( ( ( ph \/ ps ) -> ps ) -> ( ph -> ps ) ) $=
    ( pm2.67-2 ) ABBC $.

  $( A wff is equivalent to its disjunction with falsehood.  Theorem *4.74 of
     [WhiteheadRussell] p. 121.  (Contributed by NM, 23-Mar-1995.)  (Proof
     shortened by Wolf Lammen, 18-Nov-2012.) $)
  biorf $p |- ( -. ph -> ( ps <-> ( ph \/ ps ) ) ) $=
    ( wn wo olc orel1 impbid2 ) ACBABDBAEABFG $.

  $( A wff is equivalent to its negated disjunction with falsehood.
     (Contributed by NM, 9-Jul-2012.) $)
  biortn $p |- ( ph -> ( ps <-> ( -. ph \/ ps ) ) ) $=
    ( wn wo wb notnot1 biorf syl ) AACZCBIBDEAFIBGH $.

  ${
    biorfi.1 $e |- -. ph $.
    $( A wff is equivalent to its disjunction with falsehood.  (Contributed by
       NM, 23-Mar-1995.) $)
    biorfi $p |- ( ps <-> ( ps \/ ph ) ) $=
      ( wn wo wb orc orel2 impbid2 ax-mp ) ADZBBAEZFCKBLBAGABHIJ $.
  $}

  $( Theorem *2.621 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 13-Dec-2013.) $)
  pm2.621 $p |- ( ( ph -> ps ) -> ( ( ph \/ ps ) -> ps ) ) $=
    ( wi id idd jaod ) ABCZABBGDGBEF $.

  $( Theorem *2.62 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 13-Dec-2013.) $)
  pm2.62 $p |- ( ( ph \/ ps ) -> ( ( ph -> ps ) -> ps ) ) $=
    ( wi wo pm2.621 com12 ) ABCABDBABEF $.

  ${
    imorri.1 $e |- ( -. ph \/ ps ) $.
    $( Infer implication from disjunction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    imorri $p |- ( ph -> ps ) $=
      ( wn wo wi pm2.21 ax-1 jaoi ax-mp ) ADZBEABFZCKLBABGBAHIJ $.
  $}

  $( Negated disjunction in terms of conjunction.  This version of DeMorgan's
     law is a biconditional for all propositions (not just decidable ones),
     unlike ~ oranim , ~ anordc , or ~ ianordc .  Compare Theorem *4.56 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 5-Aug-1993.)  (Revised by
     Mario Carneiro, 31-Jan-2015.) $)
  ioran $p |- ( -. ( ph \/ ps ) <-> ( -. ph /\ -. ps ) ) $=
    ( wo wn wa pm2.45 pm2.46 jca simpl con2i simpr jaoi impbii ) ABCZDZADZBDZEZ
    OPQABFABGHNRARDBRAPQIJRBPQKJLJM $.

  $( Theorem *3.14 of [WhiteheadRussell] p. 111.  One direction of De Morgan's
     law).  The biconditional holds for decidable propositions as seen at
     ~ ianordc .  The converse holds for decidable propositions, as seen at
     ~ pm3.13dc .  (Contributed by NM, 3-Jan-2005.)  (Revised by Mario
     Carneiro, 31-Jan-2015.) $)
  pm3.14 $p |- ( ( -. ph \/ -. ps ) -> -. ( ph /\ ps ) ) $=
    ( wn wa simpl con3i simpr jaoi ) ACABDZCBCIAABEFIBABGFH $.

  $( Theorem *3.1 of [WhiteheadRussell] p. 111.  The converse holds for
     decidable propositions, as seen at ~ anordc .  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm3.1 $p |- ( ( ph /\ ps ) -> -. ( -. ph \/ -. ps ) ) $=
    ( wn wo wa pm3.14 con2i ) ACBCDABEABFG $.

  $( Disjunction of antecedents.  Compare Theorem *3.44 of [WhiteheadRussell]
     p. 113.  (Contributed by NM, 5-Apr-1994.)  (Proof shortened by Wolf
     Lammen, 4-Apr-2013.) $)
  jao $p |- ( ( ph -> ps ) -> ( ( ch -> ps ) -> ( ( ph \/ ch ) -> ps ) ) ) $=
    ( wi wo pm3.44 ex ) ABDCBDACEBDBACFG $.

  $( Axiom *1.2 (Taut) of [WhiteheadRussell] p. 96.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 10-Mar-2013.) $)
  pm1.2 $p |- ( ( ph \/ ph ) -> ph ) $=
    ( id jaoi ) AAAABZDC $.

  $( Idempotent law for disjunction.  Theorem *4.25 of [WhiteheadRussell]
     p. 117.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
     Salmon, 16-Apr-2011.)  (Proof shortened by Wolf Lammen, 10-Mar-2013.) $)
  oridm $p |- ( ( ph \/ ph ) <-> ph ) $=
    ( wo pm1.2 pm2.07 impbii ) AABAACADE $.

  $( Theorem *4.25 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.25 $p |- ( ph <-> ( ph \/ ph ) ) $=
    ( wo oridm bicomi ) AABAACD $.

  ${
    orim12i.1 $e |- ( ph -> ps ) $.
    orim12i.2 $e |- ( ch -> th ) $.
    $( Disjoin antecedents and consequents of two premises.  (Contributed by
       NM, 6-Jun-1994.)  (Proof shortened by Wolf Lammen, 25-Jul-2012.) $)
    orim12i $p |- ( ( ph \/ ch ) -> ( ps \/ th ) ) $=
      ( wo orcd olcd jaoi ) ABDGCABDEHCDBFIJ $.
  $}

  ${
    orim1i.1 $e |- ( ph -> ps ) $.
    $( Introduce disjunct to both sides of an implication.  (Contributed by NM,
       6-Jun-1994.) $)
    orim1i $p |- ( ( ph \/ ch ) -> ( ps \/ ch ) ) $=
      ( id orim12i ) ABCCDCEF $.

    $( Introduce disjunct to both sides of an implication.  (Contributed by NM,
       6-Jun-1994.) $)
    orim2i $p |- ( ( ch \/ ph ) -> ( ch \/ ps ) ) $=
      ( id orim12i ) CCABCEDF $.
  $}

  ${
    orbi2i.1 $e |- ( ph <-> ps ) $.
    $( Inference adding a left disjunct to both sides of a logical
       equivalence.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
       Lammen, 12-Dec-2012.) $)
    orbi2i $p |- ( ( ch \/ ph ) <-> ( ch \/ ps ) ) $=
      ( wo biimpi orim2i biimpri impbii ) CAECBEABCABDFGBACABDHGI $.

    $( Inference adding a right disjunct to both sides of a logical
       equivalence.  (Contributed by NM, 5-Aug-1993.) $)
    orbi1i $p |- ( ( ph \/ ch ) <-> ( ps \/ ch ) ) $=
      ( wo orcom orbi2i 3bitri ) ACECAECBEBCEACFABCDGCBFH $.
  $}

  ${
    orbi12i.1 $e |- ( ph <-> ps ) $.
    orbi12i.2 $e |- ( ch <-> th ) $.
    $( Infer the disjunction of two equivalences.  (Contributed by NM,
       5-Aug-1993.) $)
    orbi12i $p |- ( ( ph \/ ch ) <-> ( ps \/ th ) ) $=
      ( wo orbi2i orbi1i bitri ) ACGADGBDGCDAFHABDEIJ $.
  $}

  $( Axiom *1.5 (Assoc) of [WhiteheadRussell] p. 96.  (Contributed by NM,
     3-Jan-2005.) $)
  pm1.5 $p |- ( ( ph \/ ( ps \/ ch ) ) -> ( ps \/ ( ph \/ ch ) ) ) $=
    ( wo orc olcd olc orim2i jaoi ) ABACDZDBCDAJBACEFCJBCAGHI $.

  $( Swap two disjuncts.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by
     Wolf Lammen, 14-Nov-2012.) $)
  or12 $p |- ( ( ph \/ ( ps \/ ch ) ) <-> ( ps \/ ( ph \/ ch ) ) ) $=
    ( wo pm1.5 impbii ) ABCDDBACDDABCEBACEF $.

  $( Associative law for disjunction.  Theorem *4.33 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
     Salmon, 26-Jun-2011.) $)
  orass $p |- ( ( ( ph \/ ps ) \/ ch ) <-> ( ph \/ ( ps \/ ch ) ) ) $=
    ( wo orcom or12 orbi2i 3bitri ) ABDZCDCIDACBDZDABCDZDICECABFJKACBEGH $.

  $( Theorem *2.31 of [WhiteheadRussell] p. 104.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.31 $p |- ( ( ph \/ ( ps \/ ch ) ) -> ( ( ph \/ ps ) \/ ch ) ) $=
    ( wo orass biimpri ) ABDCDABCDDABCEF $.

  $( Theorem *2.32 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.32 $p |- ( ( ( ph \/ ps ) \/ ch ) -> ( ph \/ ( ps \/ ch ) ) ) $=
    ( wo orass biimpi ) ABDCDABCDDABCEF $.

  $( A rearrangement of disjuncts.  (Contributed by NM, 18-Oct-1995.)  (Proof
     shortened by Andrew Salmon, 26-Jun-2011.) $)
  or32 $p |- ( ( ( ph \/ ps ) \/ ch ) <-> ( ( ph \/ ch ) \/ ps ) ) $=
    ( wo orass or12 orcom 3bitri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( Rearrangement of 4 disjuncts.  (Contributed by NM, 12-Aug-1994.) $)
  or4 $p |- ( ( ( ph \/ ps ) \/ ( ch \/ th ) ) <->
                ( ( ph \/ ch ) \/ ( ps \/ th ) ) ) $=
    ( wo or12 orbi2i orass 3bitr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHAC
    LHI $.

  $( Rearrangement of 4 disjuncts.  (Contributed by NM, 10-Jan-2005.) $)
  or42 $p |- ( ( ( ph \/ ps ) \/ ( ch \/ th ) ) <->
                 ( ( ph \/ ch ) \/ ( th \/ ps ) ) ) $=
    ( wo or4 orcom orbi2i bitri ) ABECDEEACEZBDEZEJDBEZEABCDFKLJBDGHI $.

  $( Distribution of disjunction over disjunction.  (Contributed by NM,
     25-Feb-1995.) $)
  orordi $p |- ( ( ph \/ ( ps \/ ch ) ) <->
               ( ( ph \/ ps ) \/ ( ph \/ ch ) ) ) $=
    ( wo oridm orbi1i or4 bitr3i ) ABCDZDAADZIDABDACDDJAIAEFAABCGH $.

  $( Distribution of disjunction over disjunction.  (Contributed by NM,
     25-Feb-1995.) $)
  orordir $p |- ( ( ( ph \/ ps ) \/ ch ) <->
               ( ( ph \/ ch ) \/ ( ps \/ ch ) ) ) $=
    ( wo oridm orbi2i or4 bitr3i ) ABDZCDICCDZDACDBCDDJCICEFABCCGH $.

  $( Theorem *2.3 of [WhiteheadRussell] p. 104.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.3 $p |- ( ( ph \/ ( ps \/ ch ) ) -> ( ph \/ ( ch \/ ps ) ) ) $=
    ( wo pm1.4 orim2i ) BCDCBDABCEF $.

  $( Theorem *2.41 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.41 $p |- ( ( ps \/ ( ph \/ ps ) ) -> ( ph \/ ps ) ) $=
    ( wo olc id jaoi ) BABCZGBADGEF $.

  $( Theorem *2.42 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.42 $p |- ( ( -. ph \/ ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wn wi pm2.21 id jaoi ) ACABDZHABEHFG $.

  $( Theorem *2.4 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.4 $p |- ( ( ph \/ ( ph \/ ps ) ) -> ( ph \/ ps ) ) $=
    ( wo orc id jaoi ) AABCZGABDGEF $.

  $( Theorem *4.44 of [WhiteheadRussell] p. 119.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.44 $p |- ( ph <-> ( ph \/ ( ph /\ ps ) ) ) $=
    ( wa wo orc id simpl jaoi impbii ) AAABCZDAJEAAJAFABGHI $.

  ${
    mtord.1 $e |- ( ph -> -. ch ) $.
    mtord.2 $e |- ( ph -> -. th ) $.
    mtord.3 $e |- ( ph -> ( ps -> ( ch \/ th ) ) ) $.
    $( A modus tollens deduction involving disjunction.  (Contributed by Jeff
       Hankins, 15-Jul-2009.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    mtord $p |- ( ph -> -. ps ) $=
      ( wo wn pm2.21d jaod syld pm2.01d ) ABABCDHBIZGACNDACNEJADNFJKLM $.
  $}

  $( Theorem *4.45 of [WhiteheadRussell] p. 119.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.45 $p |- ( ph <-> ( ph /\ ( ph \/ ps ) ) ) $=
    ( wo orc pm4.71i ) AABCABDE $.

  $( Theorem *3.48 of [WhiteheadRussell] p. 114.  (Contributed by NM,
     28-Jan-1997.)  (Revised by NM, 1-Dec-2012.) $)
  pm3.48 $p |- ( ( ( ph -> ps ) /\ ( ch -> th ) ) ->
               ( ( ph \/ ch ) -> ( ps \/ th ) ) ) $=
    ( wi wo orc imim2i olc jaao ) ABEABDFZCDECBKABDGHDKCDBIHJ $.

  ${
    orim12d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    orim12d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( Disjoin antecedents and consequents in a deduction.  (Contributed by NM,
       10-May-1994.) $)
    orim12d $p |- ( ph -> ( ( ps \/ th ) -> ( ch \/ ta ) ) ) $=
      ( wi wo pm3.48 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
  $}

  ${
    orim1d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Disjoin antecedents and consequents in a deduction.  (Contributed by NM,
       23-Apr-1995.) $)
    orim1d $p |- ( ph -> ( ( ps \/ th ) -> ( ch \/ th ) ) ) $=
      ( idd orim12d ) ABCDDEADFG $.

    $( Disjoin antecedents and consequents in a deduction.  (Contributed by NM,
       23-Apr-1995.) $)
    orim2d $p |- ( ph -> ( ( th \/ ps ) -> ( th \/ ch ) ) ) $=
      ( idd orim12d ) ADDBCADFEG $.
  $}

  $( Axiom *1.6 (Sum) of [WhiteheadRussell] p. 97.  (Contributed by NM,
     3-Jan-2005.) $)
  orim2 $p |- ( ( ps -> ch ) -> ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) $=
    ( wi id orim2d ) BCDZBCAGEF $.

  ${
    orbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding a left disjunct to both sides of a logical
       equivalence.  (Contributed by NM, 5-Aug-1993.)  (Revised by Mario
       Carneiro, 31-Jan-2015.) $)
    orbi2d $p |- ( ph -> ( ( th \/ ps ) <-> ( th \/ ch ) ) ) $=
      ( wo biimpd orim2d biimprd impbid ) ADBFDCFABCDABCEGHACBDABCEIHJ $.

    $( Deduction adding a right disjunct to both sides of a logical
       equivalence.  (Contributed by NM, 5-Aug-1993.) $)
    orbi1d $p |- ( ph -> ( ( ps \/ th ) <-> ( ch \/ th ) ) ) $=
      ( wo orbi2d orcom 3bitr4g ) ADBFDCFBDFCDFABCDEGBDHCDHI $.
  $}

  $( Theorem *4.37 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  orbi1 $p |- ( ( ph <-> ps ) -> ( ( ph \/ ch ) <-> ( ps \/ ch ) ) ) $=
    ( wb id orbi1d ) ABDZABCGEF $.

  ${
    orbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    orbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of disjunctions.
       (Contributed by NM, 5-Aug-1993.) $)
    orbi12d $p |- ( ph -> ( ( ps \/ th ) <-> ( ch \/ ta ) ) ) $=
      ( wo orbi1d orbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( Theorem *5.61 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 30-Jun-2013.) $)
  pm5.61 $p |- ( ( ( ph \/ ps ) /\ -. ps ) <-> ( ph /\ -. ps ) ) $=
    ( wn wo biorf orcom syl6rbb pm5.32ri ) BCZABDZAIABADJBAEBAFGH $.

  ${
    jaoian.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    jaoian.2 $e |- ( ( th /\ ps ) -> ch ) $.
    $( Inference disjoining the antecedents of two implications.  (Contributed
       by NM, 23-Oct-2005.) $)
    jaoian $p |- ( ( ( ph \/ th ) /\ ps ) -> ch ) $=
      ( wo wi ex jaoi imp ) ADGBCABCHDABCEIDBCFIJK $.
  $}

  ${
    jaodan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    jaodan.2 $e |- ( ( ph /\ th ) -> ch ) $.
    $( Deduction disjoining the antecedents of two implications.  (Contributed
       by NM, 14-Oct-2005.) $)
    jaodan $p |- ( ( ph /\ ( ps \/ th ) ) -> ch ) $=
      ( wo ex jaod imp ) ABDGCABCDABCEHADCFHIJ $.

    jaodan.3 $e |- ( ph -> ( ps \/ th ) ) $.
    $( Eliminate a disjunction in a deduction.  A translation of natural
       deduction rule ` \/ ` E ( ` \/ ` elimination).  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    mpjaodan $p |- ( ph -> ch ) $=
      ( wo jaodan mpdan ) ABDHCGABCDEFIJ $.
  $}

  $( Theorem *4.77 of [WhiteheadRussell] p. 121.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.77 $p |- ( ( ( ps -> ph ) /\ ( ch -> ph ) ) <->
                ( ( ps \/ ch ) -> ph ) ) $=
    ( wo wi wa jaob bicomi ) BCDAEBAECAEFBACGH $.

  $( Theorem *2.63 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.63 $p |- ( ( ph \/ ps ) -> ( ( -. ph \/ ps ) -> ps ) ) $=
    ( wo wn pm2.53 idd jaod ) ABCZADBBABEHBFG $.

  $( Theorem *2.64 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.64 $p |- ( ( ph \/ ps ) -> ( ( ph \/ -. ps ) -> ph ) ) $=
    ( wn wo wi ax-1 orel2 jaoi com12 ) ABCZDABDZAAKAEJAKFBAGHI $.

  $( Theorem *5.53 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.53 $p |- ( ( ( ( ph \/ ps ) \/ ch ) -> th ) <->
                ( ( ( ph -> th ) /\ ( ps -> th ) ) /\ ( ch -> th ) ) ) $=
    ( wo wi wa jaob anbi1i bitri ) ABEZCEDFKDFZCDFZGADFBDFGZMGKDCHLNMADBHIJ $.

  $( Theorem *2.38 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     6-Mar-2008.) $)
  pm2.38 $p |- ( ( ps -> ch ) -> ( ( ps \/ ph ) -> ( ch \/ ph ) ) ) $=
    ( wi id orim1d ) BCDZBCAGEF $.

  $( Theorem *2.36 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     6-Mar-2008.) $)
  pm2.36 $p |- ( ( ps -> ch ) -> ( ( ph \/ ps ) -> ( ch \/ ph ) ) ) $=
    ( wo wi pm1.4 pm2.38 syl5 ) ABDBADBCECADABFABCGH $.

  $( Theorem *2.37 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     6-Mar-2008.) $)
  pm2.37 $p |- ( ( ps -> ch ) -> ( ( ps \/ ph ) -> ( ph \/ ch ) ) ) $=
    ( wi wo pm2.38 pm1.4 syl6 ) BCDBAECAEACEABCFCAGH $.

  $( Theorem *2.73 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.73 $p |- ( ( ph -> ps ) -> ( ( ( ph \/ ps ) \/ ch ) ->
                ( ps \/ ch ) ) ) $=
    ( wi wo pm2.621 orim1d ) ABDABEBCABFG $.

  $( Theorem *2.74 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Mario Carneiro, 31-Jan-2015.) $)
  pm2.74 $p |- ( ( ps -> ph ) -> ( ( ( ph \/ ps ) \/ ch ) ->
                ( ph \/ ch ) ) ) $=
    ( wi wo idd id jaod orim1d ) BADZABEACJAABJAFJGHI $.

  $( Theorem *2.76 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm2.76 $p |- ( ( ph \/ ( ps -> ch ) ) ->
                ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) $=
    ( wo wi orc a1d orim2 jaoi ) AABDZACDZEBCEAKJACFGABCHI $.

  $( Theorem *2.75 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 4-Jan-2013.) $)
  pm2.75 $p |- ( ( ph \/ ps ) ->
                ( ( ph \/ ( ps -> ch ) ) -> ( ph \/ ch ) ) ) $=
    ( wi wo pm2.76 com12 ) ABCDEABEACEABCFG $.

  $( Theorem *2.8 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Mario Carneiro, 31-Jan-2015.) $)
  pm2.8 $p |- ( ( ph \/ ps ) -> ( ( -. ps \/ ch ) -> ( ph \/ ch ) ) ) $=
    ( wo wn pm1.4 ord orim1d ) ABDZBEACIBAABFGH $.

  $( Theorem *2.81 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.81 $p |- ( ( ps -> ( ch -> th ) ) -> ( ( ph \/ ps ) ->
                ( ( ph \/ ch ) -> ( ph \/ th ) ) ) ) $=
    ( wi wo orim2 pm2.76 syl6 ) BCDEZEABFAJFACFADFEABJGACDHI $.

  $( Theorem *2.82 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.82 $p |- ( ( ( ph \/ ps ) \/ ch ) -> ( ( ( ph \/ -. ch ) \/ th ) ->
                ( ( ph \/ ps ) \/ th ) ) ) $=
    ( wo wn wi ax-1 pm2.24 orim2d jaoi orim1d ) ABEZCEACFZEZMDMOMGCMOHCNBACBIJK
    L $.

  ${
    pm3.2ni.1 $e |- -. ph $.
    pm3.2ni.2 $e |- -. ps $.
    $( Infer negated disjunction of negated premises.  (Contributed by NM,
       4-Apr-1995.) $)
    pm3.2ni $p |- -. ( ph \/ ps ) $=
      ( wo id pm2.21i jaoi mto ) ABEACAABAFBADGHI $.
  $}

  $( Absorption of redundant internal disjunct.  Compare Theorem *4.45 of
     [WhiteheadRussell] p. 119.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 28-Feb-2014.) $)
  orabs $p |- ( ph <-> ( ( ph \/ ps ) /\ ph ) ) $=
    ( wo orc pm4.71ri ) AABCABDE $.

  $( Absorb a disjunct into a conjunct.  (Contributed by Roy F. Longton,
     23-Jun-2005.)  (Proof shortened by Wolf Lammen, 10-Nov-2013.) $)
  oranabs $p |- ( ( ( ph \/ -. ps ) /\ ps ) <-> ( ph /\ ps ) ) $=
    ( wn wo biortn orcom syl6rbb pm5.32ri ) BABCZDZABAIADJBAEIAFGH $.

  $( Distributive law for disjunction.  Theorem *4.41 of [WhiteheadRussell]
     p. 119.  (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
     31-Jan-2015.) $)
  ordi $p |- ( ( ph \/ ( ps /\ ch ) ) <-> ( ( ph \/ ps ) /\ ( ph \/ ch ) ) ) $=
    ( wa wo simpl orim2i simpr jca orc adantl adantr olc jaoian jaodan impbii )
    ABCDZEZABEZACEZDRSTQBABCFGQCABCHGISARCARSAQJZKACRBARCUALQAMNOP $.

  $( Distributive law for disjunction.  (Contributed by NM, 12-Aug-1994.) $)
  ordir $p |- ( ( ( ph /\ ps ) \/ ch ) <->
              ( ( ph \/ ch ) /\ ( ps \/ ch ) ) ) $=
    ( wa wo ordi orcom anbi12i 3bitr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMKNL
    ACGBCGHI $.

  $( Distributive law for conjunction.  Theorem *4.4 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 5-Jan-2013.) $)
  andi $p |- ( ( ph /\ ( ps \/ ch ) ) <-> ( ( ph /\ ps ) \/ ( ph /\ ch ) ) ) $=
    ( wo wa orc olc jaodan anim2i jaoi impbii ) ABCDZEZABEZACEZDZABPCNOFONGHNMO
    BLABCFICLACBGIJK $.

  $( Distributive law for conjunction.  (Contributed by NM, 12-Aug-1994.) $)
  andir $p |- ( ( ( ph \/ ps ) /\ ch ) <->
              ( ( ph /\ ch ) \/ ( ps /\ ch ) ) ) $=
    ( wo wa andi ancom orbi12i 3bitr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMKNL
    ACGBCGHI $.

  $( Double distributive law for disjunction.  (Contributed by NM,
     12-Aug-1994.) $)
  orddi $p |- ( ( ( ph /\ ps ) \/ ( ch /\ th ) ) <->
              ( ( ( ph \/ ch ) /\ ( ph \/ th ) ) /\
              ( ( ps \/ ch ) /\ ( ps \/ th ) ) ) ) $=
    ( wa wo ordir ordi anbi12i bitri ) ABECDEZFAKFZBKFZEACFADFEZBCFBDFEZEABKGLN
    MOACDHBCDHIJ $.

  $( Double distributive law for conjunction.  (Contributed by NM,
     12-Aug-1994.) $)
  anddi $p |- ( ( ( ph \/ ps ) /\ ( ch \/ th ) ) <->
              ( ( ( ph /\ ch ) \/ ( ph /\ th ) ) \/
              ( ( ps /\ ch ) \/ ( ps /\ th ) ) ) ) $=
    ( wo wa andir andi orbi12i bitri ) ABECDEZFAKFZBKFZEACFADFEZBCFBDFEZEABKGLN
    MOACDHBCDHIJ $.

  $( Prove formula-building rules for the biconditional connective. $)

  $( Theorem *4.39 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.39 $p |- ( ( ( ph <-> ch ) /\ ( ps <-> th ) ) ->
                ( ( ph \/ ps ) <-> ( ch \/ th ) ) ) $=
    ( wb wa simpl simpr orbi12d ) ACEZBDEZFACBDJKGJKHI $.

  $( Implication in terms of biconditional and disjunction.  Theorem *4.72 of
     [WhiteheadRussell] p. 121.  (Contributed by NM, 30-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 30-Jan-2013.) $)
  pm4.72 $p |- ( ( ph -> ps ) <-> ( ps <-> ( ph \/ ps ) ) ) $=
    ( wi wo wb olc pm2.621 impbid2 orc bi2 syl5 impbii ) ABCZBABDZEZMBNBAFABGHA
    NOBABIBNJKL $.

  $( Theorem *5.16 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm5.16 $p |- -. ( ( ph <-> ps ) /\ ( ph <-> -. ps ) ) $=
    ( wb wn wa pm5.19 simpl simpr bitr3d mto ) ABCZABDZCZEZBLCBFNABLKMGKMHIJ $.

  $( A wff is disjoined with truth is true.  (Contributed by NM,
     23-May-1999.) $)
  biort $p |- ( ph -> ( ph <-> ( ph \/ ps ) ) ) $=
    ( wo orc ax-1 impbid2 ) AAABCZABDAGEF $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Stable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $( Declare connective for stability. $)
  $c STAB $.

  $( Extend wff definition to include stability. $)
  wstab $a wff STAB ph $.

  $( Propositions where a double-negative can be removed are called stable.
     See Chapter 2 [Moschovakis] p. 2.

     Our notation for stability is a connective ` STAB ` which we place before
     the formula in question.  For example, ` STAB x = y ` corresponds to "x =
     y is stable".

     (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  df-stab $a |- ( STAB ph <-> ( -. -. ph -> ph ) ) $.

  $( Every formula of the form ` -. ph ` is stable.  Uses ~ notnotnot .
     (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  stabnot $p |- STAB -. ph $=
    ( wn wstab wi notnotnot biimpi df-stab mpbir ) ABZCIBBZIDJIAEFIGH $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Decidable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $( Declare connective for decidability. $)
  $c DECID $.

  $( Extend wff definition to include decidability. $)
  wdc $a wff DECID ph $.

  $( Propositions which are known to be true or false are called decidable.
     The (classical) Law of the Excluded Middle corresponds to the principle
     that all propositions are decidable, but even given intuitionistic logic,
     particular kinds of propositions may be decidable (for example, the
     proposition that two natural numbers are equal will be decidable under
     most sets of axioms).

     Our notation for decidability is a connective ` DECID ` which we place
     before the formula in question.  For example, ` DECID x = y ` corresponds
     to "x = y is decidable".

     We could transform intuitionistic logic to classical logic by adding
     unconditional forms of ~ condc , ~ exmiddc , ~ peircedc , or ~ notnot2dc ,
     any of which would correspond to the assertion that all propositions are
     decidable.

     (Contributed by Jim Kingdon, 11-Mar-2018.) $)
  df-dc $a |- ( DECID ph <-> ( ph \/ -. ph ) ) $.

  $( Law of excluded middle, for a decidable proposition.  The law of the
     excluded middle is also called the principle of _tertium non datur_.
     Theorem *2.11 of [WhiteheadRussell] p. 101.  It says that something is
     either true or not true; there are no in-between values of truth.  The key
     way in which intuitionistic logic differs from classical logic is that
     intuitionistic logic says that excluded middle only holds for some
     propositions, and classical logic says that it holds for all
     propositions.  (Contributed by Jim Kingdon, 12-May-2018.) $)
  exmiddc $p |- ( DECID ph -> ( ph \/ -. ph ) ) $=
    ( wdc wn wo df-dc biimpi ) ABAACDAEF $.

  $( Commuted law of the excluded middle for a decidable proposition.  Based on
     theorem *2.1 of [WhiteheadRussell] p. 101.  (Contributed by Jim Kingdon,
     25-Mar-2018.) $)
  pm2.1dc $p |- ( DECID ph -> ( -. ph \/ ph ) ) $=
    ( wdc wn wo df-dc orcom bitri biimpi ) ABZACZADZIAJDKAEAJFGH $.

  $( A decidable proposition is decidable when negated.  (Contributed by Jim
     Kingdon, 25-Mar-2018.) $)
  dcn $p |- ( DECID ph -> DECID -. ph ) $=
    ( wn wo wdc notnot1 orim2i orcoms df-dc 3imtr4i ) AABZCJJBZCZADJDJALAKJAEFG
    AHJHI $.

  ${
    dcbii.1 $e |- ( ph <-> ps ) $.
    $( The equivalent of a decidable proposition is decidable.  (Contributed by
       Jim Kingdon, 28-Mar-2018.) $)
    dcbii $p |- ( DECID ph <-> DECID ps ) $=
      ( wn wo wdc notbii orbi12i df-dc 3bitr4i ) AADZEBBDZEAFBFABKLCABCGHAIBIJ
      $.
  $}

  ${
    dcbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( The equivalent of a decidable proposition is decidable.  (Contributed by
       Jim Kingdon, 7-Sep-2019.) $)
    dcbid $p |- ( ph -> ( DECID ps <-> DECID ch ) ) $=
      ( wn wo wdc notbid orbi12d df-dc 3bitr4g ) ABBEZFCCEZFBGCGABCLMDABCDHIBJC
      JK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Theorems of decidable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

   Many theorems of logic hold in intuitionistic logic just as they do in
   classical (non-inuitionistic) logic, for all propositions. Other theorems
   only hold for decidable propositions, such as the law of the excluded
   middle ( ~ df-dc ), double negation elimination ( ~ notnotdc ), or
   contraposition ( ~ condc ). Our goal is to prove all well-known
   or important classical theorems, but with suitable decidability
   conditions so that the proofs follow from intuitionistic axioms.
   This section is focused on such proofs, given decidability conditions.
$)

  $( Contraposition of a decidable proposition.

     This theorem swaps or "transposes" the order of the consequents when
     negation is removed.  An informal example is that the statement "if there
     are no clouds in the sky, it is not raining" implies the statement "if it
     is raining, there are clouds in the sky."  This theorem (without the
     decidability condition, of course) is called _Transp_ or "the principle of
     transposition" in _Principia Mathematica_ (Theorem *2.17 of
     [WhiteheadRussell] p. 103) and is Axiom A3 of [Margaris] p. 49.  We will
     also use the term "contraposition" for this principle, although the reader
     is advised that in the field of philosophical logic, "contraposition" has
     a different technical meaning.

     (Contributed by Jim Kingdon, 13-Mar-2018.) $)
  condc $p |- ( DECID ph -> ( ( -. ph -> -. ps ) -> ( ps -> ph ) ) ) $=
    ( wdc wn wo wi df-dc ax-1 a1d pm2.27 ax-in2 syl6 jaoi sylbi ) ACAADZEOBDZFZ
    BAFZFZAGASOARQABHIOQPROPJBAKLMN $.

  $( Proof by contradiction for a decidable proposition.  Based on Theorem
     *2.18 of [WhiteheadRussell] p. 103 (also called the Law of Clavius).
     Intuitionistically it requires a decidability assumption, but compare with
     ~ pm2.01 which does not.  (Contributed by Jim Kingdon, 24-Mar-2018.) $)
  pm2.18dc $p |- ( DECID ph -> ( ( -. ph -> ph ) -> ph ) ) $=
    ( wdc wn wi pm2.21 a2i condc syl5 pm2.43d ) ABZACZADZALKLCZDJLADKAMAMEFALGH
    I $.

  $( Double negation elimination for a decidable proposition.  The converse,
     ~ notnot1 , holds for all propositions, not just decidable ones.  This is
     Theorem *2.14 of [WhiteheadRussell] p. 102, but with a decidability
     condition added.  (Contributed by Jim Kingdon, 11-Mar-2018.) $)
  notnot2dc $p |- ( DECID ph -> ( -. -. ph -> ph ) ) $=
    ( wdc wn wo wi df-dc orcom bitri pm2.53 sylbi ) ABZACZADZLCAEKALDMAFALGHLAI
    J $.

  $( Decidability implies stability.  The converse is not necessarily true.
     (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  dcimpstab $p |- ( DECID ph -> STAB ph ) $=
    ( wdc wn wi wstab notnot2dc df-stab sylibr ) ABACCADAEAFAGH $.

  $( Contraposition for a decidable proposition.  Based on theorem *2.15 of
     [WhiteheadRussell] p. 102.  (Contributed by Jim Kingdon, 29-Mar-2018.) $)
  con1dc $p |- ( DECID ph -> ( ( -. ph -> ps ) -> ( -. ps -> ph ) ) ) $=
    ( wn wi wdc notnot1 imim2i condc syl5 ) ACZBDJBCZCZDAEKADBLJBFGAKHI $.

  ${
    con4biddc.1 $e |- ( ph -> ( DECID ps -> ( DECID ch ->
        ( -. ps <-> -. ch ) ) ) ) $.
    $( A contraposition deduction.  (Contributed by Jim Kingdon,
       18-May-2018.) $)
    con4biddc $p |- ( ph -> ( DECID ps -> ( DECID ch -> ( ps <-> ch ) ) ) ) $=
      ( wdc wb wa wi wn bi2 syl8 condc a2i imp31 bi1 imim2d sylcom impbid exp31
      syl6 ) ABEZCEZBCFAUAGUBGBCAUAUBBCHZAUAUBCIZBIZHZHUBUCHAUAUBUEUDFZUFDUEUDJ
      KUBUFUCCBLMTNAUAUBCBHZAUAUBUEUDHZHUBUHHAUAUBUGUIDUEUDOKUAUIUHUBBCLPQNRS
      $.
  $}

  ${
    impidc.1 $e |- ( DECID ch -> ( ph -> ( ps -> ch ) ) ) $.
    $( An importation inference for a decidable consequent.  (Contributed by
       Jim Kingdon, 30-Apr-2018.) $)
    impidc $p |- ( DECID ch -> ( -. ( ph -> -. ps ) -> ch ) ) $=
      ( wdc wn wi wa imp con3d ex com23 con1dc mpd ) CEZCFZABFZGZGRFCGOAPQOAPQG
      OAHBCOABCGDIJKLCRMN $.
  $}

  $( Simplification given a decidable proposition.  Similar to Theorem *3.27
     (Simp) of [WhiteheadRussell] p. 112.  (Contributed by Jim Kingdon,
     30-Apr-2018.) $)
  simprimdc $p |- ( DECID ps -> ( -. ( ph -> -. ps ) -> ps ) ) $=
    ( wi wdc idd a1i impidc ) ABBABBCCBDABEFG $.

  $( Simplification for a decidable proposition.  Similar to Theorem *3.26
     (Simp) of [WhiteheadRussell] p. 112.  (Contributed by Jim Kingdon,
     29-Mar-2018.) $)
  simplimdc $p |- ( DECID ph -> ( -. ( ph -> ps ) -> ph ) ) $=
    ( wdc wn wi pm2.21 con1dc mpi ) ACADABEZEIDAEABFAIGH $.

  ${
    pm2.61ddc.1 $e |- ( ph -> ( ps -> ch ) ) $.
    pm2.61ddc.2 $e |- ( ph -> ( -. ps -> ch ) ) $.
    $( Deduction eliminating a decidable antecedent.  (Contributed by Jim
       Kingdon, 4-May-2018.) $)
    pm2.61ddc $p |- ( DECID ps -> ( ph -> ch ) ) $=
      ( wdc wn wo wi df-dc com12 jaoi sylbi ) BFBBGZHACIZBJBONABCDKANCEKLM $.
  $}

  $( Case elimination for a decidable proposition.  Based on theorem *2.6 of
     [WhiteheadRussell] p. 107.  (Contributed by Jim Kingdon, 25-Mar-2018.) $)
  pm2.6dc $p |- ( DECID ph ->
      ( ( -. ph -> ps ) -> ( ( ph -> ps ) -> ps ) ) ) $=
    ( wdc wn wi wo wa pm2.1dc pm3.44 syl5com expd ) ACZADZBEZABEZBLMAFNOGBAHBMA
    IJK $.

  ${
    jadc.1 $e |- ( DECID ph -> ( -. ph -> ch ) ) $.
    jadc.2 $e |- ( ps -> ch ) $.
    $( Inference forming an implication from the antecedents of two premises,
       where a decidable antecedent is negated.  (Contributed by Jim Kingdon,
       25-Mar-2018.) $)
    jadc $p |- ( DECID ph -> ( ( ph -> ps ) -> ch ) ) $=
      ( wi wdc imim2i wn pm2.6dc mpd syl5 ) ABFACFZAGZCBCAEHNAICFMCFDACJKL $.
  $}

  ${
    jaddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps -> th ) ) ) $.
    jaddc.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Deduction forming an implication from the antecedents of two premises,
       where a decidable antecedent is negated.  (Contributed by Jim Kingdon,
       26-Mar-2018.) $)
    jaddc $p |- ( ph -> ( DECID ps -> ( ( ps -> ch ) -> th ) ) ) $=
      ( wi wdc imim2d wn pm2.6dc sylcom syl5d ) ABCGBDGZBHZDACDBFIAOBJDGNDGEBDK
      LM $.
  $}

  $( Case elimination for a decidable proposition.  Based on theorem *2.61 of
     [WhiteheadRussell] p. 107.  (Contributed by Jim Kingdon, 29-Mar-2018.) $)
  pm2.61dc $p |- ( DECID ph ->
                   ( ( ph -> ps ) -> ( ( -. ph -> ps ) -> ps ) ) ) $=
    ( wdc wn wi pm2.6dc com23 ) ACADBEABEBABFG $.

  $( Negating an implication for a decidable antecedent.  Based on theorem *2.5
     of [WhiteheadRussell] p. 107.  (Contributed by Jim Kingdon,
     29-Mar-2018.) $)
  pm2.5dc $p |- ( DECID ph -> ( -. ( ph -> ps ) -> ( -. ph -> ps ) ) ) $=
    ( wdc wi wn wa simplimdc imp pm2.24d ex ) ACZABDEZAEBDKLFABKLAABGHIJ $.

  $( Theorem *2.521 of [WhiteheadRussell] p. 107, but with an additional
     decidability condition.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  pm2.521dc $p |- ( DECID ph -> ( -. ( ph -> ps ) -> ( ps -> ph ) ) ) $=
    ( wi wn wdc pm2.52 condc syl5 ) ABCDADBDCAEBACABFABGH $.

  $( Contraposition.  Theorem *4.1 of [WhiteheadRussell] p. 116, but for a
     decidable proposition.  (Contributed by Jim Kingdon, 24-Apr-2018.) $)
  con34bdc $p |- ( DECID ps -> ( ( ph -> ps ) <-> ( -. ps -> -. ph ) ) ) $=
    ( wdc wi wn con3 condc impbid2 ) BCABDBEAEDABFBAGH $.

  $( Double negation equivalence for a decidable proposition.  Like Theorem
     *4.13 of [WhiteheadRussell] p. 117, but with a decidability antecendent.
     The forward direction, ~ notnot1 , holds for all propositions, not just
     decidable ones.  (Contributed by Jim Kingdon, 13-Mar-2018.) $)
  notnotdc $p |- ( DECID ph -> ( ph <-> -. -. ph ) ) $=
    ( wdc wn notnot1 notnot2dc impbid2 ) ABAACCADAEF $.

  $( Contraposition.  (Contributed by Jim Kingdon, 4-Apr-2018.) $)
  con1biimdc $p |- ( DECID ph -> ( ( -. ph <-> ps ) -> ( -. ps <-> ph ) ) ) $=
    ( wdc wn wb wi bi1 con1dc syl5 bi2 con2d a1i impbidd ) ACZADZBEZBDZAPOBFNQA
    FOBGABHIPAQFFNPBAOBJKLM $.

  $( Contraposition.  (Contributed by Jim Kingdon, 17-Apr-2018.) $)
  con1bidc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph <-> ps ) <-> ( -. ps <-> ph ) ) ) ) $=
    ( wdc wn wb wa wi con1biimdc adantr adantl impbid ex ) ACZBCZADBEZBDAEZEMNF
    OPMOPGNABHINPOGMBAHJKL $.

  $( Contraposition.  (Contributed by Jim Kingdon, 17-Apr-2018.) $)
  con2bidc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph <-> -. ps ) <-> ( ps <-> -. ph ) ) ) ) $=
    ( wdc wn wb wa con1bidc imp bicom 3bitr3g bicomd ex ) ACZBCZABDZEZBADZEZEMN
    FZRPSQBEZOAEZRPMNTUAEABGHQBIOAIJKL $.

  ${
    con1biddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps <-> ch ) ) ) $.
    $( A contraposition deduction.  (Contributed by Jim Kingdon,
       4-Apr-2018.) $)
    con1biddc $p |- ( ph -> ( DECID ps -> ( -. ch <-> ps ) ) ) $=
      ( wdc wn wb con1biimdc sylcom ) ABEBFCGCFBGDBCHI $.
  $}

  ${
    con1biidc.1 $e |- ( DECID ph -> ( -. ph <-> ps ) ) $.
    $( A contraposition inference.  (Contributed by Jim Kingdon,
       15-Mar-2018.) $)
    con1biidc $p |- ( DECID ph -> ( -. ps <-> ph ) ) $=
      ( wdc wn notnotdc notbid bitrd bicomd ) ADZABEZJAAEZEKAFJLBCGHI $.
  $}

  $( Contraposition.  Bidirectional version of ~ con1dc .  (Contributed by NM,
     5-Aug-1993.) $)
  con1bdc $p |- ( DECID ph -> ( DECID ps ->
                  ( ( -. ph -> ps ) <-> ( -. ps -> ph ) ) ) ) $=
    ( wdc wn wi wb wa con1dc adantr adantl impbid ex ) ACZBCZADBEZBDAEZFMNGOPMO
    PENABHINPOEMBAHJKL $.

  ${
    con2biidc.1 $e |- ( DECID ps -> ( ph <-> -. ps ) ) $.
    $( A contraposition inference.  (Contributed by Jim Kingdon,
       15-Mar-2018.) $)
    con2biidc $p |- ( DECID ps -> ( ps <-> -. ph ) ) $=
      ( wdc wn bicomd con1biidc ) BDZAEBBAHABECFGF $.
  $}

  ${
    con2biddc.1 $e |- ( ph -> ( DECID ch -> ( ps <-> -. ch ) ) ) $.
    $( A contraposition deduction.  (Contributed by Jim Kingdon,
       11-Apr-2018.) $)
    con2biddc $p |- ( ph -> ( DECID ch -> ( ch <-> -. ps ) ) ) $=
      ( wdc wn wb bicom syl6ib con1biddc ) ACEZBFZCGCLGACBAKBCFZGMBGDBMHIJLCHI
      $.
  $}

  ${
    condandc.1 $e |- ( ( ph /\ -. ps ) -> ch ) $.
    condandc.2 $e |- ( ( ph /\ -. ps ) -> -. ch ) $.
    $( Proof by contradiction.  This only holds for decidable propositions, as
       it is part of the family of theorems which assume ` -. ps ` , derive a
       contradiction, and therefore conclude ` ps ` .  By contrast, assuming
       ` ps ` , deriving a contradiction, and therefore concluding ` -. ps ` ,
       as in ~ pm2.65 , is valid for all propositions.  (Contributed by Jim
       Kingdon, 13-May-2018.) $)
    condandc $p |- ( DECID ps -> ( ph -> ps ) ) $=
      ( wn wdc pm2.65da notnot2dc syl5 ) ABFZFBGBAKCDEHBIJ $.
  $}

  ${
    bijadc.1 $e |- ( ph -> ( ps -> ch ) ) $.
    bijadc.2 $e |- ( -. ph -> ( -. ps -> ch ) ) $.
    $( Combine antecedents into a single biconditional.  This inference is
       reminiscent of ~ jadc .  (Contributed by Jim Kingdon, 4-May-2018.) $)
    bijadc $p |- ( DECID ps -> ( ( ph <-> ps ) -> ch ) ) $=
      ( wb bi2 syli wn bi1 con3d pm2.61ddc ) ABFZBCBMACABGDHBIMAICMABABJKEHL $.
  $}

  $( Relationship between an equivalence and an equivalence with some negation,
     for decidable propositions.  Based on theorem *5.18 of [WhiteheadRussell]
     p. 124.  Given decidability, we can consider ` -. ( ph <-> -. ps ) ` to
     represent "negated exclusive-or".  (Contributed by Jim Kingdon,
     4-Apr-2018.) $)
  pm5.18dc $p |- ( DECID ph -> ( DECID ps ->
        ( ( ph <-> ps ) <-> -. ( ph <-> -. ps ) ) ) ) $=
    ( wdc wn wo wb wi df-dc wa pm5.501 a1d con1biddc imp adantr bitr2d dcn nbn2
    ex syl5 jaoi sylbi ) ACAADZEBCZABFZABDZFZDZFZGZAHAUIUBAUCUHAUCIUGBUDAUCUGBF
    ABUFAUEUFFUCAUEJKLMABUDFUCABJNORUBUCUHUBUCIUGUEUDUBUCUGUEFZUCUECZUBUJBPUBUE
    UFUBUEDUFFUKAUEQKLSMUBUEUDFUCABQNORTUA $.

  $( Definition of 'and' in terms of negation and implication, for decidable
     propositions.  The forward direction holds for all propositions, and can
     (basically) be found at ~ pm3.2im .  (Contributed by Jim Kingdon,
     30-Apr-2018.) $)
  dfandc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph /\ ps ) <-> -. ( ph -> -. ps ) ) ) ) $=
    ( wdc wa wn wi wb pm3.2im imp simplimdc adantr simprimdc adantl jca impbid2
    ex ) ACZBCZABDZABEZFEZGQRDZSUAABUAABHIUBUASUBUADABUBUAAQUAAFRATJKIUBUABRUAB
    FQABLMINPOP $.

  $( A decidable proposition or its triple negation is true.  Theorem *2.13 of
     [WhiteheadRussell] p. 101 with decidability condition added.  (Contributed
     by Jim Kingdon, 13-May-2018.) $)
  pm2.13dc $p |- ( DECID ph -> ( ph \/ -. -. -. ph ) ) $=
    ( wdc wn wo df-dc notnot2dc con3d orim2d syl5bi pm2.43i ) ABZAACZCZCZDZKALD
    KOAEKLNAKMAAFGHIJ $.

  $( Theorem *4.63 of [WhiteheadRussell] p. 120, for decidable propositions.
     (Contributed by Jim Kingdon, 1-May-2018.) $)
  pm4.63dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph -> -. ps ) <-> ( ph /\ ps ) ) ) ) $=
    ( wdc wn wi wa wb dfandc imp bicomd ex ) ACZBCZABDEDZABFZGLMFONLMONGABHIJK
    $.

  $( Theorem *4.67 of [WhiteheadRussell] p. 120, for decidable propositions.
     (Contributed by Jim Kingdon, 1-May-2018.) $)
  pm4.67dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( -. ph -> -. ps ) <-> ( -. ph /\ ps ) ) ) ) $=
    ( wdc wn wi wa wb dcn pm4.63dc syl ) ACADZCBCKBDEDKBFGEAHKBIJ $.

  $( Express conjunction in terms of implication.  One direction of Theorem
     *4.61 of [WhiteheadRussell] p. 120.  The converse holds for decidable
     propositions, as can be seen at ~ annimdc .  (Contributed by Jim Kingdon,
     24-Dec-2017.) $)
  annimim $p |- ( ( ph /\ -. ps ) -> -. ( ph -> ps ) ) $=
    ( wn wi pm2.27 con3 syl imp ) ABCZABDZCZAJBDIKDABEJBFGH $.

  $( One direction of Theorem *4.65 of [WhiteheadRussell] p. 120.  The converse
     holds in classical logic.  (Contributed by Jim Kingdon, 28-Jul-2018.) $)
  pm4.65r $p |- ( ( -. ph /\ -. ps ) -> -. ( -. ph -> ps ) ) $=
    ( wn annimim ) ACBD $.

  $( An implication between two decidable propositions is decidable.
     (Contributed by Jim Kingdon, 28-Mar-2018.) $)
  dcim $p |- ( DECID ph -> ( DECID ps -> DECID ( ph -> ps ) ) ) $=
    ( wn wo wi df-dc wa anbi2i andi bitri pm3.4 annimim orim12i sylbi sylibr ex
    wdc ax-in2 a1d orc syl6 jaoi ) AQAACZDBQZABEZQZEZAFAUGUCAUDUFAUDGZUEUECZDZU
    FUHABGZABCZGZDZUJUHABULDZGUNUDUOABFHABULIJUKUEUMUIABKABLMNUEFZOPUCUDUEUFUCU
    EUDABRSUEUJUFUEUITUPOUAUBN $.

  $( Express implication in terms of conjunction.  The converse only holds
     given a decidability condition; see ~ imandc .  (Contributed by Jim
     Kingdon, 24-Dec-2017.) $)
  imanim $p |- ( ( ph -> ps ) -> -. ( ph /\ -. ps ) ) $=
    ( wn wa wi annimim con2i ) ABCDABEABFG $.

  $( Express implication in terms of conjunction.  Theorem 3.4(27) of [Stoll]
     p. 176, with an added decidability condition.  The forward direction,
     ~ imanim , holds for all propositions, not just decidable ones.
     (Contributed by Jim Kingdon, 25-Apr-2018.) $)
  imandc $p |- ( DECID ps -> ( ( ph -> ps ) <-> -. ( ph /\ -. ps ) ) ) $=
    ( wdc wi wn wa notnotdc imbi2d imnan syl6bb ) BCZABDABEZEZDALFEKBMABGHALIJ
    $.

  $( Theorem *4.14 of [WhiteheadRussell] p. 117, given a decidability
     condition.  (Contributed by Jim Kingdon, 24-Apr-2018.) $)
  pm4.14dc $p |- ( DECID ch ->
      ( ( ( ph /\ ps ) -> ch ) <-> ( ( ph /\ -. ch ) -> -. ps ) ) ) $=
    ( wdc wi wn wa con34bdc imbi2d impexp 3bitr4g ) CDZABCEZEACFZBFZEZEABGCEANG
    OELMPABCHIABCJANOJK $.

  $( Theorem *3.37 (Transp) of [WhiteheadRussell] p. 112, given a decidability
     condition.  (Contributed by Jim Kingdon, 24-Apr-2018.) $)
  pm3.37dc $p |- ( DECID ch ->
      ( ( ( ph /\ ps ) -> ch ) -> ( ( ph /\ -. ch ) -> -. ps ) ) ) $=
    ( wdc wa wi wn pm4.14dc biimpd ) CDABECFACGEBGFABCHI $.

  $( Theorem *4.15 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 18-Nov-2012.) $)
  pm4.15 $p |- ( ( ( ph /\ ps ) -> -. ch ) <-> ( ( ps /\ ch ) -> -. ph ) ) $=
    ( wa wn wi con2b nan bitr2i ) BCDZAEFAJEFABDCEFJAGABCHI $.

  $( Deriving disjunction from implication for a decidable proposition.  Based
     on theorem *2.54 of [WhiteheadRussell] p. 107.  The converse, ~ pm2.53 ,
     holds whether the proposition is decidable or not.  (Contributed by Jim
     Kingdon, 26-Mar-2018.) $)
  pm2.54dc $p |- ( DECID ph -> ( ( -. ph -> ps ) -> ( ph \/ ps ) ) ) $=
    ( wdc wn wi wo dcn notnot2dc orc syl6 a1d olc a1i jaddc mpd ) ACZADZCZQBEAB
    FZEAGPQBSPQDZSERPTASAHABIJKBSEPBALMNO $.

  $( Definition of 'or' in terms of negation and implication for a decidable
     proposition.  Based on definition of [Margaris] p. 49.  One direction,
     ~ pm2.53 , holds for all propositions, not just decidable ones.
     (Contributed by Jim Kingdon, 26-Mar-2018.) $)
  dfordc $p |- ( DECID ph -> ( ( ph \/ ps ) <-> ( -. ph -> ps ) ) ) $=
    ( wdc wo wn wi pm2.53 pm2.54dc impbid2 ) ACABDAEBFABGABHI $.

  $( Elimination of disjunction based on a disjunction, for a decidable
     proposition.  Based on theorem *2.25 of [WhiteheadRussell] p. 104.
     (Contributed by NM, 3-Jan-2005.) $)
  pm2.25dc $p |- ( DECID ph -> ( ph \/ ( ( ph \/ ps ) -> ps ) ) ) $=
    ( wdc wn wo wi df-dc orel1 orim2i sylbi ) ACAADZEAABEBFZEAGKLAABHIJ $.

  $( Concluding disjunction from implication for a decidable proposition.
     Based on theorem *2.68 of [WhiteheadRussell] p. 108.  Converse of ~ pm2.62
     and one half of ~ dfor2dc .  (Contributed by Jim Kingdon, 27-Mar-2018.) $)
  pm2.68dc $p |- ( DECID ph -> ( ( ( ph -> ps ) -> ps ) -> ( ph \/ ps ) ) ) $=
    ( wi wn wdc wo jarl pm2.54dc syl5 ) ABCBCADBCAEABFABBGABHI $.

  $( Logical 'or' expressed in terms of implication only, for a decidable
     proposition.  Based on theorem *5.25 of [WhiteheadRussell] p. 124.
     (Contributed by Jim Kingdon, 27-Mar-2018.) $)
  dfor2dc $p |- ( DECID ph -> ( ( ph \/ ps ) <-> ( ( ph -> ps ) -> ps ) ) ) $=
    ( wdc wo wi pm2.62 pm2.68dc impbid2 ) ACABDABEBEABFABGH $.

  $( Simplify an implication between implications, for a decidable
     proposition.  (Contributed by Jim Kingdon, 18-Mar-2018.) $)
  imimorbdc $p |- ( DECID ps -> ( ( ( ps -> ch ) -> ( ph -> ch ) ) <->
                  ( ph -> ( ps \/ ch ) ) ) ) $=
    ( wdc wo wi dfor2dc imbi2d bi2.04 syl6rbbr ) BDZABCEZFABCFZCFZFMACFFKLNABCG
    HMACIJ $.

  $( Implication in terms of disjunction for a decidable proposition.  Based on
     theorem *4.6 of [WhiteheadRussell] p. 120.  The reverse direction,
     ~ imorr , holds for all propositions.  (Contributed by Jim Kingdon,
     20-Apr-2018.) $)
  imordc $p |- ( DECID ph -> ( ( ph -> ps ) <-> ( -. ph \/ ps ) ) ) $=
    ( wdc wi wn wo notnotdc imbi1d wb dcn dfordc syl bitr4d ) ACZABDAEZEZBDZOBF
    ZNAPBAGHNOCRQIAJOBKLM $.

  $( Implication in terms of disjunction.  One direction of theorem *4.6 of
     [WhiteheadRussell] p. 120.  The converse holds for decidable propositions,
     as seen at ~ imordc .  (Contributed by Jim Kingdon, 21-Jul-2018.) $)
  imorr $p |- ( ( -. ph \/ ps ) -> ( ph -> ps ) ) $=
    ( wn wi ax-in2 ax-1 jaoi ) ACABDBABEBAFG $.

  $( Implication in terms of disjunction.  Like Theorem *4.62 of
     [WhiteheadRussell] p. 120, but for a decidable antecedent.  (Contributed
     by Jim Kingdon, 21-Apr-2018.) $)
  pm4.62dc $p |- ( DECID ph -> ( ( ph -> -. ps ) <-> ( -. ph \/ -. ps ) ) ) $=
    ( wn imordc ) ABCD $.

  $( Negated conjunction in terms of disjunction (DeMorgan's law).  Theorem
     *4.51 of [WhiteheadRussell] p. 120, but where one proposition is
     decidable.  The reverse direction, ~ pm3.14 , holds for all propositions,
     but the equivalence only holds where one proposition is decidable.
     (Contributed by Jim Kingdon, 21-Apr-2018.) $)
  ianordc $p |- ( DECID ph -> ( -. ( ph /\ ps ) <-> ( -. ph \/ -. ps ) ) ) $=
    ( wa wn wi wdc wo imnan pm4.62dc syl5bbr ) ABCDABDZEAFADKGABHABIJ $.

  $( Absorption of disjunction into equivalence.  (Contributed by NM,
     6-Aug-1995.)  (Proof shortened by Wolf Lammen, 3-Nov-2013.) $)
  oibabs $p |- ( ( ( ph \/ ps ) -> ( ph <-> ps ) ) <-> ( ph <-> ps ) ) $=
    ( wo wb wi pm2.67-2 ibd olc imim1i ibibr sylibr impbid ax-1 impbii ) ABCZAB
    DZEZPQABQABAPBFGQBPEBAEBOPBAHIBAJKLPOMN $.

  $( Theorem *4.64 of [WhiteheadRussell] p. 120, given a decidability
     condition.  The reverse direction, ~ pm2.53 , holds for all propositions.
     (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.64dc $p |- ( DECID ph -> ( ( -. ph -> ps ) <-> ( ph \/ ps ) ) ) $=
    ( wdc wo wn wi dfordc bicomd ) ACABDAEBFABGH $.

  $( Theorem *4.66 of [WhiteheadRussell] p. 120, given a decidability
     condition.  (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.66dc $p |- ( DECID ph -> ( ( -. ph -> -. ps ) <-> ( ph \/ -. ps ) ) ) $=
    ( wn pm4.64dc ) ABCD $.

  $( One direction of theorem *4.52 of [WhiteheadRussell] p. 120.  The converse
     also holds in classical logic.  (Contributed by Jim Kingdon,
     27-Jul-2018.) $)
  pm4.52im $p |- ( ( ph /\ -. ps ) -> -. ( -. ph \/ ps ) ) $=
    ( wn wa wi wo annimim imorr nsyl ) ABCDABEACBFABGABHI $.

  $( One direction of theorem *4.53 of [WhiteheadRussell] p. 120.  The converse
     also holds in classical logic.  (Contributed by Jim Kingdon,
     27-Jul-2018.) $)
  pm4.53r $p |- ( ( -. ph \/ ps ) -> -. ( ph /\ -. ps ) ) $=
    ( wn wa wo pm4.52im con2i ) ABCDACBEABFG $.

  $( Theorem *4.54 of [WhiteheadRussell] p. 120, for decidable propositions.
     One form of DeMorgan's law.  (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.54dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph /\ ps ) <-> -. ( ph \/ -. ps ) ) ) ) $=
    ( wdc wn wa wo wb wi dcn dfandc syl imp pm4.66dc adantr notbid bitrd ex ) A
    CZBCZADZBEZABDZFZDZGRSEZUATUBHZDZUDRSUAUGGZRTCSUHHAITBJKLUEUFUCRUFUCGSABMNO
    PQ $.

  $( Theorem *4.56 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.56 $p |- ( ( -. ph /\ -. ps ) <-> -. ( ph \/ ps ) ) $=
    ( wo wn wa ioran bicomi ) ABCDADBDEABFG $.

  $( Disjunction in terms of conjunction (DeMorgan's law).  One direction of
     Theorem *4.57 of [WhiteheadRussell] p. 120.  The converse does not hold
     intuitionistically but does hold in classical logic.  (Contributed by Jim
     Kingdon, 25-Jul-2018.) $)
  oranim $p |- ( ( ph \/ ps ) -> -. ( -. ph /\ -. ps ) ) $=
    ( wn wa wo pm4.56 biimpi con2i ) ACBCDZABEZIJCABFGH $.

  $( Implication distributes over disjunction.  One direction of Theorem *4.78
     of [WhiteheadRussell] p. 121.  The converse holds in classical logic.
     (Contributed by Jim Kingdon, 15-Jan-2018.) $)
  pm4.78i $p |- ( ( ( ph -> ps ) \/ ( ph -> ch ) ) ->
       ( ph -> ( ps \/ ch ) ) ) $=
    ( wi wo orc imim2i olc jaoi ) ABDABCEZDACDBJABCFGCJACBHGI $.

  $( Equivalence between a disjunction of two implications, and a conjunction
     and an implication.  Based on theorem *4.79 of [WhiteheadRussell] p. 121
     but with additional decidability antecedents.  (Contributed by Jim
     Kingdon, 28-Mar-2018.) $)
  pm4.79dc $p |- ( DECID ph -> ( DECID ps ->
                 ( ( ( ps -> ph ) \/ ( ch -> ph ) ) <->
                   ( ( ps /\ ch ) -> ph ) ) ) ) $=
    ( wdc wi wo wa wb id jaoa simplimdc pm3.3 syl9 dcim pm2.54dc syl6 syl5d imp
    wn impbid2 expcom ) BDZADZBAEZCAEZFZBCGAEZHUBUCGUFUGUDBAUECUDIUEIJUBUCUGUFE
    UBUGUDSZUEEZUCUFUBUHBUGUEBAKBCALMUBUCUDDUIUFEBANUDUEOPQRTUA $.

  $( Two ways of stating exclusive-or which are equivalent for a decidable
     proposition.  Based on theorem *5.17 of [WhiteheadRussell] p. 124.
     (Contributed by Jim Kingdon, 16-Apr-2018.) $)
  pm5.17dc $p |- ( DECID ps ->
      ( ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) <-> ( ph <-> -. ps ) ) ) $=
    ( wn wb wdc wo wa bicom dfbi2 orcom dfordc syl5rbb imnan a1i anbi12d syl5bb
    wi ) ABCZDRADZBEZABFZABGCZGZARHSRAQZARQZGTUCRAITUDUAUEUBUABAFTUDABJBAKLUEUB
    DTABMNOPL $.

  $( Reverse distribution of disjunction over implication, given decidability.
     Based on theorem *2.85 of [WhiteheadRussell] p. 108.  (Contributed by Jim
     Kingdon, 1-Apr-2018.) $)
  pm2.85dc $p |- ( DECID ph -> ( ( ( ph \/ ps ) -> ( ph \/ ch ) ) ->
                ( ph \/ ( ps -> ch ) ) ) ) $=
    ( wdc wn wo wi df-dc orc a1d olc imim1i orel1 syl9r syl6 jaoi sylbi ) ADAAE
    ZFABFZACFZGZABCGZFZGZAHAUDRAUCUAAUBIJRUAUBUCUABTRCBSTBAKLACMNUBAKOPQ $.

  $( Disjunction distributes over implication.  The forward direction,
     ~ pm2.76 , is valid intuitionistically.  The reverse direction holds if
     ` ph ` is decidable, as can be seen at ~ pm2.85dc .  (Contributed by Jim
     Kingdon, 1-Apr-2018.) $)
  orimdidc $p |- ( DECID ph -> ( ( ph \/ ( ps -> ch ) ) <->
                ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) ) $=
    ( wdc wi wo pm2.76 pm2.85dc impbid2 ) ADABCEFABFACFEABCGABCHI $.

  $( Decidable proposition version of theorem *2.26 of [WhiteheadRussell]
     p. 104.  (Contributed by Jim Kingdon, 20-Apr-2018.) $)
  pm2.26dc $p |- ( DECID ph -> ( -. ph \/ ( ( ph -> ps ) -> ps ) ) ) $=
    ( wdc wi wn wo pm2.27 imordc mpbii ) ACAABDBDZDAEJFABGAJHI $.

  $( Theorem *4.81 of [WhiteheadRussell] p. 122, for decidable propositions.
     This one needs a decidability condition, but compare with ~ pm4.8 which
     holds for all propositions.  (Contributed by Jim Kingdon, 4-Jul-2018.) $)
  pm4.81dc $p |- ( DECID ph -> ( ( -. ph -> ph ) <-> ph ) ) $=
    ( wdc wn wi pm2.18dc pm2.24 impbid1 ) ABACADAAEAAFG $.

  $( A decidable proposition or its negation implies a second proposition.
     Based on theorem *5.11 of [WhiteheadRussell] p. 123.  (Contributed by Jim
     Kingdon, 29-Mar-2018.) $)
  pm5.11dc $p |- ( DECID ph -> ( DECID ps ->
                   ( ( ph -> ps ) \/ ( -. ph -> ps ) ) ) ) $=
    ( wdc wi wn wo dcim pm2.5dc pm2.54dc syl5com syld ) ACZBCABDZCZMAEBDZFZABGL
    MEODNPABHMOIJK $.

  $( Excluded middle with antecedents for a decidable consequent.  Based on
     theorem *5.12 of [WhiteheadRussell] p. 123.  (Contributed by Jim Kingdon,
     30-Mar-2018.) $)
  pm5.12dc $p |- ( DECID ps -> ( ( ph -> ps ) \/ ( ph -> -. ps ) ) ) $=
    ( wdc wn wo wi df-dc ax-1 orim12i sylbi ) BCBBDZEABFZAKFZEBGBLKMBAHKAHIJ $.

  $( A decidable proposition is implied by or implies other propositions.
     Based on theorem *5.14 of [WhiteheadRussell] p. 123.  (Contributed by Jim
     Kingdon, 30-Mar-2018.) $)
  pm5.14dc $p |- ( DECID ps -> ( ( ph -> ps ) \/ ( ps -> ch ) ) ) $=
    ( wdc wn wo wi df-dc ax-1 ax-in2 orim12i sylbi ) BDBBEZFABGZBCGZFBHBNMOBAIB
    CJKL $.

  $( An implication holds in at least one direction, where one proposition is
     decidable.  Based on theorem *5.13 of [WhiteheadRussell] p. 123.
     (Contributed by Jim Kingdon, 30-Mar-2018.) $)
  pm5.13dc $p |- ( DECID ps -> ( ( ph -> ps ) \/ ( ps -> ph ) ) ) $=
    ( pm5.14dc ) ABAC $.

  $( A disjunction is equivalent to one of its disjuncts, given a decidable
     disjunct.  Based on theorem *5.55 of [WhiteheadRussell] p. 125.
     (Contributed by Jim Kingdon, 30-Mar-2018.) $)
  pm5.55dc $p |- ( DECID ph ->
        ( ( ( ph \/ ps ) <-> ph ) \/ ( ( ph \/ ps ) <-> ps ) ) ) $=
    ( wdc wn wo wb df-dc biort bicomd biorf orim12i sylbi ) ACAADZEABEZAFZNBFZE
    AGAOMPAANABHIMBNABJIKL $.

  $( Peirce's theorem for a decidable proposition.  This odd-looking theorem
     can be seen as an alternative to ~ exmiddc , ~ condc , or ~ notnotdc in
     the sense of expressing the "difference" between an intuitionistic system
     of propositional calculus and a classical system.  In intuitionistic
     logic, it only holds for decidable propositions.  (Contributed by Jim
     Kingdon, 3-Jul-2018.) $)
  peircedc $p |- ( DECID ph -> ( ( ( ph -> ps ) -> ph ) -> ph ) ) $=
    ( wdc wn wo wi df-dc ax-1 pm2.21 imim1i com12 jaoi sylbi ) ACAADZEABFZAFZAF
    ZAGAQNAPHPNANOAABIJKLM $.

  $( The Inversion Axiom of the infinite-valued sentential logic (L-infinity)
     of Lukasiewicz, but where one of the propositions is decidable.  Using
     ~ dfor2dc , we can see that this expresses "disjunction commutes."
     Theorem *2.69 of [WhiteheadRussell] p. 108 (plus the decidability
     condition).  (Contributed by NM, 12-Aug-2004.) $)
  looinvdc $p |- ( DECID ph ->
      ( ( ( ph -> ps ) -> ps ) -> ( ( ps -> ph ) -> ph ) ) ) $=
    ( wi wdc imim1 peircedc syl9r ) ABCZBCBACHACADAHBAEABFG $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Testable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A proposition is testable iff its negative or double-negative is true.
     See Chapter 2 [Moschovakis] p. 2.

     Our notation for testability is ` DECID -. ` before the formula in
     question.  For example, ` DECID -. x = y ` corresponds to "x = y is
     testable".  (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  dftest $p |- ( DECID -. ph <-> ( -. ph \/ -. -. ph ) ) $=
    ( wn df-dc ) ABC $.

  $( A proposition is testable iff its negation is testable.  See also ~ dcn
     (which could be read as "Decidability implies testability").  (Contributed
     by David A. Wheeler, 6-Dec-2018.) $)
  testbitestn $p |- ( DECID -. ph <-> DECID -. -. ph ) $=
    ( wn wo wdc notnotnot orbi2i orcom bitri df-dc 3bitr4ri ) ABZBZLBZCZKLCZLDK
    DNLKCOMKLAEFLKGHLIKIJ $.

  $( "Stable and testable" is equivalent to decidable.  (Contributed by David
     A. Wheeler, 13-Aug-2018.) $)
  stabtestimpdc $p |-
    ( ( STAB ph /\ DECID -. ph ) <-> DECID ph ) $=
    ( wstab wn wdc wa wo exmiddc adantl df-stab biimpi orim2d adantr mpd orcomd
    wi df-dc sylibr dcimpstab dcn jca impbii ) ABZACZDZEZADZUEAUCFUFUEUCAUEUCUC
    CZFZUCAFZUDUHUBUCGHUBUHUIOUDUBUGAUCUBUGAOAIJKLMNAPQUFUBUDARASTUA $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Miscellaneous theorems of propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    pm5.21nd.1 $e |- ( ( ph /\ ps ) -> th ) $.
    pm5.21nd.2 $e |- ( ( ph /\ ch ) -> th ) $.
    pm5.21nd.3 $e |- ( th -> ( ps <-> ch ) ) $.
    $( Eliminate an antecedent implied by each side of a biconditional.
       (Contributed by NM, 20-Nov-2005.)  (Proof shortened by Wolf Lammen,
       4-Nov-2013.) $)
    pm5.21nd $p |- ( ph -> ( ps <-> ch ) ) $=
      ( ex wb wi a1i pm5.21ndd ) ADBCABDEHACDFHDBCIJAGKL $.
  $}

  $( Theorem *5.35 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.35 $p |- ( ( ( ph -> ps ) /\ ( ph -> ch ) ) ->
                ( ph -> ( ps <-> ch ) ) ) $=
    ( wi wa pm5.1 pm5.74rd ) ABDZACDZEABCHIFG $.

  $( A conjunction is equivalent to one of its conjuncts, given a decidable
     conjunct.  Based on theorem *5.54 of [WhiteheadRussell] p. 125.
     (Contributed by Jim Kingdon, 30-Mar-2018.) $)
  pm5.54dc $p |- ( DECID ph ->
                   ( ( ( ph /\ ps ) <-> ph ) \/ ( ( ph /\ ps ) <-> ps ) ) ) $=
    ( wdc wa wb wn df-dc simpr ax-ia3 impbid2 simpl ax-in2 orim12i sylbi orcomd
    wo ) ACZABDZBEZRAEZQAAFZPSTPAGASUATARBABHABIJUARAABKARLJMNO $.

  ${
    baib.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Move conjunction outside of biconditional.  (Contributed by NM,
       13-May-1999.) $)
    baib $p |- ( ps -> ( ph <-> ch ) ) $=
      ( wa ibar syl6rbbr ) BCBCEABCFDG $.

    $( Move conjunction outside of biconditional.  (Contributed by NM,
       11-Jul-1994.) $)
    baibr $p |- ( ps -> ( ch <-> ph ) ) $=
      ( baib bicomd ) BACABCDEF $.

    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.) $)
    rbaib $p |- ( ch -> ( ph <-> ps ) ) $=
      ( wa ancom bitri baib ) ACBABCECBEDBCFGH $.

    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.) $)
    rbaibr $p |- ( ch -> ( ps <-> ph ) ) $=
      ( wa ancom bitri baibr ) ACBABCECBEDBCFGH $.
  $}

  ${
    baibd.1 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.) $)
    baibd $p |- ( ( ph /\ ch ) -> ( ps <-> th ) ) $=
      ( wa ibar bicomd sylan9bb ) ABCDFZCDECDJCDGHI $.

    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.) $)
    rbaibd $p |- ( ( ph /\ th ) -> ( ps <-> ch ) ) $=
      ( wa iba bicomd sylan9bb ) ABCDFZDCEDCJDCGHI $.
  $}

  $( Theorem *5.44 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.44 $p |- ( ( ph -> ps ) -> ( ( ph -> ch ) <->
                ( ph -> ( ps /\ ch ) ) ) ) $=
    ( wa wi jcab baibr ) ABCDEABEACEABCFG $.

  $( Conjunction in antecedent versus disjunction in consequent, for a
     decidable proposition.  Theorem *5.6 of [WhiteheadRussell] p. 125, with
     decidability condition added.  The reverse implication holds for all
     propositions (see ~ pm5.6r ).  (Contributed by Jim Kingdon,
     2-Apr-2018.) $)
  pm5.6dc $p |- ( DECID ps ->
        ( ( ( ph /\ -. ps ) -> ch ) <-> ( ph -> ( ps \/ ch ) ) ) ) $=
    ( wdc wo wi wn wa dfordc imbi2d impexp syl6rbbr ) BDZABCEZFABGZCFZFAOHCFMNP
    ABCIJAOCKL $.

  $( Conjunction in antecedent versus disjunction in consequent.  One direction
     of Theorem *5.6 of [WhiteheadRussell] p. 125.  If ` ps ` is decidable, the
     converse also holds (see ~ pm5.6dc ).  (Contributed by Jim Kingdon,
     4-Aug-2018.) $)
  pm5.6r $p |- ( ( ph -> ( ps \/ ch ) ) -> ( ( ph /\ -. ps ) -> ch ) ) $=
    ( wo wi wn pm2.53 imim2i impd ) ABCDZEABFZCJKCEABCGHI $.

  ${
    orcanai.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Change disjunction in consequent to conjunction in antecedent.
       (Contributed by NM, 8-Jun-1994.) $)
    orcanai $p |- ( ( ph /\ -. ps ) -> ch ) $=
      ( wn ord imp ) ABECABCDFG $.
  $}


  ${
    intnan.1 $e |- -. ph $.
    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       16-Sep-1993.) $)
    intnan $p |- -. ( ps /\ ph ) $=
      ( wa simpr mto ) BADACBAEF $.

    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       3-Apr-1995.) $)
    intnanr $p |- -. ( ph /\ ps ) $=
      ( wa simpl mto ) ABDACABEF $.
  $}

  ${
    intnand.1 $e |- ( ph -> -. ps ) $.
    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       10-Jul-2005.) $)
    intnand $p |- ( ph -> -. ( ch /\ ps ) ) $=
      ( wa simpr nsyl ) ABCBEDCBFG $.

    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       10-Jul-2005.) $)
    intnanrd $p |- ( ph -> -. ( ps /\ ch ) ) $=
      ( wa simpl nsyl ) ABBCEDBCFG $.
  $}

  $( A conjunction of two decidable propositions is decidable.  (Contributed by
     Jim Kingdon, 12-Apr-2018.) $)
  dcan $p |- ( DECID ph -> ( DECID ps -> DECID ( ph /\ ps ) ) ) $=
    ( wa wn wo simpl intnanrd orim2i simpr intnand olcd jaoi df-dc anbi12i andi
    wdc andir orbi1i 3bitri 3imtr4i ex ) APZBPZABCZPZUDADZBCZEZAUFEZBDZCZEZUDUD
    DZEZUBUCCZUEUHUNUKUGUMUDUGABUFBFGHUKUMUDUKBAUIUJIJKLUOUIBUJEZCUIBCZUKEULUBU
    IUCUPAMBMNUIBUJOUQUHUKAUFBQRSUDMTUA $.

  $( A disjunction of two decidable propositions is decidable.  (Contributed by
     Jim Kingdon, 21-Apr-2018.) $)
  dcor $p |- ( DECID ph -> ( DECID ps -> DECID ( ph \/ ps ) ) ) $=
    ( wdc wn wo wi df-dc orc orcd sylibr a1d wa olc adantl ioran biimpri jaodan
    olcd sylan2b ex jaoi sylbi ) ACAADZEBCZABEZCZFZAGAUGUCAUFUDAUEUEDZEZUFAUEUH
    ABHIUEGZJKUCUDUFUDUCBBDZEUFBGUCBUFUKUCBLZUIUFULUEUHBUEUCBAMNIUJJUCUKLZUIUFU
    MUHUEUHUMABOPRUJJQSTUAUB $.

  $( An equivalence of two decidable propositions is decidable.  (Contributed
     by Jim Kingdon, 12-Apr-2018.) $)
  dcbi $p |- ( DECID ph -> ( DECID ps -> DECID ( ph <-> ps ) ) ) $=
    ( wdc wi wa wb dcim com12 dcan syl6c dfbi2 dcbii syl6ibr ) ACZBCZABDZBADZEZ
    CZABFZCNOPCQCZSABGONUABAGHPQIJTRABKLM $.

  $( Express conjunction in terms of implication.  The forward direction,
     ~ annimim , is valid for all propositions, but as an equivalence, it
     requires a decidability condition.  (Contributed by Jim Kingdon,
     25-Apr-2018.) $)
  annimdc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph /\ -. ps ) <-> -. ( ph -> ps ) ) ) ) $=
    ( wdc wn wa wi wb imandc adantl dcim imp dcn dcan syl5 con2bidc sylc mpbid
    ex ) ACZBCZABDZEZABFZDGZSTEZUCUBDGZUDTUFSABHIUEUCCZUBCZUFUDGSTUGABJKSTUHTUA
    CSUHBLAUAMNKUCUBOPQR $.

  $( Theorem *4.55 of [WhiteheadRussell] p. 120, for decidable propositions.
     (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.55dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( -. ph /\ ps ) <-> ( ph \/ -. ps ) ) ) ) $=
    ( wdc wn wa wo wb pm4.54dc imp dcn anim2i dcor syl wi dcan con2bidc biimprd
    jca mpd bicomd ex ) ACZBCZADZBEZDZABDZFZGUBUCEZUHUFUIUEUHDGZUHUFGZUBUCUJABH
    IUIUKUJUIUHCZUECZEUKUJGZUIULUMUIUBUGCZEULUCUOUBBJKUBUOULAUGLIMUBUCUMUBUDCUC
    UMNAJUDBOMIRULUMUNUHUEPIMQSTUA $.

  ${
    mpbiran.1 $e |- ps $.
    mpbiran.2 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Detach truth from conjunction in biconditional.  (Contributed by NM,
       27-Feb-1996.)  (Revised by NM, 9-Jan-2015.) $)
    mpbiran $p |- ( ph <-> ch ) $=
      ( wa biantrur bitr4i ) ABCFCEBCDGH $.
  $}

  ${
    mpbiran2.1 $e |- ch $.
    mpbiran2.2 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Detach truth from conjunction in biconditional.  (Contributed by NM,
       22-Feb-1996.)  (Revised by NM, 9-Jan-2015.) $)
    mpbiran2 $p |- ( ph <-> ps ) $=
      ( wa biantru bitr4i ) ABCFBECBDGH $.
  $}

  ${
    mpbir2an.1 $e |- ps $.
    mpbir2an.2 $e |- ch $.
    mpbiran2an.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       10-May-2005.)  (Revised by NM, 9-Jan-2015.) $)
    mpbir2an $p |- ph $=
      ( mpbiran mpbir ) ACEABCDFGH $.
  $}

  ${
    mpbi2and.1 $e |- ( ph -> ps ) $.
    mpbi2and.2 $e |- ( ph -> ch ) $.
    mpbi2and.3 $e |- ( ph -> ( ( ps /\ ch ) <-> th ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       6-Nov-2011.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    mpbi2and $p |- ( ph -> th ) $=
      ( wa jca mpbid ) ABCHDABCEFIGJ $.
  $}

  ${
    mpbir2and.1 $e |- ( ph -> ch ) $.
    mpbir2and.2 $e |- ( ph -> th ) $.
    mpbir2and.3 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       6-Nov-2011.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    mpbir2and $p |- ( ph -> ps ) $=
      ( wa jca mpbird ) ABCDHACDEFIGJ $.
  $}

  $( Theorem *5.62 of [WhiteheadRussell] p. 125, for a decidable proposition.
     (Contributed by Jim Kingdon, 12-May-2018.) $)
  pm5.62dc $p |- ( DECID ps ->
      ( ( ( ph /\ ps ) \/ -. ps ) <-> ( ph \/ -. ps ) ) ) $=
    ( wdc wn wo wa wb df-dc ordir simplbi simplbi2 com12 impbid2 sylbi ) BCBBDZ
    EZABFOEZAOEZGBHPQRQRPABOIZJRPQQRPSKLMN $.

  $( Theorem *5.63 of [WhiteheadRussell] p. 125, for a decidable proposition.
     (Contributed by Jim Kingdon, 12-May-2018.) $)
  pm5.63dc $p |- ( DECID ph ->
      ( ( ph \/ ps ) <-> ( ph \/ ( -. ph /\ ps ) ) ) ) $=
    ( wdc wo wn wa wi df-dc ordi simplbi2 sylbi simprbi impbid1 ) ACZABDZAAEZBF
    DZNAPDZOQGAHQROAPBIZJKQROSLM $.

  ${
    bianfi.1 $e |- -. ph $.
    $( A wff conjoined with falsehood is false.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Wolf Lammen, 26-Nov-2012.) $)
    bianfi $p |- ( ph <-> ( ps /\ ph ) ) $=
      ( wa intnan 2false ) ABADCABCEF $.
  $}

  ${
    bianfd.1 $e |- ( ph -> -. ps ) $.
    $( A wff conjoined with falsehood is false.  (Contributed by NM,
       27-Mar-1995.)  (Proof shortened by Wolf Lammen, 5-Nov-2013.) $)
    bianfd $p |- ( ph -> ( ps <-> ( ps /\ ch ) ) ) $=
      ( wa intnanrd 2falsed ) ABBCEDABCDFG $.
  $}

  $( Theorem *4.43 of [WhiteheadRussell] p. 119.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 26-Nov-2012.) $)
  pm4.43 $p |- ( ph <-> ( ( ph \/ ps ) /\ ( ph \/ -. ps ) ) ) $=
    ( wn wa wo pm3.24 biorfi ordi bitri ) AABBCZDZEABEAJEDKABFGABJHI $.

  $( Theorem *4.82 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.82 $p |- ( ( ( ph -> ps ) /\ ( ph -> -. ps ) ) <-> -. ph ) $=
    ( wi wn wa pm2.65 imp pm2.21 jca impbii ) ABCZABDZCZEADZKMNABFGNKMABHALHIJ
    $.

  $( Theorem *4.83 of [WhiteheadRussell] p. 122, for decidable propositions.
     As with other case elimination theorems, like ~ pm2.61dc , it only holds
     for decidable propositions.  (Contributed by Jim Kingdon, 12-May-2018.) $)
  pm4.83dc $p |- ( DECID ph ->
      ( ( ( ph -> ps ) /\ ( -. ph -> ps ) ) <-> ps ) ) $=
    ( wdc wi wn wa wo df-dc pm3.44 com12 sylbi ax-1 jca impbid1 ) ACZABDZAEZBDZ
    FZBOAQGZSBDAHSTBBAQIJKBPRBALBQLMN $.

  $( A transitive law of equivalence.  Compare Theorem *4.22 of
     [WhiteheadRussell] p. 117.  (Contributed by NM, 18-Aug-1993.) $)
  biantr $p |- ( ( ( ph <-> ps ) /\ ( ch <-> ps ) ) -> ( ph <-> ch ) ) $=
    ( wb id bibi2d biimparc ) CBDZACDABDHCBAHEFG $.

  $( Disjunction distributes over the biconditional, for a decidable
     proposition.  Based on an axiom of system DS in Vladimir Lifschitz, "On
     calculational proofs" (1998),
     ~ http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.3384 .
     (Contributed by Jim Kingdon, 2-Apr-2018.) $)
  orbididc $p |- ( DECID ph -> ( ( ph \/ ( ps <-> ch ) ) <->
                ( ( ph \/ ps ) <-> ( ph \/ ch ) ) ) ) $=
    ( wdc wi wo wa wb orimdidc anbi12d dfbi2 orbi2i ordi bitri 3bitr4g ) ADZABC
    EZFZACBEZFZGZABFZACFZEZUCUBEZGABCHZFZUBUCHPRUDTUEABCIACBIJUGAQSGZFUAUFUHABC
    KLAQSMNUBUCKO $.

  $( Disjunction distributes over the biconditional, for a decidable
     proposition.  Based on theorem *5.7 of [WhiteheadRussell] p. 125.  This
     theorem is similar to ~ orbididc .  (Contributed by Jim Kingdon,
     2-Apr-2018.) $)
  pm5.7dc $p |- ( DECID ch -> ( ( ( ph \/ ch ) <-> ( ps \/ ch ) ) <->
               ( ch \/ ( ph <-> ps ) ) ) ) $=
    ( wdc wb wo orbididc orcom bibi12i syl6rbb ) CDCABEFCAFZCBFZEACFZBCFZECABGK
    MLNCAHCBHIJ $.

  $( Dijkstra-Scholten's Golden Rule for calculational proofs.  (Contributed by
     NM, 10-Jan-2005.) $)
  bigolden $p |- ( ( ( ph /\ ps ) <-> ph ) <-> ( ps <-> ( ph \/ ps ) ) ) $=
    ( wi wa wb wo pm4.71 pm4.72 bicom 3bitr3ri ) ABCAABDZEBABFEKAEABGABHAKIJ $.

  $( Conjunction in terms of disjunction (DeMorgan's law).  Theorem *4.5 of
     [WhiteheadRussell] p. 120, but where the propositions are decidable.  The
     forward direction, ~ pm3.1 , holds for all propositions, but the
     equivalence only holds given decidability.  (Contributed by Jim Kingdon,
     21-Apr-2018.) $)
  anordc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph /\ ps ) <-> -. ( -. ph \/ -. ps ) ) ) ) $=
    ( wdc wa wn wo wb dcan ianordc bicomd a1d con2biddc syld ) ACZBCABDZCZOAEBE
    FZEGABHNQONQOEZGPNRQABIJKLM $.

  $( Theorem *3.11 of [WhiteheadRussell] p. 111, but for decidable
     propositions.  The converse, ~ pm3.1 , holds for all propositions, not
     just decidable ones.  (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  pm3.11dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( -. ph \/ -. ps ) -> ( ph /\ ps ) ) ) ) $=
    ( wdc wn wo wa wi wb anordc imp biimprd ex ) ACZBCZADBDEDZABFZGMNFPOMNPOHAB
    IJKL $.

  $( Theorem *3.12 of [WhiteheadRussell] p. 111, but for decidable
     propositions.  (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  pm3.12dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph \/ -. ps ) \/ ( ph /\ ps ) ) ) ) $=
    ( wdc wn wo wa wi pm3.11dc imp wb dcn dcor syl2im dfordc syl6 mpbird ex ) A
    CZBCZADZBDZEZABFZEZRSFUDUBDUCGZRSUEABHIRSUDUEJZRSUBCZUFRTCSUACUGAKBKTUALMUB
    UCNOIPQ $.

  $( Theorem *3.13 of [WhiteheadRussell] p. 111, but for decidable
     propositions.  The converse, ~ pm3.14 , holds for all propositions.
     (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  pm3.13dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph /\ ps ) -> ( -. ph \/ -. ps ) ) ) ) $=
    ( wdc wn wo wa wi dcn dcor syl2im pm3.11dc con1dc syl6c ) ACZBCZADZBDZEZCZR
    DABFZGTDRGNPCOQCSAHBHPQIJABKRTLM $.

  $( DN_1 for decidable propositions.  Without the decidability conditions,
     DN_1 can serve as a single axiom for Boolean algebra.  See
     ~ http://www-unix.mcs.anl.gov/~~mccune/papers/basax/v12.pdf .
     (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  dn1dc $p |- ( ( DECID ph /\ ( DECID ps /\ ( DECID ch /\ DECID th ) ) ) ->
      ( -. ( -. ( -. ( ph \/ ps ) \/ ch ) \/
            -. ( ph \/ -. ( -. ch \/ -. ( ch \/ th ) ) ) ) <-> ch ) ) $=
    ( wo wn wa wdc wi pm2.45 imnan mpbi biorfi wb dcor imp anordc sylc dcn syl
    orcom ordir 3bitri pm4.45 simprrl ad2antll syl5bb orbi2d anbi2d syl6 syldan
    adantrr bitrd syl5rbb ) CABEZFZCEZACEZGZAHZBHZCHZDHZGZGZGZUQFACFZCDEZFZEZFZ
    EZFEFZCCUPAGZEVNCEUSVNCUPAFIVNFABJUPAKLMCVNUAUPACUBUCVFUSUQVLGZVMVFURVLUQVF
    CVKACCVHGZVFVKCDUDVFVBVHHZVPVKNUTVAVBVCUEZVDVQUTVAVBVCVQCDOPUFZCVHQRUGUHUIV
    FUQHZVLHZVOVMNVFUPHZVBVTUTVAWBVDUTVAWBUTVAUOHWBABOUOSUJPULVRUPCORUTVEVKHZWA
    VFVJHZWCVFVGHZVIHZWDVFVBWEVRCSTVFVQWFVSVHSTVGVIORVJSTUTWCWAAVKOPUKUQVLQRUMU
    N $.

  $( Decidable proposition version of theorem *5.71 of [WhiteheadRussell]
     p. 125.  (Contributed by Roy F. Longton, 23-Jun-2005.)  (Modified for
     decidability by Jim Kingdon, 19-Apr-2018.) $)
  pm5.71dc $p |- ( DECID ps ->
      ( ( ps -> -. ch ) -> ( ( ( ph \/ ps ) /\ ch ) <-> ( ph /\ ch ) ) ) ) $=
    ( wn wo wa wb wi wdc orel2 orc impbid1 anbi1d a1i pm2.21 pm5.32rd jadc ) BC
    DZABEZCFACFGZBDZTHBIUASACUASABAJABKLMNRCSACSAGOPQ $.

  $( Theorem *5.75 of [WhiteheadRussell] p. 126.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Andrew Salmon, 7-May-2011.)  (Proof
     shortened by Wolf Lammen, 23-Dec-2012.) $)
  pm5.75 $p |- ( ( ( ch -> -. ps ) /\ ( ph <-> ( ps \/ ch ) ) ) ->
                ( ( ph /\ -. ps ) <-> ch ) ) $=
    ( wo wb wn wa wi anbi1 anbi1i pm5.61 syl6bb pm4.71 biimpi bicomd sylan9bbr
    orcom bitri ) ABCDZEZABFZGZCUAGZCUAHZCTUBSUAGZUCASUAIUECBDZUAGUCSUFUABCQJCB
    KRLUDCUCUDCUCECUAMNOP $.

  $( Removal of conjunct from one side of an equivalence.  (Contributed by NM,
     5-Aug-1993.) $)
  bimsc1 $p |- ( ( ( ph -> ps ) /\ ( ch <-> ( ps /\ ph ) ) )
               -> ( ch <-> ph ) ) $=
    ( wi wa wb simpr ancr impbid2 bibi2d biimpa ) ABDZCBAEZFCAFLMACLMABAGABHIJK
    $.

  ${
    ccase.1 $e |- ( ( ph /\ ps ) -> ta ) $.
    ccase.2 $e |- ( ( ch /\ ps ) -> ta ) $.
    ccase.3 $e |- ( ( ph /\ th ) -> ta ) $.
    ccase.4 $e |- ( ( ch /\ th ) -> ta ) $.
    $( Inference for combining cases.  (Contributed by NM, 29-Jul-1999.)
       (Proof shortened by Wolf Lammen, 6-Jan-2013.) $)
    ccase $p |- ( ( ( ph \/ ch ) /\ ( ps \/ th ) ) -> ta ) $=
      ( wo jaoian jaodan ) ACJBEDABECFGKADECHIKL $.
  $}

  ${
    ccased.1 $e |- ( ph -> ( ( ps /\ ch ) -> et ) ) $.
    ccased.2 $e |- ( ph -> ( ( th /\ ch ) -> et ) ) $.
    ccased.3 $e |- ( ph -> ( ( ps /\ ta ) -> et ) ) $.
    ccased.4 $e |- ( ph -> ( ( th /\ ta ) -> et ) ) $.
    $( Deduction for combining cases.  (Contributed by NM, 9-May-2004.) $)
    ccased $p |- ( ph -> ( ( ( ps \/ th ) /\ ( ch \/ ta ) ) -> et ) ) $=
      ( wo wa wi com12 ccase ) BDKCEKLAFBCDEAFMABCLFGNADCLFHNABELFINADELFJNON
      $.
  $}

  ${
    ccase2.1 $e |- ( ( ph /\ ps ) -> ta ) $.
    ccase2.2 $e |- ( ch -> ta ) $.
    ccase2.3 $e |- ( th -> ta ) $.
    $( Inference for combining cases.  (Contributed by NM, 29-Jul-1999.) $)
    ccase2 $p |- ( ( ( ph \/ ch ) /\ ( ps \/ th ) ) -> ta ) $=
      ( adantr adantl ccase ) ABCDEFCEBGIDEAHJDECHJK $.
  $}

  ${
    niabn.1 $e |- ph $.
    $( Miscellaneous inference relating falsehoods.  (Contributed by NM,
       31-Mar-1994.) $)
    niabn $p |- ( -. ps -> ( ( ch /\ ps ) <-> -. ph ) ) $=
      ( wa wn simpr pm2.24i pm5.21ni ) CBEBAFCBGABDHI $.
  $}

  $( Alternate version of ~ dedlema .  (Contributed by NM, 2-Apr-1994.)  (Proof
     shortened by Andrew Salmon, 7-May-2011.)  (Proof shortened by Wolf Lammen,
     4-Dec-2012.) $)
  dedlem0a $p |- ( ph -> ( ps <-> ( ( ch -> ph ) -> ( ps /\ ph ) ) ) ) $=
    ( wa wi iba wb ax-1 biimt syl bitrd ) ABBADZCAEZLEZABFAMLNGACHMLIJK $.

  $( Lemma for ~ iftrue .  (Contributed by NM, 26-Jun-2002.)  (Proof shortened
     by Andrew Salmon, 7-May-2011.) $)
  dedlema $p |- ( ph -> ( ps <-> ( ( ps /\ ph ) \/ ( ch /\ -. ph ) ) ) ) $=
    ( wa wn wo orc expcom wi simpl a1i pm2.24 adantld jaod impbid ) ABBADZCAEZD
    ZFZBASPRGHAPBRPBIABAJKAQBCABLMNO $.

  $( Lemma for ~ iffalse .  (Contributed by NM, 15-May-1999.)  (Proof shortened
     by Andrew Salmon, 7-May-2011.) $)
  dedlemb $p |- ( -. ph -> ( ch <-> ( ( ps /\ ph ) \/ ( ch /\ -. ph ) ) ) ) $=
    ( wn wa wo olc expcom pm2.21 adantld wi simpl a1i jaod impbid ) ADZCBAEZCPE
    ZFZCPSRQGHPQCRPACBACIJRCKPCPLMNO $.

  $( One direction of Theorem *4.42 of [WhiteheadRussell] p. 119.  (Contributed
     by Jim Kingdon, 4-Aug-2018.) $)
  pm4.42r $p |- ( ( ( ph /\ ps ) \/ ( ph /\ -. ps ) ) -> ph ) $=
    ( wa wn simpl jaoi ) ABCAABDZCABEAGEF $.

  ${
    ninba.1 $e |- ph $.
    $( Miscellaneous inference relating falsehoods.  (Contributed by NM,
       31-Mar-1994.) $)
    ninba $p |- ( -. ps -> ( -. ph <-> ( ch /\ ps ) ) ) $=
      ( wn wa niabn bicomd ) BECBFAEABCDGH $.
  $}

  ${
    prlem1.1 $e |- ( ph -> ( et <-> ch ) ) $.
    prlem1.2 $e |- ( ps -> -. th ) $.
    $( A specialized lemma for set theory (to derive the Axiom of Pairing).
       (Contributed by NM, 18-Oct-1995.)  (Proof shortened by Andrew Salmon,
       13-May-2011.)  (Proof shortened by Wolf Lammen, 5-Jan-2013.) $)
    prlem1 $p |- ( ph -> ( ps ->
                  ( ( ( ps /\ ch ) \/ ( th /\ ta ) ) -> et ) ) ) $=
      ( wa wo wi biimprd adantld pm2.21d adantrd jaao ex ) ABBCIZDEIZJFKARFBSAC
      FBAFCGLMBDFEBDFHNOPQ $.
  $}

  $( A specialized lemma for set theory (to derive the Axiom of Pairing).
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
     13-May-2011.)  (Proof shortened by Wolf Lammen, 9-Dec-2012.) $)
  prlem2 $p |- ( ( ( ph /\ ps ) \/ ( ch /\ th ) ) <->
              ( ( ph \/ ch ) /\ ( ( ph /\ ps ) \/ ( ch /\ th ) ) ) ) $=
    ( wa wo simpl orim12i pm4.71ri ) ABEZCDEZFACFJAKCABGCDGHI $.

  ${
    oplem1.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    oplem1.2 $e |- ( ph -> ( th \/ ta ) ) $.
    oplem1.3 $e |- ( ps <-> th ) $.
    oplem1.4 $e |- ( ch -> ( th <-> ta ) ) $.
    $( A specialized lemma for set theory (ordered pair theorem).  (Contributed
       by NM, 18-Oct-1995.)  (Proof shortened by Wolf Lammen, 8-Dec-2012.)
       (Proof shortened by Mario Carneiro, 2-Feb-2015.) $)
    oplem1 $p |- ( ph -> ps ) $=
      ( wo idd wi ax-1 biimprcd jaoi syl syl6ibr jaod mpd ) ABCJBFABBCABKACDBAD
      EJCDLZGDTEDCMCDEINOPHQRS $.
  $}

  $( Lemma used in construction of real numbers.  (Contributed by NM,
     4-Sep-1995.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  rnlem $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
  ( ( ( ph /\ ch ) /\ ( ps /\ th ) ) /\ ( ( ph /\ th ) /\ ( ps /\ ch ) ) ) ) $=
    ( wa an4 biimpi an42 biimpri jca adantl impbii ) ABECDEEZACEBDEEZADEBCEEZEM
    NOMNABCDFGOMADBCHZIJOMNOMPGKL $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Abbreviated conjunction and disjunction of three wff's
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend wff definition to include 3-way disjunction ('or'). $)
  w3o $a wff ( ph \/ ps \/ ch ) $.
  $( Extend wff definition to include 3-way conjunction ('and'). $)
  w3a $a wff ( ph /\ ps /\ ch ) $.

  $( These abbreviations help eliminate parentheses to aid readability. $)

  $( Define disjunction ('or') of 3 wff's.  Definition *2.33 of
     [WhiteheadRussell] p. 105.  This abbreviation reduces the number of
     parentheses and emphasizes that the order of bracketing is not important
     by virtue of the associative law ~ orass .  (Contributed by NM,
     8-Apr-1994.) $)
  df-3or $a |- ( ( ph \/ ps \/ ch ) <-> ( ( ph \/ ps ) \/ ch ) ) $.

  $( Define conjunction ('and') of 3 wff.s.  Definition *4.34 of
     [WhiteheadRussell] p. 118.  This abbreviation reduces the number of
     parentheses and emphasizes that the order of bracketing is not important
     by virtue of the associative law ~ anass .  (Contributed by NM,
     8-Apr-1994.) $)
  df-3an $a |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ps ) /\ ch ) ) $.

  $( Associative law for triple disjunction.  (Contributed by NM,
     8-Apr-1994.) $)
  3orass $p |- ( ( ph \/ ps \/ ch ) <-> ( ph \/ ( ps \/ ch ) ) ) $=
    ( w3o wo df-3or orass bitri ) ABCDABECEABCEEABCFABCGH $.

  $( Associative law for triple conjunction.  (Contributed by NM,
     8-Apr-1994.) $)
  3anass $p |- ( ( ph /\ ps /\ ch ) <-> ( ph /\ ( ps /\ ch ) ) ) $=
    ( w3a wa df-3an anass bitri ) ABCDABECEABCEEABCFABCGH $.

  $( Rotation law for triple conjunction.  (Contributed by NM, 8-Apr-1994.) $)
  3anrot $p |- ( ( ph /\ ps /\ ch ) <-> ( ps /\ ch /\ ph ) ) $=
    ( wa w3a ancom 3anass df-3an 3bitr4i ) ABCDZDJADABCEBCAEAJFABCGBCAHI $.

  $( Rotation law for triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3orrot $p |- ( ( ph \/ ps \/ ch ) <-> ( ps \/ ch \/ ph ) ) $=
    ( wo w3o orcom 3orass df-3or 3bitr4i ) ABCDZDJADABCEBCAEAJFABCGBCAHI $.

  $( Commutation law for triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3ancoma $p |- ( ( ph /\ ps /\ ch ) <-> ( ps /\ ph /\ ch ) ) $=
    ( wa w3a ancom anbi1i df-3an 3bitr4i ) ABDZCDBADZCDABCEBACEJKCABFGABCHBACHI
    $.

  $( Commutation law for triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3ancomb $p |- ( ( ph /\ ps /\ ch ) <-> ( ph /\ ch /\ ps ) ) $=
    ( w3a 3ancoma 3anrot bitri ) ABCDBACDACBDABCEBACFG $.

  $( Commutation law for triple disjunction.  (Contributed by Scott Fenton,
     20-Apr-2011.) $)
  3orcomb $p |- ( ( ph \/ ps \/ ch ) <-> ( ph \/ ch \/ ps ) ) $=
    ( wo w3o orcom orbi2i 3orass 3bitr4i ) ABCDZDACBDZDABCEACBEJKABCFGABCHACBHI
    $.

  $( Reversal law for triple conjunction.  (Contributed by NM, 21-Apr-1994.) $)
  3anrev $p |- ( ( ph /\ ps /\ ch ) <-> ( ch /\ ps /\ ph ) ) $=
    ( w3a 3ancoma 3anrot bitr4i ) ABCDBACDCBADABCECBAFG $.

  $( Convert triple conjunction to conjunction, then commute.  (Contributed by
     Jonathan Ben-Naim, 3-Jun-2011.) $)
  3anan32 $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ch ) /\ ps ) ) $=
    ( w3a wa df-3an an32 bitri ) ABCDABECEACEBEABCFABCGH $.

  $( Convert triple conjunction to conjunction, then commute.  (Contributed by
     Jonathan Ben-Naim, 3-Jun-2011.)  (Proof shortened by Andrew Salmon,
     14-Jun-2011.) $)
  3anan12 $p |- ( ( ph /\ ps /\ ch ) <-> ( ps /\ ( ph /\ ch ) ) ) $=
    ( w3a wa 3ancoma 3anass bitri ) ABCDBACDBACEEABCFBACGH $.

  $( Distribution of triple conjunction over conjunction.  (Contributed by
     David A. Wheeler, 4-Nov-2018.) $)
  anandi3 $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ps ) /\ ( ph /\ ch ) ) )
    $=
    ( w3a wa 3anass anandi bitri ) ABCDABCEEABEACEEABCFABCGH $.

  $( Distribution of triple conjunction over conjunction.  (Contributed by
     David A. Wheeler, 4-Nov-2018.) $)
  anandi3r $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ps ) /\ ( ch /\ ps ) ) )
    $=
    ( w3a wa 3anan32 anandir bitri ) ABCDACEBEABECBEEABCFACBGH $.

  $( Negated triple disjunction as triple conjunction.  (Contributed by Scott
     Fenton, 19-Apr-2011.) $)
  3ioran $p |- ( -. ( ph \/ ps \/ ch ) <-> ( -. ph /\ -. ps /\ -. ch ) ) $=
    ( wo wn wa w3o w3a ioran anbi1i df-3or xchnxbir df-3an 3bitr4i ) ABDZEZCEZF
    ZAEZBEZFZQFABCGZESTQHPUAQABIJOCDRUBOCIABCKLSTQMN $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3simpa $p |- ( ( ph /\ ps /\ ch ) -> ( ph /\ ps ) ) $=
    ( w3a wa df-3an simplbi ) ABCDABECABCFG $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3simpb $p |- ( ( ph /\ ps /\ ch ) -> ( ph /\ ch ) ) $=
    ( w3a wa 3ancomb 3simpa sylbi ) ABCDACBDACEABCFACBGH $.

  $( Simplification of triple conjunction.  (Contributed by NM, 21-Apr-1994.)
     (Proof shortened by Andrew Salmon, 13-May-2011.) $)
  3simpc $p |- ( ( ph /\ ps /\ ch ) -> ( ps /\ ch ) ) $=
    ( w3a wa 3anrot 3simpa sylbi ) ABCDBCADBCEABCFBCAGH $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  simp1 $p |- ( ( ph /\ ps /\ ch ) -> ph ) $=
    ( w3a 3simpa simpld ) ABCDABABCEF $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  simp2 $p |- ( ( ph /\ ps /\ ch ) -> ps ) $=
    ( w3a 3simpa simprd ) ABCDABABCEF $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  simp3 $p |- ( ( ph /\ ps /\ ch ) -> ch ) $=
    ( w3a 3simpc simprd ) ABCDBCABCEF $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpl1 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ph ) $=
    ( w3a simp1 adantr ) ABCEADABCFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpl2 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ps ) $=
    ( w3a simp2 adantr ) ABCEBDABCFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpl3 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ch ) $=
    ( w3a simp3 adantr ) ABCECDABCFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpr1 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ps ) $=
    ( w3a simp1 adantl ) BCDEBABCDFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpr2 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ch ) $=
    ( w3a simp2 adantl ) BCDECABCDFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpr3 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> th ) $=
    ( w3a simp3 adantl ) BCDEDABCDFG $.

  ${
    3simp1i.1 $e |- ( ph /\ ps /\ ch ) $.
    $( Infer a conjunct from a triple conjunction.  (Contributed by NM,
       19-Apr-2005.) $)
    simp1i $p |- ph $=
      ( w3a simp1 ax-mp ) ABCEADABCFG $.

    $( Infer a conjunct from a triple conjunction.  (Contributed by NM,
       19-Apr-2005.) $)
    simp2i $p |- ps $=
      ( w3a simp2 ax-mp ) ABCEBDABCFG $.

    $( Infer a conjunct from a triple conjunction.  (Contributed by NM,
       19-Apr-2005.) $)
    simp3i $p |- ch $=
      ( w3a simp3 ax-mp ) ABCECDABCFG $.
  $}

  ${
    3simp1d.1 $e |- ( ph -> ( ps /\ ch /\ th ) ) $.
    $( Deduce a conjunct from a triple conjunction.  (Contributed by NM,
       4-Sep-2005.) $)
    simp1d $p |- ( ph -> ps ) $=
      ( w3a simp1 syl ) ABCDFBEBCDGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by NM,
       4-Sep-2005.) $)
    simp2d $p |- ( ph -> ch ) $=
      ( w3a simp2 syl ) ABCDFCEBCDGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by NM,
       4-Sep-2005.) $)
    simp3d $p |- ( ph -> th ) $=
      ( w3a simp3 syl ) ABCDFDEBCDGH $.
  $}

  ${
    3simp1bi.1 $e |- ( ph <-> ( ps /\ ch /\ th ) ) $.
    $( Deduce a conjunct from a triple conjunction.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    simp1bi $p |- ( ph -> ps ) $=
      ( w3a biimpi simp1d ) ABCDABCDFEGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    simp2bi $p |- ( ph -> ch ) $=
      ( w3a biimpi simp2d ) ABCDABCDFEGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    simp3bi $p |- ( ph -> th ) $=
      ( w3a biimpi simp3d ) ABCDABCDFEGH $.
  $}

  ${
    3adant.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Jul-1995.) $)
    3adant1 $p |- ( ( th /\ ph /\ ps ) -> ch ) $=
      ( w3a wa 3simpc syl ) DABFABGCDABHEI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Jul-1995.) $)
    3adant2 $p |- ( ( ph /\ th /\ ps ) -> ch ) $=
      ( w3a wa 3simpb syl ) ADBFABGCADBHEI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Jul-1995.) $)
    3adant3 $p |- ( ( ph /\ ps /\ th ) -> ch ) $=
      ( w3a wa 3simpa syl ) ABDFABGCABDHEI $.
  $}

  ${
    3ad2ant.1 $e |- ( ph -> ch ) $.
    $( Deduction adding conjuncts to an antecedent.  (Contributed by NM,
       21-Apr-2005.) $)
    3ad2ant1 $p |- ( ( ph /\ ps /\ th ) -> ch ) $=
      ( adantr 3adant2 ) ADCBACDEFG $.

    $( Deduction adding conjuncts to an antecedent.  (Contributed by NM,
       21-Apr-2005.) $)
    3ad2ant2 $p |- ( ( ps /\ ph /\ th ) -> ch ) $=
      ( adantr 3adant1 ) ADCBACDEFG $.

    $( Deduction adding conjuncts to an antecedent.  (Contributed by NM,
       21-Apr-2005.) $)
    3ad2ant3 $p |- ( ( ps /\ th /\ ph ) -> ch ) $=
      ( adantl 3adant1 ) DACBACDEFG $.
  $}

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp1l $p |- ( ( ( ph /\ ps ) /\ ch /\ th ) -> ph ) $=
    ( wa simpl 3ad2ant1 ) ABECADABFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp1r $p |- ( ( ( ph /\ ps ) /\ ch /\ th ) -> ps ) $=
    ( wa simpr 3ad2ant1 ) ABECBDABFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp2l $p |- ( ( ph /\ ( ps /\ ch ) /\ th ) -> ps ) $=
    ( wa simpl 3ad2ant2 ) BCEABDBCFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp2r $p |- ( ( ph /\ ( ps /\ ch ) /\ th ) -> ch ) $=
    ( wa simpr 3ad2ant2 ) BCEACDBCFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp3l $p |- ( ( ph /\ ps /\ ( ch /\ th ) ) -> ch ) $=
    ( wa simpl 3ad2ant3 ) CDEACBCDFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp3r $p |- ( ( ph /\ ps /\ ( ch /\ th ) ) -> th ) $=
    ( wa simpr 3ad2ant3 ) CDEADBCDFG $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp11 $p |- ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) -> ph ) $=
    ( w3a simp1 3ad2ant1 ) ABCFDAEABCGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp12 $p |- ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) -> ps ) $=
    ( w3a simp2 3ad2ant1 ) ABCFDBEABCGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp13 $p |- ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) -> ch ) $=
    ( w3a simp3 3ad2ant1 ) ABCFDCEABCGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp21 $p |- ( ( ph /\ ( ps /\ ch /\ th ) /\ ta ) -> ps ) $=
    ( w3a simp1 3ad2ant2 ) BCDFABEBCDGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp22 $p |- ( ( ph /\ ( ps /\ ch /\ th ) /\ ta ) -> ch ) $=
    ( w3a simp2 3ad2ant2 ) BCDFACEBCDGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp23 $p |- ( ( ph /\ ( ps /\ ch /\ th ) /\ ta ) -> th ) $=
    ( w3a simp3 3ad2ant2 ) BCDFADEBCDGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp31 $p |- ( ( ph /\ ps /\ ( ch /\ th /\ ta ) ) -> ch ) $=
    ( w3a simp1 3ad2ant3 ) CDEFACBCDEGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp32 $p |- ( ( ph /\ ps /\ ( ch /\ th /\ ta ) ) -> th ) $=
    ( w3a simp2 3ad2ant3 ) CDEFADBCDEGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp33 $p |- ( ( ph /\ ps /\ ( ch /\ th /\ ta ) ) -> ta ) $=
    ( w3a simp3 3ad2ant3 ) CDEFAEBCDEGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpll1 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta ) -> ph ) $=
    ( w3a wa simpl1 adantr ) ABCFDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpll2 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta ) -> ps ) $=
    ( w3a wa simpl2 adantr ) ABCFDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpll3 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta ) -> ch ) $=
    ( w3a wa simpl3 adantr ) ABCFDGCEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simplr1 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta ) -> ph ) $=
    ( w3a wa simpr1 adantr ) DABCFGAEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simplr2 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta ) -> ps ) $=
    ( w3a wa simpr2 adantr ) DABCFGBEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simplr3 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta ) -> ch ) $=
    ( w3a wa simpr3 adantr ) DABCFGCEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprl1 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ph ) $=
    ( w3a wa simpl1 adantl ) ABCFDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprl2 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ps ) $=
    ( w3a wa simpl2 adantl ) ABCFDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprl3 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ch ) $=
    ( w3a wa simpl3 adantl ) ABCFDGCEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprr1 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a wa simpr1 adantl ) DABCFGAEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprr2 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a wa simpr2 adantl ) DABCFGBEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprr3 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a wa simpr3 adantl ) DABCFGCEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl1l $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta ) -> ph ) $=
    ( wa w3a simp1l adantr ) ABFCDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl1r $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta ) -> ps ) $=
    ( wa w3a simp1r adantr ) ABFCDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl2l $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta ) -> ph ) $=
    ( wa w3a simp2l adantr ) CABFDGAECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl2r $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta ) -> ps ) $=
    ( wa w3a simp2r adantr ) CABFDGBECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl3l $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta ) -> ph ) $=
    ( wa w3a simp3l adantr ) CDABFGAECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl3r $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta ) -> ps ) $=
    ( wa w3a simp3r adantr ) CDABFGBECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr1l $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ph ) $=
    ( wa w3a simp1l adantl ) ABFCDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr1r $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ps ) $=
    ( wa w3a simp1r adantl ) ABFCDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr2l $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ph ) $=
    ( wa w3a simp2l adantl ) CABFDGAECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr2r $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ps ) $=
    ( wa w3a simp2r adantl ) CABFDGBECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr3l $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ph ) $=
    ( wa w3a simp3l adantl ) CDABFGAECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr3r $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ps ) $=
    ( wa w3a simp3r adantl ) CDABFGBECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1ll $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th /\ ta ) -> ph ) $=
    ( wa simpll 3ad2ant1 ) ABFCFDAEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1lr $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th /\ ta ) -> ps ) $=
    ( wa simplr 3ad2ant1 ) ABFCFDBEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1rl $p |- ( ( ( ch /\ ( ph /\ ps ) ) /\ th /\ ta ) -> ph ) $=
    ( wa simprl 3ad2ant1 ) CABFFDAECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1rr $p |- ( ( ( ch /\ ( ph /\ ps ) ) /\ th /\ ta ) -> ps ) $=
    ( wa simprr 3ad2ant1 ) CABFFDBECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2ll $p |- ( ( th /\ ( ( ph /\ ps ) /\ ch ) /\ ta ) -> ph ) $=
    ( wa simpll 3ad2ant2 ) ABFCFDAEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2lr $p |- ( ( th /\ ( ( ph /\ ps ) /\ ch ) /\ ta ) -> ps ) $=
    ( wa simplr 3ad2ant2 ) ABFCFDBEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2rl $p |- ( ( th /\ ( ch /\ ( ph /\ ps ) ) /\ ta ) -> ph ) $=
    ( wa simprl 3ad2ant2 ) CABFFDAECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2rr $p |- ( ( th /\ ( ch /\ ( ph /\ ps ) ) /\ ta ) -> ps ) $=
    ( wa simprr 3ad2ant2 ) CABFFDBECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3ll $p |- ( ( th /\ ta /\ ( ( ph /\ ps ) /\ ch ) ) -> ph ) $=
    ( wa simpll 3ad2ant3 ) ABFCFDAEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3lr $p |- ( ( th /\ ta /\ ( ( ph /\ ps ) /\ ch ) ) -> ps ) $=
    ( wa simplr 3ad2ant3 ) ABFCFDBEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3rl $p |- ( ( th /\ ta /\ ( ch /\ ( ph /\ ps ) ) ) -> ph ) $=
    ( wa simprl 3ad2ant3 ) CABFFDAECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3rr $p |- ( ( th /\ ta /\ ( ch /\ ( ph /\ ps ) ) ) -> ps ) $=
    ( wa simprr 3ad2ant3 ) CABFFDBECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl11 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et ) -> ph ) $=
    ( w3a simp11 adantr ) ABCGDEGAFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl12 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et ) -> ps ) $=
    ( w3a simp12 adantr ) ABCGDEGBFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl13 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et ) -> ch ) $=
    ( w3a simp13 adantr ) ABCGDEGCFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl21 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et ) -> ph ) $=
    ( w3a simp21 adantr ) DABCGEGAFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl22 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et ) -> ps ) $=
    ( w3a simp22 adantr ) DABCGEGBFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl23 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et ) -> ch ) $=
    ( w3a simp23 adantr ) DABCGEGCFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl31 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ph ) $=
    ( w3a simp31 adantr ) DEABCGGAFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl32 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ps ) $=
    ( w3a simp32 adantr ) DEABCGGBFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl33 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ch ) $=
    ( w3a simp33 adantr ) DEABCGGCFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr11 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ph ) $=
    ( w3a simp11 adantl ) ABCGDEGAFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr12 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ps ) $=
    ( w3a simp12 adantl ) ABCGDEGBFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr13 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ch ) $=
    ( w3a simp13 adantl ) ABCGDEGCFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr21 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ph ) $=
    ( w3a simp21 adantl ) DABCGEGAFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr22 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ps ) $=
    ( w3a simp22 adantl ) DABCGEGBFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr23 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ch ) $=
    ( w3a simp23 adantl ) DABCGEGCFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr31 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a simp31 adantl ) DEABCGGAFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr32 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a simp32 adantl ) DEABCGGBFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr33 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a simp33 adantl ) DEABCGGCFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1l1 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta /\ et ) -> ph ) $=
    ( w3a wa simpl1 3ad2ant1 ) ABCGDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1l2 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta /\ et ) -> ps ) $=
    ( w3a wa simpl2 3ad2ant1 ) ABCGDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1l3 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta /\ et ) -> ch ) $=
    ( w3a wa simpl3 3ad2ant1 ) ABCGDHECFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1r1 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta /\ et ) -> ph ) $=
    ( w3a wa simpr1 3ad2ant1 ) DABCGHEAFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1r2 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta /\ et ) -> ps ) $=
    ( w3a wa simpr2 3ad2ant1 ) DABCGHEBFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1r3 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta /\ et ) -> ch ) $=
    ( w3a wa simpr3 3ad2ant1 ) DABCGHECFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2l1 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) /\ et ) -> ph ) $=
    ( w3a wa simpl1 3ad2ant2 ) ABCGDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2l2 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) /\ et ) -> ps ) $=
    ( w3a wa simpl2 3ad2ant2 ) ABCGDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2l3 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) /\ et ) -> ch ) $=
    ( w3a wa simpl3 3ad2ant2 ) ABCGDHECFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2r1 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ph ) $=
    ( w3a wa simpr1 3ad2ant2 ) DABCGHEAFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2r2 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ps ) $=
    ( w3a wa simpr2 3ad2ant2 ) DABCGHEBFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2r3 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ch ) $=
    ( w3a wa simpr3 3ad2ant2 ) DABCGHECFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3l1 $p |- ( ( ta /\ et /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ph ) $=
    ( w3a wa simpl1 3ad2ant3 ) ABCGDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3l2 $p |- ( ( ta /\ et /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ps ) $=
    ( w3a wa simpl2 3ad2ant3 ) ABCGDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3l3 $p |- ( ( ta /\ et /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ch ) $=
    ( w3a wa simpl3 3ad2ant3 ) ABCGDHECFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3r1 $p |- ( ( ta /\ et /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a wa simpr1 3ad2ant3 ) DABCGHEAFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3r2 $p |- ( ( ta /\ et /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a wa simpr2 3ad2ant3 ) DABCGHEBFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3r3 $p |- ( ( ta /\ et /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a wa simpr3 3ad2ant3 ) DABCGHECFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp11l $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta /\ et ) -> ph ) $=
    ( wa w3a simp1l 3ad2ant1 ) ABGCDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp11r $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta /\ et ) -> ps ) $=
    ( wa w3a simp1r 3ad2ant1 ) ABGCDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp12l $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta /\ et ) -> ph ) $=
    ( wa w3a simp2l 3ad2ant1 ) CABGDHEAFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp12r $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta /\ et ) -> ps ) $=
    ( wa w3a simp2r 3ad2ant1 ) CABGDHEBFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp13l $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta /\ et ) -> ph ) $=
    ( wa w3a simp3l 3ad2ant1 ) CDABGHEAFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp13r $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta /\ et ) -> ps ) $=
    ( wa w3a simp3r 3ad2ant1 ) CDABGHEBFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp21l $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) /\ et ) -> ph ) $=
    ( wa w3a simp1l 3ad2ant2 ) ABGCDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp21r $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) /\ et ) -> ps ) $=
    ( wa w3a simp1r 3ad2ant2 ) ABGCDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp22l $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) /\ et ) -> ph ) $=
    ( wa w3a simp2l 3ad2ant2 ) CABGDHEAFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp22r $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) /\ et ) -> ps ) $=
    ( wa w3a simp2r 3ad2ant2 ) CABGDHEBFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp23l $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) /\ et ) -> ph ) $=
    ( wa w3a simp3l 3ad2ant2 ) CDABGHEAFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp23r $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) /\ et ) -> ps ) $=
    ( wa w3a simp3r 3ad2ant2 ) CDABGHEBFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp31l $p |- ( ( ta /\ et /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ph ) $=
    ( wa w3a simp1l 3ad2ant3 ) ABGCDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp31r $p |- ( ( ta /\ et /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ps ) $=
    ( wa w3a simp1r 3ad2ant3 ) ABGCDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp32l $p |- ( ( ta /\ et /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ph ) $=
    ( wa w3a simp2l 3ad2ant3 ) CABGDHEAFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp32r $p |- ( ( ta /\ et /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ps ) $=
    ( wa w3a simp2r 3ad2ant3 ) CABGDHEBFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp33l $p |- ( ( ta /\ et /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ph ) $=
    ( wa w3a simp3l 3ad2ant3 ) CDABGHEAFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp33r $p |- ( ( ta /\ et /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ps ) $=
    ( wa w3a simp3r 3ad2ant3 ) CDABGHEBFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp111 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et /\ ze ) -> ph ) $=
    ( w3a simp11 3ad2ant1 ) ABCHDEHFAGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp112 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et /\ ze ) -> ps ) $=
    ( w3a simp12 3ad2ant1 ) ABCHDEHFBGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp113 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et /\ ze ) -> ch ) $=
    ( w3a simp13 3ad2ant1 ) ABCHDEHFCGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp121 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et /\ ze ) -> ph ) $=
    ( w3a simp21 3ad2ant1 ) DABCHEHFAGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp122 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et /\ ze ) -> ps ) $=
    ( w3a simp22 3ad2ant1 ) DABCHEHFBGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp123 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et /\ ze ) -> ch ) $=
    ( w3a simp23 3ad2ant1 ) DABCHEHFCGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp131 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et /\ ze ) -> ph ) $=
    ( w3a simp31 3ad2ant1 ) DEABCHHFAGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp132 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et /\ ze ) -> ps ) $=
    ( w3a simp32 3ad2ant1 ) DEABCHHFBGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp133 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et /\ ze ) -> ch ) $=
    ( w3a simp33 3ad2ant1 ) DEABCHHFCGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp211 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ ze ) -> ph ) $=
    ( w3a simp11 3ad2ant2 ) ABCHDEHFAGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp212 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ ze ) -> ps ) $=
    ( w3a simp12 3ad2ant2 ) ABCHDEHFBGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp213 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ ze ) -> ch ) $=
    ( w3a simp13 3ad2ant2 ) ABCHDEHFCGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp221 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ ze ) -> ph ) $=
    ( w3a simp21 3ad2ant2 ) DABCHEHFAGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp222 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ ze ) -> ps ) $=
    ( w3a simp22 3ad2ant2 ) DABCHEHFBGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp223 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ ze ) -> ch ) $=
    ( w3a simp23 3ad2ant2 ) DABCHEHFCGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp231 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ ze ) -> ph ) $=
    ( w3a simp31 3ad2ant2 ) DEABCHHFAGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp232 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ ze ) -> ps ) $=
    ( w3a simp32 3ad2ant2 ) DEABCHHFBGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp233 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ ze ) -> ch ) $=
    ( w3a simp33 3ad2ant2 ) DEABCHHFCGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp311 $p |- ( ( et /\ ze /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ph ) $=
    ( w3a simp11 3ad2ant3 ) ABCHDEHFAGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp312 $p |- ( ( et /\ ze /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ps ) $=
    ( w3a simp12 3ad2ant3 ) ABCHDEHFBGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp313 $p |- ( ( et /\ ze /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ch ) $=
    ( w3a simp13 3ad2ant3 ) ABCHDEHFCGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp321 $p |- ( ( et /\ ze /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ph ) $=
    ( w3a simp21 3ad2ant3 ) DABCHEHFAGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp322 $p |- ( ( et /\ ze /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ps ) $=
    ( w3a simp22 3ad2ant3 ) DABCHEHFBGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp323 $p |- ( ( et /\ ze /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ch ) $=
    ( w3a simp23 3ad2ant3 ) DABCHEHFCGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp331 $p |- ( ( et /\ ze /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a simp31 3ad2ant3 ) DEABCHHFAGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp332 $p |- ( ( et /\ ze /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a simp32 3ad2ant3 ) DEABCHHFBGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp333 $p |- ( ( et /\ ze /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a simp33 3ad2ant3 ) DEABCHHFCGDEABCIJ $.

  ${
    3adantl.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       24-Feb-2005.) $)
    3adantl1 $p |- ( ( ( ta /\ ph /\ ps ) /\ ch ) -> th ) $=
      ( w3a wa 3simpc sylan ) EABGABHCDEABIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       24-Feb-2005.) $)
    3adantl2 $p |- ( ( ( ph /\ ta /\ ps ) /\ ch ) -> th ) $=
      ( w3a wa 3simpb sylan ) AEBGABHCDAEBIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       24-Feb-2005.) $)
    3adantl3 $p |- ( ( ( ph /\ ps /\ ta ) /\ ch ) -> th ) $=
      ( w3a wa 3simpa sylan ) ABEGABHCDABEIFJ $.
  $}

  ${
    3adantr.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       27-Apr-2005.) $)
    3adantr1 $p |- ( ( ph /\ ( ta /\ ps /\ ch ) ) -> th ) $=
      ( w3a wa 3simpc sylan2 ) EBCGABCHDEBCIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       27-Apr-2005.) $)
    3adantr2 $p |- ( ( ph /\ ( ps /\ ta /\ ch ) ) -> th ) $=
      ( w3a wa 3simpb sylan2 ) BECGABCHDBECIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       27-Apr-2005.) $)
    3adantr3 $p |- ( ( ph /\ ( ps /\ ch /\ ta ) ) -> th ) $=
      ( w3a wa 3simpa sylan2 ) BCEGABCHDBCEIFJ $.
  $}

  ${
    3ad2antl.1 $e |- ( ( ph /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       4-Aug-2007.) $)
    3ad2antl1 $p |- ( ( ( ph /\ ps /\ ta ) /\ ch ) -> th ) $=
      ( adantlr 3adantl2 ) AECDBACDEFGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       4-Aug-2007.) $)
    3ad2antl2 $p |- ( ( ( ps /\ ph /\ ta ) /\ ch ) -> th ) $=
      ( adantlr 3adantl1 ) AECDBACDEFGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       4-Aug-2007.) $)
    3ad2antl3 $p |- ( ( ( ps /\ ta /\ ph ) /\ ch ) -> th ) $=
      ( adantll 3adantl1 ) EACDBACDEFGH $.

    $( Deduction adding a conjuncts to antecedent.  (Contributed by NM,
       25-Dec-2007.) $)
    3ad2antr1 $p |- ( ( ph /\ ( ch /\ ps /\ ta ) ) -> th ) $=
      ( adantrr 3adantr3 ) ACBDEACDBFGH $.

    $( Deduction adding a conjuncts to antecedent.  (Contributed by NM,
       27-Dec-2007.) $)
    3ad2antr2 $p |- ( ( ph /\ ( ps /\ ch /\ ta ) ) -> th ) $=
      ( adantrl 3adantr3 ) ABCDEACDBFGH $.

    $( Deduction adding a conjuncts to antecedent.  (Contributed by NM,
       30-Dec-2007.) $)
    3ad2antr3 $p |- ( ( ph /\ ( ps /\ ta /\ ch ) ) -> th ) $=
      ( adantrl 3adantr1 ) AECDBACDEFGH $.
  $}

  ${
    3anibar.1 $e |- ( ( ph /\ ps /\ ch ) -> ( th <-> ( ch /\ ta ) ) ) $.
    $( Remove a hypothesis from the second member of a biimplication.
       (Contributed by FL, 22-Jul-2008.) $)
    3anibar $p |- ( ( ph /\ ps /\ ch ) -> ( th <-> ta ) ) $=
      ( w3a wa simp3 biantrurd bitr4d ) ABCGZDCEHEFLCEABCIJK $.
  $}

  $( Introduction in triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3mix1 $p |- ( ph -> ( ph \/ ps \/ ch ) ) $=
    ( wo w3o orc 3orass sylibr ) AABCDZDABCEAIFABCGH $.

  $( Introduction in triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3mix2 $p |- ( ph -> ( ps \/ ph \/ ch ) ) $=
    ( w3o 3mix1 3orrot sylibr ) AACBDBACDACBEBACFG $.

  $( Introduction in triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3mix3 $p |- ( ph -> ( ps \/ ch \/ ph ) ) $=
    ( w3o 3mix1 3orrot sylib ) AABCDBCADABCEABCFG $.

  ${
    3mixi.1 $e |- ph $.
    $( Introduction in triple disjunction.  (Contributed by Mario Carneiro,
       6-Oct-2014.) $)
    3mix1i $p |- ( ph \/ ps \/ ch ) $=
      ( w3o 3mix1 ax-mp ) AABCEDABCFG $.

    $( Introduction in triple disjunction.  (Contributed by Mario Carneiro,
       6-Oct-2014.) $)
    3mix2i $p |- ( ps \/ ph \/ ch ) $=
      ( w3o 3mix2 ax-mp ) ABACEDABCFG $.

    $( Introduction in triple disjunction.  (Contributed by Mario Carneiro,
       6-Oct-2014.) $)
    3mix3i $p |- ( ps \/ ch \/ ph ) $=
      ( w3o 3mix3 ax-mp ) ABCAEDABCFG $.
  $}

  ${
    3mixd.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing triple disjunction.  (Contributed by Scott Fenton,
       8-Jun-2011.) $)
    3mix1d $p |- ( ph -> ( ps \/ ch \/ th ) ) $=
      ( w3o 3mix1 syl ) ABBCDFEBCDGH $.

    $( Deduction introducing triple disjunction.  (Contributed by Scott Fenton,
       8-Jun-2011.) $)
    3mix2d $p |- ( ph -> ( ch \/ ps \/ th ) ) $=
      ( w3o 3mix2 syl ) ABCBDFEBCDGH $.

    $( Deduction introducing triple disjunction.  (Contributed by Scott Fenton,
       8-Jun-2011.) $)
    3mix3d $p |- ( ph -> ( ch \/ th \/ ps ) ) $=
      ( w3o 3mix3 syl ) ABCDBFEBCDGH $.
  $}

  ${
    3pm3.2i.1 $e |- ph $.
    3pm3.2i.2 $e |- ps $.
    3pm3.2i.3 $e |- ch $.
    $( Infer conjunction of premises.  (Contributed by NM, 10-Feb-1995.) $)
    3pm3.2i $p |- ( ph /\ ps /\ ch ) $=
      ( w3a wa pm3.2i df-3an mpbir2an ) ABCGABHCABDEIFABCJK $.
  $}

  ${
    $( ~ pm3.2 for a triple conjunction.  (Contributed by Alan Sare,
       24-Oct-2011.) $)
    pm3.2an3 $p |- ( ph -> ( ps -> ( ch -> ( ph /\ ps /\ ch ) ) ) ) $=
      ( wa w3a wi pm3.2 ex df-3an bicomi syl8ib ) ABCABDZCDZABCEZABCMFLCGHNMABC
      IJK $.
  $}

  ${
    3jca.1 $e |- ( ph -> ps ) $.
    3jca.2 $e |- ( ph -> ch ) $.
    3jca.3 $e |- ( ph -> th ) $.
    $( Join consequents with conjunction.  (Contributed by NM, 9-Apr-1994.) $)
    3jca $p |- ( ph -> ( ps /\ ch /\ th ) ) $=
      ( wa w3a jca31 df-3an sylibr ) ABCHDHBCDIABCDEFGJBCDKL $.
  $}

  ${
    3jcad.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3jcad.2 $e |- ( ph -> ( ps -> th ) ) $.
    3jcad.3 $e |- ( ph -> ( ps -> ta ) ) $.
    $( Deduction conjoining the consequents of three implications.
       (Contributed by NM, 25-Sep-2005.) $)
    3jcad $p |- ( ph -> ( ps -> ( ch /\ th /\ ta ) ) ) $=
      ( w3a wa imp 3jca ex ) ABCDEIABJCDEABCFKABDGKABEHKLM $.
  $}

  ${
    mpbir3an.1 $e |- ps $.
    mpbir3an.2 $e |- ch $.
    mpbir3an.3 $e |- th $.
    mpbir3an.4 $e |- ( ph <-> ( ps /\ ch /\ th ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       16-Sep-2011.)  (Revised by NM, 9-Jan-2015.) $)
    mpbir3an $p |- ph $=
      ( w3a 3pm3.2i mpbir ) ABCDIBCDEFGJHK $.
  $}

  ${
    mpbir3and.1 $e |- ( ph -> ch ) $.
    mpbir3and.2 $e |- ( ph -> th ) $.
    mpbir3and.3 $e |- ( ph -> ta ) $.
    mpbir3and.4 $e |- ( ph -> ( ps <-> ( ch /\ th /\ ta ) ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by
       Mario Carneiro, 11-May-2014.) $)
    mpbir3and $p |- ( ph -> ps ) $=
      ( w3a 3jca mpbird ) ABCDEJACDEFGHKIL $.
  $}

  ${
    syl3anbrc.1 $e |- ( ph -> ps ) $.
    syl3anbrc.2 $e |- ( ph -> ch ) $.
    syl3anbrc.3 $e |- ( ph -> th ) $.
    syl3anbrc.4 $e |- ( ta <-> ( ps /\ ch /\ th ) ) $.
    $( Syllogism inference.  (Contributed by Mario Carneiro, 11-May-2014.) $)
    syl3anbrc $p |- ( ph -> ta ) $=
      ( w3a 3jca sylibr ) ABCDJEABCDFGHKIL $.
  $}

  ${
    3anim123i.1 $e |- ( ph -> ps ) $.
    3anim123i.2 $e |- ( ch -> th ) $.
    3anim123i.3 $e |- ( ta -> et ) $.
    $( Join antecedents and consequents with conjunction.  (Contributed by NM,
       8-Apr-1994.) $)
    3anim123i $p |- ( ( ph /\ ch /\ ta ) -> ( ps /\ th /\ et ) ) $=
      ( w3a 3ad2ant1 3ad2ant2 3ad2ant3 3jca ) ACEJBDFACBEGKCADEHLEAFCIMN $.
  $}

  ${
    3animi.1 $e |- ( ph -> ps ) $.
    $( Add two conjuncts to antecedent and consequent.  (Contributed by Jeff
       Hankins, 16-Aug-2009.) $)
    3anim1i $p |- ( ( ph /\ ch /\ th ) -> ( ps /\ ch /\ th ) ) $=
      ( id 3anim123i ) ABCCDDECFDFG $.

    $( Add two conjuncts to antecedent and consequent.  (Contributed by AV,
       21-Nov-2019.) $)
    3anim2i $p |- ( ( ch /\ ph /\ th ) -> ( ch /\ ps /\ th ) ) $=
      ( id 3anim123i ) CCABDDCFEDFG $.

    $( Add two conjuncts to antecedent and consequent.  (Contributed by Jeff
       Hankins, 19-Aug-2009.) $)
    3anim3i $p |- ( ( ch /\ th /\ ph ) -> ( ch /\ th /\ ps ) ) $=
      ( id 3anim123i ) CCDDABCFDFEG $.
  $}

  ${
    bi3.1 $e |- ( ph <-> ps ) $.
    bi3.2 $e |- ( ch <-> th ) $.
    bi3.3 $e |- ( ta <-> et ) $.
    $( Join 3 biconditionals with conjunction.  (Contributed by NM,
       21-Apr-1994.) $)
    3anbi123i $p |- ( ( ph /\ ch /\ ta ) <-> ( ps /\ th /\ et ) ) $=
      ( wa w3a anbi12i df-3an 3bitr4i ) ACJZEJBDJZFJACEKBDFKOPEFABCDGHLILACEMBD
      FMN $.

    $( Join 3 biconditionals with disjunction.  (Contributed by NM,
       17-May-1994.) $)
    3orbi123i $p |- ( ( ph \/ ch \/ ta ) <-> ( ps \/ th \/ et ) ) $=
      ( wo w3o orbi12i df-3or 3bitr4i ) ACJZEJBDJZFJACEKBDFKOPEFABCDGHLILACEMBD
      FMN $.
  $}

  ${
    3anbi1i.1 $e |- ( ph <-> ps ) $.
    $( Inference adding two conjuncts to each side of a biconditional.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi1i $p |- ( ( ph /\ ch /\ th ) <-> ( ps /\ ch /\ th ) ) $=
      ( biid 3anbi123i ) ABCCDDECFDFG $.

    $( Inference adding two conjuncts to each side of a biconditional.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi2i $p |- ( ( ch /\ ph /\ th ) <-> ( ch /\ ps /\ th ) ) $=
      ( biid 3anbi123i ) CCABDDCFEDFG $.

    $( Inference adding two conjuncts to each side of a biconditional.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi3i $p |- ( ( ch /\ th /\ ph ) <-> ( ch /\ th /\ ps ) ) $=
      ( biid 3anbi123i ) CCDDABCFDFEG $.
  $}

  ${
    3imp.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Importation inference.  (Contributed by NM, 8-Apr-1994.) $)
    3imp $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( w3a wa df-3an imp31 sylbi ) ABCFABGCGDABCHABCDEIJ $.
  $}

  ${
    3impa.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Importation from double to triple conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3impa $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( exp31 3imp ) ABCDABCDEFG $.
  $}

  ${
    3impb.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Importation from double to triple conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3impb $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( exp32 3imp ) ABCDABCDEFG $.
  $}

  ${
    3impia.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Importation to triple conjunction.  (Contributed by NM, 13-Jun-2006.) $)
    3impia $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( wi ex 3imp ) ABCDABCDFEGH $.
  $}

  ${
    3impib.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Importation to triple conjunction.  (Contributed by NM, 13-Jun-2006.) $)
    3impib $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( expd 3imp ) ABCDABCDEFG $.
  $}

  ${
    3exp.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Exportation inference.  (Contributed by NM, 30-May-1994.) $)
    3exp $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( w3a pm3.2an3 syl8 ) ABCABCFDABCGEH $.

    $( Exportation from triple to double conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3expa $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( 3exp imp31 ) ABCDABCDEFG $.

    $( Exportation from triple to double conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3expb $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( 3exp imp32 ) ABCDABCDEFG $.

    $( Exportation from triple conjunction.  (Contributed by NM,
       19-May-2007.) $)
    3expia $p |- ( ( ph /\ ps ) -> ( ch -> th ) ) $=
      ( wi 3exp imp ) ABCDFABCDEGH $.

    $( Exportation from triple conjunction.  (Contributed by NM,
       19-May-2007.) $)
    3expib $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( 3exp impd ) ABCDABCDEFG $.

    $( Commutation in antecedent.  Swap 1st and 3rd.  (Contributed by NM,
       28-Jan-1996.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
    3com12 $p |- ( ( ps /\ ph /\ ch ) -> th ) $=
      ( w3a 3ancoma sylbi ) BACFABCFDBACGEH $.

    $( Commutation in antecedent.  Swap 1st and 3rd.  (Contributed by NM,
       28-Jan-1996.) $)
    3com13 $p |- ( ( ch /\ ps /\ ph ) -> th ) $=
      ( w3a 3anrev sylbi ) CBAFABCFDCBAGEH $.

    $( Commutation in antecedent.  Swap 2nd and 3rd.  (Contributed by NM,
       28-Jan-1996.) $)
    3com23 $p |- ( ( ph /\ ch /\ ps ) -> th ) $=
      ( 3exp com23 3imp ) ACBDABCDABCDEFGH $.

    $( Commutation in antecedent.  Rotate left.  (Contributed by NM,
       28-Jan-1996.) $)
    3coml $p |- ( ( ps /\ ch /\ ph ) -> th ) $=
      ( 3com23 3com13 ) ACBDABCDEFG $.

    $( Commutation in antecedent.  Rotate right.  (Contributed by NM,
       28-Jan-1996.) $)
    3comr $p |- ( ( ch /\ ph /\ ps ) -> th ) $=
      ( 3coml ) BCADABCDEFF $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Feb-2008.) $)
    3adant3r1 $p |- ( ( ph /\ ( ta /\ ps /\ ch ) ) -> th ) $=
      ( 3expb 3adantr1 ) ABCDEABCDFGH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       17-Feb-2008.) $)
    3adant3r2 $p |- ( ( ph /\ ( ps /\ ta /\ ch ) ) -> th ) $=
      ( 3expb 3adantr2 ) ABCDEABCDFGH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       18-Feb-2008.) $)
    3adant3r3 $p |- ( ( ph /\ ( ps /\ ch /\ ta ) ) -> th ) $=
      ( 3expb 3adantr3 ) ABCDEABCDFGH $.
  $}

  ${
    3an1rs.1 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( Swap conjuncts.  (Contributed by NM, 16-Dec-2007.) $)
    3an1rs $p |- ( ( ( ph /\ ps /\ th ) /\ ch ) -> ta ) $=
      ( w3a wi ex 3exp com34 3imp imp ) ABDGCEABDCEHABCDEABCDEHABCGDEFIJKLM $.
  $}

  ${
    3imp1.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $.
    $( Importation to left triple conjunction.  (Contributed by NM,
       24-Feb-2005.) $)
    3imp1 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $=
      ( w3a wi 3imp imp ) ABCGDEABCDEHFIJ $.

    $( Importation deduction for triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3impd $p |- ( ph -> ( ( ps /\ ch /\ th ) -> ta ) ) $=
      ( w3a wi com4l 3imp com12 ) BCDGAEBCDAEHABCDEFIJK $.

    $( Importation to right triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3imp2 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $=
      ( w3a 3impd imp ) ABCDGEABCDEFHI $.
  $}

  ${
    3exp1.1 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( Exportation from left triple conjunction.  (Contributed by NM,
       24-Feb-2005.) $)
    3exp1 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi w3a ex 3exp ) ABCDEGABCHDEFIJ $.
  $}

  ${
    3expd.1 $e |- ( ph -> ( ( ps /\ ch /\ th ) -> ta ) ) $.
    $( Exportation deduction for triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3expd $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi w3a com12 3exp com4r ) BCDAEBCDAEGABCDHEFIJK $.
  $}

  ${
    3exp2.1 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( Exportation from right triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3exp2 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( w3a ex 3expd ) ABCDEABCDGEFHI $.
  $}

  ${
    exp5o.1 $e |- ( ( ph /\ ps /\ ch ) -> ( ( th /\ ta ) -> et ) ) $.
    $( A triple exportation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    exp5o $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi w3a expd 3exp ) ABCDEFHHABCIDEFGJK $.
  $}

  ${
    exp516.1 $e |- ( ( ( ph /\ ( ps /\ ch /\ th ) ) /\ ta ) -> et ) $.
    $( A triple exportation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    exp516 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi w3a exp31 3expd ) ABCDEFHABCDIEFGJK $.
  $}

  ${
    exp520.1 $e |- ( ( ( ph /\ ps /\ ch ) /\ ( th /\ ta ) ) -> et ) $.
    $( A triple exportation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    exp520 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( w3a wa ex exp5o ) ABCDEFABCHDEIFGJK $.
  $}

  ${
    3anassrs.1 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( Associative law for conjunction applied to antecedent (eliminates
       syllogism).  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    3anassrs $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $=
      ( 3exp2 imp41 ) ABCDEABCDEFGH $.
  $}

  ${
    3adant1l.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant1l $p |- ( ( ( ta /\ ph ) /\ ps /\ ch ) -> th ) $=
      ( wa 3expb adantll 3impb ) EAGBCDABCGDEABCDFHIJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant1r $p |- ( ( ( ph /\ ta ) /\ ps /\ ch ) -> th ) $=
      ( wa 3expb adantlr 3impb ) AEGBCDABCGDEABCDFHIJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant2l $p |- ( ( ph /\ ( ta /\ ps ) /\ ch ) -> th ) $=
      ( wa 3com12 3adant1l ) EBGACDBACDEABCDFHIH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant2r $p |- ( ( ph /\ ( ps /\ ta ) /\ ch ) -> th ) $=
      ( wa 3com12 3adant1r ) BEGACDBACDEABCDFHIH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant3l $p |- ( ( ph /\ ps /\ ( ta /\ ch ) ) -> th ) $=
      ( wa 3com13 3adant1l ) ECGBADCBADEABCDFHIH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant3r $p |- ( ( ph /\ ps /\ ( ch /\ ta ) ) -> th ) $=
      ( wa 3com13 3adant1r ) CEGBADCBADEABCDFHIH $.
  $}

  ${
    sylXanc.1 $e |- ( ph -> ps ) $.
    sylXanc.2 $e |- ( ph -> ch ) $.
    sylXanc.3 $e |- ( ph -> th ) $.
    ${
      syl12anc.4 $e |- ( ( ps /\ ( ch /\ th ) ) -> ta ) $.
      $( Syllogism combined with contraction.  (Contributed by Jeff Hankins,
         1-Aug-2009.) $)
      syl12anc $p |- ( ph -> ta ) $=
        ( wa jca32 syl ) ABCDJJEABCDFGHKIL $.
    $}

    ${
      syl21anc.4 $e |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $.
      $( Syllogism combined with contraction.  (Contributed by Jeff Hankins,
         1-Aug-2009.) $)
      syl21anc $p |- ( ph -> ta ) $=
        ( wa jca31 syl ) ABCJDJEABCDFGHKIL $.
    $}

    ${
      syl111anc.4 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl3anc $p |- ( ph -> ta ) $=
        ( w3a 3jca syl ) ABCDJEABCDFGHKIL $.
    $}

    sylXanc.4 $e |- ( ph -> ta ) $.
    ${
      syl22anc.5 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl22anc $p |- ( ph -> et ) $=
        ( wa jca syl12anc ) ABCLDEFABCGHMIJKN $.
    $}

    ${
      syl13anc.5 $e |- ( ( ps /\ ( ch /\ th /\ ta ) ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl13anc $p |- ( ph -> et ) $=
        ( w3a 3jca syl2anc ) ABCDELFGACDEHIJMKN $.
    $}

    ${
      syl31anc.5 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl31anc $p |- ( ph -> et ) $=
        ( w3a 3jca syl2anc ) ABCDLEFABCDGHIMJKN $.
    $}

    ${
      syl112anc.5 $e |- ( ( ps /\ ch /\ ( th /\ ta ) ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl112anc $p |- ( ph -> et ) $=
        ( wa jca syl3anc ) ABCDELFGHADEIJMKN $.
    $}

    ${
      syl121anc.5 $e |- ( ( ps /\ ( ch /\ th ) /\ ta ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl121anc $p |- ( ph -> et ) $=
        ( wa jca syl3anc ) ABCDLEFGACDHIMJKN $.
    $}

    ${
      syl211anc.5 $e |- ( ( ( ps /\ ch ) /\ th /\ ta ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl211anc $p |- ( ph -> et ) $=
        ( wa jca syl3anc ) ABCLDEFABCGHMIJKN $.
    $}

    sylXanc.5 $e |- ( ph -> et ) $.
    ${
      syl23anc.6 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl23anc $p |- ( ph -> ze ) $=
        ( wa jca syl13anc ) ABCNDEFGABCHIOJKLMP $.
    $}

    ${
      syl32anc.6 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl32anc $p |- ( ph -> ze ) $=
        ( wa jca syl31anc ) ABCDEFNGHIJAEFKLOMP $.
    $}

    ${
      syl122anc.6 $e |- ( ( ps /\ ( ch /\ th ) /\ ( ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl122anc $p |- ( ph -> ze ) $=
        ( wa jca syl121anc ) ABCDEFNGHIJAEFKLOMP $.
    $}

    ${
      syl212anc.6 $e |- ( ( ( ps /\ ch ) /\ th /\ ( ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl212anc $p |- ( ph -> ze ) $=
        ( wa jca syl211anc ) ABCDEFNGHIJAEFKLOMP $.
    $}

    ${
      syl221anc.6 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) /\ et ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl221anc $p |- ( ph -> ze ) $=
        ( wa jca syl211anc ) ABCDENFGHIADEJKOLMP $.
    $}

    ${
      syl113anc.6 $e |- ( ( ps /\ ch /\ ( th /\ ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl113anc $p |- ( ph -> ze ) $=
        ( w3a 3jca syl3anc ) ABCDEFNGHIADEFJKLOMP $.
    $}

    ${
      syl131anc.6 $e |- ( ( ps /\ ( ch /\ th /\ ta ) /\ et ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl131anc $p |- ( ph -> ze ) $=
        ( w3a 3jca syl3anc ) ABCDENFGHACDEIJKOLMP $.
    $}

    ${
      syl311anc.6 $e |- ( ( ( ps /\ ch /\ th ) /\ ta /\ et ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl311anc $p |- ( ph -> ze ) $=
        ( w3a 3jca syl3anc ) ABCDNEFGABCDHIJOKLMP $.
    $}

    sylXanc.6 $e |- ( ph -> ze ) $.
    ${
      syl33anc.7 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl33anc $p |- ( ph -> si ) $=
        ( w3a 3jca syl13anc ) ABCDPEFGHABCDIJKQLMNOR $.
    $}

    ${
      syl222anc.7 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) /\ ( et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl222anc $p |- ( ph -> si ) $=
        ( wa jca syl221anc ) ABCDEFGPHIJKLAFGMNQOR $.
    $}

    ${
      syl123anc.7 $e |- ( ( ps /\ ( ch /\ th ) /\ ( ta /\ et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl123anc $p |- ( ph -> si ) $=
        ( wa jca syl113anc ) ABCDPEFGHIACDJKQLMNOR $.
    $}

    ${
      syl132anc.7 $e |- ( ( ps /\ ( ch /\ th /\ ta ) /\ ( et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Jul-2012.) $)
      syl132anc $p |- ( ph -> si ) $=
        ( wa jca syl131anc ) ABCDEFGPHIJKLAFGMNQOR $.
    $}

    ${
      syl213anc.7 $e |- ( ( ( ps /\ ch ) /\ th /\ ( ta /\ et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl213anc $p |- ( ph -> si ) $=
        ( wa jca syl113anc ) ABCPDEFGHABCIJQKLMNOR $.
    $}

    ${
      syl231anc.7 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) /\ ze )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl231anc $p |- ( ph -> si ) $=
        ( wa jca syl131anc ) ABCPDEFGHABCIJQKLMNOR $.
    $}

    ${
      syl312anc.7 $e |- ( ( ( ps /\ ch /\ th ) /\ ta /\ ( et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Jul-2012.) $)
      syl312anc $p |- ( ph -> si ) $=
        ( wa jca syl311anc ) ABCDEFGPHIJKLAFGMNQOR $.
    $}

    ${
      syl321anc.7 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) /\ ze )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Jul-2012.) $)
      syl321anc $p |- ( ph -> si ) $=
        ( wa jca syl311anc ) ABCDEFPGHIJKAEFLMQNOR $.
    $}

    sylXanc.7 $e |- ( ph -> si ) $.
    ${
      syl133anc.8 $e |- ( ( ps /\ ( ch /\ th /\ ta ) /\ ( et /\ ze /\ si ) )
           -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl133anc $p |- ( ph -> rh ) $=
        ( w3a 3jca syl131anc ) ABCDEFGHRIJKLMAFGHNOPSQT $.
    $}

    ${
      syl313anc.8 $e |- ( ( ( ps /\ ch /\ th ) /\ ta /\ ( et /\ ze /\ si ) )
           -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl313anc $p |- ( ph -> rh ) $=
        ( w3a 3jca syl311anc ) ABCDEFGHRIJKLMAFGHNOPSQT $.
    $}

    ${
      syl331anc.8 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze ) /\ si )
           -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl331anc $p |- ( ph -> rh ) $=
        ( w3a 3jca syl311anc ) ABCDEFGRHIJKLAEFGMNOSPQT $.
    $}

    ${
      syl223anc.8 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) /\ ( et /\ ze /\ si )
          ) -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl223anc $p |- ( ph -> rh ) $=
        ( wa jca syl213anc ) ABCDERFGHIJKADELMSNOPQT $.
    $}

    ${
      syl232anc.8 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) /\ ( ze /\ si )
          ) -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl232anc $p |- ( ph -> rh ) $=
        ( wa jca syl231anc ) ABCDEFGHRIJKLMNAGHOPSQT $.
    $}

    ${
      syl322anc.8 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) /\ ( ze /\ si )
          ) -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl322anc $p |- ( ph -> rh ) $=
        ( wa jca syl321anc ) ABCDEFGHRIJKLMNAGHOPSQT $.
    $}

    sylXanc.8 $e |- ( ph -> rh ) $.
    ${
      syl233anc.9 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) /\ ( ze /\ si /\
          rh ) ) -> mu ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl233anc $p |- ( ph -> mu ) $=
        ( wa jca syl133anc ) ABCTDEFGHIJABCKLUAMNOPQRSUB $.
    $}

    ${
      syl323anc.9 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) /\ ( ze /\ si /\
          rh ) ) -> mu ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl323anc $p |- ( ph -> mu ) $=
        ( wa jca syl313anc ) ABCDEFTGHIJKLMAEFNOUAPQRSUB $.
    $}

    ${
      syl332anc.9 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze ) /\ ( si /\
          rh ) ) -> mu ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl332anc $p |- ( ph -> mu ) $=
        ( wa jca syl331anc ) ABCDEFGHITJKLMNOPAHIQRUASUB $.
    $}

    sylXanc.9 $e |- ( ph -> mu ) $.
    ${
      syl333anc.10 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze )
          /\ ( si /\ rh /\ mu ) ) -> la ) $.
      $( A syllogism inference combined with contraction.  (Contributed by NM,
         10-Mar-2012.) $)
      syl333anc $p |- ( ph -> la ) $=
        ( w3a 3jca syl331anc ) ABCDEFGHIJUBKLMNOPQAHIJRSTUCUAUD $.
    $}
  $}

  ${
    syl3an1.1 $e |- ( ph -> ps ) $.
    syl3an1.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an1 $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( w3a 3anim1i syl ) ACDHBCDHEABCDFIGJ $.
  $}

  ${
    syl3an2.1 $e |- ( ph -> ch ) $.
    syl3an2.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an2 $p |- ( ( ps /\ ph /\ th ) -> ta ) $=
      ( wi 3exp syl5 3imp ) BADEACBDEHFBCDEGIJK $.
  $}

  ${
    syl3an3.1 $e |- ( ph -> th ) $.
    syl3an3.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an3 $p |- ( ( ps /\ ch /\ ph ) -> ta ) $=
      ( 3exp syl7 3imp ) BCAEADBCEFBCDEGHIJ $.
  $}

  ${
    syl3an1b.1 $e |- ( ph <-> ps ) $.
    syl3an1b.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an1b $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( biimpi syl3an1 ) ABCDEABFHGI $.
  $}

  ${
    syl3an2b.1 $e |- ( ph <-> ch ) $.
    syl3an2b.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an2b $p |- ( ( ps /\ ph /\ th ) -> ta ) $=
      ( biimpi syl3an2 ) ABCDEACFHGI $.
  $}

  ${
    syl3an3b.1 $e |- ( ph <-> th ) $.
    syl3an3b.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an3b $p |- ( ( ps /\ ch /\ ph ) -> ta ) $=
      ( biimpi syl3an3 ) ABCDEADFHGI $.
  $}

  ${
    syl3an1br.1 $e |- ( ps <-> ph ) $.
    syl3an1br.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an1br $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( biimpri syl3an1 ) ABCDEBAFHGI $.
  $}

  ${
    syl3an2br.1 $e |- ( ch <-> ph ) $.
    syl3an2br.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an2br $p |- ( ( ps /\ ph /\ th ) -> ta ) $=
      ( biimpri syl3an2 ) ABCDECAFHGI $.
  $}

  ${
    syl3an3br.1 $e |- ( th <-> ph ) $.
    syl3an3br.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an3br $p |- ( ( ps /\ ch /\ ph ) -> ta ) $=
      ( biimpri syl3an3 ) ABCDEDAFHGI $.
  $}

  ${
    syl3an.1 $e |- ( ph -> ps ) $.
    syl3an.2 $e |- ( ch -> th ) $.
    syl3an.3 $e |- ( ta -> et ) $.
    syl3an.4 $e |- ( ( ps /\ th /\ et ) -> ze ) $.
    $( A triple syllogism inference.  (Contributed by NM, 13-May-2004.) $)
    syl3an $p |- ( ( ph /\ ch /\ ta ) -> ze ) $=
      ( w3a 3anim123i syl ) ACELBDFLGABCDEFHIJMKN $.
  $}

  ${
    syl3anb.1 $e |- ( ph <-> ps ) $.
    syl3anb.2 $e |- ( ch <-> th ) $.
    syl3anb.3 $e |- ( ta <-> et ) $.
    syl3anb.4 $e |- ( ( ps /\ th /\ et ) -> ze ) $.
    $( A triple syllogism inference.  (Contributed by NM, 15-Oct-2005.) $)
    syl3anb $p |- ( ( ph /\ ch /\ ta ) -> ze ) $=
      ( w3a 3anbi123i sylbi ) ACELBDFLGABCDEFHIJMKN $.
  $}

  ${
    syl3anbr.1 $e |- ( ps <-> ph ) $.
    syl3anbr.2 $e |- ( th <-> ch ) $.
    syl3anbr.3 $e |- ( et <-> ta ) $.
    syl3anbr.4 $e |- ( ( ps /\ th /\ et ) -> ze ) $.
    $( A triple syllogism inference.  (Contributed by NM, 29-Dec-2011.) $)
    syl3anbr $p |- ( ( ph /\ ch /\ ta ) -> ze ) $=
      ( bicomi syl3anb ) ABCDEFGBAHLDCILFEJLKM $.
  $}

  ${
    syld3an3.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    syld3an3.2 $e |- ( ( ph /\ ps /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 20-May-2007.) $)
    syld3an3 $p |- ( ( ph /\ ps /\ ch ) -> ta ) $=
      ( w3a simp1 simp2 syl3anc ) ABCHABDEABCIABCJFGK $.
  $}

  ${
    syld3an1.1 $e |- ( ( ch /\ ps /\ th ) -> ph ) $.
    syld3an1.2 $e |- ( ( ph /\ ps /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 7-Jul-2008.) $)
    syld3an1 $p |- ( ( ch /\ ps /\ th ) -> ta ) $=
      ( 3com13 syld3an3 ) DBCEDBCAECBDAFHABDEGHIH $.
  $}

  ${
    syld3an2.1 $e |- ( ( ph /\ ch /\ th ) -> ps ) $.
    syld3an2.2 $e |- ( ( ph /\ ps /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 20-May-2007.) $)
    syld3an2 $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( 3com23 syld3an3 ) ADCEADCBEACDBFHABDEGHIH $.
  $}

  ${
    syl3anl1.1 $e |- ( ph -> ps ) $.
    syl3anl1.2 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 24-Feb-2005.) $)
    syl3anl1 $p |- ( ( ( ph /\ ch /\ th ) /\ ta ) -> et ) $=
      ( w3a 3anim1i sylan ) ACDIBCDIEFABCDGJHK $.
  $}

  ${
    syl3anl2.1 $e |- ( ph -> ch ) $.
    syl3anl2.2 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 24-Feb-2005.) $)
    syl3anl2 $p |- ( ( ( ps /\ ph /\ th ) /\ ta ) -> et ) $=
      ( w3a wi ex syl3an2 imp ) BADIEFABCDEFJGBCDIEFHKLM $.
  $}

  ${
    syl3anl3.1 $e |- ( ph -> th ) $.
    syl3anl3.2 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 24-Feb-2005.) $)
    syl3anl3 $p |- ( ( ( ps /\ ch /\ ph ) /\ ta ) -> et ) $=
      ( w3a 3anim3i sylan ) BCAIBCDIEFADBCGJHK $.
  $}

  ${
    syl3anl.1 $e |- ( ph -> ps ) $.
    syl3anl.2 $e |- ( ch -> th ) $.
    syl3anl.3 $e |- ( ta -> et ) $.
    syl3anl.4 $e |- ( ( ( ps /\ th /\ et ) /\ ze ) -> si ) $.
    $( A triple syllogism inference.  (Contributed by NM, 24-Dec-2006.) $)
    syl3anl $p |- ( ( ( ph /\ ch /\ ta ) /\ ze ) -> si ) $=
      ( w3a 3anim123i sylan ) ACEMBDFMGHABCDEFIJKNLO $.
  $}

  ${
    syl3anr1.1 $e |- ( ph -> ps ) $.
    syl3anr1.2 $e |- ( ( ch /\ ( ps /\ th /\ ta ) ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 31-Jul-2007.) $)
    syl3anr1 $p |- ( ( ch /\ ( ph /\ th /\ ta ) ) -> et ) $=
      ( w3a 3anim1i sylan2 ) ADEICBDEIFABDEGJHK $.
  $}

  ${
    syl3anr2.1 $e |- ( ph -> th ) $.
    syl3anr2.2 $e |- ( ( ch /\ ( ps /\ th /\ ta ) ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 1-Aug-2007.) $)
    syl3anr2 $p |- ( ( ch /\ ( ps /\ ph /\ ta ) ) -> et ) $=
      ( w3a ancoms syl3anl2 ) BAEICFABDECFGCBDEIFHJKJ $.
  $}

  ${
    syl3anr3.1 $e |- ( ph -> ta ) $.
    syl3anr3.2 $e |- ( ( ch /\ ( ps /\ th /\ ta ) ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 23-Aug-2007.) $)
    syl3anr3 $p |- ( ( ch /\ ( ps /\ th /\ ph ) ) -> et ) $=
      ( w3a 3anim3i sylan2 ) BDAICBDEIFAEBDGJHK $.
  $}

  ${
    3impdi.1 $e |- ( ( ( ph /\ ps ) /\ ( ph /\ ch ) ) -> th ) $.
    $( Importation inference (undistribute conjunction).  (Contributed by NM,
       14-Aug-1995.) $)
    3impdi $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( anandis 3impb ) ABCDABCDEFG $.
  $}

  ${
    3impdir.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ ps ) ) -> th ) $.
    $( Importation inference (undistribute conjunction).  (Contributed by NM,
       20-Aug-1995.) $)
    3impdir $p |- ( ( ph /\ ch /\ ps ) -> th ) $=
      ( anandirs 3impa ) ACBDACBDEFG $.
  $}

  ${
    3anidm12.1 $e |- ( ( ph /\ ph /\ ps ) -> ch ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       7-Mar-2008.) $)
    3anidm12 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( 3expib anabsi5 ) ABCAABCDEF $.
  $}

  ${
    3anidm13.1 $e |- ( ( ph /\ ps /\ ph ) -> ch ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       7-Mar-2008.) $)
    3anidm13 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( 3com23 3anidm12 ) ABCABACDEF $.
  $}

  ${
    3anidm23.1 $e |- ( ( ph /\ ps /\ ps ) -> ch ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       1-Feb-2007.) $)
    3anidm23 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( 3expa anabss3 ) ABCABBCDEF $.
  $}

  ${
    3ori.1 $e |- ( ph \/ ps \/ ch ) $.
    $( Infer implication from triple disjunction.  (Contributed by NM,
       26-Sep-2006.) $)
    3ori $p |- ( ( -. ph /\ -. ps ) -> ch ) $=
      ( wn wa wo ioran w3o df-3or mpbi ori sylbir ) AEBEFABGZECABHNCABCINCGDABC
      JKLM $.
  $}

  $( Disjunction of 3 antecedents.  (Contributed by NM, 8-Apr-1994.) $)
  3jao $p |- ( ( ( ph -> ps ) /\ ( ch -> ps ) /\ ( th -> ps ) ) ->
              ( ( ph \/ ch \/ th ) -> ps ) ) $=
    ( w3o wo wi w3a df-3or jao syl6 3imp syl5bi ) ACDEACFZDFZABGZCBGZDBGZHBACDI
    PQROBGZPQNBGRSGABCJNBDJKLM $.

  $( Disjunction of 3 antecedents.  (Contributed by NM, 13-Sep-2011.) $)
  3jaob $p |- ( ( ( ph \/ ch \/ th ) -> ps ) <->
              ( ( ph -> ps ) /\ ( ch -> ps ) /\ ( th -> ps ) ) ) $=
    ( w3o wi w3a 3mix1 imim1i 3mix2 3mix3 3jca 3jao impbii ) ACDEZBFZABFZCBFZDB
    FZGPQRSAOBACDHICOBCADJIDOBDACKILABCDMN $.

  ${
    3jaoi.1 $e |- ( ph -> ps ) $.
    3jaoi.2 $e |- ( ch -> ps ) $.
    3jaoi.3 $e |- ( th -> ps ) $.
    $( Disjunction of 3 antecedents (inference).  (Contributed by NM,
       12-Sep-1995.) $)
    3jaoi $p |- ( ( ph \/ ch \/ th ) -> ps ) $=
      ( wi w3a w3o 3pm3.2i 3jao ax-mp ) ABHZCBHZDBHZIACDJBHNOPEFGKABCDLM $.
  $}

  ${
    3jaod.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3jaod.2 $e |- ( ph -> ( th -> ch ) ) $.
    3jaod.3 $e |- ( ph -> ( ta -> ch ) ) $.
    $( Disjunction of 3 antecedents (deduction).  (Contributed by NM,
       14-Oct-2005.) $)
    3jaod $p |- ( ph -> ( ( ps \/ th \/ ta ) -> ch ) ) $=
      ( wi w3o 3jao syl3anc ) ABCIDCIECIBDEJCIFGHBCDEKL $.
  $}

  ${
    3jaoian.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    3jaoian.2 $e |- ( ( th /\ ps ) -> ch ) $.
    3jaoian.3 $e |- ( ( ta /\ ps ) -> ch ) $.
    $( Disjunction of 3 antecedents (inference).  (Contributed by NM,
       14-Oct-2005.) $)
    3jaoian $p |- ( ( ( ph \/ th \/ ta ) /\ ps ) -> ch ) $=
      ( w3o wi ex 3jaoi imp ) ADEIBCABCJDEABCFKDBCGKEBCHKLM $.
  $}

  ${
    3jaodan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    3jaodan.2 $e |- ( ( ph /\ th ) -> ch ) $.
    3jaodan.3 $e |- ( ( ph /\ ta ) -> ch ) $.
    $( Disjunction of 3 antecedents (deduction).  (Contributed by NM,
       14-Oct-2005.) $)
    3jaodan $p |- ( ( ph /\ ( ps \/ th \/ ta ) ) -> ch ) $=
      ( w3o ex 3jaod imp ) ABDEICABCDEABCFJADCGJAECHJKL $.
  $}

  ${
    mpjao3dan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    mpjao3dan.2 $e |- ( ( ph /\ th ) -> ch ) $.
    mpjao3dan.3 $e |- ( ( ph /\ ta ) -> ch ) $.
    mpjao3dan.4 $e |- ( ph -> ( ps \/ th \/ ta ) ) $.
    $( Eliminate a 3-way disjunction in a deduction.  (Contributed by Thierry
       Arnoux, 13-Apr-2018.) $)
    mpjao3dan $p |- ( ph -> ch ) $=
      ( wo jaodan w3o df-3or sylib mpjaodan ) ABDJZCEABCDFGKHABDELPEJIBDEMNO $.
  $}

  ${
    3jaao.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3jaao.2 $e |- ( th -> ( ta -> ch ) ) $.
    3jaao.3 $e |- ( et -> ( ze -> ch ) ) $.
    $( Inference conjoining and disjoining the antecedents of three
       implications.  (Contributed by Jeff Hankins, 15-Aug-2009.)  (Proof
       shortened by Andrew Salmon, 13-May-2011.) $)
    3jaao $p |- ( ( ph /\ th /\ et ) -> ( ( ps \/ ta \/ ze ) -> ch ) ) $=
      ( w3a wi 3ad2ant1 3ad2ant2 3ad2ant3 3jaod ) ADFKBCEGADBCLFHMDAECLFINFAGCL
      DJOP $.
  $}

  $( Triple disjunction implies negated triple conjunction.  (Contributed by
     Jim Kingdon, 23-Dec-2018.) $)
  3ianorr $p |- ( ( -. ph \/ -. ps \/ -. ch ) -> -. ( ph /\ ps /\ ch ) ) $=
    ( wn w3a simp1 con3i simp2 simp3 3jaoi ) ADABCEZDBDCDKAABCFGKBABCHGKCABCIGJ
    $.

  ${
    syl3an9b.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl3an9b.2 $e |- ( th -> ( ch <-> ta ) ) $.
    syl3an9b.3 $e |- ( et -> ( ta <-> ze ) ) $.
    $( Nested syllogism inference conjoining 3 dissimilar antecedents.
       (Contributed by NM, 1-May-1995.) $)
    syl3an9b $p |- ( ( ph /\ th /\ et ) -> ( ps <-> ze ) ) $=
      ( wb wa sylan9bb 3impa ) ADFBGKADLBEFGABCDEHIMJMN $.
  $}

  ${
    bi3d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bi3d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    bi3d.3 $e |- ( ph -> ( et <-> ze ) ) $.
    $( Deduction joining 3 equivalences to form equivalence of disjunctions.
       (Contributed by NM, 20-Apr-1994.) $)
    3orbi123d $p |- ( ph -> ( ( ps \/ th \/ et ) <-> ( ch \/ ta \/ ze ) ) ) $=
      ( wo w3o orbi12d df-3or 3bitr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.

    $( Deduction joining 3 equivalences to form equivalence of conjunctions.
       (Contributed by NM, 22-Apr-1994.) $)
    3anbi123d $p |- ( ph -> ( ( ps /\ th /\ et ) <-> ( ch /\ ta /\ ze ) ) ) $=
      ( wa w3a anbi12d df-3an 3bitr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.
  $}

  ${
    3anbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3anbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction conjoining and adding a conjunct to equivalences.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi12d $p |- ( ph -> ( ( ps /\ th /\ et ) <-> ( ch /\ ta /\ et ) ) ) $=
      ( biidd 3anbi123d ) ABCDEFFGHAFIJ $.

    $( Deduction conjoining and adding a conjunct to equivalences.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi13d $p |- ( ph -> ( ( ps /\ et /\ th ) <-> ( ch /\ et /\ ta ) ) ) $=
      ( biidd 3anbi123d ) ABCFFDEGAFIHJ $.

    $( Deduction conjoining and adding a conjunct to equivalences.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi23d $p |- ( ph -> ( ( et /\ ps /\ th ) <-> ( et /\ ch /\ ta ) ) ) $=
      ( biidd 3anbi123d ) AFFBCDEAFIGHJ $.
  $}

  ${
    3anbi1d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding conjuncts to an equivalence.  (Contributed by NM,
       8-Sep-2006.) $)
    3anbi1d $p |- ( ph -> ( ( ps /\ th /\ ta ) <-> ( ch /\ th /\ ta ) ) ) $=
      ( biidd 3anbi12d ) ABCDDEFADGH $.

    $( Deduction adding conjuncts to an equivalence.  (Contributed by NM,
       8-Sep-2006.) $)
    3anbi2d $p |- ( ph -> ( ( th /\ ps /\ ta ) <-> ( th /\ ch /\ ta ) ) ) $=
      ( biidd 3anbi12d ) ADDBCEADGFH $.

    $( Deduction adding conjuncts to an equivalence.  (Contributed by NM,
       8-Sep-2006.) $)
    3anbi3d $p |- ( ph -> ( ( th /\ ta /\ ps ) <-> ( th /\ ta /\ ch ) ) ) $=
      ( biidd 3anbi13d ) ADDBCEADGFH $.
  $}

  ${
    3anim123d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3anim123d.2 $e |- ( ph -> ( th -> ta ) ) $.
    3anim123d.3 $e |- ( ph -> ( et -> ze ) ) $.
    $( Deduction joining 3 implications to form implication of conjunctions.
       (Contributed by NM, 24-Feb-2005.) $)
    3anim123d $p |- ( ph -> ( ( ps /\ th /\ et ) -> ( ch /\ ta /\ ze ) ) ) $=
      ( wa w3a anim12d df-3an 3imtr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.

    $( Deduction joining 3 implications to form implication of disjunctions.
       (Contributed by NM, 4-Apr-1997.) $)
    3orim123d $p |- ( ph -> ( ( ps \/ th \/ et ) -> ( ch \/ ta \/ ze ) ) ) $=
      ( wo w3o orim12d df-3or 3imtr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.
  $}

  $( Rearrangement of 6 conjuncts.  (Contributed by NM, 13-Mar-1995.) $)
  an6 $p |- ( ( ( ph /\ ps /\ ch ) /\ ( th /\ ta /\ et ) ) <->
              ( ( ph /\ th ) /\ ( ps /\ ta ) /\ ( ch /\ et ) ) ) $=
    ( w3a wa df-3an anbi12i an4 anbi1i 3bitri bitr4i ) ABCGZDEFGZHZADHZBEHZHZCF
    HZHZRSUAGQABHZCHZDEHZFHZHUCUEHZUAHUBOUDPUFABCIDEFIJUCCUEFKUGTUAABDEKLMRSUAI
    N $.

  $( Analog of ~ an4 for triple conjunction.  (Contributed by Scott Fenton,
     16-Mar-2011.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
  3an6 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) /\ ( ta /\ et ) ) <->
                ( ( ph /\ ch /\ ta ) /\ ( ps /\ th /\ et ) ) ) $=
    ( w3a wa an6 bicomi ) ACEGBDFGHABHCDHEFHGACEBDFIJ $.

  $( Analog of ~ or4 for triple conjunction.  (Contributed by Scott Fenton,
     16-Mar-2011.) $)
  3or6 $p |- ( ( ( ph \/ ps ) \/ ( ch \/ th ) \/ ( ta \/ et ) ) <->
                ( ( ph \/ ch \/ ta ) \/ ( ps \/ th \/ et ) ) ) $=
    ( wo w3o or4 orbi1i bitr2i df-3or orbi12i 3bitr4i ) ABGZCDGZGZEFGZGZACGZEGZ
    BDGZFGZGZOPRHACEHZBDFHZGUDTUBGZRGSTEUBFIUGQRACBDIJKOPRLUEUAUFUCACELBDFLMN
    $.

  ${
    mp3an1.1 $e |- ph $.
    mp3an1.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       21-Nov-1994.) $)
    mp3an1 $p |- ( ( ps /\ ch ) -> th ) $=
      ( wa 3expb mpan ) ABCGDEABCDFHI $.
  $}

  ${
    mp3an2.1 $e |- ps $.
    mp3an2.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       21-Nov-1994.) $)
    mp3an2 $p |- ( ( ph /\ ch ) -> th ) $=
      ( 3expa mpanl2 ) ABCDEABCDFGH $.
  $}

  ${
    mp3an3.1 $e |- ch $.
    mp3an3.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       21-Nov-1994.) $)
    mp3an3 $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa 3expia mpi ) ABGCDEABCDFHI $.
  $}

  ${
    mp3an12.1 $e |- ph $.
    mp3an12.2 $e |- ps $.
    mp3an12.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       13-Jul-2005.) $)
    mp3an12 $p |- ( ch -> th ) $=
      ( mp3an1 mpan ) BCDFABCDEGHI $.
  $}

  ${
    mp3an13.1 $e |- ph $.
    mp3an13.2 $e |- ch $.
    mp3an13.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       14-Jul-2005.) $)
    mp3an13 $p |- ( ps -> th ) $=
      ( mp3an3 mpan ) ABDEABCDFGHI $.
  $}

  ${
    mp3an23.1 $e |- ps $.
    mp3an23.2 $e |- ch $.
    mp3an23.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       14-Jul-2005.) $)
    mp3an23 $p |- ( ph -> th ) $=
      ( mp3an3 mpan2 ) ABDEABCDFGHI $.
  $}

  ${
    mp3an1i.1 $e |- ps $.
    mp3an1i.2 $e |- ( ph -> ( ( ps /\ ch /\ th ) -> ta ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 5-Jul-2005.) $)
    mp3an1i $p |- ( ph -> ( ( ch /\ th ) -> ta ) ) $=
      ( wa wi w3a com12 mp3an1 ) CDHAEBCDAEIFABCDJEGKLK $.
  $}

  ${
    mp3anl1.1 $e |- ph $.
    mp3anl1.2 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Feb-2005.) $)
    mp3anl1 $p |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $=
      ( wa wi w3a ex mp3an1 imp ) BCHDEABCDEIFABCJDEGKLM $.
  $}

  ${
    mp3anl2.1 $e |- ps $.
    mp3anl2.2 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Feb-2005.) $)
    mp3anl2 $p |- ( ( ( ph /\ ch ) /\ th ) -> ta ) $=
      ( wa wi w3a ex mp3an2 imp ) ACHDEABCDEIFABCJDEGKLM $.
  $}

  ${
    mp3anl3.1 $e |- ch $.
    mp3anl3.2 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Feb-2005.) $)
    mp3anl3 $p |- ( ( ( ph /\ ps ) /\ th ) -> ta ) $=
      ( wa wi w3a ex mp3an3 imp ) ABHDEABCDEIFABCJDEGKLM $.
  $}

  ${
    mp3anr1.1 $e |- ps $.
    mp3anr1.2 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 4-Nov-2006.) $)
    mp3anr1 $p |- ( ( ph /\ ( ch /\ th ) ) -> ta ) $=
      ( wa w3a ancoms mp3anl1 ) CDHAEBCDAEFABCDIEGJKJ $.
  $}

  ${
    mp3anr2.1 $e |- ch $.
    mp3anr2.2 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Nov-2006.) $)
    mp3anr2 $p |- ( ( ph /\ ( ps /\ th ) ) -> ta ) $=
      ( wa w3a ancoms mp3anl2 ) BDHAEBCDAEFABCDIEGJKJ $.
  $}

  ${
    mp3anr3.1 $e |- th $.
    mp3anr3.2 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       19-Oct-2007.) $)
    mp3anr3 $p |- ( ( ph /\ ( ps /\ ch ) ) -> ta ) $=
      ( wa w3a ancoms mp3anl3 ) BCHAEBCDAEFABCDIEGJKJ $.
  $}

  ${
    mp3an.1 $e |- ph $.
    mp3an.2 $e |- ps $.
    mp3an.3 $e |- ch $.
    mp3an.4 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       14-May-1999.) $)
    mp3an $p |- th $=
      ( mp3an1 mp2an ) BCDFGABCDEHIJ $.
  $}

  ${
    mpd3an3.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    mpd3an3.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 8-Nov-2007.) $)
    mpd3an3 $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa 3expa mpdan ) ABGCDEABCDFHI $.
  $}

  ${
    mpd3an23.1 $e |- ( ph -> ps ) $.
    mpd3an23.2 $e |- ( ph -> ch ) $.
    mpd3an23.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 4-Dec-2006.) $)
    mpd3an23 $p |- ( ph -> th ) $=
      ( id syl3anc ) AABCDAHEFGI $.
  $}

  ${
    biimp3a.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Infer implication from a logical equivalence.  Similar to ~ biimpa .
       (Contributed by NM, 4-Sep-2005.) $)
    biimp3a $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( wa biimpa 3impa ) ABCDABFCDEGH $.

    $( Infer implication from a logical equivalence.  Similar to ~ biimpar .
       (Contributed by NM, 2-Jan-2009.) $)
    biimp3ar $p |- ( ( ph /\ ps /\ th ) -> ch ) $=
      ( exbiri 3imp ) ABDCABCDEFG $.
  $}

  ${
    3anandis.1 $e |- ( ( ( ph /\ ps ) /\ ( ph /\ ch ) /\ ( ph /\ th ) )
                      -> ta ) $.
    $( Inference that undistributes a triple conjunction in the antecedent.
       (Contributed by NM, 18-Apr-2007.) $)
    3anandis $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $=
      ( w3a wa simpl simpr1 simpr2 simpr3 syl222anc ) ABCDGZHABACADEANIZABCDJOA
      BCDKOABCDLFM $.
  $}

  ${
    3anandirs.1 $e |- ( ( ( ph /\ th ) /\ ( ps /\ th ) /\ ( ch /\ th ) )
                      -> ta ) $.
    $( Inference that undistributes a triple conjunction in the antecedent.
       (Contributed by NM, 25-Jul-2006.)  (Revised by NM, 18-Apr-2007.) $)
    3anandirs $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $=
      ( w3a wa simpl1 simpr simpl2 simpl3 syl222anc ) ABCGZDHADBDCDEABCDINDJZAB
      CDKOABCDLOFM $.
  $}

  ${
    ecased.1 $e |- ( ph -> -. ch ) $.
    ecased.2 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Deduction form of disjunctive syllogism.  (Contributed by Jim Kingdon,
       9-Dec-2017.) $)
    ecased $p |- ( ph -> ps ) $=
      ( wn wo wa jca orel2 imp syl ) ACFZBCGZHBAMNDEIMNBCBJKL $.
  $}

  ${
    ecase23d.1 $e |- ( ph -> -. ch ) $.
    ecase23d.2 $e |- ( ph -> -. th ) $.
    ecase23d.3 $e |- ( ph -> ( ps \/ ch \/ th ) ) $.
    $( Variation of ~ ecased with three disjuncts instead of two.  (Contributed
       by NM, 22-Apr-1994.)  (Revised by Jim Kingdon, 9-Dec-2017.) $)
    ecase23d $p |- ( ph -> ps ) $=
      ( wo w3o df-3or sylib ecased ) ABCEABCHZDFABCDIMDHGBCDJKLL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                True and false constants
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       Universal quantifier for use by df-tru
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Even though it isn't ordinarily part of propositional calculus, the universal
  quantifier ` A. ` is introduced here so that the soundness of definition
  ~ df-tru can be checked by the same algorithm that is used for predicate
  calculus.  Its first real use is in axiom ~ ax-5 in the predicate
  calculus section below.  For those who want propositional calculus to be
  self-contained i.e. to use wff variables only, the alternate definition
  ~ dftru2 may be adopted and this subsection moved down to the start of the
  subsection with ~ wex below.  However, the use of ~ dftru2 as a definition
  requires a more elaborate definition checking algorithm that we prefer to
  avoid.

$)

  $( Declare new symbols needed for predicate calculus. $)
  $c A. $. $( "inverted A" universal quantifier (read:  "for all") $)
  $c setvar $. $( Individual variable type (read:  "the following is an
             individual (set) variable" $)

  $( Add 'setvar' as a typecode for bound variables. $)
  $( $j syntax 'setvar'; bound 'setvar'; $)

  ${
    $v x $.
    $( Let ` x ` be an individual variable (temporary declaration). $)
    vx.wal $f setvar x $.
    $( Extend wff definition to include the universal quantifier ('for all').
       ` A. x ph ` is read " ` ph ` (phi) is true for all ` x ` ."  Typically,
       in its final application ` ph ` would be replaced with a wff containing
       a (free) occurrence of the variable ` x ` , for example ` x = y ` .  In
       a universe with a finite number of objects, "for all" is equivalent to a
       big conjunction (AND) with one wff for each possible case of ` x ` .
       When the universe is infinite (as with set theory), such a
       propositional-calculus equivalent is not possible because an infinitely
       long formula has no meaning, but conceptually the idea is the same. $)
    wal $a wff A. x ph $.
  $}

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
        Equality predicate for use by df-tru
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Even though it isn't ordinarily part of propositional calculus, the equality
  predicate ` = ` is introduced here so that the soundness of definition
  ~ df-tru can be checked by the same algorithm as is used for predicate
  calculus.  Its first real use is in axiom ~ ax-8 in the predicate calculus
  section below.  For those who want propositional calculus to be
  self-contained i.e. to use wff variables only, the alternate definition
  ~ dftru2 may be adopted and this subsection moved down to just above ~ weq
  below.  However, the use of ~ dftru2 as a definition requires a more
  elaborate definition checking algorithm that we prefer to avoid.
$)

  $c class $.

  $( Add 'class' as a typecode. $)
  $( $j syntax 'class'; $)

  ${
    $v x $.
    $( Let ` x ` be an individual variable (temporary declaration). $)
    vx.cv $f setvar x $.
    $( This syntax construction states that a variable ` x ` , which has been
       declared to be a setvar variable by $f statement vx, is also a class
       expression.  This can be justified informally as follows.  We know that
       the class builder ` { y | y e. x } ` is a class by ~ cab .  Since (when
       ` y ` is distinct from ` x ` ) we have ` x = { y | y e. x } ` by
       ~ cvjust , we can argue that the syntax " ` class x ` " can be viewed as
       an abbreviation for " ` class { y | y e. x } ` ".  See the discussion
       under the definition of class in [Jech] p. 4 showing that "Every set can
       be considered to be a class."

       While it is tempting and perhaps occasionally useful to view ~ cv as a
       "type conversion" from a setvar variable to a class variable, keep in
       mind that ~ cv is intrinsically no different from any other
       class-building syntax such as ~ cab , ~ cun , or ~ c0 .

       For a general discussion of the theory of classes and the role of ~ cv ,
       see ~ http://us.metamath.org/mpeuni/mmset.html#class .

       (The description above applies to set theory, not predicate calculus.
       The purpose of introducing ` class x ` here, and not in set theory where
       it belongs, is to allow us to express i.e.  "prove" the ~ weq of
       predicate calculus from the ~ wceq of set theory, so that we don't
       overload the ` = ` connective with two syntax definitions.  This is done
       to prevent ambiguity that would complicate some Metamath parsers.) $)
    cv $a class x $.
  $}

  $( Declare the equality predicate symbol. $)
  $c = $.  $( Equal sign (read:  'is equal to') $)

  ${
    $v A $.
    $v B $.
    $( Temporary declarations of ` A ` and ` B ` . $)
    cA.wceq $f class A $.
    cB.wceq $f class B $.
    $( Extend wff definition to include class equality.

       For a general discussion of the theory of classes, see
       ~ http://us.metamath.org/mpeuni/mmset.html#class .

       (The purpose of introducing ` wff A = B ` here, and not in set theory
       where it belongs, is to allow us to express i.e.  "prove" the ~ weq of
       predicate calculus in terms of the ~ wceq of set theory, so that we
       don't "overload" the ` = ` connective with two syntax definitions.  This
       is done to prevent ambiguity that would complicate some Metamath
       parsers.  For example, some parsers - although not the Metamath program
       - stumble on the fact that the ` = ` in ` x = y ` could be the ` = ` of
       either ~ weq or ~ wceq , although mathematically it makes no
       difference.  The class variables ` A ` and ` B ` are introduced
       temporarily for the purpose of this definition but otherwise not used in
       predicate calculus.  See ~ df-cleq for more information on the set
       theory usage of ~ wceq .) $)
    wceq $a wff A = B $.
  $}

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
                Define the true and false constants
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c T. $.

  $( ` T. ` is a wff. $)
  wtru $a wff T. $.

  ${
    $v x $.
    $v y $.
    $( Temporary declarations of ` x ` and ` y ` for local use by ~ df-tru .
       These will be redeclared globally in the predicate calculus section. $)
    vx.tru $f setvar x $.
    vy.tru $f setvar y $.
    $( Soundness justification theorem for ~ df-tru .  (Contributed by Mario
       Carneiro, 17-Nov-2013.)  (Revised by NM, 11-Jul-2019.) $)
    trujust $p |- ( ( A. x x = x -> A. x x = x )
              <-> ( A. y y = y -> A. y y = y ) ) $=
      ( cv wceq wal wi id 2th ) ACZIDAEZJFBCZKDBEZLFJGLGH $.

    $( Definition of the truth value "true", or "verum", denoted by ` T. ` .
       This is a tautology, as proved by ~ tru .  In this definition, an
       instance of ~ id is used as the definiens, although any tautology, such
       as an axiom, can be used in its place.  This particular ~ id instance
       was chosen so this definition can be checked by the same algorithm that
       is used for predicate calculus.  This definition should be referenced
       directly only by ~ tru , and other proofs should depend on ~ tru
       (directly or indirectly) instead of this definition, since there are
       many alternative ways to define ` T. ` .  (Contributed by Anthony Hart,
       13-Oct-2010.)  (Revised by NM, 11-Jul-2019.)
       (New usage is discouraged.) $)
    df-tru $a |- ( T. <-> ( A. x x = x -> A. x x = x ) ) $.

    $( The truth value ` T. ` is provable.  (Contributed by Anthony Hart,
       13-Oct-2010.) $)
    tru $p |- T. $=
      ( vx.tru wtru cv wceq wal wi id df-tru mpbir ) BACZJDAEZKFKGAHI $.
  $}

  $c F. $.

  $( ` F. ` is a wff. $)
  wfal $a wff F. $.

  $( Definition of the truth value "false", or "falsum", denoted by ` F. ` .
     See also ~ df-tru .  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  df-fal $a |- ( F. <-> -. T. ) $.

  $( The truth value ` F. ` is refutable.  (Contributed by Anthony Hart,
     22-Oct-2010.)  (Proof shortened by Mel L. O'Cat, 11-Mar-2012.) $)
  fal $p |- -. F. $=
    ( wfal wtru wn tru notnoti df-fal mtbir ) ABCBDEFG $.

  $( An alternate definition of "true".  (Contributed by Anthony Hart,
     13-Oct-2010.)  (Revised by BJ, 12-Jul-2019.)
     (New usage is discouraged.) $)
  dftru2 $p |- ( T. <-> ( ph -> ph ) ) $=
    ( wtru wi tru id 2th ) BAACDAEF $.

  ${
    trud.1 $e |- ( T. -> ph ) $.
    $( Eliminate ` T. ` as an antecedent.  A proposition implied by ` T. ` is
       true.  (Contributed by Mario Carneiro, 13-Mar-2014.) $)
    trud $p |- ph $=
      ( wtru tru ax-mp ) CADBE $.
  $}

  $( A proposition is equivalent to itself being equivalent to ` T. ` .
     (Contributed by Anthony Hart, 14-Aug-2011.) $)
  tbtru $p |- ( ph <-> ( ph <-> T. ) ) $=
    ( wtru tru tbt ) BACD $.

  $( The negation of a proposition is equivalent to itself being equivalent to
     ` F. ` .  (Contributed by Anthony Hart, 14-Aug-2011.) $)
  nbfal $p |- ( -. ph <-> ( ph <-> F. ) ) $=
    ( wfal fal nbn ) BACD $.

  ${
    bitru.1 $e |- ph $.
    $( A theorem is equivalent to truth.  (Contributed by Mario Carneiro,
       9-May-2015.) $)
    bitru $p |- ( ph <-> T. ) $=
      ( wtru tru 2th ) ACBDE $.
  $}

  ${
    bifal.1 $e |- -. ph $.
    $( A contradiction is equivalent to falsehood.  (Contributed by Mario
       Carneiro, 9-May-2015.) $)
    bifal $p |- ( ph <-> F. ) $=
      ( wfal fal 2false ) ACBDE $.
  $}

  $( The truth value ` F. ` implies anything.  Also called the principle of
     explosion, or "ex falso quodlibet".  (Contributed by FL, 20-Mar-2011.)
     (Proof shortened by Anthony Hart, 1-Aug-2011.) $)
  falim $p |- ( F. -> ph ) $=
    ( wfal fal pm2.21i ) BACD $.

  $( The truth value ` F. ` implies anything.  (Contributed by Mario Carneiro,
     9-Feb-2017.) $)
  falimd $p |- ( ( ph /\ F. ) -> ps ) $=
    ( wfal falim adantl ) CBABDE $.

  $( Anything implies ` T. ` .  (Contributed by FL, 20-Mar-2011.)  (Proof
     shortened by Anthony Hart, 1-Aug-2011.) $)
  a1tru $p |- ( ph -> T. ) $=
    ( wtru tru a1i ) BACD $.

  $( True can be removed from a conjunction.  (Contributed by FL,
     20-Mar-2011.)  (Proof shortened by Wolf Lammen, 21-Jul-2019.) $)
  truan $p |- ( ( T. /\ ph ) <-> ph ) $=
    ( wtru wa tru biantrur bicomi ) ABACBADEF $.

  $( Obsolete proof of ~ truan as of 21-Jul-2019.  (Contributed by FL,
     20-Mar-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  truanOLD $p |- ( ( T. /\ ph ) <-> ph ) $=
    ( wtru wa simpr a1tru ancri impbii ) BACABADABAEFG $.

  $( Given falsum, we can define the negation of a wff ` ph ` as the statement
     that a contradiction follows from assuming ` ph ` .  (Contributed by Mario
     Carneiro, 9-Feb-2017.)  (Proof shortened by Wolf Lammen, 21-Jul-2019.) $)
  dfnot $p |- ( -. ph <-> ( ph -> F. ) ) $=
    ( wfal wn wi wb fal mtt ax-mp ) BCACABDEFBAGH $.

  ${
    inegd.1 $e |- ( ( ph /\ ps ) -> F. ) $.
    $( Negation introduction rule from natural deduction.  (Contributed by
       Mario Carneiro, 9-Feb-2017.) $)
    inegd $p |- ( ph -> -. ps ) $=
      ( wfal wi wn ex dfnot sylibr ) ABDEBFABDCGBHI $.
  $}

  ${
    pm2.21fal.1 $e |- ( ph -> ps ) $.
    pm2.21fal.2 $e |- ( ph -> -. ps ) $.
    $( If a wff and its negation are provable, then falsum is provable.
       (Contributed by Mario Carneiro, 9-Feb-2017.) $)
    pm2.21fal $p |- ( ph -> F. ) $=
      ( wfal pm2.21dd ) ABECDF $.
  $}

  $( Negation inferred from embedded conjunct.  (Contributed by NM,
     20-Aug-1993.)  (Proof rewritten by Jim Kingdon, 4-May-2018.) $)
  pclem6 $p |- ( ( ph <-> ( ps /\ -. ph ) ) -> -. ps ) $=
    ( wn wa wb wfal wi bi1 pm3.4 com12 syl9r ax-ia3 syl9 impbidd pm5.19 pm2.21i
    bi2 syl6com dfnot sylibr ) ABACZDZEZBFGBCBUCAUAEZFBUCAUAUCAUBBUAAUBHUBBUABU
    AIJKBUAUBUCABUALAUBQMNUDFAOPRBST $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Logical 'xor'
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare connective for exclusive disjunction ('xor'). $)
  $c \/_ $. $( Underlined 'vee' (read:  'xor') $)

  $( Extend wff definition to include exclusive disjunction ('xor'). $)
  wxo $a wff ( ph \/_ ps ) $.

  $( Define exclusive disjunction (logical 'xor').  Return true if either the
     left or right, but not both, are true.  Contrast with ` /\ ` ( ~ wa ),
     ` \/ ` ( ~ wo ), and ` -> ` ( ~ wi ) .  (Contributed by FL, 22-Nov-2010.)
     (Modified by Jim Kingdon, 1-Mar-2018.) $)
  df-xor $a |- ( ( ph \/_ ps ) <-> ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) ) $.

  $( One way of defining exclusive or.  Equivalent to ~ df-xor .  (Contributed
     by Jim Kingdon and Mario Carneiro, 1-Mar-2018.) $)
  xoranor $p |- ( ( ph \/_ ps ) <-> ( ( ph \/ ps ) /\ ( -. ph \/ -. ps ) ) ) $=
    ( wxo wo wn wa df-xor ax-ia3 con3d olc syl6 pm3.21 orc jaoi imdistani sylbi
    wi pm3.14 anim2i sylibr impbii ) ABCZABDZAEZBEZDZFZUBUCABFZEZFZUGABGZUCUIUF
    AUIUFQBAUIUEUFABUHABHIUEUDJKBUIUDUFBAUHBALIUDUEMKNOPUGUJUBUFUIUCABRSUKTUA
    $.

  $( This tautology shows that xor is really exclusive.  (Contributed by FL,
     22-Nov-2010.)  (Proof rewritten by Jim Kingdon, 5-May-2018.) $)
  excxor $p |- ( ( ph \/_ ps ) <->
       ( ( ph /\ -. ps ) \/ ( -. ph /\ ps ) ) ) $=
    ( wxo wn wa wo xoranor andi orcom pm3.24 biorfi andir pm5.61 orbi12i 3bitri
    3bitr4ri ancom orbi2i ) ABCZBADZEZABDZEZFZUCUAFUCTBEZFSABFZTUBFEUFTEZUFUBEZ
    FUDABGUFTUBHUGUAUHUCUAATEZFUIUAFUAUGUAUIIUIUAAJKABTLPABMNOUAUCIUAUEUCBTQRO
    $.

  ${
    xorbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction joining an equivalence and a left operand to form equivalence
       of exclusive-or.  (Contributed by Jim Kingdon, 7-Oct-2018.) $)
    xorbi2d $p |- ( ph -> ( ( th \/_ ps ) <-> ( th \/_ ch ) ) ) $=
      ( wo wa wn wxo orbi2d anbi2d notbid anbi12d df-xor 3bitr4g ) ADBFZDBGZHZG
      DCFZDCGZHZGDBIDCIAPSRUAABCDEJAQTABCDEKLMDBNDCNO $.

    $( Deduction joining an equivalence and a right operand to form equivalence
       of exclusive-or.  (Contributed by Jim Kingdon, 7-Oct-2018.) $)
    xorbi1d $p |- ( ph -> ( ( ps \/_ th ) <-> ( ch \/_ th ) ) ) $=
      ( wo wa wn wxo orbi1d anbi1d notbid anbi12d df-xor 3bitr4g ) ABDFZBDGZHZG
      CDFZCDGZHZGBDICDIAPSRUAABCDEJAQTABCDEKLMBDNCDNO $.
  $}

  ${
    xorbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    xorbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of exclusive-or.
       (Contributed by Jim Kingdon, 7-Oct-2018.) $)
    xorbi12d $p |- ( ph -> ( ( ps \/_ th ) <-> ( ch \/_ ta ) ) ) $=
      ( wxo xorbi1d xorbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( A consequence of exclusive or.  In classical logic the converse also
     holds.  (Contributed by Jim Kingdon, 8-Mar-2018.) $)
  xorbin $p  |- ( ( ph \/_ ps ) -> ( ph <-> -. ps ) ) $=
    ( wn wo wa wi df-xor imnan biimpri adantl sylbi pm2.53 orcoms adantr impbid
    wxo ) ABPZABCZQABDZABECZEZARFZABGZTUBSUBTABHIJKQUARAFZUCSUDTBAUDBALMNKO $.

  $( One direction of ~ pm5.18dc , which holds for all propositions, not just
     decidable propositions.  (Contributed by Jim Kingdon, 10-Mar-2018.) $)
  pm5.18im $p |- ( ( ph <-> ps ) -> -. ( ph <-> -. ps ) ) $=
    ( wb wn pm5.19 bibi1 notbid mpbiri ) ABCZABDZCZDBJCZDBEIKLABJFGH $.

  $( A consequence of exclusive or.  For decidable propositions this is an
     equivalence, as seen at ~ xornbidc .  (Contributed by Jim Kingdon,
     10-Mar-2018.) $)
  xornbi $p  |- ( ( ph \/_ ps ) -> -. ( ph <-> ps ) ) $=
    ( wxo wn wb xorbin pm5.18im con2i syl ) ABCABDEZABEZDABFKJABGHI $.

  $( Two ways to express "exclusive or" between decidable propositions.
     (Contributed by Jim Kingdon, 12-Apr-2018.) $)
  xor3dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph <-> ps ) <-> ( ph <-> -. ps ) ) ) ) $=
    ( wdc wb wn wa dcn dcbi syl5 imp pm5.18dc a1d con2biddc mpd bicomd ex ) ACZ
    BCZABDZEZABEZDZDQRFZUBTUCUBCZUBTDQRUDRUACQUDBGAUAHIJUCSUBUCSUBEDZUDQRUEABKJ
    LMNOP $.

  $( ` \/_ ` is commutative.  (Contributed by David A. Wheeler, 6-Oct-2018.) $)
  xorcom $p |- ( ( ph \/_ ps ) <-> ( ps \/_ ph ) ) $=
    ( wo wa wn wxo orcom ancom notbii anbi12i df-xor 3bitr4i ) ABCZABDZEZDBACZB
    ADZEZDABFBAFMPORABGNQABHIJABKBAKL $.

  $( A decidable proposition is equivalent to a decidable proposition or its
     negation.  Based on theorem *5.15 of [WhiteheadRussell] p. 124.
     (Contributed by Jim Kingdon, 18-Apr-2018.) $)
  pm5.15dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph <-> ps ) \/ ( ph <-> -. ps ) ) ) ) $=
    ( wdc wb wn wo wa wi xor3dc imp biimpd dcbi dfordc syl mpbird ex ) ACZBCZAB
    DZABEDZFZQRGZUASEZTHZUBUCTQRUCTDABIJKUBSCZUAUDDQRUEABLJSTMNOP $.

  $( Two ways to express "exclusive or" between decidable propositions.
     (Contributed by Jim Kingdon, 17-Apr-2018.) $)
  xor2dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph <-> ps ) <-> ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) ) ) ) $=
    ( wdc wb wn wo wa xor3dc imp pm5.17dc adantl bitr4d ex ) ACZBCZABDEZABFABGE
    GZDNOGPABEDZQNOPRDABHIOQRDNABJKLM $.

  $( Exclusive or is equivalent to negated biconditional for decidable
     propositions.  (Contributed by Jim Kingdon, 27-Apr-2018.) $)
  xornbidc $p  |- ( DECID ph -> ( DECID ps ->
      ( ( ph \/_ ps ) <-> -. ( ph <-> ps ) ) ) ) $=
    ( wdc wxo wb wn wa wo xor2dc imp df-xor syl6rbbr ex ) ACZBCZABDZABEFZENOGQA
    BHABGFGZPNOQREABIJABKLM $.

  $( Two ways to express "exclusive or" between decidable propositions.
     Theorem *5.22 of [WhiteheadRussell] p. 124, but for decidable
     propositions.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  xordc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph <-> ps ) <-> ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) ) ) $=
    ( wdc wb wn wa wo wxo excxor ancom orbi2i bitri xornbidc imp syl5rbbr ex )
    ACZBCZABDEZABEFZBAEZFZGZDUCABHZQRFSUDTUABFZGUCABIUEUBTUABJKLQRUDSDABMNOP $.

  $( Exclusive or implies the left proposition is decidable.  (Contributed by
     Jim Kingdon, 12-Mar-2018.) $)
  xordc1 $p |- ( ( ph \/_ ps ) -> DECID ph ) $=
    ( wo wa wn wxo wdc andir simpl imnan ancom xchbinxr pm3.35 sylan2br orim12i
    wi sylbi df-xor df-dc 3imtr4i ) ABCABDZEZDZAAEZCZABFAGUCAUBDZBUBDZCUEABUBHU
    FAUGUDAUBIUBBBUDPZUDUHBADUABAJABKLBUDMNOQABRAST $.

  $( Move negation outside of biconditional, for decidable propositions.
     Compare Theorem *5.18 of [WhiteheadRussell] p. 124.  (Contributed by Jim
     Kingdon, 18-Apr-2018.) $)
  nbbndc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph <-> ps ) <-> -. ( ph <-> ps ) ) ) ) $=
    ( wdc wn wb wa xor3dc imp con2bidc bitrd bicom syl6rbb ex ) ACZBCZADZBEZABE
    DZENOFZRBPEZQSRABDEZTNORUAEABGHNOUATEABIHJBPKLM $.

  $( Associative law for the biconditional, for decidable propositions.

     The classical version (without the decidability conditions) is an axiom of
     system DS in Vladimir Lifschitz, "On calculational proofs", Annals of Pure
     and Applied Logic, 113:207-224, 2002,
     ~ http://www.cs.utexas.edu/users/ai-lab/pub-view.php?PubID=26805 , and,
     interestingly, was not included in _Principia Mathematica_ but was
     apparently first noted by Jan Lukasiewicz circa 1923.  (Contributed by Jim
     Kingdon, 4-May-2018.) $)
  biassdc $p |- ( DECID ph -> ( DECID ps -> ( DECID ch ->
      ( ( ( ph <-> ps ) <-> ch ) <-> ( ph <-> ( ps <-> ch ) ) ) ) ) ) $=
    ( wdc wb wn wo wa wi df-dc pm5.501 bibi1d bitr3d a1d nbbndc imp adantl nbn2
    adantr ex jaoi sylbi expd ) ADZBDZCDZABEZCEZABCEZEZEZUDAAFZGUEUFHZUKIZAJAUN
    ULAUKUMAUIUHUJABUGCABKLAUIKMNULUMUKULUMHZUIFZUHUJUOBFZCEZUPUHUMURUPEZULUEUF
    USBCOPQULURUHEUMULUQUGCABRLSMULUPUJEUMAUIRSMTUAUBUC $.

  $( Lukasiewicz's shortest axiom for equivalential calculus (but modified to
     require decidable propositions).  Storrs McCall, ed., _Polish Logic
     1920-1939_ (Oxford, 1967), p. 96.  (Contributed by Jim Kingdon,
     5-May-2018.) $)
  bilukdc $p |- ( ( ( DECID ph /\ DECID ps ) /\ DECID ch ) ->
      ( ( ph <-> ps ) <-> ( ( ch <-> ps ) <-> ( ph <-> ch ) ) ) ) $=
    ( wdc wa wb bicom bibi1i biassdc imp31 syl5bb ancom1s dcbi imp adantr simpr
    syl9 syl3c mpbid simplr adantlr bitr4d ) ADZBDZEZCDZEZABFZCBACFZFZFZCBFUIFZ
    UGUHCFZUJFZUHUKFZUDUCUFUNUMBAFZCFZUDUCEUFEUJUHUPCABGHUDUCUFUQUJFBACIJKLUGUH
    DZUFUJDZUNUOFUEURUFUCUDURABMNOUEUFPZUCUDUFUSUCUFUIDZUDUSACMZBUIMQJUHCUJIRSU
    GUFUDVAULUKFUTUCUDUFTUCUFVAUDUCUFVAVBNUACBUIIRUB $.

  $( An alternate definition of the biconditional for decidable propositions.
     Theorem *5.23 of [WhiteheadRussell] p. 124, but with decidability
     conditions.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  dfbi3dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph <-> ps ) <-> ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) ) ) ) ) $=
    ( wdc wb wa wn wo dcn xordc imp sylan2 pm5.18dc notnotdc anbi2d a1i orbi12d
    ancom adantl 3bitr4d ex ) ACZBCZABDZABEZAFZBFZEZGZDUAUBEAUFDFZAUFFZEZUFUEEZ
    GZUCUHUBUAUFCZUIUMDZBHUAUNUOAUFIJKUAUBUCUIDABLJUBUHUMDUAUBUDUKUGULUBBUJABMN
    UGULDUBUEUFQOPRST $.

  $( Theorem *5.24 of [WhiteheadRussell] p. 124, but for decidable
     propositions.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  pm5.24dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) ) <->
                ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) ) ) $=
    ( wdc wa wn wo wb dfbi3dc imp notbid xordc bitr3d ex ) ACZBCZABDAEZBEZDFZEZ
    AQDBPDFZGNODZABGZEZSTUAUBRNOUBRGABHIJNOUCTGABKILM $.

  $( Conjunction distributes over exclusive-or, for decidable propositions.
     This is one way to interpret the distributive law of multiplication over
     addition in modulo 2 arithmetic.  (Contributed by Jim Kingdon,
     14-Jul-2018.) $)
  xordidc $p |- ( DECID ph -> ( DECID ps -> ( DECID ch ->
    ( ( ph /\ ( ps \/_ ch ) ) <->
      ( ( ph /\ ps ) \/_ ( ph /\ ch ) ) ) ) ) ) $=
    ( wdc wxo wa wb wn dcbi imp wi annimdc pm5.32 notbii syl6bb sylan2 xornbidc
    adantl anbi2d dcan adantrr adantrl sylc 3bitr4d exp32 ) ADZBDZCDZABCEZFZABF
    ZACFZEZGUFUGUHFZFZABCGZHZFZUKULGZHZUJUMUNUFUPDZURUTGUGUHVABCIJUFVAFURAUPKZH
    ZUTUFVAURVCGAUPLJVBUSABCMNOPUOUIUQAUNUIUQGZUFUGUHVDBCQJRSUOUKDZULDZUMUTGUFU
    GVEUHUFUGVEABTJUAUFUHVFUGUFUHVFACTJUBUKULQUCUDUE $.

  $( Conjunction distributes over exclusive-or.  (Contributed by Mario Carneiro
     and Jim Kingdon, 7-Oct-2018.) $)
  anxordi $p |- ( ( ph /\ ( ps \/_ ch ) ) <->
      ( ( ph /\ ps ) \/_ ( ph /\ ch ) ) ) $=
    ( wxo wa simpl wo wn df-xor simplbi jaoi syl ibar xorbi12d bitr3d pm5.21nii
    ) ABCDZEZAABEZACEZDZAQFUASTGZAUAUBSTEHSTIJSATABFACFKLAQRUAAQMABSCTABMACMNOP
    $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Truth tables: Operations on true and false constants
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  For classical logic, truth tables can be used to define propositional
  logic operations, by showing the results of those operations for all
  possible combinations of true ( ` T. ` ) and false ( ` F. ` ).

  Although the intuitionistic logic connectives are not as simply defined,
  ` T. ` and ` F. ` do play similar roles as in classical logic and most
  theorems from classical logic continue to hold.

  Here we show that our definitions and axioms produce equivalent results for
  ` T. ` and ` F. ` as we would get from truth tables for
  ` /\ ` (conjunction aka logical 'and') ~ wa ,
  ` \/ ` (disjunction aka logical inclusive 'or') ~ wo ,
  ` -> ` (implies) ~ wi ,
  ` -. ` (not) ~ wn ,
  ` <-> ` (logical equivalence) ~ df-bi , and
  ` \/_ ` (exclusive or) ~ df-xor .
$)

  $( A ` /\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truantru $p |- ( ( T. /\ T. ) <-> T. ) $=
    ( wtru anidm ) AB $.

  $( A ` /\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truanfal $p |- ( ( T. /\ F. ) <-> F. ) $=
    ( wfal truan ) AB $.

  $( A ` /\ ` identity.  (Contributed by David A. Wheeler, 23-Feb-2018.) $)
  falantru $p |- ( ( F. /\ T. ) <-> F. ) $=
    ( wfal wtru wa simpl falim impbii ) ABCZAABDGEF $.

  $( A ` /\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falanfal $p |- ( ( F. /\ F. ) <-> F. ) $=
    ( wfal anidm ) AB $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  truortru $p |- ( ( T. \/ T. ) <-> T. ) $=
    ( wtru oridm ) AB $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truorfal $p |- ( ( T. \/ F. ) <-> T. ) $=
    ( wtru wfal wo tru orci bitru ) ABCABDEF $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falortru $p |- ( ( F. \/ T. ) <-> T. ) $=
    ( wfal wtru wo tru olci bitru ) ABCBADEF $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falorfal $p |- ( ( F. \/ F. ) <-> F. ) $=
    ( wfal oridm ) AB $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truimtru $p |- ( ( T. -> T. ) <-> T. ) $=
    ( wtru wi id bitru ) AABACD $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  truimfal $p |- ( ( T. -> F. ) <-> F. ) $=
    ( wfal wtru wi tru a1bi bicomi ) ABACBADEF $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falimtru $p |- ( ( F. -> T. ) <-> T. ) $=
    ( wfal wtru wi falim bitru ) ABCBDE $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falimfal $p |- ( ( F. -> F. ) <-> T. ) $=
    ( wfal wi id bitru ) AABACD $.

  $( A ` -. ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  nottru $p |- ( -. T. <-> F. ) $=
    ( wfal wtru wn df-fal bicomi ) ABCDE $.

  $( A ` -. ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  notfal $p |- ( -. F. <-> T. ) $=
    ( wfal wn fal bitru ) ABCD $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  trubitru $p |- ( ( T. <-> T. ) <-> T. ) $=
    ( wtru wb biid bitru ) AABACD $.

  $( A ` <-> ` identity.  (Contributed by David A. Wheeler, 23-Feb-2018.) $)
  trubifal $p |- ( ( T. <-> F. ) <-> F. ) $=
    ( wtru wfal wb wi wa dfbi2 truimfal falimtru anbi12i falantru 3bitri ) ABCA
    BDZBADZEBAEBABFLBMAGHIJK $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falbitru $p |- ( ( F. <-> T. ) <-> F. ) $=
    ( wfal wtru wb bicom trubifal bitri ) ABCBACAABDEF $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falbifal $p |- ( ( F. <-> F. ) <-> T. ) $=
    ( wfal wb biid bitru ) AABACD $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
  truxortru $p |- ( ( T. \/_ T. ) <-> F. ) $=
    ( wtru wxo wo wa wn df-xor oridm nottru anidm xchnxbir anbi12i truan 3bitri
    wfal ) AABAACZAADZEZDANDNAAFOAQNAGANPHAIJKNLM $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
  truxorfal $p |- ( ( T. \/_ F. ) <-> T. ) $=
    ( wtru wfal wxo wo wa wn df-xor truorfal notfal truan xchnxbir anidm 3bitri
    anbi12i ) ABCABDZABEZFZEAAEAABGOAQAHBAPIBJKNALM $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
  falxortru $p |- ( ( F. \/_ T. ) <-> T. ) $=
    ( wfal wtru wo wa wn df-xor falortru notfal falantru xchnxbir anbi12i anidm
    wxo 3bitri ) ABMABCZABDZEZDBBDBABFOBQBGABPHIJKBLN $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
  falxorfal $p |- ( ( F. \/_ F. ) <-> F. ) $=
    ( wfal wxo wo wa wn wtru df-xor oridm notfal anidm xchnxbir falantru 3bitri
    anbi12i ) AABAACZAADZEZDAFDAAAGOAQFAHAFPIAJKNLM $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Stoic logic indemonstrables (Chrysippus of Soli)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The Greek Stoics developed a system of logic.
  The Stoic Chrysippus, in particular, was often considered one of the greatest
  logicians of antiquity.
  Stoic logic is different from Aristotle's system, since it focuses
  on propositional logic,
  though later thinkers did combine the systems of the Stoics with Aristotle.
  Jan Lukasiewicz reports,
  "For anybody familiar with mathematical logic it is self-evident
  that the Stoic dialectic is the ancient form of modern propositional logic"
  ( _On the history of the logic of proposition_ by Jan Lukasiewicz (1934),
  translated in: _Selected Works_ - Edited by Ludwik Borkowski -
  Amsterdam, North-Holland, 1970 pp. 197-217,
  referenced in "History of Logic"
  ~ https://www.historyoflogic.com/logic-stoics.htm ).
  For more about Aristotle's system, see barbara and related theorems.

  A key part of the Stoic logic system is a set of five "indemonstrables"
  assigned to Chrysippus of Soli by Diogenes Laertius, though in
  general it is difficult to assign specific
  ideas to specific thinkers.
  The indemonstrables are described in, for example,
  [Lopez-Astorga] p. 11 , [Sanford] p. 39, and [Hitchcock] p. 5.
  These indemonstrables are
  modus ponendo ponens (modus ponens) ~ ax-mp ,
  modus tollendo tollens (modus tollens) ~ mto ,
  modus ponendo tollens I ~ mpto1 ,
  modus ponendo tollens II ~ mpto2 , and
  modus tollendo ponens (exclusive-or version) ~ mtp-xor .
  The first is an axiom, the second is already proved; in this section
  we prove the other three.
  Since we assume or prove all of indemonstrables, the system of logic we use
  here is as at least as strong as the set of Stoic indemonstrables.
  Note that modus tollendo ponens ~ mtp-xor originally used exclusive-or,
  but over time the name modus tollendo ponens has increasingly referred
  to an inclusive-or variation, which is proved in ~ mtp-or .
  This set of indemonstrables is not the entire system of Stoic logic.

$)

  ${
    $( Minor premise for modus ponendo tollens 1. $)
    mpto1.1 $e |- ph $.
    $( Major premise for modus ponendo tollens 1. $)
    mpto1.2 $e |- -. ( ph /\ ps ) $.
    $( Modus ponendo tollens 1, one of the "indemonstrables" in Stoic logic.
       See rule 1 on [Lopez-Astorga] p. 12 , rule 1 on [Sanford] p. 40, and
       rule A3 in [Hitchcock] p. 5.  Sanford describes this rule second (after
       ~ mpto2 ) as a "safer, and these days much more common" version of modus
       ponendo tollens because it avoids confusion between inclusive-or and
       exclusive-or.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
    mpto1 $p |- -. ps $=
      ( wn wi wa imnan mpbir ax-mp ) ABEZCAKFABGEDABHIJ $.
  $}

  ${
    $( Minor premise for modus ponendo tollens 2. $)
    mpto2.1 $e |- ph $.
    $( Major premise for modus ponendo tollens 2. $)
    mpto2.2 $e |- ( ph \/_ ps ) $.
    $( Modus ponendo tollens 2, one of the "indemonstrables" in Stoic logic.
       Note that this uses exclusive-or ` \/_ ` .  See rule 2 on
       [Lopez-Astorga] p. 12 , rule 4 on [Sanford] p. 39 and rule A4 in
       [Hitchcock] p. 5 .  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
    mpto2 $p |- -. ps $=
      ( wo wa wn wxo df-xor mpbi simpri mpto1 ) ABCABEZABFGZABHMNFDABIJKL $.
  $}

  ${
    $( Minor premise for modus tollendo ponens (original exclusive-or version).
    $)
    mtp-xor.1 $e |- -. ph $.
    $( Major premise for modus tollendo ponens (original exclusive-or version).
    $)
    mtp-xor.2 $e |- ( ph \/_ ps ) $.
    $( Modus tollendo ponens (original exclusive-or version), aka disjunctive
       syllogism, one of the five "indemonstrables" in Stoic logic.  The rule
       says, "if ` ph ` is not true, and either ` ph ` or ` ps ` (exclusively)
       are true, then ` ps ` must be true."  Today the name "modus tollendo
       ponens" often refers to a variant, the inclusive-or version as defined
       in ~ mtp-or .  See rule 3 on [Lopez-Astorga] p. 12 (note that the "or"
       is the same as ~ mpto2 , that is, it is exclusive-or ~ df-xor ), rule 3
       of [Sanford] p. 39 (where it is not as clearly stated which kind of "or"
       is used but it appears to be in the same sense as ~ mpto2 ), and rule A5
       in [Hitchcock] p. 5 (exclusive-or is expressly used).  (Contributed by
       David A. Wheeler, 2-Mar-2018.) $)
    mtp-xor $p |- ps $=
      ( wn wo wa wxo df-xor mpbi simpli ori ax-mp ) AEBCABABFZABGEZABHNOGDABIJK
      LM $.
  $}

  ${
    $( Minor premise for modus tollendo ponens (inclusive-or version). $)
    mtp-or.1 $e |- -. ph $.
    $( Major premise for modus tollendo ponens (inclusive-or version). $)
    mtp-or.2 $e |- ( ph \/ ps ) $.
    $( Modus tollendo ponens (inclusive-or version), aka disjunctive
       syllogism.  This is similar to ~ mtp-xor , one of the five original
       "indemonstrables" in Stoic logic.  However, in Stoic logic this rule
       used exclusive-or, while the name modus tollendo ponens often refers to
       a variant of the rule that uses inclusive-or instead.  The rule says,
       "if ` ph ` is not true, and ` ph ` or ` ps ` (or both) are true, then
       ` ps ` must be true."  An alternative phrasing is, "Once you eliminate
       the impossible, whatever remains, no matter how improbable, must be the
       truth." -- Sherlock Holmes (Sir Arthur Conan Doyle, 1890:  The Sign of
       the Four, ch. 6).  (Contributed by David A. Wheeler, 3-Jul-2016.)
       (Proof shortened by Wolf Lammen, 11-Nov-2017.) $)
    mtp-or $p |- ps $=
      ( wn ori ax-mp ) AEBCABDFG $.
  $}

  ${
    $( Premise 1 for Stoic logic thema 2 version a. $)
    stoic2a.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic thema 2 version a. $)
    stoic2a.2 $e |- ( ( ph /\ ch ) -> th ) $.
    $( Stoic logic Thema 2 version a.

       Statement T2 of [Bobzien] p. 117 shows a reconstructed version of Stoic
       logic thema 2 as follows:  "When from two assertibles a third follows,
       and from the third and one (or both) of the two another follows, then
       this other follows from the first two."

       Bobzien uses constructs such as ` ph ` , ` ps |- ch ` ; in Metamath we
       will represent that construct as ` ph /\ ps -> ch ` .

       This version a is without the phrase "or both"; see ~ stoic2b for the
       version with the phrase "or both".  We already have this rule as
       ~ syldan , so here we show the equivalence and discourage its use.
       (New usage is discouraged.)  (Contributed by David A. Wheeler,
       17-Feb-2019.) $)
    stoic2a $p |- ( ( ph /\ ps ) -> th ) $=
      ( syldan ) ABCDEFG $.
  $}

  ${
    $( Premise 1 for Stoic logic thema 2 version b. $)
    stoic2b.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic thema 2 version b. $)
    stoic2b.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Stoic logic Thema 2 version b.  See ~ stoic2a .

       Version b is with the phrase "or both".  We already have this rule as
       ~ mpd3an3 , so here we prove the equivalence and discourage its use.
       (New usage is discouraged.)  (Contributed by David A. Wheeler,
       17-Feb-2019.) $)
    stoic2b $p |- ( ( ph /\ ps ) -> th ) $=
      ( mpd3an3 ) ABCDEFG $.
  $}

  ${
    $( Premise 1 for Stoic logic thema 3. $)
    stoic3.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic thema 3. $)
    stoic3.2 $e |- ( ( ch /\ th ) -> ta ) $.
    $( Stoic logic Thema 3.

       Statement T3 of [Bobzien] p. 116-117 discusses Stoic logic thema 3.

       "When from two (assemblies) a third follows, and from the one that
       follows (i.e., the third) together with another, external external
       assumption, another follows, then other follows from the first two and
       the externally co-assumed one.  (Simp.  Cael. 237.2-4)" (Contributed by
       David A. Wheeler, 17-Feb-2019.) $)
    stoic3 $p |- ( ( ph /\ ps /\ th ) -> ta ) $=
      ( wa sylan 3impa ) ABDEABHCDEFGIJ $.
  $}

  ${
    $( Premise 1 for Stoic logic thema 4a. $)
    stoic4a.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic thema 4a. $)
    stoic4a.2 $e |- ( ( ch /\ ph /\ th ) -> ta ) $.
    $( Stoic logic Thema 4 version a.

       Statement T4 of [Bobzien] p. 117 shows a reconstructed version of Stoic
       logic thema 4:  "When from two assertibles a third follows, and from the
       third and one (or both) of the two and one (or more) external
       assertible(s) another follows, then this other follows from the first
       two and the external(s)."

       We use ` th ` to represent the "external" assertibles.  This is version
       a, which is without the phrase "or both"; see ~ stoic4b for the version
       with the phrase "or both".  (Contributed by David A. Wheeler,
       17-Feb-2019.) $)
    stoic4a $p |- ( ( ph /\ ps /\ th ) -> ta ) $=
      ( w3a 3adant3 simp1 simp3 syl3anc ) ABDHCADEABCDFIABDJABDKGL $.
  $}

  ${
    $( Premise 1 for Stoic logic thema 4b. $)
    stoic4b.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic thema 4b. $)
    stoic4b.2 $e |- ( ( ( ch /\ ph /\ ps ) /\ th ) -> ta ) $.
    $( Stoic logic Thema 4 version b.

       This is version b, which is with the phrase "or both".  See ~ stoic4a
       for more information.  (Contributed by David A. Wheeler,
       17-Feb-2019.) $)
    stoic4b $p |- ( ( ph /\ ps /\ th ) -> ta ) $=
      ( w3a 3adant3 simp1 simp2 simp3 syl31anc ) ABDHCABDEABCDFIABDJABDKABDLGM
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
       Logical implication (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    syl6an.1 $e |- ( ph -> ps ) $.
    syl6an.2 $e |- ( ph -> ( ch -> th ) ) $.
    syl6an.3 $e |- ( ( ps /\ th ) -> ta ) $.
    $( A syllogism deduction combined with conjoining antecedents.
       (Contributed by Alan Sare, 28-Oct-2011.) $)
    syl6an $p |- ( ph -> ( ch -> ta ) ) $=
      ( wa jctild syl6 ) ACBDIEACDBGFJHK $.
  $}

  ${
    syl10.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl10.2 $e |- ( ph -> ( ps -> ( th -> ta ) ) ) $.
    syl10.3 $e |- ( ch -> ( ta -> et ) ) $.
    $( A nested syllogism inference.  (Contributed by Alan Sare,
       17-Jul-2011.) $)
    syl10 $p |- ( ph -> ( ps -> ( th -> et ) ) ) $=
      ( wi syl6 syldd ) ABDEFHABCEFJGIKL $.
  $}

  $( Exportation implication also converting head from biconditional to
     conditional.  (Contributed by Alan Sare, 31-Dec-2011.) $)
  exbir $p |- ( ( ( ph /\ ps ) -> ( ch <-> th ) ) ->
              ( ph -> ( ps -> ( th -> ch ) ) ) ) $=
    ( wa wb wi bi2 imim2i expd ) ABEZCDFZGABDCGZLMKCDHIJ $.

  $( ~ impexp with a 3-conjunct antecedent.  (Contributed by Alan Sare,
     31-Dec-2011.) $)
  3impexp $p |- ( ( ( ph /\ ps /\ ch ) -> th ) <->
                ( ph -> ( ps -> ( ch -> th ) ) ) ) $=
    ( w3a wi id 3expd 3impd impbii ) ABCEDFZABCDFFFZKABCDKGHLABCDLGIJ $.

  $( ~ 3impexp with biconditional consequent of antecedent that is commuted in
     consequent.  (Contributed by Alan Sare, 31-Dec-2011.) $)
  3impexpbicom $p |- ( ( ( ph /\ ps /\ ch ) -> ( th <-> ta ) ) <->
                     ( ph -> ( ps -> ( ch -> ( ta <-> th ) ) ) ) ) $=
    ( w3a wb wi bicom imbi2 biimpcd mpi 3expd 3impexp biimpri syl6ibr impbii )
    ABCFZDEGZHZABCEDGZHHHZTABCUATSUAGZRUAHZDEIZUCTUDSUARJKLMUBRUASUDUBABCUANOUE
    PQ $.

  ${
    3impexpbicomi.1 $e |- ( ( ph /\ ps /\ ch ) -> ( th <-> ta ) ) $.
    $( Deduction form of ~ 3impexpbicom .  (Contributed by Alan Sare,
       31-Dec-2011.) $)
    3impexpbicomi $p |- ( ph -> ( ps -> ( ch -> ( ta <-> th ) ) ) ) $=
      ( wb w3a bicomd 3exp ) ABCEDGABCHDEFIJ $.
  $}

  $( Closed form of ~ ancoms .  (Contributed by Alan Sare, 31-Dec-2011.) $)
  ancomsimp $p |- ( ( ( ph /\ ps ) -> ch ) <-> ( ( ps /\ ph ) -> ch ) ) $=
    ( wa ancom imbi1i ) ABDBADCABEF $.

  ${
    expcomd.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Deduction form of ~ expcom .  (Contributed by Alan Sare,
       22-Jul-2012.) $)
    expcomd $p |- ( ph -> ( ch -> ( ps -> th ) ) ) $=
      ( expd com23 ) ABCDABCDEFG $.
  $}

  ${
    expdcom.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Commuted form of ~ expd .  (Contributed by Alan Sare, 18-Mar-2012.) $)
    expdcom $p |- ( ps -> ( ch -> ( ph -> th ) ) ) $=
      ( expd com3l ) ABCDABCDEFG $.
  $}

  $( Implication form of ~ simplbi2com .  (Contributed by Alan Sare,
     22-Jul-2012.) $)
  simplbi2comg $p |- ( ( ph <-> ( ps /\ ch ) ) -> ( ch -> ( ps -> ph ) ) ) $=
    ( wa wb bi2 expcomd ) ABCDZEBCAAHFG $.

  ${
    simplbi2com.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( A deduction eliminating a conjunct, similar to ~ simplbi2 .
       (Contributed by Alan Sare, 22-Jul-2012.)  (Proof shortened by Wolf
       Lammen, 10-Nov-2012.) $)
    simplbi2com $p |- ( ch -> ( ps -> ph ) ) $=
      ( simplbi2 com12 ) BCAABCDEF $.
  $}

  ${
    syl6ci.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6ci.2 $e |- ( ph -> th ) $.
    syl6ci.3 $e |- ( ch -> ( th -> ta ) ) $.
    $( A syllogism inference combined with contraction.  (Contributed by Alan
       Sare, 18-Mar-2012.) $)
    syl6ci $p |- ( ph -> ( ps -> ta ) ) $=
      ( a1d syl6c ) ABCDEFADBGIHJ $.
  $}

  ${
    mpisyl.1 $e |- ( ph -> ps ) $.
    mpisyl.2 $e |- ch $.
    mpisyl.3 $e |- ( ps -> ( ch -> th ) ) $.
    $( A syllogism combined with a modus ponens inference.  (Contributed by
       Alan Sare, 25-Jul-2011.) $)
    mpisyl $p |- ( ph -> th ) $=
      ( mpi syl ) ABDEBCDFGHI $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
        Predicate calculus mostly without distinct variables
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Universal quantifier (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The universal quantifier was introduced above in ~ wal for use by ~ df-tru .
  See the comments in that section.  In this section, we continue with the
  first "real" use of it.
$)

  $( Declare some names for individual variables. $)
  $v x $.
  $v y $.
  $v z $.
  $v w $.
  $v v $.
  $v u $.
  $v t $.
  $( Let ` x ` be an individual variable. $)
  vx $f setvar x $.
  $( Let ` y ` be an individual variable. $)
  vy $f setvar y $.
  $( Let ` z ` be an individual variable. $)
  vz $f setvar z $.
  $( Let ` w ` be an individual variable. $)
  vw $f setvar w $.
  $( Let ` v ` be an individual variable. $)
  vv $f setvar v $.
  $( Let ` u ` be an individual variable. $)
  vu $f setvar u $.
  $( Let ` t ` be an individual variable. $)
  vt $f setvar t $.

  $( Axiom of Quantified Implication.  Axiom C4 of [Monk2] p. 105.
     (Contributed by NM, 5-Aug-1993.) $)
  ax-5 $a |- ( A. x ( ph -> ps ) -> ( A. x ph -> A. x ps ) ) $.

  $( Axiom of Quantifier Commutation.  This axiom says universal quantifiers
     can be swapped.  One of the predicate logic axioms which do not involve
     equality.  Axiom scheme C6' in [Megill] p. 448 (p. 16 of the preprint).
     Also appears as Lemma 12 of [Monk2] p. 109 and Axiom C5-3 of [Monk2]
     p. 113.  (Contributed by NM, 5-Aug-1993.) $)
  ax-7 $a |- ( A. x A. y ph -> A. y A. x ph ) $.

  ${
    ax-g.1 $e |- ph $.
    $( Rule of Generalization.  The postulated inference rule of predicate
       calculus.  See e.g.  Rule 2 of [Hamilton] p. 74.  This rule says that if
       something is unconditionally true, then it is true for all values of a
       variable.  For example, if we have proved ` x = x ` , we can conclude
       ` A. x x = x ` or even ` A. y x = x ` .  Theorem ~ spi shows we can go
       the other way also: in other words we can add or remove universal
       quantifiers from the beginning of any theorem as required.  (Contributed
       by NM, 5-Aug-1993.) $)
    ax-gen $a |- A. x ph $.
  $}

  ${
    gen2.1 $e |- ph $.
    $( Generalization applied twice.  (Contributed by NM, 30-Apr-1998.) $)
    gen2 $p |- A. x A. y ph $=
      ( wal ax-gen ) ACEBACDFF $.
  $}

  ${
    mpg.1 $e |- ( A. x ph -> ps ) $.
    mpg.2 $e |- ph $.
    $( Modus ponens combined with generalization.  (Contributed by NM,
       24-May-1994.) $)
    mpg $p |- ps $=
      ( wal ax-gen ax-mp ) ACFBACEGDH $.
  $}

  ${
    mpgbi.1 $e |- ( A. x ph <-> ps ) $.
    mpgbi.2 $e |- ph $.
    $( Modus ponens on biconditional combined with generalization.
       (Contributed by NM, 24-May-1994.)  (Proof shortened by Stefan Allan,
       28-Oct-2008.) $)
    mpgbi $p |- ps $=
      ( wal ax-gen mpbi ) ACFBACEGDH $.
  $}

  ${
    mpgbir.1 $e |- ( ph <-> A. x ps ) $.
    mpgbir.2 $e |- ps $.
    $( Modus ponens on biconditional combined with generalization.
       (Contributed by NM, 24-May-1994.)  (Proof shortened by Stefan Allan,
       28-Oct-2008.) $)
    mpgbir $p |- ph $=
      ( wal ax-gen mpbir ) ABCFBCEGDH $.
  $}

  ${
    a7s.1 $e |- ( A. x A. y ph -> ps ) $.
    $( Swap quantifiers in an antecedent.  (Contributed by NM, 5-Aug-1993.) $)
    a7s $p |- ( A. y A. x ph -> ps ) $=
      ( wal ax-7 syl ) ACFDFADFCFBADCGEH $.
  $}

  ${
    alimi.1 $e |- ( ph -> ps ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 5-Aug-1993.) $)
    alimi $p |- ( A. x ph -> A. x ps ) $=
      ( wi wal ax-5 mpg ) ABEACFBCFECABCGDH $.

    $( Inference doubly quantifying both antecedent and consequent.
       (Contributed by NM, 3-Feb-2005.) $)
    2alimi $p |- ( A. x A. y ph -> A. x A. y ps ) $=
      ( wal alimi ) ADFBDFCABDEGG $.
  $}

  $( Theorem 19.20 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by O'Cat, 30-Mar-2008.) $)
  alim $p |- ( A. x ( ph -> ps ) -> ( A. x ph -> A. x ps ) ) $=
    ( ax-5 ) ABCD $.

  ${
    al2imi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference quantifying antecedent, nested antecedent, and consequent.
       (Contributed by NM, 5-Aug-1993.) $)
    al2imi $p |- ( A. x ph -> ( A. x ps -> A. x ch ) ) $=
      ( wal wi alimi alim syl ) ADFBCGZDFBDFCDFGAKDEHBCDIJ $.
  $}

  ${
    alanimi.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Variant of ~ al2imi with conjunctive antecedent.  (Contributed by Andrew
       Salmon, 8-Jun-2011.) $)
    alanimi $p |- ( ( A. x ph /\ A. x ps ) -> A. x ch ) $=
      ( wal ex al2imi imp ) ADFBDFCDFABCDABCEGHI $.
  $}

  $c F/ $.  $( The not-free symbol. $)

  $( Extend wff definition to include the not-free predicate. $)
  wnf $a wff F/ x ph $.

  $( Define the not-free predicate for wffs.  This is read " ` x ` is not free
     in ` ph ` ".  Not-free means that the value of ` x ` cannot affect the
     value of ` ph ` , e.g., any occurrence of ` x ` in ` ph ` is effectively
     bound by a "for all" or something that expands to one (such as "there
     exists").  In particular, substitution for a variable not free in a wff
     does not affect its value ( ~ sbf ).  An example of where this is used is
     ~ stdpc5 .  See ~ nf2 for an alternative definition which does not involve
     nested quantifiers on the same variable.

     Not-free is a commonly used constraint, so it is useful to have a notation
     for it.  Surprisingly, there is no common formal notation for it, so here
     we devise one.  Our definition lets us work with the not-free notion
     within the logic itself rather than as a metalogical side condition.

     To be precise, our definition really means "effectively not free," because
     it is slightly less restrictive than the usual textbook definition for
     not-free (which only considers syntactic freedom).  For example, ` x ` is
     effectively not free in the bare expression ` x = x ` , even though ` x `
     would be considered free in the usual textbook definition, because the
     value of ` x ` in the expression ` x = x ` cannot affect the truth of the
     expression (and thus substitution will not change the result).
     (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  df-nf $a |- ( F/ x ph <-> A. x ( ph -> A. x ph ) ) $.

  ${
    nfi.1 $e |- ( ph -> A. x ph ) $.
    $( Deduce that ` x ` is not free in ` ph ` from the definition.
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfi $p |- F/ x ph $=
      ( wnf wal wi df-nf mpgbir ) ABDAABEFBABGCH $.
  $}

  ${
    hbth.1 $e |- ph $.
    $( No variable is (effectively) free in a theorem.

       This and later "hypothesis-building" lemmas, with labels starting
       "hb...", allow us to construct proofs of formulas of the form
       ` |- ( ph -> A. x ph ) ` from smaller formulas of this form.  These are
       useful for constructing hypotheses that state " ` x ` is (effectively)
       not free in ` ph ` ."  (Contributed by NM, 5-Aug-1993.) $)
    hbth $p |- ( ph -> A. x ph ) $=
      ( wal ax-gen a1i ) ABDAABCEF $.

    $( No variable is (effectively) free in a theorem.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfth $p |- F/ x ph $=
      ( hbth nfi ) ABABCDE $.
  $}

  ${
    nfnth.1 $e |- -. ph $.
    $( No variable is (effectively) free in a non-theorem.  (Contributed by
       Mario Carneiro, 6-Dec-2016.) $)
    nfnth $p |- F/ x ph $=
      ( wal pm2.21i nfi ) ABAABDCEF $.
  $}

  $( The true constant has no free variables.  (This can also be proven in one
     step with ~ nfv , but this proof does not use ~ ax-17 .)  (Contributed by
     Mario Carneiro, 6-Oct-2016.) $)
  nftru $p |- F/ x T. $=
    ( wtru tru nfth ) BACD $.

  ${
    alimdh.1 $e |- ( ph -> A. x ph ) $.
    alimdh.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.20 of [Margaris] p. 90.  (Contributed by NM,
       4-Jan-2002.) $)
    alimdh $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( wal wi al2imi syl ) AADGBDGCDGHEABCDFIJ $.
  $}

  $( Theorem 19.15 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  albi $p |- ( A. x ( ph <-> ps ) -> ( A. x ph <-> A. x ps ) ) $=
    ( wb wal bi1 al2imi bi2 impbid ) ABDZCEACEBCEJABCABFGJBACABHGI $.

  ${
    alrimih.1 $e |- ( ph -> A. x ph ) $.
    alrimih.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (New usage is discouraged.) $)
    alrimih $p |- ( ph -> A. x ps ) $=
      ( wal alimi syl ) AACFBCFDABCEGH $.
  $}

  ${
    albii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding universal quantifier to both sides of an equivalence.
       (Contributed by NM, 7-Aug-1994.) $)
    albii $p |- ( A. x ph <-> A. x ps ) $=
      ( wb wal albi mpg ) ABEACFBCFECABCGDH $.

    $( Inference adding 2 universal quantifiers to both sides of an
       equivalence.  (Contributed by NM, 9-Mar-1997.) $)
    2albii $p |- ( A. x A. y ph <-> A. x A. y ps ) $=
      ( wal albii ) ADFBDFCABDEGG $.
  $}

  ${
    hbxfrbi.1 $e |- ( ph <-> ps ) $.
    hbxfrbi.2 $e |- ( ps -> A. x ps ) $.
    $( A utility lemma to transfer a bound-variable hypothesis builder into a
       definition.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    hbxfrbi $p |- ( ph -> A. x ph ) $=
      ( wal albii 3imtr4i ) BBCFAACFEDABCDGH $.
  $}

  ${
    nfbii.1 $e |- ( ph <-> ps ) $.
    $( Equality theorem for not-free.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfbii $p |- ( F/ x ph <-> F/ x ps ) $=
      ( wal wi wnf albii imbi12i df-nf 3bitr4i ) AACEZFZCEBBCEZFZCEACGBCGMOCABL
      NDABCDHIHACJBCJK $.

    ${
      nfxfr.2 $e |- F/ x ps $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfxfr $p |- F/ x ph $=
        ( wnf nfbii mpbir ) ACFBCFEABCDGH $.
    $}

    ${
      nfxfrd.2 $e |- ( ch -> F/ x ps ) $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 24-Sep-2016.) $)
      nfxfrd $p |- ( ch -> F/ x ph ) $=
        ( wnf nfbii sylibr ) CBDGADGFABDEHI $.
    $}
  $}

  ${
    alcoms.1 $e |- ( A. x A. y ph -> ps ) $.
    $( Swap quantifiers in an antecedent.  (Contributed by NM, 11-May-1993.) $)
    alcoms $p |- ( A. y A. x ph -> ps ) $=
      ( wal ax-7 syl ) ACFDFADFCFBADCGEH $.
  $}

  ${
    hbal.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` A. y ph ` .
       (Contributed by NM, 5-Aug-1993.) $)
    hbal $p |- ( A. y ph -> A. x A. y ph ) $=
      ( wal alimi ax-7 syl ) ACEZABEZCEIBEAJCDFACBGH $.
  $}

  $( Theorem 19.5 of [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.) $)
  alcom $p |- ( A. x A. y ph <-> A. y A. x ph ) $=
    ( wal ax-7 impbii ) ACDBDABDCDABCEACBEF $.

  ${
    alrimdh.1 $e |- ( ph -> A. x ph ) $.
    alrimdh.2 $e |- ( ps -> A. x ps ) $.
    alrimdh.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       10-Feb-1997.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
    alrimdh $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wal alimdh syl5 ) BBDHACDHFABCDEGIJ $.
  $}

  ${
    albidh.1 $e |- ( ph -> A. x ph ) $.
    albidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    albidh $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( wb wal alrimih albi syl ) ABCGZDHBDHCDHGALDEFIBCDJK $.
  $}

  $( Theorem 19.26 of [Margaris] p. 90.  Also Theorem *10.22 of
     [WhiteheadRussell] p. 119.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 4-Jul-2014.) $)
  19.26 $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ A. x ps ) ) $=
    ( wa wal simpl alimi simpr jca id alanimi impbii ) ABDZCEZACEZBCEZDNOPMACAB
    FGMBCABHGIABMCMJKL $.

  $( Theorem 19.26 of [Margaris] p. 90 with two quantifiers.  (Contributed by
     NM, 3-Feb-2005.) $)
  19.26-2 $p |- ( A. x A. y ( ph /\ ps ) <->
                ( A. x A. y ph /\ A. x A. y ps ) ) $=
    ( wa wal 19.26 albii bitri ) ABEDFZCFADFZBDFZEZCFKCFLCFEJMCABDGHKLCGI $.

  $( Theorem 19.26 of [Margaris] p. 90 with triple conjunction.  (Contributed
     by NM, 13-Sep-2011.) $)
  19.26-3an $p |- ( A. x ( ph /\ ps /\ ch )
                   <-> ( A. x ph /\ A. x ps /\ A. x ch ) ) $=
    ( wa wal w3a 19.26 anbi1i bitri df-3an albii 3bitr4i ) ABEZCEZDFZADFZBDFZEZ
    CDFZEZABCGZDFQRTGPNDFZTEUANCDHUCSTABDHIJUBODABCKLQRTKM $.

  $( Theorem 19.33 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.33 $p |- ( ( A. x ph \/ A. x ps ) -> A. x ( ph \/ ps ) ) $=
    ( wal wo orc alimi olc jaoi ) ACDABEZCDBCDAJCABFGBJCBAHGI $.

  $( Theorem *11.21 in [WhiteheadRussell] p. 160.  (Contributed by Andrew
     Salmon, 24-May-2011.) $)
  alrot3 $p |- ( A. x A. y A. z ph <-> A. y A. z A. x ph ) $=
    ( wal alcom albii bitri ) ADEZCEBEIBEZCEABEDEZCEIBCFJKCABDFGH $.

  $( Rotate 4 universal quantifiers twice.  (Contributed by NM, 2-Feb-2005.)
     (Proof shortened by Wolf Lammen, 28-Jun-2014.) $)
  alrot4 $p |- ( A. x A. y A. z A. w ph <-> A. z A. w A. x A. y ph ) $=
    ( wal alrot3 albii alcom 3bitri ) AEFDFCFZBFACFZEFZDFZBFMBFZDFLBFEFZDFKNBAC
    DEGHMBDIOPDLBEIHJ $.

  $( Split a biconditional and distribute quantifier.  (Contributed by NM,
     18-Aug-1993.) $)
  albiim $p |- ( A. x ( ph <-> ps ) <->
             ( A. x ( ph -> ps ) /\ A. x ( ps -> ph ) ) ) $=
    ( wb wal wi wa dfbi2 albii 19.26 bitri ) ABDZCEABFZBAFZGZCEMCENCEGLOCABHIMN
    CJK $.

  $( Split a biconditional and distribute 2 quantifiers.  (Contributed by NM,
     3-Feb-2005.) $)
  2albiim $p |- ( A. x A. y ( ph <-> ps ) <->
             ( A. x A. y ( ph -> ps ) /\ A. x A. y ( ps -> ph ) ) ) $=
    ( wb wal wi wa albiim albii 19.26 bitri ) ABEDFZCFABGDFZBAGDFZHZCFNCFOCFHMP
    CABDIJNOCKL $.

  ${
    hband.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hband.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hban .
       (Contributed by NM, 2-Jan-2002.) $)
    hband $p |- ( ph -> ( ( ps /\ ch ) -> A. x ( ps /\ ch ) ) ) $=
      ( wa wal anim12d 19.26 syl6ibr ) ABCGZBDHZCDHZGLDHABMCNEFIBCDJK $.
  $}

  ${
    hb3and.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hb3and.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    hb3and.3 $e |- ( ph -> ( th -> A. x th ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hb3an .
       (Contributed by NM, 17-Feb-2013.) $)
    hb3and $p |- ( ph -> ( ( ps /\ ch /\ th ) -> A. x ( ps /\ ch /\ th ) ) ) $=
      ( w3a wal 3anim123d 19.26-3an syl6ibr ) ABCDIZBEJZCEJZDEJZINEJABOCPDQFGHK
      BCDELM $.
  $}

  ${
    hbald.1 $e |- ( ph -> A. y ph ) $.
    hbald.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbal .
       (Contributed by NM, 2-Jan-2002.) $)
    hbald $p |- ( ph -> ( A. y ps -> A. x A. y ps ) ) $=
      ( wal alimdh ax-7 syl6 ) ABDGZBCGZDGKCGABLDEFHBDCIJ $.
  $}

  $( Declare the existential quantifier symbol. $)
  $c E. $.   $( Backwards E (read:  "there exists") $)

  $( Extend wff definition to include the existential quantifier ("there
     exists"). $)
  wex $a wff E. x ph $.

  $( ` x ` is bound in ` E. x ph ` .  Axiom 9 of 10 for intuitionistic logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-ie1 $a |- ( E. x ph -> A. x E. x ph ) $.

  $( Define existential quantification. ` E. x ph ` means "there exists at
     least one set ` x ` such that ` ph ` is true."  Axiom 10 of 10 for
     intuitionistic logic.  (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-ie2 $a |- ( A. x ( ps -> A. x ps ) ->
               ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $.

  $( ` x ` is not free in ` E. x ph ` .  (Contributed by NM, 5-Aug-1993.) $)
  hbe1 $p |- ( E. x ph -> A. x E. x ph ) $=
    ( ax-ie1 ) ABC $.

  $( ` x ` is not free in ` E. x ph ` .  (Contributed by Mario Carneiro,
     11-Aug-2016.) $)
  nfe1 $p |- F/ x E. x ph $=
    ( wex hbe1 nfi ) ABCBABDE $.

  $( Closed form of Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
     7-Nov-2005.)  (Revised by Mario Carneiro, 1-Feb-2015.) $)
  19.23ht $p |- ( A. x ( ps -> A. x ps ) ->
               ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $=
    ( ax-ie2 ) ABCD $.

  ${
    19.23h.1 $e |- ( ps -> A. x ps ) $.
    $( Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 1-Feb-2015.) $)
    19.23h $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( wal wi wex wb ax-gen 19.23ht ax-mp ) BBCEFZCEABFCEACGBFHLCDIABCJK $.
  $}

  $( Theorem 19.7 of [Margaris] p. 89.  To read this intuitionistically, think
     of it as "if ` ph ` can be refuted for all ` x ` , then it is not possible
     to find an ` x ` for which ` ph ` holds" (and likewise for the converse).
     Comparing this with ~ dfexdc illustrates that statements which look
     similar (to someone used to classical logic) can be different
     intuitionistically due to different placement of negations.  (Contributed
     by NM, 5-Aug-1993.)  (Revised by NM, 1-Feb-2015.)  (Revised by Mario
     Carneiro, 12-May-2015.) $)
  alnex $p |- ( A. x -. ph <-> -. E. x ph ) $=
    ( wfal wi wal wex wn fal pm2.21i 19.23h dfnot albii 3bitr4i ) ACDZBEABFZCDA
    GZBEOGACBCCBEHIJPNBAKLOKM $.

  ${
    nex.1 $e |- -. ph $.
    $( Generalization rule for negated wff.  (Contributed by NM,
       18-May-1994.) $)
    nex $p |- -. E. x ph $=
      ( wn wex alnex mpgbi ) ADABEDBABFCG $.
  $}

  $( Defining ` E. x ph ` given decidability.  It is common in classical logic
     to define ` E. x ph ` as ` -. A. x -. ph ` but in intuitionistic logic
     without a decidability condition, that is only an implication not an
     equivalence, as seen at ~ exalim .  (Contributed by Jim Kingdon,
     15-Mar-2018.) $)
  dfexdc $p |- ( DECID E. x ph
                 -> ( E. x ph <-> -. A. x -. ph ) ) $=
    ( wn wal wex wb wdc alnex a1i con2biidc ) ACBDZABEZKLCFLGABHIJ $.

  $( One direction of a classical definition of existential quantification.
     One direction of Definition of [Margaris] p. 49.  For a decidable
     proposition, this is an equivalence, as seen as ~ dfexdc .  (Contributed
     by Jim Kingdon, 29-Jul-2018.) $)
  exalim $p |- ( E. x ph -> -. A. x -. ph ) $=
    ( wn wal wex alnex biimpi con2i ) ACBDZABEZIJCABFGH $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          Equality predicate (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The equality predicate was introduced above in ~ wceq for use by ~ df-tru .
  See the comments in that section.  In this section, we continue with the
  first "real" use of it.
$)

  $( Extend wff definition to include atomic formulas using the equality
     predicate.

     (Instead of introducing ~ weq as an axiomatic statement, as was done in an
     older version of this database, we introduce it by "proving" a special
     case of set theory's more general ~ wceq .  This lets us avoid overloading
     the ` = ` connective, thus preventing ambiguity that would complicate
     certain Metamath parsers.  However, logically ~ weq is considered to be a
     primitive syntax, even though here it is artificially "derived" from
     ~ wceq .  Note:  To see the proof steps of this syntax proof, type "show
     proof weq /all" in the Metamath program.)  (Contributed by NM,
     24-Jan-2006.) $)
  weq $p wff x = y $=
    ( cv wceq ) ACBCD $.

  $( Declare the membership predicate symbol. $)
  $c e. $. $( Stylized epsilon $)

  $( --- Start of patch to prevent connective overloading $)
  ${
    $v A $.
    $v B $.
    wcel.cA $f class A $.
    wcel.cB $f class B $.
    $( Extend wff definition to include the membership connective between
       classes.

       (The purpose of introducing ` wff A e. B ` here is to allow us to
       express i.e.  "prove" the ~ wel of predicate calculus in terms of the
       ~ wceq of set theory, so that we don't "overload" the ` e. ` connective
       with two syntax definitions.  This is done to prevent ambiguity that
       would complicate some Metamath parsers.  The class variables ` A ` and
       ` B ` are introduced temporarily for the purpose of this definition but
       otherwise not used in predicate calculus.) $)
    wcel $a wff A e. B $.
  $}

  $( Extend wff definition to include atomic formulas with the epsilon
     (membership) predicate.  This is read " ` x ` is an element of
     ` y ` ," " ` x ` is a member of ` y ` ," " ` x ` belongs to ` y ` ,"
     or " ` y ` contains ` x ` ."  Note:  The phrase " ` y ` includes
     ` x ` " means " ` x ` is a subset of ` y ` ;" to use it also for
     ` x e. y ` , as some authors occasionally do, is poor form and causes
     confusion, according to George Boolos (1992 lecture at MIT).

     This syntactical construction introduces a binary non-logical predicate
     symbol ` e. ` (epsilon) into our predicate calculus.  We will eventually
     use it for the membership predicate of set theory, but that is irrelevant
     at this point: the predicate calculus axioms for ` e. ` apply to any
     arbitrary binary predicate symbol.  "Non-logical" means that the predicate
     is presumed to have additional properties beyond the realm of predicate
     calculus, although these additional properties are not specified by
     predicate calculus itself but rather by the axioms of a theory (in our
     case set theory) added to predicate calculus.  "Binary" means that the
     predicate has two arguments.

     (Instead of introducing ~ wel as an axiomatic statement, as was done in an
     older version of this database, we introduce it by "proving" a special
     case of set theory's more general ~ wcel .  This lets us avoid overloading
     the ` e. ` connective, thus preventing ambiguity that would complicate
     certain Metamath parsers.  However, logically ~ wel is considered to be a
     primitive syntax, even though here it is artificially "derived" from
     ~ wcel .  Note:  To see the proof steps of this syntax proof, type "show
     proof wel /all" in the Metamath program.)  (Contributed by NM,
     24-Jan-2006.) $)
  wel $p wff x e. y $=
    ( cv wcel ) ACBCD $.
  $( --- End of patch to prevent connective overloading $)

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( Extend wff definition to include atomic formulas with the epsilon
     (membership) predicate.  This is read " ` x ` is an element of ` y ` ,"
     " ` x ` is a member of ` y ` ," " ` x ` belongs to ` y ` ," or " ` y `
     contains ` x ` ."  Note:  The phrase " ` y ` includes ` x ` " means
     " ` x ` is a subset of ` y ` "; to use it also for ` x e. y ` (as some
     authors occasionally do) is poor form and causes confusion.

     After we introduce ~ cv and ~ wcel in set theory, this syntax construction
     becomes redundant, since it can be derived with the proof
     "vx cv vy cv wcel". @)
  wel @a wff x e. y @.
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( Axiom of Equality.  One of the equality and substitution axioms of
     predicate calculus with equality.  This is similar to, but not quite, a
     transitive law for equality (proved later as ~ equtr ).  Axiom scheme C8'
     in [Megill] p. 448 (p. 16 of the preprint).  Also appears as Axiom C7 of
     [Monk2] p. 105.

     Axioms ~ ax-8 through ~ ax-16 are the axioms having to do with equality,
     substitution, and logical properties of our binary predicate ` e. ` (which
     later in set theory will mean "is a member of").  Note that all axioms
     except ~ ax-16 and ~ ax-17 are still valid even when ` x ` , ` y ` , and
     ` z ` are replaced with the same variable because they do not have any
     distinct variable (Metamath's $d) restrictions.  Distinct variable
     restrictions are required for ~ ax-16 and ~ ax-17 only.  (Contributed by
     NM, 5-Aug-1993.) $)
  ax-8 $a |- ( x = y -> ( x = z -> y = z ) ) $.

  $( Axiom of Quantifier Substitution.  One of the equality and substitution
     axioms of predicate calculus with equality.  Appears as Lemma L12 in
     [Megill] p. 445 (p. 12 of the preprint).

     The original version of this axiom was ~ ax-10o ("o" for "old") and was
     replaced with this shorter ~ ax-10 in May 2008.  The old axiom is proved
     from this one as theorem ~ ax10o .  Conversely, this axiom is proved from
     ~ ax-10o as theorem ~ ax10 .  (Contributed by NM, 5-Aug-1993.) $)
  ax-10 $a |- ( A. x x = y -> A. y y = x ) $.

  $( Axiom of Variable Substitution.  One of the 5 equality axioms of predicate
     calculus.  The final consequent ` A. x ( x = y -> ph ) ` is a way of
     expressing " ` y ` substituted for ` x ` in wff ` ph ` " (cf. ~ sb6 ).  It
     is based on Lemma 16 of [Tarski] p. 70 and Axiom C8 of [Monk2] p. 105,
     from which it can be proved by cases.

     Variants of this axiom which are equivalent in classical logic but which
     have not been shown to be equivalent for intuitionistic logic are
     ~ ax11v , ~ ax11v2 and ~ ax-11o .  (Contributed by NM, 5-Aug-1993.) $)
  ax-11 $a |- ( x = y -> ( A. y ph -> A. x ( x = y -> ph ) ) ) $.

  $( Axiom of Quantifier Introduction.  One of the equality and substitution
     axioms of predicate calculus with equality.  Informally, it says that
     whenever ` z ` is distinct from ` x ` and ` y ` , and ` x = y ` is true,
     then ` x = y ` quantified with ` z ` is also true.  In other words, ` z `
     is irrelevant to the truth of ` x = y ` .  Axiom scheme C9' in [Megill]
     p. 448 (p. 16 of the preprint).  It apparently does not otherwise appear
     in the literature but is easily proved from textbook predicate calculus by
     cases.

     This axiom has been modified from the original ~ ax-12 for compatibility
     with intuitionistic logic.  (Contributed by Mario Carneiro,
     31-Jan-2015.) $)
  ax-i12 $a |- ( A. z z = x \/ ( A. z z = y \/
                 A. z ( x = y -> A. z x = y ) ) ) $.

  $( Axiom of bundling.  The general idea of this axiom is that two variables
     are either distinct or non-distinct.  That idea could be expressed as
     ` A. z z = x \/ -. A. z z = x ` .  However, we instead choose an axiom
     which has many of the same consequences, but which is different with
     respect to a universe which contains only one object. ` A. z z = x ` holds
     if ` z ` and ` x ` are the same variable, likewise for ` z ` and ` y ` ,
     and ` A. x A. z ( x = y -> A. z x = y ) ` holds if ` z ` is distinct from
     the others (and the universe has at least two objects).

     As with other statements of the form "x is decidable (either true or
     false)", this does not entail the full Law of the Excluded Middle (which
     is the proposition that all statements are decidable), but instead merely
     the assertion that particular kinds of statements are decidable (or in
     this case, an assertion similar to decidability).

     This axiom implies ~ ax-i12 as can be seen at ~ axi12 .  Whether ~ ax-bndl
     can be proved from the remaining axioms including ~ ax-i12 is not known.

     The reason we call this "bundling" is that a statement without a distinct
     variable constraint "bundles" together two statements, one in which the
     two variables are the same and one in which they are different.
     (Contributed by Mario Carneiro and Jim Kingdon, 14-Mar-2018.) $)
  ax-bndl $a |- ( A. z z = x \/
                       ( A. z z = y \/ A. x A. z ( x = y -> A. z x = y ) ) ) $.

  $( Axiom of Specialization.  A quantified wff implies the wff without a
     quantifier (i.e. an instance, or special case, of the generalized wff).
     In other words if something is true for all ` x ` , it is true for any
     specific ` x ` (that would typically occur as a free variable in the wff
     substituted for ` ph ` ).  (A free variable is one that does not occur in
     the scope of a quantifier: ` x ` and ` y ` are both free in ` x = y ` ,
     but only ` x ` is free in ` A. y x = y ` .)  Axiom scheme C5' in [Megill]
     p. 448 (p. 16 of the preprint).  Also appears as Axiom B5 of [Tarski]
     p. 67 (under his system S2, defined in the last paragraph on p. 77).

     Note that the converse of this axiom does not hold in general, but a
     weaker inference form of the converse holds and is expressed as rule
     ~ ax-gen .  Conditional forms of the converse are given by ~ ax-12 ,
     ~ ax-16 , and ~ ax-17 .

     Unlike the more general textbook Axiom of Specialization, we cannot choose
     a variable different from ` x ` for the special case.  For use, that
     requires the assistance of equality axioms, and we deal with it later
     after we introduce the definition of proper substitution - see ~ stdpc4 .

     (Contributed by NM, 5-Aug-1993.) $)
  ax-4 $a |- ( A. x ph -> ph ) $.

  $( Specialization.  Another name for ~ ax-4 .  (Contributed by NM,
     21-May-2008.) $)
  sp $p |- ( A. x ph -> ph ) $=
    ( ax-4 ) ABC $.

  $( Rederive the original version of the axiom from ~ ax-i12 .  (Contributed
     by Mario Carneiro, 3-Feb-2015.) $)
  ax-12 $p |- ( -. A. z z = x -> ( -. A. z z = y ->
              ( x = y -> A. z x = y ) ) ) $=
    ( cv wceq wal wn wi wo ax-i12 ori ord ax-4 syl6 ) CDZADZECFZGZOBDZECFZGPSEZ
    UACFHZCFZUBRTUCQTUCIABCJKLUBCMN $.

  $( Another name for ~ ax-i12 .  (Contributed by NM, 3-Feb-2015.) $)
  ax12or $p |- ( A. z z = x \/ ( A. z z = y \/
                 A. z ( x = y -> A. z x = y ) ) ) $=
    ( ax-i12 ) ABCD $.

  $( Axiom of Equality.  One of the equality and substitution axioms for a
     non-logical predicate in our predicate calculus with equality.  It
     substitutes equal variables into the left-hand side of the ` e. ` binary
     predicate.  Axiom scheme C12' in [Megill] p. 448 (p. 16 of the preprint).
     It is a special case of Axiom B8 (p. 75) of system S2 of [Tarski] p. 77.
     "Non-logical" means that the predicate is not a primitive of predicate
     calculus proper but instead is an extension to it.  "Binary" means that
     the predicate has two arguments.  In a system of predicate calculus with
     equality, like ours, equality is not usually considered to be a
     non-logical predicate.  In systems of predicate calculus without equality,
     it typically would be.  (Contributed by NM, 5-Aug-1993.) $)
  ax-13 $a |- ( x = y -> ( x e. z -> y e. z ) ) $.

  $( Axiom of Equality.  One of the equality and substitution axioms for a
     non-logical predicate in our predicate calculus with equality.  It
     substitutes equal variables into the right-hand side of the ` e. ` binary
     predicate.  Axiom scheme C13' in [Megill] p. 448 (p. 16 of the preprint).
     It is a special case of Axiom B8 (p. 75) of system S2 of [Tarski] p. 77.
     (Contributed by NM, 5-Aug-1993.) $)
  ax-14 $a |- ( x = y -> ( z e. x -> z e. y ) ) $.

  $( Bound-variable hypothesis builder for ` x = x ` .  This theorem tells us
     that any variable, including ` x ` , is effectively not free in
     ` x = x ` , even though ` x ` is technically free according to the
     traditional definition of free variable.  (The proof uses only ~ ax-5 ,
     ~ ax-8 , ~ ax-12 , and ~ ax-gen .  This shows that this can be proved
     without ~ ax-9 , even though the theorem ~ equid cannot be.  A shorter
     proof using ~ ax-9 is obtainable from ~ equid and ~ hbth .)  (Contributed
     by NM, 13-Jan-2011.)  (Proof shortened by Wolf Lammen, 23-Mar-2014.) $)
  hbequid $p |- ( x = x -> A. y x = x ) $=
    ( cv wceq wal wi wo ax12or ax-8 pm2.43i alimi a1d ax-4 jaoi ax-mp ) BCACZDZ
    BEZRPPDZSBEZFZBEZGZGUAAABHRUAUCRTSQSBQSBAAIJKLZRUAUBUDUABMNNO $.

  $( Proof that ~ ax-i12 follows from ~ ax-bndl .  So that we can track which
     theorems rely on ~ ax-bndl , proofs should reference ~ ax-i12 rather than
     this theorem.  (Contributed by Jim Kingdon, 17-Aug-2018.)  (New usage is
     discouraged).  (Proof modification is discouraged.) $)
  axi12 $p |- ( A. z z = x \/ ( A. z z = y \/
                 A. z ( x = y -> A. z x = y ) ) ) $=
    ( cv wceq wal wi wo ax-bndl sp orim2i ax-mp ) CDZADZECFZMBDZECFZNPEZRCFGCFZ
    AFZHZHOQSHZHABCIUAUBOTSQSAJKKL $.

  $( Commutation law for identical variable specifiers.  The antecedent and
     consequent are true when ` x ` and ` y ` are substituted with the same
     variable.  Lemma L12 in [Megill] p. 445 (p. 12 of the preprint).
     (Contributed by NM, 5-Aug-1993.) $)
  alequcom $p |- ( A. x x = y -> A. y y = x ) $=
    ( ax-10 ) ABC $.

  ${
    alequcoms.1 $e |- ( A. x x = y -> ph ) $.
    $( A commutation rule for identical variable specifiers.  (Contributed by
       NM, 5-Aug-1993.) $)
    alequcoms $p |- ( A. y y = x -> ph ) $=
      ( weq wal alequcom syl ) CBECFBCEBFACBGDH $.
  $}

  ${
    nalequcoms.1 $e |- ( -. A. x x = y -> ph ) $.
    $( A commutation rule for distinct variable specifiers.  (Contributed by
       NM, 2-Jan-2002.)  (Revised by Mario Carneiro, 2-Feb-2015.) $)
    nalequcoms $p |- ( -. A. y y = x -> ph ) $=
      ( cv wceq wal wn alequcom con3i syl ) CEZBEZFCGZHMLFBGZHAONBCIJDK $.
  $}

  $( Consequence of the definition of not-free.  (Contributed by Mario
     Carneiro, 26-Sep-2016.) $)
  nfr $p |- ( F/ x ph -> ( ph -> A. x ph ) ) $=
    ( wnf wal wi df-nf sp sylbi ) ABCAABDEZBDIABFIBGH $.

  ${
    nfri.1 $e |- F/ x ph $.
    $( Consequence of the definition of not-free.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfri $p |- ( ph -> A. x ph ) $=
      ( wnf wal wi nfr ax-mp ) ABDAABEFCABGH $.
  $}

  ${
    nfrd.1 $e |- ( ph -> F/ x ps ) $.
    $( Consequence of the definition of not-free in a context.  (Contributed by
       Mario Carneiro, 11-Aug-2016.) $)
    nfrd $p |- ( ph -> ( ps -> A. x ps ) ) $=
      ( wnf wal wi nfr syl ) ABCEBBCFGDBCHI $.
  $}

  ${
    alimd.1 $e |- F/ x ph $.
    alimd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.20 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alimd $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( nfri alimdh ) ABCDADEGFH $.
  $}

  ${
    alrimi.1 $e |- F/ x ph $.
    alrimi.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alrimi $p |- ( ph -> A. x ps ) $=
      ( nfri alrimih ) ABCACDFEG $.
  $}

  ${
    nfd.1 $e |- F/ x ph $.
    nfd.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduce that ` x ` is not free in ` ps ` in a context.  (Contributed by
       Mario Carneiro, 24-Sep-2016.) $)
    nfd $p |- ( ph -> F/ x ps ) $=
      ( wal wi wnf nfri alrimih df-nf sylibr ) ABBCFGZCFBCHAMCACDIEJBCKL $.
  $}

  ${
    nfdh.1 $e |- ( ph -> A. x ph ) $.
    nfdh.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduce that ` x ` is not free in ` ps ` in a context.  (Contributed by
       Mario Carneiro, 24-Sep-2016.) $)
    nfdh $p |- ( ph -> F/ x ps ) $=
      ( nfi nfd ) ABCACDFEG $.
  $}

  ${
    nfrimi.1 $e |- F/ x ph $.
    nfrimi.2 $e |- F/ x ( ph -> ps ) $.
    $( Moving an antecedent outside ` F/ ` .  (Contributed by Jim Kingdon,
       23-Mar-2018.) $)
    nfrimi $p |- ( ph -> F/ x ps ) $=
      ( wal wi nfri ax-5 syl2im pm2.86i nfd ) ABCDABBCFZABGZNCFAACFMNCEHACDHABC
      IJKL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Axiom ax-17 - first use of the $d distinct variable statement
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x ph $.
    $( Axiom to quantify a variable over a formula in which it does not occur.
       Axiom C5 in [Megill] p. 444 (p. 11 of the preprint).  Also appears as
       Axiom B6 (p. 75) of system S2 of [Tarski] p. 77 and Axiom C5-1 of
       [Monk2] p. 113.

       (Contributed by NM, 5-Aug-1993.) $)
    ax-17 $a |- ( ph -> A. x ph ) $.
  $}

  ${
    $d x ps $.
    $( ~ ax-17 with antecedent.  (Contributed by NM, 1-Mar-2013.) $)
    a17d $p |- ( ph -> ( ps -> A. x ps ) ) $=
      ( wal wi ax-17 a1i ) BBCDEABCFG $.
  $}

  ${
    $d x ph $.
    $( If ` x ` is not present in ` ph ` , then ` x ` is not free in ` ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfv $p |- F/ x ph $=
      ( ax-17 nfi ) ABABCD $.
  $}

  ${
    $d x ps $.
    $( ~ nfv with antecedent.  Useful in proofs of deduction versions of
       bound-variable hypothesis builders such as ~ nfimd .  (Contributed by
       Mario Carneiro, 6-Oct-2016.) $)
    nfvd $p |- ( ph -> F/ x ps ) $=
      ( wnf nfv a1i ) BCDABCEF $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Introduce Axiom of Existence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Existence.  One of the equality and substitution axioms of
     predicate calculus with equality.  One thing this axiom tells us is that
     at least one thing exists (although ~ ax-4 and possibly others also tell
     us that, i.e. they are not valid in the empty domain of a "free logic").
     In this form (not requiring that ` x ` and ` y ` be distinct) it was used
     in an axiom system of Tarski (see Axiom B7' in footnote 1 of
     [KalishMontague] p. 81.)  Another name for this theorem is ~ a9e , which
     has additional remarks.  (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-i9 $a |- E. x x = y $.

  $( Derive ~ ax-9 from ~ ax-i9 , the modified version for intuitionistic
     logic.  Although ~ ax-9 does hold intuistionistically, in intuitionistic
     logic it is weaker than ~ ax-i9 .  (Contributed by NM, 3-Feb-2015.) $)
  ax-9 $p |- -. A. x -. x = y $=
    ( cv wceq wn wal wex ax-i9 notnoti alnex mtbir ) ACBCDZEAFLAGZEMABHILAJK $.

  $( ~ equid with some quantification and negation without using ~ ax-4 or
     ~ ax-17 .  (Contributed by NM, 13-Jan-2011.)  (Proof shortened by Wolf
     Lammen, 27-Feb-2014.) $)
  equidqe $p |- -. A. y -. x = x $=
    ( weq wn wal ax-9 ax-8 pm2.43i con3i alimi mto ) AACZDZBEBACZDZBEBAFMOBNLNL
    BAAGHIJK $.

  $( A special case of ~ ax-4 without using ~ ax-4 or ~ ax-17 .  (Contributed
     by NM, 13-Jan-2011.) $)
  ax4sp1 $p |- ( A. y -. x = x -> -. x = x ) $=
    ( weq wn wal equidqe pm2.21i ) AACDZBEHABFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Additional intuitionistic axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( ` x ` is not free in ` A. x ph ` .  Axiom 7 of 10 for intuitionistic
     logic.  (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-ial $a |- ( A. x ph -> A. x A. x ph ) $.

  $( Axiom of quantifier collection.  (Contributed by Mario Carneiro,
     31-Jan-2015.) $)
  ax-i5r $a |- ( ( A. x ph -> A. x ps ) -> A. x ( A. x ph -> ps ) ) $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Predicate calculus including ax-4, without distinct variables
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


  ${
    spi.1 $e |- A. x ph $.
    $( Inference rule reversing generalization.  (Contributed by NM,
       5-Aug-1993.) $)
    spi $p |- ph $=
      ( wal ax-4 ax-mp ) ABDACABEF $.
  $}

  ${
    sps.1 $e |- ( ph -> ps ) $.
    $( Generalization of antecedent.  (Contributed by NM, 5-Aug-1993.) $)
    sps $p |- ( A. x ph -> ps ) $=
      ( wal sp syl ) ACEABACFDG $.
  $}

  ${
    spsd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction generalizing antecedent.  (Contributed by NM, 17-Aug-1994.) $)
    spsd $p |- ( ph -> ( A. x ps -> ch ) ) $=
      ( wal sp syl5 ) BDFBACBDGEH $.
  $}

  ${
    nfbidf.1 $e |- F/ x ph $.
    nfbidf.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An equality theorem for effectively not free.  (Contributed by Mario
       Carneiro, 4-Oct-2016.) $)
    nfbidf $p |- ( ph -> ( F/ x ps <-> F/ x ch ) ) $=
      ( wal wi wnf nfri albidh imbi12d df-nf 3bitr4g ) ABBDGZHZDGCCDGZHZDGBDICD
      IAPRDADEJZABCOQFABCDSFKLKBDMCDMN $.
  $}

  $( ` x ` is not free in ` A. x ph ` .  Example in Appendix in [Megill] p. 450
     (p. 19 of the preprint).  Also Lemma 22 of [Monk2] p. 114.  (Contributed
     by NM, 5-Aug-1993.) $)
  hba1 $p |- ( A. x ph -> A. x A. x ph ) $=
    ( ax-ial ) ABC $.

  $( ` x ` is not free in ` A. x ph ` .  (Contributed by Mario Carneiro,
     11-Aug-2016.) $)
  nfa1 $p |- F/ x A. x ph $=
    ( wal hba1 nfi ) ABCBABDE $.

  ${
    a5i.1 $e |- ( A. x ph -> ps ) $.
    $( Inference generalizing a consequent.  (Contributed by NM,
       5-Aug-1993.) $)
    a5i $p |- ( A. x ph -> A. x ps ) $=
      ( wal wi hba1 ax-5 syl5 mpg ) ACEZBFZKBCEZFCKKCELCEMACGKBCHIDJ $.
  $}

  $( ` x ` is not free in ` F/ x ph ` .  (Contributed by Mario Carneiro,
     11-Aug-2016.) $)
  nfnf1 $p |- F/ x F/ x ph $=
    ( wnf wal wi df-nf nfa1 nfxfr ) ABCAABDEZBDBABFIBGH $.

  ${
    hb.1 $e |- ( ph -> A. x ph ) $.
    hb.2 $e |- ( ps -> A. x ps ) $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph -> ps ) ` .  (Contributed by NM, 5-Aug-1993.)  (Proof shortened
       by O'Cat, 3-Mar-2008.)  (Revised by Mario Carneiro, 2-Feb-2015.) $)
    hbim $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wi wal ax-4 imim12i ax-i5r imim1i alimi 3syl ) ABFZACGZBCGZFOBFZCGNCGOA
      BPACHEIABCJQNCAOBDKLM $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph \/ ps ) ` .  (Contributed by NM, 5-Aug-1993.)  (Revised by NM,
       2-Feb-2015.) $)
    hbor $p |- ( ( ph \/ ps ) -> A. x ( ph \/ ps ) ) $=
      ( wo wal orc alimi syl olc jaoi ) AABFZCGZBAACGNDAMCABHIJBBCGNEBMCBAKIJL
      $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph /\ ps ) ` .  (Contributed by NM, 5-Aug-1993.)  (Proof shortened
       by Mario Carneiro, 2-Feb-2015.) $)
    hban $p |- ( ( ph /\ ps ) -> A. x ( ph /\ ps ) ) $=
      ( wa wal anim12i 19.26 sylibr ) ABFZACGZBCGZFKCGALBMDEHABCIJ $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph <-> ps ) ` .  (Contributed by NM, 5-Aug-1993.) $)
    hbbi $p |- ( ( ph <-> ps ) -> A. x ( ph <-> ps ) ) $=
      ( wb wi wa dfbi2 hbim hban hbxfrbi ) ABFABGZBAGZHCABIMNCABCDEJBACEDJKL $.

    hb.3 $e |- ( ch -> A. x ch ) $.
    $( If ` x ` is not free in ` ph ` , ` ps ` , and ` ch ` , it is not free in
       ` ( ph \/ ps \/ ch ) ` .  (Contributed by NM, 14-Sep-2003.) $)
    hb3or $p |- ( ( ph \/ ps \/ ch ) -> A. x ( ph \/ ps \/ ch ) ) $=
      ( w3o wo df-3or hbor hbxfrbi ) ABCHABIZCIDABCJMCDABDEFKGKL $.

    $( If ` x ` is not free in ` ph ` , ` ps ` , and ` ch ` , it is not free in
       ` ( ph /\ ps /\ ch ) ` .  (Contributed by NM, 14-Sep-2003.) $)
    hb3an $p |- ( ( ph /\ ps /\ ch ) -> A. x ( ph /\ ps /\ ch ) ) $=
      ( w3a wa df-3an hban hbxfrbi ) ABCHABIZCIDABCJMCDABDEFKGKL $.
  $}

  $( Lemma 24 of [Monk2] p. 114.  (Contributed by NM, 29-May-2008.) $)
  hba2 $p |- ( A. y A. x ph -> A. x A. y A. x ph ) $=
    ( wal hba1 hbal ) ABDBCABEF $.

  $( Lemma 23 of [Monk2] p. 114.  (Contributed by NM, 29-May-2008.) $)
  hbia1 $p |- ( ( A. x ph -> A. x ps ) -> A. x ( A. x ph -> A. x ps ) ) $=
    ( wal hba1 hbim ) ACDBCDCACEBCEF $.

  ${
    19.3h.1 $e |- ( ph -> A. x ph ) $.
    $( A wff may be quantified with a variable not free in it.  Theorem 19.3 of
       [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.)  (Revised by NM,
       21-May-2007.) $)
    19.3h $p |- ( A. x ph <-> ph ) $=
      ( wal ax-4 impbii ) ABDAABECF $.
  $}

  ${
    19.3.1 $e |- F/ x ph $.
    $( A wff may be quantified with a variable not free in it.  Theorem 19.3 of
       [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.)  (Revised by Mario
       Carneiro, 24-Sep-2016.) $)
    19.3 $p |- ( A. x ph <-> ph ) $=
      ( wal sp nfri impbii ) ABDAABEABCFG $.
  $}

  ${
    19.16.1 $e |- F/ x ph $.
    $( Theorem 19.16 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.16 $p |- ( A. x ( ph <-> ps ) -> ( ph <-> A. x ps ) ) $=
      ( wal wb 19.3 albi syl5bbr ) AACEABFCEBCEACDGABCHI $.
  $}

  ${
    19.17.1 $e |- F/ x ps $.
    $( Theorem 19.17 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.17 $p |- ( A. x ( ph <-> ps ) -> ( A. x ph <-> ps ) ) $=
      ( wb wal albi 19.3 syl6bb ) ABECFACFBCFBABCGBCDHI $.
  $}

  ${
    19.21h.1 $e |- ( ph -> A. x ph ) $.
    $( Theorem 19.21 of [Margaris] p. 90.  The hypothesis can be thought of
       as " ` x ` is not free in ` ph ` ."  New proofs should use ~ 19.21
       instead.  (Contributed by NM, 5-Aug-1993.)
       (New usage is discouraged.) $)
    19.21h $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( wi wal alim syl5 hba1 hbim ax-4 imim2i alrimih impbii ) ABEZCFZABCFZEZA
      ACFPQDABCGHROCAQCDBCIJQBABCKLMN $.
  $}

  ${
    19.21bi.1 $e |- ( ph -> A. x ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.21bi $p |- ( ph -> ps ) $=
      ( wal ax-4 syl ) ABCEBDBCFG $.
  $}

  ${
    19.21bbi.1 $e |- ( ph -> A. x A. y ps ) $.
    $( Inference removing double quantifier.  (Contributed by NM,
       20-Apr-1994.) $)
    19.21bbi $p |- ( ph -> ps ) $=
      ( wal 19.21bi ) ABDABDFCEGG $.
  $}

  ${
    19.27h.1 $e |- ( ps -> A. x ps ) $.
    $( Theorem 19.27 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.27h $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( wa wal 19.26 19.3h anbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.27.1 $e |- F/ x ps $.
    $( Theorem 19.27 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.27 $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( wa wal 19.26 19.3 anbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.28h.1 $e |- ( ph -> A. x ph ) $.
    $( Theorem 19.28 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.28h $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( wa wal 19.26 19.3h anbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  ${
    19.28.1 $e |- F/ x ph $.
    $( Theorem 19.28 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.28 $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( wa wal 19.26 19.3 anbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  ${
    nfan1.1 $e |- F/ x ph $.
    nfan1.2 $e |- ( ph -> F/ x ps ) $.
    $( A closed form of ~ nfan .  (Contributed by Mario Carneiro,
       3-Oct-2016.) $)
    nfan1 $p |- F/ x ( ph /\ ps ) $=
      ( wa wal nfrd imdistani nfri 19.28h sylibr nfi ) ABFZCNABCGZFNCGABOABCEHI
      ABCACDJKLM $.
  $}

  ${
    nfan.1 $e |- F/ x ph $.
    nfan.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph /\ ps ) ` .  (Contributed by Mario Carneiro, 11-Aug-2016.)
       (Proof shortened by Wolf Lammen, 13-Jan-2018.) $)
    nfan $p |- F/ x ( ph /\ ps ) $=
      ( wnf a1i nfan1 ) ABCDBCFAEGH $.

    nfan.3 $e |- F/ x ch $.
    $( If ` x ` is not free in ` ph ` , ` ps ` , and ` ch ` , it is not free in
       ` ( ph /\ ps /\ ch ) ` .  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nf3an $p |- F/ x ( ph /\ ps /\ ch ) $=
      ( w3a wa df-3an nfan nfxfr ) ABCHABIZCIDABCJMCDABDEFKGKL $.
  $}

  ${
    nford.1 $e |- ( ph -> F/ x ps ) $.
    nford.2 $e |- ( ph -> F/ x ch ) $.
    $( If in a context ` x ` is not free in ` ps ` and ` ch ` , it is not free
       in ` ( ps \/ ch ) ` .  (Contributed by Jim Kingdon, 29-Oct-2019.) $)
    nford $p |- ( ph -> F/ x ( ps \/ ch ) ) $=
      ( wo wal wi wnf wa df-nf anbi12i biimpi syl2anc 19.26 sylibr alimi imim2i
      orc olc jaao syl ) ABCGZUDDHZIZDHZUDDJABBDHZIZCCDHZIZKZDHZUGAUIDHZUKDHZKZ
      UMABDJZCDJZUPEFUQURKUPUQUNURUOBDLCDLMNOUIUKDPQULUFDUIBUEUKCUHUEBBUDDBCTRS
      UJUECCUDDCBUARSUBRUCUDDLQ $.
  $}

  ${
    nfand.1 $e |- ( ph -> F/ x ps ) $.
    nfand.2 $e |- ( ph -> F/ x ch ) $.
    $( If in a context ` x ` is not free in ` ps ` and ` ch ` , it is not free
       in ` ( ps /\ ch ) ` .  (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    nfand $p |- ( ph -> F/ x ( ps /\ ch ) ) $=
      ( wa wal wnf jca df-nf anbi12i 19.26 bitr4i prth syl6ibr alimi sylbi syl
      wi sylibr ) ABCGZUBDHZTZDHZUBDIABDIZCDIZGZUEAUFUGEFJUHBBDHZTZCCDHZTZGZDHZ
      UEUHUJDHZULDHZGUNUFUOUGUPBDKCDKLUJULDMNUMUDDUMUBUIUKGUCBUICUKOBCDMPQRSUBD
      KUA $.

    nfand.3 $e |- ( ph -> F/ x th ) $.
    $( Deduction form of bound-variable hypothesis builder ~ nf3an .
       (Contributed by NM, 17-Feb-2013.)  (Revised by Mario Carneiro,
       16-Oct-2016.) $)
    nf3and $p |- ( ph -> F/ x ( ps /\ ch /\ th ) ) $=
      ( w3a wa df-3an nfand nfxfrd ) BCDIBCJZDJAEBCDKANDEABCEFGLHLM $.
  $}

  ${
    hbim1.1 $e |- ( ph -> A. x ph ) $.
    hbim1.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( A closed form of ~ hbim .  (Contributed by NM, 5-Aug-1993.) $)
    hbim1 $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wi wal a2i 19.21h sylibr ) ABFZABCGZFKCGABLEHABCDIJ $.
  $}

  ${
    nfim1.1 $e |- F/ x ph $.
    nfim1.2 $e |- ( ph -> F/ x ps ) $.
    $( A closed form of ~ nfim .  (Contributed by NM, 5-Aug-1993.)  (Revised by
       Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen,
       2-Jan-2018.) $)
    nfim1 $p |- F/ x ( ph -> ps ) $=
      ( wi nfri nfrd hbim1 nfi ) ABFCABCACDGABCEHIJ $.
  $}

  ${
    nfim.1 $e |- F/ x ph $.
    nfim.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph -> ps ) ` .  (Contributed by Mario Carneiro, 11-Aug-2016.)
       (Proof shortened by Wolf Lammen, 2-Jan-2018.) $)
    nfim $p |- F/ x ( ph -> ps ) $=
      ( wnf a1i nfim1 ) ABCDBCFAEGH $.
  $}

  ${
    hbimd.1 $e |- ( ph -> A. x ph ) $.
    hbimd.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hbimd.3 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbim .
       (Contributed by NM, 1-Jan-2002.)  (Revised by NM, 2-Feb-2015.) $)
    hbimd $p |- ( ph -> ( ( ps -> ch ) -> A. x ( ps -> ch ) ) ) $=
      ( wi wal imim2d ax-4 imim1i ax-i5r syl syl6 imim1d alimdh syld ) ABCHZBDI
      ZCHZDIZSDIASBCDIZHZUBACUCBGJUDTUCHUBTBUCBDKLBCDMNOAUASDEABTCFPQR $.
  $}

  ${
    nfor.1 $e |- F/ x ph $.
    nfor.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph \/ ps ) ` .  (Contributed by Jim Kingdon, 11-Mar-2018.) $)
    nfor $p |- F/ x ( ph \/ ps ) $=
      ( wo nfri hbor nfi ) ABFCABCACDGBCEGHI $.
  $}

  ${
    hbbid.1 $e |- ( ph -> A. x ph ) $.
    hbbid.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hbbid.3 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbbi .
       (Contributed by NM, 1-Jan-2002.) $)
    hbbid $p |- ( ph -> ( ( ps <-> ch ) -> A. x ( ps <-> ch ) ) ) $=
      ( wi wa wal wb hbimd anim12d dfbi2 albiim 3imtr4g ) ABCHZCBHZIQDJZRDJZIBC
      KZUADJAQSRTABCDEFGLACBDEGFLMBCNBCDOP $.
  $}

  ${
    nfal.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` A. y ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfal $p |- F/ x A. y ph $=
      ( wal nfri hbal nfi ) ACEBABCABDFGH $.

    $( If ` x ` is not free in ` ph ` , it is not free in ` F/ y ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf
       Lammen, 30-Dec-2017.) $)
    nfnf $p |- F/ x F/ y ph $=
      ( wnf wal wi df-nf nfal nfim nfxfr ) ACEAACFZGZCFBACHMBCALBDABCDIJIK $.
  $}

  $( Closed form of ~ nfal .  (Contributed by Jim Kingdon, 11-May-2018.) $)
  nfalt $p |- ( A. y F/ x ph -> F/ x A. y ph ) $=
    ( wal wi wnf alim alcom syl6ib alimi df-nf albii bitri 3imtr4i ) AABDZEZCDZ
    BDZACDZSBDZEZBDABFZCDZSBFQUABQSOCDTAOCGACBHIJUCPBDZCDRUBUDCABKLPCBHMSBKN $.

  $( Lemma 24 of [Monk2] p. 114.  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nfa2 $p |- F/ x A. y A. x ph $=
    ( wal nfa1 nfal ) ABDBCABEF $.

  $( Lemma 23 of [Monk2] p. 114.  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nfia1 $p |- F/ x ( A. x ph -> A. x ps ) $=
    ( wal nfa1 nfim ) ACDBCDCACEBCEF $.

  $( Closed form of Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
     27-May-1997.)  (New usage is discouraged.) $)
  19.21ht $p |- ( A. x ( ph -> A. x ph ) ->
               ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wal wi alim imim2d com12 sps hba1 ax-4 a1i hbimd imim2i alimi syl6 impbid
    ) AACDZEZCDZABEZCDZABCDZEZSUBUDECUBSUDUBRUCAABCFGHITUDUDCDUBTAUCCSCJSCKUCUC
    CDETBCJLMUDUACUCBABCKNOPQ $.

  $( Closed form of Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
     27-May-1997.) $)
  19.21t $p |- ( F/ x ph ->
               ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wnf wal wi wb df-nf 19.21ht sylbi ) ACDAACEFCEABFCEABCEFGACHABCIJ $.

  ${
    19.21.1 $e |- F/ x ph $.
    $( Theorem 19.21 of [Margaris] p. 90.  The hypothesis can be thought of
       as " ` x ` is not free in ` ph ` ."  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 24-Sep-2016.) $)
    19.21 $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( wnf wi wal wb 19.21t ax-mp ) ACEABFCGABCGFHDABCIJ $.
  $}

  ${
    stdpc5.1 $e |- F/ x ph $.
    $( An axiom scheme of standard predicate calculus that emulates Axiom 5 of
       [Mendelson] p. 69.  The hypothesis ` F/ x ph ` can be thought of as
       emulating " ` x ` is not free in ` ph ` ."  With this definition, the
       meaning of "not free" is less restrictive than the usual textbook
       definition; for example ` x ` would not (for us) be free in ` x = x ` by
       ~ nfequid .  This theorem scheme can be proved as a metatheorem of
       Mendelson's axiom system, even though it is slightly stronger than his
       Axiom 5.  (Contributed by NM, 22-Sep-1993.)  (Revised by Mario Carneiro,
       12-Oct-2016.)  (Proof shortened by Wolf Lammen, 1-Jan-2018.) $)
    stdpc5 $p |- ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) $=
      ( wi wal 19.21 biimpi ) ABECFABCFEABCDGH $.
  $}

  ${
    nfimd.1 $e |- ( ph -> F/ x ps ) $.
    nfimd.2 $e |- ( ph -> F/ x ch ) $.
    $( If in a context ` x ` is not free in ` ps ` and ` ch ` , it is not free
       in ` ( ps -> ch ) ` .  (Contributed by Mario Carneiro, 24-Sep-2016.)
       (Proof shortened by Wolf Lammen, 30-Dec-2017.) $)
    nfimd $p |- ( ph -> F/ x ( ps -> ch ) ) $=
      ( wnf wi wal nfnf1 nfri imim2d 19.21t biimprd syl9r alrimdh df-nf syl6ibr
      nfr sylc ) ABDGZCDGZBCHZDGZEFUAUBUCUCDIZHZDIUDUAUBUFDUADBDJKUBDCDJKUBUCBC
      DIZHZUAUEUBCUGBCDSLUAUEUHBCDMNOPUCDQRT $.
  $}

  ${
    aaanh.1 $e |- ( ph -> A. y ph ) $.
    aaanh.2 $e |- ( ps -> A. x ps ) $.
    $( Rearrange universal quantifiers.  (Contributed by NM, 12-Aug-1993.) $)
    aaanh $p |- ( A. x A. y ( ph /\ ps ) <-> ( A. x ph /\ A. y ps ) ) $=
      ( wa wal 19.28h albii hbal 19.27h bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJ
      AOCBCDFKLM $.
  $}

  ${
    aaan.1 $e |- F/ y ph $.
    aaan.2 $e |- F/ x ps $.
    $( Rearrange universal quantifiers.  (Contributed by NM, 12-Aug-1993.) $)
    aaan $p |- ( A. x A. y ( ph /\ ps ) <-> ( A. x ph /\ A. y ps ) ) $=
      ( wa wal 19.28 albii nfal 19.27 bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJAO
      CBCDFKLM $.
  $}

  ${
    nfbid.1 $e |- ( ph -> F/ x ps ) $.
    nfbid.2 $e |- ( ph -> F/ x ch ) $.
    $( If in a context ` x ` is not free in ` ps ` and ` ch ` , it is not free
       in ` ( ps <-> ch ) ` .  (Contributed by Mario Carneiro, 24-Sep-2016.)
       (Proof shortened by Wolf Lammen, 29-Dec-2017.) $)
    nfbid $p |- ( ph -> F/ x ( ps <-> ch ) ) $=
      ( wb wi wa dfbi2 nfimd nfand nfxfrd ) BCGBCHZCBHZIADBCJANODABCDEFKACBDFEK
      LM $.
  $}

  ${
    nfbi.1 $e |- F/ x ph $.
    nfbi.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph <-> ps ) ` .  (Contributed by Mario Carneiro, 11-Aug-2016.)
       (Proof shortened by Wolf Lammen, 2-Jan-2018.) $)
    nfbi $p |- F/ x ( ph <-> ps ) $=
      ( wb wnf wtru a1i nfbid trud ) ABFCGHABCACGHDIBCGHEIJK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    The existential quantifier
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( If a wff is true, it is true for at least one instance.  Special case of
     Theorem 19.8 of [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.) $)
  19.8a $p |- ( ph -> E. x ph ) $=
    ( wex wi wal id hbe1 19.23h mpbir spi ) AABCZDZBLBEKKDKFAKBABGHIJ $.

  ${
    19.23bi.1 $e |- ( E. x ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.23bi $p |- ( ph -> ps ) $=
      ( wex 19.8a syl ) AACEBACFDG $.
  $}

  ${
    exlimih.1 $e |- ( ps -> A. x ps ) $.
    exlimih.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
    exlimih $p |- ( E. x ph -> ps ) $=
      ( wi wex 19.23h mpgbi ) ABFACGBFCABCDHEI $.
  $}

  ${
    exlimi.1 $e |- F/ x ps $.
    exlimi.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    exlimi $p |- ( E. x ph -> ps ) $=
      ( nfri exlimih ) ABCBCDFEG $.
  $}

  ${
    exlimd2.1 $e |- ( ph -> A. x ph ) $.
    exlimd2.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    exlimd2.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  Similar to ~ exlimdh
       but with one slightly different hypothesis.  (Contributed by Jim
       Kingdon, 30-Dec-2017.) $)
    exlimd2 $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( wal wi wex alrimih 19.23ht biimpd sylc ) ACCDHIZDHZBCIZDHZBDJCIZAODEFKA
      QDEGKPRSBCDLMN $.
  $}

  ${
    exlimdh.1 $e |- ( ph -> A. x ph ) $.
    exlimdh.2 $e |- ( ch -> A. x ch ) $.
    exlimdh.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       28-Jan-1997.) $)
    exlimdh $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( wi wal wex alrimih 19.23h sylib ) ABCHZDIBDJCHANDEGKBCDFLM $.
  $}

  ${
    exlimd.1 $e |- F/ x ph $.
    exlimd.2 $e |- F/ x ch $.
    exlimd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.9 of [Margaris] p. 89.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof rewritten by Jim Kingdon,
       18-Jun-2018.) $)
    exlimd $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( nfri exlimdh ) ABCDADEHCDFHGI $.
  $}

  ${
    $d x ps $.
    exlimiv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.

       This inference, along with our many variants is used to implement a
       metatheorem called "Rule C" that is given in many logic textbooks.  See,
       for example, Rule C in [Mendelson] p. 81, Rule C in [Margaris] p. 40, or
       Rule C in Hirst and Hirst's _A Primer for Logic and Proof_ p. 59 (PDF
       p. 65) at ~ http://www.mathsci.appstate.edu/~~jlh/primer/hirst.pdf .

       In informal proofs, the statement "Let C be an element such that..."
       almost always means an implicit application of Rule C.

       In essence, Rule C states that if we can prove that some element ` x `
       exists satisfying a wff, i.e. ` E. x ph ( x ) ` where ` ph ( x ) ` has
       ` x ` free, then we can use ` ph ( ` C ` ) ` as a hypothesis for the
       proof where C is a new (ficticious) constant not appearing previously in
       the proof, nor in any axioms used, nor in the theorem to be proved.  The
       purpose of Rule C is to get rid of the existential quantifier.

       We cannot do this in Metamath directly.  Instead, we use the original
       ` ph ` (containing ` x ` ) as an antecedent for the main part of the
       proof.  We eventually arrive at ` ( ph -> ps ) ` where ` ps ` is the
       theorem to be proved and does not contain ` x ` .  Then we apply
       ~ exlimiv to arrive at ` ( E. x ph -> ps ) ` .  Finally, we separately
       prove ` E. x ph ` and detach it with modus ponens ~ ax-mp to arrive at
       the final theorem ` ps ` .  (Contributed by NM, 5-Aug-1993.)  (Revised
       by NM, 25-Jul-2012.) $)
    exlimiv $p |- ( E. x ph -> ps ) $=
      ( ax-17 exlimih ) ABCBCEDF $.
  $}

  $( Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Wolf Lammen, 4-Jul-2014.) $)
  exim $p |- ( A. x ( ph -> ps ) -> ( E. x ph -> E. x ps ) ) $=
    ( wi wal wex hba1 hbe1 19.8a imim2i sps exlimdh ) ABDZCEABCFZCMCGBCHMANDCBN
    ABCIJKL $.

  ${
    eximi.1 $e |- ( ph -> ps ) $.
    $( Inference adding existential quantifier to antecedent and consequent.
       (Contributed by NM, 5-Aug-1993.) $)
    eximi $p |- ( E. x ph -> E. x ps ) $=
      ( wi wex exim mpg ) ABEACFBCFECABCGDH $.

    $( Inference adding 2 existential quantifiers to antecedent and
       consequent.  (Contributed by NM, 3-Feb-2005.) $)
    2eximi $p |- ( E. x E. y ph -> E. x E. y ps ) $=
      ( wex eximi ) ADFBDFCABDEGG $.
  $}

  ${
    eximii.1 $e |- E. x ph $.
    eximii.2 $e |- ( ph -> ps ) $.
    $( Inference associated with ~ eximi .  (Contributed by BJ, 3-Feb-2018.) $)
    eximii $p |- E. x ps $=
      ( wex eximi ax-mp ) ACFBCFDABCEGH $.
  $}

  $( A transformation of quantifiers and logical connectives.  (Contributed by
     NM, 19-Aug-1993.) $)
  alinexa $p |- ( A. x ( ph -> -. ps ) <-> -. E. x ( ph /\ ps ) ) $=
    ( wn wi wal wa wex imnan albii alnex bitri ) ABDEZCFABGZDZCFNCHDMOCABIJNCKL
    $.

  $( Theorem 19.18 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  exbi $p |- ( A. x ( ph <-> ps ) -> ( E. x ph <-> E. x ps ) ) $=
    ( wb wal wex wi bi1 alimi exim syl bi2 impbid ) ABDZCEZACFZBCFZOABGZCEPQGNR
    CABHIABCJKOBAGZCEQPGNSCABLIBACJKM $.

  ${
    exbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding existential quantifier to both sides of an
       equivalence.  (Contributed by NM, 24-May-1994.) $)
    exbii $p |- ( E. x ph <-> E. x ps ) $=
      ( wb wex exbi mpg ) ABEACFBCFECABCGDH $.

    $( Inference adding 2 existential quantifiers to both sides of an
       equivalence.  (Contributed by NM, 16-Mar-1995.) $)
    2exbii $p |- ( E. x E. y ph <-> E. x E. y ps ) $=
      ( wex exbii ) ADFBDFCABDEGG $.

    $( Inference adding 3 existential quantifiers to both sides of an
       equivalence.  (Contributed by NM, 2-May-1995.) $)
    3exbii $p |- ( E. x E. y E. z ph <-> E. x E. y E. z ps ) $=
      ( wex exbii 2exbii ) AEGBEGCDABEFHI $.
  $}

  $( Commutation of conjunction inside an existential quantifier.  (Contributed
     by NM, 18-Aug-1993.) $)
  exancom $p |- ( E. x ( ph /\ ps ) <-> E. x ( ps /\ ph ) ) $=
    ( wa ancom exbii ) ABDBADCABEF $.

  ${
    alrimdd.1 $e |- F/ x ph $.
    alrimdd.2 $e |- ( ph -> F/ x ps ) $.
    alrimdd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.21 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alrimdd $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wal nfrd alimd syld ) ABBDHCDHABDFIABCDEGJK $.
  $}

  ${
    alrimd.1 $e |- F/ x ph $.
    alrimd.2 $e |- F/ x ps $.
    alrimd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.21 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alrimd $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wnf a1i alrimdd ) ABCDEBDHAFIGJ $.
  $}

  ${
    eximdh.1 $e |- ( ph -> A. x ph ) $.
    eximdh.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       20-May-1996.) $)
    eximdh $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( wi wal wex alrimih exim syl ) ABCGZDHBDICDIGAMDEFJBCDKL $.
  $}

  ${
    eximd.1 $e |- F/ x ph $.
    eximd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    eximd $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( nfri eximdh ) ABCDADEGFH $.
  $}

  ${
    nexd.1 $e |- ( ph -> A. x ph ) $.
    nexd.2 $e |- ( ph -> -. ps ) $.
    $( Deduction for generalization rule for negated wff.  (Contributed by NM,
       2-Jan-2002.) $)
    nexd $p |- ( ph -> -. E. x ps ) $=
      ( wn wal wex alrimih alnex sylib ) ABFZCGBCHFALCDEIBCJK $.
  $}

  ${
    exbidh.1 $e |- ( ph -> A. x ph ) $.
    exbidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    exbidh $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( wb wal wex alrimih exbi syl ) ABCGZDHBDICDIGAMDEFJBCDKL $.
  $}

  ${
    albid.1 $e |- F/ x ph $.
    albid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    albid $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( nfri albidh ) ABCDADEGFH $.
  $}

  ${
    exbid.1 $e |- F/ x ph $.
    exbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    exbid $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( nfri exbidh ) ABCDADEGFH $.
  $}

  $( Simplification of an existentially quantified conjunction.  (Contributed
     by Rodolfo Medina, 25-Sep-2010.)  (Proof shortened by Andrew Salmon,
     29-Jun-2011.) $)
  exsimpl $p |- ( E. x ( ph /\ ps ) -> E. x ph ) $=
    ( wa simpl eximi ) ABDACABEF $.

  $( Simplification of an existentially quantified conjunction.  (Contributed
     by Rodolfo Medina, 25-Sep-2010.)  (Proof shortened by Andrew Salmon,
     29-Jun-2011.) $)
  exsimpr $p |- ( E. x ( ph /\ ps ) -> E. x ps ) $=
    ( wa simpr eximi ) ABDBCABEF $.

  $( Theorem 19.6 of [Margaris] p. 89, given a decidability condition.  The
     forward direction holds for all propositions, as seen at ~ alexim .
     (Contributed by Jim Kingdon, 2-Jun-2018.) $)
  alexdc $p |- ( A. x DECID ph -> ( A. x ph <-> -. E. x -. ph ) ) $=
    ( wdc wal wn wex nfa1 wb notnotdc sps albid alnex syl6bb ) ACZBDZABDAEZEZBD
    PBFEOAQBNBGNAQHBAIJKPBLM $.

  $( Theorem 19.29 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Andrew Salmon, 13-May-2011.) $)
  19.29 $p |- ( ( A. x ph /\ E. x ps ) -> E. x ( ph /\ ps ) ) $=
    ( wal wex wa wi pm3.2 alimi exim syl imp ) ACDZBCEZABFZCEZMBOGZCDNPGAQCABHI
    BOCJKL $.

  $( Variation of Theorem 19.29 of [Margaris] p. 90.  (Contributed by NM,
     18-Aug-1993.) $)
  19.29r $p |- ( ( E. x ph /\ A. x ps ) -> E. x ( ph /\ ps ) ) $=
    ( wal wex wa 19.29 ancom exancom 3imtr4i ) BCDZACEZFBAFCELKFABFCEBACGLKHABC
    IJ $.

  $( Variation of Theorem 19.29 of [Margaris] p. 90 with double
     quantification.  (Contributed by NM, 3-Feb-2005.) $)
  19.29r2 $p |- ( ( E. x E. y ph /\ A. x A. y ps ) ->
             E. x E. y ( ph /\ ps ) ) $=
    ( wex wal wa 19.29r eximi syl ) ADEZCEBDFZCFGKLGZCEABGDEZCEKLCHMNCABDHIJ $.

  $( Variation of Theorem 19.29 of [Margaris] p. 90 with mixed quantification.
     (Contributed by NM, 11-Feb-2005.) $)
  19.29x $p |- ( ( E. x A. y ph /\ A. x E. y ps ) ->
             E. x E. y ( ph /\ ps ) ) $=
    ( wal wex wa 19.29r 19.29 eximi syl ) ADEZCFBDFZCEGLMGZCFABGDFZCFLMCHNOCABD
    IJK $.

  $( Forward direction of Theorem 19.35 of [Margaris] p. 90.  The converse
     holds for classical logic but not (for all propositions) in intuitionistic
     logic (Contributed by Mario Carneiro, 2-Feb-2015.) $)
  19.35-1 $p |- ( E. x ( ph -> ps ) -> ( A. x ph -> E. x ps ) ) $=
    ( wal wi wex wa 19.29 pm3.35 eximi syl expcom ) ACDZABEZCFZBCFZMOGANGZCFPAN
    CHQBCABIJKL $.

  ${
    19.35i.1 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.35 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
    19.35i $p |- ( A. x ph -> E. x ps ) $=
      ( wi wex wal 19.35-1 ax-mp ) ABECFACGBCFEDABCHI $.
  $}

  $( Theorem 19.25 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Revised by NM, 2-Feb-2015.) $)
  19.25 $p |- ( A. y E. x ( ph -> ps ) ->
              ( E. y A. x ph -> E. y E. x ps ) ) $=
    ( wi wex wal 19.35-1 alimi exim syl ) ABECFZDGACGZBCFZEZDGMDFNDFELODABCHIMN
    DJK $.

  $( Theorem 19.30 of [Margaris] p. 90, with an additional decidability
     condition.  (Contributed by Jim Kingdon, 21-Jul-2018.) $)
  19.30dc $p |- ( DECID E. x ps ->
      ( A. x ( ph \/ ps ) -> ( A. x ph \/ E. x ps ) ) ) $=
    ( wex wdc wn wo wal df-dc olc a1d alnex orel2 al2imi sylbir syl6 jaoi sylbi
    wi orc ) BCDZEUAUAFZGABGZCHZACHZUAGZSZUAIUAUGUBUAUFUDUAUEJKUBUDUEUFUBBFZCHU
    DUESBCLUHUCACBAMNOUEUATPQR $.

  $( Theorem 19.43 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Mario Carneiro, 2-Feb-2015.) $)
  19.43 $p |- ( E. x ( ph \/ ps ) <-> ( E. x ph \/ E. x ps ) ) $=
    ( wo wex hbe1 hbor 19.8a orim12i exlimih orc eximi olc jaoi impbii ) ABDZCE
    ZACEZBCEZDZPTCRSCACFBCFGARBSACHBCHIJRQSAPCABKLBPCBAMLNO $.

  $( The antecedent provides a condition implying the converse of ~ 19.33 .
     Compare Theorem 19.33 of [Margaris] p. 90.  This variation of ~ 19.33bdc
     is intuitionistically valid without a decidability condition.
     (Contributed by Mario Carneiro, 2-Feb-2015.) $)
  19.33b2 $p |- ( ( -. E. x ph \/ -. E. x ps ) ->
               ( A. x ( ph \/ ps ) <-> ( A. x ph \/ A. x ps ) ) ) $=
    ( wex wn wal orcom alnex orbi12i bitr4i pm2.53 orcoms al2imi orim12d syl5bi
    wo wi com12 19.33 impbid1 ) ACDEZBCDEZPZABPZCFZACFZBCFZPZUEUCUHUCBEZCFZAEZC
    FZPZUEUHUCUBUAPUMUAUBGUJUBULUABCHACHIJUEUJUFULUGUDUIACBAUIAQBAKLMUDUKBCABKM
    NORABCST $.

  $( Converse of ~ 19.33 given ` -. ( E. x ph /\ E. x ps ) ` and a decidability
     condition.  Compare Theorem 19.33 of [Margaris] p. 90.  For a version
     which does not require a decidability condition, see ~ 19.33b2
     (Contributed by Jim Kingdon, 23-Apr-2018.) $)
  19.33bdc $p |- ( DECID E. x ph -> ( -. ( E. x ph /\ E. x ps ) ->
               ( A. x ( ph \/ ps ) <-> ( A. x ph \/ A. x ps ) ) ) ) $=
    ( wex wdc wa wn wo wal wb ianordc 19.33b2 syl6bi ) ACDZENBCDZFGNGOGHABHCIAC
    IBCIHJNOKABCLM $.

  $( Theorem 19.40 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.40 $p |- ( E. x ( ph /\ ps ) -> ( E. x ph /\ E. x ps ) ) $=
    ( wa wex exsimpl simpr eximi jca ) ABDZCEACEBCEABCFJBCABGHI $.

  $( Theorem *11.42 in [WhiteheadRussell] p. 163.  Theorem 19.40 of [Margaris]
     p. 90 with 2 quantifiers.  (Contributed by Andrew Salmon, 24-May-2011.) $)
  19.40-2 $p |- ( E. x E. y ( ph /\ ps ) ->
        ( E. x E. y ph /\ E. x E. y ps ) ) $=
    ( wa wex 19.40 eximi syl ) ABEDFZCFADFZBDFZEZCFKCFLCFEJMCABDGHKLCGI $.

  $( Add/remove a conjunct in the scope of an existential quantifier.
     (Contributed by Raph Levien, 3-Jul-2006.) $)
  exintrbi $p |- ( A. x ( ph -> ps ) -> ( E. x ph <-> E. x ( ph /\ ps ) ) ) $=
    ( wi wal wa wb wex pm4.71 albii exbi sylbi ) ABDZCEAABFZGZCEACHNCHGMOCABIJA
    NCKL $.

  $( Introduce a conjunct in the scope of an existential quantifier.
     (Contributed by NM, 11-Aug-1993.) $)
  exintr $p |- ( A. x ( ph -> ps ) -> ( E. x ph -> E. x ( ph /\ ps ) ) ) $=
    ( wi wal wex wa exintrbi biimpd ) ABDCEACFABGCFABCHI $.

  $( Theorem *10.3 in [WhiteheadRussell] p. 150.  (Contributed by Andrew
     Salmon, 8-Jun-2011.) $)
  alsyl $p |- ( ( A. x ( ph -> ps ) /\ A. x ( ps -> ch ) ) ->
        A. x ( ph -> ch ) ) $=
    ( wi pm3.33 alanimi ) ABEBCEACEDABCFG $.

  ${
    hbex.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` E. y ph ` .
       (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
    hbex $p |- ( E. y ph -> A. x E. y ph ) $=
      ( wex wal hbe1 hbal 19.8a alrimih exlimih ) AACEZBFCLCBACGHALBDACIJK $.
  $}

  ${
    nfex.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` E. y ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf
       Lammen, 30-Dec-2017.) $)
    nfex $p |- F/ x E. y ph $=
      ( wex nfri hbex nfi ) ACEBABCABDFGH $.
  $}

  $( Theorem 19.2 of [Margaris] p. 89, generalized to use two setvar
     variables.  (Contributed by O'Cat, 31-Mar-2008.) $)
  19.2 $p |- ( A. x ph -> E. y ph ) $=
    ( wex 19.8a sps ) AACDBACEF $.

  ${
    i19.24.1 $e |- ( ( A. x ph -> E. x ps ) -> E. x ( ph -> ps ) ) $.
    $( Theorem 19.24 of [Margaris] p. 90, with an additional hypothesis.  The
       hypothesis is the converse of ~ 19.35-1 , and is a theorem of classical
       logic, but in intuitionistic logic it will only be provable for some
       propositions.  (Contributed by Jim Kingdon, 22-Jul-2018.) $)
    i19.24 $p |- ( ( A. x ph -> A. x ps ) -> E. x ( ph -> ps ) ) $=
      ( wal wi wex 19.2 imim2i syl ) ACEZBCEZFKBCGZFABFCGLMKBCCHIDJ $.

    $( Theorem 19.39 of [Margaris] p. 90, with an additional hypothesis.  The
       hypothesis is the converse of ~ 19.35-1 , and is a theorem of classical
       logic, but in intuitionistic logic it will only be provable for some
       propositions.  (Contributed by Jim Kingdon, 22-Jul-2018.) $)
    i19.39 $p |- ( ( E. x ph -> E. x ps ) -> E. x ( ph -> ps ) ) $=
      ( wex wi wal 19.2 imim1i syl ) ACEZBCEZFACGZLFABFCEMKLACCHIDJ $.
  $}

  $( A closed version of one direction of ~ 19.9 .  (Contributed by NM,
     5-Aug-1993.) $)
  19.9ht $p |- ( A. x ( ph -> A. x ph ) -> ( E. x ph -> ph ) ) $=
    ( wal wi wex id ax-gen 19.23ht mpbii ) AABCDBCAADZBCABEADJBAFGAABHI $.

  $( A closed version of ~ 19.9 .  (Contributed by NM, 5-Aug-1993.)  (Revised
     by Mario Carneiro, 24-Sep-2016.)  (Proof shortended by Wolf Lammen,
     30-Dec-2017.) $)
  19.9t $p |- ( F/ x ph -> ( E. x ph <-> ph ) ) $=
    ( wnf wex wal wi df-nf 19.9ht sylbi 19.8a impbid1 ) ABCZABDZALAABEFBEMAFABG
    ABHIABJK $.

  ${
    19.9h.1 $e |- ( ph -> A. x ph ) $.
    $( A wff may be existentially quantified with a variable not free in it.
       Theorem 19.9 of [Margaris] p. 89.  (Contributed by FL, 24-Mar-2007.) $)
    19.9h $p |- ( E. x ph <-> ph ) $=
      ( wex wal wi 19.9ht mpg 19.8a impbii ) ABDZAAABEFKAFBABGCHABIJ $.
  $}

  ${
    19.9.1 $e |- F/ x ph $.
    $( A wff may be existentially quantified with a variable not free in it.
       Theorem 19.9 of [Margaris] p. 89.  (Contributed by FL, 24-Mar-2007.)
       (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf
       Lammen, 30-Dec-2017.) $)
    19.9 $p |- ( E. x ph <-> ph ) $=
      ( nfri 19.9h ) ABABCDE $.
  $}

  $( One direction of theorem 19.6 of [Margaris] p. 89.  The converse holds
     given a decidability condition, as seen at ~ alexdc .  (Contributed by Jim
     Kingdon, 2-Jul-2018.) $)
  alexim $p |- ( A. x ph -> -. E. x -. ph ) $=
    ( wal wn wex wfal wi pm2.24 alimi exim syl nfv 19.9 syl6ib dfnot sylibr ) A
    BCZADZBEZFGSDQSFBEZFQRFGZBCSTGAUABAFHIRFBJKFBFBLMNSOP $.

  $( One direction of Theorem 19.14 of [Margaris] p. 90.  In classical logic
     the converse also holds.  (Contributed by Jim Kingdon, 15-Jul-2018.) $)
  exnalim $p |- ( E. x -. ph -> -. A. x ph ) $=
    ( wal wn wex alexim con2i ) ABCADBEABFG $.

  $( A transformation of quantifiers and logical connectives.  In classical
     logic the converse also holds.  (Contributed by Jim Kingdon,
     15-Jul-2018.) $)
  exanaliim $p |- ( E. x ( ph /\ -. ps ) -> -. A. x ( ph -> ps ) ) $=
    ( wn wa wex wi wal annimim eximi exnalim syl ) ABDEZCFABGZDZCFNCHDMOCABIJNC
    KL $.

  $( A relationship between two quantifiers and negation.  (Contributed by Jim
     Kingdon, 27-Aug-2018.) $)
  alexnim $p |- ( A. x E. y -. ph -> -. E. x A. y ph ) $=
    ( wn wex wal exnalim alimi alnex sylib ) ADCEZBFACFZDZBFLBEDKMBACGHLBIJ $.

  ${
    ax6blem.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` -. ph ` .  This
       theorem doesn't use ~ ax6b compared to ~ hbnt .  (Contributed by GD,
       27-Jan-2018.) $)
    ax6blem $p |- ( -. ph -> A. x -. ph ) $=
      ( wn wex wal id exlimih con3i alnex sylibr ) ADZABEZDLBFMAAABCAGHIABJK $.
  $}

  $( Quantified Negation.  Axiom C5-2 of [Monk2] p. 113.

     (Contributed by GD, 27-Jan-2018.) $)
  ax6b $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
    ( wal ax-ial ax6blem ) ABCBABDE $.

  $( ` x ` is not free in ` -. A. x ph ` .  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Wolf Lammen, 18-Aug-2014.) $)
  hbn1 $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
    ( ax6b ) ABC $.

  $( Closed theorem version of bound-variable hypothesis builder ~ hbn .
     (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
  hbnt $p |- ( A. x ( ph -> A. x ph ) -> ( -. ph -> A. x -. ph ) ) $=
    ( wn wal wi ax-4 con3i ax6b syl con3 al2imi syl5 ) ACZABDZCZBDZANEZBDMBDMOP
    NAABFGABHIQOMBANJKL $.

  ${
    hbn.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` -. ph ` .
       (Contributed by NM, 5-Aug-1993.) $)
    hbn $p |- ( -. ph -> A. x -. ph ) $=
      ( wal wi wn hbnt mpg ) AABDEAFZIBDEBABGCH $.
  $}

  ${
    hbnd.1 $e |- ( ph -> A. x ph ) $.
    hbnd.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbn .
       (Contributed by NM, 3-Jan-2002.) $)
    hbnd $p |- ( ph -> ( -. ps -> A. x -. ps ) ) $=
      ( wal wi wn alrimih hbnt syl ) ABBCFGZCFBHZMCFGALCDEIBCJK $.
  $}

  $( If ` x ` is not free in ` ph ` , then it is not free in ` -. ph ` .
     (Contributed by Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf
     Lammen, 28-Dec-2017.)  (Revised by BJ, 24-Jul-2019.) $)
  nfnt $p |- ( F/ x ph -> F/ x -. ph ) $=
    ( wnf wn nfnf1 wal wi df-nf hbnt sylbi nfd ) ABCZADZBABELAABFGBFMMBFGABHABI
    JK $.

  ${
    nfnd.1 $e |- ( ph -> F/ x ps ) $.
    $( Deduction associated with ~ nfnt .  (Contributed by Mario Carneiro,
       24-Sep-2016.) $)
    nfnd $p |- ( ph -> F/ x -. ps ) $=
      ( wnf wn nfnt syl ) ABCEBFCEDBCGH $.
  $}

  ${
    nfn.1 $e |- F/ x ph $.
    $( Inference associated with ~ nfnt .  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfn $p |- F/ x -. ph $=
      ( wnf wn nfnt ax-mp ) ABDAEBDCABFG $.
  $}

  ${
    nfdc.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` DECID ph ` .
       (Contributed by Jim Kingdon, 11-Mar-2018.) $)
    nfdc $p |- F/ x DECID ph $=
      ( wdc wn wo df-dc nfn nfor nfxfr ) ADAAEZFBAGAKBCABCHIJ $.
  $}

  $( The analog in our predicate calculus of axiom 5 of modal logic S5.
     (Contributed by NM, 5-Oct-2005.) $)
  modal-5 $p |- ( -. A. x -. ph -> A. x -. A. x -. ph ) $=
    ( wn hbn1 ) ACBD $.

  ${
    19.9d.1 $e |- ( ps -> F/ x ph ) $.
    $( A deduction version of one direction of ~ 19.9 .  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.) $)
    19.9d $p |- ( ps -> ( E. x ph -> ph ) ) $=
      ( wex wnf wb 19.9t syl biimpd ) BACEZABACFKAGDACHIJ $.
  $}

  ${
    19.9hd.1 $e |- ( ps -> A. x ps ) $.
    19.9hd.2 $e |- ( ps -> ( ph -> A. x ph ) ) $.
    $( A deduction version of one direction of ~ 19.9 .  This is an older
       variation of this theorem; new proofs should use ~ 19.9d .  (Contributed
       by NM, 5-Aug-1993.)  (New usage is discouraged.) $)
    19.9hd $p |- ( ps -> ( E. x ph -> ph ) ) $=
      ( wal wi wex alimi 19.9ht 3syl ) BBCFAACFGZCFACHAGDBLCEIACJK $.
  $}

  $( One direction of Theorem 19.11 of [Margaris] p. 89.  (Contributed by NM,
     5-Aug-1993.) $)
  excomim $p |- ( E. x E. y ph -> E. y E. x ph ) $=
    ( wex 19.8a 2eximi hbe1 hbex 19.9h sylib ) ACDBDABDZCDZBDLAKBCABEFLBKBCABGH
    IJ $.

  $( Theorem 19.11 of [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.) $)
  excom $p |- ( E. x E. y ph <-> E. y E. x ph ) $=
    ( wex excomim impbii ) ACDBDABDCDABCEACBEF $.

  $( Theorem 19.12 of [Margaris] p. 89.  Assuming the converse is a mistake
     sometimes made by beginners!  (Contributed by NM, 5-Aug-1993.) $)
  19.12 $p |- ( E. x A. y ph -> A. y E. x ph ) $=
    ( wal wex hba1 hbex ax-4 eximi alrimih ) ACDZBEABECKCBACFGKABACHIJ $.

  ${
    19.19.1 $e |- F/ x ph $.
    $( Theorem 19.19 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.19 $p |- ( A. x ( ph <-> ps ) -> ( ph <-> E. x ps ) ) $=
      ( wex wb wal 19.9 exbi syl5bbr ) AACEABFCGBCEACDHABCIJ $.
  $}

  ${
    19.21-2.1 $e |- F/ x ph $.
    19.21-2.2 $e |- F/ y ph $.
    $( Theorem 19.21 of [Margaris] p. 90 but with 2 quantifiers.  (Contributed
       by NM, 4-Feb-2005.) $)
    19.21-2 $p |- ( A. x A. y ( ph -> ps ) <-> ( ph -> A. x A. y ps ) ) $=
      ( wi wal 19.21 albii bitri ) ABGDHZCHABDHZGZCHAMCHGLNCABDFIJAMCEIK $.
  $}

  $( An alternative definition of ~ df-nf , which does not involve nested
     quantifiers on the same variable.  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nf2 $p |- ( F/ x ph <-> ( E. x ph -> A. x ph ) ) $=
    ( wnf wal wi wex df-nf nfa1 nfri 19.23h bitri ) ABCAABDZEBDABFLEABGALBLBABH
    IJK $.

  $( An alternative definition of ~ df-nf .  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nf3 $p |- ( F/ x ph <-> A. x ( E. x ph -> ph ) ) $=
    ( wnf wex wal wi nf2 nfe1 nfri 19.21h bitr4i ) ABCABDZABEFLAFBEABGLABLBABHI
    JK $.

  $( Variable ` x ` is effectively not free in ` ph ` iff ` ph ` is always true
     or always false, given a decidability condition.  The reverse direction,
     ~ nf4r , holds for all propositions.  (Contributed by Jim Kingdon,
     21-Jul-2018.) $)
  nf4dc $p |- ( DECID E. x ph -> ( F/ x ph <-> ( A. x ph \/ A. x -. ph ) ) ) $=
    ( wex wdc wnf wn wal wo nf2 imordc syl5bb orcom alnex orbi2i bitr4i syl6bb
    wi ) ABCZDZABEZRFZABGZHZUBAFBGZHZTRUBQSUCABIRUBJKUCUBUAHUEUAUBLUDUAUBABMNOP
    $.

  $( If ` ph ` is always true or always false, then variable ` x ` is
     effectively not free in ` ph ` .  The converse holds given a decidability
     condition, as seen at ~ nf4dc .  (Contributed by Jim Kingdon,
     21-Jul-2018.) $)
  nf4r $p |- ( ( A. x ph \/ A. x -. ph ) -> F/ x ph ) $=
    ( wal wn wo wex wnf orcom alnex orbi2i bitr4i wi imorr nf2 sylibr sylbir )
    ABCZADBCZEZABFZDZQEZABGZUBQUAESUAQHRUAQABIJKUBTQLUCTQMABNOP $.

  ${
    19.36i.1 $e |- F/ x ps $.
    19.36i.2 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.36 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
    19.36i $p |- ( A. x ph -> ps ) $=
      ( wal wex 19.35i id exlimi syl ) ACFBCGBABCEHBBCDBIJK $.
  $}

  ${
    19.36-1.1 $e |- F/ x ps $.
    $( Closed form of ~ 19.36i .  One direction of Theorem 19.36 of [Margaris]
       p. 90.  The converse holds in classical logic, but does not hold (for
       all propositions) in intuitionistic logic.  (Contributed by Jim Kingdon,
       20-Jun-2018.) $)
    19.36-1 $p |- ( E. x ( ph -> ps ) -> ( A. x ph -> ps ) ) $=
      ( wi wex wal 19.35-1 19.9 syl6ib ) ABECFACGBCFBABCHBCDIJ $.
  $}

  ${
    19.37-1.1 $e |- F/ x ph $.
    $( One direction of Theorem 19.37 of [Margaris] p. 90.  The converse holds
       in classical logic but not, in general, here.  (Contributed by Jim
       Kingdon, 21-Jun-2018.) $)
    19.37-1 $p |- ( E. x ( ph -> ps ) -> ( ph -> E. x ps ) ) $=
      ( wal wi wex 19.3 19.35-1 syl5bir ) AACEABFCGBCGACDHABCIJ $.
  $}

  ${
    $d x ph $.
    19.37aiv.1 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.37 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.37aiv $p |- ( ph -> E. x ps ) $=
      ( wi wex nfv 19.37-1 ax-mp ) ABECFABCFEDABCACGHI $.
  $}

  $( Theorem 19.38 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.38 $p |- ( ( E. x ph -> A. x ps ) -> A. x ( ph -> ps ) ) $=
    ( wex wal wi hbe1 hba1 hbim 19.8a ax-4 imim12i alrimih ) ACDZBCEZFABFCNOCAC
    GBCHIANOBACJBCKLM $.

  $( Closed form of Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
     7-Nov-2005.)  (Proof shortened by Wolf Lammen, 2-Jan-2018.) $)
  19.23t $p |- ( F/ x ps -> ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $=
    ( wnf wi wal wex exim 19.9t biimpd syl9r nfr imim2d 19.38 syl6 impbid ) BCD
    ZABECFZACGZBEZRSBCGZQBABCHQUABBCIJKQTSBCFZERQBUBSBCLMABCNOP $.

  ${
    19.23.1 $e |- F/ x ps $.
    $( Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 24-Sep-2016.) $)
    19.23 $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( wnf wi wal wex wb 19.23t ax-mp ) BCEABFCGACHBFIDABCJK $.
  $}

  ${
    19.32dc.1 $e |- F/ x ph $.
    $( Theorem 19.32 of [Margaris] p. 90, where ` ph ` is decidable.
       (Contributed by Jim Kingdon, 4-Jun-2018.) $)
    19.32dc $p |- ( DECID ph ->
        ( A. x ( ph \/ ps ) <-> ( ph \/ A. x ps ) ) ) $=
      ( wdc wn wi wal wo wb nfn 19.21 a1i nfdc dfordc albid 3bitr4d ) AEZAFZBGZ
      CHZSBCHZGZABIZCHAUBIUAUCJRSBCACDKLMRUDTCACDNABOPAUBOQ $.
  $}

  ${
    19.32r.1 $e |- F/ x ph $.
    $( One direction of Theorem 19.32 of [Margaris] p. 90.  The converse holds
       if ` ph ` is decidable, as seen at ~ 19.32dc .  (Contributed by Jim
       Kingdon, 28-Jul-2018.) $)
    19.32r $p |- ( ( ph \/ A. x ps ) -> A. x ( ph \/ ps ) ) $=
      ( wo wal orc alrimi olc alimi jaoi ) AABEZCFBCFALCDABGHBLCBAIJK $.
  $}

  ${
    19.31r.1 $e |- F/ x ps $.
    $( One direction of Theorem 19.31 of [Margaris] p. 90.  The converse holds
       in classical logic, but not intuitionistic logic.  (Contributed by Jim
       Kingdon, 28-Jul-2018.) $)
    19.31r $p |- ( ( A. x ph \/ ps ) -> A. x ( ph \/ ps ) ) $=
      ( wal wo 19.32r orcom albii 3imtr4i ) BACEZFBAFZCEKBFABFZCEBACDGKBHMLCABH
      IJ $.
  $}

  ${
    19.44.1 $e |- F/ x ps $.
    $( Theorem 19.44 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.44 $p |- ( E. x ( ph \/ ps ) <-> ( E. x ph \/ ps ) ) $=
      ( wo wex 19.43 19.9 orbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.45.1 $e |- F/ x ph $.
    $( Theorem 19.45 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.45 $p |- ( E. x ( ph \/ ps ) <-> ( ph \/ E. x ps ) ) $=
      ( wo wex 19.43 19.9 orbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  $( Theorem 19.34 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.34 $p |- ( ( A. x ph \/ E. x ps ) -> E. x ( ph \/ ps ) ) $=
    ( wal wex wo 19.2 orim1i 19.43 sylibr ) ACDZBCEZFACEZLFABFCEKMLACCGHABCIJ
    $.

  ${
    19.41h.1 $e |- ( ps -> A. x ps ) $.
    $( Theorem 19.41 of [Margaris] p. 90.  New proofs should use ~ 19.41
       instead.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 25-May-2011.)  (New usage is discouraged.) $)
    19.41h $p |- ( E. x ( ph /\ ps ) <-> ( E. x ph /\ ps ) ) $=
      ( wa wex 19.40 id exlimih anim2i syl pm3.21 eximdh impcom impbii ) ABEZCF
      ZACFZBEZQRBCFZESABCGTBRBBCDBHIJKBRQBAPCDBALMNO $.
  $}

  ${
    19.41.1 $e |- F/ x ps $.
    $( Theorem 19.41 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof shortened by
       Wolf Lammen, 12-Jan-2018.) $)
    19.41 $p |- ( E. x ( ph /\ ps ) <-> ( E. x ph /\ ps ) ) $=
      ( wa wex 19.40 19.9 anbi2i sylib pm3.21 eximd impcom impbii ) ABEZCFZACFZ
      BEZPQBCFZERABCGSBQBCDHIJBQPBAOCDBAKLMN $.
  $}

  ${
    19.42h.1 $e |- ( ph -> A. x ph ) $.
    $( Theorem 19.42 of [Margaris] p. 90.  New proofs should use ~ 19.42
       instead.  (Contributed by NM, 18-Aug-1993.)
       (New usage is discouraged.) $)
    19.42h $p |- ( E. x ( ph /\ ps ) <-> ( ph /\ E. x ps ) ) $=
      ( wa wex 19.41h exancom ancom 3bitr4i ) BAECFBCFZAEABECFAKEBACDGABCHAKIJ
      $.
  $}

  ${
    19.42.1 $e |- F/ x ph $.
    $( Theorem 19.42 of [Margaris] p. 90.  (Contributed by NM, 18-Aug-1993.) $)
    19.42 $p |- ( E. x ( ph /\ ps ) <-> ( ph /\ E. x ps ) ) $=
      ( wa wex 19.41 exancom ancom 3bitr4i ) BAECFBCFZAEABECFAKEBACDGABCHAKIJ
      $.
  $}

  $( Swap 1st and 3rd existential quantifiers.  (Contributed by NM,
     9-Mar-1995.) $)
  excom13 $p |- ( E. x E. y E. z ph <-> E. z E. y E. x ph ) $=
    ( wex excom exbii 3bitri ) ADEZCEBEIBEZCEABEZDEZCEKCEDEIBCFJLCABDFGKCDFH $.

  $( Rotate existential quantifiers.  (Contributed by NM, 17-Mar-1995.) $)
  exrot3 $p |- ( E. x E. y E. z ph <-> E. y E. z E. x ph ) $=
    ( wex excom13 excom bitri ) ADECEBEABEZCEDEIDECEABCDFIDCGH $.

  $( Rotate existential quantifiers twice.  (Contributed by NM, 9-Mar-1995.) $)
  exrot4 $p |- ( E. x E. y E. z E. w ph <-> E. z E. w E. x E. y ph ) $=
    ( wex excom13 exbii bitri ) AEFDFCFZBFACFZDFEFZBFKBFEFDFJLBACDEGHKBEDGI $.

  ${
    nexr.1 $e |- -. E. x ph $.
    $( Inference from ~ 19.8a .  (Contributed by Jeff Hankins, 26-Jul-2009.) $)
    nexr $p |- -. ph $=
      ( wex 19.8a mto ) AABDCABEF $.
  $}

  ${
    exan.1 $e |- ( E. x ph /\ ps ) $.
    $( Place a conjunct in the scope of an existential quantifier.
       (Contributed by NM, 18-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    exan $p |- E. x ( ph /\ ps ) $=
      ( wex wal wa hbe1 19.28h mpgbi 19.29r ax-mp ) ACEZBCFGZABGCEMBGNCMBCACHID
      JABCKL $.
  $}

  ${
    hbexd.1 $e |- ( ph -> A. y ph ) $.
    hbexd.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbex .
       (Contributed by NM, 2-Jan-2002.) $)
    hbexd $p |- ( ph -> ( E. y ps -> A. x E. y ps ) ) $=
      ( wex wal eximdh 19.12 syl6 ) ABDGZBCHZDGLCHABMDEFIBDCJK $.
  $}

  ${
    eeor.1 $e |- F/ y ph $.
    eeor.2 $e |- F/ x ps $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 8-Aug-1994.) $)
    eeor $p |- ( E. x E. y ( ph \/ ps ) <-> ( E. x ph \/ E. y ps ) ) $=
      ( wo wex 19.45 exbii nfex 19.44 bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJAO
      CBCDFKLM $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
              Equality theorems without distinct variables
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( At least one individual exists.  This is not a theorem of free logic,
     which is sound in empty domains.  For such a logic, we would add this
     theorem as an axiom of set theory (Axiom 0 of [Kunen] p. 10).  In the
     system consisting of ~ ax-5 through ~ ax-14 and ~ ax-17 , all axioms other
     than ~ ax-9 are believed to be theorems of free logic, although the system
     without ~ ax-9 is probably not complete in free logic.  (Contributed by
     NM, 5-Aug-1993.)  (Revised by NM, 3-Feb-2015.) $)
  a9e $p |- E. x x = y $=
    ( ax-i9 ) ABC $.

  ${
    $d x y $.
    $( At least one individual exists.  Weaker version of ~ a9e .  (Contributed
       by NM, 3-Aug-2017.) $)
    a9ev $p |- E. x x = y $=
      ( ax-i9 ) ABC $.
  $}

  $( An implication related to substitution.  (Contributed by NM, 5-Aug-1993.)
     (Revised by NM, 3-Feb-2015.) $)
  ax9o $p |- ( A. x ( x = y -> A. x ph ) -> ph ) $=
    ( cv wceq wex wal wi a9e wa 19.29r hba1 pm3.35 exlimih ax-4 syl mpan ) BDCD
    EZBFZRABGZHZBGZABCISUBJRUAJZBFZARUABKUDTAUCTBABLRTMNABOPPQ $.

  ${
    $d x y $.
    $( Identity law for equality (reflexivity).  Lemma 6 of [Tarski] p. 68.
       This is often an axiom of equality in textbook systems, but we don't
       need it as an axiom since it can be proved from our other axioms.

       This proof is similar to Tarski's and makes use of a dummy variable
       ` y ` .  It also works in intuitionistic logic, unlike some other
       possible ways of proving this theorem.  (Contributed by NM,
       1-Apr-2005.) $)
    equid $p |- x = x $=
      ( vy weq wex a9e ax-17 ax-8 pm2.43i exlimih ax-mp ) BACZBDAACZBAEKLBLBFKL
      BAAGHIJ $.
  $}

  $( Bound-variable hypothesis builder for ` x = x ` .  This theorem tells us
     that any variable, including ` x ` , is effectively not free in
     ` x = x ` , even though ` x ` is technically free according to the
     traditional definition of free variable.  (Contributed by NM,
     13-Jan-2011.)  (Revised by NM, 21-Aug-2017.) $)
  nfequid $p |- F/ y x = x $=
    ( weq equid nfth ) AACBADE $.

  $( One of the two equality axioms of standard predicate calculus, called
     reflexivity of equality.  (The other one is ~ stdpc7 .)  Axiom 6 of
     [Mendelson] p. 95.  Mendelson doesn't say why he prepended the redundant
     quantifier, but it was probably to be compatible with free logic (which is
     valid in the empty domain).  (Contributed by NM, 16-Feb-2005.) $)
  stdpc6 $p |- A. x x = x $=
    ( weq equid ax-gen ) AABAACD $.

  $( Commutative law for equality.  Lemma 7 of [Tarski] p. 69.  (Contributed by
     NM, 5-Aug-1993.) $)
  equcomi $p |- ( x = y -> y = x ) $=
    ( weq equid ax-8 mpi ) ABCAACBACADABAEF $.

  $( Commutative law for equality.  (Contributed by NM, 20-Aug-1993.) $)
  equcom $p |- ( x = y <-> y = x ) $=
    ( weq equcomi impbii ) ABCBACABDBADE $.

  ${
    equcoms.1 $e |- ( x = y -> ph ) $.
    $( An inference commuting equality in antecedent.  Used to eliminate the
       need for a syllogism.  (Contributed by NM, 5-Aug-1993.) $)
    equcoms $p |- ( y = x -> ph ) $=
      ( weq equcomi syl ) CBEBCEACBFDG $.
  $}

  $( A transitive law for equality.  (Contributed by NM, 23-Aug-1993.) $)
  equtr $p |- ( x = y -> ( y = z -> x = z ) ) $=
    ( weq wi ax-8 equcoms ) BCDACDEBABACFG $.

  $( A transitive law for equality.  Lemma L17 in [Megill] p. 446 (p. 14 of the
     preprint).  (Contributed by NM, 23-Aug-1993.) $)
  equtrr $p |- ( x = y -> ( z = x -> z = y ) ) $=
    ( weq equtr com12 ) CADABDCBDCABEF $.

  $( A transitive law for equality.  (Contributed by NM, 12-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 25-May-2011.) $)
  equtr2 $p |- ( ( x = z /\ y = z ) -> x = y ) $=
    ( weq wi equtrr equcoms impcom ) BCDACDZABDZIJECBCBAFGH $.

  $( An equivalence law for equality.  (Contributed by NM, 5-Aug-1993.) $)
  equequ1 $p |- ( x = y -> ( x = z <-> y = z ) ) $=
    ( weq ax-8 equtr impbid ) ABDACDBCDABCEABCFG $.

  $( An equivalence law for equality.  (Contributed by NM, 5-Aug-1993.) $)
  equequ2 $p |- ( x = y -> ( z = x <-> z = y ) ) $=
    ( weq equtrr wi equcoms impbid ) ABDCADZCBDZABCEJIFBABACEGH $.

  $( An identity law for the non-logical predicate.  (Contributed by NM,
     5-Aug-1993.) $)
  elequ1 $p |- ( x = y -> ( x e. z <-> y e. z ) ) $=
    ( weq wel ax-13 wi equcoms impbid ) ABDACEZBCEZABCFKJGBABACFHI $.

  $( An identity law for the non-logical predicate.  (Contributed by NM,
     5-Aug-1993.) $)
  elequ2 $p |- ( x = y -> ( z e. x <-> z e. y ) ) $=
    ( weq wel ax-14 wi equcoms impbid ) ABDCAEZCBEZABCFKJGBABACFHI $.

  ${
    ax11i.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    ax11i.2 $e |- ( ps -> A. x ps ) $.
    $( Inference that has ~ ax-11 (without ` A. y ` ) as its conclusion and
       doesn't require ~ ax-10 , ~ ax-11 , or ~ ax-12 for its proof.  The
       hypotheses may be eliminable without one or more of these axioms in
       special cases.  Proof similar to Lemma 16 of [Tarski] p. 70.
       (Contributed by NM, 20-May-2008.) $)
    ax11i $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( weq wi wal biimprcd alrimih syl6bi ) CDGZABMAHZCIEBNCFMABEJKL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                  Axioms ax-10 and ax-11
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Show that ~ ax-10o can be derived from ~ ax-10 .  An open problem is
     whether this theorem can be derived from ~ ax-10 and the others when
     ~ ax-11 is replaced with ~ ax-11o .  See theorem ~ ax10 for the
     rederivation of ~ ax-10 from ~ ax10o .

     Normally, ~ ax10o should be used rather than ~ ax-10o , except by theorems
     specifically studying the latter's properties.  (Contributed by NM,
     16-May-2008.) $)
  ax10o $p |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $=
    ( weq wal wi ax-10 ax-11 equcoms sps pm2.27 al2imi sylsyld ) BCDZBECBDZCEAB
    EZOAFZCEZACEBCGNPRFZBSCBACBHIJOQACOAKLM $.

  $( Axiom ~ ax-10o ("o" for "old") was the original version of ~ ax-10 ,
     before it was discovered (in May 2008) that the shorter ~ ax-10 could
     replace it.  It appears as Axiom scheme C11' in [Megill] p. 448 (p. 16 of
     the preprint).

     This axiom is redundant, as shown by theorem ~ ax10o .

     Normally, ~ ax10o should be used rather than ~ ax-10o , except by theorems
     specifically studying the latter's properties.  (Contributed by NM,
     5-Aug-1993.)  (New usage is discouraged.) $)
  ax-10o $a |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $.

  $( Rederivation of ~ ax-10 from original version ~ ax-10o .  See theorem
     ~ ax10o for the derivation of ~ ax-10o from ~ ax-10 .

     This theorem should not be referenced in any proof.  Instead, use ~ ax-10
     above so that uses of ~ ax-10 can be more easily identified.  (Contributed
     by NM, 16-May-2008.)  (New usage is discouraged.) $)
  ax10 $p |- ( A. x x = y -> A. y y = x ) $=
    ( weq wal ax-10o pm2.43i equcomi alimi syl ) ABCZADZJBDZBACZBDKLJABEFJMBABG
    HI $.

  $( All variables are effectively bound in an identical variable specifier.
     (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 3-Feb-2015.) $)
  hbae $p |- ( A. x x = y -> A. z A. x x = y ) $=
    ( cv wceq wal wi ax12or ax10o alequcoms pm2.43i syl5 ax-4 imim1i jaoi ax-mp
    wo sps a5i ax-7 syl ) ADZBDZEZAFZUDCFZAFUECFUDUFACDZUBECFZUGUCECFZUDUFGZCFZ
    QZQUEUFGZABCHUHUMULUMACUDACIJUIUMUKUMBCUEUDBFZUCUGEBFUFUEUNUDABIKUDBCILJUJU
    MCUEUDUFUDAMNROOPSUDACTUA $.

  $( All variables are effectively bound in an identical variable specifier.
     (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  nfae $p |- F/ z A. x x = y $=
    ( weq wal hbae nfi ) ABDAECABCFG $.

  ${
    hbalequs.1 $e |- ( A. z A. x x = y -> ph ) $.
    $( Rule that applies ~ hbae to antecedent.  (Contributed by NM,
       5-Aug-1993.) $)
    hbaes $p |- ( A. x x = y -> ph ) $=
      ( weq wal hbae syl ) BCFBGZJDGABCDHEI $.
  $}

  $( All variables are effectively bound in a distinct variable specifier.
     Lemma L19 in [Megill] p. 446 (p. 14 of the preprint).  (Contributed by NM,
     5-Aug-1993.) $)
  hbnae $p |- ( -. A. x x = y -> A. z -. A. x x = y ) $=
    ( weq wal hbae hbn ) ABDAECABCFG $.

  $( All variables are effectively bound in a distinct variable specifier.
     (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  nfnae $p |- F/ z -. A. x x = y $=
    ( weq wal nfae nfn ) ABDAECABCFG $.

  ${
    hbnalequs.1 $e |- ( A. z -. A. x x = y -> ph ) $.
    $( Rule that applies ~ hbnae to antecedent.  (Contributed by NM,
       5-Aug-1993.) $)
    hbnaes $p |- ( -. A. x x = y -> ph ) $=
      ( weq wal wn hbnae syl ) BCFBGHZKDGABCDIEJ $.
  $}

  ${
    naecoms.1 $e |- ( -. A. x x = y -> ph ) $.
    $( A commutation rule for distinct variable specifiers.  (Contributed by
       NM, 2-Jan-2002.) $)
    naecoms $p |- ( -. A. y y = x -> ph ) $=
      ( cv wceq wal wn ax-10 con3i syl ) CEZBEZFCGZHMLFBGZHAONBCIJDK $.
  $}

  $( Lemma used in proofs of substitution properties.  (Contributed by NM,
     5-Aug-1993.)  (Proof shortened by Mario Carneiro, 20-May-2014.) $)
  equs4 $p |- ( A. x ( x = y -> ph ) -> E. x ( x = y /\ ph ) ) $=
    ( cv wceq wi wal wa wex a9e 19.29 mpan2 ancl imp eximi syl ) BDCDEZAFZBGZRQ
    HZBIZQAHZBISQBIUABCJRQBKLTUBBRQUBQAMNOP $.

  ${
    equsalh.1 $e |- ( ps -> A. x ps ) $.
    equsalh.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful equivalence related to substitution.  New proofs should use
       ~ equsal instead.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by
       Andrew Salmon, 12-Aug-2011.)  (New usage is discouraged.) $)
    equsalh $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal 19.3h syl6bbr pm5.74i albii a1d alrimih ax9o impbii bitr4i )
      CDGZAHZCISBCIZHZCIZBTUBCSAUASABUAFBCEJKLMBUCBUBCEBUASENOBCDPQR $.
  $}

  ${
    equsal.1 $e |- F/ x ps $.
    equsal.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful equivalence related to substitution.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Andrew Salmon, 12-Aug-2011.)  (Revised
       by Mario Carneiro, 3-Oct-2016.)  (Proof shortened by Wolf Lammen,
       5-Feb-2018.) $)
    equsal $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal wex 19.23 pm5.74i albii a9e a1bi 3bitr4i ) CDGZBHZCIQCJZBHQA
      HZCIBQBCEKTRCQABFLMSBCDNOP $.
  $}

  ${
    equsex.1 $e |- ( ps -> A. x ps ) $.
    equsex.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful equivalence related to substitution.  (Contributed by NM,
       5-Aug-1993.)  (Revised by NM, 3-Feb-2015.) $)
    equsex $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( cv wceq wa wex biimpa exlimih a9e idd biimprcd jcad eximdh mpi impbii )
      CGDGHZAIZCJZBUABCETABFKLBTCJUBCDMBTUACEBTTABTNTABFOPQRS $.
  $}

  ${
    equsexd.1 $e |- ( ph -> A. x ph ) $.
    equsexd.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    equsexd.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction form of ~ equsex .  (Contributed by Jim Kingdon,
       29-Dec-2017.) $)
    equsexd $p |- ( ph -> ( E. x ( x = y /\ ps ) <-> ch ) ) $=
      ( cv wceq wa wex wb wi bi1 imim2i 3syl wal a1i imp pm3.31 exlimd2 a9e jca
      prth syl 19.26 syl6ibr anabsi5 idd bi2 pm2.04 jcad eximdh mpi ex impbid )
      ADIEIJZBKZDLZCAUSCDFGAURBCMZNZURBCNZNUSCNHVAVCURBCOPURBCUAQUBACUTACKZURDL
      UTDEUCVDURUSDACVDDRZAVDADRZCDRZKZVEAAVFNZCVGNZKVDVHNAVIVJVIAFSGUDAVFCVGUE
      UFACDUGUHUIVDURURBACURURNZCVKNACURUJSTACURBNZAVBURCBNZNCVLNHVAVMURBCUKPUR
      CBULQTUMUNUOUPUQ $.
  $}

  ${
    dral1.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 24-Nov-1994.) $)
    dral1 $p |- ( A. x x = y -> ( A. x ph <-> A. y ps ) ) $=
      ( weq wal hbae biimpd alimdh ax10o syld biimprd wi alequcoms impbid ) CDF
      CGZACGZBDGZQRBCGSQABCCDCHQABEIJBCDKLQSADGZRQBADCDDHQABEMJTRNDCADCKOLP $.
  $}

  ${
    dral2.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 27-Feb-2005.) $)
    dral2 $p |- ( A. x x = y -> ( A. z ph <-> A. z ps ) ) $=
      ( weq wal hbae albidh ) CDGCHABECDEIFJ $.
  $}

  ${
    drex2.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 27-Feb-2005.) $)
    drex2 $p |- ( A. x x = y -> ( E. z ph <-> E. z ps ) ) $=
      ( weq wal hbae exbidh ) CDGCHABECDEIFJ $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 4-Oct-2016.) $)
    drnf1 $p |- ( A. x x = y -> ( F/ x ph <-> F/ y ps ) ) $=
      ( weq wal wi wnf dral1 imbi12d df-nf 3bitr4g ) CDFCGZAACGZHZCGBBDGZHZDGAC
      IBDIPRCDNABOQEABCDEJKJACLBDLM $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 4-Oct-2016.) $)
    drnf2 $p |- ( A. x x = y -> ( F/ z ph <-> F/ z ps ) ) $=
      ( weq wal wi wnf dral2 imbi12d df-nf 3bitr4g ) CDGCHZAAEHZIZEHBBEHZIZEHAE
      JBEJQSCDEOABPRFABCDEFKLKAEMBEMN $.
  $}

  $( Closed theorem form of ~ spim .  (Contributed by NM, 15-Jan-2008.)
     (New usage is discouraged.) $)
  spimth $p |- ( A. x ( ( ps -> A. x ps ) /\ ( x = y -> ( ph -> ps ) ) ) ->
              ( A. x ph -> ps ) ) $=
    ( wal wi weq wa imim2 imim2d imp com23 al2imi ax9o syl6 ) BBCEZFZCDGZABFZFZ
    HZCEACERPFZCEBUAAUBCUARAPQTRAPFZFQSUCRBPAIJKLMBCDNO $.

  $( Closed theorem form of ~ spim .  (Contributed by NM, 15-Jan-2008.)
     (Revised by Mario Carneiro, 17-Oct-2016.)  (Proof shortened by Wolf
     Lammen, 24-Feb-2018.) $)
  spimt $p |- ( ( F/ x ps /\ A. x ( x = y -> ( ph -> ps ) ) ) ->
              ( A. x ph -> ps ) ) $=
    ( cv wceq wi wal wex wnf a9e exim mpi 19.35-1 syl 19.9t biimpd sylan9r ) CE
    DEFZABGZGCHZACHZBCIZBCJZBUATCIZUBUCGUASCIUECDKSTCLMABCNOUDUCBBCPQR $.

  ${
    spimh.1 $e |- ( ps -> A. x ps ) $.
    spimh.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization, using implicit substitition.  Compare Lemma 14 of
       [Tarski] p. 70.  The ~ spim series of theorems requires that only one
       direction of the substitution hypothesis hold.  (Contributed by NM,
       5-Aug-1993.)  (Revised by NM, 8-May-2008.)
       (New usage is discouraged.) $)
    spimh $p |- ( A. x ph -> ps ) $=
      ( wal weq wi syl6com alimi ax9o syl ) ACGCDHZBCGZIZCGBAPCNABOFEJKBCDLM $.
  $}

  ${
    spim.1 $e |- F/ x ps $.
    spim.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization, using implicit substitution.  Compare Lemma 14 of
       [Tarski] p. 70.  The ~ spim series of theorems requires that only one
       direction of the substitution hypothesis hold.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 3-Oct-2016.)  (Proof rewritten
       by Jim Kingdon, 10-Jun-2018.) $)
    spim $p |- ( A. x ph -> ps ) $=
      ( nfri spimh ) ABCDBCEGFH $.
  $}

  ${
    spimeh.1 $e |- ( ph -> A. x ph ) $.
    spimeh.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Existential introduction, using implicit substitition.  Compare Lemma 14
       of [Tarski] p. 70.  (Contributed by NM, 7-Aug-1994.)  (Revised by NM,
       3-Feb-2015.)  (New usage is discouraged.) $)
    spimeh $p |- ( ph -> E. x ps ) $=
      ( cv wceq wex a9e com12 eximdh mpi ) ACGDGHZCIBCICDJANBCENABFKLM $.
  $}

  ${
    spimed.1 $e |- ( ch -> F/ x ph ) $.
    spimed.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Deduction version of ~ spime .  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 3-Oct-2016.)  (Proof shortened by Wolf
       Lammen, 19-Feb-2018.) $)
    spimed $p |- ( ch -> ( ph -> E. x ps ) ) $=
      ( wal wex nfrd weq wi a9e eximii 19.35i syl6 ) CAADHBDICADFJABDDEKABLDDEM
      GNOP $.
  $}

  ${
    spime.1 $e |- F/ x ph $.
    spime.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Existential introduction, using implicit substitution.  Compare Lemma 14
       of [Tarski] p. 70.  (Contributed by NM, 7-Aug-1994.)  (Revised by Mario
       Carneiro, 3-Oct-2016.)  (Proof shortened by Wolf Lammen, 6-Mar-2018.) $)
    spime $p |- ( ph -> E. x ps ) $=
      ( wex wi wtru wnf a1i spimed trud ) ABCGHABICDACJIEKFLM $.
  $}

  ${
    cbv3.1 $e |- F/ y ph $.
    cbv3.2 $e |- F/ x ps $.
    cbv3.3 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       12-May-2018.) $)
    cbv3 $p |- ( A. x ph -> A. y ps ) $=
      ( wal nfal spim alrimi ) ACHBDADCEIABCDFGJK $.
  $}

  ${
    cbv3h.1 $e |- ( ph -> A. y ph ) $.
    cbv3h.2 $e |- ( ps -> A. x ps ) $.
    cbv3h.3 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.)  (Proof shortened by Wolf Lammen, 12-May-2018.) $)
    cbv3h $p |- ( A. x ph -> A. y ps ) $=
      ( nfi cbv3 ) ABCDADEHBCFHGI $.
  $}

  ${
    cbv1.1 $e |- F/ x ph $.
    cbv1.2 $e |- F/ y ph $.
    cbv1.3 $e |- ( ph -> F/ y ps ) $.
    cbv1.4 $e |- ( ph -> F/ x ch ) $.
    cbv1.5 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       Revised to format hypotheses to common style.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 3-Oct-2016.)  (Revised by Wolf
       Lammen, 13-May-2018.) $)
    cbv1 $p |- ( ph -> ( A. x ps -> A. y ch ) ) $=
      ( wal wi nfim1 weq com12 a2d cbv3 19.21 3imtr3i pm2.86i ) ABDKZCEKZABLZDK
      ACLZEKAUALAUBLUCUDDEABEGHMACDFIMDENZABCAUEBCLJOPQABDFRACEGRST $.
  $}

  ${
    cbv1h.1 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    cbv1h.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    cbv1h.3 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       13-May-2018.) $)
    cbv1h $p |- ( A. x A. y ph -> ( A. x ps -> A. y ch ) ) $=
      ( wal nfa1 nfa2 wi sp sps syl nfd weq cbv1 ) AEIZDIZBCDESDJZAEDKZTBEUBTAB
      BEILSADAEMNZFOPTCDUATACCDILUCGOPTADEQBCLLUCHOR $.
  $}

  ${
    cbv2h.1 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    cbv2h.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    cbv2h.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.) $)
    cbv2h $p |- ( A. x A. y ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal weq wb wi bi1 syl6 cbv1h equcomi bi2 syl56 a7s impbid ) AEIDIBDIZCE
      IZABCDEFGADEJZBCKZBCLHBCMNOAUBUALEDACBEDGFEDJUCAUDCBLEDPHBCQROST $.
  $}

  ${
    cbv2.1 $e |- F/ x ph $.
    cbv2.2 $e |- F/ y ph $.
    cbv2.3 $e |- ( ph -> F/ y ps ) $.
    cbv2.4 $e |- ( ph -> F/ x ch ) $.
    cbv2.5 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       Revised to align format of hypotheses to common style.  (Contributed by
       NM, 5-Aug-1993.)  (Revised by Mario Carneiro, 3-Oct-2016.)  (Revised by
       Wolf Lammen, 13-May-2018.) $)
    cbv2 $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal wb nfri nfal syl nfrd cbv2h ) AAEKZDKZBDKCEKLARSAEGMRDADEFNMOABCDEA
      BEHPACDIPJQO $.
  $}

  ${
    cbvalh.1 $e |- ( ph -> A. y ph ) $.
    cbvalh.2 $e |- ( ps -> A. x ps ) $.
    cbvalh.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    cbvalh $p |- ( A. x ph <-> A. y ps ) $=
      ( wal weq biimpd cbv3h wb equcoms biimprd impbii ) ACHBDHABCDEFCDIABGJKBA
      DCFEDCIABABLCDGMNKO $.
  $}

  ${
    cbval.1 $e |- F/ y ph $.
    cbval.2 $e |- F/ x ps $.
    cbval.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       3-Oct-2016.) $)
    cbval $p |- ( A. x ph <-> A. y ps ) $=
      ( nfri cbvalh ) ABCDADEHBCFHGI $.
  $}

  ${
    cbvexh.1 $e |- ( ph -> A. y ph ) $.
    cbvexh.2 $e |- ( ps -> A. x ps ) $.
    cbvexh.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       3-Feb-2015.) $)
    cbvexh $p |- ( E. x ph <-> E. y ps ) $=
      ( wex hbex cv wceq wa wb bicomd equcoms equsex simpr eximi sylbir exlimih
      impbii ) ACHZBDHZAUCCBCDFIADJZCJZKZBLZDHUCBADCEBAMCDUEUDKZABGNOPUGBDUFBQR
      STBUBDADCEIBUHALZCHUBABCDFGPUIACUHAQRSTUA $.
  $}

  ${
    cbvex.1 $e |- F/ y ph $.
    cbvex.2 $e |- F/ x ps $.
    cbvex.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.) $)
    cbvex $p |- ( E. x ph <-> E. y ps ) $=
      ( nfri cbvexh ) ABCDADEHBCFHGI $.
  $}

  ${
    chvar.1 $e |- F/ x ps $.
    chvar.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    chvar.3 $e |- ph $.
    $( Implicit substitution of ` y ` for ` x ` into a theorem.  (Contributed
       by Raph Levien, 9-Jul-2003.)  (Revised by Mario Carneiro,
       3-Oct-2016.) $)
    chvar $p |- ps $=
      ( weq biimpd spim mpg ) ABCABCDECDHABFIJGK $.
  $}

  $( A variable introduction law for equality.  Lemma 15 of [Monk2] p. 109,
     however we do not require ` z ` to be distinct from ` x ` and ` y `
     (making the proof longer).  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 25-May-2011.) $)
  equvini $p |- ( x = y -> E. z ( x = z /\ z = y ) ) $=
    ( cv wceq wal wi wo wex ax12or equcomi alimi a9e jctir a1d 19.29 syl6 ax-mp
    wa jaoi eximi a1ii anc2ri 19.29r ax-8 anc2li equcoms com12 exim syl mpi sps
    imim2i ) CDZADZEZCFZUNBDZEZCFZUOUREZVACFZGZCFZHZHVAUOUNEZUSSZCIZGZABCJUQVIV
    EUQVAVFCFZUSCIZSZVHUQVLVAUQVJVKUPVFCCAKZLCBMNOVFUSCPQUTVIVDUTVAVFCIZUTSVHUT
    VAVNUTVAVNUPCIZVNCAMZUPVFCVMUARUBUCVFUSCUDQVCVICVBVHVAVBVOVHVPVBUPVGGZCFVOV
    HGVAVQCUPVAVGVAVGGACVFVAUSACBUEUFUGUHLUPVGCUIUJUKUMULTTR $.

  $( A variable elimination law for equality with no distinct variable
     requirements.  (Compare ~ equvini .)  (Contributed by NM, 1-Mar-2013.)
     (Revised by NM, 3-Feb-2015.) $)
  equveli $p |- ( A. z ( z = x <-> z = y ) -> x = y ) $=
    ( cv wb wal wi wa albiim wo ax12or equequ1 imbi12d sps equid syl6bi adantrd
    wceq ax-4 jaoi dral2 a1bi biimpri dral1 mpi equcomi syl adantld hbequid a1i
    hba1 hbimd equtr ax-8 imim12d ax-gen 19.26 spimth sylbir sylancl mpii ax-mp
    a5i sylbi ) CDZADZRZVEBDZRZECFVGVIGZCFZVIVGGZCFZHZVFVHRZVGVICIVGCFZVICFZVOV
    OCFGZCFZJZJVNVOGZABCKVPWAVTVPVKVOVMVPVKVFVFRZVOGZCFZVOVJWCCACVGVJWCECVGVGWB
    VIVOCAALCABLMNUAWCVOCVOWCWBVOAOZUBUCNPQVQWAVSVQVMVOVKVQVMVHVHRZVHVFRZGZBFZV
    OVLWHCBVIVLWHECVIVIWFVGWGCBBLCBALMNUDWIWGVOWIWFWGBOWHBSUEBAUFUGPUHVSVKVOVMV
    SVKWBVOWEVSWCWDGZCFZVGVJWCGGZCFZVKWCGZVRWJCVSWBVOCVRCUKWBWBCFGVSACUIUJVRCSU
    LVCWLCVGWBVGVIVOCAAUMCABUNUOUPWKWMHWJWLHCFWNWJWLCUQVJWCCAURUSUTVAQTTVBVD $.

  ${
    nfald.1 $e |- F/ y ph $.
    nfald.2 $e |- ( ph -> F/ x ps ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` A. y ph ` .
       (Contributed by Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf
       Lammen, 6-Jan-2018.) $)
    nfald $p |- ( ph -> F/ x A. y ps ) $=
      ( wnf wal nfri alrimih nfnf1 nfal hba1 sp nfrd hbald nfd syl ) ABCGZDHZBD
      HZCGASDADEIFJTUACSCDBCKLTBCDSDMTBCSDNOPQR $.

    $( If ` x ` is not free in ` ph ` , it is not free in ` E. y ph ` .
       (Contributed by Mario Carneiro, 24-Sep-2016.)  (Proof rewritten by Jim
       Kingdon, 7-Feb-2018.) $)
    nfexd $p |- ( ph -> F/ x E. y ps ) $=
      ( wex wal wnf nfri df-nf sylib alrimih alcom exim alimi syl 19.12 imim2i
      wi sylibr ) ABDGZUBCHZTZCHZUBCIAUBBCHZDGZTZCHZUEABUFTZDHZCHZUIAUJCHZDHULA
      UMDADEJABCIUMFBCKLMUJDCNLUKUHCBUFDOPQUHUDCUGUCUBBDCRSPQUBCKUA $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Substitution (without distinct variables)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [ $. $( Left bracket $)
  $c / $. $( Division. $)
  $c ] $.  $( Right bracket $)

  $( Extend wff definition to include proper substitution (read "the wff that
     results when ` y ` is properly substituted for ` x ` in wff ` ph ` ").
     (Contributed by NM, 24-Jan-2006.) $)
  wsb $a wff [ y / x ] ph $.

  $( Define proper substitution.  Remark 9.1 in [Megill] p. 447 (p. 15 of the
     preprint).  For our notation, we use ` [ y / x ] ph ` to mean "the wff
     that results when ` y ` is properly substituted for ` x ` in the wff
     ` ph ` ."  We can also use ` [ y / x ] ph ` in place of the "free for"
     side condition used in traditional predicate calculus; see, for example,
     ~ stdpc4 .

     Our notation was introduced in Haskell B. Curry's _Foundations of
     Mathematical Logic_ (1977), p. 316 and is frequently used in textbooks of
     lambda calculus and combinatory logic.  This notation improves the common
     but ambiguous notation, " ` ph ( y ) ` is the wff that results when ` y `
     is properly substituted for ` x ` in ` ph ( x ) ` ."  For example, if the
     original ` ph ( x ) ` is ` x = y ` , then ` ph ( y ) ` is ` y = y ` , from
     which we obtain that ` ph ( x ) ` is ` x = x ` .  So what exactly does
     ` ph ( x ) ` mean?  Curry's notation solves this problem.

     In most books, proper substitution has a somewhat complicated recursive
     definition with multiple cases based on the occurrences of free and bound
     variables in the wff.  Instead, we use a single formula that is exactly
     equivalent and gives us a direct definition.  We later prove that our
     definition has the properties we expect of proper substitution (see
     theorems ~ sbequ , ~ sbcom2 and ~ sbid2v ).

     Note that our definition is valid even when ` x ` and ` y ` are replaced
     with the same variable, as ~ sbid shows.  We achieve this by having ` x `
     free in the first conjunct and bound in the second.  We can also achieve
     this by using a dummy variable, as the alternate definition ~ dfsb7 shows
     (which some logicians may prefer because it doesn't mix free and bound
     variables).  Another alternate definition which uses a dummy variable is
     ~ dfsb7a .

     When ` x ` and ` y ` are distinct, we can express proper substitution with
     the simpler expressions of ~ sb5 and ~ sb6 .

     In classical logic, another possible definition is
     ` ( x = y /\ ph ) \/ A. x ( x = y -> ph ) ` but we do not have an
     intuitionistic proof that this is equivalent.

     There are no restrictions on any of the variables, including what
     variables may occur in wff ` ph ` .  (Contributed by NM, 5-Aug-1993.) $)
  df-sb $a |- ( [ y / x ] ph <->
              ( ( x = y -> ph ) /\ E. x ( x = y /\ ph ) ) ) $.

  ${
    sbimi.1 $e |- ( ph -> ps ) $.
    $( Infer substitution into antecedent and consequent of an implication.
       (Contributed by NM, 25-Jun-1998.) $)
    sbimi $p |- ( [ y / x ] ph -> [ y / x ] ps ) $=
      ( weq wi wa wex wsb imim2i anim2i eximi anim12i df-sb 3imtr4i ) CDFZAGZQA
      HZCIZHQBGZQBHZCIZHACDJBCDJRUATUCABQEKSUBCABQELMNACDOBCDOP $.
  $}

  ${
    sbbii.1 $e |- ( ph <-> ps ) $.
    $( Infer substitution into both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.) $)
    sbbii $p |- ( [ y / x ] ph <-> [ y / x ] ps ) $=
      ( wsb biimpi sbimi biimpri impbii ) ACDFBCDFABCDABEGHBACDABEIHJ $.
  $}

  $( One direction of a simplified definition of substitution.  (Contributed by
     NM, 5-Aug-1993.) $)
  sb1 $p |- ( [ y / x ] ph -> E. x ( x = y /\ ph ) ) $=
    ( wsb weq wi wa wex df-sb simprbi ) ABCDBCEZAFKAGBHABCIJ $.

  $( One direction of a simplified definition of substitution.  (Contributed by
     NM, 5-Aug-1993.) $)
  sb2 $p |- ( A. x ( x = y -> ph ) -> [ y / x ] ph ) $=
    ( weq wi wal wa wex wsb ax-4 equs4 df-sb sylanbrc ) BCDZAEZBFONAGBHABCIOBJA
    BCKABCLM $.

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-1993.) $)
  sbequ1 $p |- ( x = y -> ( ph -> [ y / x ] ph ) ) $=
    ( weq wsb wa wi wex pm3.4 19.8a df-sb sylanbrc ex ) BCDZAABCEZNAFZNAGPBHONA
    IPBJABCKLM $.

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-1993.) $)
  sbequ2 $p |- ( x = y -> ( [ y / x ] ph -> ph ) ) $=
    ( wsb weq wi wa wex df-sb simpl com12 syl5bi ) ABCDBCEZAFZMAGBHZGZMAABCIPMA
    NOJKL $.

  $( One of the two equality axioms of standard predicate calculus, called
     substitutivity of equality.  (The other one is ~ stdpc6 .)  Translated to
     traditional notation, it can be read:  " ` x = y -> ( ph ( x ` ,
     ` x ) -> ph ( x ` , ` y ) ) ` , provided that ` y ` is free for ` x ` in
     ` ph ( x ` , ` y ) ` ."  Axiom 7 of [Mendelson] p. 95.  (Contributed by
     NM, 15-Feb-2005.) $)
  stdpc7 $p |- ( x = y -> ( [ x / y ] ph -> ph ) ) $=
    ( wsb wi sbequ2 equcoms ) ACBDAECBACBFG $.

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-1993.) $)
  sbequ12 $p |- ( x = y -> ( ph <-> [ y / x ] ph ) ) $=
    ( weq wsb sbequ1 sbequ2 impbid ) BCDAABCEABCFABCGH $.

  $( An equality theorem for substitution.  (Contributed by NM, 6-Oct-2004.)
     (Proof shortened by Andrew Salmon, 21-Jun-2011.) $)
  sbequ12r $p |- ( x = y -> ( [ x / y ] ph <-> ph ) ) $=
    ( wsb wb weq sbequ12 bicomd equcoms ) ACBDZAECBCBFAJACBGHI $.

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-1993.) $)
  sbequ12a $p |- ( x = y -> ( [ y / x ] ph <-> [ x / y ] ph ) ) $=
    ( weq wsb sbequ12 wb equcoms bitr3d ) BCDAABCEACBEZABCFAJGCBACBFHI $.

  $( An identity theorem for substitution.  Remark 9.1 in [Megill] p. 447 (p.
     15 of the preprint).  (Contributed by NM, 5-Aug-1993.) $)
  sbid $p |- ( [ x / x ] ph <-> ph ) $=
    ( wsb weq wb equid sbequ12 ax-mp bicomi ) AABBCZBBDAJEBFABBGHI $.

  $( The specialization axiom of standard predicate calculus.  It states that
     if a statement ` ph ` holds for all ` x ` , then it also holds for the
     specific case of ` y ` (properly) substituted for ` x ` .  Translated to
     traditional notation, it can be read:  " ` A. x ph ( x ) -> ph ( y ) ` ,
     provided that ` y ` is free for ` x ` in ` ph ( x ) ` ."  Axiom 4 of
     [Mendelson] p. 69.  (Contributed by NM, 5-Aug-1993.) $)
  stdpc4 $p |- ( A. x ph -> [ y / x ] ph ) $=
    ( wal weq wi wsb ax-1 alimi sb2 syl ) ABDBCEZAFZBDABCGAMBALHIABCJK $.

  ${
    sbh.1 $e |- ( ph -> A. x ph ) $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 17-Oct-2004.) $)
    sbh $p |- ( [ y / x ] ph <-> ph ) $=
      ( wsb weq wex wa sb1 19.41h sylib simprd wal stdpc4 syl impbii ) ABCEZAQB
      CFZBGZAQRAHBGSAHABCIRABDJKLAABMQDABCNOP $.
  $}

  ${
    sbf.1 $e |- F/ x ph $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       4-Oct-2016.) $)
    sbf $p |- ( [ y / x ] ph <-> ph ) $=
      ( nfri sbh ) ABCABDEF $.
  $}

  $( Substitution has no effect on a bound variable.  (Contributed by NM,
     1-Jul-2005.) $)
  sbf2 $p |- ( [ y / x ] A. x ph <-> A. x ph ) $=
    ( wal nfa1 sbf ) ABDBCABEF $.

  ${
    sb6x.1 $e |- ( ph -> A. x ph ) $.
    $( Equivalence involving substitution for a variable not free.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       12-Aug-2011.) $)
    sb6x $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal sbh biidd equsalh bitr4i ) ABCEABCFZAGBHABCDIAABCDMAJKL
      $.
  $}

  ${
    nfs1f.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfs1f $p |- F/ x [ y / x ] ph $=
      ( wsb nfri sbh nfxfr ) ABCEABABCABDFGDH $.
  $}

  ${
    hbs1f.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` .
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    hbs1f $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb sbh hbxfrbi ) ABCEABABCDFDG $.
  $}

  $( Substitution does not change an identical variable specifier.
     (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 21-Dec-2004.) $)
  sbequ5 $p |- ( [ w / z ] A. x x = y <-> A. x x = y ) $=
    ( weq wal nfae sbf ) ABEAFCDABCGH $.

  $( Substitution does not change a distinctor.  (Contributed by NM,
     5-Aug-1993.)  (Revised by NM, 14-May-2005.) $)
  sbequ6 $p |- ( [ w / z ] -. A. x x = y <-> -. A. x x = y ) $=
    ( weq wal wn nfnae sbf ) ABEAFGCDABCHI $.

  ${
    sbt.1 $e |- ph $.
    $( A substitution into a theorem remains true.  (See ~ chvar and ~ chvarv
       for versions using implicit substitition.)  (Contributed by NM,
       21-Jan-2004.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    sbt $p |- [ y / x ] ph $=
      ( wsb nfth sbf mpbir ) ABCEADABCABDFGH $.
  $}

  $( Substitution applied to an atomic wff.  (Contributed by NM,
     5-Aug-1993.) $)
  equsb1 $p |- [ y / x ] x = y $=
    ( weq wi wsb sb2 id mpg ) ABCZIDIABEAIABFIGH $.

  $( Substitution applied to an atomic wff.  (Contributed by NM,
     5-Aug-1993.) $)
  equsb2 $p |- [ y / x ] y = x $=
    ( weq wi wsb sb2 equcomi mpg ) ABCBACZDIABEAIABFABGH $.

  ${
    sbiedh.1 $e |- ( ph -> A. x ph ) $.
    sbiedh.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    sbiedh.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Conversion of implicit substitution to explicit substitution (deduction
       version of ~ sbieh ).  New proofs should use ~ sbied instead.
       (Contributed by NM, 30-Jun-1994.)  (Proof shortened by Andrew Salmon,
       25-May-2011.)  (New usage is discouraged.) $)
    sbiedh $p |- ( ph -> ( [ y / x ] ps <-> ch ) ) $=
      ( wsb wex weq wa sb1 wb wi bi1 syl6 impd syld wal eximdh 19.9hd bi2 com23
      syl5 alimdh sb2 impbid ) ABDEIZCAUICDJZCUIDEKZBLZDJAUJBDEMAULCDFAUKBCAUKB
      CNZBCOHBCPQRUAUECADFGUBSACCDTZUIGAUNUKBOZDTUIACUODFAUKCBAUKUMCBOHBCUCQUDU
      FBDEUGQSUH $.
  $}

  ${
    sbied.1 $e |- F/ x ph $.
    sbied.2 $e |- ( ph -> F/ x ch ) $.
    sbied.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Conversion of implicit substitution to explicit substitution (deduction
       version of ~ sbie ).  (Contributed by NM, 30-Jun-1994.)  (Revised by
       Mario Carneiro, 4-Oct-2016.) $)
    sbied $p |- ( ph -> ( [ y / x ] ps <-> ch ) ) $=
      ( nfri nfrd sbiedh ) ABCDEADFIACDGJHK $.
  $}

  ${
    $d x ph $.  $d x ch $.
    sbiedv.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    $( Conversion of implicit substitution to explicit substitution (deduction
       version of ~ sbie ).  (Contributed by NM, 7-Jan-2017.) $)
    sbiedv $p |- ( ph -> ( [ y / x ] ps <-> ch ) ) $=
      ( nfv nfvd weq wb ex sbied ) ABCDEADGACDHADEIBCJFKL $.
  $}

  ${
    sbieh.1 $e |- ( ps -> A. x ps ) $.
    sbieh.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit substitution.  New
       proofs should use ~ sbie instead.  (Contributed by NM, 30-Jun-1994.)
       (New usage is discouraged.) $)
    sbieh $p |- ( [ y / x ] ph <-> ps ) $=
      ( wi wsb wb id hbth wal a1i weq sbiedh ax-mp ) AAGZACDHBIAJZQABCDQCRKBBCL
      GQEMCDNABIGQFMOP $.
  $}

  ${
    sbie.1 $e |- F/ x ps $.
    sbie.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit substitution.
       (Contributed by NM, 30-Jun-1994.)  (Revised by Mario Carneiro,
       4-Oct-2016.)  (Revised by Wolf Lammen, 30-Apr-2018.) $)
    sbie $p |- ( [ y / x ] ph <-> ps ) $=
      ( nfri sbieh ) ABCDBCEGFH $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                  Theorems using axiom ax-11
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A property related to substitution that unlike ~ equs5 doesn't require a
     distinctor antecedent.  (Contributed by NM, 2-Feb-2007.) $)
  equs5a $p |- ( E. x ( x = y /\ A. y ph ) -> A. x ( x = y -> ph ) ) $=
    ( weq wal wa wi hba1 ax-11 imp exlimih ) BCDZACEZFLAGZBEZBNBHLMOABCIJK $.

  $( A property related to substitution that unlike ~ equs5 doesn't require a
     distinctor antecedent.  (Contributed by NM, 2-Feb-2007.)  (Revised by NM,
     3-Feb-2015.) $)
  equs5e $p |- ( E. x ( x = y /\ ph ) -> A. x ( x = y -> E. y ph ) ) $=
    ( cv wceq wa wex wal wi 19.8a hbe1 syl anim2i eximi equs5a ) BDCDEZAFZBGPAC
    GZCHZFZBGPRIBHQTBASPARSACJACKLMNRBCOL $.

  $( Analogue to ~ ax-11 but for existential quantification.  (Contributed by
     Mario Carneiro and Jim Kingdon, 31-Dec-2017.)  (Proved by Mario Carneiro,
     9-Feb-2018.) $)
  ax11e $p |- ( x = y -> ( E. x ( x = y /\ ph ) -> E. y ph ) ) $=
    ( cv wceq wa wex wi equs5e 19.21bi com12 ) BDCDEZAFBGZLACGZMLNHBABCIJK $.

  $( Quantifier Substitution for existential quantifiers.  Analogue to ~ ax10o
     but for ` E. ` rather than ` A. ` .  (Contributed by Jim Kingdon,
     21-Dec-2017.) $)
  ax10oe $p |- ( A. x x = y -> ( E. x ps -> E. y ps ) ) $=
    ( cv wceq wal wex wa wi ax-ia3 alimi exim syl ax11e sps syld ) BDCDEZBFZABG
    ZQAHZBGZACGZRATIZBFSUAIQUCBQAJKATBLMQUAUBIBABCNOP $.

  ${
    drex1.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 27-Feb-2005.)  (Revised by NM, 3-Feb-2015.) $)
    drex1 $p |- ( A. x x = y -> ( E. x ph <-> E. y ps ) ) $=
      ( cv wceq wal wex wa hbae ax-4 biantrurd bitr2d exbidh wi sylbird equcomi
      ax11e sps bitr3d alequcoms impbid ) CFZDFZGZCHZACIZBDIZUGUHUFBJZCIZUIUGUJ
      ACCDCKUGABUJEUGUFBUFCLMNOUFUKUIPCBCDSTQUGUIUEUDGZAJZDIZUHUGUMBDCDDKUGAUMB
      UGULAUFULCCDRTMEUAOUNUHPZDCULUODADCSTUBQUC $.
  $}

  $( Formula-building lemma for use with the Distinctor Reduction Theorem.
     Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).  (Contributed
     by NM, 5-Aug-1993.) $)
  drsb1 $p |- ( A. x x = y -> ( [ z / x ] ph <-> [ z / y ] ph ) ) $=
    ( weq wal wi wa wex wsb wb equequ1 sps imbi1d anbi1d drex1 anbi12d 3bitr4g
    df-sb ) BCEZBFZBDEZAGZUBAHZBIZHCDEZAGZUFAHZCIZHABDJACDJUAUCUGUEUIUAUBUFATUB
    UFKBBCDLMZNUDUHBCUAUBUFAUJOPQABDSACDSR $.

  ${
    exdistrfor.1 $e |- ( A. x x = y \/ A. x F/ y ph ) $.
    $( Distribution of existential quantifiers, with a bound-variable
       hypothesis saying that ` y ` is not free in ` ph ` , but ` x ` can be
       free in ` ph ` (and there is no distinct variable condition on ` x ` and
       ` y ` ).  (Contributed by Jim Kingdon, 25-Feb-2018.) $)
    exdistrfor $p |- ( E. x E. y ( ph /\ ps ) -> E. x ( ph /\ E. y ps ) ) $=
      ( weq wal wnf wo wa wex biidd drex1 drex2 hbe1 19.9h 19.8a anim2i eximi
      wi sylbi syl6bir ax-ial 19.40 19.9t biimpd anim1d syl5 eximdh jaoi ax-mp
      sps ) CDFCGZADHZCGZIABJZDKZCKZABDKZJZCKZTZEUMVBUOUMURUPCKZCKZVAVCUQCDCUPU
      PCDUMUPLMNVDVCVAVCCUPCOPUPUTCBUSABDQRSUAUBUOUQUTCUNCUCUNUQUTTCUQADKZUSJUN
      UTABDUDUNVEAUSUNVEAADUEUFUGUHULUIUJUK $.
  $}

  $( A version of ~ sb4 that doesn't require a distinctor antecedent.
     (Contributed by NM, 2-Feb-2007.) $)
  sb4a $p |- ( [ y / x ] A. y ph -> A. x ( x = y -> ph ) ) $=
    ( wal wsb weq wa wex wi sb1 equs5a syl ) ACDZBCEBCFZMGBHNAIBDMBCJABCKL $.

  ${
    equs45f.1 $e |- ( ph -> A. y ph ) $.
    $( Two ways of expressing substitution when ` y ` is not free in ` ph ` .
       (Contributed by NM, 25-Apr-2008.) $)
    equs45f $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wa wex wi wal anim2i eximi equs5a syl equs4 impbii ) BCEZAFZBGZPAHB
      IZRPACIZFZBGSQUABATPDJKABCLMABCNO $.

    $( Equivalence for substitution when ` y ` is not free in ` ph ` .
       (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 30-Apr-2008.) $)
    sb6f $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal sbimi sb4a syl sb2 impbii ) ABCEZBCFAGBHZNACHZBCEOAPBCDI
      ABCJKABCLM $.

    $( Equivalence for substitution when ` y ` is not free in ` ph ` .
       (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 18-May-2008.) $)
    sb5f $p |- ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) $=
      ( wsb weq wi wal wa wex sb6f equs45f bitr4i ) ABCEBCFZAGBHNAIBJABCDKABCDL
      M $.
  $}

  $( One direction of a simplified definition of substitution that unlike ~ sb4
     doesn't require a distinctor antecedent.  (Contributed by NM,
     2-Feb-2007.) $)
  sb4e $p |- ( [ y / x ] ph -> A. x ( x = y -> E. y ph ) ) $=
    ( wsb weq wa wex wi wal sb1 equs5e syl ) ABCDBCEZAFBGMACGHBIABCJABCKL $.

  $( Special case of a bound-variable hypothesis builder for substitution.
     (Contributed by NM, 2-Feb-2007.) $)
  hbsb2a $p |- ( [ y / x ] A. y ph -> A. x [ y / x ] ph ) $=
    ( wal wsb weq wi sb4a sb2 a5i syl ) ACDBCEBCFAGZBDABCEZBDABCHLMBABCIJK $.

  $( Special case of a bound-variable hypothesis builder for substitution.
     (Contributed by NM, 2-Feb-2007.) $)
  hbsb2e $p |- ( [ y / x ] ph -> A. x [ y / x ] E. y ph ) $=
    ( wsb weq wex wi wal sb4e sb2 a5i syl ) ABCDBCEACFZGZBHMBCDZBHABCINOBMBCJKL
    $.

  ${
    hbsb3.1 $e |- ( ph -> A. y ph ) $.
    $( If ` y ` is not free in ` ph ` , ` x ` is not free in
       ` [ y / x ] ph ` .  (Contributed by NM, 5-Aug-1993.) $)
    hbsb3 $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb wal sbimi hbsb2a syl ) ABCEZACFZBCEJBFAKBCDGABCHI $.
  $}

  ${
    nfs1.1 $e |- F/ y ph $.
    $( If ` y ` is not free in ` ph ` , ` x ` is not free in
       ` [ y / x ] ph ` .  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfs1 $p |- F/ x [ y / x ] ph $=
      ( wsb nfri hbsb3 nfi ) ABCEBABCACDFGH $.
  $}

  ${
    sbcof2.1 $e |- ( ph -> A. x ph ) $.
    $( Version of ~ sbco where ` x ` is not free in ` ph ` .  (Contributed by
       Jim Kingdon, 28-Dec-2017.) $)
    sbcof2 $p |- ( [ y / x ] [ x / y ] ph <-> [ y / x ] ph ) $=
      ( wsb weq wi wal hbsb3 sb6f imbi2i albii bitri alimi wex 3syl wa jca sb5f
      eximi ax-11 equcomi imim1i imim2i pm2.43d syl6 a2i sylbi ax-i9 mpi ax-ial
      exim 19.9h sylib sb2 simpl 19.8a anim1i ax11e syl5 imdistani anbi2i exbii
      sb1 sylibr impbii ) ACBEZBCEZABCEZVHBCFZVJAGZBHZGZBHZVLVIVHVJCBFZAGZCHZGZ
      BHZVNVHVJVGGZBHVSVGBCACBDIZJVTVRBVGVQVJACBDJKLMVRVMBVJVQVLVJVQVJVPGZBHVLV
      PBCUAWBVKBWBVJAVPVKVJVJVOABCUBZUCUDUENUFUGNUHVNVLBOZVLVNVJBOWDBCUIVJVLBUL
      UJVLBVKBUKUMUNABCUOPVIVJVOAQZCOZQZBOZVHVIVJAQZBOZVJWJQZBOWHABCVDWIWKBWIVJ
      WJVJAUPZWIBUQRTWKWGBVJWJWFWJVJWEQZBOVJWFWIWMBWIVJWEWLVJVOAWCURRTWEBCUSUTV
      ATPVHVJVGQZBOWHVGBCWASWNWGBVGWFVJACBDSVBVCMVEVF $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
                  Predicate calculus with distinct variables
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Derive the axiom of distinct variables ax-16
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x ps $.
    spimv.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( A version of ~ spim with a distinct variable requirement instead of a
       bound variable hypothesis.  (Contributed by NM, 5-Aug-1993.) $)
    spimv $p |- ( A. x ph -> ps ) $=
      ( nfv spim ) ABCDBCFEG $.
  $}

  ${
    $v f $.
    $( Define a temporary individual variable. $)
    aev.vf $f setvar f $.
    $d f u v $.  $d f u x y $.  $d u w $.
    $( A "distinctor elimination" lemma with no restrictions on variables in
       the consequent, proved without using ~ ax-16 .  (Contributed by NM,
       8-Nov-2006.)  (Proof shortened by Andrew Salmon, 21-Jun-2011.) $)
    aev $p |- ( A. x x = y -> A. z w = v ) $=
      ( aev.vf vu weq wal hbae ax-8 alrimih equcomi syl6 alequcoms a5i alequcom
      spimv 3syl ) ABHZAIZDEHZCABCJUAFBHZFIZGEHZGIZUBUAUCFABFJTUCAFAFBKRLUDFGHZ
      FIZEGHZEIUFUCUGFUGBFBFHZUGBGBGHUJGFHUGBGFKGFMNROPUHUIEFGEJUGUIFEFEGKRLEGQ
      SUEUBGDGDEKRSL $.
  $}

  ${
    $d x y $.  $d z ph $.
    $( Theorem showing that ~ ax-16 is redundant if ~ ax-17 is included in the
       axiom system.  The important part of the proof is provided by ~ aev .

       See ~ ax16ALT for an alternate proof that does not require ~ ax-10 or
       ~ ax-12 .

       This theorem should not be referenced in any proof.  Instead, use
       ~ ax-16 below so that theorems needing ~ ax-16 can be more easily
       identified.  (Contributed by NM, 8-Nov-2006.) $)
    ax16 $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( vz weq wal wi aev wsb ax-17 sbequ12 biimpcd alimdh hbsb3 stdpc7 syl6com
      cbv3h syl ) BCEBFBDEZDFZAABFZGBCDBDHATABDIZDFUAASUBDADJZSAUBABDKLMUBADBAB
      DUCNUCADBOQPR $.
  $}

  ${
    $d x y $.
    $( Axiom of Distinct Variables.  The only axiom of predicate calculus
       requiring that variables be distinct (if we consider ~ ax-17 to be a
       metatheorem and not an axiom).  Axiom scheme C16' in [Megill] p. 448 (p.
       16 of the preprint).  It apparently does not otherwise appear in the
       literature but is easily proved from textbook predicate calculus by
       cases.  It is a somewhat bizarre axiom since the antecedent is always
       false in set theory, but nonetheless it is technically necessary as you
       can see from its uses.

       This axiom is redundant if we include ~ ax-17 ; see theorem ~ ax16 .

       This axiom is obsolete and should no longer be used.  It is proved above
       as theorem ~ ax16 .  (Contributed by NM, 5-Aug-1993.)
       (New usage is discouraged.) $)
    ax-16 $a |- ( A. x x = y -> ( ph -> A. x ph ) ) $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.) $)
    dveeq2 $p |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $=
      ( weq wal wn wi wo ax-i12 orcom orbi2i mpbi orass mpbir orel2 mpi ax16 sp
      jaoi syl ) ABDAEZFZACDAEZCBDZUDAEGZAEZHZUEUBUGUAHZUGUHUCUFUAHZHZUCUAUFHZH
      UJCBAIUKUIUCUAUFJKLUCUFUAMNUAUGOPUCUEUFUDACQUEARST $.
  $}

  ${
    $d z x $.
    $( Quantifier introduction when one pair of variables is distinct.  Like
       ~ dveeq2 but connecting ` A. x x = y ` by a disjunction rather than
       negation and implication makes the theorem stronger in intuitionistic
       logic.  (Contributed by Jim Kingdon, 1-Feb-2018.) $)
    dveeq2or $p |- ( A. x x = y \/ F/ x z = y ) $=
      ( weq wal wi wnf ax-i12 orass mpbir pm1.4 orim1i ax-mp mpbi ax16 a5i jaoi
      wo id orim2i df-nf biimpri ) ABDAEZCBDZUDAEFZAEZRZUCUDAGZRUCACDZAEZUFRZRZ
      UGUCUJRZUFRZULUJUCRZUFRZUNUPUJUGRCBAHUJUCUFIJUOUMUFUJUCKLMUCUJUFINUKUFUCU
      JUFUFUIUEAUDACOPUFSQTMUFUHUCUHUFUDAUAUBTM $.
  $}

  ${
    $d x z $.  $d y z $.
    dvelimfALT2.1 $e |- ( ph -> A. x ph ) $.
    dvelimfALT2.2 $e |- ( ps -> A. z ps ) $.
    dvelimfALT2.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    dvelimfALT2.4 $e |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $.
    $( Proof of ~ dvelimf using ~ dveeq2 (shown as the last hypothesis) instead
       of ~ ax-12 .  This shows that ~ ax-12 could be replaced by ~ dveeq2 (the
       last hypothesis).  (Contributed by Andrew Salmon, 21-Jul-2011.) $)
    dvelimfALT2 $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( cv wceq wal wn wi ax-17 hbn1 a1i hbimd hbald equsalh albii 3imtr3g ) CJ
      DJZKZCLMZEJUCKZANZELZUHCLBBCLUEUGCEUEEOUEUFACUDCPIAACLNUEFQRSABEDGHTZUHBC
      UIUAUB $.
  $}

  ${
    $d z x $.
    $( A lemma for proving conditionless ZFC axioms.  (Contributed by NM,
       8-Jan-2002.) $)
    nd5 $p |- ( -. A. y y = x -> ( z = y -> A. x z = y ) ) $=
      ( cv wceq wal wi dveeq2 nalequcoms ) CDBDEZJAFGABABCHI $.
  $}

  ${
    $d x ch $.  $d x ph $.
    exlimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       27-Apr-1994.) $)
    exlimdv $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( ax-17 exlimdh ) ABCDADFCDFEG $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax11v2.1 $e |- ( x = z -> ( ph -> A. x ( x = z -> ph ) ) ) $.
    $( Recovery of ~ ax11o from ~ ax11v without using ~ ax-11 .  The hypothesis
       is even weaker than ~ ax11v , with ` z ` both distinct from ` x ` _and_
       not occurring in ` ph ` .  Thus the hypothesis provides an alternate
       axiom that can be used in place of ~ ax11o .  (Contributed by NM,
       2-Feb-2007.) $)
    ax11v2 $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( weq wal wn wex wi a9e wa wb equequ2 adantl dveeq2 imp hba1 imbi1d sps
      albidh syl imbi2d imbi12d mpbii ex exlimdv mpi ) BCFZBGHZDCFZDIUIAUIAJZBG
      ZJZJZDCKUJUKUODUJUKUOUJUKLZBDFZAUQAJZBGZJZJUOEUPUQUIUTUNUKUQUIMUJDCBNZOUP
      USUMAUPUKBGZUSUMMUJUKVBBCDPQVBURULBUKBRUKURULMBUKUQUIAVASTUAUBUCUDUEUFUGU
      H $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax11a2.1 $e |- ( x = z -> ( A. z ph -> A. x ( x = z -> ph ) ) ) $.
    $( Derive ~ ax-11o from a hypothesis in the form of ~ ax-11 .  The
       hypothesis is even weaker than ~ ax-11 , with ` z ` both distinct from
       ` x ` and not occurring in ` ph ` .  Thus the hypothesis provides an
       alternate axiom that can be used in place of ~ ax11o .  (Contributed by
       NM, 2-Feb-2007.) $)
    ax11a2 $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( wal weq wi ax-17 syl5 ax11v2 ) ABCDAADFBDGZLAHBFADIEJK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Derive the obsolete axiom of variable substitution ax-11o
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( Derivation of set.mm's original ~ ax-11o from the shorter ~ ax-11 that
       has replaced it.

       An open problem is whether this theorem can be proved without relying on
       ~ ax-16 or ~ ax-17 .

       Normally, ~ ax11o should be used rather than ~ ax-11o , except by
       theorems specifically studying the latter's properties.  (Contributed by
       NM, 3-Feb-2007.) $)
    ax11o $p |- ( -. A. x x = y ->
               ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( vz ax-11 ax11a2 ) ABCDABDEF $.
  $}

  $( Axiom ~ ax-11o ("o" for "old") was the original version of ~ ax-11 ,
     before it was discovered (in Jan. 2007) that the shorter ~ ax-11 could
     replace it.  It appears as Axiom scheme C15' in [Megill] p. 448 (p. 16 of
     the preprint).  It is based on Lemma 16 of [Tarski] p. 70 and Axiom C8 of
     [Monk2] p. 105, from which it can be proved by cases.  To understand this
     theorem more easily, think of " ` -. A. x x = y -> ` ..." as informally
     meaning "if ` x ` and ` y ` are distinct variables then..."  The
     antecedent becomes false if the same variable is substituted for ` x ` and
     ` y ` , ensuring the theorem is sound whenever this is the case.  In some
     later theorems, we call an antecedent of the form ` -. A. x x = y ` a
     "distinctor."

     This axiom is redundant, as shown by theorem ~ ax11o .

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ ax11o .  (Contributed by NM, 5-Aug-1993.)
     (New usage is discouraged.) $)
  ax-11o $a |- ( -. A. x x = y ->
             ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     More theorems related to ax-11 and substitution
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x ph $.
    albidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    albidv $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( ax-17 albidh ) ABCDADFEG $.

    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    exbidv $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( ax-17 exbidh ) ABCDADFEG $.
  $}

  $( A bidirectional version of ~ ax-11o .  (Contributed by NM,
     30-Jun-2006.) $)
  ax11b $p |- ( ( -. A. x x = y /\ x = y ) ->
              ( ph <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wa wi ax11o imp ax-4 com12 adantl impbid ) BCDZBEFZOGAOAHZBEZP
    OARHABCIJORAHPROAQBKLMN $.

  ${
    $d x y $.  $d x z $.  $d y z $.  $d ph z $.
    $( This is a version of ~ ax-11o when the variables are distinct.  Axiom
       (C8) of [Monk2] p. 105.  (Contributed by NM, 5-Aug-1993.)  (Revised by
       Jim Kingdon, 15-Dec-2017.) $)
    ax11v $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( vz cv wceq wex wi wal a9e ax-17 ax-11 syl5 equequ2 imbi1d albidv imbi2d
      imbi12d mpbii exlimiv ax-mp ) DEZCEZFZDGBEZUCFZAUFAHZBIZHZHZDCJUDUJDUDUEU
      BFZAUKAHZBIZHZHUJAADIUKUMADKABDLMUDUKUFUNUIDCBNZUDUMUHAUDULUGBUDUKUFAUOOP
      QRSTUA $.
  $}

  ${
    $d x y $.  $d x z $.  $d y z $.  $d ph z $.
    $( Analogue to ~ ax11v for existential quantification.  (Contributed by Jim
       Kingdon, 9-Jan-2018.) $)
    ax11ev $p |- ( x = y -> ( E. x ( x = y /\ ph ) -> ph ) ) $=
      ( vz cv wceq wex wa wi a9e ax11e ax-17 19.9h syl6ib equequ2 anbi1d exbidv
      imbi1d imbi12d mpbii exlimiv ax-mp ) DEZCEZFZDGBEZUDFZUGAHZBGZAIZIZDCJUEU
      KDUEUFUCFZULAHZBGZAIZIUKULUNADGAABDKADADLMNUEULUGUOUJDCBOZUEUNUIAUEUMUHBU
      EULUGAUPPQRSTUAUB $.
  $}

  $( Lemma used in proofs of substitution properties.  (Contributed by NM,
     5-Aug-1993.) $)
  equs5 $p |- ( -. A. x x = y ->
             ( E. x ( x = y /\ ph ) -> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wa wi hbnae hba1 ax11o impd exlimdh ) BCDZBEFZNAGNAHZBEZBBCBIP
    BJONAQABCKLM $.

  ${
    $d x z $.  $d y z $.  $d ph z $.

    $( Lemma used in proofs of substitution properties.  Like ~ equs5 but, in
       intuitionistic logic, replacing negation and implication with
       disjunction makes this a stronger result.  (Contributed by Jim Kingdon,
       2-Feb-2018.) $)
    equs5or $p |- ( A. x x = y \/
             ( E. x ( x = y /\ ph ) -> A. x ( x = y -> ph ) ) ) $=
      ( vz weq wex wal wa wi wo a9e wnf dveeq2or nfnf1 nfri ax11v equequ2 ax-mp
      wb hba1 adantl nfr imp imbi1d sps albidh syl imbi2d imbi12d mpbii alrimih
      ex imp4a 19.21t mpbid 19.23h syl6ib orim2i pm2.76 olcs exlimiv ) DCEZDFBC
      EZBGZVCAHZBFVCAIZBGZIZJZDCKVBVIDVDVBVIVDVBVHIZJZVDVBJVIIVDVBBLZJVKBCDMVLV
      JVDVLVBVEVGIZBGZVHVLVBVMIZBGVBVNIVLVOBVLBVBBNOVLVBVCAVGVLVBVCAVGIZIZVLVBH
      ZBDEZAVSAIZBGZIZIVQABDPVRVSVCWBVPVBVSVCSVLDCBQZUAVRWAVGAVRVBBGZWAVGSVLVBW
      DVBBUBUCWDVTVFBVBBTVBVTVFSBVBVSVCAWCUDUEUFUGUHUIUJULUMUKVBVMBUNUOVEVGBVFB
      TUPUQURRVDVBVHUSRUTVAR $.
  $}

  $( One direction of a simplified definition of substitution when variables
     are distinct.  (Contributed by NM, 5-Aug-1993.) $)
  sb3 $p |- ( -. A. x x = y -> ( E. x ( x = y /\ ph ) -> [ y / x ] ph ) ) $=
    ( weq wal wn wa wex wi wsb equs5 sb2 syl6 ) BCDZBEFNAGBHNAIBEABCJABCKABCLM
    $.

  $( One direction of a simplified definition of substitution when variables
     are distinct.  (Contributed by NM, 5-Aug-1993.) $)
  sb4 $p |- ( -. A. x x = y -> ( [ y / x ] ph -> A. x ( x = y -> ph ) ) ) $=
    ( wsb weq wa wex wal wn wi sb1 equs5 syl5 ) ABCDBCEZAFBGNBHINAJBHABCKABCLM
    $.

  $( One direction of a simplified definition of substitution when variables
     are distinct.  Similar to ~ sb4 but stronger in intuitionistic logic.
     (Contributed by Jim Kingdon, 2-Feb-2018.) $)
  sb4or $p |- ( A. x x = y \/
      A. x ( [ y / x ] ph -> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wa wex wi wo wsb equs5or nfe1 nfa1 nfim sb1 imim1i alrimih orim2i
    nfri ax-mp ) BCDZBEZUAAFZBGZUAAHZBEZHZIUBABCJZUFHZBEZIABCKUGUJUBUGUIBUGBUDU
    FBUCBLUEBMNSUHUDUFABCOPQRT $.

  $( Simplified definition of substitution when variables are distinct.
     (Contributed by NM, 27-May-1997.) $)
  sb4b $p |- ( -. A. x x = y -> ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wsb wi sb4 sb2 impbid1 ) BCDZBEFABCGLAHBEABCIABCJK $.

  $( Simplified definition of substitution when variables are distinct,
     expressed via disjunction.  (Contributed by Jim Kingdon, 18-Mar-2018.) $)
  sb4bor $p |- ( A. x x = y \/
      A. x ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wsb wi wo wb sb4or sb2 wa df-bi simpri mpan2 alimi orim2i ax-mp )
    BCDZBEZABCFZSAGBEZGZBEZHTUAUBIZBEZHABCJUDUFTUCUEBUCUBUAGZUEABCKUEUCUGLZGUHU
    EGUAUBMNOPQR $.

  $( Bound-variable hypothesis builder for substitution.  (Contributed by NM,
     5-Aug-1993.) $)
  hbsb2 $p |- ( -. A. x x = y -> ( [ y / x ] ph -> A. x [ y / x ] ph ) ) $=
    ( weq wal wn wsb wi sb4 sb2 a5i syl6 ) BCDZBEFABCGZMAHZBENBEABCIONBABCJKL
    $.

  $( Bound-variable hypothesis builder for substitution.  Similar to ~ hbsb2
     but in intuitionistic logic a disjunction is stronger than an
     implication.  (Contributed by Jim Kingdon, 2-Feb-2018.) $)
  nfsb2or $p |- ( A. x x = y \/ F/ x [ y / x ] ph ) $=
    ( weq wal wsb wi wnf sb4or sb2 a5i imim2i alimi df-nf sylibr orim2i ax-mp
    wo ) BCDZBEZABCFZSAGZBEZGZBEZRTUABHZRABCIUEUFTUEUAUABEZGZBEUFUDUHBUCUGUAUBU
    ABABCJKLMUABNOPQ $.

  ${
    sbequilem.1 $e |- ( ph \/ ( ps -> ( ch -> th ) ) ) $.
    sbequilem.2 $e |- ( ta \/ ( ps -> ( th -> et ) ) ) $.
    $( Propositional logic lemma used in the ~ sbequi proof.  (Contributed by
       Jim Kingdon, 1-Feb-2018.) $)
    sbequilem $p |- ( ph \/ ( ta \/ ( ps -> ( ch -> et ) ) ) ) $=
      ( wo wi wa pm3.2i andi mpbi andir orbi12i orim2i ax-mp orim1i orass simpr
      pm3.43 pm3.33 syl6 sylbir simpl mpbir orcom orbi1i ) AEIZBCFJZJZIZAEULIIE
      AIZULIZUMUOEAULIZIZEABDFJZJZKZULIZIZUQAEKBCDJZJZEKIZVAIZVBVEUTVDUSKZIZIZV
      FAVDIZEKZVJUSKZIZVIVJEUSIZKVMVJVNGHLVJEUSMNVKVEVLVHAVDEOZAVDUSOPNVHVAVEVG
      ULUTVGBVCURKUKBVCURUBCDFUCUDQQRVEEVAVEVKEVOVJEUAUESRVAUPEUTAULAUSUFSQREAU
      LTUGUNUJULEAUHUINAEULTN $.
  $}

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-1993.)
     (Proof modified by Jim Kingdon, 1-Feb-2018.) $)
  sbequi $p |- ( x = y -> ( [ x / z ] ph -> [ y / z ] ph ) ) $=
    ( weq wal wsb wi wo wex nfsb2or wa stdpc7 sbequ1 sylan9 orim2i ax-mp biimpd
    wnf sps equvini eximi 19.35-1 3syl syl9 19.9t sbequilem sbequ2 adantr drsb1
    nfr ax-1 alequcoms sylan9r syld ex orim1i pm1.2 syl jaoi ) DBEZDFZDCEZDFZBC
    EZADBGZADCGZHZHZIZIVIVBVEVFVGDJZVDVGVBVFDSZIVBVEVFVKHHZIADBKVLVMVBVLVFVFDFZ
    VEVKVFDUKVEBDEZVCLZDJVHDJVNVKHBCDUAVPVHDVOVFAVCVGABDMADCNZOUBVFVGDUCUDUEPQV
    DVKVGHZIZVDVEVRHZIVDVGDSZIVSADCKWAVRVDWAVKVGVGDUFRPQVRVTVDVRVEULPQUGVBVIVJV
    BVEVHVBVELVFAVGVBVFAHZVEVAWBDADBUHTUIVEAABCGZVBVGABCNWCVGHBDVOBFWCVGABDCUJR
    UMUNUOUPVJVIVIIVIVDVIVIVDVEVHVDVELVFAVGVDVFACBGZVEAVDVFWDADCBUJRABCMOVDAVGH
    ZVEVCWEDVQTUIUOUPUQVIURUSUTQ $.

  $( An equality theorem for substitution.  Used in proof of Theorem 9.7 in
     [Megill] p. 449 (p. 16 of the preprint).  (Contributed by NM,
     5-Aug-1993.) $)
  sbequ $p |- ( x = y -> ( [ x / z ] ph <-> [ y / z ] ph ) ) $=
    ( weq wsb sbequi wi equcoms impbid ) BCEADBFZADCFZABCDGLKHCBACBDGIJ $.

  $( Formula-building lemma for use with the Distinctor Reduction Theorem.
     Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).  (Contributed
     by NM, 27-Feb-2005.) $)
  drsb2 $p |- ( A. x x = y -> ( [ x / z ] ph <-> [ y / z ] ph ) ) $=
    ( weq wsb wb sbequ sps ) BCEADBFADCFGBABCDHI $.

  $( A specialization theorem, mostly the same as Theorem 19.8 of [Margaris]
     p. 89.  (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
     29-Dec-2017.) $)
  spsbe $p |- ( [ y / x ] ph -> E. x ph ) $=
    ( wsb weq wa wex sb1 simpr eximi syl ) ABCDBCEZAFZBGABGABCHMABLAIJK $.

  $( Specialization of implication.  (Contributed by NM, 5-Aug-1993.)  (Proof
     rewritten by Jim Kingdon, 21-Jan-2018.) $)
  spsbim $p |- ( A. x ( ph -> ps ) -> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
    ( wi wal weq wa wex wsb imim2 sps id anim2d alimi syl anim12d df-sb 3imtr4g
    exim ) ABEZCFZCDGZAEZUCAHZCIZHUCBEZUCBHZCIZHACDJBCDJUBUDUGUFUIUAUDUGECABUCK
    LUBUEUHEZCFUFUIEUAUJCUAABUCUAMNOUEUHCTPQACDRBCDRS $.

  $( Specialization of biconditional.  (Contributed by NM, 5-Aug-1993.)  (Proof
     rewritten by Jim Kingdon, 21-Jan-2018.) $)
  spsbbi $p |- ( A. x ( ph <-> ps ) -> ( [ y / x ] ph <-> [ y / x ] ps ) ) $=
    ( wi wal wa wsb wb spsbim anim12i albiim dfbi2 3imtr4i ) ABECFZBAECFZGACDHZ
    BCDHZEZRQEZGABICFQRIOSPTABCDJBACDJKABCLQRMN $.

  ${
    sbbid.1 $e |- ( ph -> A. x ph ) $.
    sbbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction substituting both sides of a biconditional.  (Contributed by
       NM, 5-Aug-1993.) $)
    sbbid $p |- ( ph -> ( [ y / x ] ps <-> [ y / x ] ch ) ) $=
      ( wb wal wsb alrimih spsbbi syl ) ABCHZDIBDEJCDEJHANDFGKBCDELM $.
  $}

  $( Elimination of equality from antecedent after substitution.  (Contributed
     by NM, 5-Aug-1993.)  (Proof revised by Jim Kingdon, 20-Jan-2018.) $)
  sbequ8 $p |- ( [ y / x ] ph <-> [ y / x ] ( x = y -> ph ) ) $=
    ( weq wi wa wex wsb pm5.4 simpl pm3.35 jca pm3.4 impbii exbii anbi12i df-sb
    3bitr4ri ) BCDZSAEZEZSTFZBGZFTSAFZBGZFTBCHABCHUATUCUESAIUBUDBUBUDUBSASTJSAK
    LUDSTSAJSAMLNOPTBCQABCQR $.

  $( Substitution has no effect on a non-free variable.  (Contributed by NM,
     30-May-2009.)  (Revised by Mario Carneiro, 12-Oct-2016.)  (Proof shortened
     by Wolf Lammen, 3-May-2018.) $)
  sbft $p |- ( F/ x ph -> ( [ y / x ] ph <-> ph ) ) $=
    ( wnf wsb wex spsbe 19.9t syl5ib wal nfr stdpc4 syl6 impbid ) ABDZABCEZAPAB
    FOAABCGABHIOAABJPABKABCLMN $.

  ${
    sbid2h.1 $e |- ( ph -> A. x ph ) $.
    $( An identity law for substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbid2h $p |- ( [ y / x ] [ x / y ] ph <-> ph ) $=
      ( wsb sbcof2 sbh bitri ) ACBEBCEABCEAABCDFABCDGH $.
  $}

  ${
    sbid2.1 $e |- F/ x ph $.
    $( An identity law for substitution.  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sbid2 $p |- ( [ y / x ] [ x / y ] ph <-> ph ) $=
      ( nfri sbid2h ) ABCABDEF $.
  $}

  $( An idempotent law for substitution.  (Contributed by NM, 30-Jun-1994.)
     (Proof rewritten by Jim Kingdon, 21-Jan-2018.) $)
  sbidm $p |- ( [ y / x ] [ y / x ] ph <-> [ y / x ] ph ) $=
    ( wsb weq wi wa df-sb simplbi sbimi sbequ8 sylibr ax-1 pm4.24 ax-ie1 19.41h
    wex sb1 bitr4i exbii anim2i anim1i eximi sylbi anass anbi2i sylanbrc impbii
    sylib syl ) ABCDZBCDZUKULBCEZAFZBCDUKUKUNBCUKUNUMAGZBQZABCHZIJABCKLUKUMUKFU
    MUKGZBQZULUKUMMUKUPUSABCRUPUMUNUPGZGZBQZUSUPUMUNGZUPGZBQZVBUPUOUPGZBQZVEUPU
    PUPGVGUPNUOUPBUOBOPSVFVDBUOVCUPAUNUMAUMMUAUBUCUDVDVABUMUNUPUETUIURVABUKUTUM
    UQUFTLUJUKBCHUGUH $.

  ${
    sb5rf.1 $e |- ( ph -> A. y ph ) $.
    $( Reversed substitution.  (Contributed by NM, 3-Feb-2005.)  (Proof
       shortened by Andrew Salmon, 25-May-2011.) $)
    sb5rf $p |- ( ph <-> E. y ( y = x /\ [ y / x ] ph ) ) $=
      ( weq wsb wa wex sbid2h sb1 sylbir stdpc7 imp exlimih impbii ) ACBEZABCFZ
      GZCHZAQCBFSACBDIQCBJKRACDPQAACBLMNO $.

    $( Reversed substitution.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Andrew Salmon, 25-May-2011.) $)
    sb6rf $p |- ( ph <-> A. y ( y = x -> [ y / x ] ph ) ) $=
      ( weq wsb wi wal sbequ1 equcoms com12 alrimih sb2 sbid2h sylib impbii ) A
      CBEZABCFZGZCHZASCDQARARGBCABCIJKLTRCBFARCBMACBDNOP $.
  $}

  ${
    sb8h.1 $e |- ( ph -> A. y ph ) $.
    $( Substitution of variable in universal quantifier.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Jim Kingdon, 15-Jan-2018.) $)
    sb8h $p |- ( A. x ph <-> A. y [ y / x ] ph ) $=
      ( wsb hbsb3 sbequ12 cbvalh ) AABCEBCDABCDFABCGH $.
  $}

  ${
    sb8eh.1 $e |- ( ph -> A. y ph ) $.
    $( Substitution of variable in existential quantifier.  (Contributed by NM,
       12-Aug-1993.)  (Proof rewritten by Jim Kingdon, 15-Jan-2018.) $)
    sb8eh $p |- ( E. x ph <-> E. y [ y / x ] ph ) $=
      ( wsb hbsb3 sbequ12 cbvexh ) AABCEBCDABCDFABCGH $.
  $}

  ${
    sb8e.1 $e |- F/ y ph $.
    $( Substitution of variable in universal quantifier.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof shortened
       by Jim Kingdon, 15-Jan-2018.) $)
    sb8 $p |- ( A. x ph <-> A. y [ y / x ] ph ) $=
      ( wsb nfs1 sbequ12 cbval ) AABCEBCDABCDFABCGH $.

    $( Substitution of variable in existential quantifier.  (Contributed by NM,
       12-Aug-1993.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof
       shortened by Jim Kingdon, 15-Jan-2018.) $)
    sb8e $p |- ( E. x ph <-> E. y [ y / x ] ph ) $=
      ( wsb nfs1 sbequ12 cbvex ) AABCEBCDABCDFABCGH $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Predicate calculus with distinct variables (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.  $d z ph $.
    ax16i.1 $e |- ( x = z -> ( ph <-> ps ) ) $.
    ax16i.2 $e |- ( ps -> A. x ps ) $.
    $( Inference with ~ ax-16 as its conclusion, that doesn't require ~ ax-10 ,
       ~ ax-11 , or ~ ax-12 for its proof.  The hypotheses may be eliminable
       without one or more of these axioms in special cases.  (Contributed by
       NM, 20-May-2008.) $)
    ax16i $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( weq wal wi ax-17 ax-8 cbv3h spimv equid mpi syl syl5com alimdh mpcom
      alimi biimpcd biimprd syl6com ) CDHZCIZCEHZEIZAACIZJUFEDHZEIZUHUEUJCEUEEK
      ZUJCKCEDLMUKECHZEIZUHUEUKUNUJUEECECDLNUEUJUMEULUEDCHZUJUMUECCHUOCOCDCLPUJ
      DEHZUOUMJUJEEHZUPEOZEDELPDECLQRSTUMUGEUMUQUGURECELPZUAQQAUHBEIUIAUGBEAEKZ
      UGABFUBSBAECGUTUMUGBAJUSUGABFUCQMUDQ $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( Version of ~ ax16 that doesn't require ~ ax-10 or ~ ax-12 for its
       proof.  (Contributed by NM, 17-May-2008.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax16ALT $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( vz wsb sbequ12 ax-17 hbsb3 ax16i ) AABDEBCDABDFABDADGHI $.
  $}

  ${
    $d x ps $.
    spv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Specialization, using implicit substitition.  (Contributed by NM,
       30-Aug-1993.) $)
    spv $p |- ( A. x ph -> ps ) $=
      ( weq biimpd spimv ) ABCDCDFABEGH $.
  $}

  ${
    $d x ph $.
    spimev.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Distinct-variable version of ~ spime .  (Contributed by NM,
       5-Aug-1993.) $)
    spimev $p |- ( ph -> E. x ps ) $=
      ( nfv spime ) ABCDACFEG $.
  $}

  ${
    $d x ps $.
    speiv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    speiv.2 $e |- ps $.
    $( Inference from existential specialization, using implicit substitition.
       (Contributed by NM, 19-Aug-1993.) $)
    speiv $p |- E. x ph $=
      ( wex weq biimprd spimev ax-mp ) BACGFBACDCDHABEIJK $.
  $}

  ${
    $d x z $.  $d y z $.
    $( A variable introduction law for equality.  Lemma 15 of [Monk2] p. 109.
       (Contributed by NM, 5-Aug-1993.) $)
    equvin $p |- ( x = y <-> E. z ( x = z /\ z = y ) ) $=
      ( weq wa wex equvini ax-17 equtr imp exlimih impbii ) ABDZACDZCBDZEZCFABC
      GPMCMCHNOMACBIJKL $.
  $}

  ${
    $d x y $.
    $( A generalization of axiom ~ ax-16 .  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    a16g $p |- ( A. x x = y -> ( ph -> A. z ph ) ) $=
      ( weq wal aev ax16 biidd dral1 biimprd sylsyld ) BCEBFDBEDFZAABFZADFZBCDD
      BGABCHMONAADBMAIJKL $.

    $( A generalization of axiom ~ ax-16 .  (Contributed by NM, 5-Aug-1993.) $)
    a16gb $p |- ( A. x x = y -> ( ph <-> A. z ph ) ) $=
      ( weq wal a16g ax-4 impbid1 ) BCEBFAADFABCDGADHI $.

    $( If there is only one element in the universe, then everything satisfies
       ` F/ ` .  (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    a16nf $p |- ( A. x x = y -> F/ z ph ) $=
      ( weq wal nfae a16g nfd ) BCEBFADBCDGABCDHI $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2albidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for 2 existential quantifiers (deduction rule).
       (Contributed by NM, 4-Mar-1997.) $)
    2albidv $p |- ( ph -> ( A. x A. y ps <-> A. x A. y ch ) ) $=
      ( wal albidv ) ABEGCEGDABCEFHH $.

    $( Formula-building rule for 2 existential quantifiers (deduction rule).
       (Contributed by NM, 1-May-1995.) $)
    2exbidv $p |- ( ph -> ( E. x E. y ps <-> E. x E. y ch ) ) $=
      ( wex exbidv ) ABEGCEGDABCEFHH $.
  $}

  ${
    $d x ph $.  $d y ph $.  $d z ph $.
    3exbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for 3 existential quantifiers (deduction rule).
       (Contributed by NM, 1-May-1995.) $)
    3exbidv $p |- ( ph -> ( E. x E. y E. z ps <-> E. x E. y E. z ch ) ) $=
      ( wex exbidv 2exbidv ) ABFHCFHDEABCFGIJ $.
  $}

  ${
    $d x ph $.  $d y ph $.  $d z ph $.  $d w ph $.
    4exbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for 4 existential quantifiers (deduction rule).
       (Contributed by NM, 3-Aug-1995.) $)
    4exbidv $p |- ( ph ->
                     ( E. x E. y E. z E. w ps <-> E. x E. y E. z E. w ch ) ) $=
      ( wex 2exbidv ) ABGIFICGIFIDEABCFGHJJ $.
  $}

  ${
    $d x ph $.
    $( Special case of Theorem 19.9 of [Margaris] p. 89.  (Contributed by NM,
       28-May-1995.)  (Revised by NM, 21-May-2007.) $)
    19.9v $p |- ( E. x ph <-> ph ) $=
      ( ax-17 19.9h ) ABABCD $.
  $}

  ${
    exlimdd.1 $e |- F/ x ph $.
    exlimdd.2 $e |- F/ x ch $.
    exlimdd.3 $e |- ( ph -> E. x ps ) $.
    exlimdd.4 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Existential elimination rule of natural deduction.  (Contributed by
       Mario Carneiro, 9-Feb-2017.) $)
    exlimdd $p |- ( ph -> ch ) $=
      ( wex ex exlimd mpd ) ABDICGABCDEFABCHJKL $.
  $}

  ${
    $d x ph $.
    $( Special case of Theorem 19.21 of [Margaris] p. 90. _Notational
       convention_:  We sometimes suffix with "v" the label of a theorem
       eliminating a hypothesis such as ` ( ph -> A. x ph ) ` in ~ 19.21 via
       the use of distinct variable conditions combined with ~ ax-17 .
       Conversely, we sometimes suffix with "f" the label of a theorem
       introducing such a hypothesis to eliminate the need for the distinct
       variable condition; e.g. ~ euf derived from ~ df-eu .  The "f" stands
       for "not free in" which is less restrictive than "does not occur in."
       (Contributed by NM, 5-Aug-1993.) $)
    19.21v $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( ax-17 19.21h ) ABCACDE $.
  $}

  ${
    $d x ph $.
    alrimiv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    alrimiv $p |- ( ph -> A. x ps ) $=
      ( ax-17 alrimih ) ABCACEDF $.
  $}

  ${
    $d x ph $.  $d y ph $.
    alrimivv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       31-Jul-1995.) $)
    alrimivv $p |- ( ph -> A. x A. y ps ) $=
      ( wal alrimiv ) ABDFCABDEGG $.
  $}

  ${
    $d x ph $.  $d x ps $.
    alrimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       10-Feb-1997.) $)
    alrimdv $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( ax-17 alrimdh ) ABCDADFBDFEG $.
  $}

  ${
    $d x ph $.
    nfdv.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Apply the definition of not-free in a context.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfdv $p |- ( ph -> F/ x ps ) $=
      ( wal wi wnf alrimiv df-nf sylibr ) ABBCEFZCEBCGAKCDHBCIJ $.
  $}

  ${
    $d x ph $.  $d y ph $.
    $( Quantification of two variables over a formula in which they do not
       occur.  (Contributed by Alan Sare, 12-Apr-2011.) $)
    2ax17 $p |- ( ph -> A. x A. y ph ) $=
      ( id alrimivv ) AABCADE $.
  $}

  ${
    $d x ph $.
    alimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.20 of [Margaris] p. 90.  (Contributed by NM,
       3-Apr-1994.) $)
    alimdv $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( ax-17 alimdh ) ABCDADFEG $.

    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       27-Apr-1994.) $)
    eximdv $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( ax-17 eximdh ) ABCDADFEG $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2alimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       27-Apr-2004.) $)
    2alimdv $p |- ( ph -> ( A. x A. y ps -> A. x A. y ch ) ) $=
      ( wal alimdv ) ABEGCEGDABCEFHH $.

    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       3-Aug-1995.) $)
    2eximdv $p |- ( ph -> ( E. x E. y ps -> E. x E. y ch ) ) $=
      ( wex eximdv ) ABEGCEGDABCEFHH $.
  $}

  ${
    $d x ps $.
    $( Special case of Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       28-Jun-1998.) $)
    19.23v $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( ax-17 19.23h ) ABCBCDE $.
  $}

  ${
    $d x ps $.  $d y ps $.
    $( Theorem 19.23 of [Margaris] p. 90 extended to two variables.
       (Contributed by NM, 10-Aug-2004.) $)
    19.23vv $p |- ( A. x A. y ( ph -> ps ) <-> ( E. x E. y ph -> ps ) ) $=
      ( wi wal wex 19.23v albii bitri ) ABEDFZCFADGZBEZCFLCGBEKMCABDHILBCHJ $.
  $}

  ${
    $d x y $.
    $( Two equivalent ways of expressing the proper substitution of ` y ` for
       ` x ` in ` ph ` , when ` x ` and ` y ` are distinct.  Theorem 6.2 of
       [Quine] p. 40.  The proof does not involve ~ df-sb .  (Contributed by
       NM, 14-Apr-2008.) $)
    sb56 $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wi wal hba1 ax11v ax-4 com12 impbid equsex ) ABCDZAEZBFZBCNBGMAOABC
      HOMANBIJKL $.

    $( Equivalence for substitution.  Compare Theorem 6.2 of [Quine] p. 40.
       Also proved as Lemmas 16 and 17 of [Tarski] p. 70.  (Contributed by NM,
       18-Aug-1993.)  (Revised by NM, 14-Apr-2008.) $)
    sb6 $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( weq wi wa wex wal wsb sb56 anbi2i df-sb ax-4 pm4.71ri 3bitr4i ) BCDZAEZ
      PAFBGZFQQBHZFABCISRSQABCJKABCLSQQBMNO $.

    $( Equivalence for substitution.  Similar to Theorem 6.1 of [Quine] p. 40.
       (Contributed by NM, 18-Aug-1993.)  (Revised by NM, 14-Apr-2008.) $)
    sb5 $p |- ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) $=
      ( wsb weq wi wal wa wex sb6 sb56 bitr4i ) ABCDBCEZAFBGMAHBIABCJABCKL $.

    $( Version of ~ sbn where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 18-Dec-2017.) $)
    sbnv $p |- ( [ y / x ] -. ph <-> -. [ y / x ] ph ) $=
      ( wn wsb weq wa wex wi wal sb6 alinexa bitri sb5 xchbinxr ) ADZBCEZBCFZAG
      BHZABCEQRPIBJSDPBCKRABLMABCNO $.

    $( Version of ~ sban where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 24-Dec-2017.) $)
    sbanv $p |- ( [ y / x ] ( ph /\ ps ) <->
                  ( [ y / x ] ph /\ [ y / x ] ps ) ) $=
      ( wa wsb weq wi wal sb6 anbi12i 19.26 pm4.76 albii 3bitr2i bitr4i ) ABEZC
      DFCDGZQHZCIZACDFZBCDFZEZQCDJUCRAHZCIZRBHZCIZEUDUFEZCITUAUEUBUGACDJBCDJKUD
      UFCLUHSCRABMNOP $.

    $( Version of ~ sbor where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 3-Feb-2018.) $)
    sborv $p |- ( [ y / x ] ( ph \/ ps ) <->
                  ( [ y / x ] ph \/ [ y / x ] ps ) ) $=
      ( wo wsb weq wa wex sb5 andi exbii 19.43 3bitri orbi12i bitr4i ) ABEZCDFZ
      CDGZAHZCIZSBHZCIZEZACDFZBCDFZERSQHZCITUBEZCIUDQCDJUGUHCSABKLTUBCMNUEUAUFU
      CACDJBCDJOP $.

    $( Forward direction of ~ sbimv .  (Contributed by Jim Kingdon,
       25-Dec-2017.) $)
    sbi1v $p |- ( [ y / x ] ( ph -> ps )
                      -> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
      ( wsb weq wi wal sb6 ax-2 al2imi sb2 syl6 sylbi syl5bi ) ACDECDFZAGZCHZAB
      GZCDEZBCDEZACDITPSGZCHZRUAGSCDIUCRPBGZCHUAUBQUDCPABJKBCDLMNO $.

    $( Reverse direction of ~ sbimv .  (Contributed by Jim Kingdon,
       18-Jan-2018.) $)
    sbi2v $p |- ( ( [ y / x ] ph -> [ y / x ] ps )
                      -> [ y / x ] ( ph -> ps ) ) $=
      ( weq wa wex wi wal wsb 19.38 pm3.3 pm2.04 syli alimi syl sb5 sb6 imbi12i
      3imtr4i ) CDEZAFZCGZUABHZCIZHZUAABHZHZCIZACDJZBCDJZHUGCDJUFUBUDHZCIUIUBUD
      CKULUHCUAULAUDHUGUAAUDLAUABMNOPUJUCUKUEACDQBCDRSUGCDRT $.

    $( Intuitionistic proof of ~ sbim where ` x ` and ` y ` are distinct.
       (Contributed by Jim Kingdon, 18-Jan-2018.) $)
    sbimv $p |- ( [ y / x ] ( ph -> ps )
                  <-> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
      ( wi wsb sbi1v sbi2v impbii ) ABECDFACDFBCDFEABCDGABCDHI $.
  $}

  ${
    $d x y $.
    sblimv.1 $e |- ( ps -> A. x ps ) $.
    $( Version of ~ sblim where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 19-Jan-2018.) $)
    sblimv $p |- ( [ y / x ] ( ph -> ps ) <-> ( [ y / x ] ph -> ps ) ) $=
      ( wi wsb sbimv sbh imbi2i bitri ) ABFCDGACDGZBCDGZFLBFABCDHMBLBCDEIJK $.
  $}

  ${
    $d ph y $.  $d ps x $.
    $( Theorem *11.53 in [WhiteheadRussell] p. 164.  (Contributed by Andrew
       Salmon, 24-May-2011.) $)
    pm11.53 $p |- ( A. x A. y ( ph -> ps ) <-> ( E. x ph -> A. y ps ) ) $=
      ( wi wal wex 19.21v albii ax-17 hbal 19.23h bitri ) ABEDFZCFABDFZEZCFACGO
      ENPCABDHIAOCBCDBCJKLM $.
  $}

  ${
    $d x ps $.  $d y ps $.
    exlimivv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       1-Aug-1995.) $)
    exlimivv $p |- ( E. x E. y ph -> ps ) $=
      ( wex exlimiv ) ADFBCABDEGG $.
  $}

  ${
    $d x ch $.  $d x ph $.  $d y ch $.  $d y ph $.
    exlimdvv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       31-Jul-1995.) $)
    exlimdvv $p |- ( ph -> ( E. x E. y ps -> ch ) ) $=
      ( wex exlimdv ) ABEGCDABCEFHH $.
  $}

  ${
    $d x ch $.  $d x ph $.
    exlimddv.1 $e |- ( ph -> E. x ps ) $.
    exlimddv.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Existential elimination rule of natural deduction.  (Contributed by
       Mario Carneiro, 15-Jun-2016.) $)
    exlimddv $p |- ( ph -> ch ) $=
      ( wex ex exlimdv mpd ) ABDGCEABCDABCFHIJ $.
  $}

  ${
    $d x ps $.
    $( Theorem 19.27 of [Margaris] p. 90.  (Contributed by NM, 3-Jun-2004.) $)
    19.27v $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( ax-17 19.27h ) ABCBCDE $.
  $}

  ${
    $d x ph $.
    $( Theorem 19.28 of [Margaris] p. 90.  (Contributed by NM, 25-Mar-2004.) $)
    19.28v $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( ax-17 19.28h ) ABCACDE $.
  $}

  ${
    $d x ps $.
    19.36aiv.1 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.36 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.36aiv $p |- ( A. x ph -> ps ) $=
      ( nfv 19.36i ) ABCBCEDF $.
  $}

  ${
    $d x ps $.
    $( Special case of Theorem 19.41 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.41v $p |- ( E. x ( ph /\ ps ) <-> ( E. x ph /\ ps ) ) $=
      ( ax-17 19.41h ) ABCBCDE $.
  $}

  ${
    $d x ps $.  $d y ps $.
    $( Theorem 19.41 of [Margaris] p. 90 with 2 quantifiers.  (Contributed by
       NM, 30-Apr-1995.) $)
    19.41vv $p |- ( E. x E. y ( ph /\ ps ) <-> ( E. x E. y ph /\ ps ) ) $=
      ( wa wex 19.41v exbii bitri ) ABEDFZCFADFZBEZCFKCFBEJLCABDGHKBCGI $.
  $}

  ${
    $d x ps $.  $d y ps $.  $d z ps $.
    $( Theorem 19.41 of [Margaris] p. 90 with 3 quantifiers.  (Contributed by
       NM, 30-Apr-1995.) $)
    19.41vvv $p |- ( E. x E. y E. z ( ph /\ ps ) <->
                     ( E. x E. y E. z ph /\ ps ) ) $=
      ( wa wex 19.41vv exbii 19.41v bitri ) ABFEGDGZCGAEGDGZBFZCGMCGBFLNCABDEHI
      MBCJK $.
  $}

  ${
    $d w ps $.  $d x ps $.  $d y ps $.  $d z ps $.
    $( Theorem 19.41 of [Margaris] p. 90 with 4 quantifiers.  (Contributed by
       FL, 14-Jul-2007.) $)
    19.41vvvv $p |- ( E. w E. x E. y E. z ( ph /\ ps ) <->
                     ( E. w E. x E. y E. z ph /\ ps ) ) $=
      ( wa wex 19.41vvv exbii 19.41v bitri ) ABGEHDHCHZFHAEHDHCHZBGZFHNFHBGMOFA
      BCDEIJNBFKL $.
  $}

  ${
    $d x ph $.
    $( Special case of Theorem 19.42 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.42v $p |- ( E. x ( ph /\ ps ) <-> ( ph /\ E. x ps ) ) $=
      ( ax-17 19.42h ) ABCACDE $.
  $}

  ${
    $d y ph $.
    $( Distribution of existential quantifiers.  (Contributed by NM,
       9-Mar-1995.) $)
    exdistr $p |- ( E. x E. y ( ph /\ ps ) <-> E. x ( ph /\ E. y ps ) ) $=
      ( wa wex 19.42v exbii ) ABEDFABDFECABDGH $.
  $}

  ${
    $d x ph $.  $d y ph $.
    $( Theorem 19.42 of [Margaris] p. 90 with 2 quantifiers.  (Contributed by
       NM, 16-Mar-1995.) $)
    19.42vv $p |- ( E. x E. y ( ph /\ ps ) <-> ( ph /\ E. x E. y ps ) ) $=
      ( wa wex exdistr 19.42v bitri ) ABEDFCFABDFZECFAJCFEABCDGAJCHI $.
  $}

  ${
    $d x ph $.  $d y ph $.  $d z ph $.
    $( Theorem 19.42 of [Margaris] p. 90 with 3 quantifiers.  (Contributed by
       NM, 21-Sep-2011.) $)
    19.42vvv $p |- ( E. x E. y E. z ( ph /\ ps )
                       <-> ( ph /\ E. x E. y E. z ps ) ) $=
      ( wa wex 19.42vv exbii 19.42v bitri ) ABFEGDGZCGABEGDGZFZCGAMCGFLNCABDEHI
      AMCJK $.
  $}

  ${
    $d w ph $.  $d x ph $.  $d y ph $.  $d z ph $.
    $( Theorem 19.42 of [Margaris] p. 90 with 4 quantifiers.  (Contributed by
       Jim Kingdon, 23-Nov-2019.) $)
    19.42vvvv $p |- ( E. w E. x E. y E. z ( ph /\ ps ) <->
                     ( ph /\ E. w E. x E. y E. z ps ) ) $=
      ( wa wex 19.42vv 2exbii bitri ) ABGEHDHZCHFHABEHDHZGZCHFHAMCHFHGLNFCABDEI
      JAMFCIK $.
  $}

  ${
    $d y ph $.  $d z ph $.
    $( Distribution of existential quantifiers.  (Contributed by NM,
       17-Mar-1995.) $)
    exdistr2 $p |- ( E. x E. y E. z ( ph /\ ps ) <->
                   E. x ( ph /\ E. y E. z ps ) ) $=
      ( wa wex 19.42vv exbii ) ABFEGDGABEGDGFCABDEHI $.
  $}

  ${
    $d y ph $.  $d z ph $.  $d z ps $.
    $( Distribution of existential quantifiers.  (Contributed by NM,
       9-Mar-1995.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3exdistr $p |- ( E. x E. y E. z ( ph /\ ps /\ ch ) <->
                E. x ( ph /\ E. y ( ps /\ E. z ch ) ) ) $=
      ( w3a wex wa 3anass 2exbii 19.42vv exdistr anbi2i 3bitri exbii ) ABCGZFHE
      HZABCFHIEHZIZDRABCIZIZFHEHAUAFHEHZITQUBEFABCJKAUAEFLUCSABCEFMNOP $.
  $}

  ${
    $d y ph $.  $d z ph $.  $d w ph $.  $d z ps $.  $d w ps $.  $d w ch $.
    $( Distribution of existential quantifiers.  (Contributed by NM,
       9-Mar-1995.) $)
    4exdistr $p |- ( E. x E. y E. z E. w ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
                E. x ( ph /\ E. y ( ps /\ E. z ( ch /\ E. w th ) ) ) ) $=
      ( wa wex anass exbii 19.42v anbi2i 3bitri bitri ) ABICDIZIZHJZGJZFJZABCDH
      JIZGJIZFJIZEUAAUCIZFJUDTUEFTABUBIZIZGJAUFGJZIUESUGGSABQIZIZHJZUGRUJHABQKL
      UKAUIHJZIABQHJZIZIUGAUIHMULUNABQHMNUNUFAUMUBBCDHMNNOPLAUFGMUHUCABUBGMNOLA
      UCFMPL $.
  $}

  ${
    $d y ph $.  $d x ps $.
    cbvalv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.) $)
    cbvalv $p |- ( A. x ph <-> A. y ps ) $=
      ( ax-17 cbvalh ) ABCDADFBCFEG $.

    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.) $)
    cbvexv $p |- ( E. x ph <-> E. y ps ) $=
      ( ax-17 cbvexh ) ABCDADFBCFEG $.
  $}

  ${
    $d y x $.  $d y z $.  $d w x $.  $d w z $.
    cbval2.1 $e |- F/ z ph $.
    cbval2.2 $e |- F/ w ph $.
    cbval2.3 $e |- F/ x ps $.
    cbval2.4 $e |- F/ y ps $.
    cbval2.5 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 22-Dec-2003.)  (Revised by Mario Carneiro,
       6-Oct-2016.)  (Proof shortened by Wolf Lammen, 22-Apr-2018.) $)
    cbval2 $p |- ( A. x A. y ph <-> A. z A. w ps ) $=
      ( wal nfal weq wi nfv nfim wb cbval 19.21v pm5.74d 3bitr3i pm5.74ri
      expcom ) ADLZBFLZCEAEDGMBCFIMCENZUEUFUGAOZDLUGBOZFLUGUEOUGUFOUHUIDFUGAFUG
      FPHQUGBDUGDPJQDFNZUGABUGUJABRKUDUASUGADTUGBFTUBUCS $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 14-Sep-2003.)  (Revised by Mario Carneiro,
       6-Oct-2016.) $)
    cbvex2 $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( wex nfex weq wb wa nfv nfan cbvex 19.42v wi expcom pm5.32d pm5.32 mpbir
      3bitr3i ) ADLZBFLZCEAEDGMBCFIMCENZUGUHOUAUIUGPZUIUHPZOUIAPZDLUIBPZFLUJUKU
      LUMDFUIAFUIFQHRUIBDUIDQJRDFNZUIABUIUNABOKUBUCSUIADTUIBFTUFUIUGUHUDUES $.
  $}

  ${
    $d z w ph $.  $d x y ps $.  $d x w $.  $d z y $.
    cbval2v.1 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 4-Feb-2005.) $)
    cbval2v $p |- ( A. x A. y ph <-> A. z A. w ps ) $=
      ( nfv cbval2 ) ABCDEFAEHAFHBCHBDHGI $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 26-Jul-1995.) $)
    cbvex2v $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( nfv cbvex2 ) ABCDEFAEHAFHBCHBDHGI $.
  $}

  ${
    $d x ph $.  $d x ch $.
    cbvald.1 $e |- F/ y ph $.
    cbvald.2 $e |- ( ph -> F/ y ps ) $.
    cbvald.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction used to change bound variables, using implicit substitution,
       particularly useful in conjunction with ~ dvelim .  (Contributed by NM,
       2-Jan-2002.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Revised by Wolf
       Lammen, 13-May-2018.) $)
    cbvald $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( nfv wnf a1i cbv2 ) ABCDEADIFGCDJACDIKHL $.
  $}

  ${
    $d x ph $.  $d x ch $.
    cbvexdh.1 $e |- ( ph -> A. y ph ) $.
    cbvexdh.2 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    cbvexdh.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction used to change bound variables, using implicit substitition,
       particularly useful in conjunction with ~ dvelim .  (Contributed by NM,
       2-Jan-2002.)  (Proof rewritten by Jim Kingdon, 30-Dec-2017.) $)
    cbvexdh $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( wex ax-17 cv wceq wa wb wi equsexd simpr eximi syl6bir wal hbex equcomi
      bicom1 imim12i syl exlimdh eximdh 19.12 syl6 a1i exlimd2 impbid ) ABDIZCE
      IZABUNDADJZCDECDJZUAABEKZDKZLZCMZEIUNACBEDFGAURUQLZBCNZOUSCBNZOHUSVAVBVCE
      DUBBCUCUDUEPUTCEUSCQRSUFACUMEFAUMBETZDIUMETABVDDUOGUGBDEUHUIACVABMZDIUMAB
      CDEUOCCDTOAUPUJHPVEBDVABQRSUKUL $.
  $}

  ${
    $d x ph $.  $d x ch $.
    cbvexd.1 $e |- F/ y ph $.
    cbvexd.2 $e |- ( ph -> F/ y ps ) $.
    cbvexd.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction used to change bound variables, using implicit substitution,
       particularly useful in conjunction with ~ dvelim .  (Contributed by NM,
       2-Jan-2002.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof rewritten
       by Jim Kingdon, 10-Jun-2018.) $)
    cbvexd $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( nfri nfrd cbvexdh ) ABCDEAEFIABEGJHK $.
  $}

  ${
    $d ps y $.  $d ch x $.  $d ph x $.  $d ph y $.
    cbvaldva.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    $( Rule used to change the bound variable in a universal quantifier with
       implicit substitution.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    cbvaldva $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( nfv nfvd weq wb ex cbvald ) ABCDEAEGABEHADEIBCJFKL $.

    $( Rule used to change the bound variable in an existential quantifier with
       implicit substitution.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    cbvexdva $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( nfv nfvd weq wb ex cbvexd ) ABCDEAEGABEHADEIBCJFKL $.
  $}

  ${
    $v f $.
    $v g $.
    $( Define temporary individual variables. $)
    cbvex4v.vf $f setvar f $.
    cbvex4v.vg $f setvar g $.
    $d w z ch $.  $d u v ph $.  $d x y ps $.  $d f g ps $.  $d f w $.
    $d g z $.  $d u v w x y z $.
    cbvex4v.1 $e |- ( ( x = v /\ y = u ) -> ( ph <-> ps ) ) $.
    cbvex4v.2 $e |- ( ( z = f /\ w = g ) -> ( ps <-> ch ) ) $.
    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 26-Jul-1995.) $)
    cbvex4v $p |- ( E. x E. y E. z E. w ph <-> E. v E. u E. f E. g ch ) $=
      ( wex weq wa 2exbidv cbvex2v 2exbii bitri ) AGNFNZENDNBGNFNZINHNCKNJNZINH
      NUAUBDEHIDHOEIOPABFGLQRUBUCHIBCFGJKMRST $.
  $}

  ${
    eean.1 $e |- F/ y ph $.
    eean.2 $e |- F/ x ps $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 27-Oct-2010.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    eean $p |- ( E. x E. y ( ph /\ ps ) <-> ( E. x ph /\ E. y ps ) ) $=
      ( wa wex 19.42 exbii nfex 19.41 bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJAO
      CBCDFKLM $.
  $}

  ${
    $d y ph $.  $d x ps $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 26-Jul-1995.) $)
    eeanv $p |- ( E. x E. y ( ph /\ ps ) <-> ( E. x ph /\ E. y ps ) ) $=
      ( nfv eean ) ABCDADEBCEF $.
  $}

  ${
    $d y ph $.  $d z ph $.  $d x z ps $.  $d x y ch $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 26-Jul-1995.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    eeeanv $p |- ( E. x E. y E. z ( ph /\ ps /\ ch ) <->
                 ( E. x ph /\ E. y ps /\ E. z ch ) ) $=
      ( w3a wex wa df-3an 3exbii eeanv exbii anbi1i 19.41v 3bitr4i 3bitri ) ABC
      GZFHEHDHABIZCIZFHEHZDHSEHZCFHZIZDHZADHZBEHZUCGZRTDEFABCJKUAUDDSCEFLMUBDHZ
      UCIUFUGIZUCIUEUHUIUJUCABDELNUBUCDOUFUGUCJPQ $.
  $}

  ${
    $d z ph $.  $d w ph $.  $d x ps $.  $d y ps $.  $d y z $.  $d w x $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 31-Jul-1995.) $)
    ee4anv $p |- ( E. x E. y E. z E. w ( ph /\ ps ) <->
                  ( E. x E. y ph /\ E. z E. w ps ) ) $=
      ( wa wex excom exbii eeanv 2exbii 3bitri ) ABGFHZEHDHZCHNDHZEHZCHADHZBFHZ
      GZEHCHRCHSEHGOQCNDEIJPTCEABDFKLRSCEKM $.
  $}

  ${
    $v s $.
    $( Define a temporary individual variable. $)
    ee8anv.vs $f setvar s $.

    $d v ph $.  $d u ph $.  $d t ph $.  $d s ph $.  $d x ps $.  $d y ps $.
    $d z ps $.  $d w ps $.  $d s x $.  $d s y $.  $d s z $.  $d t w $.
    $d t x $.  $d t y $.  $d u w $.  $d u x $.  $d u z $.  $d v w $.  $d v y $.
    $d v z $.
    $( Rearrange existential quantifiers.  (Contributed by Jim Kingdon,
       23-Nov-2019.) $)
    ee8anv $p |- ( E. x E. y E. z E. w E. v E. u E. t E. s ( ph /\ ps ) <->
                  ( E. x E. y E. z E. w ph /\ E. v E. u E. t E. s ps ) ) $=
      ( wa wex exrot4 2exbii ee4anv 3bitri ) ABKJLILZHLGLFLELZDLCLQFLELZHLGLZDL
      CLAFLELZBJLILZKZHLGLZDLCLUADLCLUBHLGLKRTCDQEFGHMNTUDCDSUCGHABEFIJONNUAUBC
      DGHOP $.
  $}

  ${
    $d x ph $.
    nexdv.1 $e |- ( ph -> -. ps ) $.
    $( Deduction for generalization rule for negated wff.  (Contributed by NM,
       5-Aug-1993.) $)
    nexdv $p |- ( ph -> -. E. x ps ) $=
      ( ax-17 nexd ) ABCACEDF $.
  $}

  ${
    $d x ps $.
    chv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    chv.2 $e |- ph $.
    $( Implicit substitution of ` y ` for ` x ` into a theorem.  (Contributed
       by NM, 20-Apr-1994.) $)
    chvarv $p |- ps $=
      ( spv mpg ) ABCABCDEGFH $.
  $}

  ${
    $d x z $.  $d y z $.
    $( When the class variables of set theory are replaced with setvar
       variables, this theorem of predicate calculus is the result.  This
       theorem provides part of the justification for the consistency of that
       definition, which "overloads" the setvar variables in ~ wel with the
       class variables in ~ wcel .  (Contributed by NM, 28-Jan-2004.) $)
    cleljust $p |- ( x e. y <-> E. z ( z = x /\ z e. y ) ) $=
      ( weq wel wa wex ax-17 elequ1 equsex bicomi ) CADCBEZFCGABEZLMCAMCHCABIJK
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        More substitution theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$( The theorems in this section make use of the $d statement. $)

  ${
    $d x y $.
    $( ` x ` is not free in ` [ y / x ] ph ` when ` x ` and ` y ` are
       distinct.  (Contributed by NM, 5-Aug-1993.)  (Proof by Jim Kingdon,
       16-Dec-2017.)  (New usage is discouraged.) $)
    hbs1 $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb weq wi wal sb6 ax-ial hbxfrbi ) ABCDBCEAFZBGBABCHKBIJ $.

    $( ` x ` is not free in ` [ y / x ] ph ` when ` x ` and ` y ` are
       distinct.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfs1v $p |- F/ x [ y / x ] ph $=
      ( wsb hbs1 nfi ) ABCDBABCEF $.
  $}

  ${
    $d y ph $.
    $( Two ways of expressing " ` x ` is (effectively) not free in ` ph ` ."
       (Contributed by NM, 29-May-2009.) $)
    sbhb $p |- ( ( ph -> A. x ph ) <-> A. y ( ph -> [ y / x ] ph ) ) $=
      ( wal wi wsb ax-17 sb8h imbi2i 19.21v bitr4i ) AABDZEAABCFZCDZEAMECDLNAAB
      CACGHIAMCJK $.
  $}

  ${
    $d x z $.  $d y z $.
    hbsbv.1 $e |- ( ph -> A. z ph ) $.
    $( This is a version of ~ hbsb with an extra distinct variable constraint,
       on ` z ` and ` x ` .  (Contributed by Jim Kingdon, 25-Dec-2017.) $)
    hbsbv $p |- ( [ y / x ] ph -> A. z [ y / x ] ph ) $=
      ( wsb weq wi wa wex df-sb ax-17 hbim hban hbex hbxfrbi ) ABCFBCGZAHZQAIZB
      JZIDABCKRTDQADQDLZEMSDBQADUAENONP $.
  $}

  ${
    $d x y $.  $d y z $.
    nfsbxy.1 $e |- F/ z ph $.
    $( Similar to ~ hbsb but with an extra distinct variable constraint, on
       ` x ` and ` y ` .  (Contributed by Jim Kingdon, 19-Mar-2018.) $)
    nfsbxy $p |- F/ z [ y / x ] ph $=
      ( weq wal wi wo wsb wnf ax-bndl nfs1v drsb1 drnf2 mpbii a16nf df-nf albii
      jaoi wa wex sb5 nfa1 sp a1i nfand nfexd nfxfrd sylbir ax-mp ) DBFDGZDCFDG
      ZBCFZUNDGHDGZBGZIZIABCJZDKZBCDLULUSUQULADCJZDKUSADCMUTURDBDADBCNOPUMUSUPU
      RDCDQUPUNDKZBGZUSVAUOBUNDRSURUNAUAZBUBVBDABCUCVBVCDBVABUDVBUNADVABUEADKVB
      EUFUGUHUIUJTTUK $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Closed form of ~ nfsbxy .  (Contributed by Jim Kingdon, 9-May-2018.) $)
    nfsbxyt $p |- ( A. x F/ z ph -> F/ z [ y / x ] ph ) $=
      ( weq wal wi wo wnf wsb ax-bndl nfs1v drsb1 drnf2 mpbii a1d wa nfa1 jaoi
      sp a16nf df-nf albii wex sb5 nfan adantr adantl nfand nfexd nfxfrd sylbir
      ex ax-mp ) DBEDFZDCEDFZBCEZUQDFGDFZBFZHZHADIZBFZABCJZDIZGZBCDKUOVEUTUOVDV
      BUOADCJZDIVDADCLVFVCDBDADBCMNOPUPVEUSUPVDVBVCDCDUAPUSUQDIZBFZVEVGURBUQDUB
      UCVHVBVDVCUQAQZBUDVHVBQZDABCUEVJVIDBVHVBBVGBRVABRUFVJUQADVHVGVBVGBTUGVBVA
      VHVABTUHUIUJUKUMULSSUN $.
  $}

  ${
    $d x z $.  $d y z $.
    sbco2vlem.1 $e |- ( ph -> A. z ph ) $.
    $( This is a version of ~ sbco2 where ` z ` is distinct from ` x ` and from
       ` y ` .  It is a lemma on the way to proving ~ sbco2v which only
       requires that ` z ` and ` x ` be distinct.  (Contributed by Jim Kingdon,
       25-Dec-2017.)  (One distinct variable constraint removed by Jim Kingdon,
       3-Feb-2018.) $)
    sbco2vlem $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( wsb hbsbv sbequ sbieh ) ABDFABCFDCABCDEGADCBHI $.
  $}

  ${
    $d x z w $.  $d y w $.  $d z w $.  $d ph w $.
    sbco2v.1 $e |- ( ph -> A. z ph ) $.
    $( This is a version of ~ sbco2 where ` z ` is distinct from ` x ` .
       (Contributed by Jim Kingdon, 12-Feb-2018.) $)
    sbco2v $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( vw wsb sbco2vlem sbbii ax-17 3bitr3i ) ABDGZDFGZFCGABFGZFCGLDCGABCGMNFC
      ABFDEHILDCFLFJHABCFAFJHK $.
  $}

  ${
    $d w y z $.  $d w ph $.  $d w x $.
    nfsb.1 $e |- F/ z ph $.
    $( If ` z ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` when
       ` y ` and ` z ` are distinct.  (Contributed by Mario Carneiro,
       11-Aug-2016.)  (Proof rewritten by Jim Kingdon, 19-Mar-2018.) $)
    nfsb $p |- F/ z [ y / x ] ph $=
      ( vw wsb wnf nfsbxy ax-17 sbco2v nfbii mpbi ) ABFGZFCGZDHABCGZDHNFCDABFDE
      IIOPDABCFAFJKLM $.
  $}

  ${
    $d y z $.
    hbsb.1 $e |- ( ph -> A. z ph ) $.
    $( If ` z ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` when
       ` y ` and ` z ` are distinct.  (Contributed by NM, 12-Aug-1993.)  (Proof
       rewritten by Jim Kingdon, 22-Mar-2018.) $)
    hbsb $p |- ( [ y / x ] ph -> A. z [ y / x ] ph ) $=
      ( wsb nfi nfsb nfri ) ABCFDABCDADEGHI $.
  $}

  ${
    $d y z $.  $d x y $.
    $( Lemma for ~ equsb3 .  (Contributed by NM, 4-Dec-2005.)  (Proof shortened
       by Andrew Salmon, 14-Jun-2011.) $)
    equsb3lem $p |- ( [ x / y ] y = z <-> x = z ) $=
      ( cv wceq ax-17 equequ1 sbieh ) BDCDZEADIEZBAJBFBACGH $.
  $}

  ${
    $d w y z $.  $d w x $.
    $( Substitution applied to an atomic wff.  (Contributed by Raph Levien and
       FL, 4-Dec-2005.) $)
    equsb3 $p |- ( [ x / y ] y = z <-> x = z ) $=
      ( vw weq wsb equsb3lem sbbii ax-17 sbco2v 3bitr3i ) BCEZBDFZDAFDCEZDAFLBA
      FACEMNDADBCGHLBADLDIJADCGK $.
  $}

  ${
    $d z ph $.  $d z ps $.  $d z x $.  $d z y $.

    $( Negation inside and outside of substitution are equivalent.
       (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sbn $p |- ( [ y / x ] -. ph <-> -. [ y / x ] ph ) $=
      ( vz wn wsb sbnv sbbii bitri ax-17 hbn sbco2v notbii 3bitr3i ) AEZBDFZDCF
      ZABDFZDCFZEZOBCFABCFZEQREZDCFTPUBDCABDGHRDCGIOBCDADADJZKLSUAABCDUCLMN $.

    $( Implication inside and outside of substitution are equivalent.
       (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sbim $p |- ( [ y / x ] ( ph -> ps ) <->
        ( [ y / x ] ph -> [ y / x ] ps ) ) $=
      ( vz wi wsb sbimv sbbii bitri ax-17 sbco2v imbi12i 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBCEGZEDGZFZOCDGACDGZBCDGZFQRTFZEDGUBPUEEDABCEHIRTEDHJOCDEOEKLSUC
      UAUDACDEAEKLBCDEBEKLMN $.

    $( Logical OR inside and outside of substitution are equivalent.
       (Contributed by NM, 29-Sep-2002.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sbor $p |- ( [ y / x ] ( ph \/ ps ) <->
        ( [ y / x ] ph \/ [ y / x ] ps ) ) $=
      ( vz wo wsb sborv sbbii bitri ax-17 sbco2v orbi12i 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBCEGZEDGZFZOCDGACDGZBCDGZFQRTFZEDGUBPUEEDABCEHIRTEDHJOCDEOEKLSUC
      UAUDACDEAEKLBCDEBEKLMN $.

    $( Conjunction inside and outside of a substitution are equivalent.
       (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sban $p |- ( [ y / x ] ( ph /\ ps ) <->
        ( [ y / x ] ph /\ [ y / x ] ps ) ) $=
      ( vz wa wsb sbanv sbbii bitri ax-17 sbco2v anbi12i 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBCEGZEDGZFZOCDGACDGZBCDGZFQRTFZEDGUBPUEEDABCEHIRTEDHJOCDEOEKLSUC
      UAUDACDEAEKLBCDEBEKLMN $.
  $}

  ${
    sbrim.1 $e |- ( ph -> A. x ph ) $.
    $( Substitution with a variable not free in antecedent affects only the
       consequent.  (Contributed by NM, 5-Aug-1993.) $)
    sbrim $p |- ( [ y / x ] ( ph -> ps ) <-> ( ph -> [ y / x ] ps ) ) $=
      ( wi wsb sbim sbh imbi1i bitri ) ABFCDGACDGZBCDGZFAMFABCDHLAMACDEIJK $.
  $}

  ${
    sblim.1 $e |- F/ x ps $.
    $( Substitution with a variable not free in consequent affects only the
       antecedent.  (Contributed by NM, 14-Nov-2013.)  (Revised by Mario
       Carneiro, 4-Oct-2016.) $)
    sblim $p |- ( [ y / x ] ( ph -> ps ) <-> ( [ y / x ] ph -> ps ) ) $=
      ( wi wsb sbim sbf imbi2i bitri ) ABFCDGACDGZBCDGZFLBFABCDHMBLBCDEIJK $.
  $}

  $( Conjunction inside and outside of a substitution are equivalent.
     (Contributed by NM, 14-Dec-2006.) $)
  sb3an $p |- ( [ y / x ] ( ph /\ ps /\ ch ) <->
              ( [ y / x ] ph /\ [ y / x ] ps /\ [ y / x ] ch ) ) $=
    ( w3a wsb wa df-3an sbbii sban anbi1i bitr4i 3bitri ) ABCFZDEGABHZCHZDEGPDE
    GZCDEGZHZADEGZBDEGZSFZOQDEABCIJPCDEKTUAUBHZSHUCRUDSABDEKLUAUBSIMN $.

  $( Equivalence inside and outside of a substitution are equivalent.
     (Contributed by NM, 5-Aug-1993.) $)
  sbbi $p |- ( [ y / x ] ( ph <-> ps )
     <-> ( [ y / x ] ph <-> [ y / x ] ps ) ) $=
    ( wb wsb wi wa dfbi2 sbbii sbim anbi12i sban 3bitr4i bitri ) ABEZCDFABGZBAG
    ZHZCDFZACDFZBCDFZEZPSCDABIJQCDFZRCDFZHUAUBGZUBUAGZHTUCUDUFUEUGABCDKBACDKLQR
    CDMUAUBINO $.

  ${
    sblbis.1 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Introduce left biconditional inside of a substitution.  (Contributed by
       NM, 19-Aug-1993.) $)
    sblbis $p |- ( [ y / x ] ( ch <-> ph ) <-> ( [ y / x ] ch <-> ps ) ) $=
      ( wb wsb sbbi bibi2i bitri ) CAGDEHCDEHZADEHZGLBGCADEIMBLFJK $.
  $}

  ${
    sbrbis.1 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Introduce right biconditional inside of a substitution.  (Contributed by
       NM, 18-Aug-1993.) $)
    sbrbis $p |- ( [ y / x ] ( ph <-> ch ) <-> ( ps <-> [ y / x ] ch ) ) $=
      ( wb wsb sbbi bibi1i bitri ) ACGDEHADEHZCDEHZGBMGACDEILBMFJK $.
  $}

  ${
    sbrbif.1 $e |- ( ch -> A. x ch ) $.
    sbrbif.2 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Introduce right biconditional inside of a substitution.  (Contributed by
       NM, 18-Aug-1993.) $)
    sbrbif $p |- ( [ y / x ] ( ph <-> ch ) <-> ( ps <-> ch ) ) $=
      ( wb wsb sbrbis sbh bibi2i bitri ) ACHDEIBCDEIZHBCHABCDEGJNCBCDEFKLM $.
  $}

  ${
    $d y z $.
    sbco2yz.1 $e |- F/ z ph $.
    $( This is a version of ~ sbco2 where ` z ` is distinct from ` y ` .  It is
       a lemma on the way to proving ~ sbco2 which has no distinct variable
       constraints.  (Contributed by Jim Kingdon, 19-Mar-2018.) $)
    sbco2yz $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( wsb nfsb nfri sbequ sbieh ) ABDFABCFZDCKDABCDEGHADCBIJ $.
  $}

  ${
    $d w z $.  $d w x $.  $d w y $.  $d ph w $.
    sbco2h.1 $e |- ( ph -> A. z ph ) $.
    $( A composition law for substitution.  (Contributed by NM, 30-Jun-1994.)
       (Proof rewritten by Jim Kingdon, 19-Mar-2018.) $)
    sbco2h $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( vw wsb nfi sbco2yz sbbii nfv 3bitr3i ) ABDGZDFGZFCGABFGZFCGMDCGABCGNOFC
      ABFDADEHIJMDCFMFKIABCFAFKIL $.
  $}

  ${
    sbco2.1 $e |- F/ z ph $.
    $( A composition law for substitution.  (Contributed by NM, 30-Jun-1994.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sbco2 $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( nfri sbco2h ) ABCDADEFG $.
  $}

  ${
    sbco2d.1 $e |- ( ph -> A. x ph ) $.
    sbco2d.2 $e |- ( ph -> A. z ph ) $.
    sbco2d.3 $e |- ( ph -> ( ps -> A. z ps ) ) $.
    $( A composition law for substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbco2d $p |- ( ph -> ( [ y / z ] [ z / x ] ps <-> [ y / x ] ps ) ) $=
      ( wsb wi hbim1 sbco2h sbrim sbbii bitri 3bitr3i pm5.74ri ) ABCEIZEDIZBCDI
      ZABJZCEIZEDIZUACDIASJZATJUACDEABEGHKLUCARJZEDIUDUBUEEDABCEFMNAREDGMOABCDF
      MPQ $.
  $}

  ${
    $d x z $.
    sbco2vd.1 $e |- ( ph -> A. x ph ) $.
    sbco2vd.2 $e |- ( ph -> A. z ph ) $.
    sbco2vd.3 $e |- ( ph -> ( ps -> A. z ps ) ) $.
    $( Version of ~ sbco2d with a distinct variable constraint between ` x `
       and ` z ` .  (Contributed by Jim Kingdon, 19-Feb-2018.) $)
    sbco2vd $p |- ( ph -> ( [ y / z ] [ z / x ] ps <-> [ y / x ] ps ) ) $=
      ( wsb wi hbim1 sbco2v sbrim sbbii bitri 3bitr3i pm5.74ri ) ABCEIZEDIZBCDI
      ZABJZCEIZEDIZUACDIASJZATJUACDEABEGHKLUCARJZEDIUDUBUEEDABCEFMNAREDGMOABCDF
      MPQ $.
  $}

  $( A composition law for substitution.  (Contributed by NM, 5-Aug-1993.) $)
  sbco $p |- ( [ y / x ] [ x / y ] ph <-> [ y / x ] ph ) $=
    ( wsb wb weq equsb2 sbequ12 bicomd sbimi ax-mp sbbi mpbi ) ACBDZAEZBCDZNBCD
    ABCDECBFZBCDPBCGQOBCQANACBHIJKNABCLM $.

  ${
    $d x y $.
    $( Version of ~ sbco3 with a distinct variable constraint between ` x ` and
       ` y ` .  (Contributed by Jim Kingdon, 19-Feb-2018.) $)
    sbco3v $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ x / y ] ph ) $=
      ( wsb nfs1v nfri sbco2v sbco sbbii bitr3i ) ABCEZCDELCBEZBDEACBEZBDELCDBL
      BABCFGHMNBDACBIJK $.
  $}

  $( Relationship between composition and commutativity for substitution.
     (Contributed by Jim Kingdon, 28-Feb-2018.) $)
  sbcocom $p |- ( [ z / y ] [ y / x ] ph <-> [ z / y ] [ z / x ] ph ) $=
    ( wsb wb weq equsb1 sbequ sbimi ax-mp sbbi mpbi ) ABCEZABDEZFZCDEZNCDEOCDEF
    CDGZCDEQCDHRPCDACDBIJKNOCDLM $.

  ${
    $d x z $.
    $( Version of ~ sbcom with a distinct variable constraint between ` x ` and
       ` z ` .  (Contributed by Jim Kingdon, 28-Feb-2018.) $)
    sbcomv $p |- ( [ y / z ] [ y / x ] ph <-> [ y / x ] [ y / z ] ph ) $=
      ( wsb sbco3v sbcocom 3bitr3i ) ABDEDCEADBEBCEABCEDCEADCEBCEABDCFABDCGADBC
      GH $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Version of ~ sbcom with distinct variable constraints between ` x ` and
       ` y ` , and ` y ` and ` z ` .  (Contributed by Jim Kingdon,
       21-Mar-2018.) $)
    sbcomxyyz $p |- ( [ y / z ] [ y / x ] ph <-> [ y / x ] [ y / z ] ph ) $=
      ( weq wal wi wo wsb wb ax-ial drsb1 sbbid bitr3d sbequ12 sps wnf a1i nfrd
      nfs1v ax-bndl hbae df-nf albii nfsb nfr wa nfa1 nfan nfri sylan9bb adantl
      nfnf1 ex sbiedh syld bicomd sylbir jaoi ax-mp ) DBEZDFZDCEZDFZBCEZVEDFZGD
      FZBFZHZHABCIZDCIZADCIZBCIZJZBCDUAVBVNVIVBVLDCIVKVMVBVLVJDCVADKADBCLMVLDBC
      LNVDVNVHVDVJVKVMVCVJVKJDVJDCOZPVDAVLBCDCBUBVCAVLJDADCOPMNVHVEDQZBFZVNVPVG
      BVEDUCUDVQVMVKVQVLVKBCVPBKVQVKBVKBQVQVJDCBABCTUERSVPVEVLVKJZGBVPVEVFVRVED
      UFVPVFVRVPVFUGZAVKDCVSDVPVFDVEDUMVEDUHUIUJVSVKDVKDQVSVJDCTRSVFVCAVKJZGZVP
      VEWADVEVCVTVEAVJVCVKABCOVOUKUNPULUOUNUPPUOUQURUSUSUT $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Version of ~ sbco3 with distinct variable constraints between ` x ` and
       ` z ` , and ` y ` and ` z ` .  Lemma for proving ~ sbco3 .  (Contributed
       by Jim Kingdon, 22-Mar-2018.) $)
    sbco3xzyz $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ x / y ] ph ) $=
      ( wsb sbcomxyyz sbcocom 3bitr4i ) ABDECDEACDEBDEABCECDEACBEBDEABDCFABCDGA
      CBDGH $.
  $}

  ${
    $d w x $.  $d w y $.  $d w ph $.
    $( A composition law for substitution.  (Contributed by NM, 5-Aug-1993.)
       (Proof rewritten by Jim Kingdon, 22-Mar-2018.) $)
    sbco3 $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ x / y ] ph ) $=
      ( vw wsb sbco3xzyz sbbii ax-17 sbco2h 3bitr3i ) ABCFZCEFZEDFACBFZBEFZEDFL
      CDFNBDFMOEDABCEGHLCDELEIJNBDENEIJK $.
  $}

  $( A commutativity law for substitution.  (Contributed by NM, 27-May-1997.)
     (Proof rewritten by Jim Kingdon, 22-Mar-2018.) $)
  sbcom $p |- ( [ y / z ] [ y / x ] ph <-> [ y / x ] [ y / z ] ph ) $=
    ( wsb sbco3 sbcocom 3bitr3i ) ABDEDCEADBEBCEABCEDCEADCEBCEABDCFABDCGADBCGH
    $.

  ${
    $d w y z $.  $d w ph $.  $d w x $.
    $( Closed form of ~ nfsb .  (Contributed by Jim Kingdon, 9-May-2018.) $)
    nfsbt $p |- ( A. x F/ z ph -> F/ z [ y / x ] ph ) $=
      ( vw wnf wal wsb ax-17 nfsbxyt alimi syl nfv sbco2 nfbii sylib ) ADFBGZQE
      GZABCHZDFZQEIRABEHZECHZDFZTRUADFZEGUCQUDEABEDJKUAECDJLUBSDABCEAEMNOPL $.
  $}

  ${
    $d y z $.
    nfsbd.1 $e |- F/ x ph $.
    nfsbd.2 $e |- ( ph -> F/ z ps ) $.
    $( Deduction version of ~ nfsb .  (Contributed by NM, 15-Feb-2013.) $)
    nfsbd $p |- ( ph -> F/ z [ y / x ] ps ) $=
      ( wal wnf wsb nfri alimi nfsbt 3syl ) AACHBEIZCHBCDJEIACFKAOCGLBCDEMN $.
  $}

  ${
    $d w y z $.  $d w x $.
    $( Substitution applied to an atomic membership wff.  (Contributed by NM,
       7-Nov-2006.)  (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
    elsb3 $p |- ( [ x / y ] y e. z <-> x e. z ) $=
      ( vw wel wsb ax-17 elequ1 sbieh sbbii sbco2h bitr3i wb equsb1 sbimi ax-mp
      weq sbbi mpbi sbh 3bitri ) BCEZBAFZDCEZDAFZACEZDAFZUFUCUDDBFZBAFUEUHUBBAU
      DUBDBUBDGDBCHIJUDDABUDBGKLUDUFMZDAFZUEUGMDAQZDAFUJDANUKUIDADACHOPUDUFDARS
      UFDAUFDGTUA $.
  $}

  ${
    $d w y z $.  $d w x $.
    $( Substitution applied to an atomic membership wff.  (Contributed by
       Rodolfo Medina, 3-Apr-2010.)  (Proof shortened by Andrew Salmon,
       14-Jun-2011.) $)
    elsb4 $p |- ( [ x / y ] z e. y <-> z e. x ) $=
      ( vw wel wsb ax-17 elequ2 sbieh sbbii sbco2h bitr3i wb equsb1 sbimi ax-mp
      weq sbbi mpbi sbh 3bitri ) CBEZBAFZCDEZDAFZCAEZDAFZUFUCUDDBFZBAFUEUHUBBAU
      DUBDBUBDGDBCHIJUDDABUDBGKLUDUFMZDAFZUEUGMDAQZDAFUJDANUKUIDADACHOPUDUFDARS
      UFDAUFDGTUA $.
  $}

  ${
    $d x y $.
    $( Like ~ sb9 but with a distinct variable constraint between ` x ` and
       ` y ` .  (Contributed by Jim Kingdon, 28-Feb-2018.) $)
    sb9v $p |- ( A. x [ x / y ] ph <-> A. y [ y / x ] ph ) $=
      ( wsb hbs1 weq wb sbequ12 equcoms bitr3d cbvalh ) ACBDZABCDZBCACBEABCEBCF
      ALMALGCBACBHIABCHJK $.
  $}

  ${
    $d w x $.  $d w y $.  $d w ph $.
    $( Commutation of quantification and substitution variables.  (Contributed
       by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon, 23-Mar-2018.) $)
    sb9 $p |- ( A. x [ x / y ] ph <-> A. y [ y / x ] ph ) $=
      ( vw wsb wal sb9v sbcom albii 3bitri ax-17 sbco2h 3bitr3ri ) ABDEZDCEZCFZ
      ACDEZDBEZBFZABCEZCFACBEZBFPNCDEZDFQBDEZDFSNCDGUBUCDABDCHIQDBGJOTCABCDADKZ
      LIRUABACBDUDLIM $.
  $}

  $( Commutation of quantification and substitution variables.  (Contributed by
     NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon, 23-Mar-2018.) $)
  sb9i $p |- ( A. x [ x / y ] ph -> A. y [ y / x ] ph ) $=
    ( wsb wal sb9 biimpi ) ACBDBEABCDCEABCFG $.

  ${
    $d x y z $.  $d y z ph $.
    $( Two ways of expressing " ` x ` is (effectively) not free in ` ph ` ."
       (Contributed by G&eacute;rard Lang, 14-Nov-2013.)  (Revised by Mario
       Carneiro, 6-Oct-2016.) $)
    sbnf2 $p |- ( F/ x ph
       <-> A. y A. z ( [ y / x ] ph <-> [ z / x ] ph ) ) $=
      ( wsb wb wal wi wnf 2albiim sbhb albii alcom 3bitri nfv nfs1v sblim bitri
      wa sb8 df-nf anbi12i anidm 3bitr2ri ) ABCEZABDEZFDGCGUEUFHZDGCGZUFUEHZDGZ
      CGZSABIZULSULUEUFCDJULUHULUKULAUFHZBGZDGZUGCGZDGUHULAABGHZBGZUMDGZBGUOABU
      AZUQUSBABDKLUMBDMNUNUPDUNUMBCEZCGUPUMBCUMCOTVAUGCAUFBCABDPQLRLUGDCMNULAUE
      HZBGZCGZUKULURVBCGZBGVDUTUQVEBABCKLVBBCMNVCUJCVCVBBDEZDGUJVBBDVBDOTVFUIDA
      UEBDABCPQLRLRUBULUCUD $.
  $}

  ${
    $d y z $.
    hbsbd.1 $e |- ( ph -> A. x ph ) $.
    hbsbd.2 $e |- ( ph -> A. z ph ) $.
    hbsbd.3 $e |- ( ph -> ( ps -> A. z ps ) ) $.
    $( Deduction version of ~ hbsb .  (Contributed by NM, 15-Feb-2013.)  (Proof
       rewritten by Jim Kingdon, 23-Mar-2018.) $)
    hbsbd $p |- ( ph -> ( [ y / x ] ps -> A. z [ y / x ] ps ) ) $=
      ( wsb nfi wi wnf nfdh nfim1 nfsb sbrim nfbii mpbi nfrimi nfrd ) ABCDIZEAU
      AEAEGJZABKZCDIZELAUAKZELUCCDEABEUBABEGHMNOUDUEEABCDFPQRST $.
  $}

  ${
    $d x y z $.  $d w y $.
    $( Equivalence for double substitution.  (Contributed by NM,
       3-Feb-2005.) $)
    2sb5 $p |- ( [ z / x ] [ w / y ] ph <->
               E. x E. y ( ( x = z /\ y = w ) /\ ph ) ) $=
      ( wsb weq wa wex sb5 19.42v anass exbii anbi2i 3bitr4ri bitri ) ACEFZBDFB
      DGZQHZBIRCEGZHAHZCIZBIQBDJSUBBRTAHZHZCIRUCCIZHUBSRUCCKUAUDCRTALMQUERACEJN
      OMP $.

    $( Equivalence for double substitution.  (Contributed by NM,
       3-Feb-2005.) $)
    2sb6 $p |- ( [ z / x ] [ w / y ] ph <->
               A. x A. y ( ( x = z /\ y = w ) -> ph ) ) $=
      ( wsb weq wi wal wa sb6 19.21v impexp albii imbi2i 3bitr4ri bitri ) ACEFZ
      BDFBDGZRHZBISCEGZJAHZCIZBIRBDKTUCBSUAAHZHZCISUDCIZHUCTSUDCLUBUECSUAAMNRUF
      SACEKOPNQ $.
  $}

  ${
    $d w x z $.  $d x y z $.
    $( Lemma for proving ~ sbcom2 .  It is the same as ~ sbcom2 but with
       additional distinct variable constraints on ` x ` and ` y ` , and on
       ` w ` and ` z ` .  (Contributed by Jim Kingdon, 19-Feb-2018.) $)
    sbcom2v $p |- ( [ w / z ] [ y / x ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( weq wal wsb alcom bi2.04 albii 19.21v bitri 3bitr3i sb6 imbi2i 3bitr4i
      wi ) DEFZBCFZARZBGZRZDGZTSARZDGZRZBGZABCHZDEHZADEHZBCHZTUERZBGZDGUMDGZBGU
      DUHUMDBIUNUCDUNSUARZBGUCUMUPBTSAJKSUABLMKUOUGBTUEDLKNUJSUIRZDGUDUIDEOUQUC
      DUIUBSABCOPKMULTUKRZBGUHUKBCOURUGBUKUFTADEOPKMQ $.
  $}

  ${
    $d v w x z $.  $d v y z $.  $d v ph $.
    $( Lemma for proving ~ sbcom2 .  It is the same as ~ sbcom2v but removes
       the distinct variable constraint on ` x ` and ` y ` .  (Contributed by
       Jim Kingdon, 19-Feb-2018.) $)
    sbcom2v2 $p |- ( [ w / z ] [ y / x ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( vv wsb sbcom2v sbbii bitri ax-17 sbco2v 3bitr3i ) ABFGZFCGZDEGZADEGZBFG
      ZFCGZABCGZDEGQBCGPNDEGZFCGSNFCDEHUARFCABFDEHIJOTDEABCFAFKLIQBCFQFKLM $.
  $}

  ${
    $d x z $.  $d v x w $.  $d v y z $.  $d v ph $.
    $( Commutativity law for substitution.  Used in proof of Theorem 9.7 of
       [Megill] p. 449 (p. 16 of the preprint).  (Contributed by NM,
       27-May-1997.)  (Proof modified to be intuitionistic by Jim Kingdon,
       19-Feb-2018.) $)
    sbcom2 $p |- ( [ w / z ] [ y / x ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( vv wsb sbcom2v2 sbbii bitri ax-17 sbco2v 3bitr3i ) ABCGZDFGZFEGZADFGZFE
      GZBCGZNDEGADEGZBCGPQBCGZFEGSOUAFEABCDFHIQBCFEHJNDEFNFKLRTBCADEFAFKLIM $.
  $}

  ${
    $d x y $.
    $( Equivalence for substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sb6a $p |- ( [ y / x ] ph <-> A. x ( x = y -> [ x / y ] ph ) ) $=
      ( wsb weq wi wal sb6 wb sbequ12 equcoms pm5.74i albii bitri ) ABCDBCEZAFZ
      BGOACBDZFZBGABCHPRBOAQAQICBACBJKLMN $.
  $}

  ${
    $d x y $.  $d x w $.  $d y z $.  $d z w $.
    2sb5rf.1 $e |- ( ph -> A. z ph ) $.
    2sb5rf.2 $e |- ( ph -> A. w ph ) $.
    $( Reversed double substitution.  (Contributed by NM, 3-Feb-2005.) $)
    2sb5rf $p |- ( ph <->
                E. z E. w ( ( z = x /\ w = y ) /\ [ z / x ] [ w / y ] ph ) ) $=
      ( weq wsb wex sb5rf 19.42v sbcom2 anbi2i anass bitri exbii hbsbv 3bitr4ri
      wa ) ADBHZABDIZTZDJUAECHZTZACEIBDIZTZEJZDJABDFKUCUHDUAUDUBCEIZTZTZEJUAUJE
      JZTUHUCUAUJELUGUKEUGUEUITUKUFUIUEACEBDMNUAUDUIOPQUBULUAUBCEABDEGRKNSQP $.

    $( Reversed double substitution.  (Contributed by NM, 3-Feb-2005.) $)
    2sb6rf $p |- ( ph <->
                A. z A. w ( ( z = x /\ w = y ) -> [ z / x ] [ w / y ] ph ) ) $=
      ( weq wsb wi wal wa sb6rf 19.21v sbcom2 imbi2i impexp bitri albii hbsbv
      3bitr4ri ) ADBHZABDIZJZDKUBECHZLZACEIBDIZJZEKZDKABDFMUDUIDUBUEUCCEIZJZJZE
      KUBUKEKZJUIUDUBUKENUHULEUHUFUJJULUGUJUFACEBDOPUBUEUJQRSUCUMUBUCCEABDEGTMP
      UASR $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( An alternate definition of proper substitution ~ df-sb .  By introducing
       a dummy variable ` z ` in the definiens, we are able to eliminate any
       distinct variable restrictions among the variables ` x ` , ` y ` , and
       ` ph ` of the definiendum.  No distinct variable conflicts arise because
       ` z ` effectively insulates ` x ` from ` y ` .  To achieve this, we use
       a chain of two substitutions in the form of ~ sb5 , first ` z ` for
       ` x ` then ` y ` for ` z ` .  Compare Definition 2.1'' of [Quine]
       p. 17.  Theorem ~ sb7f provides a version where ` ph ` and ` z ` don't
       have to be distinct.  (Contributed by NM, 28-Jan-2004.) $)
    dfsb7 $p |- ( [ y / x ] ph <-> E. z ( z = y /\ E. x ( x = z /\ ph ) ) ) $=
      ( wsb weq wa wex sb5 sbbii ax-17 sbco2v 3bitr3i ) ABDEZDCEBDFAGBHZDCEABCE
      DCFOGDHNODCABDIJABCDADKLODCIM $.
  $}

  ${
    $d w x z $.  $d w y z $.  $d w ph $.
    sb7f.1 $e |- ( ph -> A. z ph ) $.
    $( This version of ~ dfsb7 does not require that ` ph ` and ` z ` be
       distinct.  This permits it to be used as a definition for substitution
       in a formalization that omits the logically redundant axiom ~ ax-17 i.e.
       that doesn't have the concept of a variable not occurring in a wff.
       ( ~ df-sb is also suitable, but its mixing of free and bound variables
       is distasteful to some logicians.)  (Contributed by NM, 26-Jul-2006.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    sb7f $p |- ( [ y / x ] ph <->
               E. z ( z = y /\ E. x ( x = z /\ ph ) ) ) $=
      ( wsb weq wa wex sb5 sbbii sbco2v 3bitr3i ) ABDFZDCFBDGAHBIZDCFABCFDCGOHD
      INODCABDJKABCDELODCJM $.
  $}

  ${
    $d x z $.  $d y z $.
    sb7af.1 $e |- F/ z ph $.
    $( An alternative definition of proper substitution ~ df-sb .  Similar to
       ~ dfsb7a but does not require that ` ph ` and ` z ` be distinct.
       Similar to ~ sb7f in that it involves a dummy variable ` z ` , but
       expressed in terms of ` A. ` rather than ` E. ` .  (Contributed by Jim
       Kingdon, 5-Feb-2018.) $)
    sb7af $p |- ( [ y / x ] ph
                      <-> A. z
                             ( z = y
                             -> A. x ( x = z -> ph ) ) ) $=
      ( wsb weq wi wal sb6 sbbii sbco2 3bitr3i ) ABDFZDCFBDGAHBIZDCFABCFDCGOHDI
      NODCABDJKABCDELODCJM $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( An alternative definition of proper substitution ~ df-sb .  Similar to
       ~ dfsb7 in that it involves a dummy variable ` z ` , but expressed in
       terms of ` A. ` rather than ` E. ` .  For a version which only requires
       ` F/ z ph ` rather than ` z ` and ` ph ` being distinct, see ~ sb7af .
       (Contributed by Jim Kingdon, 5-Feb-2018.) $)
    dfsb7a $p |- ( [ y / x ] ph
                      <-> A. z
                             ( z = y
                             -> A. x ( x = z -> ph ) ) ) $=
      ( nfv sb7af ) ABCDADEF $.
  $}

  ${
    $d x y $.
    sb10f.1 $e |- ( ph -> A. x ph ) $.
    $( Hao Wang's identity axiom P6 in Irving Copi, _Symbolic Logic_ (5th ed.,
       1979), p. 328.  In traditional predicate calculus, this is a sole axiom
       for identity from which the usual ones can be derived.  (Contributed by
       NM, 9-May-2005.) $)
    sb10f $p |- ( [ y / z ] ph <-> E. x ( x = y /\ [ x / z ] ph ) ) $=
      ( weq wsb wa wex hbsb sbequ equsex bicomi ) BCFADBGZHBIADCGZNOBCADCBEJABC
      DKLM $.
  $}

  ${
    $d x ph $.
    $( An identity law for substitution.  Used in proof of Theorem 9.7 of
       [Megill] p. 449 (p. 16 of the preprint).  (Contributed by NM,
       5-Aug-1993.) $)
    sbid2v $p |- ( [ y / x ] [ x / y ] ph <-> ph ) $=
      ( ax-17 sbid2h ) ABCABDE $.
  $}

  ${
    $d x y $.  $d x ph $.
    $( Elimination of substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbelx $p |- ( ph <-> E. x ( x = y /\ [ x / y ] ph ) ) $=
      ( ax-17 sb5rf ) ACBABDE $.
  $}

  ${
    $( Note:  A more general case could also be proved with
       "$d x z $.  $d y w $.  $d x ph $.  $d y ph $.", but with more
       difficulty. $)
    $d x y z $.  $d w y $.  $d x y ph $.
    $( Elimination of double substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbel2x $p |- ( ph <-> E. x E. y ( ( x = z /\ y = w ) /\
                     [ y / w ] [ x / z ] ph ) ) $=
      ( weq wsb wa wex sbelx anbi2i exbii exdistr 3bitr4i anass 2exbii bitr4i )
      ABDFZCEFZADBGZECGZHZHZCIBIZRSHUAHZCIBIRTHZBIRUBCIZHZBIAUDUFUHBTUGRTCEJKLA
      BDJRUBBCMNUEUCBCRSUAOPQ $.
  $}

  ${
    $d x y z $.
    $( Move universal quantifier in and out of substitution.  Identical to
       ~ sbal except that it has an additional distinct variable constraint on
       ` y ` and ` z ` .  (Contributed by Jim Kingdon, 29-Dec-2017.) $)
    sbalyz $p |- ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) $=
      ( wal wsb nfa1 nfsbxy ax-4 sbimi alrimi weq wi sb6 albii alcom nfv stdpc5
      bitri alimi sb2 syl sylbi impbii ) ABEZCDFZACDFZBEZUFUGBUECDBABGHUEACDABI
      JKUHCDLZAMZBEZCEZUFUHUJCEZBEULUGUMBACDNOUJBCPSULUIUEMZCEUFUKUNCUIABUIBQRT
      UECDUAUBUCUD $.
  $}

  ${
    $d x y w $.  $d x z w $.  $d w ph $.
    $( Move universal quantifier in and out of substitution.  (Contributed by
       NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon, 12-Feb-2018.) $)
    sbal $p |- ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) $=
      ( vw wal wsb sbalyz sbbii bitri ax-17 sbco2v albii 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBFZOCDGACDGZBFQRBFZEDGTPUBEDABCEHIRBEDHJOCDEOEKLSUABACDEAEKLMN
      $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Lemma for proving ~ sbal1 .  Same as ~ sbal1 but with an additional
       distinct variable constraint on ` y ` and ` z ` .  (Contributed by Jim
       Kingdon, 23-Feb-2018.) $)
    sbal1yz $p |- ( -. A. x x = z ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wsb wi wb wo dveeq2or equcom nfbii 19.21t sylbi imbi1i albii
      wnf sb6 orim2i ax-mp ori albidv alcom bitri bitr4i bitr2i 3bitr3g bicomd
      ) BDEBFZGZACDHZBFZABFZCDHZULDCEZAIZBFZCFZUQUOIZCFZUNUPULUSVACUKUSVAJZUKCD
      EZBSZKUKVCKBDCLVEVCUKVEUQBSVCVDUQBCDMZNUQABOPUAUBUCUDUTURCFZBFUNURCBUEUMV
      GBUMVDAIZCFVGACDTVHURCVDUQAVFQRUFRUGUPVDUOIZCFVBUOCDTVIVACVDUQUOVFQRUHUIU
      J $.
  $}

  ${
    $d x y $.  $d w x $.  $d w y $.  $d w z $.  $d ph w $.

    $( A theorem used in elimination of disjoint variable restriction on ` x `
       and ` y ` by replacing it with a distinctor ` -. A. x x = z ` .
       (Contributed by NM, 5-Aug-1993.)  (Proof rewitten by Jim Kingdon,
       24-Feb-2018.) $)
    sbal1 $p |- ( -. A. x x = z ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( vw weq wal wn wsb sbal sbbii sbal1yz syl5bb ax-17 sbco2v albii 3bitr3g
      ) BDFBGHZABGZCEIZEDIZACEIZEDIZBGZSCDIACDIZBGUAUBBGZEDIRUDTUFEDABCEJKUBBED
      LMSCDESENOUCUEBACDEAENOPQ $.
  $}

  ${
    $d x y z $.
    $( Move existential quantifier in and out of substitution.  Identical to
       ~ sbex except that it has an additional distinct variable constraint on
       ` y ` and ` z ` .  (Contributed by Jim Kingdon, 29-Dec-2017.) $)
    sbexyz $p |- ( [ z / y ] E. x ph <-> E. x [ z / y ] ph ) $=
      ( wex wsb weq wa sb5 exdistr excom 3bitr2i exbii bitr4i ) ABEZCDFZCDGZAHZ
      CEZBEZACDFZBEPQOHCERBECETOCDIQACBJRCBKLUASBACDIMN $.
  $}

  ${
    $d x y w $.  $d x z w $.  $d w ph $.
    $( Move existential quantifier in and out of substitution.  (Contributed by
       NM, 27-Sep-2003.)  (Proof rewritten by Jim Kingdon, 12-Feb-2018.) $)
    sbex $p |- ( [ z / y ] E. x ph <-> E. x [ z / y ] ph ) $=
      ( vw wex wsb sbexyz sbbii bitri ax-17 sbco2v exbii 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBFZOCDGACDGZBFQRBFZEDGTPUBEDABCEHIRBEDHJOCDEOEKLSUABACDEAEKLMN
      $.
  $}

  ${
    $d x z $.  $d y z $.
    sbalv.1 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Quantify with new variable inside substitution.  (Contributed by NM,
       18-Aug-1993.) $)
    sbalv $p |- ( [ y / x ] A. z ph <-> A. z ps ) $=
      ( wal wsb sbal albii bitri ) AEGCDHACDHZEGBEGAECDILBEFJK $.
  $}

  ${
    $d v w ph $.  $d v w x $.  $d v w y $.
    $( Lemma for ~ sbco4 .  It replaces the temporary variable ` v ` with
       another temporary variable ` w ` .  (Contributed by Jim Kingdon,
       26-Sep-2018.) $)
    sbco4lem $p |- ( [ x / v ] [ y / x ] [ v / y ] ph <->
        [ x / w ] [ y / x ] [ w / y ] ph ) $=
      ( wsb sbcom2 sbbii nfv sbco2 bitri sbid2 3bitr3i ) ACDFZDEFZBCFZEDFZDBFZO
      EDFZBCFZDBFACEFZBCFZEBFZNBCFZDBFQTDBOBCEDGHRUBEDFZDBFUCQUEDBPUBEDOUABCACE
      DADIJHHHUBEBDUBDIJKTUDDBSNBCNEDNEILHHM $.
  $}

  ${
    $d t u v ph $.  $d t u v x $.  $d t u v y $.  $d w ph $.  $d w x $.
    $d w y $.  $d t w $.
    $( Two ways of exchanging two variables.  Both sides of the biconditional
       exchange ` x ` and ` y ` , either via two temporary variables ` u ` and
       ` v ` , or a single temporary ` w ` .  (Contributed by Jim Kingdon,
       25-Sep-2018.) $)
    sbco4 $p |- ( [ y / u ] [ x / v ] [ u / x ] [ v / y ] ph <->
        [ x / w ] [ y / x ] [ w / y ] ph ) $=
      ( vt wsb sbcom2 nfv sbco2 sbbii bitr3i sbco4lem 3bitri ) ACEHZBFHZEBHFCHZ
      PBCHZEBHZACGHBCHGBHACDHBCHDBHRQFCHZEBHTQFCEBIUASEBPBCFPFJKLMABCGENABCDGNO
      $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( An equivalent expression for existence.  (Contributed by NM,
       2-Feb-2005.) $)
    exsb $p |- ( E. x ph <-> E. y A. x ( x = y -> ph ) ) $=
      ( wex wsb weq wi wal ax-17 sb8eh sb6 exbii bitri ) ABDABCEZCDBCFAGBHZCDAB
      CACIJNOCABCKLM $.
  $}

  ${
    $d x y z $.  $d y w $.  $d z w ph $.
    $( An equivalent expression for double existence.  (Contributed by NM,
       2-Feb-2005.) $)
    2exsb $p |- ( E. x E. y ph <->
                  E. z E. w A. x A. y ( ( x = z /\ y = w ) -> ph ) ) $=
      ( wex weq wi wal exsb exbii excom bitri impexp albii 19.21v bitr2i 3bitri
      wa ) ACFZBFZCEGZAHZCIZBFZEFZBDGZUBSAHZCIZBIZDFZEFUJEFDFUAUDEFZBFUFTULBACE
      JKUDBELMUEUKEUEUGUDHZBIZDFUKUDBDJUNUJDUMUIBUIUGUCHZCIUMUHUOCUGUBANOUGUCCP
      QOKMKUJEDLR $.
  $}

  ${
    $d z ps $.  $d x z $.  $d y z $.
    dvelimALT.1 $e |- ( ph -> A. x ph ) $.
    dvelimALT.2 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dvelim that doesn't use ~ ax-10 .  Because it has different
       distinct variable constraints than ~ dvelim and is used in important
       proofs, it would be better if it had a name which does not end in ALT
       (ideally more close to set.mm naming).  (Contributed by NM,
       17-May-2008.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dvelimALT $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wi wnf nfv wo ax-i12 orcom orbi2i mpbi a1i nfimd orass mpbir
      nfa1 ax16ALT nfd nfi df-nf id sylbir orim1i ax-mp ori nfald ax-17 equsalh
      jaoi nfbii sylib nfrd ) CDHCIZJZBCVAEDHZAKZEIZCLBCLVAVCCEVAEMUTVCCLZVEUTN
      ZUTVENCEHZCIZVBVBCIKCIZNZUTNZVFVKVHVIUTNZNZVHUTVINZNVMEDCOVNVLVHUTVIPQRVH
      VIUTUAUBVJVEUTVHVEVIVHVBACVHVBCVGCUCVBCEUDUEACLZVHACFUFZSTVIVBCLZVEVBCUGV
      QVBACVQUHVOVQVPSTUIUPUJUKVEUTPRULUMVDBCABEDBEUNGUOUQURUS $.
  $}

  ${
    $d x z $.
    dvelimfv.1 $e |- ( ph -> A. x ph ) $.
    dvelimfv.2 $e |- ( ps -> A. z ps ) $.
    dvelimfv.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Like ~ dvelimf but with a distinct variable constraint on ` x ` and
       ` z ` .  (Contributed by Jim Kingdon, 6-Mar-2018.) $)
    dvelimfv $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wi wnf nfnae wo ax-i12 orcom mpbi a1i nfimd orass mpbir nfae
      orbi2i ax16ALT nfd nfi df-nf sylbir jaoi orim1i ax-mp nfald equsalh nfbii
      id ori sylib nfrd ) CDICJZKZBCVAEDIZALZEJZCMBCMVAVCCECDENUTVCCMZVEUTOZUTV
      EOCEICJZVBVBCJLCJZOZUTOZVFVJVGVHUTOZOZVGUTVHOZOVLEDCPVMVKVGUTVHQUDRVGVHUT
      UAUBVIVEUTVGVEVHVGVBACVGVBCCECUCVBCEUEUFACMZVGACFUGZSTVHVBCMZVEVBCUHVPVBA
      CVPUPVNVPVOSTUIUJUKULVEUTQRUQUMVDBCABEDGHUNUOURUS $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d ph w $.
    hbsb4.1 $e |- ( ph -> A. z ph ) $.
    $( A variable not free remains so after substitution with a distinct
       variable.  (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim
       Kingdon, 23-Mar-2018.) $)
    hbsb4 $p |- ( -. A. z z = y -> ( [ y / x ] ph -> A. z [ y / x ] ph ) ) $=
      ( vw wsb hbsb sbequ dvelimALT ) ABFGABCGDCFABFDEHAFCBIJ $.
  $}

  $( A variable not free remains so after substitution with a distinct variable
     (closed form of ~ hbsb4 ).  (Contributed by NM, 7-Apr-2004.)  (Proof
     shortened by Andrew Salmon, 25-May-2011.) $)
  hbsb4t $p |- ( A. x A. z ( ph -> A. z ph ) ->
               ( -. A. z z = y -> ( [ y / x ] ph -> A. z [ y / x ] ph ) ) ) $=
    ( weq wal wn wsb wi hba1 hbsb4 spsbim sps ax-4 sbimi alimi a1i imim12d syl5
    a7s ) DCEDFGADFZBCHZUBDFZIZAUAIZDFBFABCHZUFDFZIZUABCDADJKUEUDUHIDBUEBFZDFZU
    FUBUCUGUIUFUBIDAUABCLMUCUGIUJUBUFDUAABCADNOPQRTS $.

  $( A variable not free remains so after substitution with a distinct variable
     (closed form of ~ hbsb4 ).  (Contributed by NM, 7-Apr-2004.)  (Revised by
     Mario Carneiro, 4-Oct-2016.)  (Proof rewritten by Jim Kingdon,
     9-May-2018.) $)
  nfsb4t $p |- ( A. x F/ z ph ->
                 ( -. A. z z = y -> F/ z [ y / x ] ph ) ) $=
    ( wnf wal weq wn wsb wa nfnf1 nfal nfnae nfan df-nf albii hbsb4t sylbi imp
    wi nfd ex ) ADEZBFZDCGDFHZABCIZDEUDUEJUFDUDUEDUCDBADKLDCDMNUDUEUFUFDFTZUDAA
    DFTDFZBFUEUGTUCUHBADOPABCDQRSUAUB $.

  ${
    dvelimf.1 $e |- ( ph -> A. x ph ) $.
    dvelimf.2 $e |- ( ps -> A. z ps ) $.
    dvelimf.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dvelim without any variable restrictions.  (Contributed by
       NM, 1-Oct-2002.) $)
    dvelimf $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wsb hbsb4 sbieh albii 3imtr3g ) CDICJKAEDLZQCJBBCJAEDCFMABED
      GHNZQBCROP $.
  $}

  ${
    dvelimdf.1 $e |- F/ x ph $.
    dvelimdf.2 $e |- F/ z ph $.
    dvelimdf.3 $e |- ( ph -> F/ x ps ) $.
    dvelimdf.4 $e |- ( ph -> F/ z ch ) $.
    dvelimdf.5 $e |- ( ph -> ( z = y -> ( ps <-> ch ) ) ) $.
    $( Deduction form of ~ dvelimf .  This version may be useful if we want to
       avoid ~ ax-17 and use ~ ax-16 instead.  (Contributed by NM,
       7-Apr-2004.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof shortened
       by Wolf Lammen, 11-May-2018.) $)
    dvelimdf $p |- ( ph -> ( -. A. x x = y -> F/ x ch ) ) $=
      ( weq wal wn wsb wnf wi alrimi nfsb4t syl sbied nfbidf sylibd ) ADELDMNZB
      FEOZDPZCDPABDPZFMUDUFQAUGFHIRBFEDSTAUECDGABCFEHJKUAUBUC $.
  $}

  ${
    $d z ps $.
    dvelim.1 $e |- ( ph -> A. x ph ) $.
    dvelim.2 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( This theorem can be used to eliminate a distinct variable restriction on
       ` x ` and ` z ` and replace it with the "distinctor" ` -. A. x x = y `
       as an antecedent. ` ph ` normally has ` z ` free and can be read
       ` ph ( z ) ` , and ` ps ` substitutes ` y ` for ` z ` and can be read
       ` ph ( y ) ` .  We don't require that ` x ` and ` y ` be distinct: if
       they aren't, the distinctor will become false (in multiple-element
       domains of discourse) and "protect" the consequent.

       To obtain a closed-theorem form of this inference, prefix the hypotheses
       with ` A. x A. z ` , conjoin them, and apply ~ dvelimdf .

       Other variants of this theorem are ~ dvelimf (with no distinct variable
       restrictions) and ~ dvelimALT (that avoids ~ ax-10 ).  (Contributed by
       NM, 23-Nov-1994.) $)
    dvelim $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( ax-17 dvelimf ) ABCDEFBEHGI $.
  $}

  ${
    $d z ps $.  $d x z $.
    dvelimor.1 $e |- F/ x ph $.
    dvelimor.2 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Disjunctive distinct variable constraint elimination.  A user of this
       theorem starts with a formula ` ph ` (containing ` z ` ) and a distinct
       variable constraint between ` x ` and ` z ` .  The theorem makes it
       possible to replace the distinct variable constraint with the disjunct
       ` A. x x = y ` ( ` ps ` is just a version of ` ph ` with ` y `
       substituted for ` z ` ).  (Contributed by Jim Kingdon, 11-May-2018.) $)
    dvelimor $p |- ( A. x x = y \/ F/ x ps ) $=
      ( weq wal wi wnf wo ax-bndl orcom orbi2i mpbi orass mpbir nfae ax-mp jaoi
      a16nf alrimi df-nf id nfimd sylbir alimi orim1i nfalt ax-17 equsalh nfbii
      a1i sylib orim2i ) CDHCIZEDHZAJZCKZEIZLZUQBCKZLVAUQLZVBCEHCIZURURCIJCIZEI
      ZLZUQLZVDVIVEVGUQLZLZVEUQVGLZLVKEDCMVLVJVEUQVGNOPVEVGUQQRVHVAUQVEVAVGVEUT
      ECEESUSCECUBUCVFUTEVFURCKZUTURCUDVMURACVMUEACKVMFUNUFUGUHUAUITVAUQNPVAVCU
      QVAUSEIZCKVCUSCEUJVNBCABEDBEUKGULUMUOUPT $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.)  (Proof rewritten by Jim Kingdon,
       19-Feb-2018.) $)
    dveeq1 $p |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $=
      ( weq wal wn dveeq2 equcom albii 3imtr3g ) ABDAEFCBDZKAEBCDZLAEABCGCBHZKL
      AMIJ $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.) $)
    dveel1 $p |- ( -. A. x x = y -> ( y e. z -> A. x y e. z ) ) $=
      ( vw wel ax-17 elequ1 dvelimf ) DCEZBCEZABDIAFJDFDBCGH $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.) $)
    dveel2 $p |- ( -. A. x x = y -> ( z e. y -> A. x z e. y ) ) $=
      ( vw wel ax-17 elequ2 dvelimf ) CDEZCBEZABDIAFJDFDBCGH $.
  $}

  ${
    $d z y $.  $d z x $.
    $( Move quantifier in and out of substitution.  (Contributed by NM,
       2-Jan-2002.) $)
    sbal2 $p |- ( -. A. x x = y ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wi wsb alcom hbnae wb dveeq1 alimi hbnaes 19.21ht syl albidh
      syl5rbbr sb6 albii 3bitr4g ) BCEBFGZCDEZABFZHZCFZUDAHZCFZBFZUECDIACDIZBFU
      JUHBFZCFUCUGUHCBJUCULUFCBCCKUCUDUDBFHZBFZULUFLUNBCBUCUMBBCDMNOUDABPQRSUEC
      DTUKUIBACDTUAUB $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d ph w $.
    nfsb4or.1 $e |- F/ z ph $.
    $( A variable not free remains so after substitution with a distinct
       variable.  (Contributed by Jim Kingdon, 11-May-2018.) $)
    nfsb4or $p |- ( A. z z = y \/ F/ z [ y / x ] ph ) $=
      ( vw wsb nfsb sbequ dvelimor ) ABFGABCGDCFABFDEHAFCBIJ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Existential uniqueness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new symbols needed for uniqueness notation. $)
  $c E! $.  $( Backwards E exclamation point. $)
  $c E* $.  $( Backwards E superscript *. $)

  $( Extend wff definition to include existential uniqueness ("there exists a
     unique ` x ` such that ` ph ` "). $)
  weu $a wff E! x ph $.

  $( Extend wff definition to include uniqueness ("there exists at most one
     ` x ` such that ` ph ` "). $)
  wmo $a wff E* x ph $.

  ${
    $d w x y $.  $d x z $.  $d y ph $.  $d w z ph $.
    $( A soundness justification theorem for ~ df-eu , showing that the
       definition is equivalent to itself with its dummy variable renamed.
       Note that ` y ` and ` z ` needn't be distinct variables.  (Contributed
       by NM, 11-Mar-2010.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    eujust $p |- ( E. y A. x ( ph <-> x = y )
        <-> E. z A. x ( ph <-> x = z ) ) $=
      ( vw cv wceq wb wal wex equequ2 bibi2d albidv cbvexv bitri ) ABFZCFZGZHZB
      IZCJAPEFZGZHZBIZEJAPDFZGZHZBIZDJTUDCEQUAGZSUCBUIRUBACEBKLMNUDUHEDUAUEGZUC
      UGBUJUBUFAEDBKLMNO $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Define existential uniqueness, i.e.  "there exists exactly one ` x `
       such that ` ph ` ."  Definition 10.1 of [BellMachover] p. 97; also
       Definition *14.02 of [WhiteheadRussell] p. 175.  Other possible
       definitions are given by ~ eu1 , ~ eu2 , ~ eu3 , and ~ eu5 (which in
       some cases we show with a hypothesis ` ph -> A. y ph ` in place of a
       distinct variable condition on ` y ` and ` ph ` ).  Double uniqueness is
       tricky: ` E! x E! y ph ` does not mean "exactly one ` x ` and one
       ` y ` " (see ~ 2eu4 ).  (Contributed by NM, 5-Aug-1993.) $)
    df-eu $a |- ( E! x ph <-> E. y A. x ( ph <-> x = y ) ) $.
  $}

  $( Define "there exists at most one ` x ` such that ` ph ` ."  Here we define
     it in terms of existential uniqueness.  Notation of [BellMachover] p. 460,
     whose definition we show as ~ mo3 .  For another possible definition see
     ~ mo4 .  (Contributed by NM, 5-Aug-1993.) $)
  df-mo $a |- ( E* x ph <-> ( E. x ph -> E! x ph ) ) $.

  ${
    $d x y z $.  $d ph z $.
    euf.1 $e |- ( ph -> A. y ph ) $.
    $( A version of the existential uniqueness definition with a hypothesis
       instead of a distinct variable condition.  (Contributed by NM,
       12-Aug-1993.) $)
    euf $p |- ( E! x ph <-> E. y A. x ( ph <-> x = y ) ) $=
      ( vz weu weq wb wal wex df-eu ax-17 hbbi hbal equequ2 bibi2d albidv bitri
      cbvexh ) ABFABEGZHZBIZEJABCGZHZBIZCJABEKUBUEECUACBATCDTCLMNUEELECGZUAUDBU
      FTUCAECBOPQSR $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y ps $.  $d y ch $.
    eubidh.1 $e |- ( ph -> A. x ph ) $.
    eubidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for uniqueness quantifier (deduction rule).
       (Contributed by NM, 9-Jul-1994.) $)
    eubidh $p |- ( ph -> ( E! x ps <-> E! x ch ) ) $=
      ( vy weq wb wal wex weu bibi1d albidh exbidv df-eu 3bitr4g ) ABDGHZIZDJZG
      KCRIZDJZGKBDLCDLATUBGASUADEABCRFMNOBDGPCDGPQ $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y ps $.  $d y ch $.
    eubid.1 $e |- F/ x ph $.
    eubid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for uniqueness quantifier (deduction rule).
       (Contributed by NM, 9-Jul-1994.) $)
    eubid $p |- ( ph -> ( E! x ps <-> E! x ch ) ) $=
      ( vy weq wb wal wex weu bibi1d albid exbidv df-eu 3bitr4g ) ABDGHZIZDJZGK
      CRIZDJZGKBDLCDLATUBGASUADEABCRFMNOBDGPCDGPQ $.
  $}

  ${
    $d x ph $.
    eubidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for uniqueness quantifier (deduction rule).
       (Contributed by NM, 9-Jul-1994.) $)
    eubidv $p |- ( ph -> ( E! x ps <-> E! x ch ) ) $=
      ( nfv eubid ) ABCDADFEG $.
  $}

  ${
    eubii.1 $e |- ( ph <-> ps ) $.
    $( Introduce uniqueness quantifier to both sides of an equivalence.
       (Contributed by NM, 9-Jul-1994.)  (Revised by Mario Carneiro,
       6-Oct-2016.) $)
    eubii $p |- ( E! x ph <-> E! x ps ) $=
      ( weu wb wtru a1i eubidv trud ) ACEBCEFGABCABFGDHIJ $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Bound-variable hypothesis builder for uniqueness.  (Contributed by NM,
       9-Jul-1994.) $)
    hbeu1 $p |- ( E! x ph -> A. x E! x ph ) $=
      ( vy weu weq wb wal wex df-eu hba1 hbex hbxfrbi ) ABDABCEFZBGZCHBABCINBCM
      BJKL $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Bound-variable hypothesis builder for uniqueness.  (Contributed by NM,
       9-Jul-1994.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfeu1 $p |- F/ x E! x ph $=
      ( vy weu weq wb wal wex df-eu nfa1 nfex nfxfr ) ABDABCEFZBGZCHBABCINBCMBJ
      KL $.
  $}

  $( Bound-variable hypothesis builder for "at most one."  (Contributed by NM,
     8-Mar-1995.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
  nfmo1 $p |- F/ x E* x ph $=
    ( wmo wex weu wi df-mo nfe1 nfeu1 nfim nfxfr ) ABCABDZABEZFBABGLMBABHABIJK
    $.

  ${
    $d w y z $.  $d ph z w $.  $d w x z $.
    sb8eu.1 $e |- F/ y ph $.
    $( Variable substitution in uniqueness quantifier.  (Contributed by NM,
       7-Aug-1994.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
    sb8eu $p |- ( E! x ph <-> E! y [ y / x ] ph ) $=
      ( vz vw weq wb wal wex wsb weu nfv sb8 sbbi nfsb equsb3 nfxfr nfbi df-eu
      sbequ cbval sblbis albii 3bitri exbii 3bitr4i ) ABEGZHZBIZEJABCKZCEGZHZCI
      ZEJABLUKCLUJUNEUJUIBFKZFIUIBCKZCIUNUIBFUIFMNUOUPFCUOABFKZUHBFKZHCAUHBFOUQ
      URCABFCDPURFEGZCFBEQUSCMRSRUPFMUIFCBUAUBUPUMCUHULABCCBEQUCUDUEUFABETUKCET
      UG $.

    $( Variable substitution for "at most one."  (Contributed by Alexander van
       der Vekens, 17-Jun-2017.) $)
    sb8mo $p |- ( E* x ph <-> E* y [ y / x ] ph ) $=
      ( wex weu wi wsb wmo sb8e sb8eu imbi12i df-mo 3bitr4i ) ABEZABFZGABCHZCEZ
      QCFZGABIQCIORPSABCDJABCDKLABMQCMN $.
  $}

  ${
    $d x y z $.  $d z ph $.  $d z ps $.
    nfeudv.1 $e |- F/ y ph $.
    nfeudv.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfeu .  Similar to ~ nfeud but has the additional
       constraint that ` x ` and ` y ` must be distinct.  (Contributed by Jim
       Kingdon, 25-May-2018.) $)
    nfeudv $p |- ( ph -> F/ x E! y ps ) $=
      ( vz cv wceq wb wal wex wnf weu nfv a1i nfbid nfald nfexd df-eu sylibr
      nfbii ) ABDHGHIZJZDKZGLZCMBDNZCMAUECGAGOAUDCDEABUCCFUCCMAUCCOPQRSUGUFCBDG
      TUBUA $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.
    nfeud.1 $e |- F/ y ph $.
    nfeud.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfeu .  (Contributed by NM, 15-Feb-2013.)
       (Revised by Mario Carneiro, 7-Oct-2016.)  (Proof rewritten by Jim
       Kingdon, 25-May-2018.) $)
    nfeud $p |- ( ph -> F/ x E! y ps ) $=
      ( vz weu wsb nfv sb8eu nfsbd nfeudv nfxfrd ) BDHBDGIZGHACBDGBGJKAOCGAGJAB
      DGCEFLMN $.

    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       Mario Carneiro, 14-Nov-2016.) $)
    nfmod $p |- ( ph -> F/ x E* y ps ) $=
      ( wmo wex weu wi df-mo nfexd nfeud nfimd nfxfrd ) BDGBDHZBDIZJACBDKAPQCAB
      CDEFLABCDEFMNO $.
  $}

  ${
    $d x y z $.  $d z ph $.
    nfeuv.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for existential uniqueness.  This is
       similar to ~ nfeu but has the additional constraint that ` x ` and ` y `
       must be distinct.  (Contributed by Jim Kingdon, 23-May-2018.) $)
    nfeuv $p |- F/ x E! y ph $=
      ( vz weu wnf weq wb wal wex nfv nfbi nfal nfex df-eu nfbii mpbir ) ACFZBG
      ACEHZIZCJZEKZBGUBBEUABCATBDTBLMNOSUCBACEPQR $.
  $}

  ${
    $d y z $.  $d x z $.  $d z ph $.
    nfeu.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for existential uniqueness.  Note that
       ` x ` and ` y ` needn't be distinct.  (Contributed by NM, 8-Mar-1995.)
       (Revised by Mario Carneiro, 7-Oct-2016.)  (Proof rewritten by Jim
       Kingdon, 23-May-2018.) $)
    nfeu $p |- F/ x E! y ph $=
      ( vz weu wsb nfv sb8eu nfsb nfeuv nfxfr ) ACFACEGZEFBACEAEHIMBEACEBDJKL
      $.

    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       NM, 9-Mar-1995.) $)
    nfmo $p |- F/ x E* y ph $=
      ( wmo wnf wtru nftru a1i nfmod trud ) ACEBFGABCCHABFGDIJK $.
  $}

  ${
    $d y z $.  $d x z $.  $d z ph $.
    hbeu.1 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for uniqueness.  Note that ` x ` and
       ` y ` needn't be distinct.  (Contributed by NM, 8-Mar-1995.)  (Proof
       rewritten by Jim Kingdon, 24-May-2018.) $)
    hbeu $p |- ( E! y ph -> A. x E! y ph ) $=
      ( weu nfi nfeu nfri ) ACEBABCABDFGH $.
  $}

  ${
    $d y z $.  $d x z $.  $d z ph $.  $d z ps $.
    hbeud.1 $e |- ( ph -> A. x ph ) $.
    hbeud.2 $e |- ( ph -> A. y ph ) $.
    hbeud.3 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction version of ~ hbeu .  (Contributed by NM, 15-Feb-2013.)  (Proof
       rewritten by Jim Kingdon, 25-May-2018.) $)
    hbeud $p |- ( ph -> ( E! y ps -> A. x E! y ps ) ) $=
      ( weu nfi nfd nfeud nfrd ) ABDHCABCDADFIABCACEIGJKL $.
  $}

  ${
    $d w y z $.  $d ph z w $.  $d w x z $.
    sb8euh.1 $e |- ( ph -> A. y ph ) $.
    $( Variable substitution in uniqueness quantifier.  (Contributed by NM,
       7-Aug-1994.)  (Revised by Andrew Salmon, 9-Jul-2011.) $)
    sb8euh $p |- ( E! x ph <-> E! y [ y / x ] ph ) $=
      ( vz vw weq wb wal wex wsb ax-17 sb8h sbbi hbsb equsb3 hbxfrbi hbbi df-eu
      weu sbequ cbvalh sblbis albii 3bitri exbii 3bitr4i ) ABEGZHZBIZEJABCKZCEG
      ZHZCIZEJABTUKCTUJUNEUJUIBFKZFIUIBCKZCIUNUIBFUIFLMUOUPFCUOABFKZUHBFKZHCAUH
      BFNUQURCABFCDOURFEGZCFBEPUSCLQRQUPFLUIFCBUAUBUPUMCUHULABCCBEPUCUDUEUFABES
      UKCESUG $.
  $}

  ${
    cbveu.1 $e |- F/ y ph $.
    cbveu.2 $e |- F/ x ps $.
    cbveu.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 25-Nov-1994.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    cbveu $p |- ( E! x ph <-> E! y ps ) $=
      ( weu wsb sb8eu sbie eubii bitri ) ACHACDIZDHBDHACDEJNBDABCDFGKLM $.
  $}

  ${
    $d x y $.
    eu1.1 $e |- ( ph -> A. y ph ) $.
    $( An alternate way to express uniqueness used by some authors.  Exercise
       2(b) of [Margaris] p. 110.  (Contributed by NM, 20-Aug-1993.) $)
    eu1 $p |- ( E! x ph <->
                E. x ( ph /\ A. y ( [ y / x ] ph -> x = y ) ) ) $=
      ( wsb weu weq wb wal wex wi wa hbs1 euf sb8euh equcom albii sb6rf 3bitr4i
      imbi2i anbi12i ancom albiim exbii ) ABCEZCFUECBGZHCIZBJABFAUEBCGZKZCIZLZB
      JUECBABCMNABCDOUKUGBUJALUEUFKZCIZUFUEKCIZLUKUGUJUMAUNUIULCUHUFUEBCPTQABCD
      RUAAUJUBUEUFCUCSUDS $.
  $}

  ${
    euor.1 $e |- ( ph -> A. x ph ) $.
    $( Introduce a disjunct into a uniqueness quantifier.  (Contributed by NM,
       21-Oct-2005.) $)
    euor $p |- ( ( -. ph /\ E! x ps ) -> E! x ( ph \/ ps ) ) $=
      ( wn weu wo hbn biorf eubidh biimpa ) AEZBCFABGZCFLBMCACDHABIJK $.
  $}

  ${
    $d x ph $.
    $( Introduce a disjunct into a uniqueness quantifier.  (Contributed by NM,
       23-Mar-1995.) $)
    euorv $p |- ( ( -. ph /\ E! x ps ) -> E! x ( ph \/ ps ) ) $=
      ( ax-17 euor ) ABCACDE $.
  $}

  ${
    $d x y $.
    mon.1 $e |- F/ y ph $.
    $( There is at most one of something which does not exist.  (Contributed by
       Jim Kingdon, 2-Jul-2018.) $)
    mo2n $p |- ( -. E. x ph -> E. y A. x ( ph -> x = y ) ) $=
      ( wex wsb weq wi wal sb8e wn alnex nfs1v sbequ1 equcoms con3d cbv3 pm2.21
      nfn alimi 19.8a 3syl sylbir sylnbi ) ABEABCFZCEZABCGZHZBIZCEZABCDJUFKUEKZ
      CIZUJUECLULAKZBIUIUJUKUMCBUEBABCMSACDSCBGAUEAUEHBCABCNOPQUMUHBAUGRTUICUAU
      BUCUD $.
  $}

  ${
    $( There is at most one of something which does not exist.  (Contributed by
       Jim Kingdon, 5-Jul-2018.) $)
    mon $p |- ( -. E. x ph -> E* x ph ) $=
      ( wex wn weu wi wmo ax-in2 df-mo sylibr ) ABCZDKABEZFABGKLHABIJ $.
  $}

  ${
    $d x y $.  $d ph y $.
    $( Existential uniqueness implies existence.  (Contributed by NM,
       15-Sep-1993.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    euex $p |- ( E! x ph -> E. x ph ) $=
      ( vy weu wsb weq wi wal wa wex ax-17 eu1 exsimpl sylbi ) ABDAABCEBCFGCHZI
      BJABJABCACKLAOBMN $.
  $}

  ${
    $d x y $.
    eumo0.1 $e |- ( ph -> A. y ph ) $.
    $( Existential uniqueness implies "at most one."  (Contributed by NM,
       8-Jul-1994.) $)
    eumo0 $p |- ( E! x ph -> E. y A. x ( ph -> x = y ) ) $=
      ( weu weq wb wal wex wi euf bi1 alimi eximi sylbi ) ABEABCFZGZBHZCIAPJZBH
      ZCIABCDKRTCQSBAPLMNO $.
  $}

  $( Existential uniqueness implies "at most one."  (Contributed by NM,
     23-Mar-1995.)  (Proof rewritten by Jim Kingdon, 27-May-2018.) $)
  eumo $p |- ( E! x ph -> E* x ph ) $=
    ( weu wex wi wmo ax-1 df-mo sylibr ) ABCZABDZJEABFJKGABHI $.

  ${
    eumoi.1 $e |- E! x ph $.
    $( "At most one" inferred from existential uniqueness.  (Contributed by NM,
       5-Apr-1995.) $)
    eumoi $p |- E* x ph $=
      ( weu wmo eumo ax-mp ) ABDABECABFG $.
  $}

  ${
    mobidh.1 $e |- ( ph -> A. x ph ) $.
    mobidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for "at most one" quantifier (deduction rule).
       (Contributed by NM, 8-Mar-1995.) $)
    mobidh $p |- ( ph -> ( E* x ps <-> E* x ch ) ) $=
      ( wex weu wi wmo exbidh eubidh imbi12d df-mo 3bitr4g ) ABDGZBDHZICDGZCDHZ
      IBDJCDJAPRQSABCDEFKABCDEFLMBDNCDNO $.
  $}

  ${
    mobid.1 $e |- F/ x ph $.
    mobid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for "at most one" quantifier (deduction rule).
       (Contributed by NM, 8-Mar-1995.) $)
    mobid $p |- ( ph -> ( E* x ps <-> E* x ch ) ) $=
      ( wex weu wi wmo exbid eubid imbi12d df-mo 3bitr4g ) ABDGZBDHZICDGZCDHZIB
      DJCDJAPRQSABCDEFKABCDEFLMBDNCDNO $.
  $}

  ${
    $d x ph $.
    mobidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for "at most one" quantifier (deduction rule).
       (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    mobidv $p |- ( ph -> ( E* x ps <-> E* x ch ) ) $=
      ( nfv mobid ) ABCDADFEG $.
  $}

  ${
    mobii.1 $e |- ( ps <-> ch ) $.
    $( Formula-building rule for "at most one" quantifier (inference rule).
       (Contributed by NM, 9-Mar-1995.)  (Revised by Mario Carneiro,
       17-Oct-2016.) $)
    mobii $p |- ( E* x ps <-> E* x ch ) $=
      ( wmo wb wtru a1i mobidv trud ) ACEBCEFGABCABFGDHIJ $.
  $}

  $( Bound-variable hypothesis builder for "at most one."  (Contributed by NM,
     8-Mar-1995.) $)
  hbmo1 $p |- ( E* x ph -> A. x E* x ph ) $=
    ( wmo wex weu wi df-mo hbe1 hbeu1 hbim hbxfrbi ) ABCABDZABEZFBABGLMBABHABIJ
    K $.

  ${
    hbmo.1 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       NM, 9-Mar-1995.) $)
    hbmo $p |- ( E* y ph -> A. x E* y ph ) $=
      ( wmo wex weu wi df-mo hbex hbeu hbim hbxfrbi ) ACEACFZACGZHBACINOBABCDJA
      BCDKLM $.
  $}

  ${
    cbvmo.1 $e |- F/ y ph $.
    cbvmo.2 $e |- F/ x ps $.
    cbvmo.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 9-Mar-1995.)  (Revised by Andrew Salmon,
       8-Jun-2011.) $)
    cbvmo $p |- ( E* x ph <-> E* y ps ) $=
      ( wex weu wi wmo cbvex cbveu imbi12i df-mo 3bitr4i ) ACHZACIZJBDHZBDIZJAC
      KBDKQSRTABCDEFGLABCDEFGMNACOBDOP $.
  $}

  ${
    $d x y z $.  $d ph z $.
    mo23.1 $e |- F/ y ph $.
    $( An implication between two definitions of "there exists at most one."
       (Contributed by Jim Kingdon, 25-Jun-2018.) $)
    mo23 $p |- ( E. y A. x ( ph -> x = y ) ->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( vz weq wi wal wex wsb wa nfv nfim nfal equequ2 imbi2d albidv cbvex nfri
      nfs1v sbequ2 ax-8 imim12d cbv3 ancli aaanh sylibr prth equtr2 syl6 2alimi
      syl exlimiv sylbir ) ABCFZGZBHZCIABEFZGZBHZEIAABCJZKZUOGZCHBHZUTUQECUSCBA
      URCDURCLMZNUQELECFZUSUPBVFURUOAECBOPQRUTVDEUTUSVACEFZGZKZCHBHZVDUTUTVHCHZ
      KVJUTVKUSVHBCVEVAVGBABCTVGBLMZUOVAAURVGABCUABCEUBUCUDUEUSVHBCUSCVESVHBVLS
      UFUGVIVCBCVIVBURVGKUOAURVAVGUHBCEUIUJUKULUMUN $.
  $}

  ${
    $d x y z $.  $d ph z $.
    mor.1 $e |- F/ y ph $.
    $( Converse of ~ mo23 with an additional ` E. x ph ` condition.
       (Contributed by Jim Kingdon, 25-Jun-2018.) $)
    mor $p |- ( E. x ph ->
        ( A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ->
          E. y A. x ( ph -> x = y ) ) ) $=
      ( wex wsb wa weq wi sb8e impexp bi2.04 bitri 2albii nfs1v nfri eximi alim
      wal alimi a7s exim syl syl5com syl5bi sylbi ) ABEABCFZCEZAUGGBCHZIZCSBSZA
      UIIZBSZCEZIABCDJUKUGULIZCSBSZUHUNUJUOBCUJAUGUIIIUOAUGUIKAUGUILMNUHUGBSZCE
      ZUPUNUGUQCUGBABCOPQUPUQUMIZCSZURUNIUOUTCBUOBSUSCUGULBRTUAUQUMCUBUCUDUEUF
      $.
  $}

  ${
    $d x y $.
    modc.1 $e |- F/ y ph $.
    $( Equivalent definitions of "there exists at most one," given decidable
       existence.  (Contributed by Jim Kingdon, 1-Jul-2018.) $)
    modc $p |- ( DECID E. x ph ->
        ( E. y A. x ( ph -> x = y ) <->
          A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( wex wdc weq wi wal wsb wa mo23 wn wo exmiddc mor mo2n a1d jaoi syl
      impbid2 ) ABEZFZABCGZHBICEZAABCJKUDHCIBIZABCDLUCUBUBMZNUFUEHZUBOUBUHUGABC
      DPUGUEUFABCDQRSTUA $.
  $}

  ${
    $d x y $.
    eu2.1 $e |- F/ y ph $.
    $( An alternate way of defining existential uniqueness.  Definition 6.10 of
       [TakeutiZaring] p. 26.  (Contributed by NM, 8-Jul-1994.) $)
    eu2 $p |- ( E! x ph <->
        ( E. x ph /\ A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( weu wex wsb wa weq wal euex nfri eumo0 mo23 syl jca 19.29r impexp albii
      wi 19.21 bitri anbi2i abai bitr4i exbii sylib eu1 sylibr impbii ) ABEZABF
      ZAABCGZHBCIZTZCJZBJZHZUKULUQABKUKAUNTBJCFUQABCACDLZMABCDNOPURAUMUNTZCJZHZ
      BFZUKURAUPHZBFVCAUPBQVDVBBVDAAVATZHVBUPVEAUPAUTTZCJVEUOVFCAUMUNRSAUTCDUAU
      BUCAVAUDUEUFUGABCUSUHUIUJ $.
  $}

  ${
    $d x y $.
    eu3h.1 $e |- ( ph -> A. y ph ) $.
    $( An alternate way to express existential uniqueness.  (Contributed by NM,
       8-Jul-1994.)  (New usage is discouraged.) $)
    eu3h $p |- ( E! x ph <->
                ( E. x ph /\ E. y A. x ( ph -> x = y ) ) ) $=
      ( weu wex weq wi wal euex eumo0 jca wsb nfi mo23 anim2i eu2 sylibr impbii
      wa ) ABEZABFZABCGZHBICFZTZUAUBUDABJABCDKLUEUBAABCMTUCHCIBIZTUAUDUFUBABCAC
      DNZOPABCUGQRS $.
  $}

  ${
    $d x y $.
    eu3.1 $e |- F/ y ph $.
    $( An alternate way to express existential uniqueness.  (Contributed by NM,
       8-Jul-1994.) $)
    eu3 $p |- ( E! x ph <->
                ( E. x ph /\ E. y A. x ( ph -> x = y ) ) ) $=
      ( nfri eu3h ) ABCACDEF $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Uniqueness in terms of "at most one."  (Contributed by NM,
       23-Mar-1995.)  (Proof rewritten by Jim Kingdon, 27-May-2018.) $)
    eu5 $p |- ( E! x ph <-> ( E. x ph /\ E* x ph ) ) $=
      ( weu wex wmo wa euex eumo jca wi df-mo biimpi imp ancoms impbii ) ABCZAB
      DZABEZFPQRABGABHIRQPRQPRQPJABKLMNO $.
  $}

  $( Existence implies "at most one" is equivalent to uniqueness.  (Contributed
     by NM, 5-Apr-2004.) $)
  exmoeu2 $p |- ( E. x ph -> ( E* x ph <-> E! x ph ) ) $=
    ( weu wex wmo eu5 baibr ) ABCABDABEABFG $.

  $( Absorption of existence condition by "at most one."  (Contributed by NM,
     4-Nov-2002.) $)
  moabs $p |- ( E* x ph <-> ( E. x ph -> E* x ph ) ) $=
    ( wex weu wi wmo pm5.4 df-mo imbi2i 3bitr4ri ) ABCZKABDZEZEMKABFZENKLGNMKAB
    HZIOJ $.

  $( If existence is decidable, something exists or at most one exists.
     (Contributed by Jim Kingdon, 30-Jun-2018.) $)
  exmodc $p |- ( DECID E. x ph -> ( E. x ph \/ E* x ph ) ) $=
    ( wex wdc wn wo wmo df-dc weu wi pm2.21 df-mo sylibr orim2i sylbi ) ABCZDPP
    EZFPABGZFPHQRPQPABIZJRPSKABLMNO $.

  $( There is at most one of something which does not exist.  Unlike ~ exmodc
     there is no decidability condition.  (Contributed by Jim Kingdon,
     22-Sep-2018.) $)
  exmonim $p |- ( -. E. x ph -> E* x ph ) $=
    ( wex wn weu wi wmo pm2.21 df-mo sylibr ) ABCZDKABEZFABGKLHABIJ $.

  ${
    $d x y $.
    mo2r.1 $e |- F/ y ph $.
    $( A condition which implies "at most one."  (Contributed by Jim Kingdon,
       2-Jul-2018.) $)
    mo2r $p |- ( E. y A. x ( ph -> x = y ) -> E* x ph ) $=
      ( weq wi wal wex weu wmo nfri eu3h simplbi2com df-mo sylibr ) ABCEFBGCHZA
      BHZABIZFABJRQPABCACDKLMABNO $.
  $}

  ${
    $d x y $.
    mo3h.1 $e |- ( ph -> A. y ph ) $.
    $( Alternate definition of "at most one."  Definition of [BellMachover]
       p. 460, except that definition has the side condition that ` y ` not
       occur in ` ph ` in place of our hypothesis.  (Contributed by NM,
       8-Mar-1995.)  (New usage is discouraged.) $)
    mo3h $p |- ( E* x ph <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( wmo wsb wa weq wi wal wex weu nfi eu2 imbi2i df-mo anclb 3bitr4i sylibr
      19.38 19.21 albii anabs5 pm3.31 syl5bir 2alimi sylbi simplbi2com impbii
      syl ) ABEZAABCFZGZBCHZIZCJZBJZUKABKZUQIZUQURABLZIZURURUQGZIUKUSUTVBURABCA
      CDMZNZOABPZURUQQRUSAUOIZCJZBJZUQUSAUPIZBJVHAUPBTVGVIBAUOCVCUAUBSVFUOBCUMA
      UMGVFUNAULUCAUMUNUDUEUFUJUGUQVAUKUTURUQVDUHVESUI $.
  $}

  ${
    $d x y $.
    mo3.1 $e |- F/ y ph $.
    $( Alternate definition of "at most one."  Definition of [BellMachover]
       p. 460, except that definition has the side condition that ` y ` not
       occur in ` ph ` in place of our hypothesis.  (Contributed by NM,
       8-Mar-1995.) $)
    mo3 $p |- ( E* x ph <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( nfri mo3h ) ABCACDEF $.
  $}

  ${
    $d x y $.
    mo2dc.1 $e |- F/ y ph $.
    $( Alternate definition of "at most one" where existence is decidable.
       (Contributed by Jim Kingdon, 2-Jul-2018.) $)
    mo2dc $p |- ( DECID E. x ph ->
        ( E* x ph <-> E. y A. x ( ph -> x = y ) ) ) $=
      ( wex wdc weq wi wal wsb wa wmo modc nfri mo3h syl6rbbr ) ABEFABCGZHBICEA
      ABCJKQHCIBIABLABCDMABCACDNOP $.
  $}

  ${
    euan.1 $e |- ( ph -> A. x ph ) $.
    $( Introduction of a conjunct into uniqueness quantifier.  (Contributed by
       NM, 19-Feb-2005.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    euan $p |- ( E! x ( ph /\ ps ) <-> ( ph /\ E! x ps ) ) $=
      ( wa weu wex wmo simpl exlimih adantr simpr eximi hbe1 a1d impbid2 mobidh
      ancrd biimpa eu5 jca32 anbi2i 3imtr4i ibar eubidh impbii ) ABEZCFZABCFZEZ
      UGCGZUGCHZEZABCGZBCHZEZEUHUJUMAUNUOUKAULUGACDABIJZKUKUNULUGBCABLZMKUKULUO
      UKUGBCUGCNUKUGBURUKBAUKABUQORPQSUAUGCTUIUPABCTUBUCAUIUHABUGCDABUDUESUF $.
  $}

  ${
    $d x ph $.
    $( Introduction of a conjunct into uniqueness quantifier.  (Contributed by
       NM, 23-Mar-1995.) $)
    euanv $p |- ( E! x ( ph /\ ps ) <-> ( ph /\ E! x ps ) ) $=
      ( ax-17 euan ) ABCACDE $.
  $}

  $( Introduce or eliminate a disjunct in a uniqueness quantifier.
     (Contributed by NM, 21-Oct-2005.)  (Proof shortened by Andrew Salmon,
     9-Jul-2011.) $)
  euor2 $p |- ( -. E. x ph -> ( E! x ( ph \/ ps ) <-> E! x ps ) ) $=
    ( wex wn wo hbe1 hbn wb 19.8a con3i orel1 olc impbid1 syl eubidh ) ACDZEZAB
    FZBCQCACGHRAEZSBIAQACJKTSBABLBAMNOP $.

  ${
    $d w x z $.  $d w y z $.  $d w ph $.
    $( Substitution into "at most one".  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    sbmo $p |- ( [ y / x ] E* z ph <-> E* z [ y / x ] ph ) $=
      ( vw wsb wa cv wceq wal wmo nfv sblim sban imbi1i sbcom2 anbi2i sbalv mo3
      wi 3bitri sbbii 3bitr4i ) AADEFZGZDHEHIZTZEJZDJZBCFABCFZUJDEFZGZUFTZEJZDJ
      ADKZBCFUJDKUHUNBCDUGUMBCEUGBCFUEBCFZUFTUJUDBCFZGZUFTUMUEUFBCUFBLMUPURUFAU
      DBCNOURULUFUQUKUJADEBCPQOUARRUOUIBCADEAELSUBUJDEUJELSUC $.
  $}

  ${
    $d x y $.  $d y ph $.
    mo4f.1 $e |- F/ x ps $.
    mo4f.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( "At most one" expressed using implicit substitution.  (Contributed by
       NM, 10-Apr-2004.) $)
    mo4f $p |- ( E* x ph <-> A. x A. y ( ( ph /\ ps ) -> x = y ) ) $=
      ( wmo wsb wa weq wi wal ax-17 mo3h sbie anbi2i imbi1i 2albii bitri ) ACGA
      ACDHZIZCDJZKZDLCLABIZUBKZDLCLACDADMNUCUECDUAUDUBTBAABCDEFOPQRS $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    mo4.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( "At most one" expressed using implicit substitution.  (Contributed by
       NM, 26-Jul-1995.) $)
    mo4 $p |- ( E* x ph <-> A. x A. y ( ( ph /\ ps ) -> x = y ) ) $=
      ( nfv mo4f ) ABCDBCFEG $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    eu4.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Uniqueness using implicit substitution.  (Contributed by NM,
       26-Jul-1995.) $)
    eu4 $p |- ( E! x ph <-> ( E. x ph /\
             A. x A. y ( ( ph /\ ps ) -> x = y ) ) ) $=
      ( weu wex wmo wa weq wi wal eu5 mo4 anbi2i bitri ) ACFACGZACHZIQABICDJKDL
      CLZIACMRSQABCDENOP $.
  $}

  $( Existence in terms of "at most one" and uniqueness.  (Contributed by Jim
     Kingdon, 3-Jul-2018.) $)
  exmoeudc $p |- ( DECID E. x ph -> ( E. x ph <-> ( E* x ph -> E! x ph ) ) ) $=
    ( wex wdc wmo weu wi df-mo com12 biimpri euex imim12i peircedc syl5 impbid2
    biimpi ) ABCZDZQABEZABFZGZSQTSQTGZABHZPIUAUBQGRQUBSTQSUBUCJABKLQTMNO $.

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    $( "At most one" is preserved through implication (notice wff reversal).
       (Contributed by NM, 22-Apr-1995.) $)
    moim $p |- ( A. x ( ph -> ps ) -> ( E* x ps -> E* x ph ) ) $=
      ( vy wi wal wsb wa weq nfa1 ax-4 spsbim anim12d imim1d alimdv alimd ax-17
      wmo mo3h 3imtr4g ) ABEZCFZBBCDGZHZCDIZEZDFZCFAACDGZHZUEEZDFZCFBCRACRUBUGU
      KCUACJUBUFUJDUBUIUDUEUBABUHUCUACKABCDLMNOPBCDBDQSACDADQST $.
  $}

  ${
    moimi.1 $e |- ( ph -> ps ) $.
    $( "At most one" is preserved through implication (notice wff reversal).
       (Contributed by NM, 15-Feb-2006.) $)
    moimi $p |- ( E* x ps -> E* x ph ) $=
      ( wi wmo moim mpg ) ABEBCFACFECABCGDH $.
  $}

  ${
    $d x y $.  $d x y ph $.  $d y ps $.
    $( Move antecedent outside of "at most one."  (Contributed by NM,
       28-Jul-1995.) $)
    moimv $p |- ( E* x ( ph -> ps ) -> ( ph -> E* x ps ) ) $=
      ( vy wi wmo wsb weq wal ax-1 a1i sbimi nfv sbf sbim 3imtr3i anim12d ax-17
      wa mo3h imim1d 2alimdv 3imtr4g com12 ) AABEZCFZBCFZAUEUECDGZSZCDHZEZDICIB
      BCDGZSZUJEZDICIUFUGAUKUNCDAUMUIUJABUEULUHBUEEZABAJKZACDGUOCDGAULUHEAUOCDU
      PLACDACMNBUECDOPQUAUBUECDUEDRTBCDBDRTUCUD $.
  $}

  $( Uniqueness implies "at most one" through implication.  (Contributed by NM,
     22-Apr-1995.) $)
  euimmo $p |- ( A. x ( ph -> ps ) -> ( E! x ps -> E* x ph ) ) $=
    ( weu wmo wi wal eumo moim syl5 ) BCDBCEABFCGACEBCHABCIJ $.

  $( Add existential uniqueness quantifiers to an implication.  Note the
     reversed implication in the antecedent.  (Contributed by NM,
     19-Oct-2005.)  (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
  euim $p |- ( ( E. x ph /\ A. x ( ph -> ps ) ) -> ( E! x ps -> E! x ph ) ) $=
    ( wex wi wal wa weu wmo ax-1 euimmo anim12ii eu5 syl6ibr ) ACDZABECFZGBCHZO
    ACIZGACHOQOPROQJABCKLACMN $.

  $( "At most one" is still the case when a conjunct is added.  (Contributed by
     NM, 22-Apr-1995.) $)
  moan $p |- ( E* x ph -> E* x ( ps /\ ph ) ) $=
    ( wa simpr moimi ) BADACBAEF $.

  ${
    moani.1 $e |- E* x ph $.
    $( "At most one" is still true when a conjunct is added.  (Contributed by
       NM, 9-Mar-1995.) $)
    moani $p |- E* x ( ps /\ ph ) $=
      ( wmo wa moan ax-mp ) ACEBAFCEDABCGH $.
  $}

  $( "At most one" is still the case when a disjunct is removed.  (Contributed
     by NM, 5-Apr-2004.) $)
  moor $p |- ( E* x ( ph \/ ps ) -> E* x ph ) $=
    ( wo orc moimi ) AABDCABEF $.

  $( "At most one" imports disjunction to conjunction.  (Contributed by NM,
     5-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  mooran1 $p |- ( ( E* x ph \/ E* x ps ) -> E* x ( ph /\ ps ) ) $=
    ( wmo wa simpl moimi moan jaoi ) ACDABEZCDBCDJACABFGBACHI $.

  $( "At most one" exports disjunction to conjunction.  (Contributed by NM,
     5-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  mooran2 $p |- ( E* x ( ph \/ ps ) -> ( E* x ph /\ E* x ps ) ) $=
    ( wo wmo moor olc moimi jca ) ABDZCEACEBCEABCFBJCBAGHI $.

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    moanim.1 $e |- F/ x ph $.
    $( Introduction of a conjunct into "at most one" quantifier.  (Contributed
       by NM, 3-Dec-2001.) $)
    moanim $p |- ( E* x ( ph /\ ps ) <-> ( ph -> E* x ps ) ) $=
      ( vy wsb wa weq wi wal wmo anandi imbi1i impexp sbf anbi1i ax-17 3bitr4ri
      sban mo3h bitr2i anbi2i 3bitr3i 2albii 19.21 19.21v albii imbi2i ) ABBCEF
      ZGZCEHZIZIZEJZCJZABGZUPCEFZGZUKIZEJCJABCKZIZUPCKUMUSCEAUJGZUKIUPAUIGZGZUK
      IUMUSVBVDUKABUILMAUJUKNVDURUKVCUQUPUQACEFZUIGVCABCESVEAUIACEDOPUAUBMUCUDA
      ULEJZIZCJAVFCJZIUOVAAVFCDUEUNVGCAULEUFUGUTVHABCEBEQTUHRUPCEUPEQTR $.
  $}

  ${
    $d x y ph $.  $d y ps $.
    $( Introduction of a conjunct into "at most one" quantifier.  (Contributed
       by NM, 23-Mar-1995.) $)
    moanimv $p |- ( E* x ( ph /\ ps ) <-> ( ph -> E* x ps ) ) $=
      ( nfv moanim ) ABCACDE $.
  $}

  $( Nested "at most one" and uniqueness quantifiers.  (Contributed by NM,
     25-Jan-2006.) $)
  moaneu $p |- E* x ( ph /\ E! x ph ) $=
    ( weu wa wmo wi eumo nfeu1 moanim mpbir ancom mobii ) AABCZDZBEMADZBEZPMABE
    FABGMABABHIJNOBAMKLJ $.

  $( Nested "at most one" quantifiers.  (Contributed by NM, 25-Jan-2006.) $)
  moanmo $p |- E* x ( ph /\ E* x ph ) $=
    ( wmo wa wi id nfmo1 moanim mpbir ancom mobii ) AABCZDZBCLADZBCZOLLELFLABAB
    GHIMNBALJKI $.

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    $( "At most one" picks a variable value, eliminating an existential
       quantifier.  (Contributed by NM, 27-Jan-1997.) $)
    mopick $p |- ( ( E* x ph /\ E. x ( ph /\ ps ) ) -> ( ph -> ps ) ) $=
      ( vy wa wex wmo wi wsb hbs1 hban weq sbequ12 anbi12d cbvexh wal mo3h ax-4
      ax-17 sylbi sps sbequ2 imim2i expd com4t imp syl5 exlimiv impcom ) ABEZCF
      ZACGZABHZUKACDIZBCDIZEZDFULUMHZUJUPCDUJDSUNUOCACDJBCDJKCDLZAUNBUOACDMBCDM
      NOUPUQDULAUNEZURHZUPUMULUTDPZCPUTACDADSQVAUTCUTDRUATUNUOUTUMHUTAUNUOBUTAU
      NUOBHZURVBUSBCDUBUCUDUEUFUGUHTUI $.
  $}

  $( Existential uniqueness "picks" a variable value for which another wff is
     true.  If there is only one thing ` x ` such that ` ph ` is true, and
     there is also an ` x ` (actually the same one) such that ` ph ` and ` ps `
     are both true, then ` ph ` implies ` ps ` regardless of ` x ` .  This
     theorem can be useful for eliminating existential quantifiers in a
     hypothesis.  Compare Theorem *14.26 in [WhiteheadRussell] p. 192.
     (Contributed by NM, 10-Jul-1994.) $)
  eupick $p |- ( ( E! x ph /\ E. x ( ph /\ ps ) ) -> ( ph -> ps ) ) $=
    ( weu wmo wa wex wi eumo mopick sylan ) ACDACEABFCGABHACIABCJK $.

  $( Version of ~ eupick with closed formulas.  (Contributed by NM,
     6-Sep-2008.) $)
  eupicka $p |- ( ( E! x ph /\ E. x ( ph /\ ps ) ) -> A. x ( ph -> ps ) ) $=
    ( weu wa wex wi hbeu1 hbe1 hban eupick alrimih ) ACDZABEZCFZEABGCMOCACHNCIJ
    ABCKL $.

  $( Existential uniqueness "pick" showing wff equivalence.  (Contributed by
     NM, 25-Nov-1994.) $)
  eupickb $p |- ( ( E! x ph /\ E! x ps /\ E. x ( ph /\ ps ) ) ->
               ( ph <-> ps ) ) $=
    ( weu wa wex w3a wi eupick 3adant2 3simpc pm3.22 eximi anim2i 3syl impbid )
    ACDZBCDZABEZCFZGZABQTABHRABCIJUARTERBAEZCFZEBAHQRTKTUCRSUBCABLMNBACIOP $.

  $( Theorem *14.26 in [WhiteheadRussell] p. 192.  (Contributed by Andrew
     Salmon, 11-Jul-2011.) $)
  eupickbi $p |- ( E! x ph -> ( E. x ( ph /\ ps ) <-> A. x ( ph -> ps ) ) ) $=
    ( weu wa wex wi wal eupicka ex hba1 wb ancl simpl impbid1 sps eubidh syl6bi
    euex com12 impbid ) ACDZABEZCFZABGZCHZUBUDUFABCIJUFUBUDUFUBUCCDUDUFAUCCUECK
    UEAUCLCUEAUCABMABNOPQUCCSRTUA $.

  $( "At most one" can show the existence of a common value.  In this case we
     can infer existence of conjunction from a conjunction of existence, and it
     is one way to achieve the converse of ~ 19.40 .  (Contributed by NM,
     5-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  mopick2 $p |- ( ( E* x ph /\ E. x ( ph /\ ps ) /\ E. x ( ph /\ ch ) ) ->
                E. x ( ph /\ ps /\ ch ) ) $=
    ( wmo wa wex w3a hbmo1 hbe1 hban mopick anim1d df-3an syl6ibr eximdh 3impia
    ancld ) ADEZABFZDGZACFZDGABCHZDGSUAFZUBUCDSUADADITDJKUDUBTCFUCUDATCUDABABDL
    RMABCNOPQ $.

  ${
    moexexdc.1 $e |- F/ y ph $.
    $( "At most one" double quantification.  (Contributed by Jim Kingdon,
       5-Jul-2018.) $)
    moexexdc $p |- ( DECID E. x ph ->
        ( ( E* x ph /\ A. x E* y ps ) -> E* y E. x ( ph /\ ps ) ) ) $=
      ( wex wdc wn wo wmo wal wa wi df-dc hbmo1 hba1 hbmo hbim exlimih a1d hbe1
      nfri mopick com3r alrimdh moim spsd syl6 hbex exsimpl con3i mon jaoi impd
      ex syl sylbi ) ACFZGURURHZIZACJZBDJZCKZLABLZCFZDJZMURNUTVAVCVFURVAVCVFMZM
      ZUSAVHCVAVGCACOVCVFCVBCPVECDVDCUAQRRAVAVEBMZDKZVGAVAVIDADEUBZADCVKQVAVEAB
      VAVEABMABCUCUOUDUEVJVBVFCVEBDUFUGUHSUSVGVAUSVFVCUSVEDFZHVFVLURVEURDADCVKU
      IABCUJSUKVEDULUPTTUMUNUQ $.
  $}

  ${
    euexex.1 $e |- F/ y ph $.
    $( Existential uniqueness and "at most one" double quantification.
       (Contributed by Jim Kingdon, 28-Dec-2018.) $)
    euexex $p |-
        ( ( E! x ph /\ A. x E* y ps ) -> E* y E. x ( ph /\ ps ) ) $=
      ( weu wmo wal wa wex wi eu5 nfmo1 nfa1 nfe1 nfmo nfim mopick ex imp com3r
      alrimd moim spsd syl6 exlimi sylbi ) ACFZBDGZCHZABIZCJZDGZUHACJZACGZIUJUM
      KZACLUNUOUPAUOUPKCUOUPCACMUJUMCUICNULCDUKCOPQQAUOULBKZDHZUPAUOUQDEADCEPUO
      ULABUOULABKABCRSUAUBURUIUMCULBDUCUDUEUFTUGT $.
  $}

  $( Double quantification with "at most one."  (Contributed by NM,
     3-Dec-2001.) $)
  2moex $p |- ( E* x E. y ph -> A. y E* x ph ) $=
    ( wex wmo hbe1 hbmo 19.8a moimi alrimih ) ACDZBEABECKCBACFGAKBACHIJ $.

  $( Double quantification with existential uniqueness.  (Contributed by NM,
     3-Dec-2001.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  2euex $p |- ( E! x E. y ph -> E. y E! x ph ) $=
    ( wex weu wmo wa eu5 excom hbe1 hbmo 19.8a moimi df-mo eximdh syl5bi impcom
    wi sylib sylbi ) ACDZBEUABDZUABFZGABEZCDZUABHUCUBUEUBABDZCDUCUEABCIUCUFUDCU
    ACBACJKUCABFUFUDRAUABACLMABNSOPQT $.

  $( Double quantification with existential uniqueness and "at most one."
     (Contributed by NM, 3-Dec-2001.) $)
  2eumo $p |- ( E! x E* y ph -> E* x E! y ph ) $=
    ( weu wmo wi euimmo eumo mpg ) ACDZACEZFKBDJBEFBJKBGACHI $.

  $( Double existential uniqueness.  (Contributed by NM, 3-Dec-2001.) $)
  2eu2ex $p |- ( E! x E! y ph -> E. x E. y ph ) $=
    ( weu wex euex eximi syl ) ACDZBDIBEACEZBEIBFIJBACFGH $.

  $( A condition allowing swap of "at most one" and existential quantifiers.
     (Contributed by Jim Kingdon, 6-Jul-2018.) $)
  2moswapdc $p |- ( DECID E. x E. y ph -> ( A. x E* y ph ->
      ( E* x E. y ph -> E* y E. x ph ) ) ) $=
    ( wex wdc wmo wa wi nfe1 moexexdc expcomd 19.8a pm4.71ri exbii mobii imbi2i
    wal syl6ibr ) ACDZBDEZACFBQZSBFZSAGZBDZCFZHUBABDZCFZHTUBUAUESABCACIJKUGUEUB
    UFUDCAUCBASACLMNOPR $.

  $( A condition allowing swap of uniqueness and existential quantifiers.
     (Contributed by Jim Kingdon, 7-Jul-2018.) $)
  2euswapdc $p |- ( DECID E. x E. y ph -> ( A. x E* y ph ->
      ( E! x E. y ph -> E! y E. x ph ) ) ) $=
    ( wex wdc wmo wal weu wi wa excomim a1i 2moswapdc imp anim12d eu5 3imtr4g
    ex ) ACDZBDZEZACFBGZSBHZABDZCHZIUAUBJZTSBFZJUDCDZUDCFZJUCUEUFTUHUGUITUHIUFA
    BCKLUAUBUGUIIABCMNOSBPUDCPQR $.

  $( Double existential uniqueness implies double uniqueness quantification.
     (Contributed by NM, 3-Dec-2001.) $)
  2exeu $p |- ( ( E! x E. y ph /\ E! y E. x ph ) -> E! x E! y ph ) $=
    ( wex wmo weu excom hbe1 hbmo 19.41h 19.8a moimi anim2i eximi sylbir sylanb
    wa simpl eu5 anbi12i adantl anim12i ancoms exbii mobii bitri 3imtr4i ) ACDZ
    BDZUHBEZQZABDZCDZULCEZQZQUHACEZQZBDZUQBEZQZUHBFZULCFZQACFZBFZUOUKUTUOURUKUS
    UMUIUNURACBGUIUNQUHUNQZBDURUHUNBULBCABHIJVEUQBUNUPUHAULCABKLMNOPUJUSUIUQUHB
    UHUPRLUAUBUCVAUKVBUOUHBSULCSTVDVCBDZVCBEZQUTVCBSVFURVGUSVCUQBACSZUDVCUQBVHU
    ETUFUG $.

  ${
    $d x y z w $.  $d z w ph $.
    $( This theorem provides us with a definition of double existential
       uniqueness ("exactly one ` x ` and exactly one ` y ` ").  Naively one
       might think (incorrectly) that it could be defined by
       ` E! x E! y ph ` .  See ~ 2exeu for a one-way implication.  (Contributed
       by NM, 3-Dec-2001.) $)
    2eu4 $p |- ( ( E! x E. y ph /\ E! y E. x ph ) <->
      ( E. x E. y ph /\ E. z E. w A. x A. y ( ph -> ( x = z /\ y = w ) ) ) ) $=
      ( wex weu wa weq wi wal ax-17 eu3h anbi12i anbi2i bitri 19.3h 19.26 albii
      hba1 excom anidm jcab 3bitr4ri alcom bitr4i 19.23v 2albii hbe1 hbim aaanh
      an4 3bitri 2exbii eeanv bitr2i ) ACFZBGZABFZCGZHUQBFZUQBDIZJZBKZDFZHZUSCF
      ZUSCEIZJZCKZEFZHZHVAVGHZVEVKHZHVAAVBVHHJZCKZBKZEFDFZHURVFUTVLUQBDUQDLMUSC
      EUSELMNVAVEVGVKULVMVAVNVRVMVAVAHVAVGVAVAACBUAOVAUBPVRVDVJHZEFDFVNVQVSDEVQ
      AVBJZCKZAVHJZBKZHZCKZBKZVCVIHZCKBKVSVQWAWBCKZBKZHZBKZWFWABKZWIBKZHWLWIHZW
      KVQWMWIWLWIBWHBTQOWAWIBRVQWAWHHZBKWNVPWOBVPVTWBHZCKWOVOWPCAVBVHUCSVTWBCRP
      SWAWHBRPUDWEWJBWEWACKZWCCKZHWJWAWCCRWQWAWRWIWACVTCTQWBCBUENPSUFWDWGBCWAVC
      WCVIAVBCUGAVHBUGNUHVCVIBCUQVBCACUIVBCLUJUSVHBABUIVHBLUJUKUMUNVDVJDEUOUPNU
      M $.
  $}

  $( Two equivalent expressions for double existential uniqueness.
     (Contributed by NM, 19-Feb-2005.) $)
  2eu7 $p |- ( ( E! x E. y ph /\ E! y E. x ph ) <->
             E! x E! y ( E. x ph /\ E. y ph ) ) $=
    ( wex weu wa hbe1 hbeu euan ancom eubii 3bitri 3bitr4ri ) ABDZCEZACDZFZBEOP
    BEZFNPFZCEZBEROFOPBNBCABGHITQBTPNFZCEPOFQSUACNPJKPNCACGIPOJLKROJM $.

  ${
    $d x y z $.
    $( Equality has existential uniqueness.  (Contributed by Stefan Allan,
       4-Dec-2008.) $)
    euequ1 $p |- E! x x = y $=
      ( vz weq weu wex wa wi wal a9e equtr2 gen2 equequ1 eu4 mpbir2an ) ABDZAEP
      AFPCBDZGACDHZCIAIABJRACACBKLPQACACBMNO $.
  $}

  ${
    $d x y $.
    $( Two ways to express "only one thing exists."  The left-hand side
       requires only one variable to express this.  Both sides are false in set
       theory.  (Contributed by NM, 5-Apr-2004.) $)
    exists1 $p |- ( E! x x = x <-> A. x x = y ) $=
      ( weq weu wb wal wex df-eu equid tbt bicom bitri albii exbii hbae 3bitr2i
      19.9h ) AACZADRABCZEZAFZBGSAFZBGUBRABHUBUABSTASSRETRSAIJSRKLMNUBBABBOQP
      $.
  $}

  ${
    $d x y $.
    $( A condition implying that at least two things exist.  (Contributed by
       NM, 10-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    exists2 $p |- ( ( E. x ph /\ E. x -. ph ) -> -. E! x x = x ) $=
      ( vy wex wn cv wceq weu wal hbeu1 hba1 wi exists1 ax16 sylbi com12 alexim
      exlimdh syl6 con2d imp ) ABDZAEBDZBFZUDGZBHZEUBUFUCUBUFABIZUCEUFUBUGUFAUG
      BUEBJABKUFUDCFGBIAUGLBCMABCNORPABQSTUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
               Aristotelian logic: Assertic syllogisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Model the Aristotelian assertic syllogisms using modern notation.
  This section shows that the Aristotelian assertic syllogisms can be proven
  with our axioms of logic, and also provides generally useful theorems.

  In antiquity Aristotelian logic and Stoic logic
  (see ~ mpto1 ) were the leading logical systems.
  Aristotelian logic became the leading system in medieval Europe;
  this section models this system (including later refinements to it).
  Aristotle defined syllogisms very generally
  ("a discourse in which certain (specific) things having been supposed,
  something different from the things supposed results of necessity
  because these things are so")
  Aristotle, _Prior Analytics_ 24b18-20.
  However, in _Prior Analytics_ he limits himself to
  categorical syllogisms that consist of three categorical propositions
  with specific structures.  The syllogisms are the valid subset of
  the possible combinations of these structures.
  The medieval schools used vowels to identify the types of terms
  (a=all, e=none, i=some, and o=some are not), and named the different
  syllogisms with Latin words that had the vowels in the intended order.

  "There is a surprising amount of scholarly debate
  about how best to formalize Aristotle's syllogisms..." according to
  _Aristotle's Modal Proofs: Prior Analytics A8-22 in Predicate Logic_,
  Adriane Rini, Springer, 2011, ISBN 978-94-007-0049-9, page 28.
  For example, Lukasiewicz believes it is important to note that
  "Aristotle does not introduce singular terms or premisses into his system".
  Lukasiewicz also believes that Aristotelian syllogisms are
  predicates (having a true/false value), not inference rules:
  "The characteristic sign of an inference is the word 'therefore'...
  no syllogism is formulated by Aristotle primarily as an inference,
  but they are all implications."
  Jan Lukasiewicz, _Aristotle's Syllogistic from the Standpoint of
  Modern Formal Logic_, Second edition, Oxford, 1957, page 1-2.
  Lukasiewicz devised a specialized prefix notation for representing
  Aristotelian syllogisms instead of using standard predicate logic notation.

  We instead translate each Aristotelian syllogism into an inference rule,
  and each rule is defined using standard predicate logic notation and
  predicates.  The predicates are represented by wff variables
  that may depend on the quantified variable ` x ` .
  Our translation is essentially identical to the one
  use in Rini page 18, Table 2 "Non-Modal Syllogisms in
  Lower Predicate Calculus (LPC)", which uses
  standard predicate logic with predicates.  Rini states,
  "the crucial point is that we capture the meaning Aristotle intends,
  and the method by which we represent that meaning is less important."
  There are two differences: we make the existence criteria explicit, and
  we use ` ph ` , ` ps ` , and ` ch ` in the order they appear
  (a common Metamath convention).
  Patzig also uses standard predicate logic notation and predicates
  (though he interprets them as conditional propositions, not as
  inference rules); see
  Gunther Patzig, _Aristotle's Theory of the Syllogism_ second edition, 1963,
  English translation by Jonathan Barnes, 1968, page 38.
  Terms such as "all" and "some" are translated into predicate logic
  using the aproach devised by Frege and Russell.
  "Frege (and Russell) devised an ingenious procedure for regimenting
  binary quantifiers like "every" and "some" in terms of unary quantifiers
  like "everything" and "something": they formalized sentences of the form
  "Some A is B" and "Every A is B" as
  exists x (Ax and Bx) and all x (Ax implies Bx), respectively."
  "Quantifiers and Quantification", _Stanford Encyclopedia of Philosophy_,
  ~ http://plato.stanford.edu/entries/quantification/ .
  See _Principia Mathematica_ page 22 and *10 for more information
  (especially *10.3 and *10.26).

  Expressions of the form "no ` ph ` is ` ps ` " are consistently translated as
  ` A. x ( ph -> -. ps ) ` .  These can also be expressed as
  ` -. E. x ( ph /\ ps ) ` , per ~ alinexa .
  We translate "all ` ph ` is ` ps ` " to ` A. x ( ph -> ps ) ` ,
  "some ` ph ` is ` ps ` " to ` E. x ( ph /\ ps ) ` , and
  "some ` ph ` is not ` ps ` " to ` E. x ( ph /\ -. ps ) ` .
  It is traditional to use the singular verb "is", not the plural
  verb "are", in the generic expressions.
  By convention the major premise is listed first.

  In traditional Aristotelian syllogisms the predicates
  have a restricted form ("x is a ..."); those predicates
  could be modeled in modern notation by constructs such as
  ` x = A ` , ` x e. A ` , or ` x C_ A ` .
  Here we use wff variables instead of specialized restricted forms.
  This generalization makes the syllogisms more useful
  in more circumstances.  In addition, these expressions make
  it clearer that the syllogisms of Aristolean logic are the
  forerunners of predicate calculus.  If we used restricted forms
  like ` x e. A ` instead, we would not only unnecessarily limit
  their use, but we would also need to use set and class axioms,
  making their relationship to predicate calculus less clear.

  There are some widespread misconceptions about the existential
  assumptions made by Aristotle (aka "existential import").
  Aristotle was not trying to develop something exactly corresponding
  to modern logic.  Aristotle devised "a companion-logic for science.
  He relegates fictions like fairy godmothers and mermaids and unicorns to
  the realms of poetry and literature. In his mind, they exist outside the
  ambit of science. This is why he leaves no room for such non-existent
  entities in his logic.  This is a thoughtful choice, not an inadvertent
  omission. Technically, Aristotelian science is a search for definitions,
  where a definition is "a phrase signifying a thing's essence."
  (Topics, I.5.102a37, Pickard-Cambridge.)...
  Because non-existent entities cannot be anything, they do not, in
  Aristotle's mind, possess an essence...  This is why he leaves
  no place for fictional entities like goat-stags (or unicorns)."
  Source: Louis F. Groarke, "Aristotle: Logic",
  section 7. (Existential Assumptions),
  _Internet Encyclopedia of Philosophy_ (A Peer-Reviewed Academic Resource),
  ~ http://www.iep.utm.edu/aris-log/ .
  Thus, some syllogisms have "extra" existence
  hypotheses that do not directly appear in Aristotle's original materials
  (since they were always assumed); they are added where they are needed.
  This affects ~ barbari , ~ celaront , ~ cesaro , ~ camestros , ~ felapton ,
  ~ darapti , ~ calemos , ~ fesapo , and ~ bamalip .

  These are only the _assertic_ syllogisms.
  Aristotle also defined modal syllogisms that deal with modal
  qualifiers such as "necessarily" and "possibly".
  Historically Aristotelian modal syllogisms were not as widely used.
  For more about modal syllogisms in a modern context, see Rini as well as
  _Aristotle's Modal Syllogistic_ by Marko Malink, Harvard
  University Press, November 2013.  We do not treat them further here.

  Aristotelean logic is essentially the forerunner of predicate calculus
  (as well as set theory since it discusses membership in groups),
  while Stoic logic is essentially the forerunner of propositional calculus.
$)

  $( Figure 1.  Aristotelian syllogisms are grouped by "figures",
     which doesn't matter for our purposes but is a reasonable way
     to order them. $)

  ${
    $( Major premise for the Aristotelian syllogism "Barbara", e.g.,
       "All men are mortal". By convention, the major premise is first. $)
    barbara.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Barbara, e.g., "Socrates is a man". $)
    barbara.min $e |- A. x ( ch -> ph ) $.
    $( "Barbara", one of the fundamental syllogisms of Aristotelian logic.  All
       ` ph ` is ` ps ` , and all ` ch ` is ` ph ` , therefore all ` ch ` is
       ` ps ` .  (In Aristotelian notation, AAA-1:  MaP and SaM therefore SaP.)
       For example, given "All men are mortal" and "Socrates is a man", we can
       prove "Socrates is mortal".  If H is the set of men, M is the set of
       mortal beings, and S is Socrates, these word phrases can be represented
       as ` A. x ( x e. H -> x e. M ) ` (all men are mortal) and
       ` A. x ( x = S -> x e. H ) ` (Socrates is a man) therefore
       ` A. x ( x = S -> x e. M ) ` (Socrates is mortal).  Russell and
       Whitehead note that the "syllogism in Barbara is derived..." from
       ~ syl .  (quote after Theorem *2.06 of [WhiteheadRussell] p. 101).  Most
       of the proof is in ~ alsyl .  There are a legion of sources for Barbara,
       including ~ http://www.friesian.com/aristotl.htm ,
       ~ http://plato.stanford.edu/entries/aristotle-logic/ , and
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.) $)
    barbara $p |- A. x ( ch -> ps ) $=
      ( wi wal alsyl mp2an ) CAGDHABGDHCBGDHFECABDIJ $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Celarent", e.g.,
       "No reptiles have fur". $)
    celarent.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Celarent, e.g., "All snakes are reptiles". $)
    celarent.min $e |- A. x ( ch -> ph ) $.
    $( "Celarent", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and all ` ch ` is ` ph ` , therefore no ` ch ` is ` ps ` .  (In
       Aristotelian notation, EAE-1:  MeP and SaM therefore SeP.) For example,
       given the "No reptiles have fur" and "All snakes are reptiles",
       therefore "No snakes have fur".  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.)  (Revised by David A. Wheeler, 2-Sep-2016.) $)
    celarent $p |- A. x ( ch -> -. ps ) $=
      ( wn barbara ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Darii", e.g.,
       "All rabbits have fur". $)
    darii.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Darii, e.g., "Some pets are rabbits." $)
    darii.min $e |- E. x ( ch /\ ph ) $.
    $( "Darii", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and some ` ch ` is ` ph ` , therefore some ` ch ` is ` ps ` .
       (In Aristotelian notation, AII-1:  MaP and SiM therefore SiP.) For
       example, given "All rabbits have fur" and "Some pets are rabbits",
       therefore "Some pets have fur".  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.) $)
    darii $p |- E. x ( ch /\ ps ) $=
      ( wa wi spi anim2i eximii ) CAGCBGDFABCABHDEIJK $.
  $}


  ${
    $( Major premise for the Aristotelian syllogism "Ferio" ("Ferioque"),
       e.g., "No homework is fun". $)
    ferio.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Ferio, e.g., "Some reading is homework." $)
    ferio.min $e |- E. x ( ch /\ ph ) $.
    $( "Ferio" ("Ferioque"), one of the syllogisms of Aristotelian logic.  No
       ` ph ` is ` ps ` , and some ` ch ` is ` ph ` , therefore some ` ch ` is
       not ` ps ` .  (In Aristotelian notation, EIO-1:  MeP and SiM therefore
       SoP.) For example, given "No homework is fun" and "Some reading is
       homework", therefore "Some reading is not fun".  This is essentially a
       logical axiom in Aristotelian logic.  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.)  (Revised by David A. Wheeler, 2-Sep-2016.) $)
    ferio $p |- E. x ( ch /\ -. ps ) $=
      ( wn darii ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Barbari", e.g.,
       e.g., "All men are mortal". $)
    barbari.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Barbari, e.g., "All Greeks are men." $)
    barbari.min $e |- A. x ( ch -> ph ) $.
    $( Existence premise for Barbari, e.g., "Greeks exist." $)
    barbari.e $e |- E. x ch $.
    $( "Barbari", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , all ` ch ` is ` ph ` , and some ` ch ` exist, therefore some
       ` ch ` is ` ps ` .  (In Aristotelian notation, AAI-1:  MaP and SaM
       therefore SiP.) For example, given "All men are mortal", "All Greeks are
       men", and "Greeks exist", therefore "Some Greeks are mortal".  Note the
       existence hypothesis (to prove the "some" in the conclusion).  Example
       from ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David
       A. Wheeler, 27-Aug-2016.)  (Revised by David A. Wheeler,
       30-Aug-2016.) $)
    barbari $p |- E. x ( ch /\ ps ) $=
      ( wa wi barbara spi ancli eximii ) CCBHDGCBCBIDABCDEFJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Celaront", e.g.,
       e.g., "No reptiles have fur". $)
    celaront.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Celaront, e.g., "All Snakes are reptiles." $)
    celaront.min $e |- A. x ( ch -> ph ) $.
    $( Existence premise for Celaront, e.g., "Snakes exist." $)
    celaront.e $e |- E. x ch $.
    $( "Celaront", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ch ` is ` ph ` , and some ` ch ` exist, therefore some
       ` ch ` is not ` ps ` .  (In Aristotelian notation, EAO-1:  MeP and SaM
       therefore SoP.) For example, given "No reptiles have fur", "All snakes
       are reptiles.", and "Snakes exist.", prove "Some snakes have no fur".
       Note the existence hypothesis.  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 27-Aug-2016.)  (Revised by David A. Wheeler, 2-Sep-2016.) $)
    celaront $p |- E. x ( ch /\ -. ps ) $=
      ( wn barbari ) ABHCDEFGI $.
  $}

  $( Figure 2 $)

  ${
    $( Major premise for the Aristotelian syllogism "Cesare" $)
    cesare.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Cesare $)
    cesare.min $e |- A. x ( ch -> ps ) $.
    $( "Cesare", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and all ` ch ` is ` ps ` , therefore no ` ch ` is ` ph ` .  (In
       Aristotelian notation, EAE-2:  PeM and SaM therefore SeP.) Related to
       ~ celarent .  (Contributed by David A. Wheeler, 27-Aug-2016.)  (Revised
       by David A. Wheeler, 13-Nov-2016.) $)
    cesare $p |- A. x ( ch -> -. ph ) $=
      ( wn wi spi nsyl3 ax-gen ) CAGHDABCABGHDEICBHDFIJK $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Camestres" $)
    camestres.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Camestres $)
    camestres.min $e |- A. x ( ch -> -. ps ) $.
    $( "Camestres", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and no ` ch ` is ` ps ` , therefore no ` ch ` is ` ph ` .  (In
       Aristotelian notation, AEE-2:  PaM and SeM therefore SeP.) (Contributed
       by David A. Wheeler, 28-Aug-2016.)  (Revised by David A. Wheeler,
       2-Sep-2016.) $)
    camestres $p |- A. x ( ch -> -. ph ) $=
      ( wn wi spi nsyl ax-gen ) CAGHDCBACBGHDFIABHDEIJK $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Festino" $)
    festino.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Festino $)
    festino.min $e |- E. x ( ch /\ ps ) $.
    $( "Festino", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and some ` ch ` is ` ps ` , therefore some ` ch ` is not
       ` ph ` .  (In Aristotelian notation, EIO-2:  PeM and SiM therefore SoP.)
       (Contributed by David A. Wheeler, 25-Nov-2016.) $)
    festino $p |- E. x ( ch /\ -. ph ) $=
      ( wa wn wi spi con2i anim2i eximii ) CBGCAHZGDFBNCABABHIDEJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Baroco" $)
    baroco.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Baroco $)
    baroco.min $e |- E. x ( ch /\ -. ps ) $.
    $( "Baroco", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and some ` ch ` is not ` ps ` , therefore some ` ch ` is not
       ` ph ` .  (In Aristotelian notation, AOO-2:  PaM and SoM therefore SoP.)
       For example, "All informative things are useful", "Some websites are not
       useful", therefore "Some websites are not informative."  (Contributed by
       David A. Wheeler, 28-Aug-2016.) $)
    baroco $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi con3i anim2i eximii ) CBGZHCAGZHDFNOCABABIDEJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Cesaro" $)
    cesaro.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Cesaro $)
    cesaro.min $e |- A. x ( ch -> ps ) $.
    $( Existence premise for Cesaro $)
    cesaro.e $e |- E. x ch $.
    $( "Cesaro", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ch ` is ` ps ` , and ` ch ` exist, therefore some ` ch `
       is not ` ph ` .  (In Aristotelian notation, EAO-2:  PeM and SaM
       therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    cesaro $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi nsyl3 ancli eximii ) CCAHZIDGCOABCABHJDEKCBJDFKLMN $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Camestros" $)
    camestros.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for  $)
    camestros.min $e |- A. x ( ch -> -. ps ) $.
    $( Existence premise for Camestros $)
    camestros.e $e |- E. x ch $.
    $( "Camestros", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , no ` ch ` is ` ps ` , and ` ch ` exist, therefore some ` ch `
       is not ` ph ` .  (In Aristotelian notation, AEO-2:  PaM and SeM
       therefore SoP.) For example, "All horses have hooves", "No humans have
       hooves", and humans exist, therefore "Some humans are not horses".
       (Contributed by David A. Wheeler, 28-Aug-2016.)  (Revised by David A.
       Wheeler, 2-Sep-2016.) $)
    camestros $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi nsyl ancli eximii ) CCAHZIDGCOCBACBHJDFKABJDEKLMN $.
  $}

  $( Figure 3 $)

  ${
    $( Major premise for the Aristotelian syllogism "Datisi" $)
    datisi.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for  $)
    datisi.min $e |- E. x ( ph /\ ch ) $.
    $( "Datisi", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and some ` ph ` is ` ch ` , therefore some ` ch ` is ` ps ` .
       (In Aristotelian notation, AII-3:  MaP and MiS therefore SiP.)
       (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    datisi $p |- E. x ( ch /\ ps ) $=
      ( wa simpr wi spi adantr jca eximii ) ACGZCBGDFNCBACHABCABIDEJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Disamis" $)
    disamis.maj $e |- E. x ( ph /\ ps ) $.
    $( Minor premise for  $)
    disamis.min $e |- A. x ( ph -> ch ) $.
    $( "Disamis", one of the syllogisms of Aristotelian logic.  Some ` ph ` is
       ` ps ` , and all ` ph ` is ` ch ` , therefore some ` ch ` is ` ps ` .
       (In Aristotelian notation, IAI-3:  MiP and MaS therefore SiP.)
       (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    disamis $p |- E. x ( ch /\ ps ) $=
      ( wa wi spi anim1i eximii ) ABGCBGDEACBACHDFIJK $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Ferison" $)
    ferison.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for  $)
    ferison.min $e |- E. x ( ph /\ ch ) $.
    $( "Ferison", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and some ` ph ` is ` ch ` , therefore some ` ch ` is not
       ` ps ` .  (In Aristotelian notation, EIO-3:  MeP and MiS therefore SoP.)
       (Contributed by David A. Wheeler, 28-Aug-2016.)  (Revised by David A.
       Wheeler, 2-Sep-2016.) $)
    ferison $p |- E. x ( ch /\ -. ps ) $=
      ( wn datisi ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Bocardo" $)
    bocardo.maj $e |- E. x ( ph /\ -. ps ) $.
    $( Minor premise for  $)
    bocardo.min $e |- A. x ( ph -> ch ) $.
    $( "Bocardo", one of the syllogisms of Aristotelian logic.  Some ` ph ` is
       not ` ps ` , and all ` ph ` is ` ch ` , therefore some ` ch ` is not
       ` ps ` .  (In Aristotelian notation, OAO-3:  MoP and MaS therefore SoP.)
       For example, "Some cats have no tails", "All cats are mammals",
       therefore "Some mammals have no tails".  A reorder of ~ disamis ; prefer
       using that instead.  (Contributed by David A. Wheeler, 28-Aug-2016.)
       (New usage is discouraged.) $)
    bocardo $p |- E. x ( ch /\ -. ps ) $=
      ( wn disamis ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Felapton" $)
    felapton.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for  $)
    felapton.min $e |- A. x ( ph -> ch ) $.
    $( Existence premise for Felapton $)
    felapton.e $e |- E. x ph $.
    $( "Felapton", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ph ` is ` ch ` , and some ` ph ` exist, therefore some
       ` ch ` is not ` ps ` .  (In Aristotelian notation, EAO-3:  MeP and MaS
       therefore SoP.) For example, "No flowers are animals" and "All flowers
       are plants", therefore "Some plants are not animals".  (Contributed by
       David A. Wheeler, 28-Aug-2016.)  (Revised by David A. Wheeler,
       2-Sep-2016.) $)
    felapton $p |- E. x ( ch /\ -. ps ) $=
      ( wn wa wi spi jca eximii ) ACBHZIDGACNACJDFKANJDEKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Darapti" $)
    darapti.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for  $)
    darapti.min $e |- A. x ( ph -> ch ) $.
    $( Existence premise for Darapti $)
    darapti.e $e |- E. x ph $.
    $( "Darapti", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , all ` ph ` is ` ch ` , and some ` ph ` exist, therefore some
       ` ch ` is ` ps ` .  (In Aristotelian notation, AAI-3:  MaP and MaS
       therefore SiP.) For example, "All squares are rectangles" and "All
       squares are rhombuses", therefore "Some rhombuses are rectangles".
       (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    darapti $p |- E. x ( ch /\ ps ) $=
      ( wa wi spi jca eximii ) ACBHDGACBACIDFJABIDEJKL $.
  $}

  $( Figure 4 $)

  ${
    $( Major premise for the Aristotelian syllogism "Calemes" $)
    calemes.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for  $)
    calemes.min $e |- A. x ( ps -> -. ch ) $.
    $( "Calemes", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and no ` ps ` is ` ch ` , therefore no ` ch ` is ` ph ` .  (In
       Aristotelian notation, AEE-4:  PaM and MeS therefore SeP.) (Contributed
       by David A. Wheeler, 28-Aug-2016.)  (Revised by David A. Wheeler,
       2-Sep-2016.) $)
    calemes $p |- A. x ( ch -> -. ph ) $=
      ( wn wi spi con2i nsyl ax-gen ) CAGHDCBABCBCGHDFIJABHDEIKL $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Dimatis" $)
    dimatis.maj $e |- E. x ( ph /\ ps ) $.
    $( Minor premise for  $)
    dimatis.min $e |- A. x ( ps -> ch ) $.
    $( "Dimatis", one of the syllogisms of Aristotelian logic.  Some ` ph ` is
       ` ps ` , and all ` ps ` is ` ch ` , therefore some ` ch ` is ` ph ` .
       (In Aristotelian notation, IAI-4:  PiM and MaS therefore SiP.) For
       example, "Some pets are rabbits.", "All rabbits have fur", therefore
       "Some fur bearing animals are pets".  Like ~ darii with positions
       interchanged.  (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    dimatis $p |- E. x ( ch /\ ph ) $=
      ( wa wi spi adantl simpl jca eximii ) ABGZCAGDENCABCABCHDFIJABKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Fresison" $)
    fresison.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for  $)
    fresison.min $e |- E. x ( ps /\ ch ) $.
    $( "Fresison", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` (PeM), and some ` ps ` is ` ch ` (MiS), therefore some ` ch ` is
       not ` ph ` (SoP).  (In Aristotelian notation, EIO-4:  PeM and MiS
       therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    fresison $p |- E. x ( ch /\ -. ph ) $=
      ( wa wn simpr wi spi con2i adantr jca eximii ) BCGZCAHZGDFPCQBCIBQCABABHJ
      DEKLMNO $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Calemos" $)
    calemos.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for  $)
    calemos.min $e |- A. x ( ps -> -. ch ) $.
    $( Existence premise for Calemos $)
    calemos.e $e |- E. x ch $.
    $( "Calemos", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` (PaM), no ` ps ` is ` ch ` (MeS), and ` ch ` exist, therefore
       some ` ch ` is not ` ph ` (SoP).  (In Aristotelian notation, AEO-4:  PaM
       and MeS therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    calemos $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi con2i nsyl ancli eximii ) CCAHZIDGCPCBABCBCHJDFKLABJDEKMNO
      $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Fesapo" $)
    fesapo.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for  $)
    fesapo.min $e |- A. x ( ps -> ch ) $.
    $( Existence premise for Fesapo $)
    fesapo.e $e |- E. x ps $.
    $( "Fesapo", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ps ` is ` ch ` , and ` ps ` exist, therefore some ` ch `
       is not ` ph ` .  (In Aristotelian notation, EAO-4:  PeM and MaS
       therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    fesapo $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi con2i jca eximii ) BCAHZIDGBCOBCJDFKABABHJDEKLMN $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Bamalip" $)
    bamalip.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for  $)
    bamalip.min $e |- A. x ( ps -> ch ) $.
    $( Existence premise for Bamalip $)
    bamalip.e $e |- E. x ph $.
    $( "Bamalip", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , all ` ps ` is ` ch ` , and ` ph ` exist, therefore some ` ch `
       is ` ph ` .  (In Aristotelian notation, AAI-4:  PaM and MaS therefore
       SiP.) Like ~ barbari .  (Contributed by David A. Wheeler,
       28-Aug-2016.) $)
    bamalip $p |- E. x ( ch /\ ph ) $=
      ( wa wi spi syl ancri eximii ) ACAHDGACABCABIDEJBCIDFJKLM $.
  $}


$(
###############################################################################
                                 SET THEORY
###############################################################################

  Set theory uses the formalism of propositional and predicate calculus to
  assert properties of arbitrary mathematical objects called "sets."  A set can
  be an element of another set, and this relationship is indicated by the
  ` e. `
  symbol.  Starting with the simplest mathematical object, called the empty
  set, set theory builds up more and more complex structures whose existence
  follows from the axioms, eventually resulting in extremely complicated sets
  that we identify with the real numbers and other familiar mathematical
  objects.

  Here we develop set theory based on the Intuitionistic Zermelo-Fraenkel
  (IZF) system, mostly following the IZF axioms as laid out in [Crosilla].
  Constructive Zermelo-Fraenkel (CZF), also described in Crosilla, is not
  as easy to formalize in metamath because the Axiom of Restricted Separation
  would require us to develop the ability to classify formulas as bounded
  formulas, similar to the machinery we have built up for asserting on
  whether variables are free in formulas.

$)

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
             IZF Set Theory - start with the Axiom of Extensionality
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Introduce the Axiom of Extensionality
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Axiom of Extensionality.  It states that two sets are identical if they
       contain the same elements.  Axiom 1 of [Crosilla] p.  "Axioms of CZF and
       IZF" (with unnecessary quantifiers removed).

       Set theory can also be formulated with a _single_ primitive predicate
       ` e. ` on top of traditional predicate calculus _without_ equality.  In
       that case the Axiom of Extensionality becomes
       ` ( A. w ( w e. x <-> w e. y ) -> ( x e. z -> y e. z ) ) ` , and
       equality ` x = y ` is _defined_ as ` A. w ( w e. x <-> w e. y ) ` .  All
       of the usual axioms of equality then become theorems of set theory.
       See, for example, Axiom 1 of [TakeutiZaring] p. 8.

       To use the above "equality-free" version of Extensionality with
       Metamath's logical axioms, we would rewrite ~ ax-8 through ~ ax-16 with
       equality expanded according to the above definition.  Some of those
       axioms could be proved from set theory and would be redundant.  Not all
       of them are redundant, since our axioms of predicate calculus make
       essential use of equality for the proper substitution that is a
       primitive notion in traditional predicate calculus.  A study of such an
       axiomatization would be an interesting project for someone exploring the
       foundations of logic.

       It is important to understand that strictly speaking, all of our set
       theory axioms are really schemes that represent an infinite number of
       actual axioms.  This is inherent in the design of Metamath
       ("metavariable math"), which manipulates only metavariables.  For
       example, the metavariable ` x ` in ~ ax-ext can represent any actual
       variable _v1_, _v2_, _v3_,... .  Distinct variable restrictions ($d)
       prevent us from substituting say _v1_ for both ` x ` and ` z ` .  This
       is in contrast to typical textbook presentations that present actual
       axioms (except for axioms which involve wff metavariables).  In
       practice, though, the theorems and proofs are essentially the same.  The
       $d restrictions make each of the infinite axioms generated by the
       ~ ax-ext scheme exactly logically equivalent to each other and in
       particular to the actual axiom of the textbook version.  (Contributed by
       NM, 5-Aug-1993.) $)
    ax-ext $a |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $.
  $}

  ${
    $d z x w $.  $d z y w $.
    $( A generalization of the Axiom of Extensionality in which ` x ` and ` y `
       need not be distinct.  (Contributed by NM, 15-Sep-1993.)  (Proof
       shortened by Andrew Salmon, 12-Aug-2011.) $)
    axext3 $p |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $=
      ( vw wel wb wal weq wi elequ2 bibi1d albidv equequ1 imbi12d ax-ext chvarv
      ) CDEZCBEZFZCGZDBHZICAEZRFZCGZABHZIDADAHZTUDUAUEUFSUCCUFQUBRDACJKLDABMNDB
      COP $.

    $( A bidirectional version of Extensionality.  Although this theorem
       "looks" like it is just a definition of equality, it requires the Axiom
       of Extensionality for its proof under our axiomatization.  See the
       comments for ~ ax-ext .  (Contributed by NM, 14-Nov-2008.) $)
    axext4 $p |- ( x = y <-> A. z ( z e. x <-> z e. y ) ) $=
      ( weq wel wb wal elequ2 alrimiv axext3 impbii ) ABDZCAECBEFZCGLMCABCHIABC
      JK $.
  $}

  ${
    $d x y z $.  $d ph z $.
    bm1.1.1 $e |- F/ x ph $.
    $( Any set defined by a property is the only set defined by that property.
       Theorem 1.1 of [BellMachover] p. 462.  (Contributed by NM,
       30-Jun-1994.) $)
    bm1.1 $p |- ( E. x A. y ( y e. x <-> ph ) ->
                  E! x A. y ( y e. x <-> ph ) ) $=
      ( vz wel wb wal wex wsb wa weq wi weu nfv nfbi nfal elequ2 bibi1d albidv
      sbie 19.26 biantr alimi ax-ext syl sylbir sylan2b gen2 jctr eu2 sylibr )
      CBFZAGZCHZBIZUPUOUOBEJZKBELZMZEHBHZKUOBNUPUTUSBEUQUOCEFZAGZCHZURUOVCBEVBB
      CVAABVABODPQURUNVBCURUMVAABECRSTUAUOVCKUNVBKZCHZURUNVBCUBVEUMVAGZCHURVDVF
      CUMAVAUCUDBECUEUFUGUHUIUJUOBEUOEOUKUL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                   Class abstractions (a.k.a. class builders)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constants use in class definition. $)
  $c { $. $( Left brace $)
  $c | $.  $( Vertical bar $)
  $c } $. $( Right brace $)
  $( --- Start of old code before overloading prevention patch. $)
  $(
  @c class @. @( Class variable type @)
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( Declare symbols as variables $)
  $v ./\ $.
  $v .\/ $.
  $v .<_ $.
  $v .< $.
  $v .+ $.
  $v .- $.
  $v .X. $.
  $v ./ $.
  $v .^ $.
  $v .0. $.
  $v .1. $.
  $v .|| $.
  $v .~ $.
  $v ._|_ $.
  $v .+^ $.
  $v .+b $.
  $v .(+) $.
  $v .* $.
  $v .x. $.
  $v .xb $.
  $v ., $.
  $v .(x) $.
  $v .0b $.

  $( Declare variable symbols that will be used to represent classes.  Note
     that later on ` R ` , ` S ` , ` F ` and ` G ` denote relations and
     functions, but these letters serve as mnemonics only and in fact behave
     no differently from the variables ` A ` through ` D ` . $)
  $v A $.
  $v B $.
  $v C $.
  $v D $.
  $v P $.
  $v Q $.
  $v R $.
  $v S $.
  $v T $.
  $v U $.

  $( Introduce the class builder or class abstraction notation ("the class of
     sets ` x ` such that ` ph ` is true").  Our class variables ` A ` ,
     ` B ` , etc. range over class builders (sometimes implicitly).  Note that
     a setvar variable can be expressed as a class builder per theorem
     ~ cvjust , justifying the assignment of setvar variables to class
     variables via the use of ~ cv . $)
  cab $a class { x | ph } $.

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( A setvar variable is a class expression.  The syntax " ` class x ` " can
     be
     viewed as an abbreviation for " ` class { y | y e. x } ` " (a special case
     of ~ cab ), where ` y ` is distinct from ` x ` .  See the discussion under
     the definition of class in [Jech] p. 4.  Note that ` { y | y e. x } = x `
     by ~ cvjust . @)
  cv @a class x @.
  $)
  $( --- End of old code before overloading prevention patch. $)
  $( $j primitive 'cv' 'wceq' 'wcel' 'cab'; $)

  $( Let ` A ` be a class variable. $)
  cA $f class A $.
  $( Let ` B ` be a class variable. $)
  cB $f class B $.
  $( Let ` C ` be a class variable. $)
  cC $f class C $.

  $( Define a connective symbol for use as a class variable. $)
  c.pa $f class .|| $.

  $( Let ` D ` be a class variable. $)
  cD $f class D $.

  $( Define a connective symbol for use as a class variable. $)
  c.dv $f class ./ $.

  $( Let ` P ` be a class variable. $)
  cP $f class P $.

  $( Define a connective symbol for use as a class variable. $)
  c.pl $f class .+ $.

  $( Define a connective symbol for use as a class variable. $)
  c.pd $f class .+^ $.

  $( Define a connective symbol for use as a class variable. $)
  c.pb $f class .+b $.

  $( Define a connective symbol for use as a class variable. $)
  c.po $f class .(+) $.

  $( Let ` Q ` be a class variable. $)
  cQ $f class Q $.

  $( Define a connective symbol for use as a class variable. $)
  c.sm $f class .~ $.

  $( Let ` R ` be a class variable. $)
  cR $f class R $.
  $( Let ` S ` be a class variable. $)
  cS $f class S $.

  $( Define a connective symbol for use as a class variable. $)
  c.lt $f class .< $.

  $( Define a connective symbol for use as a class variable. $)
  c.xb $f class .xb $.

  $( Let ` T ` be a class variable. $)
  cT $f class T $.

  $( Define a connective symbol for use as a class variable. $)
  c.x $f class .x. $.

  $( Define a connective symbol for use as a class variable. $)
  c.xp $f class .X. $.

  $( Define a connective symbol for use as a class variable. $)
  c.xo $f class .(x) $.

  $( Let ` U ` be a class variable. $)
  cU $f class U $.

  $( Define a connective symbol for use as a class variable. $)
  c.1 $f class .1. $.

  $v e $.
  $v f $.
  $v g $.
  $v h $.
  $v i $.
  $v j $.
  $v k $.
  $v m $.
  $v n $.
  $v o $.
  $v E $.
  $v F $.
  $v G $.
  $v H $.
  $v I $.
  $v J $.
  $v K $.
  $v L $.
  $v M $.
  $v N $.
  $v V $.
  $v W $.
  $v X $.
  $v Y $.
  $v Z $.
  $v O $.
  $v s $.
  $v r $.
  $v q $.
  $v p $.
  $v a $.
  $v b $.
  $v c $.
  $v d $.
  $v l $.


  $( Let ` e ` be an individual variable. $)
  ve $f setvar e $.
  $( Let ` f ` be an individual variable. $)
  vf $f setvar f $.
  $( Let ` g ` be an individual variable. $)
  vg $f setvar g $.
  $( Let ` h ` be an individual variable. $)
  vh $f setvar h $.
  $( Let ` i ` be an individual variable. $)
  vi $f setvar i $.
  $( Let ` j ` be an individual variable. $)
  vj $f setvar j $.
  $( Let ` k ` be an individual variable. $)
  vk $f setvar k $.
  $( Let ` m ` be an individual variable. $)
  vm $f setvar m $.
  $( Let ` n ` be an individual variable. $)
  vn $f setvar n $.
  $( Let ` o ` be an individual variable. $)
  vo $f setvar o $.
  $( Let ` E ` be a class variable. $)
  cE $f class E $.

  $( Define a connective symbol for use as a class variable. $)
  c.ex $f class .^ $.

  $( Let ` F ` be a class variable. $)
  cF $f class F $.
  $( Let ` G ` be a class variable. $)
  cG $f class G $.
  $( Let ` H ` be a class variable. $)
  cH $f class H $.

  $( Define a connective symbol for use as a class variable. $)
  c.xi $f class ., $.

  $( Let ` I ` be a class variable. $)
  cI $f class I $.

  $( Define a connective symbol for use as a class variable. $)
  c.as $f class .* $.

  $( Let ` J ` be a class variable. $)
  cJ $f class J $.

  $( Define a connective symbol for use as a class variable. $)
  c.or $f class .\/ $.

  $( Let ` K ` be a class variable. $)
  cK $f class K $.
  $( Let ` L ` be a class variable. $)
  cL $f class L $.

  $( Define a connective symbol for use as a class variable. $)
  c.le $f class .<_ $.

  $( Let ` M ` be a class variable. $)
  cM $f class M $.

  $( Define a connective symbol for use as a class variable. $)
  c.an $f class ./\ $.

  $( Define a connective symbol for use as a class variable. $)
  c.mi $f class .- $.

  $( Let ` N ` be a class variable. $)
  cN $f class N $.

  $( Define a connective symbol for use as a class variable. $)
  c.pe $f class ._|_ $.

  $( Let ` O ` be a class variable. $)
  cO $f class O $.
  $( Let ` V ` be a class variable. $)
  cV $f class V $.
  $( Let ` W ` be a class variable. $)
  cW $f class W $.
  $( Let ` X ` be a class variable. $)
  cX $f class X $.
  $( Let ` Y ` be a class variable. $)
  cY $f class Y $.

  $( Define a connective symbol for use as a class variable. $)
  c.0 $f class .0. $.

  $( Define a connective symbol for use as a class variable. $)
  c.0b $f class .0b $.

  $( Let ` Z ` be a class variable. $)
  cZ $f class Z $.
  $( Let ` s ` be an individual variable. $)
  vs $f setvar s $.
  $( Let ` r ` be an individual variable. $)
  vr $f setvar r $.
  $( Let ` q ` be an individual variable. $)
  vq $f setvar q $.
  $( Let ` p ` be an individual variable. $)
  vp $f setvar p $.
  $( Let ` a ` be an individual variable. $)
  va $f setvar a $.
  $( Let ` b ` be an individual variable. $)
  vb $f setvar b $.
  $( Let ` c ` be an individual variable. $)
  vc $f setvar c $.
  $( Let ` d ` be an individual variable. $)
  vd $f setvar d $.
  $( Let ` l ` be an individual variable. $)
  vl $f setvar l $.

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( Extend wff definition to include class equality. @)
  wceq @a wff A = B @.
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( Extend wff definition to include the membership connective between
     classes. @)
  wcel @a wff A e. B @.
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( Define class abstraction notation (so-called by Quine), also called a
     "class builder" in the literature. ` x ` and ` y ` need not be distinct.
     Definition 2.1 of [Quine] p. 16.  Typically, ` ph ` will have ` y ` as a
     free variable, and " ` { y | ph } ` " is read "the class of all sets ` y `
     such that ` ph ( y ) ` is true."  We do not define ` { y | ph } ` in
     isolation but only as part of an expression that extends or "overloads"
     the ` e. ` relationship.

     This is our first use of the ` e. ` symbol to connect classes instead of
     sets.  The syntax definition ~ wcel , which extends or "overloads" the
     ~ wel definition connecting setvar variables, requires that both sides of
     ` e. ` be a class.  In ~ df-cleq and ~ df-clel , we introduce a new kind
     of variable (class variable) that can substituted with expressions such as
     ` { y | ph } ` .  In the present definition, the ` x ` on the left-hand
     side is a setvar variable.  Syntax definition ~ cv allows us to substitute
     a setvar variable ` x ` for a class variable: all sets are classes by
     ~ cvjust (but not necessarily vice-versa).  For a full description of how
     classes are introduced and how to recover the primitive language, see the
     discussion in Quine (and under ~ abeq2 for a quick overview).

     Because class variables can be substituted with compound expressions and
     setvar variables cannot, it is often useful to convert a theorem
     containing a free setvar variable to a more general version with a class
     variable.

     This is called the "axiom of class comprehension" by [Levy] p. 338, who
     treats the theory of classes as an extralogical extension to our logic and
     set theory axioms.  He calls the construction ` { y | ph } ` a "class
     term".

     For a general discussion of the theory of classes, see
     ~ http://us.metamath.org/mpeuni/mmset.html#class .  (Contributed by NM,
     5-Aug-1993.) $)
  df-clab $a |- ( x e. { y | ph } <-> [ x / y ] ph ) $.

  $( Simplification of class abstraction notation when the free and bound
     variables are identical.  (Contributed by NM, 5-Aug-1993.) $)
  abid $p |- ( x e. { x | ph } <-> ph ) $=
    ( cv cab wcel wsb df-clab sbid bitri ) BCABDEABBFAABBGABHI $.

  ${
    $d x y $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by NM, 5-Aug-1993.) $)
    hbab1 $p |- ( y e. { x | ph } -> A. x y e. { x | ph } ) $=
      ( cv cab wcel wsb df-clab hbs1 hbxfrbi ) CDABEFABCGBACBHABCIJ $.

    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfsab1 $p |- F/ x y e. { x | ph } $=
      ( cv cab wcel hbab1 nfi ) CDABEFBABCGH $.
  $}

  ${
    $d x z $.
    hbab.1 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by NM, 1-Mar-1995.) $)
    hbab $p |- ( z e. { y | ph } -> A. x z e. { y | ph } ) $=
      ( cv cab wcel wsb df-clab hbsb hbxfrbi ) DFACGHACDIBADCJACDBEKL $.
  $}

  ${
    $d x z $.
    nfsab.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfsab $p |- F/ x z e. { y | ph } $=
      ( cv cab wcel nfri hbab nfi ) DFACGHBABCDABEIJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x y z $.
    df-cleq.1 $e |- ( A. x ( x e. y <-> x e. z ) -> y = z ) $.
    $( Define the equality connective between classes.  Definition 2.7 of
       [Quine] p. 18.  Also Definition 4.5 of [TakeutiZaring] p. 13; Chapter 4
       provides its justification and methods for eliminating it.  Note that
       its elimination will not necessarily result in a single wff in the
       original language but possibly a "scheme" of wffs.

       This is an example of a somewhat "risky" definition, meaning that it has
       a more complex than usual soundness justification (outside of Metamath),
       because it "overloads" or reuses the existing equality symbol rather
       than introducing a new symbol.  This allows us to make statements that
       may not hold for the original symbol.  For example, it permits us to
       deduce ` y = z <-> A. x ( x e. y <-> x e. z ) ` , which is not a theorem
       of logic but rather presupposes the Axiom of Extensionality (see theorem
       ~ axext4 ).  We therefore include this axiom as a hypothesis, so that
       the use of Extensionality is properly indicated.

       We could avoid this complication by introducing a new symbol, say =_2,
       in place of ` = ` .  This would also have the advantage of making
       elimination of the definition straightforward, so that we could
       eliminate Extensionality as a hypothesis.  We would then also have the
       advantage of being able to identify in various proofs exactly where
       Extensionality truly comes into play rather than just being an artifact
       of a definition.  One of our theorems would then be ` x ` =_2
       ` y <-> x = y ` by invoking Extensionality.

       However, to conform to literature usage, we retain this overloaded
       definition.  This also makes some proofs shorter and probably easier to
       read, without the constant switching between two kinds of equality.

       See also comments under ~ df-clab , ~ df-clel , and ~ abeq2 .

       In the form of ~ dfcleq , this is called the "axiom of extensionality"
       by [Levy] p. 338, who treats the theory of classes as an extralogical
       extension to our logic and set theory axioms.

       For a general discussion of the theory of classes, see
       ~ http://us.metamath.org/mpeuni/mmset.html#class .  (Contributed by NM,
       15-Sep-1993.) $)
    df-cleq $a |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $.
  $}

  ${
    $d x A $.  $d x B $.  $d x y z $.
    $( The same as ~ df-cleq with the hypothesis removed using the Axiom of
       Extensionality ~ ax-ext .  (Contributed by NM, 15-Sep-1993.) $)
    dfcleq $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( vy vz ax-ext df-cleq ) ADEBCDEAFG $.
  $}

  ${
    $d x y z $.
    $( Every set is a class.  Proposition 4.9 of [TakeutiZaring] p. 13.  This
       theorem shows that a setvar variable can be expressed as a class
       abstraction.  This provides a motivation for the class syntax
       construction ~ cv , which allows us to substitute a setvar variable for
       a class variable.  See also ~ cab and ~ df-clab .  Note that this is not
       a rigorous justification, because ~ cv is used as part of the proof of
       this theorem, but a careful argument can be made outside of the
       formalism of Metamath, for example as is done in Chapter 4 of Takeuti
       and Zaring.  See also the discussion under the definition of class in
       [Jech] p. 4 showing that "Every set can be considered to be a class."
       (Contributed by NM, 7-Nov-2006.) $)
    cvjust $p |- x = { y | y e. x } $=
      ( vz cv wcel cab wceq wb dfcleq wsb df-clab elsb3 bitr2i mpgbir ) ADZBDOE
      ZBFZGCDZOEZRQEZHCCOQITPBCJSPCBKCBALMN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define the membership connective between classes.  Theorem 6.3 of
       [Quine] p. 41, or Proposition 4.6 of [TakeutiZaring] p. 13, which we
       adopt as a definition.  See these references for its metalogical
       justification.  Note that like ~ df-cleq it extends or "overloads" the
       use of the existing membership symbol, but unlike ~ df-cleq it does not
       strengthen the set of valid wffs of logic when the class variables are
       replaced with setvar variables (see ~ cleljust ), so we don't include
       any set theory axiom as a hypothesis.  See also comments about the
       syntax under ~ df-clab .

       This is called the "axiom of membership" by [Levy] p. 338, who treats
       the theory of classes as an extralogical extension to our logic and set
       theory axioms.

       For a general discussion of the theory of classes, see
       ~ http://us.metamath.org/mpeuni/mmset.html#class .  (Contributed by NM,
       5-Aug-1993.) $)
    df-clel $a |- ( A e. B <-> E. x ( x = A /\ x e. B ) ) $.
  $}

  ${
    $d x A $.  $d x B $.
    eqriv.1 $e |- ( x e. A <-> x e. B ) $.
    $( Infer equality of classes from equivalence of membership.  (Contributed
       by NM, 5-Aug-1993.) $)
    eqriv $p |- A = B $=
      ( wceq cv wcel wb dfcleq mpgbir ) BCEAFZBGKCGHAABCIDJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    eqrdv.1 $e |- ( ph -> ( x e. A <-> x e. B ) ) $.
    $( Deduce equality of classes from equivalence of membership.  (Contributed
       by NM, 17-Mar-1996.) $)
    eqrdv $p |- ( ph -> A = B ) $=
      ( cv wcel wb wal wceq alrimiv dfcleq sylibr ) ABFZCGNDGHZBICDJAOBEKBCDLM
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    eqrdav.1 $e |- ( ( ph /\ x e. A ) -> x e. C ) $.
    eqrdav.2 $e |- ( ( ph /\ x e. B ) -> x e. C ) $.
    eqrdav.3 $e |- ( ( ph /\ x e. C ) -> ( x e. A <-> x e. B ) ) $.
    $( Deduce equality of classes from an equivalence of membership that
       depends on the membership variable.  (Contributed by NM, 7-Nov-2008.) $)
    eqrdav $p |- ( ph -> A = B ) $=
      ( cv wcel wa biimpd impancom mpd wi exbiri com23 imp impbida eqrdv ) ABCD
      ABIZCJZUADJZAUBKUAEJZUCFAUDUBUCAUDKUBUCHLMNAUCKUDUBGAUCUDUBOAUDUCUBAUDUBU
      CHPQRNST $.
  $}

  ${
    $d x A $.
    $( Law of identity (reflexivity of class equality).  Theorem 6.4 of [Quine]
       p. 41.

       This law is thought to have originated with Aristotle (_Metaphysics_,
       Zeta, 17, 1041 a, 10-20).  (Thanks to Stefan Allan and BJ for this
       information.)  (Contributed by NM, 5-Aug-1993.)  (Revised by BJ,
       14-Oct-2017.) $)
    eqid $p |- A = A $=
      ( vx cv wcel biid eqriv ) BAABCADEF $.
  $}

  $( Class identity law with antecedent.  (Contributed by NM, 21-Aug-2008.) $)
  eqidd $p |- ( ph -> A = A ) $=
    ( wceq eqid a1i ) BBCABDE $.

  ${
    $d x A $.  $d x B $.
    $( Commutative law for class equality.  Theorem 6.5 of [Quine] p. 41.
       (Contributed by NM, 5-Aug-1993.) $)
    eqcom $p |- ( A = B <-> B = A ) $=
      ( vx cv wcel wb wal wceq bicom albii dfcleq 3bitr4i ) CDZAEZMBEZFZCGONFZC
      GABHBAHPQCNOIJCABKCBAKL $.
  $}

  ${
    eqcoms.1 $e |- ( A = B -> ph ) $.
    $( Inference applying commutative law for class equality to an antecedent.
       (Contributed by NM, 5-Aug-1993.) $)
    eqcoms $p |- ( B = A -> ph ) $=
      ( wceq eqcom sylbi ) CBEBCEACBFDG $.
  $}

  ${
    eqcomi.1 $e |- A = B $.
    $( Inference from commutative law for class equality.  (Contributed by NM,
       5-Aug-1993.) $)
    eqcomi $p |- B = A $=
      ( wceq eqcom mpbi ) ABDBADCABEF $.
  $}

  ${
    eqcomd.1 $e |- ( ph -> A = B ) $.
    $( Deduction from commutative law for class equality.  (Contributed by NM,
       15-Aug-1994.) $)
    eqcomd $p |- ( ph -> B = A ) $=
      ( wceq eqcom sylib ) ABCECBEDBCFG $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality implies equivalence of equalities.  (Contributed by NM,
       5-Aug-1993.) $)
    eqeq1 $p |- ( A = B -> ( A = C <-> B = C ) ) $=
      ( vx wceq cv wcel wb wal dfcleq biimpi 19.21bi bibi1d albidv 3bitr4g ) AB
      EZDFZAGZQCGZHZDIQBGZSHZDIACEBCEPTUBDPRUASPRUAHZDPUCDIDABJKLMNDACJDBCJO $.
  $}

  ${
    eqeq1i.1 $e |- A = B $.
    $( Inference from equality to equivalence of equalities.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqeq1i $p |- ( A = C <-> B = C ) $=
      ( wceq wb eqeq1 ax-mp ) ABEACEBCEFDABCGH $.
  $}

  ${
    eqeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of equalities.  (Contributed by
       NM, 27-Dec-1993.) $)
    eqeq1d $p |- ( ph -> ( A = C <-> B = C ) ) $=
      ( wceq wb eqeq1 syl ) ABCFBDFCDFGEBCDHI $.
  $}

  $( Equality implies equivalence of equalities.  (Contributed by NM,
     5-Aug-1993.) $)
  eqeq2 $p |- ( A = B -> ( C = A <-> C = B ) ) $=
    ( wceq eqeq1 eqcom 3bitr4g ) ABDACDBCDCADCBDABCECAFCBFG $.

  ${
    eqeq2i.1 $e |- A = B $.
    $( Inference from equality to equivalence of equalities.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqeq2i $p |- ( C = A <-> C = B ) $=
      ( wceq wb eqeq2 ax-mp ) ABECAECBEFDABCGH $.
  $}

  ${
    eqeq2d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of equalities.  (Contributed by
       NM, 27-Dec-1993.) $)
    eqeq2d $p |- ( ph -> ( C = A <-> C = B ) ) $=
      ( wceq wb eqeq2 syl ) ABCFDBFDCFGEBCDHI $.
  $}

  $( Equality relationship among 4 classes.  (Contributed by NM,
     3-Aug-1994.) $)
  eqeq12 $p |- ( ( A = B /\ C = D ) -> ( A = C <-> B = D ) ) $=
    ( wceq eqeq1 eqeq2 sylan9bb ) ABEACEBCECDEBDEABCFCDBGH $.

  ${
    eqeq12i.1 $e |- A = B $.
    eqeq12i.2 $e |- C = D $.
    $( A useful inference for substituting definitions into an equality.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    eqeq12i $p |- ( A = C <-> B = D ) $=
      ( wceq wb eqeq12 mp2an ) ABGCDGACGBDGHEFABCDIJ $.

    $( Theorem eqeq12i is the congruence law for equality. $)
    $( $j congruence 'eqeq12i'; $)
  $}

  ${
    eqeq12d.1 $e |- ( ph -> A = B ) $.
    eqeq12d.2 $e |- ( ph -> C = D ) $.
    $( A useful inference for substituting definitions into an equality.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    eqeq12d $p |- ( ph -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeq12 syl2anc ) ABCHDEHBDHCEHIFGBCDEJK $.
  $}

  ${
    eqeqan12d.1 $e |- ( ph -> A = B ) $.
    eqeqan12d.2 $e |- ( ps -> C = D ) $.
    $( A useful inference for substituting definitions into an equality.
       (Contributed by NM, 9-Aug-1994.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    eqeqan12d $p |- ( ( ph /\ ps ) -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeq12 syl2an ) ACDIEFICEIDFIJBGHCDEFKL $.
  $}

  ${
    eqeqan12rd.1 $e |- ( ph -> A = B ) $.
    eqeqan12rd.2 $e |- ( ps -> C = D ) $.
    $( A useful inference for substituting definitions into an equality.
       (Contributed by NM, 9-Aug-1994.) $)
    eqeqan12rd $p |- ( ( ps /\ ph ) -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeqan12d ancoms ) ABCEIDFIJABCDEFGHKL $.
  $}

  $( Transitive law for class equality.  Proposition 4.7(3) of [TakeutiZaring]
     p. 13.  (Contributed by NM, 25-Jan-2004.) $)
  eqtr $p |- ( ( A = B /\ B = C ) -> A = C ) $=
    ( wceq eqeq1 biimpar ) ABDACDBCDABCEF $.

  $( A transitive law for class equality.  (Contributed by NM, 20-May-2005.)
     (Proof shortened by Andrew Salmon, 25-May-2011.) $)
  eqtr2 $p |- ( ( A = B /\ A = C ) -> B = C ) $=
    ( wceq eqcom eqtr sylanb ) ABDBADACDBCDABEBACFG $.

  $( A transitive law for class equality.  (Contributed by NM, 20-May-2005.) $)
  eqtr3 $p |- ( ( A = C /\ B = C ) -> A = B ) $=
    ( wceq eqcom eqtr sylan2b ) BCDACDCBDABDBCEACBFG $.

  ${
    eqtri.1 $e |- A = B $.
    eqtri.2 $e |- B = C $.
    $( An equality transitivity inference.  (Contributed by NM, 5-Aug-1993.) $)
    eqtri $p |- A = C $=
      ( wceq eqeq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    eqtr2i.1 $e |- A = B $.
    eqtr2i.2 $e |- B = C $.
    $( An equality transitivity inference.  (Contributed by NM,
       21-Feb-1995.) $)
    eqtr2i $p |- C = A $=
      ( eqtri eqcomi ) ACABCDEFG $.
  $}

  ${
    eqtr3i.1 $e |- A = B $.
    eqtr3i.2 $e |- A = C $.
    $( An equality transitivity inference.  (Contributed by NM, 6-May-1994.) $)
    eqtr3i $p |- B = C $=
      ( eqcomi eqtri ) BACABDFEG $.
  $}

  ${
    eqtr4i.1 $e |- A = B $.
    eqtr4i.2 $e |- C = B $.
    $( An equality transitivity inference.  (Contributed by NM, 5-Aug-1993.) $)
    eqtr4i $p |- A = C $=
      ( eqcomi eqtri ) ABCDCBEFG $.
  $}

  $( Register '=' as an equality for its type (class). $)
  $( $j equality 'wceq' from 'eqid' 'eqcomi' 'eqtri'; $)

  ${
    3eqtri.1 $e |- A = B $.
    3eqtri.2 $e |- B = C $.
    3eqtri.3 $e |- C = D $.
    $( An inference from three chained equalities.  (Contributed by NM,
       29-Aug-1993.) $)
    3eqtri $p |- A = D $=
      ( eqtri ) ABDEBCDFGHH $.

    $( An inference from three chained equalities.  (Contributed by NM,
       3-Aug-2006.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtrri $p |- D = A $=
      ( eqtri eqtr2i ) ACDABCEFHGI $.
  $}

  ${
    3eqtr2i.1 $e |- A = B $.
    3eqtr2i.2 $e |- C = B $.
    3eqtr2i.3 $e |- C = D $.
    $( An inference from three chained equalities.  (Contributed by NM,
       3-Aug-2006.) $)
    3eqtr2i $p |- A = D $=
      ( eqtr4i eqtri ) ACDABCEFHGI $.

    $( An inference from three chained equalities.  (Contributed by NM,
       3-Aug-2006.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr2ri $p |- D = A $=
      ( eqtr4i eqtr2i ) ACDABCEFHGI $.
  $}

  ${
    3eqtr3i.1 $e |- A = B $.
    3eqtr3i.2 $e |- A = C $.
    3eqtr3i.3 $e |- B = D $.
    $( An inference from three chained equalities.  (Contributed by NM,
       6-May-1994.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr3i $p |- C = D $=
      ( eqtr3i ) BCDABCEFHGH $.

    $( An inference from three chained equalities.  (Contributed by NM,
       15-Aug-2004.) $)
    3eqtr3ri $p |- D = C $=
      ( eqtr3i ) BDCGABCEFHH $.
  $}

  ${
    3eqtr4i.1 $e |- A = B $.
    3eqtr4i.2 $e |- C = A $.
    3eqtr4i.3 $e |- D = B $.
    $( An inference from three chained equalities.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr4i $p |- C = D $=
      ( eqtr4i ) CADFDBAGEHH $.

    $( An inference from three chained equalities.  (Contributed by NM,
       2-Sep-1995.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr4ri $p |- D = C $=
      ( eqtr4i ) DACDBAGEHFH $.
  $}

  ${
    eqtrd.1 $e |- ( ph -> A = B ) $.
    eqtrd.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 5-Aug-1993.) $)
    eqtrd $p |- ( ph -> A = C ) $=
      ( wceq eqeq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    eqtr2d.1 $e |- ( ph -> A = B ) $.
    eqtr2d.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       18-Oct-1999.) $)
    eqtr2d $p |- ( ph -> C = A ) $=
      ( eqtrd eqcomd ) ABDABCDEFGH $.
  $}

  ${
    eqtr3d.1 $e |- ( ph -> A = B ) $.
    eqtr3d.2 $e |- ( ph -> A = C ) $.
    $( An equality transitivity equality deduction.  (Contributed by NM,
       18-Jul-1995.) $)
    eqtr3d $p |- ( ph -> B = C ) $=
      ( eqcomd eqtrd ) ACBDABCEGFH $.
  $}

  ${
    eqtr4d.1 $e |- ( ph -> A = B ) $.
    eqtr4d.2 $e |- ( ph -> C = B ) $.
    $( An equality transitivity equality deduction.  (Contributed by NM,
       18-Jul-1995.) $)
    eqtr4d $p |- ( ph -> A = C ) $=
      ( eqcomd eqtrd ) ABCDEADCFGH $.
  $}

  ${
    3eqtrd.1 $e |- ( ph -> A = B ) $.
    3eqtrd.2 $e |- ( ph -> B = C ) $.
    3eqtrd.3 $e |- ( ph -> C = D ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       29-Oct-1995.) $)
    3eqtrd $p |- ( ph -> A = D ) $=
      ( eqtrd ) ABCEFACDEGHII $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-2006.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtrrd $p |- ( ph -> D = A ) $=
      ( eqtrd eqtr2d ) ABDEABCDFGIHJ $.
  $}

  ${
    3eqtr2d.1 $e |- ( ph -> A = B ) $.
    3eqtr2d.2 $e |- ( ph -> C = B ) $.
    3eqtr2d.3 $e |- ( ph -> C = D ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-2006.) $)
    3eqtr2d $p |- ( ph -> A = D ) $=
      ( eqtr4d eqtrd ) ABDEABCDFGIHJ $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-2006.) $)
    3eqtr2rd $p |- ( ph -> D = A ) $=
      ( eqtr4d eqtr2d ) ABDEABCDFGIHJ $.
  $}

  ${
    3eqtr3d.1 $e |- ( ph -> A = B ) $.
    3eqtr3d.2 $e |- ( ph -> A = C ) $.
    3eqtr3d.3 $e |- ( ph -> B = D ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-1995.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr3d $p |- ( ph -> C = D ) $=
      ( eqtr3d ) ACDEABCDFGIHI $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       14-Jan-2006.) $)
    3eqtr3rd $p |- ( ph -> D = C ) $=
      ( eqtr3d ) ACEDHABCDFGII $.
  $}

  ${
    3eqtr4d.1 $e |- ( ph -> A = B ) $.
    3eqtr4d.2 $e |- ( ph -> C = A ) $.
    3eqtr4d.3 $e |- ( ph -> D = B ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-1995.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr4d $p |- ( ph -> C = D ) $=
      ( eqtr4d ) ADBEGAECBHFII $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       21-Sep-1995.) $)
    3eqtr4rd $p |- ( ph -> D = C ) $=
      ( eqtr4d ) AEBDAECBHFIGI $.
  $}

  ${
    syl5eq.1 $e |- A = B $.
    syl5eq.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 5-Aug-1993.) $)
    syl5eq $p |- ( ph -> A = C ) $=
      ( wceq a1i eqtrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl5req.1 $e |- A = B $.
    syl5req.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl5req $p |- ( ph -> C = A ) $=
      ( syl5eq eqcomd ) ABDABCDEFGH $.
  $}

  ${
    syl5eqr.1 $e |- B = A $.
    syl5eqr.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 5-Aug-1993.) $)
    syl5eqr $p |- ( ph -> A = C ) $=
      ( eqcomi syl5eq ) ABCDCBEGFH $.
  $}

  ${
    syl5reqr.1 $e |- B = A $.
    syl5reqr.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl5reqr $p |- ( ph -> C = A ) $=
      ( eqcomi syl5req ) ABCDCBEGFH $.
  $}

  ${
    syl6eq.1 $e |- ( ph -> A = B ) $.
    syl6eq.2 $e |- B = C $.
    $( An equality transitivity deduction.  (Contributed by NM, 5-Aug-1993.) $)
    syl6eq $p |- ( ph -> A = C ) $=
      ( wceq a1i eqtrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6req.1 $e |- ( ph -> A = B ) $.
    syl6req.2 $e |- B = C $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl6req $p |- ( ph -> C = A ) $=
      ( syl6eq eqcomd ) ABDABCDEFGH $.
  $}

  ${
    syl6eqr.1 $e |- ( ph -> A = B ) $.
    syl6eqr.2 $e |- C = B $.
    $( An equality transitivity deduction.  (Contributed by NM, 5-Aug-1993.) $)
    syl6eqr $p |- ( ph -> A = C ) $=
      ( eqcomi syl6eq ) ABCDEDCFGH $.
  $}

  ${
    syl6reqr.1 $e |- ( ph -> A = B ) $.
    syl6reqr.2 $e |- C = B $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl6reqr $p |- ( ph -> C = A ) $=
      ( eqcomi syl6req ) ABCDEDCFGH $.
  $}

  ${
    sylan9eq.1 $e |- ( ph -> A = B ) $.
    sylan9eq.2 $e |- ( ps -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 8-May-1994.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    sylan9eq $p |- ( ( ph /\ ps ) -> A = C ) $=
      ( wceq eqtr syl2an ) ACDHDEHCEHBFGCDEIJ $.
  $}

  ${
    sylan9req.1 $e |- ( ph -> B = A ) $.
    sylan9req.2 $e |- ( ps -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       23-Jun-2007.) $)
    sylan9req $p |- ( ( ph /\ ps ) -> A = C ) $=
      ( eqcomd sylan9eq ) ABCDEADCFHGI $.
  $}

  ${
    sylan9eqr.1 $e |- ( ph -> A = B ) $.
    sylan9eqr.2 $e |- ( ps -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 8-May-1994.) $)
    sylan9eqr $p |- ( ( ps /\ ph ) -> A = C ) $=
      ( wceq sylan9eq ancoms ) ABCEHABCDEFGIJ $.
  $}

  ${
    3eqtr3g.1 $e |- ( ph -> A = B ) $.
    3eqtr3g.2 $e |- A = C $.
    3eqtr3g.3 $e |- B = D $.
    $( A chained equality inference, useful for converting from definitions.
       (Contributed by NM, 15-Nov-1994.) $)
    3eqtr3g $p |- ( ph -> C = D ) $=
      ( syl5eqr syl6eq ) ADCEADBCGFIHJ $.
  $}

  ${
    3eqtr3a.1 $e |- A = B $.
    3eqtr3a.2 $e |- ( ph -> A = C ) $.
    3eqtr3a.3 $e |- ( ph -> B = D ) $.
    $( A chained equality inference, useful for converting from definitions.
       (Contributed by Mario Carneiro, 6-Nov-2015.) $)
    3eqtr3a $p |- ( ph -> C = D ) $=
      ( syl5eq eqtr3d ) ABDEGABCEFHIJ $.
  $}

  ${
    3eqtr4g.1 $e |- ( ph -> A = B ) $.
    3eqtr4g.2 $e |- C = A $.
    3eqtr4g.3 $e |- D = B $.
    $( A chained equality inference, useful for converting to definitions.
       (Contributed by NM, 5-Aug-1993.) $)
    3eqtr4g $p |- ( ph -> C = D ) $=
      ( syl5eq syl6eqr ) ADCEADBCGFIHJ $.
  $}

  ${
    3eqtr4a.1 $e |- A = B $.
    3eqtr4a.2 $e |- ( ph -> C = A ) $.
    3eqtr4a.3 $e |- ( ph -> D = B ) $.
    $( A chained equality inference, useful for converting to definitions.
       (Contributed by NM, 2-Feb-2007.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    3eqtr4a $p |- ( ph -> C = D ) $=
      ( syl6eq eqtr4d ) ADCEADBCGFIHJ $.
  $}

  ${
    eq2tr.1 $e |- ( A = C -> D = F ) $.
    eq2tr.2 $e |- ( B = D -> C = G ) $.
    $( A compound transitive inference for class equality.  (Contributed by NM,
       22-Jan-2004.) $)
    eq2tri $p |- ( ( A = C /\ B = F ) <-> ( B = D /\ A = G ) ) $=
      ( wceq wa ancom eqeq2d pm5.32i 3bitr3i ) ACIZBDIZJPOJOBEIZJPAFIZJOPKOPQOD
      EBGLMPORPCFAHLMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality implies equivalence of membership.  (Contributed by NM,
       5-Aug-1993.) $)
    eleq1 $p |- ( A = B -> ( A e. C <-> B e. C ) ) $=
      ( vx wceq cv wcel wa wex eqeq2 anbi1d exbidv df-clel 3bitr4g ) ABEZDFZAEZ
      PCGZHZDIPBEZRHZDIACGBCGOSUADOQTRABPJKLDACMDBCMN $.

    $( Equality implies equivalence of membership.  (Contributed by NM,
       5-Aug-1993.) $)
    eleq2 $p |- ( A = B -> ( C e. A <-> C e. B ) ) $=
      ( vx wceq cv wcel wa wex wal dfcleq biimpi 19.21bi anbi2d df-clel 3bitr4g
      wb exbidv ) ABEZDFZCEZTAGZHZDIUATBGZHZDICAGCBGSUCUEDSUBUDUASUBUDQZDSUFDJD
      ABKLMNRDCAODCBOP $.
  $}

  $( Equality implies equivalence of membership.  (Contributed by NM,
     31-May-1999.) $)
  eleq12 $p |- ( ( A = B /\ C = D ) -> ( A e. C <-> B e. D ) ) $=
    ( wceq wcel eleq1 eleq2 sylan9bb ) ABEACFBCFCDEBDFABCGCDBHI $.

  ${
    eleq1i.1 $e |- A = B $.
    $( Inference from equality to equivalence of membership.  (Contributed by
       NM, 5-Aug-1993.) $)
    eleq1i $p |- ( A e. C <-> B e. C ) $=
      ( wceq wcel wb eleq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( Inference from equality to equivalence of membership.  (Contributed by
       NM, 5-Aug-1993.) $)
    eleq2i $p |- ( C e. A <-> C e. B ) $=
      ( wceq wcel wb eleq2 ax-mp ) ABECAFCBFGDABCHI $.

    ${
      eleq12i.2 $e |- C = D $.
      $( Inference from equality to equivalence of membership.  (Contributed by
         NM, 31-May-1994.) $)
      eleq12i $p |- ( A e. C <-> B e. D ) $=
        ( wcel eleq2i eleq1i bitri ) ACGADGBDGCDAFHABDEIJ $.

      $( Theorem eleq12i is the congruence law for elementhood. $)
      $( $j congruence 'eleq12i'; $)
    $}
  $}

  ${
    eleq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of membership.  (Contributed by
       NM, 5-Aug-1993.) $)
    eleq1d $p |- ( ph -> ( A e. C <-> B e. C ) ) $=
      ( wceq wcel wb eleq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( Deduction from equality to equivalence of membership.  (Contributed by
       NM, 27-Dec-1993.) $)
    eleq2d $p |- ( ph -> ( C e. A <-> C e. B ) ) $=
      ( wceq wcel wb eleq2 syl ) ABCFDBGDCGHEBCDIJ $.

    ${
      eleq12d.2 $e |- ( ph -> C = D ) $.
      $( Deduction from equality to equivalence of membership.  (Contributed by
         NM, 31-May-1994.) $)
      eleq12d $p |- ( ph -> ( A e. C <-> B e. D ) ) $=
        ( wcel eleq2d eleq1d bitrd ) ABDHBEHCEHADEBGIABCEFJK $.
    $}
  $}

  $( A transitive-type law relating membership and equality.  (Contributed by
     NM, 9-Apr-1994.) $)
  eleq1a $p |- ( A e. B -> ( C = A -> C e. B ) ) $=
    ( wceq wcel eleq1 biimprcd ) CADCBEABECABFG $.

  ${
    eqeltr.1 $e |- A = B $.
    eqeltr.2 $e |- B e. C $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqeltri $p |- A e. C $=
      ( wcel eleq1i mpbir ) ACFBCFEABCDGH $.
  $}

  ${
    eqeltrr.1 $e |- A = B $.
    eqeltrr.2 $e |- A e. C $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqeltrri $p |- B e. C $=
      ( eqcomi eqeltri ) BACABDFEG $.
  $}

  ${
    eleqtr.1 $e |- A e. B $.
    eleqtr.2 $e |- B = C $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    eleqtri $p |- A e. C $=
      ( wcel eleq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    eleqtrr.1 $e |- A e. B $.
    eleqtrr.2 $e |- C = B $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    eleqtrri $p |- A e. C $=
      ( eqcomi eleqtri ) ABCDCBEFG $.
  $}

  ${
    eqeltrd.1 $e |- ( ph -> A = B ) $.
    eqeltrd.2 $e |- ( ph -> B e. C ) $.
    $( Substitution of equal classes into membership relation, deduction form.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    eqeltrd $p |- ( ph -> A e. C ) $=
      ( wcel eleq1d mpbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqeltrrd.1 $e |- ( ph -> A = B ) $.
    eqeltrrd.2 $e |- ( ph -> A e. C ) $.
    $( Deduction that substitutes equal classes into membership.  (Contributed
       by NM, 14-Dec-2004.) $)
    eqeltrrd $p |- ( ph -> B e. C ) $=
      ( eqcomd eqeltrd ) ACBDABCEGFH $.
  $}

  ${
    eleqtrd.1 $e |- ( ph -> A e. B ) $.
    eleqtrd.2 $e |- ( ph -> B = C ) $.
    $( Deduction that substitutes equal classes into membership.  (Contributed
       by NM, 14-Dec-2004.) $)
    eleqtrd $p |- ( ph -> A e. C ) $=
      ( wcel eleq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    eleqtrrd.1 $e |- ( ph -> A e. B ) $.
    eleqtrrd.2 $e |- ( ph -> C = B ) $.
    $( Deduction that substitutes equal classes into membership.  (Contributed
       by NM, 14-Dec-2004.) $)
    eleqtrrd $p |- ( ph -> A e. C ) $=
      ( eqcomd eleqtrd ) ABCDEADCFGH $.
  $}

  ${
    3eltr3.1 $e |- A e. B $.
    3eltr3.2 $e |- A = C $.
    3eltr3.3 $e |- B = D $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr3i $p |- C e. D $=
      ( eleqtri eqeltrri ) ACDFABDEGHI $.
  $}

  ${
    3eltr4.1 $e |- A e. B $.
    3eltr4.2 $e |- C = A $.
    3eltr4.3 $e |- D = B $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr4i $p |- C e. D $=
      ( eleqtrri eqeltri ) CADFABDEGHI $.
  $}

  ${
    3eltr3d.1 $e |- ( ph -> A e. B ) $.
    3eltr3d.2 $e |- ( ph -> A = C ) $.
    3eltr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr3d $p |- ( ph -> C e. D ) $=
      ( eleqtrd eqeltrrd ) ABDEGABCEFHIJ $.
  $}

  ${
    3eltr4d.1 $e |- ( ph -> A e. B ) $.
    3eltr4d.2 $e |- ( ph -> C = A ) $.
    3eltr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr4d $p |- ( ph -> C e. D ) $=
      ( eleqtrrd eqeltrd ) ADBEGABCEFHIJ $.
  $}

  ${
    3eltr3g.1 $e |- ( ph -> A e. B ) $.
    3eltr3g.2 $e |- A = C $.
    3eltr3g.3 $e |- B = D $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr3g $p |- ( ph -> C e. D ) $=
      ( wcel eleq12i sylib ) ABCIDEIFBDCEGHJK $.
  $}

  ${
    3eltr4g.1 $e |- ( ph -> A e. B ) $.
    3eltr4g.2 $e |- C = A $.
    3eltr4g.3 $e |- D = B $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr4g $p |- ( ph -> C e. D ) $=
      ( wcel eleq12i sylibr ) ABCIDEIFDBECGHJK $.
  $}

  ${
    syl5eqel.1 $e |- A = B $.
    syl5eqel.2 $e |- ( ph -> B e. C ) $.
    $( B membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eqel $p |- ( ph -> A e. C ) $=
      ( wceq a1i eqeltrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl5eqelr.1 $e |- B = A $.
    syl5eqelr.2 $e |- ( ph -> B e. C ) $.
    $( B membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eqelr $p |- ( ph -> A e. C ) $=
      ( eqcomi syl5eqel ) ABCDCBEGFH $.
  $}

  ${
    syl5eleq.1 $e |- A e. B $.
    syl5eleq.2 $e |- ( ph -> B = C ) $.
    $( B membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eleq $p |- ( ph -> A e. C ) $=
      ( wcel a1i eleqtrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl5eleqr.1 $e |- A e. B $.
    syl5eleqr.2 $e |- ( ph -> C = B ) $.
    $( B membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eleqr $p |- ( ph -> A e. C ) $=
      ( eqcomd syl5eleq ) ABCDEADCFGH $.
  $}

  ${
    syl6eqel.1 $e |- ( ph -> A = B ) $.
    syl6eqel.2 $e |- B e. C $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eqel $p |- ( ph -> A e. C ) $=
      ( wcel a1i eqeltrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6eqelr.1 $e |- ( ph -> B = A ) $.
    syl6eqelr.2 $e |- B e. C $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eqelr $p |- ( ph -> A e. C ) $=
      ( eqcomd syl6eqel ) ABCDACBEGFH $.
  $}

  ${
    syl6eleq.1 $e |- ( ph -> A e. B ) $.
    syl6eleq.2 $e |- B = C $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eleq $p |- ( ph -> A e. C ) $=
      ( wceq a1i eleqtrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6eleqr.1 $e |- ( ph -> A e. B ) $.
    syl6eleqr.2 $e |- C = B $.
    $( A membership and equality inference.  (Contributed by NM,
       24-Apr-2005.) $)
    syl6eleqr $p |- ( ph -> A e. C ) $=
      ( eqcomi syl6eleq ) ABCDEDCFGH $.
  $}

  ${
    eleq2s.1 $e |- ( A e. B -> ph ) $.
    eleq2s.2 $e |- C = B $.
    $( Substitution of equal classes into a membership antecedent.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    eleq2s $p |- ( A e. C -> ph ) $=
      ( wcel eleq2i sylbi ) BDGBCGADCBFHEI $.
  $}

  ${
    eqneltrd.1 $e |- ( ph -> A = B ) $.
    eqneltrd.2 $e |- ( ph -> -. B e. C ) $.
    $( If a class is not an element of another class, an equal class is also
       not an element.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    eqneltrd $p |- ( ph -> -. A e. C ) $=
      ( wcel eleq1d mtbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqneltrrd.1 $e |- ( ph -> A = B ) $.
    eqneltrrd.2 $e |- ( ph -> -. A e. C ) $.
    $( If a class is not an element of another class, an equal class is also
       not an element.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    eqneltrrd $p |- ( ph -> -. B e. C ) $=
      ( wcel eleq1d mtbid ) ABDGCDGFABCDEHI $.
  $}

  ${
    neleqtrd.1 $e |- ( ph -> -. C e. A ) $.
    neleqtrd.2 $e |- ( ph -> A = B ) $.
    $( If a class is not an element of another class, it is also not an element
       of an equal class.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    neleqtrd $p |- ( ph -> -. C e. B ) $=
      ( wcel eleq2d mtbid ) ADBGDCGEABCDFHI $.
  $}

  ${
    neleqtrrd.1 $e |- ( ph -> -. C e. B ) $.
    neleqtrrd.2 $e |- ( ph -> A = B ) $.
    $( If a class is not an element of another class, it is also not an element
       of an equal class.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    neleqtrrd $p |- ( ph -> -. C e. A ) $=
      ( wcel eleq2d mtbird ) ADBGDCGEABCDFHI $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    cleqh.1 $e |- ( y e. A -> A. x y e. A ) $.
    cleqh.2 $e |- ( y e. B -> A. x y e. B ) $.
    $( Establish equality between classes, using bound-variable hypotheses
       instead of distinct variable conditions.  See also ~ cleqf .
       (Contributed by NM, 5-Aug-1993.) $)
    cleqh $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( wceq cv wcel wb wal dfcleq ax-17 wi wa dfbi2 hbim weq eleq1 cbv3h hban
      hbxfrbi bibi12d biimpd equcoms biimprd impbii bitr4i ) CDGBHZCIZUIDIZJZBK
      ZAHZCIZUNDIZJZAKZBCDLURUMUQULABUQBMZULUJUKNZUKUJNZOAUJUKPUTVAAUJUKAEFQUKU
      JAFEQUAUBZABRZUQULVCUOUJUPUKUNUICSUNUIDSUCZUDTULUQBAVBUSBARUQULUQULJABVDU
      EUFTUGUH $.
  $}

  $( A way of showing two classes are not equal.  (Contributed by NM,
     1-Apr-1997.) $)
  nelneq $p |- ( ( A e. C /\ -. B e. C ) -> -. A = B ) $=
    ( wcel wceq eleq1 biimpcd con3and ) ACDZABEZBCDZJIKABCFGH $.

  $( A way of showing two classes are not equal.  (Contributed by NM,
     12-Jan-2002.) $)
  nelneq2 $p |- ( ( A e. B /\ -. A e. C ) -> -. B = C ) $=
    ( wcel wceq eleq2 biimpcd con3and ) ABDZBCEZACDZJIKBCAFGH $.

  ${
    $d x y $.  $d y A $.
    $( Lemma for ~ eqsb3 .  (Contributed by Rodolfo Medina, 28-Apr-2010.)
       (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
    eqsb3lem $p |- ( [ x / y ] y = A <-> x = A ) $=
      ( cv wceq nfv eqeq1 sbie ) BDZCEADZCEZBAKBFIJCGH $.
  $}

  ${
    $d y A $.  $d w y $.  $d w A $.  $d x w $.
    $( Substitution applied to an atomic wff (class version of ~ equsb3 ).
       (Contributed by Rodolfo Medina, 28-Apr-2010.) $)
    eqsb3 $p |- ( [ x / y ] y = A <-> x = A ) $=
      ( vw cv wceq wsb eqsb3lem sbbii nfv sbco2 3bitr3i ) BECFZBDGZDAGDECFZDAGM
      BAGAECFNODADBCHIMBADMDJKADCHL $.
  $}

  ${
    $d y A $.  $d w y $.  $d w A $.  $d w x $.
    $( Substitution applied to an atomic wff (class version of ~ elsb3 ).
       (Contributed by Rodolfo Medina, 28-Apr-2010.)  (Proof shortened by
       Andrew Salmon, 14-Jun-2011.) $)
    clelsb3 $p |- ( [ x / y ] y e. A <-> x e. A ) $=
      ( vw cv wcel wsb nfv sbco2 eleq1 sbie sbbii 3bitr3i ) DEZCFZDBGZBAGODAGBE
      ZCFZBAGAEZCFZODABOBHIPRBAORDBRDHNQCJKLOTDATDHNSCJKM $.
  $}

  ${
    $d y A $.  $d w y $.  $d w A $.  $d w x $.
    $( Substitution applied to an atomic wff (class version of ~ elsb4 ).
       (Contributed by Jim Kingdon, 22-Nov-2018.) $)
    clelsb4 $p |- ( [ x / y ] A e. y <-> A e. x ) $=
      ( vw cv wcel wsb nfv sbco2 eleq2 sbie sbbii 3bitr3i ) CDEZFZDBGZBAGODAGCB
      EZFZBAGCAEZFZODABOBHIPRBAORDBRDHNQCJKLOTDATDHNSCJKM $.
  $}

  ${
    hbxfr.1 $e |- A = B $.
    hbxfr.2 $e |- ( y e. B -> A. x y e. B ) $.
    $( A utility lemma to transfer a bound-variable hypothesis builder into a
       definition.  See ~ hbxfrbi for equivalence version.  (Contributed by NM,
       21-Aug-2007.) $)
    hbxfreq $p |- ( y e. A -> A. x y e. A ) $=
      ( cv wcel eleq2i hbxfrbi ) BGZCHKDHACDKEIFJ $.
  $}

  ${
    $d w y A $.  $d w x z $.
    hblem.1 $e |- ( y e. A -> A. x y e. A ) $.
    $( Change the free variable of a hypothesis builder.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Andrew Salmon, 11-Jul-2011.) $)
    hblem $p |- ( z e. A -> A. x z e. A ) $=
      ( cv wcel wsb wal hbsb clelsb3 albii 3imtr3i ) BFDGZBCHZOAICFDGZPAINBCAEJ
      CBDKZOPAQLM $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Equality of a class variable and a class abstraction (also called a
       class builder).  Theorem 5.1 of [Quine] p. 34.  This theorem shows the
       relationship between expressions with class abstractions and expressions
       with class variables.  Note that ~ abbi and its relatives are among
       those useful for converting theorems with class variables to equivalent
       theorems with wff variables, by first substituting a class abstraction
       for each class variable.

       Class variables can always be eliminated from a theorem to result in an
       equivalent theorem with wff variables, and vice-versa.  The idea is
       roughly as follows.  To convert a theorem with a wff variable ` ph `
       (that has a free variable ` x ` ) to a theorem with a class variable
       ` A ` , we substitute ` x e. A ` for ` ph ` throughout and simplify,
       where ` A ` is a new class variable not already in the wff.  Conversely,
       to convert a theorem with a class variable ` A ` to one with ` ph ` , we
       substitute ` { x | ph } ` for ` A ` throughout and simplify, where ` x `
       and ` ph ` are new set and wff variables not already in the wff.  For
       more information on class variables, see Quine pp. 15-21 and/or Takeuti
       and Zaring pp. 10-13.  (Contributed by NM, 5-Aug-1993.) $)
    abeq2 $p |- ( A = { x | ph } <-> A. x ( x e. A <-> ph ) ) $=
      ( vy cab wceq cv wcel wb wal ax-17 hbab1 cleqh abid bibi2i albii bitri )
      CABEZFBGZCHZSRHZIZBJTAIZBJBDCRDGCHBKABDLMUBUCBUAATABNOPQ $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Equality of a class variable and a class abstraction.  (Contributed by
       NM, 20-Aug-1993.) $)
    abeq1 $p |- ( { x | ph } = A <-> A. x ( ph <-> x e. A ) ) $=
      ( cab wceq cv wcel wb wal abeq2 eqcom bicom albii 3bitr4i ) CABDZEBFCGZAH
      ZBIOCEAPHZBIABCJOCKRQBAPLMN $.
  $}

  ${
    abeqi.1 $e |- A = { x | ph } $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 3-Apr-1996.) $)
    abeq2i $p |- ( x e. A <-> ph ) $=
      ( cv wcel cab eleq2i abid bitri ) BEZCFKABGZFACLKDHABIJ $.
  $}

  ${
    abeqri.1 $e |- { x | ph } = A $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 31-Jul-1994.) $)
    abeq1i $p |- ( ph <-> x e. A ) $=
      ( cv cab wcel abid eleq2i bitr3i ) ABEZABFZGKCGABHLCKDIJ $.
  $}

  ${
    abeqd.1 $e |- ( ph -> A = { x | ps } ) $.
    $( Equality of a class variable and a class abstraction (deduction).
       (Contributed by NM, 16-Nov-1995.) $)
    abeq2d $p |- ( ph -> ( x e. A <-> ps ) ) $=
      ( cv wcel cab eleq2d abid syl6bb ) ACFZDGLBCHZGBADMLEIBCJK $.
  $}

  ${
    $d ph y $.  $d ps y $.  $d x y $.
    $( Equivalent wff's correspond to equal class abstractions.  (Contributed
       by NM, 25-Nov-2013.)  (Revised by Mario Carneiro, 11-Aug-2016.) $)
    abbi $p |- ( A. x ( ph <-> ps ) <-> { x | ph } = { x | ps } ) $=
      ( vy cab wceq wcel wal dfcleq nfsab1 nfbi nfv wsb df-clab sbequ12r syl5bb
      cv wb bibi12d cbval bitr2i ) ACEZBCEZFDQZUBGZUDUCGZRZDHABRZCHDUBUCIUGUHDC
      UEUFCACDJBCDJKUHDLUDCQFZUEAUFBUEACDMUIAADCNADCOPUFBCDMUIBBDCNBDCOPSTUA $.
  $}

  ${
    $d x A $.
    abbiri.1 $e |- ( x e. A <-> ph ) $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 5-Aug-1993.) $)
    abbi2i $p |- A = { x | ph } $=
      ( cab wceq cv wcel wb abeq2 mpgbir ) CABEFBGCHAIBABCJDK $.
  $}

  ${
    abbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's yield equal class abstractions (inference rule).
       (Contributed by NM, 5-Aug-1993.) $)
    abbii $p |- { x | ph } = { x | ps } $=
      ( wb cab wceq abbi mpgbi ) ABEACFBCFGCABCHDI $.

    $( Theorem abbii is the congruence law for class abstraction. $)
    $( $j congruence 'abbii'; $)
  $}

  ${
    $d x y $.  $d ph y $.  $d ps y $.  $d ch y $.  $( ` y ` is a dummy var. $)
    abbid.1 $e |- F/ x ph $.
    abbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal class abstractions (deduction rule).
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    abbid $p |- ( ph -> { x | ps } = { x | ch } ) $=
      ( wb wal cab wceq alrimi abbi sylib ) ABCGZDHBDICDIJANDEFKBCDLM $.
  $}

  ${
    $d x ph $.
    abbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal class abstractions (deduction rule).
       (Contributed by NM, 10-Aug-1993.) $)
    abbidv $p |- ( ph -> { x | ps } = { x | ch } ) $=
      ( nfv abbid ) ABCDADFEG $.
  $}

  ${
    $d x y A $.  $d ph x y $.  $d ps y $.  $( ` y ` is a dummy var. $)
    abbirdv.1 $e |- ( ph -> ( x e. A <-> ps ) ) $.
    $( Deduction from a wff to a class abstraction.  (Contributed by NM,
       9-Jul-1994.) $)
    abbi2dv $p |- ( ph -> A = { x | ps } ) $=
      ( cv wcel wb wal cab wceq alrimiv abeq2 sylibr ) ACFDGBHZCIDBCJKAOCELBCDM
      N $.
  $}

  ${
    $d x y A $.  $d ph x y $.  $d ps y $.  $( ` y ` is a dummy var. $)
    abbildv.1 $e |- ( ph -> ( ps <-> x e. A ) ) $.
    $( Deduction from a wff to a class abstraction.  (Contributed by NM,
       9-Jul-1994.) $)
    abbi1dv $p |- ( ph -> { x | ps } = A ) $=
      ( cv wcel wb wal cab wceq alrimiv abeq1 sylibr ) ABCFDGHZCIBCJDKAOCELBCDM
      N $.
  $}

  ${
    $d x A $.
    $( A simplification of class abstraction.  Theorem 5.2 of [Quine] p. 35.
       (Contributed by NM, 26-Dec-1993.) $)
    abid2 $p |- { x | x e. A } = A $=
      ( cv wcel cab biid abbi2i eqcomi ) BACBDZAEIABIFGH $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.
    sb8ab.1 $e |- F/ y ph $.
    $( Substitution of variable in class abstraction.  (Contributed by Jim
       Kingdon, 27-Sep-2018.) $)
    sb8ab $p |- { x | ph } = { y | [ y / x ] ph } $=
      ( vz cab wsb cv wcel sbco2 df-clab 3bitr4ri eqriv ) EABFZABCGZCFZOCEGABEG
      EHZPIQNIABECDJOECKAEBKLM $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.  $d ps z $.
    cbvab.1 $e |- F/ y ph $.
    cbvab.2 $e |- F/ x ps $.
    cbvab.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by Andrew Salmon, 11-Jul-2011.) $)
    cbvab $p |- { x | ph } = { y | ps } $=
      ( vz cab wsb cv wcel nfsb weq wb equcoms bicomd sbie sbequ df-clab eqriv
      syl5bbr 3bitr4i ) HACIZBDIZACHJBDHJZHKZUDLUGUELAUFCHBDHCFMABDCJCHNUFBADCE
      DCNABABOCDGPQRBCHDSUBRAHCTBHDTUCUA $.
  $}

  ${
    $d y ph $.  $d x ps $.
    cbvabv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 26-May-1999.) $)
    cbvabv $p |- { x | ph } = { y | ps } $=
      ( nfv cbvab ) ABCDADFBCFEG $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Membership of a class variable in a class abstraction.  (Contributed by
       NM, 23-Dec-1993.) $)
    clelab $p |- ( A e. { x | ph } <-> E. x ( x = A /\ ph ) ) $=
      ( vy cv wceq cab wcel wex wsb df-clab anbi2i exbii df-clel nfv nfs1v nfan
      wa eqeq1 sbequ12 anbi12d cbvex 3bitr4i ) DEZCFZUDABGZHZRZDIUEABDJZRZDICUF
      HBEZCFZARZBIUHUJDUGUIUEADBKLMDCUFNUMUJBDUMDOUEUIBUEBOABDPQUKUDFULUEAUIUKU
      DCSABDTUAUBUC $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( Membership of a class abstraction in another class.  (Contributed by NM,
       17-Jan-2006.) $)
    clabel $p |- ( { x | ph } e. A <->
                 E. y ( y e. A /\ A. x ( x e. y <-> ph ) ) ) $=
      ( cab wcel cv wceq wa wex wb wal df-clel abeq2 anbi2ci exbii bitri ) ABEZ
      DFCGZRHZSDFZIZCJUABGSFAKBLZIZCJCRDMUBUDCTUCUAABSNOPQ $.
  $}

  ${
    $d z A $.  $d z x $.  $d z y $.
    $( The right-hand side of the second equality is a way of representing
       proper substitution of ` y ` for ` x ` into a class variable.
       (Contributed by NM, 14-Sep-2003.) $)
    sbab $p |- ( x = y -> A = { z | [ y / x ] z e. A } ) $=
      ( weq cv wcel wsb sbequ12 abbi2dv ) ABECFDGZABHCDKABIJ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Class form not-free predicate
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c F/_ $.  $( Underlined not-free symbol. $)

  $( Extend wff definition to include the not-free predicate for classes. $)
  wnfc $a wff F/_ x A $.

  ${
    $d x y z $.  $d y z A $.
    $( Justification theorem for ~ df-nfc .  (Contributed by Mario Carneiro,
       13-Oct-2016.) $)
    nfcjust $p |- ( A. y F/ x y e. A <-> A. z F/ x z e. A ) $=
      ( cv wcel wnf weq nfv eleq1 nfbidf cbvalv ) BEZDFZAGCEZDFZAGBCBCHZNPAQAIM
      ODJKL $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Define the not-free predicate for classes.  This is read " ` x ` is not
       free in ` A ` ".  Not-free means that the value of ` x ` cannot affect
       the value of ` A ` , e.g., any occurrence of ` x ` in ` A ` is
       effectively bound by a quantifier or something that expands to one (such
       as "there exists at most one").  It is defined in terms of the not-free
       predicate ~ df-nf for wffs; see that definition for more information.
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    df-nfc $a |- ( F/_ x A <-> A. y F/ x y e. A ) $.

    ${
      nfci.1 $e |- F/ x y e. A $.
      $( Deduce that a class ` A ` does not have ` x ` free in it.
         (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfci $p |- F/_ x A $=
        ( wnfc cv wcel wnf df-nfc mpgbir ) ACEBFCGAHBABCIDJ $.
    $}

    ${
      nfcii.1 $e |- ( y e. A -> A. x y e. A ) $.
      $( Deduce that a class ` A ` does not have ` x ` free in it.
         (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfcii $p |- F/_ x A $=
        ( cv wcel nfi nfci ) ABCBECFADGH $.
    $}

    $( Consequence of the not-free predicate.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfcr $p |- ( F/_ x A -> F/ x y e. A ) $=
      ( wnfc cv wcel wnf wal df-nfc sp sylbi ) ACDBECFAGZBHLABCILBJK $.
  $}

  ${
    $d x y z $.  $d z A $.
    nfcri.1 $e |- F/_ x A $.
    $( Consequence of the not-free predicate.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfcrii $p |- ( y e. A -> A. x y e. A ) $=
      ( vz cv wcel wnfc wnf nfcr ax-mp nfri hblem ) AEBCEFCGZAACHNAIDAECJKLM $.

    $( Consequence of the not-free predicate.  (Note that unlike ~ nfcr , this
       does not require ` y ` and ` A ` to be disjoint.)  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfcri $p |- F/ x y e. A $=
      ( cv wcel nfcrii nfi ) BECFAABCDGH $.
  $}

  ${
    $d x y $.  $d y A $.
    nfcd.1 $e |- F/ y ph $.
    nfcd.2 $e |- ( ph -> F/ x y e. A ) $.
    $( Deduce that a class ` A ` does not have ` x ` free in it.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfcd $p |- ( ph -> F/_ x A ) $=
      ( cv wcel wnf wal wnfc alrimi df-nfc sylibr ) ACGDHBIZCJBDKAOCEFLBCDMN $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfceqi.1 $e |- A = B $.
    $( Equality theorem for class not-free.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfceqi $p |- ( F/_ x A <-> F/_ x B ) $=
      ( vy cv wcel wnf wal wnfc eleq2i nfbii albii df-nfc 3bitr4i ) EFZBGZAHZEI
      PCGZAHZEIABJACJRTEQSABCPDKLMAEBNAECNO $.

    ${
      nfcxfr.2 $e |- F/_ x B $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfcxfr $p |- F/_ x A $=
        ( wnfc nfceqi mpbir ) ABFACFEABCDGH $.
    $}

    ${
      nfcxfrd.2 $e |- ( ph -> F/_ x B ) $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfcxfrd $p |- ( ph -> F/_ x A ) $=
        ( wnfc nfceqi sylibr ) ABDGBCGFBCDEHI $.
    $}
  $}

  ${
    $d x y $.  $d A y $.  $d B y $.  $d ph y $.
    nfceqdf.1 $e |- F/ x ph $.
    nfceqdf.2 $e |- ( ph -> A = B ) $.
    $( An equality theorem for effectively not free.  (Contributed by Mario
       Carneiro, 14-Oct-2016.) $)
    nfceqdf $p |- ( ph -> ( F/_ x A <-> F/_ x B ) ) $=
      ( vy cv wcel wnf wal wnfc eleq2d nfbidf albidv df-nfc 3bitr4g ) AGHZCIZBJ
      ZGKRDIZBJZGKBCLBDLATUBGASUABEACDRFMNOBGCPBGDPQ $.
  $}

  ${
    $d x y A $.
    $( If ` x ` is disjoint from ` A ` , then ` x ` is not free in ` A ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfcv $p |- F/_ x A $=
      ( vy cv wcel nfv nfci ) ACBCDBEAFG $.

    $( If ` x ` is disjoint from ` A ` , then ` x ` is not free in ` A ` .
       (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    nfcvd $p |- ( ph -> F/_ x A ) $=
      ( wnfc nfcv a1i ) BCDABCEF $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ph $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfab1 $p |- F/_ x { x | ph } $=
      ( vy cab nfsab1 nfci ) BCABDABCEF $.

    $( ` x ` is bound in ` F/_ x A ` .  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfnfc1 $p |- F/ x F/_ x A $=
      ( vy wnfc cv wcel wnf wal df-nfc nfnf1 nfal nfxfr ) ABDCEBFZAGZCHAACBINAC
      MAJKL $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    nfab.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfab $p |- F/_ x { y | ph } $=
      ( vz cab nfsab nfci ) BEACFABCEDGH $.
  $}

  ${
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 14-Oct-2016.) $)
    nfaba1 $p |- F/_ x { y | A. x ph } $=
      ( wal nfa1 nfab ) ABDBCABEF $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.
    nfnfc.1 $e |- F/_ x A $.
    $( Hypothesis builder for ` F/_ y A ` .  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfnfc $p |- F/ x F/_ y A $=
      ( vz wnfc cv wcel wnf wal df-nfc nfcri nfnf nfal nfxfr ) BCFEGCHZBIZEJABE
      CKQAEPABAECDLMNO $.

    nfeq.2 $e |- F/_ x B $.
    $( Hypothesis builder for equality.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfeq $p |- F/ x A = B $=
      ( vz wceq cv wcel wb wal dfcleq nfcri nfbi nfal nfxfr ) BCGFHZBIZQCIZJZFK
      AFBCLTAFRSAAFBDMAFCEMNOP $.

    $( Hypothesis builder for elementhood.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfel $p |- F/ x A e. B $=
      ( vz wcel cv wceq wa wex df-clel nfcv nfeq nfcri nfan nfex nfxfr ) BCGFHZ
      BIZSCGZJZFKAFBCLUBAFTUAAASBASMDNAFCEOPQR $.
  $}

  ${
    $d x B $.
    nfeq1.1 $e |- F/_ x A $.
    $( Hypothesis builder for equality, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfeq1 $p |- F/ x A = B $=
      ( nfcv nfeq ) ABCDACEF $.

    $( Hypothesis builder for elementhood, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfel1 $p |- F/ x A e. B $=
      ( nfcv nfel ) ABCDACEF $.
  $}

  ${
    $d x A $.
    nfeq2.1 $e |- F/_ x B $.
    $( Hypothesis builder for equality, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfeq2 $p |- F/ x A = B $=
      ( nfcv nfeq ) ABCABEDF $.

    $( Hypothesis builder for elementhood, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfel2 $p |- F/ x A e. B $=
      ( nfcv nfel ) ABCABEDF $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfeqd.1 $e |- ( ph -> F/_ x A ) $.
    $( Consequence of the not-free predicate.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfcrd $p |- ( ph -> F/ x y e. A ) $=
      ( wnfc cv wcel wnf nfcr syl ) ABDFCGDHBIEBCDJK $.

    $d y ph $.
    nfeqd.2 $e |- ( ph -> F/_ x B ) $.
    $( Hypothesis builder for equality.  (Contributed by Mario Carneiro,
       7-Oct-2016.) $)
    nfeqd $p |- ( ph -> F/ x A = B ) $=
      ( vy wceq cv wcel wb wal dfcleq nfv nfcrd nfbid nfald nfxfrd ) CDHGIZCJZS
      DJZKZGLABGCDMAUBBGAGNATUABABGCEOABGDFOPQR $.

    $( Hypothesis builder for elementhood.  (Contributed by Mario Carneiro,
       7-Oct-2016.) $)
    nfeld $p |- ( ph -> F/ x A e. B ) $=
      ( vy wcel cv wceq wa wex df-clel nfv nfcvd nfeqd nfcrd nfand nfexd nfxfrd
      ) CDHGIZCJZUADHZKZGLABGCDMAUDBGAGNAUBUCBABUACABUAOEPABGDFQRST $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d w A $.  $d w B $.
    drnfc1.1 $e |- ( A. x x = y -> A = B ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 8-Oct-2016.) $)
    drnfc1 $p |- ( A. x x = y -> ( F/_ x A <-> F/_ y B ) ) $=
      ( vw weq wal cv wcel wnf wnfc eleq2d drnf1 dral2 df-nfc 3bitr4g ) ABGAHZF
      IZCJZAKZFHSDJZBKZFHACLBDLUAUCABFTUBABRCDSEMNOAFCPBFDPQ $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 8-Oct-2016.) $)
    drnfc2 $p |- ( A. x x = y -> ( F/_ z A <-> F/_ z B ) ) $=
      ( vw weq wal cv wcel wnf wnfc eleq2d drnf2 dral2 df-nfc 3bitr4g ) ABHAIZG
      JZDKZCLZGITEKZCLZGICDMCEMUBUDABGUAUCABCSDETFNOPCGDQCGEQR $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.
    nfabd.1 $e |- F/ y ph $.
    nfabd.2 $e |- ( ph -> F/ x ps ) $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 8-Oct-2016.) $)
    nfabd $p |- ( ph -> F/_ x { y | ps } ) $=
      ( vz cab nfv cv wcel wsb df-clab nfsbd nfxfrd nfcd ) ACGBDHZAGIGJQKBDGLAC
      BGDMABDGCEFNOP $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d w A $.  $d w B $.  $d w ph $.
    dvelimdc.1 $e |- F/ x ph $.
    dvelimdc.2 $e |- F/ z ph $.
    dvelimdc.3 $e |- ( ph -> F/_ x A ) $.
    dvelimdc.4 $e |- ( ph -> F/_ z B ) $.
    dvelimdc.5 $e |- ( ph -> ( z = y -> A = B ) ) $.
    $( Deduction form of ~ dvelimc .  (Contributed by Mario Carneiro,
       8-Oct-2016.) $)
    dvelimdc $p |- ( ph -> ( -. A. x x = y -> F/_ x B ) ) $=
      ( vw weq wal wn wnfc wa nfv wcel nfcrd cv wnf wceq wb eleq2 syl6 dvelimdf
      imp nfcd ex ) ABCMBNOZBFPAUKQZBLFULLRAUKLUAZFSZBUBAUMESZUNBCDGHABLEITADLF
      JTADCMEFUCUOUNUDKEFUMUEUFUGUHUIUJ $.
  $}

  ${
    dvelimc.1 $e |- F/_ x A $.
    dvelimc.2 $e |- F/_ z B $.
    dvelimc.3 $e |- ( z = y -> A = B ) $.
    $( Version of ~ dvelim for classes.  (Contributed by Mario Carneiro,
       8-Oct-2016.) $)
    dvelimc $p |- ( -. A. x x = y -> F/_ x B ) $=
      ( weq wal wn wnfc wi wtru nftru a1i wceq dvelimdc trud ) ABIAJKAELMNABCDE
      AOCOADLNFPCELNGPCBIDEQMNHPRS $.
  $}

  ${
    $d x z $.  $d y z $.
    $( If ` x ` and ` y ` are distinct, then ` x ` is not free in ` y ` .
       (Contributed by Mario Carneiro, 8-Oct-2016.) $)
    nfcvf $p |- ( -. A. x x = y -> F/_ x y ) $=
      ( vz cv nfcv weq id dvelimc ) ABCCDZBDZAIECJECBFGH $.

    $( If ` x ` and ` y ` are distinct, then ` y ` is not free in ` x ` .
       (Contributed by Mario Carneiro, 5-Dec-2016.) $)
    nfcvf2 $p |- ( -. A. x x = y -> F/_ y x ) $=
      ( cv wnfc nfcvf naecoms ) BACDBABAEF $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    cleqf.1 $e |- F/_ x A $.
    cleqf.2 $e |- F/_ x B $.
    $( Establish equality between classes, using bound-variable hypotheses
       instead of distinct variable conditions.  See also ~ cleqh .
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    cleqf $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( vy wceq cv wcel wb wal dfcleq nfv nfcri nfbi eleq1 bibi12d cbval bitr4i
      ) BCGFHZBIZTCIZJZFKAHZBIZUDCIZJZAKFBCLUGUCAFUGFMUAUBAAFBDNAFCENOUDTGUEUAU
      FUBUDTBPUDTCPQRS $.
  $}

  ${
    $d y A $.  $d x y $.
    abid2f.1 $e |- F/_ x A $.
    $( A simplification of class abstraction.  Theorem 5.2 of [Quine] p. 35.
       (Contributed by NM, 5-Sep-2011.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    abid2f $p |- { x | x e. A } = A $=
      ( cv wcel cab wceq wb wal nfab1 cleqf abid bibi2i albii bitri biid mpgbir
      eqcomi ) BADZBEZAFZBUAGZTTHZAUBTSUAEZHZAIUCAIABUACTAJKUEUCAUDTTTALMNOTPQR
      $.
  $}

  ${
    $d v A w $.  $d x z v u $.  $d y z v u $.  $d v ph $.
    sbabel.1 $e |- F/_ x A $.
    $( Theorem to move a substitution in and out of a class abstraction.
       (Contributed by NM, 27-Sep-2003.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    sbabel $p |- ( [ y / x ] { z | ph } e. A <-> { z | [ y / x ] ph } e. A ) $=
      ( vv cv cab wceq wcel wa wex wsb wb wal sbf abeq2 sbbii 3bitr4i sbex sban
      nfv sbrbis sbalv nfcri anbi12i bitri exbii df-clel ) GHZADIZJZUKEKZLZGMZB
      CNZUKABCNZDIZJZUNLZGMZULEKZBCNUSEKUQUOBCNZGMVBUOGBCUAVDVAGVDUMBCNZUNBCNZL
      VAUMUNBCUBVEUTVFUNDHUKKZAOZDPZBCNVGUROZDPVEUTVHVJBCDVGVGABCVGBCVGBUCQUDUE
      UMVIBCADUKRSURDUKRTUNBCBGEFUFQUGUHUIUHVCUPBCGULEUJSGUSEUJT $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Negated equality and membership
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new connectives. $)
  $c =/= $. $( Not equal to (equal sign with slash through it). $)
  $c e/ $. $( Not an element of (epsilon with slash through it). $)

  $( Extend wff notation to include inequality. $)
  wne $a wff A =/= B $.

  $( Extend wff notation to include negated membership. $)
  wnel $a wff A e/ B $.

  $( Define inequality.  (Contributed by NM, 5-Aug-1993.) $)
  df-ne $a |- ( A =/= B <-> -. A = B ) $.

  $( Define negated membership.  (Contributed by NM, 7-Aug-1994.) $)
  df-nel $a |- ( A e/ B <-> -. A e. B ) $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
        Negated equality
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    neii.1 $e |- A =/= B $.
    $( Inference associated with ~ df-ne .  (Contributed by BJ, 7-Jul-2018.) $)
    neii $p |- -. A = B $=
      ( wne wceq wn df-ne mpbi ) ABDABEFCABGH $.
  $}

  ${
    neir.1 $e |- -. A = B $.
    $( Inference associated with ~ df-ne .  (Contributed by BJ, 7-Jul-2018.) $)
    neir $p |- A =/= B $=
      ( wne wceq wn df-ne mpbir ) ABDABEFCABGH $.
  $}

  $( Negation of inequality.  (Contributed by Jim Kingdon, 23-Dec-2018.) $)
  nner $p |- ( A = B -> -. A =/= B ) $=
    ( wne wceq wn df-ne biimpi con2i ) ABCZABDZIJEABFGH $.

  $( Negation of inequality where equality is decidable.  (Contributed by Jim
     Kingdon, 15-May-2018.) $)
  nnedc $p |- ( DECID A = B -> ( -. A =/= B <-> A = B ) ) $=
    ( wceq wdc wne wn wb df-ne a1i con2biidc bicomd ) ABCZDZLABEZFNLNLFGMABHIJK
    $.

  ${
    dcned.eq $e |- ( ph -> DECID A = B ) $.
    $( Decidable equality implies decidable negated equality.  (Contributed by
       Jim Kingdon, 3-May-2020.) $)
    dcned $p |- ( ph -> DECID A =/= B ) $=
      ( wceq wn wdc wne dcn syl df-ne dcbii sylibr ) ABCEZFZGZBCHZGANGPDNIJQOBC
      KLM $.
  $}

  $( No class is unequal to itself.  (Contributed by Stefan O'Rear,
     1-Jan-2015.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
  neirr $p |- -. A =/= A $=
    ( wne wn wceq eqid notnoti df-ne notbii mpbir ) AABZCAADZCZCKAEFJLAAGHI $.

  $( Decidable equality expressed in terms of ` =/= ` .  Basically the same as
     ~ df-dc .  (Contributed by Jim Kingdon, 14-Mar-2020.) $)
  dcne $p |- ( DECID A = B <-> ( A = B \/ A =/= B ) ) $=
    ( wceq wdc wn wo wne df-dc df-ne orbi2i bitr4i ) ABCZDLLEZFLABGZFLHNMLABIJK
    $.

  $( Law of noncontradiction with equality and inequality.  (Contributed by NM,
     3-Feb-2012.) $)
  nonconne $p |- -. ( A = B /\ A =/= B ) $=
    ( wceq wne wa wn pm3.24 df-ne anbi2i mtbir ) ABCZABDZEKKFZEKGLMKABHIJ $.

  $( Equality theorem for inequality.  (Contributed by NM, 19-Nov-1994.) $)
  neeq1 $p |- ( A = B -> ( A =/= C <-> B =/= C ) ) $=
    ( wceq wn wne eqeq1 notbid df-ne 3bitr4g ) ABDZACDZEBCDZEACFBCFKLMABCGHACIB
    CIJ $.

  $( Equality theorem for inequality.  (Contributed by NM, 19-Nov-1994.) $)
  neeq2 $p |- ( A = B -> ( C =/= A <-> C =/= B ) ) $=
    ( wceq wn wne eqeq2 notbid df-ne 3bitr4g ) ABDZCADZECBDZECAFCBFKLMABCGHCAIC
    BIJ $.

  ${
    neeq1i.1 $e |- A = B $.
    $( Inference for inequality.  (Contributed by NM, 29-Apr-2005.) $)
    neeq1i $p |- ( A =/= C <-> B =/= C ) $=
      ( wceq wne wb neeq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( Inference for inequality.  (Contributed by NM, 29-Apr-2005.) $)
    neeq2i $p |- ( C =/= A <-> C =/= B ) $=
      ( wceq wne wb neeq2 ax-mp ) ABECAFCBFGDABCHI $.

    neeq12i.2 $e |- C = D $.
    $( Inference for inequality.  (Contributed by NM, 24-Jul-2012.) $)
    neeq12i $p |- ( A =/= C <-> B =/= D ) $=
      ( wne neeq2i neeq1i bitri ) ACGADGBDGCDAFHABDEIJ $.
  $}

  ${
    neeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction for inequality.  (Contributed by NM, 25-Oct-1999.) $)
    neeq1d $p |- ( ph -> ( A =/= C <-> B =/= C ) ) $=
      ( wceq wne wb neeq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( Deduction for inequality.  (Contributed by NM, 25-Oct-1999.) $)
    neeq2d $p |- ( ph -> ( C =/= A <-> C =/= B ) ) $=
      ( wceq wne wb neeq2 syl ) ABCFDBGDCGHEBCDIJ $.

    neeq12d.2 $e |- ( ph -> C = D ) $.
    $( Deduction for inequality.  (Contributed by NM, 24-Jul-2012.) $)
    neeq12d $p |- ( ph -> ( A =/= C <-> B =/= D ) ) $=
      ( wne neeq1d neeq2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    neneqd.1 $e |- ( ph -> A =/= B ) $.
    $( Deduction eliminating inequality definition.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    neneqd $p |- ( ph -> -. A = B ) $=
      ( wne wceq wn df-ne sylib ) ABCEBCFGDBCHI $.
  $}

  ${
    eqnetr.1 $e |- A = B $.
    eqnetr.2 $e |- B =/= C $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetri $p |- A =/= C $=
      ( wne neeq1i mpbir ) ACFBCFEABCDGH $.
  $}

  ${
    eqnetrd.1 $e |- ( ph -> A = B ) $.
    eqnetrd.2 $e |- ( ph -> B =/= C ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetrd $p |- ( ph -> A =/= C ) $=
      ( wne neeq1d mpbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqnetrr.1 $e |- A = B $.
    eqnetrr.2 $e |- A =/= C $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetrri $p |- B =/= C $=
      ( eqcomi eqnetri ) BACABDFEG $.
  $}

  ${
    eqnetrrd.1 $e |- ( ph -> A = B ) $.
    eqnetrrd.2 $e |- ( ph -> A =/= C ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetrrd $p |- ( ph -> B =/= C ) $=
      ( eqcomd eqnetrd ) ACBDABCEGFH $.
  $}

  ${
    neeqtr.1 $e |- A =/= B $.
    neeqtr.2 $e |- B = C $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtri $p |- A =/= C $=
      ( wne neeq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    neeqtrd.1 $e |- ( ph -> A =/= B ) $.
    neeqtrd.2 $e |- ( ph -> B = C ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtrd $p |- ( ph -> A =/= C ) $=
      ( wne neeq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    neeqtrr.1 $e |- A =/= B $.
    neeqtrr.2 $e |- C = B $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtrri $p |- A =/= C $=
      ( eqcomi neeqtri ) ABCDCBEFG $.
  $}

  ${
    neeqtrrd.1 $e |- ( ph -> A =/= B ) $.
    neeqtrrd.2 $e |- ( ph -> C = B ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtrrd $p |- ( ph -> A =/= C ) $=
      ( eqcomd neeqtrd ) ABCDEADCFGH $.
  $}

  ${
    syl5eqner.1 $e |- B = A $.
    syl5eqner.2 $e |- ( ph -> B =/= C ) $.
    $( B chained equality inference for inequality.  (Contributed by NM,
       6-Jun-2012.) $)
    syl5eqner $p |- ( ph -> A =/= C ) $=
      ( wne neeq1i sylib ) ACDGBDGFCBDEHI $.
  $}

  ${
    3netr3d.1 $e |- ( ph -> A =/= B ) $.
    3netr3d.2 $e |- ( ph -> A = C ) $.
    3netr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 24-Jul-2012.) $)
    3netr3d $p |- ( ph -> C =/= D ) $=
      ( wne neeq12d mpbid ) ABCIDEIFABDCEGHJK $.
  $}

  ${
    3netr4d.1 $e |- ( ph -> A =/= B ) $.
    3netr4d.2 $e |- ( ph -> C = A ) $.
    3netr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 24-Jul-2012.) $)
    3netr4d $p |- ( ph -> C =/= D ) $=
      ( wne neeq12d mpbird ) ADEIBCIFADBECGHJK $.
  $}

  ${
    3netr3g.1 $e |- ( ph -> A =/= B ) $.
    3netr3g.2 $e |- A = C $.
    3netr3g.3 $e |- B = D $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 24-Jul-2012.) $)
    3netr3g $p |- ( ph -> C =/= D ) $=
      ( wne neeq12i sylib ) ABCIDEIFBDCEGHJK $.
  $}

  ${
    3netr4g.1 $e |- ( ph -> A =/= B ) $.
    3netr4g.2 $e |- C = A $.
    3netr4g.3 $e |- D = B $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 14-Jun-2012.) $)
    3netr4g $p |- ( ph -> C =/= D ) $=
      ( wne neeq12i sylibr ) ABCIDEIFDBECGHJK $.
  $}

  ${
    necon3abii.1 $e |- ( A = B <-> ph ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       9-Nov-2007.) $)
    necon3abii $p |- ( A =/= B <-> -. ph ) $=
      ( wne wceq df-ne xchbinx ) BCEBCFABCGDH $.
  $}

  ${
    necon3bbii.1 $e |- ( ph <-> A = B ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       13-Apr-2007.) $)
    necon3bbii $p |- ( -. ph <-> A =/= B ) $=
      ( wne wn wceq bicomi necon3abii ) BCEAFABCABCGDHIH $.
  $}

  ${
    necon3bii.1 $e |- ( A = B <-> C = D ) $.
    $( Inference from equality to inequality.  (Contributed by NM,
       23-Feb-2005.) $)
    necon3bii $p |- ( A =/= B <-> C =/= D ) $=
      ( wne wceq wn necon3abii df-ne bitr4i ) ABFCDGZHCDFLABEICDJK $.
  $}

  ${
    necon3abid.1 $e |- ( ph -> ( A = B <-> ps ) ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       21-Mar-2007.) $)
    necon3abid $p |- ( ph -> ( A =/= B <-> -. ps ) ) $=
      ( wne wceq wn df-ne notbid syl5bb ) CDFCDGZHABHCDIALBEJK $.
  $}

  ${
    necon3bbid.1 $e |- ( ph -> ( ps <-> A = B ) ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       2-Jun-2007.) $)
    necon3bbid $p |- ( ph -> ( -. ps <-> A =/= B ) ) $=
      ( wne wn wceq bicomd necon3abid ) ACDFBGABCDABCDHEIJI $.
  $}

  ${
    necon3bid.1 $e |- ( ph -> ( A = B <-> C = D ) ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       23-Feb-2005.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    necon3bid $p |- ( ph -> ( A =/= B <-> C =/= D ) ) $=
      ( wne wceq wn df-ne necon3bbid syl5bb ) BCGBCHZIADEGBCJAMDEFKL $.
  $}

  ${
    necon3ad.1 $e |- ( ph -> ( ps -> A = B ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3ad $p |- ( ph -> ( A =/= B -> -. ps ) ) $=
      ( wne wceq wn df-ne con3d syl5bi ) CDFCDGZHABHCDIABLEJK $.
  $}

  ${
    necon3bd.1 $e |- ( ph -> ( A = B -> ps ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3bd $p |- ( ph -> ( -. ps -> A =/= B ) ) $=
      ( wn wceq wne con3d df-ne syl6ibr ) ABFCDGZFCDHALBEICDJK $.
  $}

  ${
    necon3d.1 $e |- ( ph -> ( A = B -> C = D ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       10-Jun-2006.) $)
    necon3d $p |- ( ph -> ( C =/= D -> A =/= B ) ) $=
      ( wne wceq wn necon3ad df-ne syl6ibr ) ADEGBCHZIBCGAMDEFJBCKL $.
  $}

  $( Characterization of inequality in terms of reversed equality (see
     ~ bicom ).  (Contributed by BJ, 7-Jul-2018.) $)
  nesym $p |- ( A =/= B <-> -. B = A ) $=
    ( wceq eqcom necon3abii ) BACABABDE $.

  ${
    nesymi.1 $e |- A =/= B $.
    $( Inference associated with ~ nesym .  (Contributed by BJ, 7-Jul-2018.) $)
    nesymi $p |- -. B = A $=
      ( wne wceq wn nesym mpbi ) ABDBAEFCABGH $.
  $}

  ${
    nesymir.1 $e |- -. A = B $.
    $( Inference associated with ~ nesym .  (Contributed by BJ, 7-Jul-2018.) $)
    nesymir $p |- B =/= A $=
      ( wne wceq wn nesym mpbir ) BADABEFCBAGH $.
  $}

  ${
    necon3i.1 $e |- ( A = B -> C = D ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       9-Aug-2006.) $)
    necon3i $p |- ( C =/= D -> A =/= B ) $=
      ( wceq wi wne id necon3d ax-mp ) ABFCDFGZCDHABHGELABCDLIJK $.
  $}

  ${
    necon3ai.1 $e |- ( ph -> A = B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       23-May-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3ai $p |- ( A =/= B -> -. ph ) $=
      ( wne wceq wn df-ne con3i sylbi ) BCEBCFZGAGBCHAKDIJ $.
  $}

  ${
    necon3bi.1 $e |- ( A = B -> ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       1-Jun-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3bi $p |- ( -. ph -> A =/= B ) $=
      ( wn wceq wne con3i df-ne sylibr ) AEBCFZEBCGKADHBCIJ $.
  $}

  ${
    necon1aidc.1 $e |- ( DECID ph -> ( -. ph -> A = B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       15-May-2018.) $)
    necon1aidc $p |- ( DECID ph -> ( A =/= B -> ph ) ) $=
      ( wne wceq wn wdc df-ne wi con1dc mpd syl5bi ) BCEBCFZGZAHZABCIPAGNJOAJDA
      NKLM $.
  $}

  ${
    necon1bidc.1 $e |- ( DECID A = B -> ( A =/= B -> ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       15-May-2018.) $)
    necon1bidc $p |- ( DECID A = B -> ( -. ph -> A = B ) ) $=
      ( wceq wdc wn wi wne df-ne syl5bir con1dc mpd ) BCEZFZNGZAHAGNHPBCIOABCJD
      KNALM $.
  $}

  ${
    necon1idc.1 $e |- ( A =/= B -> C = D ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1idc $p |- ( DECID A = B -> ( C =/= D -> A = B ) ) $=
      ( wceq wn wi wdc wne df-ne sylbir a1i necon1aidc ) ABFZCDOGZCDFZHOIPABJQA
      BKELMN $.
  $}

  ${
    necon2ai.1 $e |- ( A = B -> -. ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       16-Jan-2007.)  (Proof rewritten by Jim Kingdon, 16-May-2018.) $)
    necon2ai $p |- ( ph -> A =/= B ) $=
      ( wceq wn wne con2i df-ne sylibr ) ABCEZFBCGKADHBCIJ $.
  $}

  ${
    necon2bi.1 $e |- ( ph -> A =/= B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       1-Apr-2007.) $)
    necon2bi $p |- ( A = B -> -. ph ) $=
      ( wceq neneqd con2i ) ABCEABCDFG $.
  $}

  ${
    necon2i.1 $e |- ( A = B -> C =/= D ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       18-Mar-2007.) $)
    necon2i $p |- ( C = D -> A =/= B ) $=
      ( wceq neneqd necon2ai ) CDFABABFCDEGH $.
  $}

  ${
    necon2ad.1 $e |- ( ph -> ( A = B -> -. ps ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       19-Apr-2007.)  (Proof rewritten by Jim Kingdon, 16-May-2018.) $)
    necon2ad $p |- ( ph -> ( ps -> A =/= B ) ) $=
      ( wceq wn wne con2d df-ne syl6ibr ) ABCDFZGCDHALBEICDJK $.
  $}

  ${
    necon2bd.1 $e |- ( ph -> ( ps -> A =/= B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       13-Apr-2007.) $)
    necon2bd $p |- ( ph -> ( A = B -> -. ps ) ) $=
      ( wceq wne wn df-ne syl6ib con2d ) ABCDFZABCDGLHECDIJK $.
  $}

  ${
    necon2d.1 $e |- ( ph -> ( A = B -> C =/= D ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       28-Dec-2008.) $)
    necon2d $p |- ( ph -> ( C = D -> A =/= B ) ) $=
      ( wceq wne wn df-ne syl6ib necon2ad ) ADEGZBCABCGDEHMIFDEJKL $.
  $}

  ${
    necon1abiidc.1 $e |- ( DECID ph -> ( -. ph <-> A = B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1abiidc $p |- ( DECID ph -> ( A =/= B <-> ph ) ) $=
      ( wne wceq wn wdc df-ne con1biidc syl5bb ) BCEBCFZGAHABCIALDJK $.
  $}

  ${
    necon1bbiidc.1 $e |- ( DECID A = B -> ( A =/= B <-> ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1bbiidc $p |- ( DECID A = B -> ( -. ph <-> A = B ) ) $=
      ( wceq wn wne wdc df-ne syl5bbr con1biidc ) BCEZALFBCGLHABCIDJK $.
  $}

  ${
    necon1abiddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps <-> A = B ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1abiddc $p |- ( ph -> ( DECID ps -> ( A =/= B <-> ps ) ) ) $=
      ( wdc wceq wn wb wne con1biddc df-ne bibi1i syl6ibr ) ABFCDGZHZBICDJZBIAB
      OEKQPBCDLMN $.
  $}

  ${
    necon1bbiddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B <-> ps ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1bbiddc $p |- ( ph -> ( DECID A = B -> ( -. ps <-> A = B ) ) ) $=
      ( wceq wdc wne wb wn df-ne bibi1i syl6ib con1biddc ) ACDFZBAOGCDHZBIOJZBI
      EPQBCDKLMN $.
  $}

  ${
    necon2abiidc.1 $e |- ( DECID ph -> ( A = B <-> -. ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2abiidc $p |- ( DECID ph -> ( ph <-> A =/= B ) ) $=
      ( wdc wne wceq wn bicomd necon1abiidc ) AEZBCFAABCKBCGAHDIJI $.
  $}

  ${
    necon2bbii.1 $e |- ( DECID A = B -> ( ph <-> A =/= B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2bbii $p |- ( DECID A = B -> ( A = B <-> -. ph ) ) $=
      ( wceq wdc wn wne bicomd necon1bbiidc ) BCEZFZAGKABCLABCHDIJI $.
  $}

  ${
    necon2abiddc.1 $e |- ( ph -> ( DECID ps -> ( A = B <-> -. ps ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2abiddc $p |- ( ph -> ( DECID ps -> ( ps <-> A =/= B ) ) ) $=
      ( wdc wne wb wceq wn bicom syl6ib necon1abiddc ) ABFZCDGZBHBOHABCDANCDIZB
      JZHQPHEPQKLMOBKL $.
  $}

  ${
    necon2bbiddc.1 $e |- ( ph -> ( DECID A = B -> ( ps <-> A =/= B ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2bbiddc $p |- ( ph -> ( DECID A = B -> ( A = B <-> -. ps ) ) ) $=
      ( wceq wdc wn wb wne bicom syl6ib necon1bbiddc ) ACDFZGZBHZNINPIABCDAOBCD
      JZIQBIEBQKLMPNKL $.
  $}

  ${
    necon4aidc.1 $e |- ( DECID A = B -> ( A =/= B -> -. ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon4aidc $p |- ( DECID A = B -> ( ph -> A = B ) ) $=
      ( wceq wdc wn wi wne df-ne syl5bir condc mpd ) BCEZFZNGZAGZHANHPBCIOQBCJD
      KNALM $.
  $}

  ${
    necon4idc.1 $e |- ( DECID A = B -> ( A =/= B -> C =/= D ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon4idc $p |- ( DECID A = B -> ( C = D -> A = B ) ) $=
      ( wceq wdc wne wn df-ne syl6ib necon4aidc ) CDFZABABFGABHCDHMIECDJKL $.
  $}

  ${
    necon4addc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> -. ps ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       17-May-2018.) $)
    necon4addc $p |- ( ph -> ( DECID A = B -> ( ps -> A = B ) ) ) $=
      ( wceq wdc wne wn wi df-ne imbi1i condc syl5bi sylcom ) ACDFZGZCDHZBIZJZB
      PJZETPIZSJQUARUBSCDKLPBMNO $.
  $}

  ${
    necon4bddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps -> A =/= B ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       17-May-2018.) $)
    necon4bddc $p |- ( ph -> ( DECID ps -> ( A = B -> ps ) ) ) $=
      ( wdc wn wceq wi wne df-ne syl8ib condc sylcom ) ABFZBGZCDHZGZIQBIAOPCDJR
      ECDKLBQMN $.
  $}

  ${
    necon4ddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> C =/= D ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       17-May-2018.) $)
    necon4ddc $p |- ( ph -> ( DECID A = B -> ( C = D -> A = B ) ) ) $=
      ( wceq wdc wn wi wne df-ne imbi12i syl6ib condc sylcom ) ABCGZHZQIZDEGZIZ
      JZTQJARBCKZDEKZJUBFUCSUDUABCLDELMNQTOP $.
  $}

  ${
    necon4abiddc.1 $e |- ( ph -> ( DECID A = B -> ( DECID ps ->
        ( A =/= B <-> -. ps ) ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 18-May-2018.) $)
    necon4abiddc $p |- ( ph -> ( DECID A = B -> ( DECID ps ->
        ( A = B <-> ps ) ) ) ) $=
      ( wceq wdc wne wn wb df-ne bibi1i syl8ib con4biddc ) ACDFZBAOGBGCDHZBIZJO
      IZQJEPRQCDKLMN $.
  $}

  ${
    necon4bbiddc.1 $e |- ( ph -> ( DECID ps -> ( DECID A = B ->
        ( -. ps <-> A =/= B ) ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 19-May-2018.) $)
    necon4bbiddc $p |- ( ph -> ( DECID ps -> ( DECID A = B ->
        ( ps <-> A = B ) ) ) ) $=
      ( wdc wceq wb wne wn bicom syl8ib com23 necon4abiddc ) ABFZCDGZFZPBHZBPHA
      QORABCDAOQCDIZBJZHZAOQTSHUAETSKLMNMPBKL $.
  $}

  ${
    necon4biddc.1 $e |- ( ph -> ( DECID A = B -> ( DECID C = D ->
        ( A =/= B <-> C =/= D ) ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 19-May-2018.) $)
    necon4biddc $p |- ( ph -> ( DECID A = B -> ( DECID C = D ->
        ( A = B <-> C = D ) ) ) ) $=
      ( wceq wdc wne wb wn df-ne bibi2i syl8ib necon4abiddc ) ADEGZBCABCGHPHBCI
      ZDEIZJQPKZJFRSQDELMNO $.
  $}

  ${
    necon1addc.1 $e |- ( ph -> ( DECID ps -> ( -. ps -> A = B ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       19-May-2018.) $)
    necon1addc $p |- ( ph -> ( DECID ps -> ( A =/= B -> ps ) ) ) $=
      ( wne wceq wn wdc df-ne wi con1dc sylcom syl7bi ) CDFCDGZHZABIZBCDJAQBHOK
      PBKEBOLMN $.
  $}

  ${
    necon1bddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> ps ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       19-May-2018.) $)
    necon1bddc $p |- ( ph -> ( DECID A = B -> ( -. ps -> A = B ) ) ) $=
      ( wceq wdc wn wi wne df-ne imbi1i syl6ib con1dc sylcom ) ACDFZGZPHZBIZBHP
      IAQCDJZBISETRBCDKLMPBNO $.
  $}

  ${
    necon1ddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> C = D ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 19-May-2018.) $)
    necon1ddc $p |- ( ph -> ( DECID A = B -> ( C =/= D -> A = B ) ) ) $=
      ( wne wceq wn wdc df-ne necon1bddc syl7bi ) DEGDEHZIABCHZJODEKANBCFLM $.
  $}

  ${
    neneqad.1 $e |- ( ph -> -. A = B ) $.
    $( If it is not the case that two classes are equal, they are unequal.
       Converse of ~ neneqd .  One-way deduction form of ~ df-ne .
       (Contributed by David Moews, 28-Feb-2017.) $)
    neneqad $p |- ( ph -> A =/= B ) $=
      ( wceq con2i necon2ai ) ABCABCEDFG $.
  $}

  $( Contraposition law for inequality.  (Contributed by Jim Kingdon,
     19-May-2018.) $)
  nebidc $p |- ( DECID A = B -> ( DECID C = D ->
      ( ( A = B <-> C = D ) <-> ( A =/= B <-> C =/= D ) ) ) ) $=
    ( wceq wdc wb wne wa id necon3bid wi a1d necon4biddc com3l imp impbid2 ex )
    ABEZFZCDEZFZSUAGZABHCDHGZGTUBIUCUDUCABCDUCJKTUBUDUCLUDTUBUCUDABCDUDUBUDLTUD
    UDUBUDJMMNOPQR $.

  $( Theorem *13.18 in [WhiteheadRussell] p. 178.  (Contributed by Andrew
     Salmon, 3-Jun-2011.) $)
  pm13.18 $p |- ( ( A = B /\ A =/= C ) -> B =/= C ) $=
    ( wceq wne eqeq1 biimprd necon3d imp ) ABDZACEBCEJBCACJACDBCDABCFGHI $.

  $( Theorem *13.181 in [WhiteheadRussell] p. 178.  (Contributed by Andrew
     Salmon, 3-Jun-2011.) $)
  pm13.181 $p |- ( ( A = B /\ B =/= C ) -> A =/= C ) $=
    ( wceq wne eqcom pm13.18 sylanb ) ABDBADBCEACEABFBACGH $.

  ${
    pm2.21ddne.1 $e |- ( ph -> A = B ) $.
    pm2.21ddne.2 $e |- ( ph -> A =/= B ) $.
    $( A contradiction implies anything.  Equality/inequality deduction form.
       (Contributed by David Moews, 28-Feb-2017.) $)
    pm2.21ddne $p |- ( ph -> ps ) $=
      ( wceq neneqd pm2.21dd ) ACDGBEACDFHI $.
  $}

  $( Commutation of inequality.  (Contributed by NM, 14-May-1999.) $)
  necom $p |- ( A =/= B <-> B =/= A ) $=
    ( eqcom necon3bii ) ABBAABCD $.

  ${
    necomi.1 $e |- A =/= B $.
    $( Inference from commutative law for inequality.  (Contributed by NM,
       17-Oct-2012.) $)
    necomi $p |- B =/= A $=
      ( wne necom mpbi ) ABDBADCABEF $.
  $}

  ${
    necomd.1 $e |- ( ph -> A =/= B ) $.
    $( Deduction from commutative law for inequality.  (Contributed by NM,
       12-Feb-2008.) $)
    necomd $p |- ( ph -> B =/= A ) $=
      ( wne necom sylib ) ABCECBEDBCFG $.
  $}

  $( A De Morgan's law for inequality.  (Contributed by NM, 18-May-2007.) $)
  neanior $p |- ( ( A =/= B /\ C =/= D ) <-> -. ( A = B \/ C = D ) ) $=
    ( wne wa wceq wn wo df-ne anbi12i pm4.56 bitri ) ABEZCDEZFABGZHZCDGZHZFPRIH
    NQOSABJCDJKPRLM $.

  $( A De Morgan's law for inequality.  (Contributed by NM, 30-Sep-2013.)
     (Proof rewritten by Jim Kingdon, 19-May-2018.) $)
  ne3anior $p |- ( ( A =/= B /\ C =/= D /\ E =/= F )
        <-> -. ( A = B \/ C = D \/ E = F ) ) $=
    ( wne w3a wceq wn w3o df-ne 3anbi123i 3ioran bitr4i ) ABGZCDGZEFGZHABIZJZCD
    IZJZEFIZJZHSUAUCKJPTQUBRUDABLCDLEFLMSUAUCNO $.

  ${
    nemtbir.1 $e |- A =/= B $.
    nemtbir.2 $e |- ( ph <-> A = B ) $.
    $( An inference from an inequality, related to modus tollens.  (Contributed
       by NM, 13-Apr-2007.) $)
    nemtbir $p |- -. ph $=
      ( wceq wne wn df-ne mpbi mtbir ) ABCFZBCGLHDBCIJEK $.
  $}

  $( Two classes are different if they don't contain the same element.
     (Contributed by NM, 3-Feb-2012.) $)
  nelne1 $p |- ( ( A e. B /\ -. A e. C ) -> B =/= C ) $=
    ( wcel wn wne wceq eleq2 biimpcd necon3bd imp ) ABDZACDZEBCFLMBCBCGLMBCAHIJ
    K $.

  $( Two classes are different if they don't belong to the same class.
     (Contributed by NM, 25-Jun-2012.) $)
  nelne2 $p |- ( ( A e. C /\ -. B e. C ) -> A =/= B ) $=
    ( wcel wn wne wceq eleq1 biimpcd necon3bd imp ) ACDZBCDZEABFLMABABGLMABCHIJ
    K $.

  ${
    $d y A $.  $d y B $.
    nfne.1 $e |- F/_ x A $.
    nfne.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for inequality.  (Contributed by NM,
       10-Nov-2007.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfne $p |- F/ x A =/= B $=
      ( wne wceq wn df-ne nfeq nfn nfxfr ) BCFBCGZHABCIMAABCDEJKL $.
  $}

  ${
    $d y A $.  $d y B $.
    nfned.1 $e |- ( ph -> F/_ x A ) $.
    nfned.2 $e |- ( ph -> F/_ x B ) $.
    $( Bound-variable hypothesis builder for inequality.  (Contributed by NM,
       10-Nov-2007.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfned $p |- ( ph -> F/ x A =/= B ) $=
      ( wne wceq wn df-ne nfeqd nfnd nfxfrd ) CDGCDHZIABCDJANBABCDEFKLM $.
  $}

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
        Negated membership
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    neli.1 $e |- A e/ B $.
    $( Inference associated with ~ df-nel .  (Contributed by BJ,
       7-Jul-2018.) $)
    neli $p |- -. A e. B $=
      ( wnel wcel wn df-nel mpbi ) ABDABEFCABGH $.
  $}

  ${
    nelir.1 $e |- -. A e. B $.
    $( Inference associated with ~ df-nel .  (Contributed by BJ,
       7-Jul-2018.) $)
    nelir $p |- A e/ B $=
      ( wnel wcel wn df-nel mpbir ) ABDABEFCABGH $.
  $}

  $( Equality theorem for negated membership.  (Contributed by NM,
     20-Nov-1994.) $)
  neleq1 $p |- ( A = B -> ( A e/ C <-> B e/ C ) ) $=
    ( wceq wcel wn wnel eleq1 notbid df-nel 3bitr4g ) ABDZACEZFBCEZFACGBCGLMNAB
    CHIACJBCJK $.

  $( Equality theorem for negated membership.  (Contributed by NM,
     20-Nov-1994.) $)
  neleq2 $p |- ( A = B -> ( C e/ A <-> C e/ B ) ) $=
    ( wceq wcel wn wnel eleq2 notbid df-nel 3bitr4g ) ABDZCAEZFCBEZFCAGCBGLMNAB
    CHICAJCBJK $.

  ${
    neleq12d.1 $e |- ( ph -> A = B ) $.
    neleq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality theorem for negated membership.  (Contributed by FL,
       10-Aug-2016.) $)
    neleq12d $p |- ( ph -> ( A e/ C <-> B e/ D ) ) $=
      ( wnel wceq wb neleq1 syl neleq2 bitrd ) ABDHZCDHZCEHZABCIOPJFBCDKLADEIPQ
      JGDECMLN $.
  $}

  ${
    $d y A $.  $d z B $.
    nfnel.1 $e |- F/_ x A $.
    nfnel.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for negated membership.  (Contributed
       by David Abernethy, 26-Jun-2011.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    nfnel $p |- F/ x A e/ B $=
      ( wnel wcel wn df-nel nfel nfn nfxfr ) BCFBCGZHABCIMAABCDEJKL $.
  $}

  ${
    $d y A $.  $d z B $.
    nfneld.1 $e |- ( ph -> F/_ x A ) $.
    nfneld.2 $e |- ( ph -> F/_ x B ) $.
    $( Bound-variable hypothesis builder for negated membership.  (Contributed
       by David Abernethy, 26-Jun-2011.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    nfneld $p |- ( ph -> F/ x A e/ B ) $=
      ( wnel wcel wn df-nel nfeld nfnd nfxfrd ) CDGCDHZIABCDJANBABCDEFKLM $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Restricted quantification
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend wff notation to include restricted universal quantification. $)
  wral $a wff A. x e. A ph $.

  $( Extend wff notation to include restricted existential quantification. $)
  wrex $a wff E. x e. A ph $.

  $( Extend wff notation to include restricted existential uniqueness. $)
  wreu $a wff E! x e. A ph $.

  $( Extend wff notation to include restricted "at most one." $)
  wrmo $a wff E* x e. A ph $.

  $( Extend class notation to include the restricted class abstraction (class
     builder). $)
  crab $a class { x e. A | ph } $.

  $( Define restricted universal quantification.  Special case of Definition
     4.15(3) of [TakeutiZaring] p. 22.  (Contributed by NM, 19-Aug-1993.) $)
  df-ral $a |- ( A. x e. A ph <-> A. x ( x e. A -> ph ) ) $.

  $( Define restricted existential quantification.  Special case of Definition
     4.15(4) of [TakeutiZaring] p. 22.  (Contributed by NM, 30-Aug-1993.) $)
  df-rex $a |- ( E. x e. A ph <-> E. x ( x e. A /\ ph ) ) $.

  $( Define restricted existential uniqueness.  (Contributed by NM,
     22-Nov-1994.) $)
  df-reu $a |- ( E! x e. A ph <-> E! x ( x e. A /\ ph ) ) $.

  $( Define restricted "at most one".  (Contributed by NM, 16-Jun-2017.) $)
  df-rmo $a |- ( E* x e. A ph <-> E* x ( x e. A /\ ph ) ) $.

  $( Define a restricted class abstraction (class builder), which is the class
     of all ` x ` in ` A ` such that ` ph ` is true.  Definition of
     [TakeutiZaring] p. 20.  (Contributed by NM, 22-Nov-1994.) $)
  df-rab $a |- { x e. A | ph } = { x | ( x e. A /\ ph ) } $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by NM, 21-Jan-1997.) $)
  ralnex $p |- ( A. x e. A -. ph <-> -. E. x e. A ph ) $=
    ( wn wral cv wcel wi wal wrex df-ral wa wex alinexa df-rex xchbinxr bitri )
    ADZBCEBFCGZRHBIZABCJZDRBCKTSALBMUASABNABCOPQ $.

  $( Relationship between restricted universal and existential quantifiers.  In
     classical logic this would be a biconditional.  (Contributed by Jim
     Kingdon, 17-Aug-2018.) $)
  rexnalim $p |- ( E. x e. A -. ph -> -. A. x e. A ph ) $=
    ( wn wrex cv wcel wa wex wral df-rex wi wal exanaliim df-ral sylnibr sylbi
    ) ADZBCEBFCGZRHBIZABCJZDRBCKTSALBMUASABNABCOPQ $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by Jim Kingdon, 17-Aug-2018.) $)
  ralexim $p |- ( A. x e. A ph -> -. E. x e. A -. ph ) $=
    ( wn wrex wral rexnalim con2i ) ADBCEABCFABCGH $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by Jim Kingdon, 17-Aug-2018.) $)
  rexalim $p |- ( E. x e. A ph -> -. A. x e. A -. ph ) $=
    ( wn wral wrex ralnex biimpi con2i ) ADBCEZABCFZJKDABCGHI $.

  ${
    ralbida.1 $e |- F/ x ph $.
    ralbida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 6-Oct-2003.) $)
    ralbida $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( cv wcel wi wal wral pm5.74da albid df-ral 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.

    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 6-Oct-2003.) $)
    rexbida $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( cv wcel wa wex wrex pm5.32da exbid df-rex 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.
  $}

  ${
    $d x ph $.
    ralbidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 4-Mar-1997.) $)
    ralbidva $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( nfv ralbida ) ABCDEADGFH $.

    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 9-Mar-1997.) $)
    rexbidva $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( nfv rexbida ) ABCDEADGFH $.
  $}

  ${
    ralbid.1 $e |- F/ x ph $.
    ralbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 27-Jun-1998.) $)
    ralbid $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( wb cv wcel adantr ralbida ) ABCDEFABCHDIEJGKL $.

    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 27-Jun-1998.) $)
    rexbid $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( wb cv wcel adantr rexbida ) ABCDEFABCHDIEJGKL $.
  $}

  ${
    $d x ph $.
    ralbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 20-Nov-1994.) $)
    ralbidv $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( nfv ralbid ) ABCDEADGFH $.

    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 20-Nov-1994.) $)
    rexbidv $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( nfv rexbid ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    ralbidv2.1 $e |- ( ph -> ( ( x e. A -> ps ) <-> ( x e. B -> ch ) ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 6-Apr-1997.) $)
    ralbidv2 $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ch ) ) $=
      ( cv wcel wi wal wral albidv df-ral 3bitr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    $d x ph $.
    rexbidv2.1 $e |- ( ph -> ( ( x e. A /\ ps ) <-> ( x e. B /\ ch ) ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 22-May-1999.) $)
    rexbidv2 $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ch ) ) $=
      ( cv wcel wa wex wrex exbidv df-rex 3bitr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    ralbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding restricted universal quantifier to both sides of an
       equivalence.  (Contributed by NM, 23-Nov-1994.)  (Revised by Mario
       Carneiro, 17-Oct-2016.) $)
    ralbii $p |- ( A. x e. A ph <-> A. x e. A ps ) $=
      ( wral wb wtru a1i ralbidv trud ) ACDFBCDFGHABCDABGHEIJK $.

    $( Inference adding restricted existential quantifier to both sides of an
       equivalence.  (Contributed by NM, 23-Nov-1994.)  (Revised by Mario
       Carneiro, 17-Oct-2016.) $)
    rexbii $p |- ( E. x e. A ph <-> E. x e. A ps ) $=
      ( wrex wb wtru a1i rexbidv trud ) ACDFBCDFGHABCDABGHEIJK $.

    $( Inference adding two restricted universal quantifiers to both sides of
       an equivalence.  (Contributed by NM, 1-Aug-2004.) $)
    2ralbii $p |- ( A. x e. A A. y e. B ph <-> A. x e. A A. y e. B ps ) $=
      ( wral ralbii ) ADFHBDFHCEABDFGII $.

    $( Inference adding two restricted existential quantifiers to both sides of
       an equivalence.  (Contributed by NM, 11-Nov-1995.) $)
    2rexbii $p |- ( E. x e. A E. y e. B ph <-> E. x e. A E. y e. B ps ) $=
      ( wrex rexbii ) ADFHBDFHCEABDFGII $.
  $}

  ${
    ralbii2.1 $e |- ( ( x e. A -> ph ) <-> ( x e. B -> ps ) ) $.
    $( Inference adding different restricted universal quantifiers to each side
       of an equivalence.  (Contributed by NM, 15-Aug-2005.) $)
    ralbii2 $p |- ( A. x e. A ph <-> A. x e. B ps ) $=
      ( cv wcel wi wal wral albii df-ral 3bitr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    rexbii2.1 $e |- ( ( x e. A /\ ph ) <-> ( x e. B /\ ps ) ) $.
    $( Inference adding different restricted existential quantifiers to each
       side of an equivalence.  (Contributed by NM, 4-Feb-2004.) $)
    rexbii2 $p |- ( E. x e. A ph <-> E. x e. B ps ) $=
      ( cv wcel wa wex wrex exbii df-rex 3bitr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    raleqbii.1 $e |- A = B $.
    raleqbii.2 $e |- ( ps <-> ch ) $.
    $( Equality deduction for restricted universal quantifier, changing both
       formula and quantifier domain.  Inference form.  (Contributed by David
       Moews, 1-May-2017.) $)
    raleqbii $p |- ( A. x e. A ps <-> A. x e. B ch ) $=
      ( cv wcel eleq2i imbi12i ralbii2 ) ABCDECHZDIMEIABDEMFJGKL $.

    $( Equality deduction for restricted existential quantifier, changing both
       formula and quantifier domain.  Inference form.  (Contributed by David
       Moews, 1-May-2017.) $)
    rexeqbii $p |- ( E. x e. A ps <-> E. x e. B ch ) $=
      ( cv wcel eleq2i anbi12i rexbii2 ) ABCDECHZDIMEIABDEMFJGKL $.
  $}

  ${
    ralbiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Inference adding restricted universal quantifier to both sides of an
       equivalence.  (Contributed by NM, 26-Nov-2000.) $)
    ralbiia $p |- ( A. x e. A ph <-> A. x e. A ps ) $=
      ( cv wcel pm5.74i ralbii2 ) ABCDDCFDGABEHI $.

    $( Inference adding restricted existential quantifier to both sides of an
       equivalence.  (Contributed by NM, 26-Oct-1999.) $)
    rexbiia $p |- ( E. x e. A ph <-> E. x e. A ps ) $=
      ( cv wcel pm5.32i rexbii2 ) ABCDDCFDGABEHI $.
  $}

  ${
    $d x y $.  $d y A $.
    2rexbiia.1 $e |- ( ( x e. A /\ y e. B ) -> ( ph <-> ps ) ) $.
    $( Inference adding two restricted existential quantifiers to both sides of
       an equivalence.  (Contributed by NM, 1-Aug-2004.) $)
    2rexbiia $p |- ( E. x e. A E. y e. B ph <-> E. x e. A E. y e. B ps ) $=
      ( wrex cv wcel rexbidva rexbiia ) ADFHBDFHCECIEJABDFGKL $.
  $}

  ${
    $d x y $.
    r2alf.1 $e |- F/_ y A $.
    $( Double restricted universal quantification.  (Contributed by Mario
       Carneiro, 14-Oct-2016.) $)
    r2alf $p |- ( A. x e. A A. y e. B ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> ph ) ) $=
      ( wral cv wi wal wa df-ral nfcri 19.21 impexp albii imbi2i 3bitr4i bitr4i
      wcel ) ACEGZBDGBHDTZUAIZBJUBCHETZKAIZCJZBJUABDLUFUCBUBUDAIZIZCJUBUGCJZIUF
      UCUBUGCCBDFMNUEUHCUBUDAOPUAUIUBACELQRPS $.

    $( Double restricted existential quantification.  (Contributed by Mario
       Carneiro, 14-Oct-2016.) $)
    r2exf $p |- ( E. x e. A E. y e. B ph <->
               E. x E. y ( ( x e. A /\ y e. B ) /\ ph ) ) $=
      ( wrex cv wcel wex df-rex nfcri 19.42 anass exbii anbi2i 3bitr4i bitr4i
      wa ) ACEGZBDGBHDIZTSZBJUACHEIZSASZCJZBJTBDKUEUBBUAUCASZSZCJUAUFCJZSUEUBUA
      UFCCBDFLMUDUGCUAUCANOTUHUAACEKPQOR $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Double restricted universal quantification.  (Contributed by NM,
       19-Nov-1995.) $)
    r2al $p |- ( A. x e. A A. y e. B ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> ph ) ) $=
      ( nfcv r2alf ) ABCDECDFG $.

    $( Double restricted existential quantification.  (Contributed by NM,
       11-Nov-1995.) $)
    r2ex $p |- ( E. x e. A E. y e. B ph <->
               E. x E. y ( ( x e. A /\ y e. B ) /\ ph ) ) $=
      ( nfcv r2exf ) ABCDECDFG $.
  $}

  ${
    $d x y $.  $d y A $.
    2ralbida.1 $e |- F/ x ph $.
    2ralbida.2 $e |- F/ y ph $.
    2ralbida.3 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 24-Feb-2004.) $)
    2ralbida $p |- ( ph ->
                     ( A. x e. A A. y e. B ps <-> A. x e. A A. y e. B ch ) ) $=
      ( wral cv wcel wa nfv nfan wb anassrs ralbida ) ABEGKCEGKDFHADLFMZNBCEGAT
      EITEOPATELGMBCQJRSS $.
  $}

  ${
    $d x y ph $.  $d y A $.
    2ralbidva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifiers (deduction
       rule).  (Contributed by NM, 4-Mar-1997.) $)
    2ralbidva $p |- ( ph ->
                     ( A. x e. A A. y e. B ps <-> A. x e. A A. y e. B ch ) ) $=
      ( nfv 2ralbida ) ABCDEFGADIAEIHJ $.

    $( Formula-building rule for restricted existential quantifiers (deduction
       rule).  (Contributed by NM, 15-Dec-2004.) $)
    2rexbidva $p |- ( ph ->
                    ( E. x e. A E. y e. B ps <-> E. x e. A E. y e. B ch ) ) $=
      ( wrex cv wcel wa wb anassrs rexbidva ) ABEGICEGIDFADJFKZLBCEGAPEJGKBCMHN
      OO $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2ralbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifiers (deduction
       rule).  (Contributed by NM, 28-Jan-2006.)  (Revised by Szymon
       Jaroszewicz, 16-Mar-2007.) $)
    2ralbidv $p |- ( ph ->
                     ( A. x e. A A. y e. B ps <-> A. x e. A A. y e. B ch ) ) $=
      ( wral ralbidv ) ABEGICEGIDFABCEGHJJ $.

    $( Formula-building rule for restricted existential quantifiers (deduction
       rule).  (Contributed by NM, 28-Jan-2006.) $)
    2rexbidv $p |- ( ph ->
                    ( E. x e. A E. y e. B ps <-> E. x e. A E. y e. B ch ) ) $=
      ( wrex rexbidv ) ABEGICEGIDFABCEGHJJ $.

    $( Formula-building rule for restricted quantifiers (deduction rule).
       (Contributed by NM, 28-Jan-2006.) $)
    rexralbidv $p |- ( ph ->
                    ( E. x e. A A. y e. B ps <-> E. x e. A A. y e. B ch ) ) $=
      ( wral ralbidv rexbidv ) ABEGICEGIDFABCEGHJK $.
  $}

  $( A transformation of restricted quantifiers and logical connectives.
     (Contributed by NM, 4-Sep-2005.) $)
  ralinexa $p |- ( A. x e. A ( ph -> -. ps ) <-> -. E. x e. A ( ph /\ ps ) ) $=
    ( wn wi wral wa wrex imnan ralbii ralnex bitri ) ABEFZCDGABHZEZCDGOCDIENPCD
    ABJKOCDLM $.

  ${
    $d x A $.  $d x B $.
    $( Two ways to say " ` A ` belongs to ` B ` ."  (Contributed by NM,
       22-Nov-1994.) $)
    risset $p |- ( A e. B <-> E. x e. B x = A ) $=
      ( cv wcel wceq wa wex wrex exancom df-rex df-clel 3bitr4ri ) ADZCEZNBFZGA
      HPOGAHPACIBCEOPAJPACKABCLM $.
  $}

  ${
    hbral.1 $e |- ( y e. A -> A. x y e. A ) $.
    hbral.2 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for restricted quantification.
       (Contributed by NM, 1-Sep-1999.)  (Revised by David Abernethy,
       13-Dec-2009.) $)
    hbral $p |- ( A. y e. A ph -> A. x A. y e. A ph ) $=
      ( wral cv wcel wi wal df-ral hbim hbal hbxfrbi ) ACDGCHDIZAJZCKBACDLQBCPA
      BEFMNO $.
  $}

  $( ` x ` is not free in ` A. x e. A ph ` .  (Contributed by NM,
     18-Oct-1996.) $)
  hbra1 $p |- ( A. x e. A ph -> A. x A. x e. A ph ) $=
    ( wral cv wcel wi wal df-ral hba1 hbxfrbi ) ABCDBECFAGZBHBABCILBJK $.

  $( ` x ` is not free in ` A. x e. A ph ` .  (Contributed by NM,
     18-Oct-1996.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
  nfra1 $p |- F/ x A. x e. A ph $=
    ( wral cv wcel wi wal df-ral nfa1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  ${
    $d x y $.
    nfraldxy.2 $e |- F/ y ph $.
    nfraldxy.3 $e |- ( ph -> F/_ x A ) $.
    nfraldxy.4 $e |- ( ph -> F/ x ps ) $.
    $( Not-free for restricted universal quantification where ` x ` and ` y `
       are distinct.  See ~ nfraldya for a version with ` y ` and ` A `
       distinct instead.  (Contributed by Jim Kingdon, 29-May-2018.) $)
    nfraldxy $p |- ( ph -> F/ x A. y e. A ps ) $=
      ( wral cv wcel wi wal df-ral wnfc nfcv a1i nfeld nfimd nfald nfxfrd ) BDE
      IDJZEKZBLZDMACBDENAUDCDFAUCBCACUBECUBOACUBPQGRHSTUA $.

    $( Not-free for restricted existential quantification where ` x ` and ` y `
       are distinct.  See ~ nfrexdya for a version with ` y ` and ` A `
       distinct instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfrexdxy $p |- ( ph -> F/ x E. y e. A ps ) $=
      ( wrex cv wcel wa wex df-rex wnfc nfcv a1i nfeld nfand nfexd nfxfrd ) BDE
      IDJZEKZBLZDMACBDENAUDCDFAUCBCACUBECUBOACUBPQGRHSTUA $.
  $}

  ${
    $d y A $.  $d x z $.  $d y z $.  $d A z $.  $d ph z $.  $d ps z $.
    nfraldya.2 $e |- F/ y ph $.
    nfraldya.3 $e |- ( ph -> F/_ x A ) $.
    nfraldya.4 $e |- ( ph -> F/ x ps ) $.
    $( Not-free for restricted universal quantification where ` y ` and ` A `
       are distinct.  See ~ nfraldxy for a version with ` x ` and ` y `
       distinct instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfraldya $p |- ( ph -> F/ x A. y e. A ps ) $=
      ( vz wral cv wcel wi wal df-ral wsb sbim clelsb3 nfv nfxfrd bitri 3bitr4i
      imbi1i albii sb8 nfsbd nfraldxy ) BDEJDKELZBMZDNZACBDEOUJBDIPZIEJZACUIDIP
      ZINIKELZUKMZINUJULUMUOIUMUHDIPZUKMUOUHBDIQUPUNUKIDERUCUAUDUIDIUIISUEUKIEO
      UBAUKCIEAISGABDICFHUFUGTT $.

    $( Not-free for restricted existential quantification where ` y ` and ` A `
       are distinct.  See ~ nfrexdxy for a version with ` x ` and ` y `
       distinct instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfrexdya $p |- ( ph -> F/ x E. y e. A ps ) $=
      ( vz wrex cv wcel wa wex df-rex wsb sban clelsb3 nfv nfxfrd bitri 3bitr4i
      anbi1i exbii sb8e nfsbd nfrexdxy ) BDEJDKELZBMZDNZACBDEOUJBDIPZIEJZACUIDI
      PZINIKELZUKMZINUJULUMUOIUMUHDIPZUKMUOUHBDIQUPUNUKIDERUCUAUDUIDIUIISUEUKIE
      OUBAUKCIEAISGABDICFHUFUGTT $.
  $}

  ${
    $d x y $.
    nfralxy.1 $e |- F/_ x A $.
    nfralxy.2 $e |- F/ x ph $.
    $( Not-free for restricted universal quantification where ` x ` and ` y `
       are distinct.  See ~ nfralya for a version with ` y ` and ` A ` distinct
       instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfralxy $p |- F/ x A. y e. A ph $=
      ( wral wnf wtru nftru wnfc a1i nfraldxy trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.

    $( Not-free for restricted existential quantification where ` x ` and ` y `
       are distinct.  See ~ nfrexya for a version with ` y ` and ` A ` distinct
       instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfrexxy $p |- F/ x E. y e. A ph $=
      ( wrex wnf wtru nftru wnfc a1i nfrexdxy trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.
  $}

  ${
    $d y A $.
    nfralya.1 $e |- F/_ x A $.
    nfralya.2 $e |- F/ x ph $.
    $( Not-free for restricted universal quantification where ` y ` and ` A `
       are distinct.  See ~ nfralxy for a version with ` x ` and ` y ` distinct
       instead.  (Contributed by Jim Kingdon, 3-Jun-2018.) $)
    nfralya $p |- F/ x A. y e. A ph $=
      ( wral wnf wtru nftru wnfc a1i nfraldya trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.

    $( Not-free for restricted existential quantification where ` y ` and ` A `
       are distinct.  See ~ nfrexxy for a version with ` x ` and ` y ` distinct
       instead.  (Contributed by Jim Kingdon, 3-Jun-2018.) $)
    nfrexya $p |- F/ x E. y e. A ph $=
      ( wrex wnf wtru nftru wnfc a1i nfrexdya trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.
  $}

  ${
    $d x y $.  $d A y $.
    $( Not-free given two restricted quantifiers.  (Contributed by Jim Kingdon,
       20-Aug-2018.) $)
    nfra2xy $p |- F/ y A. x e. A A. y e. B ph $=
      ( wral nfcv nfra1 nfralxy ) ACEFCBDCDGACEHI $.
  $}

  $( ` x ` is not free in ` E. x e. A ph ` .  (Contributed by NM,
     19-Mar-1997.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
  nfre1 $p |- F/ x E. x e. A ph $=
    ( wrex cv wcel wa wex df-rex nfe1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  ${
    $d x y z $.  $d y z A $.  $d z B $.
    $( Triple restricted universal quantification.  (Contributed by NM,
       19-Nov-1995.) $)
    r3al $p |- ( A. x e. A A. y e. B A. z e. C ph <->
               A. x A. y A. z ( ( x e. A /\ y e. B /\ z e. C ) -> ph ) ) $=
      ( cv wcel wa wi wal wral w3a df-ral r2al ralbii bitri albii 19.21v 3anass
      imbi1i impexp 3bitr4i ) CHFIZDHGIZJZAKZDLZCLZBEMBHEIZUJKZBLADGMCFMZBEMUKU
      EUFNZAKZDLZCLZBLUJBEOUMUJBEACDFGPQUQULBUQUKUIKZCLULUPURCUPUKUHKZDLURUOUSD
      UOUKUGJZAKUSUNUTAUKUEUFUAUBUKUGAUCRSUKUHDTRSUKUICTRSUD $.
  $}

  $( Universal quantification implies restricted quantification.  (Contributed
     by NM, 20-Oct-2006.) $)
  alral $p |- ( A. x ph -> A. x e. A ph ) $=
    ( wal cv wcel wi wral ax-1 alimi df-ral sylibr ) ABDBECFZAGZBDABCHANBAMIJAB
    CKL $.

  $( Restricted existence implies existence.  (Contributed by NM,
     11-Nov-1995.) $)
  rexex $p |- ( E. x e. A ph -> E. x ph ) $=
    ( wrex cv wcel wa wex df-rex simpr eximi sylbi ) ABCDBECFZAGZBHABHABCINABMA
    JKL $.

  $( Restricted specialization.  (Contributed by NM, 17-Oct-1996.) $)
  rsp $p |- ( A. x e. A ph -> ( x e. A -> ph ) ) $=
    ( wral cv wcel wi wal df-ral sp sylbi ) ABCDBECFAGZBHLABCILBJK $.

  $( Restricted specialization.  (Contributed by NM, 12-Oct-1999.) $)
  rspe $p |- ( ( x e. A /\ ph ) -> E. x e. A ph ) $=
    ( cv wcel wa wex wrex 19.8a df-rex sylibr ) BDCEAFZLBGABCHLBIABCJK $.

  $( Restricted specialization.  (Contributed by NM, 11-Feb-1997.) $)
  rsp2 $p |- ( A. x e. A A. y e. B ph -> ( ( x e. A /\ y e. B ) -> ph ) ) $=
    ( wral cv wcel wi rsp syl6 impd ) ACEFZBDFZBGDHZCGEHZANOMPAIMBDJACEJKL $.

  $( Restricted specialization.  (Contributed by FL, 4-Jun-2012.) $)
  rsp2e $p |- ( ( x e. A /\ y e. B /\ ph ) -> E. x e. A E. y e. B ph ) $=
    ( cv wcel w3a wrex wa wex simp1 rspe 3adant1 19.8a syl2anc df-rex sylibr )
    BFDGZCFEGZAHZSACEIZJZBKZUBBDIUASUBUDSTALTAUBSACEMNUCBOPUBBDQR $.

  ${
    rspec.1 $e |- A. x e. A ph $.
    $( Specialization rule for restricted quantification.  (Contributed by NM,
       19-Nov-1994.) $)
    rspec $p |- ( x e. A -> ph ) $=
      ( wral cv wcel wi rsp ax-mp ) ABCEBFCGAHDABCIJ $.
  $}

  ${
    rgen.1 $e |- ( x e. A -> ph ) $.
    $( Generalization rule for restricted quantification.  (Contributed by NM,
       19-Nov-1994.) $)
    rgen $p |- A. x e. A ph $=
      ( wral cv wcel wi df-ral mpgbir ) ABCEBFCGAHBABCIDJ $.
  $}

  ${
    $d y z A $.  $d x z $.
    rgen2a.1 $e |- ( ( x e. A /\ y e. A ) -> ph ) $.
    $( Generalization rule for restricted quantification.  Note that ` x ` and
       ` y ` needn't be distinct (and illustrates the use of ~ dvelimor ).
       (Contributed by NM, 23-Nov-1994.)  (Proof rewritten by Jim Kingdon,
       1-Jun-2018.) $)
    rgen2a $p |- A. x e. A A. y e. A ph $=
      ( vz wral cv wcel wi wal wceq wnf wo nfv eleq1 dvelimor ex syl6bi alimi
      pm2.43d a1d nfr syl6 jaoi ax-mp df-ral sylibr rgen ) ACDGZBDBHZDIZCHZDIZA
      JZCKZUJUMUKLZCKZULCMZNULUPJZFHZDIZULCBFVBCOVAUKDPQURUTUSURUPULUQUOCUQUNAU
      QUNULUOUMUKDPULUNAERZSUATUBUSULULCKUPULCUCULUOCVCTUDUEUFACDUGUHUI $.
  $}

  ${
    rgenw.1 $e |- ph $.
    $( Generalization rule for restricted quantification.  (Contributed by NM,
       18-Jun-2014.) $)
    rgenw $p |- A. x e. A ph $=
      ( cv wcel a1i rgen ) ABCABECFDGH $.

    $( Generalization rule for restricted quantification.  Note that ` x ` and
       ` y ` needn't be distinct.  (Contributed by NM, 18-Jun-2014.) $)
    rgen2w $p |- A. x e. A A. y e. B ph $=
      ( wral rgenw ) ACEGBDACEFHH $.
  $}

  ${
    mprg.1 $e |- ( A. x e. A ph -> ps ) $.
    mprg.2 $e |- ( x e. A -> ph ) $.
    $( Modus ponens combined with restricted generalization.  (Contributed by
       NM, 10-Aug-2004.) $)
    mprg $p |- ps $=
      ( wral rgen ax-mp ) ACDGBACDFHEI $.
  $}

  ${
    mprgbir.1 $e |- ( ph <-> A. x e. A ps ) $.
    mprgbir.2 $e |- ( x e. A -> ps ) $.
    $( Modus ponens on biconditional combined with restricted generalization.
       (Contributed by NM, 21-Mar-2004.) $)
    mprgbir $p |- ph $=
      ( wral rgen mpbir ) ABCDGBCDFHEI $.
  $}

  $( Distribution of restricted quantification over implication.  (Contributed
     by NM, 9-Feb-1997.) $)
  ralim $p |- ( A. x e. A ( ph -> ps ) ->
               ( A. x e. A ph -> A. x e. A ps ) ) $=
    ( wi wral cv wcel wal df-ral ax-2 al2imi sylbi 3imtr4g ) ABEZCDFZCGDHZAEZCI
    ZQBEZCIZACDFBCDFPQOEZCISUAEOCDJUBRTCQABKLMACDJBCDJN $.

  ${
    ralimi2.1 $e |- ( ( x e. A -> ph ) -> ( x e. B -> ps ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 22-Feb-2004.) $)
    ralimi2 $p |- ( A. x e. A ph -> A. x e. B ps ) $=
      ( cv wcel wi wal wral alimi df-ral 3imtr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    ralimia.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 19-Jul-1996.) $)
    ralimia $p |- ( A. x e. A ph -> A. x e. A ps ) $=
      ( cv wcel a2i ralimi2 ) ABCDDCFDGABEHI $.
  $}

  ${
    ralimiaa.1 $e |- ( ( x e. A /\ ph ) -> ps ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 4-Aug-2007.) $)
    ralimiaa $p |- ( A. x e. A ph -> A. x e. A ps ) $=
      ( cv wcel ex ralimia ) ABCDCFDGABEHI $.
  $}

  ${
    ralimi.1 $e |- ( ph -> ps ) $.
    $( Inference quantifying both antecedent and consequent, with strong
       hypothesis.  (Contributed by NM, 4-Mar-1997.) $)
    ralimi $p |- ( A. x e. A ph -> A. x e. A ps ) $=
      ( wi cv wcel a1i ralimia ) ABCDABFCGDHEIJ $.
  $}

  ${
    ral2imi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference quantifying antecedent, nested antecedent, and consequent,
       with a strong hypothesis.  (Contributed by NM, 19-Dec-2006.) $)
    ral2imi $p |- ( A. x e. A ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( wral wi ralimi ralim syl ) ADEGBCHZDEGBDEGCDEGHALDEFIBCDEJK $.
  $}

  ${
    ralimdaa.1 $e |- F/ x ph $.
    ralimdaa.2 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.20 of [Margaris] p. 90.  (Contributed by NM, 22-Sep-2003.) $)
    ralimdaa $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( cv wcel wi wal wral ex a2d alimd df-ral 3imtr4g ) ADHEIZBJZDKRCJZDKBDEL
      CDELASTDFARBCARBCJGMNOBDEPCDEPQ $.
  $}

  ${
    $d x ph $.
    ralimdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.20 of [Margaris] p. 90.  (Contributed by NM, 22-May-1999.) $)
    ralimdva $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( nfv ralimdaa ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    ralimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.20 of [Margaris] p. 90.  (Contributed by NM, 8-Oct-2003.) $)
    ralimdv $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( wi cv wcel adantr ralimdva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d x ph $.
    ralimdv2.1 $e |- ( ph -> ( ( x e. A -> ps ) -> ( x e. B -> ch ) ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 1-Feb-2005.) $)
    ralimdv2 $p |- ( ph -> ( A. x e. A ps -> A. x e. B ch ) ) $=
      ( cv wcel wi wal wral alimdv df-ral 3imtr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    ralrimi.1 $e |- F/ x ph $.
    ralrimi.2 $e |- ( ph -> ( x e. A -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 10-Oct-1999.) $)
    ralrimi $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel wi wal wral alrimi df-ral sylibr ) ACGDHBIZCJBCDKAOCEFLBCDMN $.
  $}

  ${
    $d x ph $.
    ralrimiv.1 $e |- ( ph -> ( x e. A -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 22-Nov-1994.) $)
    ralrimiv $p |- ( ph -> A. x e. A ps ) $=
      ( nfv ralrimi ) ABCDACFEG $.
  $}

  ${
    $d x ph $.
    ralrimiva.1 $e |- ( ( ph /\ x e. A ) -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 2-Jan-2006.) $)
    ralrimiva $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel ex ralrimiv ) ABCDACFDGBEHI $.
  $}

  ${
    $d x ph $.
    ralrimivw.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 18-Jun-2014.) $)
    ralrimivw $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel a1d ralrimiv ) ABCDABCFDGEHI $.
  $}

  ${
    $( Theorem 19.21 of [Margaris] p. 90 with restricted quantifiers (closed
       theorem version).  (Contributed by NM, 1-Mar-2008.) $)
    r19.21t $p |- ( F/ x ph ->
             ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) ) $=
      ( wnf cv wcel wal wral bi2.04 albii 19.21t syl5bb df-ral imbi2i 3bitr4g
      wi ) ACEZCFDGZABQZQZCHZASBQZCHZQZTCDIABCDIZQUBAUCQZCHRUEUAUGCSABJKAUCCLMT
      CDNUFUDABCDNOP $.
  $}

  ${
    r19.21.1 $e |- F/ x ph $.
    $( Theorem 19.21 of [Margaris] p. 90 with restricted quantifiers.
       (Contributed by Scott Fenton, 30-Mar-2011.) $)
    r19.21 $p |- ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) $=
      ( wnf wi wral wb r19.21t ax-mp ) ACFABGCDHABCDHGIEABCDJK $.
  $}

  ${
    $d x ph $.
    $( Theorem 19.21 of [Margaris] p. 90 with restricted quantifiers.
       (Contributed by NM, 15-Oct-2003.)  (Proof shortened by Andrew Salmon,
       30-May-2011.) $)
    r19.21v $p |- ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) $=
      ( nfv r19.21 ) ABCDACEF $.
  $}

  ${
    ralrimd.1 $e |- F/ x ph $.
    ralrimd.2 $e |- F/ x ps $.
    ralrimd.3 $e |- ( ph -> ( ps -> ( x e. A -> ch ) ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 16-Feb-2004.) $)
    ralrimd $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( cv wcel wi wal wral alrimd df-ral syl6ibr ) ABDIEJCKZDLCDEMABQDFGHNCDEO
      P $.
  $}

  ${
    $d x ph $.  $d x ps $.
    ralrimdv.1 $e |- ( ph -> ( ps -> ( x e. A -> ch ) ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 27-May-1998.) $)
    ralrimdv $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( nfv ralrimd ) ABCDEADGBDGFH $.
  $}

  ${
    $d x ph $.  $d x ps $.
    ralrimdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 2-Feb-2008.) $)
    ralrimdva $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( cv wcel wi ex com23 ralrimdv ) ABCDEADGEHZBCAMBCIFJKL $.
  $}

  ${
    $d x y ph $.  $d y A $.
    ralrimivv.1 $e |- ( ph -> ( ( x e. A /\ y e. B ) -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by NM,
       24-Jul-2004.) $)
    ralrimivv $p |- ( ph -> A. x e. A A. y e. B ps ) $=
      ( wral cv wcel expd ralrimdv ralrimiv ) ABDFHCEACIEJZBDFANDIFJBGKLM $.
  $}

  ${
    $d ph x y $.  $d A y $.
    ralrimivva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by Jeff
       Madsen, 19-Jun-2011.) $)
    ralrimivva $p |- ( ph -> A. x e. A A. y e. B ps ) $=
      ( cv wcel wa ex ralrimivv ) ABCDEFACHEIDHFIJBGKL $.
  $}

  ${
    $d ph x y z $.  $d A y z $.  $d B z $.
    ralrimivvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B /\ z e. C ) ) -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with triple quantification.)  (Contributed by Mario
       Carneiro, 9-Jul-2014.) $)
    ralrimivvva $p |- ( ph -> A. x e. A A. y e. B A. z e. C ps ) $=
      ( wral cv wcel wa 3anassrs ralrimiva ) ABEHJZDGJCFACKFLZMZPDGRDKGLZMBEHAQ
      SEKHLBINOOO $.
  $}

  ${
    $d x y ph $.  $d x y ps $.  $d y A $.
    ralrimdvv.1 $e |- ( ph -> ( ps -> ( ( x e. A /\ y e. B ) -> ch ) ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by NM,
       1-Jun-2005.) $)
    ralrimdvv $p |- ( ph -> ( ps -> A. x e. A A. y e. B ch ) ) $=
      ( wral wa cv wcel wi imp ralrimivv ex ) ABCEGIDFIABJCDEFGABDKFLEKGLJCMHNO
      P $.
  $}

  ${
    $d x y ph $.  $d x y ps $.  $d y A $.
    ralrimdvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by NM,
       2-Feb-2008.) $)
    ralrimdvva $p |- ( ph -> ( ps -> A. x e. A A. y e. B ch ) ) $=
      ( cv wcel wa wi ex com23 ralrimdvv ) ABCDEFGADIFJEIGJKZBCAPBCLHMNO $.
  $}

  ${
    $d x y $.  $d y A $.
    rgen2.1 $e |- ( ( x e. A /\ y e. B ) -> ph ) $.
    $( Generalization rule for restricted quantification.  (Contributed by NM,
       30-May-1999.) $)
    rgen2 $p |- A. x e. A A. y e. B ph $=
      ( wral cv wcel ralrimiva rgen ) ACEGBDBHDIACEFJK $.
  $}

  ${
    $d y z A $.  $d z B $.  $d x y z $.
    rgen3.1 $e |- ( ( x e. A /\ y e. B /\ z e. C ) -> ph ) $.
    $( Generalization rule for restricted quantification.  (Contributed by NM,
       12-Jan-2008.) $)
    rgen3 $p |- A. x e. A A. y e. B A. z e. C ph $=
      ( wral cv wcel wa 3expa ralrimiva rgen2 ) ADGIBCEFBJEKZCJFKZLADGPQDJGKAHM
      NO $.
  $}

  ${
    r19.21bi.1 $e |- ( ph -> A. x e. A ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 20-Nov-1994.) $)
    r19.21bi $p |- ( ( ph /\ x e. A ) -> ps ) $=
      ( cv wcel wi wral wal df-ral sylib 19.21bi imp ) ACFDGZBAOBHZCABCDIPCJEBC
      DKLMN $.
  $}

  ${
    rspec2.1 $e |- A. x e. A A. y e. B ph $.
    $( Specialization rule for restricted quantification.  (Contributed by NM,
       20-Nov-1994.) $)
    rspec2 $p |- ( ( x e. A /\ y e. B ) -> ph ) $=
      ( cv wcel wral rspec r19.21bi ) BGDHACEACEIBDFJK $.
  $}

  ${
    rspec3.1 $e |- A. x e. A A. y e. B A. z e. C ph $.
    $( Specialization rule for restricted quantification.  (Contributed by NM,
       20-Nov-1994.) $)
    rspec3 $p |- ( ( x e. A /\ y e. B /\ z e. C ) -> ph ) $=
      ( cv wcel wa wral rspec2 r19.21bi 3impa ) BIEJZCIFJZDIGJAPQKADGADGLBCEFHM
      NO $.
  $}

  ${
    r19.21be.1 $e |- ( ph -> A. x e. A ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 21-Nov-1994.) $)
    r19.21be $p |- A. x e. A ( ph -> ps ) $=
      ( wi cv wcel r19.21bi expcom rgen ) ABFCDACGDHBABCDEIJK $.
  $}

  ${
    nrex.1 $e |- ( x e. A -> -. ps ) $.
    $( Inference adding restricted existential quantifier to negated wff.
       (Contributed by NM, 16-Oct-2003.) $)
    nrex $p |- -. E. x e. A ps $=
      ( wn wral wrex rgen ralnex mpbi ) AEZBCFABCGEKBCDHABCIJ $.
  $}

  ${
    $d x ph $.
    nrexdv.1 $e |- ( ( ph /\ x e. A ) -> -. ps ) $.
    $( Deduction adding restricted existential quantifier to negated wff.
       (Contributed by NM, 16-Oct-2003.) $)
    nrexdv $p |- ( ph -> -. E. x e. A ps ) $=
      ( wn wral wrex ralrimiva ralnex sylib ) ABFZCDGBCDHFALCDEIBCDJK $.
  $}

  $( Theorem 19.22 of [Margaris] p. 90.  (Restricted quantifier version.)
     (Contributed by NM, 22-Nov-1994.)  (Proof shortened by Andrew Salmon,
     30-May-2011.) $)
  rexim $p |- ( A. x e. A ( ph -> ps ) ->
               ( E. x e. A ph -> E. x e. A ps ) ) $=
    ( wi wral cv wcel wa wex wrex wal df-ral simpl a1i pm3.31 jcad alimi df-rex
    sylbi exim syl 3imtr4g ) ABEZCDFZCGDHZAIZCJZUFBIZCJZACDKBCDKUEUGUIEZCLZUHUJ
    EUEUFUDEZCLULUDCDMUMUKCUMUGUFBUGUFEUMUFANOUFABPQRTUGUICUAUBACDSBCDSUC $.

  ${
    reximia.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 10-Feb-1997.) $)
    reximia $p |- ( E. x e. A ph -> E. x e. A ps ) $=
      ( wi wrex rexim mprg ) ABFACDGBCDGFCDABCDHEI $.
  $}

  ${
    reximi2.1 $e |- ( ( x e. A /\ ph ) -> ( x e. B /\ ps ) ) $.
    $( Inference quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 8-Nov-2004.) $)
    reximi2 $p |- ( E. x e. A ph -> E. x e. B ps ) $=
      ( cv wcel wa wex wrex eximi df-rex 3imtr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    reximi.1 $e |- ( ph -> ps ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 18-Oct-1996.) $)
    reximi $p |- ( E. x e. A ph -> E. x e. A ps ) $=
      ( wi cv wcel a1i reximia ) ABCDABFCGDHEIJ $.
  $}

  ${
    reximdai.1 $e |- F/ x ph $.
    reximdai.2 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 31-Aug-1999.) $)
    reximdai $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( wi wral wrex ralrimi rexim syl ) ABCHZDEIBDEJCDEJHANDEFGKBCDELM $.
  $}

  ${
    $d x ph $.
    reximdv2.1 $e |- ( ph -> ( ( x e. A /\ ps ) -> ( x e. B /\ ch ) ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 17-Sep-2003.) $)
    reximdv2 $p |- ( ph -> ( E. x e. A ps -> E. x e. B ch ) ) $=
      ( cv wcel wa wex wrex eximdv df-rex 3imtr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    $d x ph $.
    reximdvai.1 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 14-Nov-2002.) $)
    reximdvai $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( nfv reximdai ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    reximdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Restricted
       quantifier version with strong hypothesis.)  (Contributed by NM,
       24-Jun-1998.) $)
    reximdv $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( wi cv wcel a1d reximdvai ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d x ph $.
    reximdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 22-May-1999.) $)
    reximdva $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( cv wcel wi ex reximdvai ) ABCDEADGEHBCIFJK $.
  $}

  ${
    $d x y $.  $d y A $.  $d x B $.
    $( Theorem 19.12 of [Margaris] p. 89 with restricted quantifiers.
       (Contributed by NM, 15-Oct-2003.)  (Proof shortened by Andrew Salmon,
       30-May-2011.) $)
    r19.12 $p |- ( E. x e. A A. y e. B ph -> A. y e. B E. x e. A ph ) $=
      ( wral wrex nfcv nfra1 nfrexxy cv wcel ax-1 ralrimi com12 reximdv ralimia
      rsp syl ) ACEFZBDGZUACEFABDGZCEFUAUACETCBDCDHACEIJUACKELZMNUAUBCEUCTABDTU
      CAACEROPQS $.
  $}

  $( Closed theorem form of ~ r19.23 .  (Contributed by NM, 4-Mar-2013.)
     (Revised by Mario Carneiro, 8-Oct-2016.) $)
  r19.23t $p |- ( F/ x ps ->
    ( A. x e. A ( ph -> ps ) <-> ( E. x e. A ph -> ps ) ) ) $=
    ( wnf cv wcel wa wal wex wral wrex 19.23t df-ral impexp albii bitr4i df-rex
    wi imbi1i 3bitr4g ) BCECFDGZAHZBSZCIZUCCJZBSABSZCDKZACDLZBSUCBCMUHUBUGSZCIU
    EUGCDNUDUJCUBABOPQUIUFBACDRTUA $.

  ${
    r19.23.1 $e |- F/ x ps $.
    $( Theorem 19.23 of [Margaris] p. 90 with restricted quantifiers.
       (Contributed by NM, 22-Oct-2010.)  (Proof shortened by Mario Carneiro,
       8-Oct-2016.) $)
    r19.23 $p |- ( A. x e. A ( ph -> ps ) <-> ( E. x e. A ph -> ps ) ) $=
      ( wnf wi wral wrex wb r19.23t ax-mp ) BCFABGCDHACDIBGJEABCDKL $.
  $}

  ${
    $d x ps $.
    $( Theorem 19.23 of [Margaris] p. 90 with restricted quantifiers.
       (Contributed by NM, 31-Aug-1999.) $)
    r19.23v $p |- ( A. x e. A ( ph -> ps ) <-> ( E. x e. A ph -> ps ) ) $=
      ( nfv r19.23 ) ABCDBCEF $.
  $}

  ${
    rexlimi.1 $e |- F/ x ps $.
    rexlimi.2 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 30-Nov-2003.)  (Proof
       shortened by Andrew Salmon, 30-May-2011.) $)
    rexlimi $p |- ( E. x e. A ph -> ps ) $=
      ( wi wral wrex rgen r19.23 mpbi ) ABGZCDHACDIBGMCDFJABCDEKL $.
  $}

  ${
    $d x ps $.
    rexlimiv.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 20-Nov-1994.) $)
    rexlimiv $p |- ( E. x e. A ph -> ps ) $=
      ( nfv rexlimi ) ABCDBCFEG $.
  $}

  ${
    $d x ps $.
    rexlimiva.1 $e |- ( ( x e. A /\ ph ) -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 18-Dec-2006.) $)
    rexlimiva $p |- ( E. x e. A ph -> ps ) $=
      ( cv wcel ex rexlimiv ) ABCDCFDGABEHI $.
  $}

  ${
    $d ps x $.
    rexlimivw.1 $e |- ( ph -> ps ) $.
    $( Weaker version of ~ rexlimiv .  (Contributed by FL, 19-Sep-2011.) $)
    rexlimivw $p |- ( E. x e. A ph -> ps ) $=
      ( wi cv wcel a1i rexlimiv ) ABCDABFCGDHEIJ $.
  $}

  ${
    rexlimd.1 $e |- F/ x ph $.
    rexlimd.2 $e |- F/ x ch $.
    rexlimd.3 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 27-May-1998.)  (Proof shortened by Andrew
       Salmon, 30-May-2011.) $)
    rexlimd $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wi wral wrex ralrimi r19.23 sylib ) ABCIZDEJBDEKCIAODEFHLBCDEGMN $.
  $}

  ${
    rexlimd2.1 $e |- F/ x ph $.
    rexlimd2.2 $e |- ( ph -> F/ x ch ) $.
    rexlimd2.3 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Version of ~ rexlimd with deduction version of second hypothesis.
       (Contributed by NM, 21-Jul-2013.)  (Revised by Mario Carneiro,
       8-Oct-2016.) $)
    rexlimd2 $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wi wral wrex ralrimi wnf wb r19.23t syl mpbid ) ABCIZDEJZBDEKCIZARDEFHL
      ACDMSTNGBCDEOPQ $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdv.1 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 14-Nov-2002.)  (Proof shortened by Eric
       Schmidt, 22-Dec-2006.) $)
    rexlimdv $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( nfv rexlimd ) ABCDEADGCDGFH $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 20-Jan-2007.) $)
    rexlimdva $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( cv wcel wi ex rexlimdv ) ABCDEADGEHBCIFJK $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdvaa.1 $e |- ( ( ph /\ ( x e. A /\ ps ) ) -> ch ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by Mario Carneiro, 15-Jun-2016.) $)
    rexlimdvaa $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( cv wcel expr rexlimdva ) ABCDEADGEHBCFIJ $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdv3a.1 $e |- ( ( ph /\ x e. A /\ ps ) -> ch ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  Frequently-used variant of ~ rexlimdv .  (Contributed by NM,
       7-Jun-2015.) $)
    rexlimdv3a $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( cv wcel 3exp rexlimdv ) ABCDEADGEHBCFIJ $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdvw.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 18-Jun-2014.) $)
    rexlimdvw $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wi cv wcel a1d rexlimdv ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimddv.1 $e |- ( ph -> E. x e. A ps ) $.
    rexlimddv.2 $e |- ( ( ph /\ ( x e. A /\ ps ) ) -> ch ) $.
    $( Restricted existential elimination rule of natural deduction.
       (Contributed by Mario Carneiro, 15-Jun-2016.) $)
    rexlimddv $p |- ( ph -> ch ) $=
      ( wrex rexlimdvaa mpd ) ABDEHCFABCDEGIJ $.
  $}

  ${
    $d x y ps $.  $d y A $.
    rexlimivv.1 $e |- ( ( x e. A /\ y e. B ) -> ( ph -> ps ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 17-Feb-2004.) $)
    rexlimivv $p |- ( E. x e. A E. y e. B ph -> ps ) $=
      ( wrex cv wcel rexlimdva rexlimiv ) ADFHBCECIEJABDFGKL $.
  $}

  ${
    $d x y ph $.  $d x y ch $.  $d y A $.
    rexlimdvv.1 $e |- ( ph -> ( ( x e. A /\ y e. B ) -> ( ps -> ch ) ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 22-Jul-2004.) $)
    rexlimdvv $p |- ( ph -> ( E. x e. A E. y e. B ps -> ch ) ) $=
      ( wrex cv wcel wa wi expdimp rexlimdv rexlimdva ) ABEGICDFADJFKZLBCEGAQEJ
      GKBCMHNOP $.
  $}

  ${
    $d x y ph $.  $d x y ch $.  $d y A $.
    rexlimdvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 18-Jun-2014.) $)
    rexlimdvva $p |- ( ph -> ( E. x e. A E. y e. B ps -> ch ) ) $=
      ( cv wcel wa wi ex rexlimdvv ) ABCDEFGADIFJEIGJKBCLHMN $.
  $}

  $( Theorem 19.26 of [Margaris] p. 90 with restricted quantifiers.
     (Contributed by NM, 28-Jan-1997.)  (Proof shortened by Andrew Salmon,
     30-May-2011.) $)
  r19.26 $p |- ( A. x e. A ( ph /\ ps ) <->
               ( A. x e. A ph /\ A. x e. A ps ) ) $=
    ( wa wral simpl ralimi simpr jca pm3.2 ral2imi imp impbii ) ABEZCDFZACDFZBC
    DFZEPQROACDABGHOBCDABIHJQRPABOCDABKLMN $.

  $( Theorem 19.26 of [Margaris] p. 90 with 2 restricted quantifiers.
     (Contributed by NM, 10-Aug-2004.) $)
  r19.26-2 $p |- ( A. x e. A A. y e. B ( ph /\ ps ) <->
               ( A. x e. A A. y e. B ph /\ A. x e. A A. y e. B ps ) ) $=
    ( wa wral r19.26 ralbii bitri ) ABGDFHZCEHADFHZBDFHZGZCEHMCEHNCEHGLOCEABDFI
    JMNCEIK $.

  $( Theorem 19.26 of [Margaris] p. 90 with 3 restricted quantifiers.
     (Contributed by FL, 22-Nov-2010.) $)
  r19.26-3 $p |- ( A. x e. A ( ph /\ ps /\ ch ) <->
               ( A. x e. A ph /\ A. x e. A ps /\ A. x e. A ch ) ) $=
    ( w3a wral wa df-3an ralbii r19.26 anbi1i bitr4i 3bitri ) ABCFZDEGABHZCHZDE
    GPDEGZCDEGZHZADEGZBDEGZSFZOQDEABCIJPCDEKTUAUBHZSHUCRUDSABDEKLUAUBSIMN $.

  $( Theorem 19.26 of [Margaris] p. 90 with mixed quantifiers.  (Contributed by
     NM, 22-Feb-2004.) $)
  r19.26m $p |- ( A. x ( ( x e. A -> ph ) /\ ( x e. B -> ps ) ) <->
               ( A. x e. A ph /\ A. x e. B ps ) ) $=
    ( cv wcel wi wa wal wral 19.26 df-ral anbi12i bitr4i ) CFZDGAHZPEGBHZICJQCJ
    ZRCJZIACDKZBCEKZIQRCLUASUBTACDMBCEMNO $.

  $( Distribute a restricted universal quantifier over a biconditional.
     Theorem 19.15 of [Margaris] p. 90 with restricted quantification.
     (Contributed by NM, 6-Oct-2003.) $)
  ralbi $p |- ( A. x e. A ( ph <-> ps ) ->
               ( A. x e. A ph <-> A. x e. A ps ) ) $=
    ( wb wral nfra1 cv wcel rsp imp ralbida ) ABEZCDFZABCDMCDGNCHDIMMCDJKL $.

  $( Distribute a restricted existential quantifier over a biconditional.
     Theorem 19.18 of [Margaris] p. 90 with restricted quantification.
     (Contributed by Jim Kingdon, 21-Jan-2019.) $)
  rexbi $p |- ( A. x e. A ( ph <-> ps ) ->
               ( E. x e. A ph <-> E. x e. A ps ) ) $=
    ( wb wral nfra1 cv wcel rsp imp rexbida ) ABEZCDFZABCDMCDGNCHDIMMCDJKL $.

  $( Split a biconditional and distribute quantifier.  (Contributed by NM,
     3-Jun-2012.) $)
  ralbiim $p |- ( A. x e. A ( ph <-> ps ) <->
             ( A. x e. A ( ph -> ps ) /\ A. x e. A ( ps -> ph ) ) ) $=
    ( wb wral wi wa dfbi2 ralbii r19.26 bitri ) ABEZCDFABGZBAGZHZCDFNCDFOCDFHMP
    CDABIJNOCDKL $.

  ${
    $d x ps $.
    $( Restricted version of one direction of Theorem 19.27 of [Margaris]
       p. 90.  (The other direction doesn't hold when ` A ` is empty.)
       (Contributed by NM, 3-Jun-2004.)  (Proof shortened by Andrew Salmon,
       30-May-2011.) $)
    r19.27av $p |- ( ( A. x e. A ph /\ ps ) -> A. x e. A ( ph /\ ps ) ) $=
      ( wral wa cv wcel ax-1 ralrimiv anim2i r19.26 sylibr ) ACDEZBFNBCDEZFABFC
      DEBONBBCDBCGDHIJKABCDLM $.
  $}

  ${
    $d x ph $.
    $( Restricted version of one direction of Theorem 19.28 of [Margaris]
       p. 90.  (The other direction doesn't hold when ` A ` is empty.)
       (Contributed by NM, 2-Apr-2004.) $)
    r19.28av $p |- ( ( ph /\ A. x e. A ps ) -> A. x e. A ( ph /\ ps ) ) $=
      ( wral wa r19.27av ancom ralbii 3imtr4i ) BCDEZAFBAFZCDEAKFABFZCDEBACDGAK
      HMLCDABHIJ $.
  $}

  $( Theorem 19.29 of [Margaris] p. 90 with restricted quantifiers.
     (Contributed by NM, 31-Aug-1999.)  (Proof shortened by Andrew Salmon,
     30-May-2011.) $)
  r19.29 $p |- ( ( A. x e. A ph /\ E. x e. A ps ) ->
               E. x e. A ( ph /\ ps ) ) $=
    ( wral wrex wa wi pm3.2 ralimi rexim syl imp ) ACDEZBCDFZABGZCDFZNBPHZCDEOQ
    HARCDABIJBPCDKLM $.

  $( Variation of Theorem 19.29 of [Margaris] p. 90 with restricted
     quantifiers.  (Contributed by NM, 31-Aug-1999.) $)
  r19.29r $p |- ( ( E. x e. A ph /\ A. x e. A ps ) ->
                E. x e. A ( ph /\ ps ) ) $=
    ( wral wrex wa r19.29 ancom rexbii 3imtr4i ) BCDEZACDFZGBAGZCDFMLGABGZCDFBA
    CDHMLIONCDABIJK $.

  ${
    r19.29af2.p $e |- F/ x ph $.
    r19.29af2.c $e |- F/ x ch $.
    r19.29af2.1 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    r19.29af2.2 $e |- ( ph -> E. x e. A ps ) $.
    $( A commonly used pattern based on ~ r19.29 (Contributed by Thierry
       Arnoux, 17-Dec-2017.) $)
    r19.29af2 $p |- ( ph -> ch ) $=
      ( wrex wi wral wa cv wcel exp31 ralrimi jca r19.29r pm3.35 rexlimi 3syl
      a1i ) ABDEJZBCKZDELZMBUEMZDEJCAUDUFIAUEDEFADNEOZBCHPQRBUEDESUGCDEGUGCKUHB
      CTUCUAUB $.
  $}

  ${
    $d x ch $.
    r19.29af.0 $e |- F/ x ph $.
    r19.29af.1 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    r19.29af.2 $e |- ( ph -> E. x e. A ps ) $.
    $( A commonly used pattern based on ~ r19.29 (Contributed by Thierry
       Arnoux, 29-Nov-2017.) $)
    r19.29af $p |- ( ph -> ch ) $=
      ( nfv r19.29af2 ) ABCDEFCDIGHJ $.
  $}

  ${
    $d x ch $.  $d x ph $.
    r19.29a.1 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    r19.29a.2 $e |- ( ph -> E. x e. A ps ) $.
    $( A commonly used pattern based on ~ r19.29 (Contributed by Thierry
       Arnoux, 22-Nov-2017.) $)
    r19.29a $p |- ( ph -> ch ) $=
      ( nfv r19.29af ) ABCDEADHFGI $.
  $}

  ${
    r19.29d2r.1 $e |- ( ph -> A. x e. A A. y e. B ps ) $.
    r19.29d2r.2 $e |- ( ph -> E. x e. A E. y e. B ch ) $.
    $( Theorem 19.29 of [Margaris] p. 90 with two restricted quantifiers,
       deduction version (Contributed by Thierry Arnoux, 30-Jan-2017.) $)
    r19.29d2r $p |- ( ph -> E. x e. A E. y e. B ( ps /\ ch ) ) $=
      ( wral wrex wa r19.29 syl2anc reximi syl ) ABEGJZCEGKZLZDFKZBCLEGKZDFKAQD
      FJRDFKTHIQRDFMNSUADFBCEGMOP $.
  $}

  ${
    $d y A $.  $d x y ch $.  $d x y ph $.
    r19.29vva.1 $e |- ( ( ( ( ph /\ x e. A ) /\ y e. B ) /\ ps ) -> ch ) $.
    r19.29vva.2 $e |- ( ph -> E. x e. A E. y e. B ps ) $.
    $( A commonly used pattern based on ~ r19.29 , version with two restricted
       quantifiers.  (Contributed by Thierry Arnoux, 26-Nov-2017.) $)
    r19.29vva $p |- ( ph -> ch ) $=
      ( wi wa wrex wral cv wcel ex ralrimiva r19.29d2r pm3.35 rexlimivw ancoms
      syl ) ABCJZBKZEGLZDFLCAUCBDEFGAUCEGMDFADNFOKZUCEGUFENGOKBCHPQQIRUECDFUDCE
      GBUCCBCSUATTUB $.
  $}

  ${
    r19.32r.1 $e |- F/ x ph $.
    $( One direction of Theorem 19.32 of [Margaris] p. 90 with restricted
       quantifiers.  For decidable propositions this is an equivalence.
       (Contributed by Jim Kingdon, 19-Aug-2018.) $)
    r19.32r $p |- ( ( ph \/ A. x e. A ps ) -> A. x e. A ( ph \/ ps ) ) $=
      ( wral wo cv wcel wal orc a1d alrimi df-ral olc imim2i alimi sylbi jaoi
      wi sylibr ) ABCDFZGCHDIZABGZTZCJZUDCDFAUFUBAUECEAUDUCABKLMUBUCBTZCJUFBCDN
      UGUECBUDUCBAOPQRSUDCDNUA $.
  $}

  ${
    $d x ph $.
    $( One direction of Theorem 19.32 of [Margaris] p. 90 with restricted
       quantifiers.  For decidable propositions this is an equivalence, as seen
       at ~ r19.32vdc .  (Contributed by Jim Kingdon, 19-Aug-2018.) $)
    r19.32vr $p |- ( ( ph \/ A. x e. A ps ) -> A. x e. A ( ph \/ ps ) ) $=
      ( nfv r19.32r ) ABCDACEF $.

    $( Theorem 19.32 of [Margaris] p. 90 with restricted quantifiers, where
       ` ph ` is decidable.  (Contributed by Jim Kingdon, 4-Jun-2018.) $)
    r19.32vdc $p |- ( DECID ph ->
        ( A. x e. A ( ph \/ ps ) <-> ( ph \/ A. x e. A ps ) ) ) $=
      ( wdc wn wi wral wo wb r19.21v a1i dfordc ralbidv 3bitr4d ) AEZAFZBGZCDHZ
      QBCDHZGZABIZCDHATISUAJPQBCDKLPUBRCDABMNATMO $.
  $}

  $( Restricted quantifier version of ~ 19.35-1 .  (Contributed by Jim Kingdon,
     4-Jun-2018.) $)
  r19.35-1 $p |- ( E. x e. A ( ph -> ps ) ->
      ( A. x e. A ph -> E. x e. A ps ) ) $=
    ( wral wi wrex wa r19.29 pm3.35 reximi syl expcom ) ACDEZABFZCDGZBCDGZNPHAO
    HZCDGQAOCDIRBCDABJKLM $.

  ${
    $d x ps $.
    $( One direction of a restricted quantifier version of Theorem 19.36 of
       [Margaris] p. 90.  In classical logic, the converse would hold if ` A `
       has at least one element, but in intuitionistic logic, that is not a
       sufficient condition.  (Contributed by NM, 22-Oct-2003.) $)
    r19.36av $p |- ( E. x e. A ( ph -> ps ) -> ( A. x e. A ph -> ps ) ) $=
      ( wi wrex wral r19.35-1 cv wcel idd rexlimiv imim2i syl ) ABECDFACDGZBCDF
      ZEOBEABCDHPBOBBCDCIDJBKLMN $.
  $}

  ${
    r19.37.1 $e |- F/ x ph $.
    $( Restricted version of one direction of Theorem 19.37 of [Margaris]
       p. 90.  In classical logic the converse would hold if ` A ` has at least
       one element, but that is not sufficient in intuitionistic logic.
       (Contributed by FL, 13-May-2012.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    r19.37 $p |- ( E. x e. A ( ph -> ps ) -> ( ph -> E. x e. A ps ) ) $=
      ( wral wi wrex cv wcel ax-1 ralrimi r19.35-1 syl5 ) AACDFABGCDHBCDHAACDEA
      CIDJKLABCDMN $.
  $}

  ${
    $d x ph $.
    $( Restricted version of one direction of Theorem 19.37 of [Margaris]
       p. 90.  (Contributed by NM, 2-Apr-2004.) $)
    r19.37av $p |- ( E. x e. A ( ph -> ps ) -> ( ph -> E. x e. A ps ) ) $=
      ( nfv r19.37 ) ABCDACEF $.
  $}

  $( Restricted quantifier version of Theorem 19.40 of [Margaris] p. 90.
     (Contributed by NM, 2-Apr-2004.) $)
  r19.40 $p |- ( E. x e. A ( ph /\ ps ) ->
               ( E. x e. A ph /\ E. x e. A ps ) ) $=
    ( wa wrex simpl reximi simpr jca ) ABEZCDFACDFBCDFKACDABGHKBCDABIHJ $.

  ${
    r19.41.1 $e |- F/ x ps $.
    $( Restricted quantifier version of Theorem 19.41 of [Margaris] p. 90.
       (Contributed by NM, 1-Nov-2010.) $)
    r19.41 $p |- ( E. x e. A ( ph /\ ps ) <-> ( E. x e. A ph /\ ps ) ) $=
      ( cv wcel wa wex wrex anass exbii 19.41 bitr3i df-rex anbi1i 3bitr4i ) CF
      DGZABHZHZCIZRAHZCIZBHZSCDJACDJZBHUAUBBHZCIUDUFTCRABKLUBBCEMNSCDOUEUCBACDO
      PQ $.
  $}

  ${
    $d x ps $.
    $( Restricted quantifier version of Theorem 19.41 of [Margaris] p. 90.
       (Contributed by NM, 17-Dec-2003.) $)
    r19.41v $p |- ( E. x e. A ( ph /\ ps ) <-> ( E. x e. A ph /\ ps ) ) $=
      ( nfv r19.41 ) ABCDBCEF $.
  $}

  ${
    $d x ph $.
    $( Restricted version of Theorem 19.42 of [Margaris] p. 90.  (Contributed
       by NM, 27-May-1998.) $)
    r19.42v $p |- ( E. x e. A ( ph /\ ps ) <-> ( ph /\ E. x e. A ps ) ) $=
      ( wa wrex r19.41v ancom rexbii 3bitr4i ) BAEZCDFBCDFZAEABEZCDFALEBACDGMKC
      DABHIALHJ $.
  $}

  $( Restricted version of Theorem 19.43 of [Margaris] p. 90.  (Contributed by
     NM, 27-May-1998.)  (Proof rewritten by Jim Kingdon, 5-Jun-2018.) $)
  r19.43 $p |- ( E. x e. A ( ph \/ ps ) <->
               ( E. x e. A ph \/ E. x e. A ps ) ) $=
    ( wo wrex cv wcel wa wex df-rex andi exbii bitri 19.43 orbi12i bitr4i ) ABE
    ZCDFZCGDHZAIZCJZTBIZCJZEZACDFZBCDFZESUAUCEZCJZUESTRIZCJUIRCDKUJUHCTABLMNUAU
    CCONUFUBUGUDACDKBCDKPQ $.

  ${
    $d x ps $.
    $( One direction of a restricted quantifier version of Theorem 19.44 of
       [Margaris] p. 90.  The other direction doesn't hold when ` A ` is
       empty.  (Contributed by NM, 2-Apr-2004.) $)
    r19.44av $p |- ( E. x e. A ( ph \/ ps ) -> ( E. x e. A ph \/ ps ) ) $=
      ( wo wrex r19.43 cv wcel idd rexlimiv orim2i sylbi ) ABECDFACDFZBCDFZENBE
      ABCDGOBNBBCDCHDIBJKLM $.
  $}

  ${
    $d x ph $.
    $( Restricted version of one direction of Theorem 19.45 of [Margaris]
       p. 90.  (The other direction doesn't hold when ` A ` is empty.)
       (Contributed by NM, 2-Apr-2004.) $)
    r19.45av $p |- ( E. x e. A ( ph \/ ps ) -> ( ph \/ E. x e. A ps ) ) $=
      ( wo wrex r19.43 cv wcel idd rexlimiv orim1i sylbi ) ABECDFACDFZBCDFZEAOE
      ABCDGNAOAACDCHDIAJKLM $.
  $}

  ${
    $d x y $.
    ralcomf.1 $e |- F/_ y A $.
    ralcomf.2 $e |- F/_ x B $.
    $( Commutation of restricted quantifiers.  (Contributed by Mario Carneiro,
       14-Oct-2016.) $)
    ralcomf $p |- ( A. x e. A A. y e. B ph <-> A. y e. B A. x e. A ph ) $=
      ( cv wcel wa wi wal wral ancomsimp 2albii alcom bitri r2alf 3bitr4i ) BHD
      IZCHEIZJAKZCLBLZUATJAKZBLCLZACEMBDMABDMCEMUCUDCLBLUEUBUDBCTUAANOUDBCPQABC
      DEFRACBEDGRS $.

    $( Commutation of restricted quantifiers.  (Contributed by Mario Carneiro,
       14-Oct-2016.) $)
    rexcomf $p |- ( E. x e. A E. y e. B ph <-> E. y e. B E. x e. A ph ) $=
      ( cv wcel wa wex wrex ancom anbi1i 2exbii excom bitri r2exf 3bitr4i ) BHD
      IZCHEIZJZAJZCKBKZUATJZAJZBKCKZACELBDLABDLCELUDUFCKBKUGUCUFBCUBUEATUAMNOUF
      BCPQABCDEFRACBEDGRS $.
  $}

  ${
    $d x y $.  $d x B $.  $d y A $.
    $( Commutation of restricted quantifiers.  (Contributed by NM,
       13-Oct-1999.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    ralcom $p |- ( A. x e. A A. y e. B ph <-> A. y e. B A. x e. A ph ) $=
      ( nfcv ralcomf ) ABCDECDFBEFG $.

    $( Commutation of restricted quantifiers.  (Contributed by NM,
       19-Nov-1995.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    rexcom $p |- ( E. x e. A E. y e. B ph <-> E. y e. B E. x e. A ph ) $=
      ( nfcv rexcomf ) ABCDECDFBEFG $.
  $}

  ${
    $d y z A $.  $d x z B $.  $d x y C $.
    $( Swap 1st and 3rd restricted existential quantifiers.  (Contributed by
       NM, 8-Apr-2015.) $)
    rexcom13 $p |- ( E. x e. A E. y e. B E. z e. C ph
         <-> E. z e. C E. y e. B E. x e. A ph ) $=
      ( wrex rexcom rexbii 3bitri ) ADGHZCFHBEHLBEHZCFHABEHZDGHZCFHNCFHDGHLBCEF
      IMOCFABDEGIJNCDFGIK $.
  $}

  ${
    $d w z A $.  $d w z B $.  $d w x y C $.  $d x y z D $.
    $( Rotate existential restricted quantifiers twice.  (Contributed by NM,
       8-Apr-2015.) $)
    rexrot4 $p |- ( E. x e. A E. y e. B E. z e. C E. w e. D ph
        <-> E. z e. C E. w e. D E. x e. A E. y e. B ph ) $=
      ( wrex rexcom13 rexbii bitri ) AEIJDHJCGJZBFJACGJZDHJEIJZBFJOBFJEIJDHJNPB
      FACDEGHIKLOBEDFIHKM $.
  $}

  ${
    $( A commutative law for restricted quantifiers that swaps the domain of
       the restriction.  (Contributed by NM, 22-Feb-2004.) $)
    ralcom3 $p |- ( A. x e. A ( x e. B -> ph ) <->
                    A. x e. B ( x e. A -> ph ) ) $=
      ( cv wcel wi wral pm2.04 ralimi2 impbii ) BEZDFZAGZBCHLCFZAGZBDHNPBCDOMAI
      JPNBDCMOAIJK $.
  $}

  ${
    $d y A $.  $d x B $.  $d x y $.
    reean.1 $e |- F/ y ph $.
    reean.2 $e |- F/ x ps $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 27-Oct-2010.)
       (Proof shortened by Andrew Salmon, 30-May-2011.) $)
    reean $p |- ( E. x e. A E. y e. B ( ph /\ ps ) <->
                 ( E. x e. A ph /\ E. y e. B ps ) ) $=
      ( cv wcel wa wex wrex an4 2exbii nfv nfan eean bitri df-rex r2ex anbi12i
      3bitr4i ) CIEJZDIFJZKABKZKZDLCLZUDAKZCLZUEBKZDLZKZUFDFMCEMACEMZBDFMZKUHUI
      UKKZDLCLUMUGUPCDUDUEABNOUIUKCDUDADUDDPGQUEBCUECPHQRSUFCDEFUAUNUJUOULACETB
      DFTUBUC $.
  $}

  ${
    $d y ph $.  $d x ps $.  $d x y $.  $d y A $.  $d x B $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 9-May-1999.) $)
    reeanv $p |- ( E. x e. A E. y e. B ( ph /\ ps ) <->
                 ( E. x e. A ph /\ E. y e. B ps ) ) $=
      ( nfv reean ) ABCDEFADGBCGH $.
  $}

  ${
    $d ph y z $.  $d ps x z $.  $d ch x y $.  $d A y $.  $d B x z $.
    $d C x y $.
    $( Rearrange three existential quantifiers.  (Contributed by Jeff Madsen,
       11-Jun-2010.) $)
    3reeanv $p |- ( E. x e. A E. y e. B E. z e. C ( ph /\ ps /\ ch )
                      <-> ( E. x e. A ph /\ E. y e. B ps /\ E. z e. C ch ) ) $=
      ( wa wrex w3a r19.41v reeanv anbi1i bitri df-3an 2rexbii rexbii 3bitr4i )
      ABJZEHKZCFIKZJZDGKZADGKZBEHKZJZUCJZABCLZFIKEHKZDGKUFUGUCLUEUBDGKZUCJUIUBU
      CDGMULUHUCABDEGHNOPUKUDDGUKUACJZFIKEHKUDUJUMEFHIABCQRUACEFHINPSUFUGUCQT
      $.
  $}

  $( ` x ` is not free in ` E! x e. A ph ` .  (Contributed by NM,
     19-Mar-1997.) $)
  nfreu1 $p |- F/ x E! x e. A ph $=
    ( wreu cv wcel wa weu df-reu nfeu1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  $( ` x ` is not free in ` E* x e. A ph ` .  (Contributed by NM,
     16-Jun-2017.) $)
  nfrmo1 $p |- F/ x E* x e. A ph $=
    ( wrmo cv wcel wa wmo df-rmo nfmo1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  ${
    $d x y z $.  $d A z $.  $d ph z $.
    nfreudxy.1 $e |- F/ y ph $.
    nfreudxy.2 $e |- ( ph -> F/_ x A ) $.
    nfreudxy.3 $e |- ( ph -> F/ x ps ) $.
    $( Not-free deduction for restricted uniqueness.  This is a version where
       ` x ` and ` y ` are distinct.  (Contributed by Jim Kingdon,
       6-Jun-2018.) $)
    nfreudxy $p |- ( ph -> F/ x E! y e. A ps ) $=
      ( cv wcel wa weu wnf wreu wnfc nfcv a1i nfeld nfand nfeud df-reu sylibr
      nfbii ) ADIZEJZBKZDLZCMBDENZCMAUFCDFAUEBCACUDECUDOACUDPQGRHSTUHUGCBDEUAUC
      UB $.
  $}

  ${
    $d x y $.
    nfreuxy.1 $e |- F/_ x A $.
    nfreuxy.2 $e |- F/ x ph $.
    $( Not-free for restricted uniqueness.  This is a version where ` x ` and
       ` y ` are distinct.  (Contributed by Jim Kingdon, 6-Jun-2018.) $)
    nfreuxy $p |- F/ x E! y e. A ph $=
      ( wreu wnf wtru nftru wnfc a1i nfreudxy trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.
  $}

  $( An "identity" law of concretion for restricted abstraction.  Special case
     of Definition 2.1 of [Quine] p. 16.  (Contributed by NM, 9-Oct-2003.) $)
  rabid $p |- ( x e. { x e. A | ph } <-> ( x e. A /\ ph ) ) $=
    ( cv wcel wa crab df-rab abeq2i ) BDCEAFBABCGABCHI $.

  ${
    $d x A $.
    $( An "identity" law for restricted class abstraction.  (Contributed by NM,
       9-Oct-2003.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
    rabid2 $p |- ( A = { x e. A | ph } <-> A. x e. A ph ) $=
      ( cv wcel wa cab wceq wi wal crab abeq2 pm4.71 albii bitr4i df-rab eqeq2i
      wral wb df-ral 3bitr4i ) CBDCEZAFZBGZHZUBAIZBJZCABCKZHABCRUEUBUCSZBJUGUCB
      CLUFUIBUBAMNOUHUDCABCPQABCTUA $.
  $}

  ${
    $( Equivalent wff's correspond to equal restricted class abstractions.
       Closed theorem form of ~ rabbidva .  (Contributed by NM,
       25-Nov-2013.) $)
    rabbi $p |- ( A. x e. A ( ps <-> ch )
         <-> { x e. A | ps } = { x e. A | ch } ) $=
      ( cv wcel wa wb wal cab wceq wral crab abbi wi df-ral pm5.32 albii df-rab
      bitri eqeq12i 3bitr4i ) CEDFZAGZUCBGZHZCIZUDCJZUECJZKABHZCDLZACDMZBCDMZKU
      DUECNUKUCUJOZCIUGUJCDPUNUFCUCABQRTULUHUMUIACDSBCDSUAUB $.
  $}

  $( Swap with a membership relation in a restricted class abstraction.
     (Contributed by NM, 4-Jul-2005.) $)
  rabswap $p |- { x e. A | x e. B } = { x e. B | x e. A } $=
    ( cv wcel wa cab crab ancom abbii df-rab 3eqtr4i ) ADZBEZMCEZFZAGONFZAGOABH
    NACHPQANOIJOABKNACKL $.

  ${
    $d x y $.
    $( The abstraction variable in a restricted class abstraction isn't free.
       (Contributed by NM, 19-Mar-1997.) $)
    nfrab1 $p |- F/_ x { x e. A | ph } $=
      ( crab cv wcel wa cab df-rab nfab1 nfcxfr ) BABCDBECFAGZBHABCILBJK $.
  $}

  ${
    $d x y z $.  $d z A $.
    nfrabxy.1 $e |- F/ x ph $.
    nfrabxy.2 $e |- F/_ x A $.
    $( A variable not free in a wff remains so in a restricted class
       abstraction.  (Contributed by Jim Kingdon, 19-Jul-2018.) $)
    nfrabxy $p |- F/_ x { y e. A | ph } $=
      ( crab cv wcel wa cab df-rab nfcri nfan nfab nfcxfr ) BACDGCHDIZAJZCKACDL
      RBCQABBCDFMENOP $.
  $}

  ${
    reubida.1 $e |- F/ x ph $.
    reubida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by Mario Carneiro, 19-Nov-2016.) $)
    reubida $p |- ( ph -> ( E! x e. A ps <-> E! x e. A ch ) ) $=
      ( cv wcel wa weu wreu pm5.32da eubid df-reu 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.
  $}

  ${
    $d x ph $.
    reubidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 13-Nov-2004.) $)
    reubidva $p |- ( ph -> ( E! x e. A ps <-> E! x e. A ch ) ) $=
      ( nfv reubida ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    reubidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 17-Oct-1996.) $)
    reubidv $p |- ( ph -> ( E! x e. A ps <-> E! x e. A ch ) ) $=
      ( wb cv wcel adantr reubidva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    reubiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 14-Nov-2004.) $)
    reubiia $p |- ( E! x e. A ph <-> E! x e. A ps ) $=
      ( cv wcel wa weu wreu pm5.32i eubii df-reu 3bitr4i ) CFDGZAHZCIOBHZCIACDJ
      BCDJPQCOABEKLACDMBCDMN $.
  $}

  ${
    reubii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 22-Oct-1999.) $)
    reubii $p |- ( E! x e. A ph <-> E! x e. A ps ) $=
      ( wb cv wcel a1i reubiia ) ABCDABFCGDHEIJ $.
  $}

  ${
    rmobida.1 $e |- F/ x ph $.
    rmobida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobida $p |- ( ph -> ( E* x e. A ps <-> E* x e. A ch ) ) $=
      ( cv wcel wa wmo wrmo pm5.32da mobid df-rmo 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.
  $}

  ${
    $d x ph $.
    rmobidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobidva $p |- ( ph -> ( E* x e. A ps <-> E* x e. A ch ) ) $=
      ( nfv rmobida ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    rmobidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobidv $p |- ( ph -> ( E* x e. A ps <-> E* x e. A ch ) ) $=
      ( wb cv wcel adantr rmobidva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    rmobiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobiia $p |- ( E* x e. A ph <-> E* x e. A ps ) $=
      ( cv wcel wa wmo wrmo pm5.32i mobii df-rmo 3bitr4i ) CFDGZAHZCIOBHZCIACDJ
      BCDJPQCOABEKLACDMBCDMN $.
  $}

  ${
    rmobii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobii $p |- ( E* x e. A ph <-> E* x e. A ps ) $=
      ( wb cv wcel a1i rmobiia ) ABCDABFCGDHEIJ $.
  $}

  ${
    $d y A $.  $d y B $.
    raleq1f.1 $e |- F/_ x A $.
    raleq1f.2 $e |- F/_ x B $.
    $( Equality theorem for restricted universal quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by NM, 7-Mar-2004.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    raleqf $p |- ( A = B -> ( A. x e. A ph <-> A. x e. B ph ) ) $=
      ( wceq cv wcel wi wal wral nfeq eleq2 imbi1d albid df-ral 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.

    $( Equality theorem for restricted existential quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by NM, 9-Oct-2003.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    rexeqf $p |- ( A = B -> ( E. x e. A ph <-> E. x e. B ph ) ) $=
      ( wceq cv wcel wa wex wrex nfeq eleq2 anbi1d exbid df-rex 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.

    $( Equality theorem for restricted uniqueness quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by NM, 5-Apr-2004.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    reueq1f $p |- ( A = B -> ( E! x e. A ph <-> E! x e. B ph ) ) $=
      ( wceq cv wcel wa weu wreu nfeq eleq2 anbi1d eubid df-reu 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.

    $( Equality theorem for restricted uniqueness quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoeq1f $p |- ( A = B -> ( E* x e. A ph <-> E* x e. B ph ) ) $=
      ( wceq cv wcel wa wmo wrmo nfeq eleq2 anbi1d mobid df-rmo 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality theorem for restricted universal quantifier.  (Contributed by
       NM, 16-Nov-1995.) $)
    raleq $p |- ( A = B -> ( A. x e. A ph <-> A. x e. B ph ) ) $=
      ( nfcv raleqf ) ABCDBCEBDEF $.

    $( Equality theorem for restricted existential quantifier.  (Contributed by
       NM, 29-Oct-1995.) $)
    rexeq $p |- ( A = B -> ( E. x e. A ph <-> E. x e. B ph ) ) $=
      ( nfcv rexeqf ) ABCDBCEBDEF $.

    $( Equality theorem for restricted uniqueness quantifier.  (Contributed by
       NM, 5-Apr-2004.) $)
    reueq1 $p |- ( A = B -> ( E! x e. A ph <-> E! x e. B ph ) ) $=
      ( nfcv reueq1f ) ABCDBCEBDEF $.

    $( Equality theorem for restricted uniqueness quantifier.  (Contributed by
       Alexander van der Vekens, 17-Jun-2017.) $)
    rmoeq1 $p |- ( A = B -> ( E* x e. A ph <-> E* x e. B ph ) ) $=
      ( nfcv rmoeq1f ) ABCDBCEBDEF $.
  $}

  ${
    $d A x $.  $d B x $.
    raleq1i.1 $e |- A = B $.
    $( Equality inference for restricted universal qualifier.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    raleqi $p |- ( A. x e. A ph <-> A. x e. B ph ) $=
      ( wceq wral wb raleq ax-mp ) CDFABCGABDGHEABCDIJ $.

    $( Equality inference for restricted existential qualifier.  (Contributed
       by Mario Carneiro, 23-Apr-2015.) $)
    rexeqi $p |- ( E. x e. A ph <-> E. x e. B ph ) $=
      ( wceq wrex wb rexeq ax-mp ) CDFABCGABDGHEABCDIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    raleq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 13-Nov-2005.) $)
    raleqdv $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ps ) ) $=
      ( wceq wral wb raleq syl ) ADEGBCDHBCEHIFBCDEJK $.

    $( Equality deduction for restricted existential quantifier.  (Contributed
       by NM, 14-Jan-2007.) $)
    rexeqdv $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ps ) ) $=
      ( wceq wrex wb rexeq syl ) ADEGBCDHBCEHIFBCDEJK $.
  $}

  ${
    $d x A $.  $d x B $.
    raleqd.1 $e |- ( A = B -> ( ph <-> ps ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 16-Nov-1995.) $)
    raleqbi1dv $p |- ( A = B -> ( A. x e. A ph <-> A. x e. B ps ) ) $=
      ( wceq wral raleq ralbidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.

    $( Equality deduction for restricted existential quantifier.  (Contributed
       by NM, 18-Mar-1997.) $)
    rexeqbi1dv $p |- ( A = B -> ( E. x e. A ph <-> E. x e. B ps ) ) $=
      ( wceq wrex rexeq rexbidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.

    $( Equality deduction for restricted uniqueness quantifier.  (Contributed
       by NM, 5-Apr-2004.) $)
    reueqd $p |- ( A = B -> ( E! x e. A ph <-> E! x e. B ps ) ) $=
      ( wceq wreu reueq1 reubidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.

    $( Equality deduction for restricted uniqueness quantifier.  (Contributed
       by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoeqd $p |- ( A = B -> ( E* x e. A ph <-> E* x e. B ps ) ) $=
      ( wceq wrmo rmoeq1 rmobidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    raleqbidv.1 $e |- ( ph -> A = B ) $.
    raleqbidv.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 6-Nov-2007.) $)
    raleqbidv $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ch ) ) $=
      ( wral raleqdv ralbidv bitrd ) ABDEIBDFICDFIABDEFGJABCDFHKL $.

    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 6-Nov-2007.) $)
    rexeqbidv $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ch ) ) $=
      ( wrex rexeqdv rexbidv bitrd ) ABDEIBDFICDFIABDEFGJABCDFHKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    raleqbidva.1 $e |- ( ph -> A = B ) $.
    raleqbidva.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       Mario Carneiro, 5-Jan-2017.) $)
    raleqbidva $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ch ) ) $=
      ( wral ralbidva raleqdv bitrd ) ABDEICDEICDFIABCDEHJACDEFGKL $.

    $( Equality deduction for restricted universal quantifier.  (Contributed by
       Mario Carneiro, 5-Jan-2017.) $)
    rexeqbidva $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ch ) ) $=
      ( wrex rexbidva rexeqdv bitrd ) ABDEICDEICDFIABCDEHJACDEFGKL $.
  $}

  $( Unrestricted "at most one" implies restricted "at most one".  (Contributed
     by NM, 16-Jun-2017.) $)
  mormo $p |- ( E* x ph -> E* x e. A ph ) $=
    ( wmo cv wcel wa wrmo moan df-rmo sylibr ) ABDBECFZAGBDABCHALBIABCJK $.

  $( Restricted uniqueness in terms of "at most one."  (Contributed by NM,
     23-May-1999.)  (Revised by NM, 16-Jun-2017.) $)
  reu5 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\ E* x e. A ph ) ) $=
    ( cv wcel wa weu wex wmo wreu wrex eu5 df-reu df-rex df-rmo anbi12i 3bitr4i
    wrmo ) BDCEAFZBGSBHZSBIZFABCJABCKZABCRZFSBLABCMUBTUCUAABCNABCOPQ $.

  $( Restricted unique existence implies restricted existence.  (Contributed by
     NM, 19-Aug-1999.) $)
  reurex $p |- ( E! x e. A ph -> E. x e. A ph ) $=
    ( wreu wrex wrmo reu5 simplbi ) ABCDABCEABCFABCGH $.

  $( Restricted existential uniqueness implies restricted "at most one."
     (Contributed by NM, 16-Jun-2017.) $)
  reurmo $p |- ( E! x e. A ph -> E* x e. A ph ) $=
    ( wreu wrex wrmo reu5 simprbi ) ABCDABCEABCFABCGH $.

  $( Restricted "at most one" in term of uniqueness.  (Contributed by NM,
     16-Jun-2017.) $)
  rmo5 $p |- ( E* x e. A ph <-> ( E. x e. A ph -> E! x e. A ph ) ) $=
    ( cv wcel wa wmo wex weu wrmo wrex wreu df-mo df-rmo df-rex imbi12i 3bitr4i
    wi df-reu ) BDCEAFZBGTBHZTBIZRABCJABCKZABCLZRTBMABCNUCUAUDUBABCOABCSPQ $.

  $( Nonexistence implies restricted "at most one".  (Contributed by NM,
     17-Jun-2017.) $)
  nrexrmo $p |- ( -. E. x e. A ph -> E* x e. A ph ) $=
    ( wrex wn wreu wi wrmo pm2.21 rmo5 sylibr ) ABCDZELABCFZGABCHLMIABCJK $.

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z ps $.  $d z ph $.
    cbvralf.1 $e |- F/_ x A $.
    cbvralf.2 $e |- F/_ y A $.
    cbvralf.3 $e |- F/ y ph $.
    cbvralf.4 $e |- F/ x ps $.
    cbvralf.5 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 7-Mar-2004.)  (Revised by Mario Carneiro,
       9-Oct-2016.) $)
    cbvralf $p |- ( A. x e. A ph <-> A. y e. A ps ) $=
      ( vz cv wcel wi wal wral wsb nfv nfcri nfim nfs1v weq eleq1 sbequ12 cbval
      imbi12d nfsb sbequ sbie syl6bb bitri df-ral 3bitr4i ) CLZEMZANZCOZDLZEMZB
      NZDOZACEPBDEPUQKLZEMZACKQZNZKOVAUPVECKUPKRVCVDCCKEFSACKUATCKUBUOVCAVDUNVB
      EUCACKUDUFUEVEUTKDVCVDDDKEGSACKDHUGTUTKRKDUBZVCUSVDBVBUREUCVFVDACDQBAKDCU
      HABCDIJUIUJUFUEUKACEULBDEULUM $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by FL, 27-Apr-2008.)  (Revised by Mario Carneiro,
       9-Oct-2016.)  (Proof rewritten by Jim Kingdon, 10-Jun-2018.) $)
    cbvrexf $p |- ( E. x e. A ph <-> E. y e. A ps ) $=
      ( vz cv wcel wa wex wrex wsb nfv nfcri nfan nfs1v weq eleq1 sbequ12 cbvex
      anbi12d nfsb sbequ sbie syl6bb bitri df-rex 3bitr4i ) CLZEMZANZCOZDLZEMZB
      NZDOZACEPBDEPUQKLZEMZACKQZNZKOVAUPVECKUPKRVCVDCCKEFSACKUATCKUBUOVCAVDUNVB
      EUCACKUDUFUEVEUTKDVCVDDDKEGSACKDHUGTUTKRKDUBZVCUSVDBVBUREUCVFVDACDQBAKDCU
      HABCDIJUIUJUFUEUKACEULBDEULUM $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.  $d z ps $.
    cbvral.1 $e |- F/ y ph $.
    cbvral.2 $e |- F/ x ps $.
    cbvral.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 31-Jul-2003.) $)
    cbvral $p |- ( A. x e. A ph <-> A. y e. A ps ) $=
      ( nfcv cbvralf ) ABCDECEIDEIFGHJ $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 31-Jul-2003.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    cbvrex $p |- ( E. x e. A ph <-> E. y e. A ps ) $=
      ( nfcv cbvrexf ) ABCDECEIDEIFGHJ $.

    $( Change the bound variable of a restricted uniqueness quantifier using
       implicit substitution.  (Contributed by Mario Carneiro, 15-Oct-2016.) $)
    cbvreu $p |- ( E! x e. A ph <-> E! y e. A ps ) $=
      ( vz cv wcel wa weu wreu wsb nfv sb8eu sban eubii df-reu anbi1i nfsb nfan
      clelsb3 weq eleq1 sbequ sbie syl6bb anbi12d cbveu bitri 3bitri 3bitr4i )
      CJEKZALZCMZDJZEKZBLZDMZACENBDENUQUPCIOZIMUOCIOZACIOZLZIMZVAUPCIUPIPQVBVEI
      UOACIRSVFIJZEKZVDLZIMVAVEVIIVCVHVDICEUDUASVIUTIDVHVDDVHDPACIDFUBUCUTIPIDU
      EZVHUSVDBVGUREUFVJVDACDOBAIDCUGABCDGHUHUIUJUKULUMACETBDETUN $.

    $( Change the bound variable of restricted "at most one" using implicit
       substitution.  (Contributed by NM, 16-Jun-2017.) $)
    cbvrmo $p |- ( E* x e. A ph <-> E* y e. A ps ) $=
      ( wrex wreu wi wrmo cbvrex cbvreu imbi12i rmo5 3bitr4i ) ACEIZACEJZKBDEIZ
      BDEJZKACELBDELRTSUAABCDEFGHMABCDEFGHNOACEPBDEPQ $.
  $}

  ${
    $d z x A $.  $d y A $.  $d z y ph $.  $d z x ps $.
    cbvralv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change the bound variable of a restricted universal quantifier using
       implicit substitution.  (Contributed by NM, 28-Jan-1997.) $)
    cbvralv $p |- ( A. x e. A ph <-> A. y e. A ps ) $=
      ( nfv cbvral ) ABCDEADGBCGFH $.

    $( Change the bound variable of a restricted existential quantifier using
       implicit substitution.  (Contributed by NM, 2-Jun-1998.) $)
    cbvrexv $p |- ( E. x e. A ph <-> E. y e. A ps ) $=
      ( nfv cbvrex ) ABCDEADGBCGFH $.

    $( Change the bound variable of a restricted uniqueness quantifier using
       implicit substitution.  (Contributed by NM, 5-Apr-2004.)  (Revised by
       Mario Carneiro, 15-Oct-2016.) $)
    cbvreuv $p |- ( E! x e. A ph <-> E! y e. A ps ) $=
      ( nfv cbvreu ) ABCDEADGBCGFH $.

    $( Change the bound variable of a restricted uniqueness quantifier using
       implicit substitution.  (Contributed by Alexander van der Vekens,
       17-Jun-2017.) $)
    cbvrmov $p |- ( E* x e. A ph <-> E* y e. A ps ) $=
      ( nfv cbvrmo ) ABCDEADGBCGFH $.
  $}

  ${
    $d A y $.  $d ps y $.  $d B x $.  $d ch x $.  $d x ph y $.
    cbvraldva2.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    cbvraldva2.2 $e |- ( ( ph /\ x = y ) -> A = B ) $.
    $( Rule used to change the bound variable in a restricted universal
       quantifier with implicit substitution which also changes the quantifier
       domain.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    cbvraldva2 $p |- ( ph -> ( A. x e. A ps <-> A. y e. B ch ) ) $=
      ( cv wcel wi wal wral weq wa simpr eleq12d imbi12d df-ral cbvaldva
      3bitr4g ) ADJZFKZBLZDMEJZGKZCLZEMBDFNCEGNAUEUHDEADEOZPZUDUGBCUJUCUFFGAUIQ
      IRHSUABDFTCEGTUB $.

    $( Rule used to change the bound variable in a restricted existential
       quantifier with implicit substitution which also changes the quantifier
       domain.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    cbvrexdva2 $p |- ( ph -> ( E. x e. A ps <-> E. y e. B ch ) ) $=
      ( cv wcel wa wex wrex weq simpr eleq12d anbi12d cbvexdva df-rex 3bitr4g )
      ADJZFKZBLZDMEJZGKZCLZEMBDFNCEGNAUDUGDEADEOZLZUCUFBCUIUBUEFGAUHPIQHRSBDFTC
      EGTUA $.
  $}

  ${
    $d ps y $.  $d ch x $.  $d A x y $.  $d x ph y $.
    cbvraldva.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    $( Rule used to change the bound variable in a restricted universal
       quantifier with implicit substitution.  Deduction form.  (Contributed by
       David Moews, 1-May-2017.) $)
    cbvraldva $p |- ( ph -> ( A. x e. A ps <-> A. y e. A ch ) ) $=
      ( weq wa eqidd cbvraldva2 ) ABCDEFFGADEHIFJK $.

    $( Rule used to change the bound variable in a restricted existential
       quantifier with implicit substitution.  Deduction form.  (Contributed by
       David Moews, 1-May-2017.) $)
    cbvrexdva $p |- ( ph -> ( E. x e. A ps <-> E. y e. A ch ) ) $=
      ( weq wa eqidd cbvrexdva2 ) ABCDEFFGADEHIFJK $.
  $}

  ${
    $d x A $.  $d z A $.  $d x y B $.  $d z y B $.  $d w B $.  $d z ph $.
    $d y ps $.  $d x ch $.  $d w ch $.
    cbvral2v.1 $e |- ( x = z -> ( ph <-> ch ) ) $.
    cbvral2v.2 $e |- ( y = w -> ( ch <-> ps ) ) $.
    $( Change bound variables of double restricted universal quantification,
       using implicit substitution.  (Contributed by NM, 10-Aug-2004.) $)
    cbvral2v $p |- ( A. x e. A A. y e. B ph <-> A. z e. A A. w e. B ps ) $=
      ( wral weq ralbidv cbvralv ralbii bitri ) AEILZDHLCEILZFHLBGILZFHLRSDFHDF
      MACEIJNOSTFHCBEGIKOPQ $.
  $}

  ${
    $d A x $.  $d A z $.  $d B w $.  $d B x y $.  $d B z y $.  $d ch w $.
    $d ch x $.  $d ph z $.  $d ps y $.
    cbvrex2v.1 $e |- ( x = z -> ( ph <-> ch ) ) $.
    cbvrex2v.2 $e |- ( y = w -> ( ch <-> ps ) ) $.
    $( Change bound variables of double restricted universal quantification,
       using implicit substitution.  (Contributed by FL, 2-Jul-2012.) $)
    cbvrex2v $p |- ( E. x e. A E. y e. B ph <-> E. z e. A E. w e. B ps ) $=
      ( wrex weq rexbidv cbvrexv rexbii bitri ) AEILZDHLCEILZFHLBGILZFHLRSDFHDF
      MACEIJNOSTFHCBEGIKOPQ $.
  $}

  ${
    $d w ph $.  $d z ps $.  $d x ch $.  $d v ch $.  $d y u th $.  $d x A $.
    $d w A $.  $d x y B $.  $d w y B $.  $d v B $.  $d x y z C $.
    $d w y z C $.  $d v z C $.  $d z y C $.  $d z C $.  $d u C $.
    cbvral3v.1 $e |- ( x = w -> ( ph <-> ch ) ) $.
    cbvral3v.2 $e |- ( y = v -> ( ch <-> th ) ) $.
    cbvral3v.3 $e |- ( z = u -> ( th <-> ps ) ) $.
    $( Change bound variables of triple restricted universal quantification,
       using implicit substitution.  (Contributed by NM, 10-May-2005.) $)
    cbvral3v $p |- ( A. x e. A A. y e. B A. z e. C ph <->
                     A. w e. A A. v e. B A. u e. C ps ) $=
      ( wral weq 2ralbidv cbvralv cbvral2v ralbii bitri ) AGMQFLQZEKQCGMQFLQZHK
      QBJMQILQZHKQUDUEEHKEHRACFGLMNSTUEUFHKCBDFGIJLMOPUAUBUC $.
  $}

  ${
    $d z x A $.  $d y A $.  $d z y ph $.
    $( Change bound variable by using a substitution.  (Contributed by NM,
       20-Nov-2005.)  (Revised by Andrew Salmon, 11-Jul-2011.) $)
    cbvralsv $p |- ( A. x e. A ph <-> A. y e. A [ y / x ] ph ) $=
      ( vz wral wsb nfv nfs1v sbequ12 cbvral nfsb sbequ bitri ) ABDFABEGZEDFABC
      GZCDFAOBEDAEHABEIABEJKOPECDABECACHLPEHAECBMKN $.
  $}

  ${
    $d z x A $.  $d y z ph $.  $d y A $.
    $( Change bound variable by using a substitution.  (Contributed by NM,
       2-Mar-2008.)  (Revised by Andrew Salmon, 11-Jul-2011.) $)
    cbvrexsv $p |- ( E. x e. A ph <-> E. y e. A [ y / x ] ph ) $=
      ( vz wrex wsb nfv nfs1v sbequ12 cbvrex nfsb sbequ bitri ) ABDFABEGZEDFABC
      GZCDFAOBEDAEHABEIABEJKOPECDABECACHLPEHAECBMKN $.
  $}

  ${
    $d x y z $.  $d y z ph $.  $d x z ps $.
    sbralie.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Implicit to explicit substitution that swaps variables in a quantified
       expression.  (Contributed by NM, 5-Sep-2004.) $)
    sbralie $p |- ( [ x / y ] A. x e. y ph <-> A. y e. x ps ) $=
      ( vz cv wral wsb cbvralsv sbbii nfv raleq sbie bitri sbco2 ralbii ) ACDGZ
      HZDCIZACFIZFCGZHZBDUBHZTUAFRHZDCIUCSUEDCACFRJKUEUCDCUCDLUAFRUBMNOUCUAFDIZ
      DUBHUDUAFDUBJUFBDUBUFACDIBACDFAFLPABCDBCLENOQOO $.
  $}

  ${
    rabbiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (inference
       rule).  (Contributed by NM, 22-May-1999.) $)
    rabbiia $p |- { x e. A | ph } = { x e. A | ps } $=
      ( cv wcel wa cab crab pm5.32i abbii df-rab 3eqtr4i ) CFDGZAHZCIOBHZCIACDJ
      BCDJPQCOABEKLACDMBCDMN $.
  $}

  ${
    $d x ph $.
    rabbidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (deduction
       rule).  (Contributed by NM, 28-Nov-2003.) $)
    rabbidva $p |- ( ph -> { x e. A | ps } = { x e. A | ch } ) $=
      ( wb wral crab wceq ralrimiva rabbi sylib ) ABCGZDEHBDEICDEIJANDEFKBCDELM
      $.
  $}

  ${
    $d x ph $.
    rabbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (deduction
       rule).  (Contributed by NM, 10-Feb-1995.) $)
    rabbidv $p |- ( ph -> { x e. A | ps } = { x e. A | ch } ) $=
      ( wb cv wcel adantr rabbidva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d y A $.  $d y B $.
    rabeqf.1 $e |- F/_ x A $.
    rabeqf.2 $e |- F/_ x B $.
    $( Equality theorem for restricted class abstractions, with bound-variable
       hypotheses instead of distinct variable restrictions.  (Contributed by
       NM, 7-Mar-2004.) $)
    rabeqf $p |- ( A = B -> { x e. A | ph } = { x e. B | ph } ) $=
      ( wceq cv wcel wa cab crab nfeq eleq2 anbi1d abbid df-rab 3eqtr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality theorem for restricted class abstractions.  (Contributed by NM,
       15-Oct-2003.) $)
    rabeq $p |- ( A = B -> { x e. A | ph } = { x e. B | ph } ) $=
      ( nfcv rabeqf ) ABCDBCEBDEF $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.
    rabeqbidv.1 $e |- ( ph -> A = B ) $.
    rabeqbidv.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality of restricted class abstractions.  (Contributed by Jeff Madsen,
       1-Dec-2009.) $)
    rabeqbidv $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( crab wceq rabeq syl rabbidv eqtrd ) ABDEIZBDFIZCDFIAEFJOPJGBDEFKLABCDFH
      MN $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.
    rabeqbidva.1 $e |- ( ph -> A = B ) $.
    rabeqbidva.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equality of restricted class abstractions.  (Contributed by Mario
       Carneiro, 26-Jan-2017.) $)
    rabeqbidva $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( crab rabbidva wceq rabeq syl eqtrd ) ABDEICDEIZCDFIZABCDEHJAEFKOPKGCDEF
      LMN $.
  $}

  ${
    rabeqi.1 $e |- A = { x e. B | ph } $.
    $( Inference rule from equality of a class variable and a restricted class
       abstraction.  (Contributed by NM, 16-Feb-2004.) $)
    rabeq2i $p |- ( x e. A <-> ( x e. B /\ ph ) ) $=
      ( cv wcel crab wa eleq2i rabid bitri ) BFZCGMABDHZGMDGAICNMEJABDKL $.
  $}

  ${
    $d x z $.  $d y z $.  $d A z $.  $d ph z $.  $d ps z $.
    cbvrab.1 $e |- F/_ x A $.
    cbvrab.2 $e |- F/_ y A $.
    cbvrab.3 $e |- F/ y ph $.
    cbvrab.4 $e |- F/ x ps $.
    cbvrab.5 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule to change the bound variable in a restricted class abstraction,
       using implicit substitution.  This version has bound-variable hypotheses
       in place of distinct variable conditions.  (Contributed by Andrew
       Salmon, 11-Jul-2011.)  (Revised by Mario Carneiro, 9-Oct-2016.) $)
    cbvrab $p |- { x e. A | ph } = { y e. A | ps } $=
      ( vz cv wcel wa cab crab wsb nfv nfcri nfan nfs1v weq eleq1 sbequ12 cbvab
      anbi12d nfsb sbequ sbie syl6bb eqtri df-rab 3eqtr4i ) CLZEMZANZCOZDLZEMZB
      NZDOZACEPBDEPUQKLZEMZACKQZNZKOVAUPVECKUPKRVCVDCCKEFSACKUATCKUBUOVCAVDUNVB
      EUCACKUDUFUEVEUTKDVCVDDDKEGSACKDHUGTUTKRKDUBZVCUSVDBVBUREUCVFVDACDQBAKDCU
      HABCDIJUIUJUFUEUKACEULBDEULUM $.
  $}

  ${
    $d x y z A $.  $d y ph $.  $d x ps $.
    cbvrabv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule to change the bound variable in a restricted class abstraction,
       using implicit substitution.  (Contributed by NM, 26-May-1999.) $)
    cbvrabv $p |- { x e. A | ph } = { y e. A | ps } $=
      ( nfcv nfv cbvrab ) ABCDECEGDEGADHBCHFI $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        The universal class
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the symbol for the universal class. $)
  $c _V $. $( Letter V (for the universal class) $)

  $( Extend class notation to include the universal class symbol. $)
  cvv $a class _V $.

  ${
    $d z x $.  $d z y $.
    $( Soundness justification theorem for ~ df-v .  (Contributed by Rodolfo
       Medina, 27-Apr-2010.) $)
    vjust $p |- { x | x = x } = { y | y = y } $=
      ( vz weq cab wsb cv wcel equid sbt 2th df-clab 3bitr4i eqriv ) CAADZAEZBB
      DZBEZOACFZQBCFZCGZPHUARHSTOACAIJQBCBIJKOCALQCBLMN $.
  $}

  $( Define the universal class.  Definition 5.20 of [TakeutiZaring] p. 21.
     Also Definition 2.9 of [Quine] p. 19.  (Contributed by NM, 5-Aug-1993.) $)
  df-v $a |- _V = { x | x = x } $.

  $( All setvar variables are sets (see ~ isset ).  Theorem 6.8 of [Quine]
     p. 43.  (Contributed by NM, 5-Aug-1993.) $)
  vex $p |- x e. _V $=
    ( cv cvv wcel weq equid df-v abeq2i mpbir ) ABCDAAEZAFJACAGHI $.

  ${
    $d x A $.
    $( Two ways to say " ` A ` is a set":  A class ` A ` is a member of the
       universal class ` _V ` (see ~ df-v ) if and only if the class ` A `
       exists (i.e. there exists some set ` x ` equal to class ` A ` ).
       Theorem 6.9 of [Quine] p. 43. _Notational convention_:  We will use the
       notational device " ` A e. _V ` " to mean " ` A ` is a set" very
       frequently, for example in uniex .  Note the when ` A ` is not a set, it
       is called a proper class.  In some theorems, such as uniexg , in order
       to shorten certain proofs we use the more general antecedent ` A e. V `
       instead of ` A e. _V ` to mean " ` A ` is a set."

       Note that a constant is implicitly considered distinct from all
       variables.  This is why ` _V ` is not included in the distinct variable
       list, even though ~ df-clel requires that the expression substituted for
       ` B ` not contain ` x ` .  (Also, the Metamath spec does not allow
       constants in the distinct variable list.)  (Contributed by NM,
       5-Aug-1993.) $)
    isset $p |- ( A e. _V <-> E. x x = A ) $=
      ( cvv wcel cv wceq wa wex df-clel vex biantru exbii bitr4i ) BCDAEZBFZNCD
      ZGZAHOAHABCIOQAPOAJKLM $.
  $}

  ${
    $d A y $.  $d x y $.
    issetf.1 $e |- F/_ x A $.
    $( A version of isset that does not require x and A to be distinct.
       (Contributed by Andrew Salmon, 6-Jun-2011.)  (Revised by Mario Carneiro,
       10-Oct-2016.) $)
    issetf $p |- ( A e. _V <-> E. x x = A ) $=
      ( vy cvv wcel cv wceq wex isset nfeq2 nfv eqeq1 cbvex bitri ) BEFDGZBHZDI
      AGZBHZAIDBJQSDAAPBCKSDLPRBMNO $.
  $}

  ${
    $d x A $.
    isseti.1 $e |- A e. _V $.
    $( A way to say " ` A ` is a set" (inference rule).  (Contributed by NM,
       5-Aug-1993.) $)
    isseti $p |- E. x x = A $=
      ( cvv wcel cv wceq wex isset mpbi ) BDEAFBGAHCABIJ $.
  $}

  ${
    $d x A $.
    issetri.1 $e |- E. x x = A $.
    $( A way to say " ` A ` is a set" (inference rule).  (Contributed by NM,
       5-Aug-1993.) $)
    issetri $p |- A e. _V $=
      ( cvv wcel cv wceq wex isset mpbir ) BDEAFBGAHCABIJ $.
  $}

  $( A class equal to a variable is a set.  Note the absence of dv condition,
     contrary to ~ isset and ~ issetri .  (Contributed by BJ, 27-Apr-2019.) $)
  eqvisset $p |- ( x = A -> A e. _V ) $=
    ( cv wceq cvv wcel vex eleq1 mpbii ) ACZBDJEFBEFAGJBEHI $.

  ${
    $d x A $.  $d x B $.
    $( If a class is a member of another class, it is a set.  Theorem 6.12 of
       [Quine] p. 44.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by
       Andrew Salmon, 8-Jun-2011.) $)
    elex $p |- ( A e. B -> A e. _V ) $=
      ( vx cv wceq wcel wa wex cvv exsimpl df-clel isset 3imtr4i ) CDZAEZNBFZGC
      HOCHABFAIFOPCJCABKCALM $.
  $}

  ${
    elisseti.1 $e |- A e. B $.
    $( If a class is a member of another class, it is a set.  (Contributed by
       NM, 11-Jun-1994.) $)
    elexi $p |- A e. _V $=
      ( wcel cvv elex ax-mp ) ABDAEDCABFG $.
  $}

  ${
    $d x A $.
    $( An element of a class exists.  (Contributed by NM, 1-May-1995.) $)
    elisset $p |- ( A e. V -> E. x x = A ) $=
      ( wcel cvv cv wceq wex elex isset sylib ) BCDBEDAFBGAHBCIABJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( If two classes each contain another class, then both contain some set.
       (Contributed by Alan Sare, 24-Oct-2011.) $)
    elex22 $p |- ( ( A e. B /\ A e. C ) -> E. x ( x e. B /\ x e. C ) ) $=
      ( wcel wa cv wceq wi wal eleq1a anim12ii alrimiv elisset adantr exim sylc
      wex ) BCEZBDEZFZAGZBHZUBCEZUBDEZFZIZAJUCARZUFARUAUGASUCUDTUEBCUBKBDUBKLMS
      UHTABCNOUCUFAPQ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( If a class contains another class, then it contains some set.
       (Contributed by Alan Sare, 25-Sep-2011.) $)
    elex2 $p |- ( A e. B -> E. x x e. B ) $=
      ( wcel cv wceq wi wal wex eleq1a alrimiv elisset exim sylc ) BCDZAEZBFZPC
      DZGZAHQAIRAIOSABCPJKABCLQRAMN $.
  $}

  $( A universal quantifier restricted to the universe is unrestricted.
     (Contributed by NM, 26-Mar-2004.) $)
  ralv $p |- ( A. x e. _V ph <-> A. x ph ) $=
    ( cvv wral cv wcel wi wal df-ral vex a1bi albii bitr4i ) ABCDBECFZAGZBHABHA
    BCIAOBNABJKLM $.

  $( An existential quantifier restricted to the universe is unrestricted.
     (Contributed by NM, 26-Mar-2004.) $)
  rexv $p |- ( E. x e. _V ph <-> E. x ph ) $=
    ( cvv wrex cv wcel wa wex df-rex vex biantrur exbii bitr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  $( A uniqueness quantifier restricted to the universe is unrestricted.
     (Contributed by NM, 1-Nov-2010.) $)
  reuv $p |- ( E! x e. _V ph <-> E! x ph ) $=
    ( cvv wreu cv wcel wa weu df-reu vex biantrur eubii bitr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  $( A uniqueness quantifier restricted to the universe is unrestricted.
     (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
  rmov $p |- ( E* x e. _V ph <-> E* x ph ) $=
    ( cvv wrmo cv wcel wa wmo df-rmo vex biantrur mobii bitr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  $( A class abstraction restricted to the universe is unrestricted.
     (Contributed by NM, 27-Dec-2004.)  (Proof shortened by Andrew Salmon,
     8-Jun-2011.) $)
  rabab $p |- { x e. _V | ph } = { x | ph } $=
    ( cvv crab cv wcel wa cab df-rab vex biantrur abbii eqtr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  ${
    $d x y $.  $d y A $.
    $( Commutation of restricted and unrestricted universal quantifiers.
       (Contributed by NM, 26-Mar-2004.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    ralcom4 $p |- ( A. x e. A A. y ph <-> A. y A. x e. A ph ) $=
      ( cvv wral wal ralcom ralv ralbii 3bitr3i ) ACEFZBDFABDFZCEFACGZBDFMCGABC
      DEHLNBDACIJMCIK $.

    $( Commutation of restricted and unrestricted existential quantifiers.
       (Contributed by NM, 12-Apr-2004.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    rexcom4 $p |- ( E. x e. A E. y ph <-> E. y E. x e. A ph ) $=
      ( cvv wrex wex rexcom rexv rexbii 3bitr3i ) ACEFZBDFABDFZCEFACGZBDFMCGABC
      DEHLNBDACIJMCIK $.
  $}

  ${
    $d A x $.  $d x y $.  $d ph x $.
    $( Specialized existential commutation lemma.  (Contributed by Jeff Madsen,
       1-Jun-2011.) $)
    rexcom4a $p |- ( E. x E. y e. A ( ph /\ ps )
                          <-> E. y e. A ( ph /\ E. x ps ) ) $=
      ( wa wrex wex rexcom4 19.42v rexbii bitr3i ) ABFZDEGCHMCHZDEGABCHFZDEGMDC
      EINODEABCJKL $.

    $d B x $.
    rexcom4b.1 $e |- B e. _V $.
    $( Specialized existential commutation lemma.  (Contributed by Jeff Madsen,
       1-Jun-2011.) $)
    rexcom4b $p |- ( E. x E. y e. A ( ph /\ x = B ) <-> E. y e. A ph ) $=
      ( cv wceq wa wrex wex rexcom4a isseti biantru rexbii bitr4i ) ABGEHZICDJB
      KAQBKZIZCDJACDJAQBCDLASCDRABEFMNOP $.
  $}

  ${
    $d x A $.
    $( Closed theorem version of ~ ceqsalg .  (Contributed by NM,
       28-Feb-2013.)  (Revised by Mario Carneiro, 10-Oct-2016.) $)
    ceqsalt $p |- ( ( F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) /\ A e. V )
         -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel w3a wex elisset 3ad2ant3 bi1 imim3i 3ad2ant2
      3ad2ant1 al2imi 19.23t sylibd mpid imim2i com23 alimi 19.21t mpbid impbid
      bi2 ) BCFZCGDHZABIZJZCKZDELZMZUMAJZCKZBURUTUMCNZBUQULVAUPCDEOPURUTUMBJZCK
      ZVABJZUPULUTVCJUQUOUSVBCUNABUMABQRUASULUPVCVDIUQUMBCUBTUCUDURBUSJZCKZBUTJ
      ZUPULVFUQUOVECUOUMBAUNBAJUMABUKUEUFUGSULUPVFVGIUQBUSCUHTUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Restricted quantifier version of ~ ceqsalt .  (Contributed by NM,
       28-Feb-2013.)  (Revised by Mario Carneiro, 10-Oct-2016.) $)
    ceqsralt $p |- ( ( F/ x ps
              /\ A. x ( x = A -> ( ph <-> ps ) ) /\ A e. B )
         -> ( A. x e. B ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel w3a wral df-ral eleq1 pm5.32ri imbi1i impexp
      wa 3bitr3i albii a1i syl5bb 19.21v syl6bb biimt 3ad2ant3 ceqsalt 3bitr2d
      ) BCFZCGZDHZABIJCKZDELZMZUMAJZCENZUOUQCKZJZUSBUPURUOUQJZCKZUTURULELZUQJZC
      KZUPVBUQCEOVEVBIUPVDVACVCUMTZAJUOUMTZAJVDVAVFVGAUMVCUOULDEPQRVCUMASUOUMAS
      UAUBUCUDUOUQCUEUFUOUKUSUTIUNUOUSUGUHABCDEUIUJ $.
  $}

  ${
    $d x A $.
    ceqsalg.1 $e |- F/ x ps $.
    ceqsalg.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  (Contributed by NM,
       29-Oct-2003.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    ceqsalg $p |- ( A e. V -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wcel cv wceq wi wal wex elisset nfa1 biimpd a2i sps exlimd syl5com
      biimprcd alrimi impbid1 ) DEHZCIDJZAKZCLZBUDUECMUGBCDENUGUEBCUFCOFUFUEBKC
      UEABUEABGPQRSTBUFCFUEABGUAUBUC $.
  $}

  ${
    $d x A $.
    ceqsal.1 $e |- F/ x ps $.
    ceqsal.2 $e |- A e. _V $.
    ceqsal.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  (Contributed by NM,
       18-Aug-1993.) $)
    ceqsal $p |- ( A. x ( x = A -> ph ) <-> ps ) $=
      ( cvv wcel cv wceq wi wal wb ceqsalg ax-mp ) DHICJDKALCMBNFABCDHEGOP $.
  $}

  ${
    $d x A $.  $d x ps $.
    ceqsalv.1 $e |- A e. _V $.
    ceqsalv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  (Contributed by NM,
       18-Aug-1993.) $)
    ceqsalv $p |- ( A. x ( x = A -> ph ) <-> ps ) $=
      ( nfv ceqsal ) ABCDBCGEFH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    ceqsralv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Restricted quantifier version of ~ ceqsalv .  (Contributed by NM,
       21-Jun-2013.) $)
    ceqsralv $p |- ( A e. B -> ( A. x e. B ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel wral nfv ax-gen ceqsralt mp3an12 ) BCGCHDIZA
      BJKZCLDEMSAKCENBJBCOTCFPABCDEQR $.
  $}

  ${
    $d x ps $.
    gencl.1 $e |- ( th <-> E. x ( ch /\ A = B ) ) $.
    gencl.2 $e |- ( A = B -> ( ph <-> ps ) ) $.
    gencl.3 $e |- ( ch -> ph ) $.
    $( Implicit substitution for class with embedded variable.  (Contributed by
       NM, 17-May-1996.) $)
    gencl $p |- ( th -> ps ) $=
      ( wceq wa wex syl5ib impcom exlimiv sylbi ) DCFGKZLZEMBHSBERCBCARBJINOPQ
      $.
  $}

  ${
    $d x y $.  $d x R $.  $d x ps $.  $d y C $.  $d y S $.  $d y ch $.
    2gencl.1 $e |- ( C e. S <-> E. x e. R A = C ) $.
    2gencl.2 $e |- ( D e. S <-> E. y e. R B = D ) $.
    2gencl.3 $e |- ( A = C -> ( ph <-> ps ) ) $.
    2gencl.4 $e |- ( B = D -> ( ps <-> ch ) ) $.
    2gencl.5 $e |- ( ( x e. R /\ y e. R ) -> ph ) $.
    $( Implicit substitution for class with embedded variable.  (Contributed by
       NM, 17-May-1996.) $)
    2gencl $p |- ( ( C e. S /\ D e. S ) -> ch ) $=
      ( wcel wi cv wceq wrex wa wex df-rex bitri imbi2d ex gencl com12 impcom )
      IKQZHKQZCULBRULCRESJQZUKEGIUKGITZEJUAUMUNUBEUCMUNEJUDUEUNBCULOUFULUMBUMAR
      UMBRDSJQZULDFHULFHTZDJUAUOUPUBDUCLUPDJUDUEUPABUMNUFUOUMAPUGUHUIUHUJ $.
  $}

  ${
    $d x y z $.  $d y z D $.  $d z F $.  $d x y R $.  $d y z S $.  $d x ps $.
    $d y ch $.  $d z th $.
    3gencl.1 $e |- ( D e. S <-> E. x e. R A = D ) $.
    3gencl.2 $e |- ( F e. S <-> E. y e. R B = F ) $.
    3gencl.3 $e |- ( G e. S <-> E. z e. R C = G ) $.
    3gencl.4 $e |- ( A = D -> ( ph <-> ps ) ) $.
    3gencl.5 $e |- ( B = F -> ( ps <-> ch ) ) $.
    3gencl.6 $e |- ( C = G -> ( ch <-> th ) ) $.
    3gencl.7 $e |- ( ( x e. R /\ y e. R /\ z e. R ) -> ph ) $.
    $( Implicit substitution for class with embedded variable.  (Contributed by
       NM, 17-May-1996.) $)
    3gencl $p |- ( ( D e. S /\ F e. S /\ G e. S ) -> th ) $=
      ( wcel wa wi wceq wrex wex df-rex bitri imbi2d 3expia 2gencl com12 3impia
      cv gencl ) KMUCZNMUCZOMUCZDUTURUSUDZDVACUEVADUEGUPLUCZUTGJOUTJOUFZGLUGVBV
      CUDGUHRVCGLUIUJVCCDVAUAUKVAVBCVBAUEVBBUEVBCUEEFHIKNLMPQHKUFABVBSUKINUFBCV
      BTUKEUPLUCFUPLUCVBAUBULUMUNUQUNUO $.
  $}

  ${
    $d x A $.  $d x ps $.
    cgsexg.1 $e |- ( x = A -> ch ) $.
    cgsexg.2 $e |- ( ch -> ( ph <-> ps ) ) $.
    $( Implicit substitution inference for general classes.  (Contributed by
       NM, 26-Aug-2007.) $)
    cgsexg $p |- ( A e. V ->
                     ( E. x ( ch /\ ph ) <-> ps ) ) $=
      ( wcel wa wex biimpa exlimiv cv wceq elisset eximi syl biimprcd ancld
      eximdv syl5com impbid2 ) EFIZCAJZDKZBUEBDCABHLMUDCDKZBUFUDDNEOZDKUGDEFPUH
      CDGQRBCUEDBCACABHSTUAUBUC $.
  $}

  ${
    $d x y ps $.  $d x y A $.  $d x y B $.
    cgsex2g.1 $e |- ( ( x = A /\ y = B ) -> ch ) $.
    cgsex2g.2 $e |- ( ch -> ( ph <-> ps ) ) $.
    $( Implicit substitution inference for general classes.  (Contributed by
       NM, 26-Jul-1995.) $)
    cgsex2g $p |- ( ( A e. V /\ B e. W ) ->
                     ( E. x E. y ( ch /\ ph ) <-> ps ) ) $=
      ( wcel wa wex biimpa exlimivv cv wceq elisset anim12i eeanv sylibr 2eximi
      syl biimprcd ancld 2eximdv syl5com impbid2 ) FHLZGILZMZCAMZENDNZBUMBDECAB
      KOPULCENDNZBUNULDQFRZEQGRZMZENDNZUOULUPDNZUQENZMUSUJUTUKVADFHSEGISTUPUQDE
      UAUBURCDEJUCUDBCUMDEBCACABKUEUFUGUHUI $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x y z w ps $.
    cgsex4g.1 $e |- ( ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) ) -> ch ) $.
    cgsex4g.2 $e |- ( ch -> ( ph <-> ps ) ) $.
    $( An implicit substitution inference for 4 general classes.  (Contributed
       by NM, 5-Aug-1995.) $)
    cgsex4g $p |- ( ( ( A e. R /\ B e. S ) /\ ( C e. R /\ D e. S ) ) ->
                    ( E. x E. y E. z E. w ( ch /\ ph ) <-> ps ) ) $=
      ( wcel wa wex cv wceq biimpa exlimivv elisset anim12i eeanv sylibr ee4anv
      2eximi syl biimprcd ancld 2eximdv syl5com impbid2 ) HLPZIMPZQZJLPZKMPZQZQ
      ZCAQZGRFRZERDRZBVCBDEVBBFGCABOUAUBUBVACGRFRZERDRZBVDVADSHTZESITZQZFSJTZGS
      KTZQZQZGRFRZERDRZVFVAVIERDRZVLGRFRZQVOUQVPUTVQUQVGDRZVHERZQVPUOVRUPVSDHLU
      CEIMUCUDVGVHDEUEUFUTVJFRZVKGRZQVQURVTUSWAFJLUCGKMUCUDVJVKFGUEUFUDVIVLDEFG
      UGUFVNVEDEVMCFGNUHUHUIBVEVCDEBCVBFGBCACABOUJUKULULUMUN $.
  $}

  ${
    $d x A $.
    ceqsex.1 $e |- F/ x ps $.
    ceqsex.2 $e |- A e. _V $.
    ceqsex.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of an existential quantifier, using implicit substitution.
       (Contributed by NM, 2-Mar-1995.)  (Revised by Mario Carneiro,
       10-Oct-2016.) $)
    ceqsex $p |- ( E. x ( x = A /\ ph ) <-> ps ) $=
      ( cv wceq wa wex biimpa exlimi wal biimprcd alrimi isseti exintr mpisyl
      wi impbii ) CHDIZAJZCKZBUCBCEUBABGLMBUBATZCNUBCKUDBUECEUBABGOPCDFQUBACRSU
      A $.
  $}

  ${
    $d x A $.  $d x ps $.
    ceqsexv.1 $e |- A e. _V $.
    ceqsexv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of an existential quantifier, using implicit substitution.
       (Contributed by NM, 2-Mar-1995.) $)
    ceqsexv $p |- ( E. x ( x = A /\ ph ) <-> ps ) $=
      ( nfv ceqsex ) ABCDBCGEFH $.
  $}

  ${
    $d x y A $.  $d x y B $.
    ceqsex2.1 $e |- F/ x ps $.
    ceqsex2.2 $e |- F/ y ch $.
    ceqsex2.3 $e |- A e. _V $.
    ceqsex2.4 $e |- B e. _V $.
    ceqsex2.5 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex2.6 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Elimination of two existential quantifiers, using implicit
       substitution.  (Contributed by Scott Fenton, 7-Jun-2006.) $)
    ceqsex2 $p |- ( E. x E. y ( x = A /\ y = B /\ ph ) <-> ch ) $=
      ( cv wceq w3a wex wa exbii ceqsex 3anass 19.42v nfan anbi2d exbidv 3bitri
      bitri nfv nfex ) DNFOZENGOZAPZEQZDQUJUKARZEQZRZDQUKBRZEQZCUMUPDUMUJUNRZEQ
      UPULUSEUJUKAUASUJUNEUBUGSUOURDFUQDEUKBDUKDUHHUCUIJUJUNUQEUJABUKLUDUETBCEG
      IKMTUF $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x ps $.  $d y ch $.
    ceqsex2v.1 $e |- A e. _V $.
    ceqsex2v.2 $e |- B e. _V $.
    ceqsex2v.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex2v.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Elimination of two existential quantifiers, using implicit
       substitution.  (Contributed by Scott Fenton, 7-Jun-2006.) $)
    ceqsex2v $p |- ( E. x E. y ( x = A /\ y = B /\ ph ) <-> ch ) $=
      ( nfv ceqsex2 ) ABCDEFGBDLCELHIJKM $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x ps $.  $d y ch $.
    $d z th $.
    ceqsex3v.1 $e |- A e. _V $.
    ceqsex3v.2 $e |- B e. _V $.
    ceqsex3v.3 $e |- C e. _V $.
    ceqsex3v.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex3v.5 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex3v.6 $e |- ( z = C -> ( ch <-> th ) ) $.
    $( Elimination of three existential quantifiers, using implicit
       substitution.  (Contributed by NM, 16-Aug-2011.) $)
    ceqsex3v $p |- ( E. x E. y E. z ( ( x = A /\ y = B /\ z = C ) /\ ph )
                 <-> th ) $=
      ( cv wceq wa wex anass 3anass anbi1i df-3an anbi2i 3bitr4i 2exbii 19.42vv
      w3a bitri exbii 3anbi3d 2exbidv ceqsexv ceqsex2v ) EQHRZFQIRZGQJRZUIZASZG
      TFTZETUPUQURAUIZGTFTZSZETZDVAVDEVAUPVBSZGTFTVDUTVFFGUPUQURSZSZASUPVGASZSU
      TVFUPVGAUAUSVHAUPUQURUBUCVBVIUPUQURAUDUEUFUGUPVBFGUHUJUKVEUQURBUIZGTFTZDV
      CVKEHKUPVBVJFGUPABUQURNULUMUNBCDFGIJLMOPUOUJUJ $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x ps $.  $d y ch $.  $d z th $.  $d w ta $.
    ceqsex4v.1 $e |- A e. _V $.
    ceqsex4v.2 $e |- B e. _V $.
    ceqsex4v.3 $e |- C e. _V $.
    ceqsex4v.4 $e |- D e. _V $.
    ceqsex4v.7 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex4v.8 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex4v.9 $e |- ( z = C -> ( ch <-> th ) ) $.
    ceqsex4v.10 $e |- ( w = D -> ( th <-> ta ) ) $.
    $( Elimination of four existential quantifiers, using implicit
       substitution.  (Contributed by NM, 23-Sep-2011.) $)
    ceqsex4v $p |- ( E. x E. y E. z E. w
          ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) /\ ph ) <-> ta ) $=
      ( wceq w3a wex 19.42vv 3anass df-3an anbi2i bitr4i 2exbii 3bitr4i 3anbi3d
      cv wa 2exbidv ceqsex2v 3bitri ) FUMJUBZGUMKUBZUNZHUMLUBZIUMMUBZUNZAUCZIUD
      HUDZGUDFUDURUSVAVBAUCZIUDHUDZUCZGUDFUDVAVBCUCZIUDHUDZEVEVHFGUTVFUNZIUDHUD
      UTVGUNVEVHUTVFHIUEVDVKHIVDUTVCAUNZUNVKUTVCAUFVFVLUTVAVBAUGUHUIUJURUSVGUGU
      KUJVGVAVBBUCZIUDHUDVJFGJKNOURVFVMHIURABVAVBRULUOUSVMVIHIUSBCVAVBSULUOUPCD
      EHILMPQTUAUPUQ $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.  $d x y z w v u E $.  $d x y z w v u F $.  $d x ps $.
    $d y ch $.  $d z th $.  $d w ta $.  $d v et $.  $d u ze $.
    ceqsex6v.1 $e |- A e. _V $.
    ceqsex6v.2 $e |- B e. _V $.
    ceqsex6v.3 $e |- C e. _V $.
    ceqsex6v.4 $e |- D e. _V $.
    ceqsex6v.5 $e |- E e. _V $.
    ceqsex6v.6 $e |- F e. _V $.
    ceqsex6v.7 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex6v.8 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex6v.9 $e |- ( z = C -> ( ch <-> th ) ) $.
    ceqsex6v.10 $e |- ( w = D -> ( th <-> ta ) ) $.
    ceqsex6v.11 $e |- ( v = E -> ( ta <-> et ) ) $.
    ceqsex6v.12 $e |- ( u = F -> ( et <-> ze ) ) $.
    $( Elimination of six existential quantifiers, using implicit
       substitution.  (Contributed by NM, 21-Sep-2011.) $)
    ceqsex6v $p |- ( E. x E. y E. z E. w E. v E. u
          ( ( x = A /\ y = B /\ z = C ) /\ ( w = D /\ v = E /\ u = F ) /\ ph )
                 <-> ze ) $=
      ( cv wceq w3a wex wa 3anass 3exbii 19.42vvv bitri anbi2d 3exbidv ceqsex3v
      ) HULNUMZIULOUMZJULPUMZUNZKULQUMLULRUMMULSUMUNZAUNZMUOLUOKUOZJUOIUOHUOVGV
      HAUPZMUOLUOKUOZUPZJUOIUOHUOZGVJVMHIJVJVGVKUPZMUOLUOKUOVMVIVOKLMVGVHAUQURV
      GVKKLMUSUTURVNVHDUPZMUOLUOKUOZGVLVHBUPZMUOLUOKUOVHCUPZMUOLUOKUOVQHIJNOPTU
      AUBVDVKVRKLMVDABVHUFVAVBVEVRVSKLMVEBCVHUGVAVBVFVSVPKLMVFCDVHUHVAVBVCDEFGK
      LMQRSUCUDUEUIUJUKVCUTUT $.
  $}

  ${
    $d x y z w v u t s A $.  $d x y z w v u t s B $.  $d x y z w v u t s C $.
    $d x y z w v u t s D $.  $d x y z w v u t s E $.  $d x y z w v u t s F $.
    $d x y z w v u t s G $.  $d x y z w v u t s H $.  $d x ps $.  $d y ch $.
    $d z th $.  $d w ta $.  $d v et $.  $d u ze $.  $d t si $.  $d s rh $.
    ceqsex8v.1 $e |- A e. _V $.
    ceqsex8v.2 $e |- B e. _V $.
    ceqsex8v.3 $e |- C e. _V $.
    ceqsex8v.4 $e |- D e. _V $.
    ceqsex8v.5 $e |- E e. _V $.
    ceqsex8v.6 $e |- F e. _V $.
    ceqsex8v.7 $e |- G e. _V $.
    ceqsex8v.8 $e |- H e. _V $.
    ceqsex8v.9 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex8v.10 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex8v.11 $e |- ( z = C -> ( ch <-> th ) ) $.
    ceqsex8v.12 $e |- ( w = D -> ( th <-> ta ) ) $.
    ceqsex8v.13 $e |- ( v = E -> ( ta <-> et ) ) $.
    ceqsex8v.14 $e |- ( u = F -> ( et <-> ze ) ) $.
    ceqsex8v.15 $e |- ( t = G -> ( ze <-> si ) ) $.
    ceqsex8v.16 $e |- ( s = H -> ( si <-> rh ) ) $.
    $( Elimination of eight existential quantifiers, using implicit
       substitution.  (Contributed by NM, 23-Sep-2011.) $)
    ceqsex8v $p |- ( E. x E. y E. z E. w E. v E. u E. t E. s
              ( ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) )
         /\ ( ( v = E /\ u = F ) /\ ( t = G /\ s = H ) ) /\ ph ) <-> rh ) $=
      ( cv wceq wa w3a wex 19.42vvvv 3anass df-3an anbi2i bitr4i 2exbii 3bitr4i
      3anbi3d 4exbidv ceqsex4v bitri ) JVBQVCZKVBRVCZVDZLVBSVCZMVBTVCZVDZVDZNVB
      UAVCOVBUBVCVDZPVBUCVCUEVBUDVCVDZVDZAVEZUEVFPVFZOVFNVFZMVFLVFZKVFJVFVTWCWE
      WFAVEZUEVFPVFOVFNVFZVEZMVFLVFZKVFJVFZIWKWOJKWJWNLMWDWLVDZUEVFPVFZOVFNVFWD
      WMVDWJWNWDWLOPUENVGWIWRNOWHWQPUEWHWDWGAVDZVDWQWDWGAVHWLWSWDWEWFAVIVJVKVLV
      LVTWCWMVIVMVLVLWPWEWFEVEZUEVFPVFOVFNVFZIWMWEWFBVEZUEVFPVFOVFNVFWEWFCVEZUE
      VFPVFOVFNVFWEWFDVEZUEVFPVFOVFNVFXAJKLMQRSTUFUGUHUIVRWLXBNOPUEVRABWEWFUNVN
      VOVSXBXCNOPUEVSBCWEWFUOVNVOWAXCXDNOPUEWACDWEWFUPVNVOWBXDWTNOPUEWBDEWEWFUQ
      VNVOVPEFGHINOPUEUAUBUCUDUJUKULUMURUSUTVAVPVQVQ $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x th $.  $d y ch $.  $d y A $.
    gencbvex.1 $e |- A e. _V $.
    gencbvex.2 $e |- ( A = y -> ( ph <-> ps ) ) $.
    gencbvex.3 $e |- ( A = y -> ( ch <-> th ) ) $.
    gencbvex.4 $e |- ( th <-> E. x ( ch /\ A = y ) ) $.
    $( Change of bound variable using implicit substitution.  (Contributed by
       NM, 17-May-1996.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    gencbvex $p |- ( E. x ( ch /\ ph ) <-> E. y ( th /\ ps ) ) $=
      ( cv wceq wa wex excom wb anbi12d bicomd exbii eqcoms ceqsexv simpr eqcom
      19.41v biimpi adantl eximi sylbi adantr ancri impbii bitri 3bitr3i ) FLZG
      MZDBNZNZFOZEOUREOZFOCANZEOUQFOUREFPUSVAEUQVAFGHUQVAQGUOGUOMZVAUQVBCDABJIR
      SUAUBTUTUQFUTUPEOZUQNZUQUPUQEUEVDUQVCUQUCUQVCDVCBDCVBNZEOVCKVEUPEVBUPCVBU
      PGUOUDUFUGUHUIUJUKULUMTUN $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x th $.  $d y ch $.  $d y A $.
    gencbvex2.1 $e |- A e. _V $.
    gencbvex2.2 $e |- ( A = y -> ( ph <-> ps ) ) $.
    gencbvex2.3 $e |- ( A = y -> ( ch <-> th ) ) $.
    gencbvex2.4 $e |- ( th -> E. x ( ch /\ A = y ) ) $.
    $( Restatement of ~ gencbvex with weaker hypotheses.  (Contributed by Jeff
       Hankins, 6-Dec-2006.) $)
    gencbvex2 $p |- ( E. x ( ch /\ ph ) <-> E. y ( th /\ ps ) ) $=
      ( cv wceq wa wex biimpac exlimiv impbii gencbvex ) ABCDEFGHIJDCGFLMZNZEOK
      UADETCDJPQRS $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x th $.  $d y ch $.  $d y A $.
    gencbval.1 $e |- A e. _V $.
    gencbval.2 $e |- ( A = y -> ( ph <-> ps ) ) $.
    gencbval.3 $e |- ( A = y -> ( ch <-> th ) ) $.
    gencbval.4 $e |- ( th <-> E. x ( ch /\ A = y ) ) $.
    $( Change of bound variable using implicit substitution.  (Contributed by
       NM, 17-May-1996.)  (Proof rewritten by Jim Kingdon, 20-Jun-2018.) $)
    gencbval $p |- ( A. x ( ch -> ph ) <-> A. y ( th -> ps ) ) $=
      ( cv wceq wi wal alcom wb imbi12d albii wex bicomd eqcoms 19.23v wa eqcom
      ceqsalv biimpi adantl eximi sylbi pm2.04 mpdi ax-1 impbii bitri 3bitr3i )
      FLZGMZDBNZNZFOZEOUTEOZFOCANZEOUSFOUTEFPVAVCEUSVCFGHUSVCQGUQGUQMZVCUSVDCDA
      BJIRUAUBUFSVBUSFVBURETZUSNZUSURUSEUCVFUSVFDVEBDCVDUDZETVEKVGUREVDURCVDURG
      UQUEUGUHUIUJVEDBUKULUSVEUMUNUOSUP $.
  $}

  ${
    $d A x $.  $d x y $.
    sbhypf.1 $e |- F/ x ps $.
    sbhypf.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Introduce an explicit substitution into an implicit substitution
       hypothesis.  See also csbhypf .  (Contributed by Raph Levien,
       10-Apr-2004.) $)
    sbhypf $p |- ( y = A -> ( [ y / x ] ph <-> ps ) ) $=
      ( cv wceq wa wex wsb wb vex eqeq1 ceqsexv nfs1v nfbi sbequ12 bicomd
      sylan9bb exlimi sylbir ) DHZEIZCHZUDIZUFEIZJZCKACDLZBMZUHUECUDDNUFUDEOPUI
      UKCUJBCACDQFRUGUJAUHBUGAUJACDSTGUAUBUC $.
  $}

  ${
    $d y z A $.  $d x z $.  $d y z $.
    $( Closed theorem form of ~ vtoclgf .  (Contributed by NM, 17-Feb-2013.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    vtoclgft $p |- ( ( ( F/_ x A /\ F/ x ps )
                  /\ ( A. x ( x = A -> ( ph <-> ps ) )
                     /\ A. x ph ) /\ A e. V ) -> ps ) $=
      ( vz wcel wnfc wnf wa cv wceq wb wi wal cvv elex w3a wex mpbid elisset id
      3ad2ant3 nfnfc1 nfcvd nfeqd eqeq1 a1i cbvexd 3adant3 bi1 imim2i com23 imp
      ad2antrr alanimi 3ad2ant2 simp1r 19.23t syl mpd syl3an3 ) DEGCDHZBCIZJZCK
      ZDLZABMZNZCOACOJZDPGZBDEQVEVJVKRZVGCSZBVLFKZDLZFSZVMVKVEVPVJFDPUAUCVEVJVP
      VMMZVKVCVQVDVJVCVOVGFCCDUDVCCVNDVCCVNUEVCUBUFVNVFLVOVGMNVCVNVFDUGUHUIUOUJ
      TVLVGBNZCOZVMBNZVJVEVSVKVIAVRCVIAVRVIVGABVHABNVGABUKULUMUNUPUQVLVDVSVTMVC
      VDVJVKURVGBCUSUTTVAVB $.
  $}

  ${
    vtocld.1 $e |- ( ph -> A e. V ) $.
    vtocld.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    vtocld.3 $e |- ( ph -> ps ) $.
    ${
      vtocldf.4 $e |- F/ x ph $.
      vtocldf.5 $e |- ( ph -> F/_ x A ) $.
      vtocldf.6 $e |- ( ph -> F/ x ch ) $.
      $( Implicit substitution of a class for a setvar variable.  (Contributed
         by Mario Carneiro, 15-Oct-2016.) $)
      vtocldf $p |- ( ph -> ch ) $=
        ( wnfc wnf cv wceq wb wi wal alrimi wcel ex vtoclgft syl221anc ) ADEMCD
        NDOEPZBCQZRZDSBDSEFUACKLAUGDJAUEUFHUBTABDJITGBCDEFUCUD $.
    $}

    $d x A $.  $d x ph $.  $d x ch $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       Mario Carneiro, 15-Oct-2016.) $)
    vtocld $p |- ( ph -> ch ) $=
      ( nfv nfcvd nfvd vtocldf ) ABCDEFGHIADJADEKACDLM $.
  $}

  ${
    $d x A $.
    vtoclf.1 $e |- F/ x ps $.
    vtoclf.2 $e |- A e. _V $.
    vtoclf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclf.4 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  This is a
       generalization of ~ chvar .  (Contributed by NM, 30-Aug-1993.) $)
    vtoclf $p |- ps $=
      ( cv wceq wi isseti biimpd eximii 19.36i mpg ) ABCABCECIDJZABKCCDFLQABGMN
      OHP $.
  $}

  ${
    $d x A $.  $d x ps $.
    vtocl.1 $e |- A e. _V $.
    vtocl.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl.3 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 30-Aug-1993.) $)
    vtocl $p |- ps $=
      ( nfv vtoclf ) ABCDBCHEFGI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    vtocl2.1 $e |- A e. _V $.
    vtocl2.2 $e |- B e. _V $.
    vtocl2.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    vtocl2.4 $e |- ph $.
    $( Implicit substitution of classes for setvar variables.  (Contributed by
       NM, 26-Jul-1995.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    vtocl2 $p |- ps $=
      ( wal wi wex cv wceq isseti wa eeanv biimpd 2eximi mp2an 19.36-1 19.36aiv
      sylbir nfv eximii ax-gen mpg ) ADKZBCUIBCABLZDMZUIBLCCNEOZCMZDNFOZDMZUKCM
      ZCEGPDFHPUMUOQULUNQZDMCMUPULUNCDRUQUJCDUQABISTUDUAABDBDUEUBUFUCADJUGUH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z ps $.
    vtocl3.1 $e |- A e. _V $.
    vtocl3.2 $e |- B e. _V $.
    vtocl3.3 $e |- C e. _V $.
    vtocl3.4 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    vtocl3.5 $e |- ph $.
    $( Implicit substitution of classes for setvar variables.  (Contributed by
       NM, 3-Jun-1995.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    vtocl3 $p |- ps $=
      ( wal wi wex cv wceq isseti w3a eeeanv biimpd eximi 2eximi sylbir 19.36-1
      mp3an nfv ax-mp eximii 19.36aiv gen2 mpg ) AENZDNZBCUOBCUNBOZDPZUOBOCABOZ
      EPZDPCPZUQCPCQFRZCPZDQGRZDPZEQHRZEPZUTCFISDGJSEHKSVBVDVFTVAVCVETZEPZDPCPU
      TVAVCVECDEUAVHUSCDVGUREVGABLUBUCUDUEUGUSUPCDABEBEUHUFUDUIUNBDBDUHUFUJUKAD
      EMULUM $.
  $}

  ${
    $d x A $.  $d x ch $.  $d x th $.
    vtoclb.1 $e |- A e. _V $.
    vtoclb.2 $e |- ( x = A -> ( ph <-> ch ) ) $.
    vtoclb.3 $e |- ( x = A -> ( ps <-> th ) ) $.
    vtoclb.4 $e |- ( ph <-> ps ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 23-Dec-1993.) $)
    vtoclb $p |- ( ch <-> th ) $=
      ( wb cv wceq bibi12d vtocl ) ABKCDKEFGELFMACBDHINJO $.
  $}

  ${
    vtoclgf.1 $e |- F/_ x A $.
    vtoclgf.2 $e |- F/ x ps $.
    vtoclgf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclgf.4 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable, with
       bound-variable hypotheses in place of distinct variable restrictions.
       (Contributed by NM, 21-Sep-2003.)  (Proof shortened by Mario Carneiro,
       10-Oct-2016.) $)
    vtoclgf $p |- ( A e. V -> ps ) $=
      ( wcel cvv elex cv wceq wex issetf mpbii exlimi sylbi syl ) DEJDKJZBDELUA
      CMDNZCOBCDFPUBBCGUBABIHQRST $.
  $}

  ${
    $d x A $.  $d x ps $.
    vtoclg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclg.2 $e |- ph $.
    $( Implicit substitution of a class expression for a setvar variable.
       (Contributed by NM, 17-Apr-1995.) $)
    vtoclg $p |- ( A e. V -> ps ) $=
      ( nfcv nfv vtoclgf ) ABCDECDHBCIFGJ $.
  $}

  ${
    $d x A $.  $d x ch $.  $d x th $.
    vtoclbg.1 $e |- ( x = A -> ( ph <-> ch ) ) $.
    vtoclbg.2 $e |- ( x = A -> ( ps <-> th ) ) $.
    vtoclbg.3 $e |- ( ph <-> ps ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 29-Apr-1994.) $)
    vtoclbg $p |- ( A e. V -> ( ch <-> th ) ) $=
      ( wb cv wceq bibi12d vtoclg ) ABKCDKEFGELFMACBDHINJO $.
  $}

  ${
    vtocl2gf.1 $e |- F/_ x A $.
    vtocl2gf.2 $e |- F/_ y A $.
    vtocl2gf.3 $e |- F/_ y B $.
    vtocl2gf.4 $e |- F/ x ps $.
    vtocl2gf.5 $e |- F/ y ch $.
    vtocl2gf.6 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2gf.7 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2gf.8 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 25-Apr-1995.) $)
    vtocl2gf $p |- ( ( A e. V /\ B e. W ) -> ch ) $=
      ( wcel cvv wi elex nfel1 nfim cv wceq imbi2d vtoclgf mpan9 ) FHRFSRZGIRCF
      HUAUIBTUICTEGILUICEEFSKUBNUCEUDGUEBCUIPUFABDFSJMOQUGUGUH $.
  $}

  ${
    $d w A $.  $d w B $.  $d w C $.  $d w y $.  $d w z $.
    vtocl3gf.a $e |- F/_ x A $.
    vtocl3gf.b $e |- F/_ y A $.
    vtocl3gf.c $e |- F/_ z A $.
    vtocl3gf.d $e |- F/_ y B $.
    vtocl3gf.e $e |- F/_ z B $.
    vtocl3gf.f $e |- F/_ z C $.
    vtocl3gf.1 $e |- F/ x ps $.
    vtocl3gf.2 $e |- F/ y ch $.
    vtocl3gf.3 $e |- F/ z th $.
    vtocl3gf.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl3gf.5 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl3gf.6 $e |- ( z = C -> ( ch <-> th ) ) $.
    vtocl3gf.7 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 10-Aug-2013.)  (Revised by Mario Carneiro, 10-Oct-2016.) $)
    vtocl3gf $p |- ( ( A e. V /\ B e. W /\ C e. X ) -> th ) $=
      ( wcel cvv wa elex wi nfel1 nfim wceq imbi2d vtoclgf vtocl2gf mpan9 3impb
      cv ) HKUGZILUGZJMUGZDVAHUHUGZVBVCUIDHKUJVDBUKVDCUKVDDUKFGIJLMQRSVDCFFHUHO
      ULUAUMVDDGGHUHPULUBUMFUTIUNBCVDUDUOGUTJUNCDVDUEUOABEHUHNTUCUFUPUQURUS $.
  $}

  ${
    $d w x A $.  $d y A $.  $d w y B $.  $d x ps $.  $d y ch $.
    vtocl2g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2g.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2g.3 $e |- ph $.
    $( Implicit substitution of 2 classes for 2 setvar variables.  (Contributed
       by NM, 25-Apr-1995.) $)
    vtocl2g $p |- ( ( A e. V /\ B e. W ) -> ch ) $=
      ( nfcv nfv vtocl2gf ) ABCDEFGHIDFMEFMEGMBDNCENJKLO $.
  $}

  ${
    $d y A $.  $d x B z $.
    vtoclgaf.1 $e |- F/_ x A $.
    vtoclgaf.2 $e |- F/ x ps $.
    vtoclgaf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclgaf.4 $e |- ( x e. B -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 17-Feb-2006.)  (Revised by Mario Carneiro, 10-Oct-2016.) $)
    vtoclgaf $p |- ( A e. B -> ps ) $=
      ( wcel cv wi nfel1 nfim wceq eleq1 imbi12d vtoclgf pm2.43i ) DEJZBCKZEJZA
      LTBLCDEFTBCCDEFMGNUADOUBTABUADEPHQIRS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x ps $.
    vtoclga.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclga.2 $e |- ( x e. B -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 20-Aug-1995.) $)
    vtoclga $p |- ( A e. B -> ps ) $=
      ( nfcv nfv vtoclgaf ) ABCDECDHBCIFGJ $.
  $}

  ${
    $d x y C $.  $d x y D $.
    vtocl2gaf.a $e |- F/_ x A $.
    vtocl2gaf.b $e |- F/_ y A $.
    vtocl2gaf.c $e |- F/_ y B $.
    vtocl2gaf.1 $e |- F/ x ps $.
    vtocl2gaf.2 $e |- F/ y ch $.
    vtocl2gaf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2gaf.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2gaf.5 $e |- ( ( x e. C /\ y e. D ) -> ph ) $.
    $( Implicit substitution of 2 classes for 2 setvar variables.  (Contributed
       by NM, 10-Aug-2013.) $)
    vtocl2gaf $p |- ( ( A e. C /\ B e. D ) -> ch ) $=
      ( wcel wa wi cv nfel1 nfan nfim wceq eleq1 anbi1d imbi12d anbi2d vtocl2gf
      nfv pm2.43i ) FHRZGIRZSZCDUAZHRZEUAZIRZSZATUMUSSZBTUOCTDEFGHIJKLVABDUMUSD
      DFHJUBUSDUKUCMUDUOCEUMUNEEFHKUBEGILUBUCNUDUPFUEZUTVAABVBUQUMUSUPFHUFUGOUH
      URGUEZVAUOBCVCUSUNUMURGIUFUIPUHQUJUL $.
  $}

  ${
    $d w x y A $.  $d w y B $.  $d w x y C $.  $d w x y D $.  $d x ps $.
    $d y ch $.
    vtocl2ga.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2ga.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2ga.3 $e |- ( ( x e. C /\ y e. D ) -> ph ) $.
    $( Implicit substitution of 2 classes for 2 setvar variables.  (Contributed
       by NM, 20-Aug-1995.) $)
    vtocl2ga $p |- ( ( A e. C /\ B e. D ) -> ch ) $=
      ( nfcv nfv vtocl2gaf ) ABCDEFGHIDFMEFMEGMBDNCENJKLO $.
  $}

  ${
    $d w A $.  $d w B $.  $d w C $.  $d w x y z R $.  $d w x y z S $.
    $d w x y z T $.
    vtocl3gaf.a $e |- F/_ x A $.
    vtocl3gaf.b $e |- F/_ y A $.
    vtocl3gaf.c $e |- F/_ z A $.
    vtocl3gaf.d $e |- F/_ y B $.
    vtocl3gaf.e $e |- F/_ z B $.
    vtocl3gaf.f $e |- F/_ z C $.
    vtocl3gaf.1 $e |- F/ x ps $.
    vtocl3gaf.2 $e |- F/ y ch $.
    vtocl3gaf.3 $e |- F/ z th $.
    vtocl3gaf.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl3gaf.5 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl3gaf.6 $e |- ( z = C -> ( ch <-> th ) ) $.
    vtocl3gaf.7 $e |- ( ( x e. R /\ y e. S /\ z e. T ) -> ph ) $.
    $( Implicit substitution of 3 classes for 3 setvar variables.  (Contributed
       by NM, 10-Aug-2013.)  (Revised by Mario Carneiro, 11-Oct-2016.) $)
    vtocl3gaf $p |- ( ( A e. R /\ B e. S /\ C e. T ) -> th ) $=
      ( wcel w3a cv nfel1 nf3an nfim wceq eleq1 3anbi1d imbi12d 3anbi2d 3anbi3d
      wi nfv vtocl3gf pm2.43i ) HKUGZILUGZJMUGZUHZDEUIZKUGZFUIZLUGZGUIZMUGZUHZA
      USVCVJVLUHZBUSVCVDVLUHZCUSVFDUSEFGHIJKLMNOPQRSVNBEVCVJVLEEHKNUJVJEUTVLEUT
      UKTULVOCFVCVDVLFFHKOUJFILQUJVLFUTUKUAULVFDGVCVDVEGGHKPUJGILRUJGJMSUJUKUBU
      LVGHUMZVMVNABVPVHVCVJVLVGHKUNUOUCUPVIIUMZVNVOBCVQVJVDVCVLVIILUNUQUDUPVKJU
      MZVOVFCDVRVLVEVCVDVKJMUNURUEUPUFVAVB $.
  $}

  ${
    $d w x y z A $.  $d w y z B $.  $d w z C $.  $d w x y z D $.
    $d w x y z R $.  $d w x y z S $.  $d x ps $.  $d y ch $.  $d z th $.
    vtocl3ga.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl3ga.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl3ga.3 $e |- ( z = C -> ( ch <-> th ) ) $.
    vtocl3ga.4 $e |- ( ( x e. D /\ y e. R /\ z e. S ) -> ph ) $.
    $( Implicit substitution of 3 classes for 3 setvar variables.  (Contributed
       by NM, 20-Aug-1995.) $)
    vtocl3ga $p |- ( ( A e. D /\ B e. R /\ C e. S ) -> th ) $=
      ( nfcv nfv vtocl3gaf ) ABCDEFGHIJKLMEHRFHRGHRFIRGIRGJRBESCFSDGSNOPQT $.
  $}

  ${
    $d x A $.  $d x ph $.
    vtocleg.1 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 10-Jan-2004.) $)
    vtocleg $p |- ( A e. V -> ph ) $=
      ( wcel cv wceq wex elisset exlimiv syl ) CDFBGCHZBIABCDJMABEKL $.
  $}

  ${
    $d x A $.
    $( Implicit substitution of a class for a setvar variable.  (Closed theorem
       version of ~ vtoclef .)  (Contributed by NM, 7-Nov-2005.)  (Revised by
       Mario Carneiro, 11-Oct-2016.) $)
    vtoclegft $p |- ( ( A e. B /\ F/ x ph /\
                   A. x ( x = A -> ph ) ) -> ph ) $=
      ( wcel wnf cv wceq wi wal w3a wex elisset mpan9 3adant2 wb 19.9t 3ad2ant2
      exim mpbid ) CDEZABFZBGCHZAIBJZKABLZAUAUDUEUBUAUCBLUDUEBCDMUCABSNOUBUAUEA
      PUDABQRT $.
  $}

  ${
    $d x A $.
    vtoclef.1 $e |- F/ x ph $.
    vtoclef.2 $e |- A e. _V $.
    vtoclef.3 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 18-Aug-1993.) $)
    vtoclef $p |- ph $=
      ( cv wceq wex isseti exlimi ax-mp ) BGCHZBIABCEJMABDFKL $.
  $}

  ${
    $d x A $.  $d x ph $.
    vtocle.1 $e |- A e. _V $.
    vtocle.2 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 9-Sep-1993.) $)
    vtocle $p |- ph $=
      ( cvv wcel vtocleg ax-mp ) CFGADABCFEHI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    vtoclri.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclri.2 $e |- A. x e. B ph $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 21-Nov-1994.) $)
    vtoclri $p |- ( A e. B -> ps ) $=
      ( rspec vtoclga ) ABCDEFACEGHI $.
  $}

  ${
    spcimgft.1 $e |- F/ x ps $.
    spcimgft.2 $e |- F/_ x A $.
    $( A closed version of ~ spcimgf .  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    spcimgft $p |- ( A. x ( x = A -> ( ph -> ps ) ) -> ( A e. B ->
                      ( A. x ph -> ps ) ) ) $=
      ( wcel cvv cv wceq wi wal elex wex issetf exim syl5bi 19.36-1 syl6 syl5 )
      DEHDIHZCJDKZABLZLCMZACMBLZDENUEUBUDCOZUFUBUCCOUEUGCDGPUCUDCQRABCFSTUA $.

    $( A closed version of ~ spcgf .  (Contributed by Andrew Salmon,
       6-Jun-2011.)  (Revised by Mario Carneiro, 4-Jan-2017.) $)
    spcgft $p |- ( A. x ( x = A -> ( ph <-> ps ) ) -> ( A e. B ->
                      ( A. x ph -> ps ) ) ) $=
      ( cv wceq wb wi wal wcel bi1 imim2i alimi spcimgft syl ) CHDIZABJZKZCLSAB
      KZKZCLDEMACLBKKUAUCCTUBSABNOPABCDEFGQR $.

    $( A closed version of ~ spcimegf .  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    spcimegft $p |- ( A. x ( x = A -> ( ps -> ph ) ) -> ( A e. B ->
                      ( ps -> E. x ph ) ) ) $=
      ( wcel cvv cv wceq wi wal wex elex issetf exim syl5bi 19.37-1 syl6 syl5 )
      DEHDIHZCJDKZBALZLCMZBACNLZDEOUEUBUDCNZUFUBUCCNUEUGCDGPUCUDCQRBACFSTUA $.

    $( A closed version of ~ spcegf .  (Contributed by Jim Kingdon,
       22-Jun-2018.) $)
    spcegft $p |- ( A. x ( x = A -> ( ph <-> ps ) ) -> ( A e. B ->
                      ( ps -> E. x ph ) ) ) $=
      ( cv wceq wb wi wal wcel wex bi2 imim2i alimi spcimegft syl ) CHDIZABJZKZ
      CLTBAKZKZCLDEMBACNKKUBUDCUAUCTABOPQABCDEFGRS $.
  $}

  ${
    spcimgf.1 $e |- F/_ x A $.
    spcimgf.2 $e |- F/ x ps $.
    ${
      spcimgf.3 $e |- ( x = A -> ( ph -> ps ) ) $.
      $( Rule of specialization, using implicit substitution.  Compare Theorem
         7.3 of [Quine] p. 44.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
      spcimgf $p |- ( A e. V -> ( A. x ph -> ps ) ) $=
        ( cv wceq wi wcel wal spcimgft mpg ) CIDJABKKDELACMBKKCABCDEGFNHO $.
    $}

    spcimegf.3 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( Existential specialization, using implicit substitution.  (Contributed
       by Mario Carneiro, 4-Jan-2017.) $)
    spcimegf $p |- ( A e. V -> ( ps -> E. x ph ) ) $=
      ( cv wceq wi wcel wex spcimegft mpg ) CIDJBAKKDELBACMKKCABCDEGFNHO $.
  $}

  ${
    $d y A z $.  $d x z $.
    spcgf.1 $e |- F/_ x A $.
    spcgf.2 $e |- F/ x ps $.
    spcgf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Rule of specialization, using implicit substitution.  Compare Theorem
       7.3 of [Quine] p. 44.  (Contributed by NM, 2-Feb-1997.)  (Revised by
       Andrew Salmon, 12-Aug-2011.) $)
    spcgf $p |- ( A e. V -> ( A. x ph -> ps ) ) $=
      ( cv wceq wb wi wcel wal spcgft mpg ) CIDJABKLDEMACNBLLCABCDEGFOHP $.

    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 2-Feb-1997.) $)
    spcegf $p |- ( A e. V -> ( ps -> E. x ph ) ) $=
      ( cv wceq wb wi wcel wex spcegft mpg ) CIDJABKLDEMBACNLLCABCDEGFOHP $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x ch $.
    spcimdv.1 $e |- ( ph -> A e. B ) $.
    ${
      spcimdv.2 $e |- ( ( ph /\ x = A ) -> ( ps -> ch ) ) $.
      $( Restricted specialization, using implicit substitution.  (Contributed
         by Mario Carneiro, 4-Jan-2017.) $)
      spcimdv $p |- ( ph -> ( A. x ps -> ch ) ) $=
        ( cv wceq wi wal wcel ex alrimiv nfv nfcv spcimgft sylc ) ADIEJZBCKZKZD
        LEFMBDLCKAUBDATUAHNOGBCDEFCDPDEQRS $.
    $}

    ${
      spcdv.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
      $( Rule of specialization, using implicit substitution.  Analogous to
         ~ rspcdv .  (Contributed by David Moews, 1-May-2017.) $)
      spcdv $p |- ( ph -> ( A. x ps -> ch ) ) $=
        ( cv wceq wa biimpd spcimdv ) ABCDEFGADIEJKBCHLM $.
    $}

    spcimedv.2 $e |- ( ( ph /\ x = A ) -> ( ch -> ps ) ) $.
    $( Restricted existential specialization, using implicit substitution.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    spcimedv $p |- ( ph -> ( ch -> E. x ps ) ) $=
      ( cv wceq wi wal wcel wex ex alrimiv nfv nfcv spcimegft sylc ) ADIEJZCBKZ
      KZDLEFMCBDNKAUCDAUAUBHOPGBCDEFCDQDERST $.
  $}

  ${
    $d x ps $.  $d x y A $.
    spcgv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Rule of specialization, using implicit substitution.  Compare Theorem
       7.3 of [Quine] p. 44.  (Contributed by NM, 22-Jun-1994.) $)
    spcgv $p |- ( A e. V -> ( A. x ph -> ps ) ) $=
      ( nfcv nfv spcgf ) ABCDECDGBCHFI $.

    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 14-Aug-1994.) $)
    spcegv $p |- ( A e. V -> ( ps -> E. x ph ) ) $=
      ( nfcv nfv spcegf ) ABCDECDGBCHFI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    spc2egv.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Existential specialization with 2 quantifiers, using implicit
       substitution.  (Contributed by NM, 3-Aug-1995.) $)
    spc2egv $p |- ( ( A e. V /\ B e. W ) -> ( ps -> E. x E. y ph ) ) $=
      ( wcel wa cv wceq wex elisset anim12i eeanv sylibr biimprcd 2eximdv
      syl5com ) EGJZFHJZKZCLEMZDLFMZKZDNCNZBADNCNUDUECNZUFDNZKUHUBUIUCUJCEGODFH
      OPUEUFCDQRBUGACDUGABISTUA $.

    $( Specialization with 2 quantifiers, using implicit substitution.
       (Contributed by NM, 27-Apr-2004.) $)
    spc2gv $p |- ( ( A e. V /\ B e. W ) -> ( A. x A. y ph -> ps ) ) $=
      ( wcel wa cv wceq wex wal elisset anim12i wi exim 19.9v eeanv sylibr 3syl
      biimpcd 2alimi alimi bitri syl6ib syl5com ) EGJZFHJZKZCLEMZDLFMZKZDNZCNZA
      DOCOZBULUMCNZUNDNZKUQUJUSUKUTCEGPDFHPQUMUNCDUAUBURUQBDNZCNZBURUOBRZDOZCOU
      PVARZCOUQVBRAVCCDUOABIUDUEVDVECUOBDSUFUPVACSUCVBVABVACTBDTUGUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z ps $.
    spc3egv.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    $( Existential specialization with 3 quantifiers, using implicit
       substitution.  (Contributed by NM, 12-May-2008.) $)
    spc3egv $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
               ( ps -> E. x E. y E. z ph ) ) $=
      ( wcel w3a cv wceq wex elisset 3anim123i eeeanv biimprcd 2eximdv syl5com
      sylibr eximdv ) FIMZGJMZHKMZNZCOFPZDOGPZEOHPZNZEQZDQCQZBAEQZDQCQUIUJCQZUK
      DQZULEQZNUOUFUQUGURUHUSCFIRDGJREHKRSUJUKULCDETUDBUNUPCDBUMAEUMABLUAUEUBUC
      $.

    $( Specialization with 3 quantifiers, using implicit substitution.
       (Contributed by NM, 12-May-2008.) $)
    spc3gv $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
               ( A. x A. y A. z ph -> ps ) ) $=
      ( wcel w3a cv wceq wex wal elisset wi 3anim123i eeeanv sylibr 2alimi exim
      biimpcd alimi syl 3syl 19.9v 3bitri syl6ib syl5com ) FIMZGJMZHKMZNZCOFPZD
      OGPZEOHPZNZEQZDQZCQZAERDRZCRZBUQURCQZUSDQZUTEQZNVDUNVGUOVHUPVICFISDGJSEHK
      SUAURUSUTCDEUBUCVFVDBEQZDQZCQZBVFVBVJTZDRZCRZVCVKTZCRVDVLTVFVABTZERZDRZCR
      VOVEVSCAVQDEVAABLUFUDUGVRVMCDVABEUEUDUHVNVPCVBVJDUEUGVCVKCUEUIVLVKVJBVKCU
      JVJDUJBEUJUKULUM $.
  $}

  ${
    $d x A $.  $d x ps $.
    spcv.1 $e |- A e. _V $.
    spcv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Rule of specialization, using implicit substitution.  (Contributed by
       NM, 22-Jun-1994.) $)
    spcv $p |- ( A. x ph -> ps ) $=
      ( cvv wcel wal wi spcgv ax-mp ) DGHACIBJEABCDGFKL $.

    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 31-Dec-1993.)  (Proof shortened by Eric Schmidt, 22-Dec-2006.) $)
    spcev $p |- ( ps -> E. x ph ) $=
      ( cvv wcel wex wi spcegv ax-mp ) DGHBACIJEABCDGFKL $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    spc2ev.1 $e |- A e. _V $.
    spc2ev.2 $e |- B e. _V $.
    spc2ev.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 3-Aug-1995.) $)
    spc2ev $p |- ( ps -> E. x E. y ph ) $=
      ( cvv wcel wex wi spc2egv mp2an ) EJKFJKBADLCLMGHABCDEFJJINO $.
  $}

  ${
    $d x A $.  $d x B $.
    rspct.1 $e |- F/ x ps $.
    $( A closed version of ~ rspc .  (Contributed by Andrew Salmon,
       6-Jun-2011.) $)
    rspct $p |- ( A. x ( x = A -> ( ph <-> ps ) ) -> ( A e. B ->
                   ( A. x e. B ph -> ps ) ) ) $=
      ( cv wceq wb wi wal wcel wral df-ral wa eleq1 adantr simpr imbi12d ex a2i
      alimi nfv nfim nfcv spcgft syl syl7bi com34 pm2.43d ) CGZDHZABIZJZCKZDELZ
      ACEMZBJUOUPUQUPBUQUKELZAJZCKZUOUPUPBJZACENUOULUSVAIZJZCKUPUTVAJJUNVCCULUM
      VBULUMVBULUMOURUPABULURUPIUMUKDEPQULUMRSTUAUBUSVACDEUPBCUPCUCFUDCDUEUFUGU
      HUIUJ $.
  $}

  ${
    $d x y A $.  $d x B $.
    rspc.1 $e |- F/ x ps $.
    rspc.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 19-Apr-2005.)  (Revised by Mario Carneiro, 11-Oct-2016.) $)
    rspc $p |- ( A e. B -> ( A. x e. B ph -> ps ) ) $=
      ( wral cv wcel wi wal df-ral nfcv nfv nfim wceq eleq1 imbi12d spcgf
      pm2.43a syl5bi ) ACEHCIZEJZAKZCLZDEJZBACEMUFUGBUEUGBKCDECDNUGBCUGCOFPUCDQ
      UDUGABUCDERGSTUAUB $.

    $( Restricted existential specialization, using implicit substitution.
       (Contributed by NM, 26-May-1998.)  (Revised by Mario Carneiro,
       11-Oct-2016.) $)
    rspce $p |- ( ( A e. B /\ ps ) -> E. x e. B ph ) $=
      ( wcel wa cv wex wrex nfcv nfv nfan wceq eleq1 anbi12d spcegf anabsi5
      df-rex sylibr ) DEHZBIZCJZEHZAIZCKZACELUCBUHUGUDCDECDMUCBCUCCNFOUEDPUFUCA
      BUEDEQGRSTACEUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    rspcv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 26-May-1998.) $)
    rspcv $p |- ( A e. B -> ( A. x e. B ph -> ps ) ) $=
      ( nfv rspc ) ABCDEBCGFH $.

    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 2-Feb-2006.) $)
    rspccv $p |- ( A. x e. B ph -> ( A e. B -> ps ) ) $=
      ( wcel wral rspcv com12 ) DEGACEHBABCDEFIJ $.

    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 13-Sep-2005.) $)
    rspcva $p |- ( ( A e. B /\ A. x e. B ph ) -> ps ) $=
      ( wcel wral rspcv imp ) DEGACEHBABCDEFIJ $.

    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 26-Jul-2006.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    rspccva $p |- ( ( A. x e. B ph /\ A e. B ) -> ps ) $=
      ( wcel wral rspcv impcom ) DEGACEHBABCDEFIJ $.

    $( Restricted existential specialization, using implicit substitution.
       (Contributed by NM, 26-May-1998.) $)
    rspcev $p |- ( ( A e. B /\ ps ) -> E. x e. B ph ) $=
      ( nfv rspce ) ABCDEBCGFH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.  $d x ch $.
    rspcimdv.1 $e |- ( ph -> A e. B ) $.
    ${
      rspcimdv.2 $e |- ( ( ph /\ x = A ) -> ( ps -> ch ) ) $.
      $( Restricted specialization, using implicit substitution.  (Contributed
         by Mario Carneiro, 4-Jan-2017.) $)
      rspcimdv $p |- ( ph -> ( A. x e. B ps -> ch ) ) $=
        ( wral cv wcel wi wal df-ral wceq wa simpr eleq1d biimprd imim12d mpid
        spcimdv syl5bi ) BDFIDJZFKZBLZDMZACBDFNAUGEFKZCGAUFUHCLDEFGAUDEOZPZUHUE
        BCUJUEUHUJUDEFAUIQRSHTUBUAUC $.
    $}

    rspcimedv.2 $e |- ( ( ph /\ x = A ) -> ( ch -> ps ) ) $.
    $( Restricted existential specialization, using implicit substitution.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    rspcimedv $p |- ( ph -> ( ch -> E. x e. B ps ) ) $=
      ( cv wcel wa wex wrex wceq simpr eleq1d biimprd anim12d spcimedv mpand
      df-rex syl6ibr ) ACDIZFJZBKZDLZBDFMAEFJZCUFGAUEUGCKDEFGAUCENZKZUGUDCBUIUD
      UGUIUCEFAUHOPQHRSTBDFUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.  $d x ch $.
    rspcdv.1 $e |- ( ph -> A e. B ) $.
    rspcdv.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 17-Feb-2007.)  (Revised by Mario Carneiro, 4-Jan-2017.) $)
    rspcdv $p |- ( ph -> ( A. x e. B ps -> ch ) ) $=
      ( cv wceq wa biimpd rspcimdv ) ABCDEFGADIEJKBCHLM $.

    $( Restricted existential specialization, using implicit substitution.
       (Contributed by FL, 17-Apr-2007.)  (Revised by Mario Carneiro,
       4-Jan-2017.) $)
    rspcedv $p |- ( ph -> ( ch -> E. x e. B ps ) ) $=
      ( cv wceq wa biimprd rspcimedv ) ABCDEFGADIEJKBCHLM $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.  $d x y D $.
    rspc2.1 $e |- F/ x ch $.
    rspc2.2 $e |- F/ y ps $.
    rspc2.3 $e |- ( x = A -> ( ph <-> ch ) ) $.
    rspc2.4 $e |- ( y = B -> ( ch <-> ps ) ) $.
    $( 2-variable restricted specialization, using implicit substitution.
       (Contributed by NM, 9-Nov-2012.) $)
    rspc2 $p |- ( ( A e. C /\ B e. D ) -> ( A. x e. C A. y e. D ph ->
                  ps ) ) $=
      ( wcel wral nfcv nfralxy cv wceq rspc ralbidv sylan9 ) FHNAEIOZDHOCEIOZGI
      NBUCUDDFHCDEIDIPJQDRFSACEILUATCBEGIKMTUB $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.  $d x y D $.  $d x ch $.  $d y ps $.
    rspc2v.1 $e |- ( x = A -> ( ph <-> ch ) ) $.
    rspc2v.2 $e |- ( y = B -> ( ch <-> ps ) ) $.
    $( 2-variable restricted specialization, using implicit substitution.
       (Contributed by NM, 13-Sep-1999.) $)
    rspc2v $p |- ( ( A e. C /\ B e. D ) -> ( A. x e. C A. y e. D ph ->
                  ps ) ) $=
      ( nfv rspc2 ) ABCDEFGHICDLBELJKM $.

    $( 2-variable restricted specialization, using implicit substitution.
       (Contributed by NM, 18-Jun-2014.) $)
    rspc2va $p |- ( ( ( A e. C /\ B e. D ) /\ A. x e. C A. y e. D ph ) ->
                  ps ) $=
      ( wcel wa wral rspc2v imp ) FHLGILMAEINDHNBABCDEFGHIJKOP $.

    $( 2-variable restricted existential specialization, using implicit
       substitution.  (Contributed by NM, 16-Oct-1999.) $)
    rspc2ev $p |- ( ( A e. C /\ B e. D /\ ps ) -> E. x e. C E. y e. D ph ) $=
      ( wcel w3a wrex wa rspcev anim2i 3impb cv wceq rexbidv syl ) FHLZGILZBMUC
      CEINZOZAEINZDHNUCUDBUFUDBOUEUCCBEGIKPQRUGUEDFHDSFTACEIJUAPUB $.
  $}

  ${
    $d z ps $.  $d x ch $.  $d y th $.  $d x y z A $.  $d y z B $.  $d z C $.
    $d x R $.  $d x y S $.  $d x y z T $.
    rspc3v.1 $e |- ( x = A -> ( ph <-> ch ) ) $.
    rspc3v.2 $e |- ( y = B -> ( ch <-> th ) ) $.
    rspc3v.3 $e |- ( z = C -> ( th <-> ps ) ) $.
    $( 3-variable restricted specialization, using implicit substitution.
       (Contributed by NM, 10-May-2005.) $)
    rspc3v $p |- ( ( A e. R /\ B e. S /\ C e. T ) ->
                  ( A. x e. R A. y e. S A. z e. T ph -> ps ) ) $=
      ( wcel wral cv wceq wi wa ralbidv rspc2v rspcv sylan9 3impa ) HKQZILQZJMQ
      ZAGMRZFLREKRZBUAUHUIUBULDGMRZUJBUKUMCGMREFHIKLESHTACGMNUCFSITCDGMOUCUDDBG
      JMPUEUFUG $.

    $( 3-variable restricted existentional specialization, using implicit
       substitution.  (Contributed by NM, 25-Jul-2012.) $)
    rspc3ev $p |- ( ( ( A e. R /\ B e. S /\ C e. T ) /\ ps ) ->
                  E. x e. R E. y e. S E. z e. T ph ) $=
      ( wcel wrex cv wceq w3a wa simpl1 simpl2 rspcev 3ad2antl3 rexbidv rspc2ev
      syl3anc ) HKQZILQZJMQZUABUBUJUKDGMRZAGMRZFLREKRUJUKULBUCUJUKULBUDULUJBUMU
      KDBGJMPUEUFUNUMCGMREFHIKLESHTACGMNUGFSITCDGMOUGUHUI $.
  $}

  ${
    $d x A y z $.  $d x B y z $.
    eqvinc.1 $e |- A e. _V $.
    $( A variable introduction law for class equality.  (Contributed by NM,
       14-Apr-1995.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    eqvinc $p |- ( A = B <-> E. x ( x = A /\ x = B ) ) $=
      ( wceq cv wa wex wi isseti ax-1 eqtr jca eximi pm3.43 mp2b 19.37aiv eqtr2
      ex exlimiv impbii ) BCEZAFZBEZUCCEZGZAHUBUFAUDAHUBUDIZUBUEIZGZAHUBUFIZAHA
      BDJUDUIAUDUGUHUDUBKUDUBUEUCBCLSMNUIUJAUBUDUEONPQUFUBAUCBCRTUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( A variable introduction law for class equality, deduction version.
       (Contributed by Thierry Arnoux, 2-Mar-2017.) $)
    eqvincg $p |- ( A e. V -> ( A = B <-> E. x ( x = A /\ x = B ) ) ) $=
      ( wcel wceq cv wa wex wi elisset ax-1 eqtr ex jca pm3.43 3syl nfv 19.37-1
      eximi syl eqtr2 exlimiv impbid1 ) BDEZBCFZAGZBFZUGCFZHZAIZUEUFUJJZAIZUFUK
      JUEUHAIUFUHJZUFUIJZHZAIUMABDKUHUPAUHUNUOUHUFLUHUFUIUGBCMNOTUPULAUFUHUIPTQ
      UFUJAUFARSUAUJUFAUGBCUBUCUD $.
  $}

  ${
    $d A y $.  $d B y $.  $d x y $.
    eqvincf.1 $e |- F/_ x A $.
    eqvincf.2 $e |- F/_ x B $.
    eqvincf.3 $e |- A e. _V $.
    $( A variable introduction law for class equality, using bound-variable
       hypotheses instead of distinct variable conditions.  (Contributed by NM,
       14-Sep-2003.) $)
    eqvincf $p |- ( A = B <-> E. x ( x = A /\ x = B ) ) $=
      ( vy wceq cv wa wex eqvinc nfeq2 nfan nfv eqeq1 anbi12d cbvex bitri ) BCH
      GIZBHZTCHZJZGKAIZBHZUDCHZJZAKGBCFLUCUGGAUAUBAATBDMATCEMNUGGOTUDHUAUEUBUFT
      UDBPTUDCPQRS $.
  $}

  ${
    $d x A y $.  $d ph y $.
    alexeq.1 $e |- A e. _V $.
    $( Two ways to express substitution of ` A ` for ` x ` in ` ph ` .
       (Contributed by NM, 2-Mar-1995.) $)
    alexeq $p |- ( A. x ( x = A -> ph ) <-> E. x ( x = A /\ ph ) ) $=
      ( vy cv wceq wa wex wi wal anbi1d exbidv imbi1d albidv sb56 vtoclb bicomi
      eqeq2 ) BFZCGZAHZBIZUAAJZBKZTEFZGZAHZBIUGAJZBKUCUEECDUFCGZUHUBBUJUGUAAUFC
      TSZLMUJUIUDBUJUGUAAUKNOABEPQR $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Equality implies equivalence with substitution.  (Contributed by NM,
       2-Mar-1995.) $)
    ceqex $p |- ( x = A -> ( ph <-> E. x ( x = A /\ ph ) ) ) $=
      ( vy cvv wcel cv wceq wa wex wb 19.8a isset sylibr wi eqeq2 anbi1d exbidv
      bibi2d imbi12d ex wal vex alexeq sp com12 syl5bir impbid vtoclg mpcom ) C
      EFZBGZCHZAUMAIZBJZKZUMUMBJUKUMBLBCMNULDGZHZAURAIZBJZKZOUMUPODCEUQCHZURUMV
      AUPUQCULPZVBUTUOAVBUSUNBVBURUMAVCQRSTURAUTURAUTUSBLUAUTURAOZBUBZURAABUQDU
      CUDVEURAVDBUEUFUGUHUIUJ $.
  $}

  ${
    $d x y A $.
    ceqsexg.1 $e |- F/ x ps $.
    ceqsexg.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  (Contributed by NM,
       11-Oct-2004.) $)
    ceqsexg $p |- ( A e. V -> ( E. x ( x = A /\ ph ) <-> ps ) ) $=
      ( wb cv wceq wa wex nfcv nfe1 nfbi ceqex bibi12d biid vtoclgf ) AAHCIDJZA
      KZCLZBHCDECDMUBBCUACNFOTAUBABACDPGQARS $.
  $}

  ${
    $d x y A $.  $d x ps $.
    ceqsexgv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of an existential quantifier, using implicit substitution.
       (Contributed by NM, 29-Dec-1996.) $)
    ceqsexgv $p |- ( A e. V -> ( E. x ( x = A /\ ph ) <-> ps ) ) $=
      ( nfv ceqsexg ) ABCDEBCGFH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    ceqsrexv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of a restricted existential quantifier, using implicit
       substitution.  (Contributed by NM, 30-Apr-2004.) $)
    ceqsrexv $p |- ( A e. B -> ( E. x e. B ( x = A /\ ph ) <-> ps ) ) $=
      ( cv wceq wa wrex wcel wex df-rex an12 exbii bitr4i eleq1 anbi12d bianabs
      ceqsexgv syl5bb ) CGZDHZAIZCEJZUCUBEKZAIZIZCLZDEKZBUEUFUDIZCLUIUDCEMUHUKC
      UCUFANOPUJUIBUGUJBICDEUCUFUJABUBDEQFRTSUA $.

    $( Elimination of a restricted existential quantifier, using implicit
       substitution.  (Contributed by Mario Carneiro, 14-Mar-2014.) $)
    ceqsrexbv $p |- ( E. x e. B ( x = A /\ ph ) <-> ( A e. B /\ ps ) ) $=
      ( wcel cv wceq wa wrex r19.42v eleq1 adantr pm5.32ri bicomi baib ceqsrexv
      wb rexbiia pm5.32i 3bitr3i ) DEGZCHZDIZAJZJZCEKUCUFCEKZJUHUCBJUCUFCELUGUF
      CEUGUDEGZUFUIUFJUGUFUIUCUEUIUCSAUDDEMNOPQTUCUHBABCDEFRUAUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d x y D $.  $d x ps $.  $d y ch $.
    ceqsrex2v.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsrex2v.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Elimination of a restricted existential quantifier, using implicit
       substitution.  (Contributed by NM, 29-Oct-2005.) $)
    ceqsrex2v $p |- ( ( A e. C /\ B e. D ) ->
      ( E. x e. C E. y e. D ( ( x = A /\ y = B ) /\ ph ) <-> ch ) ) $=
      ( wcel cv wceq wa wrex anass rexbii r19.42v ceqsrexv bitri anbi2d rexbidv
      syl5bb sylan9bb ) FHLZDMFNZEMGNZOAOZEIPZDHPZUHBOZEIPZGILCUKUGUHAOZEIPZOZD
      HPUFUMUJUPDHUJUGUNOZEIPUPUIUQEIUGUHAQRUGUNEISUARUOUMDFHUGUNULEIUGABUHJUBU
      CTUDBCEGIKTUE $.
  $}

  ${
    $d x A $.  $d x B $.
    clel2.1 $e |- A e. _V $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 18-Aug-1993.) $)
    clel2 $p |- ( A e. B <-> A. x ( x = A -> x e. B ) ) $=
      ( cv wceq wcel wi wal eleq1 ceqsalv bicomi ) AEZBFMCGZHAIBCGZNOABDMBCJKL
      $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 13-Aug-2005.) $)
    clel3g $p |- ( B e. V -> ( A e. B <-> E. x ( x = B /\ A e. x ) ) ) $=
      ( wcel cv wceq wa wex eleq2 ceqsexgv bicomd ) CDEAFZCGBMEZHAIBCEZNOACDMCB
      JKL $.
  $}

  ${
    $d x A $.  $d x B $.
    clel3.1 $e |- B e. _V $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 18-Aug-1993.) $)
    clel3 $p |- ( A e. B <-> E. x ( x = B /\ A e. x ) ) $=
      ( cvv wcel cv wceq wa wex wb clel3g ax-mp ) CEFBCFAGZCHBNFIAJKDABCELM $.
  $}

  ${
    $d x A $.  $d x B $.
    clel4.1 $e |- B e. _V $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 18-Aug-1993.) $)
    clel4 $p |- ( A e. B <-> A. x ( x = B -> A e. x ) ) $=
      ( cv wceq wcel wi wal eleq2 ceqsalv bicomi ) AEZCFBMGZHAIBCGZNOACDMCBJKL
      $.
  $}

  ${
    $d y A z $.  $d y B z $.
    $( Compare theorem *13.183 in [WhiteheadRussell] p. 178.  Only ` A ` is
       required to be a set.  (Contributed by Andrew Salmon, 3-Jun-2011.) $)
    pm13.183 $p |- ( A e. V -> ( A = B <-> A. z ( z = A <-> z = B ) ) ) $=
      ( vy cv wceq wal eqeq1 eqeq2 bibi1d albidv alrimiv wsb stdpc4 sbbi bibi2i
      wb eqsb3 sylbi equsb1 bi1 mpi syl impbii vtoclbg ) EFZCGZAFZUGGZUICGZRZAH
      ZBCGUIBGZUKRZAHEBDUGBCIUGBGZULUOAUPUJUNUKUGBUIJKLUHUMUHULAUGCUIJMUMULAENZ
      UHULAEOUQUJAENZUKAENZRZUHUJUKAEPUTURUHRZUHUSUHUREACSQVAURUHAEUAURUHUBUCTT
      UDUEUF $.
  $}

  ${
    $d y A $.  $d x y $.  $d y ph $.
    $( Restricted quantifier version of Theorem 19.3 of [Margaris] p. 89.
       (Contributed by NM, 25-Oct-2012.) $)
    rr19.3v $p |- ( A. x e. A A. y e. A ph <-> A. x e. A ph ) $=
      ( wral cv weq biidd rspcv ralimia wcel ax-1 ralrimiv ralimi impbii ) ACDE
      ZBDEABDEPABDAACBFDCBGAHIJAPBDAACDACFDKLMNO $.

    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.
       (Contributed by NM, 29-Oct-2012.) $)
    rr19.28v $p |- ( A. x e. A A. y e. A ( ph /\ ps )
                      <-> A. x e. A ( ph /\ A. y e. A ps ) ) $=
      ( wa wral cv wcel simpl ralimi weq biidd rspcv syl5 wi simpr jcad ralimia
      a1i r19.28av impbii ) ABFZDEGZCEGABDEGZFZCEGUDUFCECHZEIZUDAUEUDADEGUHAUCA
      DEABJKAADUGEDCLAMNOUDUEPUHUCBDEABQKTRSUFUDCEABDEUAKUB $.
  $}

  ${
    $d x y A $.  $d y ph $.  $d x ps $.
    $( Membership in a class abstraction, using implicit substitution.  (Closed
       theorem version of ~ elabg .)  (Contributed by NM, 7-Nov-2005.)  (Proof
       shortened by Andrew Salmon, 8-Jun-2011.) $)
    elabgt $p |- ( ( A e. B /\ A. x ( x = A -> ( ph <-> ps ) ) ) ->
                 ( A e. { x | ph } <-> ps ) ) $=
      ( cv wceq wb wal wcel cab abid eleq1 syl5bbr bibi1d biimpd a2i alimi nfcv
      wi nfab1 nfel2 nfv nfbi pm5.5 spcgf imp sylan2 ) CFZDGZABHZTZCIDEJZUJDACK
      ZJZBHZTZCIZUPULUQCUJUKUPUJUKUPUJAUOBAUIUNJUJUOACLUIDUNMNOPQRUMURUPUQUPCDE
      CDSUOBCCDUNACUAUBBCUCUDUJUPUEUFUGUH $.
  $}

  ${
    elabgf.1 $e |- F/_ x A $.
    elabgf.2 $e |- F/ x ps $.
    elabgf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.  Compare
       Theorem 6.13 of [Quine] p. 44.  This version has bound-variable
       hypotheses in place of distinct variable restrictions.  (Contributed by
       NM, 21-Sep-2003.)  (Revised by Mario Carneiro, 12-Oct-2016.) $)
    elabgf $p |- ( A e. B -> ( A e. { x | ph } <-> ps ) ) $=
      ( cv cab wcel wb nfab1 nfel nfbi wceq eleq1 bibi12d abid vtoclgf ) CIZACJ
      ZKZALDUBKZBLCDEFUDBCCDUBFACMNGOUADPUCUDABUADUBQHRACST $.
  $}

  ${
    $d ps y $.  $d x A y $.  $d y ph $.
    elabf.1 $e |- F/ x ps $.
    elabf.2 $e |- A e. _V $.
    elabf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 1-Aug-1994.)  (Revised by Mario Carneiro,
       12-Oct-2016.) $)
    elabf $p |- ( A e. { x | ph } <-> ps ) $=
      ( cvv wcel cab wb nfcv elabgf ax-mp ) DHIDACJIBKFABCDHCDLEGMN $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab.1 $e |- A e. _V $.
    elab.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.  Compare
       Theorem 6.13 of [Quine] p. 44.  (Contributed by NM, 1-Aug-1994.) $)
    elab $p |- ( A e. { x | ph } <-> ps ) $=
      ( nfv elabf ) ABCDBCGEFH $.
  $}

  ${
    $d x ps $.  $d x y A $.
    elabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.  Compare
       Theorem 6.13 of [Quine] p. 44.  (Contributed by NM, 14-Apr-1995.) $)
    elabg $p |- ( A e. V -> ( A e. { x | ph } <-> ps ) ) $=
      ( nfcv nfv elabgf ) ABCDECDGBCHFI $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab2g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elab2g.2 $e |- B = { x | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 13-Sep-1995.) $)
    elab2g $p |- ( A e. V -> ( A e. B <-> ps ) ) $=
      ( wcel cab eleq2i elabg syl5bb ) DEIDACJZIDFIBENDHKABCDFGLM $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab2.1 $e |- A e. _V $.
    elab2.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elab2.3 $e |- B = { x | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 13-Sep-1995.) $)
    elab2 $p |- ( A e. B <-> ps ) $=
      ( cvv wcel wb elab2g ax-mp ) DIJDEJBKFABCDEIGHLM $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab4g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elab4g.2 $e |- B = { x | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 17-Oct-2012.) $)
    elab4g $p |- ( A e. B <-> ( A e. _V /\ ps ) ) $=
      ( wcel cvv elex elab2g biadan2 ) DEHDIHBDEJABCDEIFGKL $.
  $}

  ${
    $d y A $.
    elab3gf.1 $e |- F/_ x A $.
    elab3gf.2 $e |- F/ x ps $.
    elab3gf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, with a weaker antecedent than
       ~ elabgf .  (Contributed by NM, 6-Sep-2011.) $)
    elab3gf $p |- ( ( ps -> A e. B ) -> ( A e. { x | ph } <-> ps ) ) $=
      ( wcel wi cab elabgf ibi wb imim2i bi2 syli impbid2 ) BDEIZJZDACKZIZBUBBA
      BCDUAFGHLMBTUBBNZUBSUCBABCDEFGHLOUBBPQR $.
  $}

  ${
    $d x ps $.  $d x y A $.
    elab3g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, with a weaker antecedent than
       ~ elabg .  (Contributed by NM, 29-Aug-2006.) $)
    elab3g $p |- ( ( ps -> A e. B ) -> ( A e. { x | ph } <-> ps ) ) $=
      ( nfcv nfv elab3gf ) ABCDECDGBCHFI $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab3.1 $e |- ( ps -> A e. _V ) $.
    elab3.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction using implicit substitution.
       (Contributed by NM, 10-Nov-2000.) $)
    elab3 $p |- ( A e. { x | ph } <-> ps ) $=
      ( cvv wcel wi cab wb elab3g ax-mp ) BDGHIDACJHBKEABCDGFLM $.
  $}

  ${
    $d A x $.  $d V x $.
    $( Implication for the membership in a restricted class abstraction.
       (Contributed by Alexander van der Vekens, 31-Dec-2017.) $)
    elrabi $p |- ( A e. { x e. V | ph } -> A e. V ) $=
      ( wcel cv wa cab crab wceq wex clelab eleq1 anbi1d simprbda exlimiv sylbi
      df-rab eleq2s ) CDEZCBFZDEZAGZBHZABDICUDEUACJZUCGZBKTUCBCLUFTBUEUCTAUEUBT
      AUACDMNOPQABDRS $.
  $}

  ${
    elrabf.1 $e |- F/_ x A $.
    elrabf.2 $e |- F/_ x B $.
    elrabf.3 $e |- F/ x ps $.
    elrabf.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a restricted class abstraction, using implicit
       substitution.  This version has bound-variable hypotheses in place of
       distinct variable restrictions.  (Contributed by NM, 21-Sep-2003.) $)
    elrabf $p |- ( A e. { x e. B | ph } <-> ( A e. B /\ ps ) ) $=
      ( crab wcel cvv wa elex adantr cv cab df-rab eleq2i nfel nfan wceq elabgf
      eleq1 anbi12d syl5bb pm5.21nii ) DACEJZKZDLKZDEKZBMZDUHNUKUJBDENOUIDCPZEK
      ZAMZCQZKUJULUHUPDACERSUOULCDLFUKBCCDEFGTHUAUMDUBUNUKABUMDEUDIUEUCUFUG $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    $( Membership in a restricted class abstraction, using implicit
       substitution.  (Closed theorem version of ~ elrab3 .)  (Contributed by
       Thierry Arnoux, 31-Aug-2017.) $)
    elrab3t $p |- ( ( A. x ( x = A -> ( ph <-> ps ) ) /\ A e. B ) ->
                                           ( A e. { x e. B | ph } <-> ps ) ) $=
      ( cv wceq wb wi wal wcel wa cab crab simpr nfa1 nfv nfan simpl 19.21bi
      eleq1 biimparc biantrurd bibi1d adantl mpbid alrimi elabgt syl2anc df-rab
      pm5.74da eleq2i bibi1i sylibr ) CFZDGZABHZIZCJZDEKZLZDUOEKZALZCMZKZBHZDAC
      ENZKZBHVAUTUPVCBHZIZCJVFUSUTOVAVJCUSUTCURCPUTCQRVAURVJVAURCUSUTSTUTURVJHU
      SUTUPUQVIUTUPLZAVCBVKVBAUPVBUTUODEUAUBUCUDUKUEUFUGVCBCDEUHUIVHVEBVGVDDACE
      UJULUMUN $.
  $}

  ${
    $d x ps $.  $d x y A $.  $d x y B $.
    elrab.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a restricted class abstraction, using implicit
       substitution.  (Contributed by NM, 21-May-1999.) $)
    elrab $p |- ( A e. { x e. B | ph } <-> ( A e. B /\ ps ) ) $=
      ( nfcv nfv elrabf ) ABCDECDGCEGBCHFI $.

    $( Membership in a restricted class abstraction, using implicit
       substitution.  (Contributed by NM, 5-Oct-2006.) $)
    elrab3 $p |- ( A e. B -> ( A e. { x e. B | ph } <-> ps ) ) $=
      ( crab wcel elrab baib ) DACEGHDEHBABCDEFIJ $.
  $}

  ${
    $d x ps $.  $d x y A $.  $d x y B $.
    elrab2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elrab2.2 $e |- C = { x e. B | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 2-Nov-2006.) $)
    elrab2 $p |- ( A e. C <-> ( A e. B /\ ps ) ) $=
      ( wcel crab wa eleq2i elrab bitri ) DFIDACEJZIDEIBKFODHLABCDEGMN $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ps $.
    ralab.1 $e |- ( y = x -> ( ph <-> ps ) ) $.
    $( Universal quantification over a class abstraction.  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    ralab $p |- ( A. x e. { y | ph } ch <-> A. x ( ps -> ch ) ) $=
      ( cab wral cv wcel wi wal df-ral vex elab imbi1i albii bitri ) CDAEGZHDIZ
      SJZCKZDLBCKZDLCDSMUBUCDUABCABETDNFOPQR $.

    $( Universal quantification over a restricted class abstraction.
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    ralrab $p |- ( A. x e. { y e. A | ph } ch <-> A. x e. A ( ps -> ch ) ) $=
      ( wi crab cv wcel wa elrab imbi1i impexp bitri ralbii2 ) CBCHZDAEFIZFDJZS
      KZCHTFKZBLZCHUBRHUAUCCABETFGMNUBBCOPQ $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 23-Jan-2014.)  (Revised by Mario Carneiro,
       3-Sep-2015.) $)
    rexab $p |- ( E. x e. { y | ph } ch <-> E. x ( ps /\ ch ) ) $=
      ( cab wrex cv wcel wa wex df-rex vex elab anbi1i exbii bitri ) CDAEGZHDIZ
      SJZCKZDLBCKZDLCDSMUBUCDUABCABETDNFOPQR $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Jeff Madsen, 17-Jun-2011.)  (Revised by Mario Carneiro, 3-Sep-2015.) $)
    rexrab $p |- ( E. x e. { y e. A | ph } ch <-> E. x e. A ( ps /\ ch ) ) $=
      ( wa crab cv wcel elrab anbi1i anass bitri rexbii2 ) CBCHZDAEFIZFDJZRKZCH
      SFKZBHZCHUAQHTUBCABESFGLMUABCNOP $.
  $}

  ${
    $d x y $.  $d x A $.  $d x ch $.  $d x ph $.  $d y ps $.
    ralab2.1 $e |- ( x = y -> ( ps <-> ch ) ) $.
    $( Universal quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 3-Sep-2015.) $)
    ralab2 $p |- ( A. x e. { y | ph } ps <-> A. y ( ph -> ch ) ) $=
      ( cab wral cv wcel wi wal df-ral nfsab1 nfv nfim weq eleq1 abid syl6bb
      imbi12d cbval bitri ) BDAEGZHDIZUDJZBKZDLACKZELBDUDMUGUHDEUFBEAEDNBEOPUHD
      ODEQZUFABCUIUFEIZUDJAUEUJUDRAESTFUAUBUC $.

    $( Universal quantification over a restricted class abstraction.
       (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    ralrab2 $p |- ( A. x e. { y e. A | ph } ps <-> A. y e. A ( ph -> ch ) ) $=
      ( crab wral cv wcel wa cab wi wal df-rab raleqi ralab2 impexp albii
      df-ral bitr4i 3bitri ) BDAEFHZIBDEJFKZALZEMZIUFCNZEOZACNZEFIZBDUDUGAEFPQU
      FBCDEGRUIUEUJNZEOUKUHULEUEACSTUJEFUAUBUC $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 3-Sep-2015.) $)
    rexab2 $p |- ( E. x e. { y | ph } ps <-> E. y ( ph /\ ch ) ) $=
      ( cab wrex cv wcel wa wex df-rex nfsab1 nfv nfan weq eleq1 abid syl6bb
      anbi12d cbvex bitri ) BDAEGZHDIZUDJZBKZDLACKZELBDUDMUGUHDEUFBEAEDNBEOPUHD
      ODEQZUFABCUIUFEIZUDJAUEUJUDRAESTFUAUBUC $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 3-Sep-2015.) $)
    rexrab2 $p |- ( E. x e. { y e. A | ph } ps <-> E. y e. A ( ph /\ ch ) ) $=
      ( crab wrex cv wcel wa cab wex df-rab rexeqi rexab2 anass exbii df-rex
      bitr4i 3bitri ) BDAEFHZIBDEJFKZALZEMZIUECLZENZACLZEFIZBDUCUFAEFOPUEBCDEGQ
      UHUDUILZENUJUGUKEUDACRSUIEFTUAUB $.
  $}

  ${
    $d w y A $.  $d w x z $.  $d x y $.  $d A z $.
    $( Identity used to create closed-form versions of bound-variable
       hypothesis builders for class expressions.  (Contributed by NM,
       10-Nov-2005.)  (Proof shortened by Mario Carneiro, 12-Oct-2016.) $)
    abidnf $p |- ( F/_ x A -> { z | A. x z e. A } = A ) $=
      ( wnfc cv wcel wal sp nfcr nfrd impbid2 abbi1dv ) ACDZBECFZAGZBCMONNAHMNA
      ABCIJKL $.
  $}

  ${
    $d y A $.  $d x z $.  $d x y $.  $d z A $.
    dedhb.1 $e |- ( A = { z | A. x z e. A } -> ( ph <-> ps ) ) $.
    dedhb.2 $e |- ps $.
    $( A deduction theorem for converting the inference ` |- F/_ x A ` =>
       ` |- ph ` into a closed theorem.  Use ~ nfa1 and ~ nfab to eliminate the
       hypothesis of the substitution instance ` ps ` of the inference.  For
       converting the inference form into a deduction form, ~ abidnf is
       useful.  (Contributed by NM, 8-Dec-2006.) $)
    dedhb $p |- ( F/_ x A -> ph ) $=
      ( wnfc cv wcel wal cab wceq wb abidnf eqcomd syl mpbiri ) CEHZABGSEDIEJCK
      DLZMABNSTECDEOPFQR $.
  $}

  ${
    $d y ph $.  $d x y ps $.  $d x y A $.
    eqeu.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A condition which implies existential uniqueness.  (Contributed by Jeff
       Hankins, 8-Sep-2009.) $)
    eqeu $p |- ( ( A e. B /\ ps /\ A. x ( ph -> x = A ) ) -> E! x ph ) $=
      ( vy wcel cv wceq wi wal w3a wex weu spcegv imp 3adant3 eqeq2 imbi2d nfv
      albidv 3adant2 eu3 sylanbrc ) DEHZBACIZDJZKZCLZMACNZAUGGIZJZKZCLZGNZACOUF
      BUKUJUFBUKABCDEFPQRUFUJUPBUFUJUPUOUJGDEULDJZUNUICUQUMUHAULDUGSTUBPQUCACGA
      GUAUDUE $.
  $}

  ${
    $d x y A $.
    $( Equality has existential uniqueness.  (Contributed by NM,
       25-Nov-1994.) $)
    eueq $p |- ( A e. _V <-> E! x x = A ) $=
      ( vy cv wceq wex wa wi wal cvv wcel weu eqtr3 biantru isset eqeq1 3bitr4i
      gen2 eu4 ) ADZBEZAFZUBUACDZBEZGTUCEHZCIAIZGBJKUAALUFUBUEACTUCBMRNABOUAUDA
      CTUCBPSQ $.
  $}

  ${
    $d x A $.
    eueq1.1 $e |- A e. _V $.
    $( Equality has existential uniqueness.  (Contributed by NM,
       5-Apr-1995.) $)
    eueq1 $p |- E! x x = A $=
      ( cvv wcel cv wceq weu eueq mpbi ) BDEAFBGAHCABIJ $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    eueq2dc.1 $e |- A e. _V $.
    eueq2dc.2 $e |- B e. _V $.
    $( Equality has existential uniqueness (split into 2 cases).  (Contributed
       by NM, 5-Apr-1995.) $)
    eueq2dc $p |- ( DECID ph ->
        E! x ( ( ph /\ x = A ) \/ ( -. ph /\ x = B ) ) ) $=
      ( wdc wn wo wceq weu eueq1 euanv biimpri mpan2 euorv bianfd eubidv mpbid
      wa cv df-dc notnot1 syl2anc orcom orbi2d syl5bb mpdan orbi1d jaoi sylbi
      id ) AGAAHZIABUAZCJZTZUMUNDJZTZIZBKZAUBAUTUMAUMUPIZBKZUTAUMHUPBKZVBAUCZAU
      OBKZVCBCELVCAVETAUOBMNOUMUPBPUDAVAUSBVAUPUMIAUSUMUPUEAUMURUPAUMUQVDQUFUGR
      SUMAURIZBKZUTUMURBKZVGUMUQBKZVHBDFLVHUMVITUMUQBMNOAURBPUHUMVFUSBUMAUPURUM
      AUOUMULQUIRSUJUK $.
  $}

  ${
    $d x ph $.  $d x ps $.  $d x A $.  $d x B $.  $d x C $.
    eueq3dc.1 $e |- A e. _V $.
    eueq3dc.2 $e |- B e. _V $.
    eueq3dc.3 $e |- C e. _V $.
    eueq3dc.4 $e |- -. ( ph /\ ps ) $.
    $( Equality has existential uniqueness (split into 3 cases).  (Contributed
       by NM, 5-Apr-1995.)  (Proof shortened by Mario Carneiro,
       28-Sep-2015.) $)
    eueq3dc $p |- ( DECID ph -> ( DECID ps ->
        E! x ( ( ph /\ x = A ) \/ ( -. ( ph \/ ps ) /\ x = B )
               \/ ( ps /\ x = C ) ) ) ) $=
      ( wdc wo wceq wa wn w3o weu eueq1 con2i jaoi cv dcor df-dc ibar wb pm2.45
      imnani bianfd orbi12d mtbid biorf bitrd 3orrot df-3or bitri syl6bbr mpbii
      syl eubidv adantr pm2.46 simpl orim12i con3i 3orcomb sylbi syl6 ) AKBKABL
      ZKZACUAZDMZNZVHOZVJEMZNZBVJFMZNZPZCQZABUBVIVHVMLVSVHUCVHVSVMAVSBAVKCQVSCD
      GRAVKVRCAVKVOVQLZVLLZVRAVKVLWAAVKUDAVTOVLWAUEAVMBLZVTWBAVMAOBABUFZABABJUG
      ZSTSAVMVOBVQAVMVNVMAWCSUHABVPWDUHUIUJVTVLUKURULVRVOVQVLPWAVLVOVQUMVOVQVLU
      NUOUPUSUQBVPCQVSCFIRBVPVRCBVPVLVOLZVQLZVRBVPVQWFBVPUDBWEOVQWFUEWEBVLBOZVO
      AWGVKWDUTVMWGVNABVAUTTSWEVQUKURULVLVOVQUNUPUSUQTVMVNCQVSCEHRVMVNVRCVMVNVL
      VQLZVOLZVRVMVNVOWIVMVNUDVMWHOVOWIUEWHVHVLAVQBAVKVBBVPVBVCVDWHVOUKURULVRVL
      VQVOPWIVLVOVQVEVLVQVOUNUOUPUSUQTVFVG $.
  $}

  ${
    $d x A $.
    $( There is at most one set equal to a class.  (Contributed by NM,
       8-Mar-1995.) $)
    moeq $p |- E* x x = A $=
      ( cv wceq wmo wex weu wi cvv wcel isset eueq bitr3i biimpi df-mo mpbir )
      ACBDZAEQAFZQAGZHRSRBIJSABKABLMNQAOP $.
  $}

  ${
    $d x y ph $.  $d x y ps $.  $d x y A $.  $d x y B $.  $d x y C $.
    moeq3dc.1 $e |- A e. _V $.
    moeq3dc.2 $e |- B e. _V $.
    moeq3dc.3 $e |- C e. _V $.
    moeq3dc.4 $e |- -. ( ph /\ ps ) $.
    $( "At most one" property of equality (split into 3 cases).  (Contributed
       by Jim Kingdon, 7-Jul-2018.) $)
    moeq3dc $p |- ( DECID ph -> ( DECID ps ->
        E* x ( ( ph /\ x = A ) \/ ( -. ( ph \/ ps ) /\ x = B )
               \/ ( ps /\ x = C ) ) ) ) $=
      ( wdc cv wceq wa wo wn w3o weu wmo eueq3dc eumo syl6 ) AKBKACLZDMNABOPUCE
      MNBUCFMNQZCRUDCSABCDEFGHIJTUDCUAUB $.
  $}

  ${
    $d x y A $.
    $( "At most one" remains true after substitution.  (Contributed by Jim
       Kingdon, 18-Jan-2019.) $)
    mosubt $p |- ( A. y E* x ph -> E* x E. y ( y = A /\ ph ) ) $=
      ( wmo wal cv wceq wex wa wi weu cvv wcel eueq isset bitr3i euexex sylanbr
      nfv expcom moanimv sylibr simpl eximi ancri moimi syl ) ABECFZCGDHZCIZUJA
      JZCIZJZBEZUMBEZUIUKUPKUOUKUIUPUKUJCLZUIUPUQDMNUKCDOCDPQUJACBUJBTRSUAUKUMB
      UBUCUMUNBUMUKULUJCUJAUDUEUFUGUH $.
  $}

  ${
    $d x y A $.
    mosub.1 $e |- E* x ph $.
    $( "At most one" remains true after substitution.  (Contributed by NM,
       9-Mar-1995.) $)
    mosub $p |- E* x E. y ( y = A /\ ph ) $=
      ( wmo cv wceq wa wex mosubt mpg ) ABFCGDHAICJBFCABCDKEL $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Theorem for inferring "at most one."  (Contributed by NM,
       17-Oct-1996.) $)
    mo2icl $p |- ( A. x ( ph -> x = A ) -> E* x ph ) $=
      ( vy cv wceq wal wex wmo cvv wcel nfa1 vex eleq1 mpbii imim2i eximd 19.9v
      wi sps syl6ib eqeq2 imbi2d albidv imbi1d nfv mo2r vtoclg com12 syld moabs
      19.23bi sylibr ) ABEZCFZSZBGZABHZABIZSUSUQURCJKZUSUQURUTBHUTUQAUTBUPBLUPA
      UTSBUOUTAUOUNJKUTBMUNCJNOPTQUTBRUAUTUQUSAUNDEZFZSZBGZUSSUQUSSDCJVACFZVDUQ
      USVEVCUPBVEVBUOAVACUNUBUCUDUEVDUSDABDADUFUGULUHUIUJABUKUM $.
  $}

  ${
    $d x y A $.  $d y ph $.  $d x y ps $.
    moi2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Consequence of "at most one."  (Contributed by NM, 2-Jan-2015.) $)
    mob2 $p |- ( ( A e. B /\ E* x ph /\ ph ) -> ( x = A <-> ps ) ) $=
      ( vy wcel wmo w3a cv wceq simp3 syl5ibcom wi wa wsb wal nfs1v sbequ12 nfv
      mo4f sylbi sbhypf anbi2d eqeq2 imbi12d spcgv syl5 imp expd 3impia impbid
      sp ) DEHZACIZAJZCKZDLZBUQAUSBUOUPAMFNUOUPABUSOUOUPPABUSUOUPABPZUSOZUPAACG
      QZPZURGKZLZOZGRZUOVAUPVGCRVGAVBCGACGSACGTUBVGCUNUCVFVAGDEVDDLZVCUTVEUSVHV
      BBAABCGDBCUAFUDUEVDDURUFUGUHUIUJUKULUM $.

    $( Consequence of "at most one."  (Contributed by NM, 29-Jun-2008.) $)
    moi2 $p |- ( ( ( A e. B /\ E* x ph ) /\ ( ph /\ ps ) ) -> x = A ) $=
      ( wcel wmo wa cv wceq wb mob2 3expa biimprd impr ) DEGZACHZIZABCJDKZSAITB
      QRATBLABCDEFMNOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ch $.  $d y ph $.  $d x y ps $.
    moi.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    moi.2 $e |- ( x = B -> ( ph <-> ch ) ) $.
    $( Equality implied by "at most one."  (Contributed by NM, 18-Feb-2006.) $)
    mob $p |- ( ( ( A e. C /\ B e. D ) /\ E* x ph /\ ps ) ->
                ( A = B <-> ch ) ) $=
      ( wcel wa wmo wceq wb wi cvv elex w3a nfv cv nfcv nfmo1 nf3an nfim bibi1d
      3anbi3d eqeq1 imbi12d mob2 vtoclgf com12 3expib syl com3r imp 3impib ) EG
      KZFHKZLADMZBEFNZCOZURUSUTBLZVBPUSVCURVBUSFQKZVCURVBPZPFHRVDUTBVEURVDUTBSZ
      VBVDUTASZDUAZFNZCOZPVFVBPDEGDEUBVFVBDVDUTBDVDDTADUCBDTUDVBDTUEVHENZVGVFVJ
      VBVKABVDUTIUGVKVIVACVHEFUHUFUIACDFQJUJUKULUMUNUOUPUQ $.

    $( Equality implied by "at most one."  (Contributed by NM, 18-Feb-2006.) $)
    moi $p |- ( ( ( A e. C /\ B e. D ) /\ E* x ph /\ ( ps /\ ch ) ) ->
              A = B ) $=
      ( wcel wa wmo wceq wi w3a mob biimprd 3expia impd 3impia ) EGKFHKLZADMZBC
      LEFNZUBUCLBCUDUBUCBCUDOUBUCBPUDCABCDEFGHIJQRSTUA $.
  $}

  ${
    $d B x y $.  $d A x y $.  $d ph y $.  $d ps x y $.
    morex.1 $e |- B e. _V $.
    morex.2 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Derive membership from uniqueness.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    morex $p |- ( ( E. x e. A ph /\ E* x ph ) -> ( ps -> B e. A ) ) $=
      ( wmo wrex wcel wi cv wa wex df-rex exancom bitri wal nfmo1 nfe1 nfan syl
      mopick alrimi wceq eleq1 imbi12d spcv sylan2b ancoms ) ACHZACDIZBEDJZKZUL
      UKACLZDJZMZCNZUNULUPAMCNURACDOUPACPQUKURMZAUPKZCRUNUSUTCUKURCACSUQCTUAAUP
      CUCUDUTUNCEFUOEUEABUPUMGUOEDUFUGUHUBUIUJ $.
  $}

  ${
    $d x ph $.  $d x A $.
    euxfr2dc.1 $e |- A e. _V $.
    euxfr2dc.2 $e |- E* y x = A $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       14-Nov-2004.) $)
    euxfr2dc $p |- ( DECID E. y E. x ( x = A /\ ph ) ->
        ( E! x E. y ( x = A /\ ph ) <-> E! y ph ) ) $=
      ( cv wa wex wdc weu wmo wal wi moani mobii mpbi ax-gen 2euswapdc mpi wceq
      ancom excom dcbii sylbi moeq impbid biidd ceqsexv eubii syl6bb ) BGDUAZAH
      ZBIZCIZJZUMCIZBKZUNCKZACKUPURUSUPUMCLZBMZURUSNZUTBAULHZCLUTULACFOVCUMCAUL
      UBZPQRUPUQBIZJVAVBNUOVEUMCBUCUDUMBCSUETUPUMBLZCMUSURNVFCVCBLVFULABBDUFOVC
      UMBVDPQRUMCBSTUGUNACAABDEULAUHUIUJUK $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x A $.
    euxfrdc.1 $e |- A e. _V $.
    euxfrdc.2 $e |- E! y x = A $.
    euxfrdc.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       14-Nov-2004.) $)
    euxfrdc $p |- ( DECID E. y E. x ( x = A /\ ps ) ->
        ( E! x ph <-> E! y ps ) ) $=
      ( weu cv wceq wa wex wdc euex ax-mp biantrur 19.41v pm5.32i exbii 3bitr2i
      eubii eumoi euxfr2dc syl5bb ) ACICJEKZBLZDMZCIUGCMDMNBDIAUHCAUFDMZALUFALZ
      DMUHUIAUFDIUIGUFDOPQUFADRUJUGDUFABHSTUAUBBCDEFUFDGUCUDUE $.
  $}

  ${
    $d y z w ph $.  $d x z ps $.  $d y z w A $.  $d x z B $.  $d x y w $.
    euind.1 $e |- B e. _V $.
    euind.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    euind.3 $e |- ( x = y -> A = B ) $.
    $( Existential uniqueness via an indirect equality.  (Contributed by NM,
       11-Oct-2010.) $)
    euind $p |- ( ( A. x A. y ( ( ph /\ ps ) -> A = B ) /\ E. x ph )
                 -> E! z A. x ( ph -> z = A ) ) $=
      ( vw wa wceq wi wal wex cv exbii bitri imim2i weu cbvexv biantrur 3bitr2i
      isseti 19.41v excom eqeq2 bi2 an31 imbi1i impexp 3bitr3i sylib syl 2alimi
      wb 19.23v albii 19.21v eximdv syl5bi imp pm4.24 biimpi prth eqtr3 alanimi
      syl56 com12 syl5 alrimivv adantl eqeq1 imbi2d albidv eu4 sylanbrc ) ABLZF
      GMZNZDOCOZACPZLAEQZFMZNZCOZEPZWGAKQZFMZNZCOZLZWDWIMZNZKOEOZWGEUAWBWCWHWCW
      DGMZBLZDPZEPZWBWHWCBDPZWTABCDIUBXAWQEPZBLZDPWREPZDPWTBXCDXBBEGHUEUCRXDXCD
      WQBEUFRWRDEUGUDSWBWSWGEWBWRWFNZDOZCOZWSWGNZWAXECDWAVSWEWQUQZNZXEVTXIVSFGW
      DUHTXJVSWQWENZNZXEXIXKVSWEWQUITVSWQLZWENWRALZWENXLXEXMXNWEABWQUJUKVSWQWEU
      LWRAWEULUMUNUOUPXGWSWFNZCOXHXFXOCWRWFDURUSWSWFCUTSUNVAVBVCWCWPWBWCWOEKWMA
      WNNZCOZWCWNWFWKXPCAAALZWFWKLWEWJLWNAXRAVDVEAWEAWJVFWDWIFVGVIVHXQWCWNXQWCW
      NNAWNCURVEVJVKVLVMWGWLEKWNWFWKCWNWEWJAWDWIFVNVOVPVQVR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y ph $.  $d x ps $.
    $( A way to express restricted uniqueness.  (Contributed by NM,
       22-Nov-1994.) $)
    reu2 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\
               A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( cv wcel wa weu wex wsb weq wi wal wreu wral df-ral impexp albii 3bitr4i
      nfv wrex eu2 df-reu df-rex 19.21v nfs1v nfan eleq1 sbequ12 anbi12d anbi2i
      sbie an4 bitri imbi1i 3bitri imbi2i bitr4i anbi12i ) BEZDFZAGZBHVBBIZVBVB
      BCJZGZBCKZLZCMZBMZGABDNABDUAZAABCJZGZVFLZCDOZBDOZGVBBCVBCTUBABDUCVJVCVOVI
      ABDUDVOVAVNLZBMVIVNBDPVHVPBVACEZDFZVMLZLZCMVAVSCMZLVHVPVAVSCUEVGVTCVGVAVR
      GZVLGZVFLWBVMLVTVEWCVFVEVBVRVKGZGWCVDWDVBVBWDBCVRVKBVRBTABCUFUGVFVAVRAVKU
      TVQDUHABCUIUJULUKVAAVRVKUMUNUOWBVLVFQVAVRVMQUPRVNWAVAVMCDPUQSRURUSS $.

    $( A way to express restricted uniqueness.  (Contributed by NM,
       20-Oct-2006.) $)
    reu6 $p |- ( E! x e. A ph <-> E. y e. A A. x e. A ( ph <-> x = y ) ) $=
      ( cv wcel wa weq wb wal wex wi bi1 bi2 adantr impbid imim2i imp 3bitr4i
      ex wreu weu wral wrex df-reu 19.28v eleq1 sbequ12 anbi12d equequ1 bibi12d
      wsb equid tbt simpl sylbir syl6bi spimv expdimp simpr syl6 sps jca adantl
      a5i impd eleq1a com23 adantll jcai alimi impbii df-ral anbi2i exbii df-eu
      df-rex bitri ) ABDUABEZDFZAGZBUBZABCHZIZBDUCZCDUDZABDUEWAWCIZBJZCKCEZDFZW
      EGZCKWBWFWHWKCWJVTWDLZGZBJZWJWLBJZGWHWKWJWLBUFWHWNWGWMBWHWJWLWGWJBCWCWGWJ
      ABCULZGZCCHZIZWJWCWAWQWCWRWCVTWJAWPVSWIDUGABCUHUIBCCUJUKWSWQWJWRWQCUMUNWJ
      WPUOUPUQURWGWLBWGVTWDWGVTGAWCWGVTAWCWAWCMUSWGWCALZVTWGWCWAAWAWCNVTAUTVAOP
      TVBVCVEWMWGBWMWAWCWLWAWCLWJWLVTAWCWDAWCLVTAWCMQVFVDWMWCWAWMWCGVTAWMWCVTWJ
      WCVTLWLWIDVSVGORWLWCVTALZWJWLWCXAWLVTWCAWDWTVTAWCNQVHRVIVJTPVKVLWEWOWJWDB
      DVMVNSVOWABCVPWECDVQSVR $.

    $( A way to express restricted uniqueness.  (Contributed by NM,
       24-Oct-2006.) $)
    reu3 $p |- ( E! x e. A ph <->
               ( E. x e. A ph /\ E. y e. A A. x e. A ( ph -> x = y ) ) ) $=
      ( wreu wrex weq wi wral wa reurex wb reu6 bi1 ralimi reximi sylbi jca wex
      wal rexex anim2i cv wcel weu nfv df-reu df-rex df-ral impexp albii bitr4i
      eu3 exbii anbi12i 3bitr4i sylibr impbii ) ABDEZABDFZABCGZHZBDIZCDFZJZUSUT
      VDABDKUSAVALZBDIZCDFVDABCDMVGVCCDVFVBBDAVANOPQRVEUTVCCSZJZUSVDVHUTVCCDUAU
      BBUCDUDZAJZBUEVKBSZVKVAHZBTZCSZJUSVIVKBCVKCUFUMABDUGUTVLVHVOABDUHVCVNCVCV
      JVBHZBTVNVBBDUIVMVPBVJAVAUJUKULUNUOUPUQUR $.

    $( A condition which implies existential uniqueness.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    reu6i $p |- ( ( B e. A /\ A. x e. A ( ph <-> x = B ) ) -> E! x e. A ph ) $=
      ( vy wcel cv wceq wb wral wa wrex wreu eqeq2 bibi2d ralbidv rspcev sylibr
      reu6 ) DCFABGZDHZIZBCJZKATEGZHZIZBCJZECLABCMUGUCEDCUDDHZUFUBBCUHUEUAAUDDT
      NOPQABECSR $.

    eqreu.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( A condition which implies existential uniqueness.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    eqreu $p |- ( ( B e. A /\ ps /\ A. x e. A ( ph -> x = B ) ) ->
      E! x e. A ph ) $=
      ( wcel cv wceq wi wral wreu wa wb ralbiim ceqsralv anbi2d syl5bb reu6i ex
      sylbird 3impib 3com23 ) EDGZACHEIZJCDKZBACDLZUDUFBUGUDUFBMZAUENCDKZUGUIUF
      UEAJCDKZMUDUHAUECDOUDUJBUFABCEDFPQRUDUIUGACDESTUAUBUC $.
  $}

  ${
    $d x y z A $.  $d y z ph $.  $d x z ps $.
    rmo4.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Restricted "at most one" using implicit substitution.  (Contributed by
       NM, 24-Oct-2006.)  (Revised by NM, 16-Jun-2017.) $)
    rmo4 $p |- ( E* x e. A ph <->
               A. x e. A A. y e. A ( ( ph /\ ps ) -> x = y ) ) $=
      ( wrmo cv wcel wa wmo weq wi wral df-rmo wal bitri impexp albii df-ral
      an4 ancom anbi1i imbi1i 3bitri r19.21v 3bitr2i eleq1 anbi12d mo4 3bitr4i
      ) ACEGCHZEIZAJZCKZABJZCDLZMZDENZCENZACEOUNDHZEIZBJZJZUQMZDPZCPUMUSMZCPUOU
      TVFVGCVFVBUMURMZMZDPVHDENVGVEVIDVEVBUMJZUPJZUQMVJURMVIVDVKUQVDUMVBJZUPJVK
      UMAVBBUAVLVJUPUMVBUBUCQUDVJUPUQRVBUMURRUESVHDETUMURDEUFUGSUNVCCDUQUMVBABU
      LVAEUHFUIUJUSCETUKQ $.

    $( Restricted uniqueness using implicit substitution.  (Contributed by NM,
       23-Nov-1994.) $)
    reu4 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\
             A. x e. A A. y e. A ( ( ph /\ ps ) -> x = y ) ) ) $=
      ( wreu wrex wrmo wa weq wi wral reu5 rmo4 anbi2i bitri ) ACEGACEHZACEIZJR
      ABJCDKLDEMCEMZJACENSTRABCDEFOPQ $.

    $( Restricted uniqueness using implicit substitution.  (Contributed by NM,
       24-Oct-2006.) $)
    reu7 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\
             E. x e. A A. y e. A ( ps -> x = y ) ) ) $=
      ( vz wreu wrex weq wi wral wa equequ1 equcom syl6bb imbi12d cbvralv bitri
      reu3 rexbii imbi2d ralbidv cbvrexv anbi2i ) ACEHACEIZACGJZKZCELZGEIZMUFBC
      DJZKZDELZCEIZMACGETUJUNUFUJBGDJZKZDELZGEIUNUIUQGEUHUPCDEUKABUGUOFUKUGDGJU
      OCDGNDGOPQRUAUQUMGCEGCJZUPULDEURUOUKBGCDNUBUCUDSUES $.

    $( Restricted uniqueness using implicit substitution.  (Contributed by NM,
       24-Oct-2006.) $)
    reu8 $p |- ( E! x e. A ph <-> E. x e. A ( ph /\
                A. y e. A ( ps -> x = y ) ) ) $=
      ( wreu weq wb wral wrex wi wa cbvreuv reu6 cv wcel ralbii wal syl5bb a1i
      dfbi2 ancom equcom imbi2i biimt df-ral bi2.04 albii eleq1 imbi12d equcoms
      vex bicomd ceqsalv 3bitrri syl6bb anbi12d r19.26 syl6rbbr rexbiia 3bitri
      ) ACEGBDEGBDCHZIZDEJZCEKABCDHZLZDEJZMZCEKABCDEFNBDCEOVEVICEVEBVCLZVCBLZMZ
      DEJZCPZEQZVIVDVLDEBVCUBRVOVIVJDEJZVKDEJZMZVMVIVHAMVOVRAVHUCVOVHVPAVQVHVPI
      VOVGVJDEVFVCBCDUDUERUAVOAVOALZVQVOAUFVQDPZEQZVKLZDSVCWABLZLZDSVSVKDEUGWBW
      DDWAVCBUHUIWCVSDVNCUMWCVSICDVFVSWCVFVOWAABVNVTEUJFUKUNULUOUPUQURTVJVKDEUS
      UTTVAVB $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality has existential uniqueness.  (Contributed by Mario Carneiro,
       1-Sep-2015.) $)
    reueq $p |- ( B e. A <-> E! x e. A x = B ) $=
      ( wcel cv wceq wrex wreu risset wrmo wmo moeq mormo ax-mp mpbiran2 bitr4i
      reu5 ) CBDAECFZABGZRABHZACBITSRABJZRAKUAACLRABMNRABQOP $.
  $}

  $( Restricted "at most one" still holds when a conjunct is added.
     (Contributed by NM, 16-Jun-2017.) $)
  rmoan $p |- ( E* x e. A ph -> E* x e. A ( ps /\ ph ) ) $=
    ( cv wcel wa wmo wrmo moan an12 mobii sylib df-rmo 3imtr4i ) CEDFZAGZCHZPBA
    GZGZCHZACDISCDIRBQGZCHUAQBCJUBTCBPAKLMACDNSCDNO $.

  $( Restricted "at most one" is preserved through implication (note wff
     reversal).  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
  rmoim $p |- ( A. x e. A ( ph -> ps )
        -> ( E* x e. A ps -> E* x e. A ph ) ) $=
    ( wi wral cv wcel wa wal wrmo df-ral imdistan albii wmo moim df-rmo 3imtr4g
    bitri sylbi ) ABEZCDFZCGDHZAIZUCBIZEZCJZBCDKZACDKZEUBUCUAEZCJUGUACDLUJUFCUC
    ABMNSUGUECOUDCOUHUIUDUECPBCDQACDQRT $.

  ${
    rmoimia.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Restricted "at most one" is preserved through implication (note wff
       reversal).  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoimia $p |- ( E* x e. A ps -> E* x e. A ph ) $=
      ( wi wrmo rmoim mprg ) ABFBCDGACDGFCDABCDHEI $.
  $}

  ${
    rmoimi2.1 $e |- A. x ( ( x e. A /\ ph ) -> ( x e. B /\ ps ) ) $.
    $( Restricted "at most one" is preserved through implication (note wff
       reversal).  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoimi2 $p |- ( E* x e. B ps -> E* x e. A ph ) $=
      ( cv wcel wa wmo wrmo wi wal moim ax-mp df-rmo 3imtr4i ) CGZEHBIZCJZRDHAI
      ZCJZBCEKACDKUASLCMTUBLFUASCNOBCEPACDPQ $.
  $}

  ${
    $d x y A $.  $d x B $.
    $( A condition allowing swap of uniqueness and existential quantifiers.
       (Contributed by Thierry Arnoux, 7-Apr-2017.)  (Revised by NM,
       16-Jun-2017.) $)
    2reuswapdc $p |- ( DECID E. x E. y ( x e. A /\ ( y e. B /\ ph ) ) ->
        ( A. x e. A E* y e. B ph ->
          ( E! x e. A E. y e. B ph -> E! y e. B E. x e. A ph ) ) ) $=
      ( wral cv wcel wa wmo wex wrex wreu wal weu df-reu r19.42v df-rex bitri
      wi wrmo df-rmo ralbii df-ral moanimv albii bitr4i bitr3i an12 exbii eubii
      wdc 2euswapdc syl7bi imbi2i syl6ibr syl5bi ) ACEUAZBDFCGEHZAIZCJZBDFZBGDH
      ZUTIZCKZBKULZACELZBDMZABDLZCEMZTZURVABDACEUBUCVBVDCJZBNZVFVKVBVCVATZBNVMV
      ABDUDVLVNBVCUTCUEUFUGVFVMVHVDBKZCOZTVKVHVEBOZVFVMVPVHVCVGIZBOVQVGBDPVRVEB
      VRUSVCAIZIZCKZVEVRVSCELWAVCACEQVSCERUHVTVDCUSVCAUIUJSUKSVDBCUMUNVJVPVHVJU
      SVIIZCOVPVICEPWBVOCWBUTBDLVOUSABDQUTBDRUHUKSUOUPUQUQ $.
  $}

  ${
    $d w y z A $.  $d x z B $.  $d w x y z C $.  $d w y z ph $.  $d x z ps $.
    reuind.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    reuind.2 $e |- ( x = y -> A = B ) $.
    $( Existential uniqueness via an indirect equality.  (Contributed by NM,
       16-Oct-2010.) $)
    reuind $p |- ( ( A. x A. y ( ( ( A e. C /\ ph ) /\ ( B e. C /\ ps ) )
         -> A = B ) /\ E. x ( A e. C /\ ph ) )
                 -> E! z e. C A. x ( ( A e. C /\ ph ) -> z = A ) ) $=
      ( vw wcel wa wceq wi wal wex cv wrex bitri wral wreu eleq1d anbi12d exbii
      cbvexv r19.41v rexcom4 risset anbi1i 3bitr4ri wb eqeq2 imim2i an31 imbi1i
      bi2 impexp 3bitr3i sylib 2alimi 19.23v an12 adantr pm5.32ri bitr4i 19.42v
      syl eleq1 albii 19.21v expd reximdvai syl5bi imp pm4.24 biimpi prth eqtr3
      syl56 alanimi com12 syl5 a1d ralrimivv adantl imbi2d albidv reu4 sylanbrc
      eqeq1 ) FHLZAMZGHLZBMZMZFGNZOZDPCPZWMCQZMWMERZFNZOZCPZEHSZXDWMKRZFNZOZCPZ
      MZXAXFNZOZKHUAEHUAZXDEHUBWSWTXEWTXAGNZBMZDQZEHSZWSXEWTWODQZXQWMWOCDCRDRNZ
      WLWNABXSFGHJUCIUDUFXOEHSZDQXNEHSZBMZDQXQXRXTYBDXNBEHUGUEXOEDHUHWOYBDWNYAB
      EGHUIUJUEUKTWSXPXDEHWSXAHLZXPXDWSXNWOMZXCOZDPZCPZYCXPMZXDOZWRYECDWRWPXBXN
      ULZOZYEWQYJWPFGXAUMUNYKWPXNXBOZOZYEYJYLWPXBXNUQUNWPXNMZXBOYDWMMZXBOYMYEYN
      YOXBWMWOXNUOUPWPXNXBURYDWMXBURUSUTVHVAYGYHXCOZCPYIYFYPCYFYDDQZXCOYPYDXCDV
      BYQYHXCYQYCXOMZDQYHYDYRDYDWNXOMYRXNWNBVCXOYCWNXNYCWNULBXAGHVIVDVEVFUEYCXO
      DVGTUPTVJYHXCCVKTUTVLVMVNVOWTXMWSWTXLEKHHWTXLYCXFHLMXJWMXKOZCPZWTXKXCXHYS
      CWMWMWMMZXCXHMXBXGMXKWMUUAWMVPVQWMXBWMXGVRXAXFFVSVTWAYTWTXKYTWTXKOWMXKCVB
      VQWBWCWDWEWFXDXIEKHXKXCXHCXKXBXGWMXAXFFWKWGWHWIWJ $.
  $}

  ${
    $d y A $.  $d x B $.  $d x y $.
    $( Double restricted quantification with "at most one," analogous to
       ~ 2moex .  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    2rmorex $p |- ( E* x e. A E. y e. B ph -> A. y e. B E* x e. A ph ) $=
      ( wrex wrmo cv wcel wa wmo wal wral wex df-rex mobii df-rmo albii sylib
      wi anbi2i 19.42v 3bitr4i 2moex sylbi moanimv df-ral imbi2i bitri sylibr
      an12 ) ACEFZBDGZCHEIZBHDIZAJZBKZTZCLZABDGZCEMZUMUNUPJZBKZCLZUSUMUOUNAJZJZ
      BKZCLZVDUMVFCNZBKZVHUOULJZBKUOVECNZJZBKUMVJVKVMBULVLUOACEOUAPULBDQVIVMBUO
      VECUBPUCVFBCUDUEVGVCCVFVBBUOUNAUKPRSVCURCUNUPBUFRSVAUNUTTZCLUSUTCEUGVNURC
      UTUQUNABDQUHRUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    nelrdva.1 $e |- ( ( ph /\ x e. A ) -> x =/= B ) $.
    $( Deduce negative membership from an implication.  (Contributed by Thierry
       Arnoux, 27-Nov-2017.) $)
    nelrdva $p |- ( ph -> -. B e. A ) $=
      ( wcel wceq wa eqidd wne cv wi eleq1 anbi2d imbi12d vtoclg anabsi7 neneqd
      neeq1 pm2.65da ) ADCFZDDGAUAHZDIUBDDAUADDJZABKZCFZHZUDDJZLUBUCLBDCUDDGZUF
      UBUGUCUHUEUAAUDDCMNUDDDSOEPQRT $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    Conditional equality (experimental)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This is a very useless definition, which "abbreviates" ` ( x = y -> ph ) ` as
  ` CondEq ( x = y -> ph ) ` . What this display hides, though, is that the
  first expression, even though it has a shorter constant string, is actually
  much more complicated in its parse tree: it is parsed as
  (wi (wceq (cv vx) (cv vy)) wph), while the ` CondEq ` version is parsed as
  (wcdeq vx vy wph).  It also allows us to give a name to the specific 3-ary
  operation ` ( x = y -> ph ) ` .

  This is all used as part of a metatheorem: we want to say that
  ` |- ( x = y -> ( ph ( x ) <-> ph ( y ) ) ) ` and
  ` |- ( x = y -> A ( x ) = A ( y ) ) ` are provable, for any expressions
  ` ph ( x ) ` or ` A ( x ) ` in the language.  The proof is by induction, so
  the base case is each of the primitives, which is why you will see a theorem
  for each of the set.mm primitive operations.

  The metatheorem comes with a disjoint variables assumption: every variable in
  ` ph ( x ) ` is assumed disjoint from ` x ` except ` x ` itself.  For such a
  proof by induction, we must consider each of the possible forms of
  ` ph ( x ) ` .  If it is a variable other than ` x ` , then we have
  ` CondEq ( x = y -> A = A ) ` or ` CondEq ( x = y -> ( ph <-> ph ) ) ` ,
  which is provable by ~ cdeqth and reflexivity.  Since we are only working
  with class and wff expressions, it can't be ` x ` itself in set.mm, but if it
  was we'd have to also prove ` CondEq ( x = y -> x = y ) ` (where _set_
  equality is being used on the right).

  Otherwise, it is a primitive operation applied to smaller expressions.  In
  these cases, for each setvar variable parameter to the operation, we must
  consider if it is equal to ` x ` or not, which yields 2^n proof obligations.
  Luckily, all primitive operations in set.mm have either zero or one set
  variable, so we only need to prove one statement for the non-set constructors
  (like implication) and two for the constructors taking a set (the forall and
  the class builder).

  In each of the primitive proofs, we are allowed to assume that ` y ` is
  disjoint from ` ph ( x ) ` and vice versa, because this is maintained through
  the induction.  This is how we satisfy the DV assumptions of ~ cdeqab1 and
  ~ cdeqab .

$)

  $c CondEq $. $( conditional equality $)

  $( Extend wff notation to include conditional equality.  This is a technical
     device used in the proof that ` F/ ` is the not-free predicate, and that
     definitions are conservative as a result. $)
  wcdeq $a wff CondEq ( x = y -> ph ) $.

  $( Define conditional equality.  All the notation to the left of the ` <-> `
     is fake; the parentheses and arrows are all part of the notation, which
     could equally well be written ` CondEq x y ph ` .  On the right side is
     the actual implication arrow.  The reason for this definition is to
     "flatten" the structure on the right side (whose tree structure is
     something like (wi (wceq (cv vx) (cv vy)) wph) ) into just (wcdeq vx vy
     wph).  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  df-cdeq $a |- ( CondEq ( x = y -> ph ) <-> ( x = y -> ph ) ) $.

  ${
    cdeqi.1 $e |- ( x = y -> ph ) $.
    $( Deduce conditional equality.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    cdeqi $p |- CondEq ( x = y -> ph ) $=
      ( wcdeq weq wi df-cdeq mpbir ) ABCEBCFAGDABCHI $.
  $}

  ${
    cdeqri.1 $e |- CondEq ( x = y -> ph ) $.
    $( Property of conditional equality.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    cdeqri $p |- ( x = y -> ph ) $=
      ( wcdeq weq wi df-cdeq mpbi ) ABCEBCFAGDABCHI $.
  $}

  ${
    cdeqth.1 $e |- ph $.
    $( Deduce conditional equality from a theorem.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqth $p |- CondEq ( x = y -> ph ) $=
      ( weq a1i cdeqi ) ABCABCEDFG $.
  $}

  ${
    cdeqnot.1 $e |- CondEq ( x = y -> ( ph <-> ps ) ) $.
    $( Distribute conditional equality over negation.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqnot $p |- CondEq ( x = y -> ( -. ph <-> -. ps ) ) $=
      ( wn wb weq cdeqri notbid cdeqi ) AFBFGCDCDHABABGCDEIJK $.

    ${
      $d x z $.  $d y z $.
      $( Distribute conditional equality over quantification.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqal $p |- CondEq ( x = y -> ( A. z ph <-> A. z ps ) ) $=
        ( wal wb weq cdeqri albidv cdeqi ) AEGBEGHCDCDIABEABHCDFJKL $.

      $( Distribute conditional equality over abstraction.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqab $p |- CondEq ( x = y -> { z | ph } = { z | ps } ) $=
        ( cab wceq weq wb cdeqri abbidv cdeqi ) AEGBEGHCDCDIABEABJCDFKLM $.
    $}

    ${
      $d x ps $.  $d y ph $.
      $( Distribute conditional equality over quantification.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqal1 $p |- CondEq ( x = y -> ( A. x ph <-> A. y ps ) ) $=
        ( wal wb cdeqri cbvalv cdeqth ) ACFBDFGCDABCDABGCDEHIJ $.

      $( Distribute conditional equality over abstraction.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqab1 $p |- CondEq ( x = y -> { x | ph } = { y | ps } ) $=
        ( cab wceq wb cdeqri cbvabv cdeqth ) ACFBDFGCDABCDABHCDEIJK $.
    $}

    cdeqim.1 $e |- CondEq ( x = y -> ( ch <-> th ) ) $.
    $( Distribute conditional equality over implication.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqim $p |- CondEq ( x = y -> ( ( ph -> ch ) <-> ( ps -> th ) ) ) $=
      ( wi wb weq cdeqri imbi12d cdeqi ) ACIBDIJEFEFKABCDABJEFGLCDJEFHLMN $.
  $}

  $( Conditional equality for set-to-class promotion.  (Contributed by Mario
     Carneiro, 11-Aug-2016.) $)
  cdeqcv $p |- CondEq ( x = y -> x = y ) $=
    ( weq id cdeqi ) ABCZABFDE $.

  ${
    cdeqeq.1 $e |- CondEq ( x = y -> A = B ) $.
    cdeqeq.2 $e |- CondEq ( x = y -> C = D ) $.
    $( Distribute conditional equality over equality.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqeq $p |- CondEq ( x = y -> ( A = C <-> B = D ) ) $=
      ( wceq wb weq cdeqri eqeq12d cdeqi ) CEIDFIJABABKCDEFCDIABGLEFIABHLMN $.

    $( Distribute conditional equality over elementhood.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqel $p |- CondEq ( x = y -> ( A e. C <-> B e. D ) ) $=
      ( wcel wb weq wceq cdeqri eleq12d cdeqi ) CEIDFIJABABKCDEFCDLABGMEFLABHMN
      O $.
  $}

  ${
    $d x ps $.  $d y ph $.
    nfcdeq.1 $e |- F/ x ph $.
    nfcdeq.2 $e |- CondEq ( x = y -> ( ph <-> ps ) ) $.
    $( If we have a conditional equality proof, where ` ph ` is ` ph ( x ) `
       and ` ps ` is ` ph ( y ) ` , and ` ph ( x ) ` in fact does not have
       ` x ` free in it according to ` F/ ` , then ` ph ( x ) <-> ph ( y ) `
       unconditionally.  This proves that ` F/ x ph ` is actually a not-free
       predicate.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfcdeq $p |- ( ph <-> ps ) $=
      ( wsb sbf nfv wb cdeqri sbie bitr3i ) AACDGBACDEHABCDBCIABJCDFKLM $.
  $}

  ${
    $d x z B $.  $d y z A $.
    nfccdeq.1 $e |- F/_ x A $.
    nfccdeq.2 $e |- CondEq ( x = y -> A = B ) $.
    $( Variation of ~ nfcdeq for classes.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfccdeq $p |- A = B $=
      ( vz cv wcel nfcri weq equid cdeqth cdeqel nfcdeq eqriv ) GCDGHZCIQDIABAG
      CEJABQQCDGGKABGLMFNOP $.
  $}

  $( Let the computer know the theorems to look for to prove the metatheorem $)
  $( $j
    condequality 'wcdeq' from 'cdeqth';
    condcongruence 'cdeqnot' 'cdeqim' 'cdeqal1' 'cdeqal' 'cdeqcv' 'cdeqeq'
      'cdeqel' 'cdeqab1' 'cdeqab';
    notfree 'wnf' from 'nfcdeq';
    notfree 'wnfc' from 'nfccdeq';
  $)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    Russell's Paradox
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( Russell's Paradox.  Proposition 4.14 of [TakeutiZaring] p. 14.

       In the late 1800s, Frege's Axiom of (unrestricted) Comprehension,
       expressed in our notation as ` A e. _V ` , asserted that any collection
       of sets ` A ` is a set i.e. belongs to the universe ` _V ` of all sets.
       In particular, by substituting ` { x | x e/ x } ` (the "Russell class")
       for ` A ` , it asserted ` { x | x e/ x } e. _V ` , meaning that the
       "collection of all sets which are not members of themselves" is a set.
       However, here we prove ` { x | x e/ x } e/ _V ` .  This contradiction
       was discovered by Russell in 1901 (published in 1903), invalidating the
       Comprehension Axiom and leading to the collapse of Frege's system.

       In 1908, Zermelo rectified this fatal flaw by replacing Comprehension
       with a weaker Subset (or Separation) Axiom asserting that ` A ` is a set
       only when it is smaller than some other set ` B ` .  The intuitionistic
       set theory IZF includes such a separation axiom, Axiom 6 of [Crosilla]
       p.  "Axioms of CZF and IZF", which we include as ~ ax-sep .
       (Contributed by NM, 7-Aug-1994.) $)
    ru $p |- { x | x e/ x } e/ _V $=
      ( vy cv wnel cab cvv wcel wn wceq wex wel wal pm5.19 eleq1 df-nel eleq12d
      wb id notbid mtbir syl5bb bibi12d spv mto abeq2 nex isset mpbir ) ACZUIDZ
      AEZFDUKFGZHULBCZUKIZBJUNBUNABKZUJQZALZUQBBKZURHZQZURMUPUTABUIUMIZUOURUJUS
      UIUMUMNUJAAKZHVAUSUIUIOVAVBURVAUIUMUIUMVARZVCPSUAUBUCUDUJAUMUETUFBUKUGTUK
      FOUH $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Proper substitution of classes for sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [. $.
  $c ]. $.

  $( Extend wff notation to include the proper substitution of a class for a
     set.  Read this notation as "the proper substitution of class ` A ` for
     setvar variable ` x ` in wff ` ph ` ." $)
  wsbc $a wff [. A / x ]. ph $.

  $( Define the proper substitution of a class for a set.

     When ` A ` is a proper class, our definition evaluates to false.  This is
     somewhat arbitrary: we could have, instead, chosen the conclusion of
     ~ sbc6 for our definition, which always evaluates to true for proper
     classes.

     Our definition also does not produce the same results as discussed in the
     proof of Theorem 6.6 of [Quine] p. 42 (although Theorem 6.6 itself does
     hold, as shown by ~ dfsbcq below).  Unfortunately, Quine's definition
     requires a recursive syntactical breakdown of ` ph ` , and it does not
     seem possible to express it with a single closed formula.

     If we did not want to commit to any specific proper class behavior, we
     could use this definition _only_ to prove theorem ~ dfsbcq , which holds
     for both our definition and Quine's, and from which we can derive a weaker
     version of ~ df-sbc in the form of ~ sbc8g .  However, the behavior of
     Quine's definition at proper classes is similarly arbitrary, and for
     practical reasons (to avoid having to prove sethood of ` A ` in every use
     of this definition) we allow direct reference to ~ df-sbc and assert that
     ` [. A / x ]. ph ` is always false when ` A ` is a proper class.

     The related definition df-csb defines proper substitution into a class
     variable (as opposed to a wff variable).  (Contributed by NM,
     14-Apr-1995.)  (Revised by NM, 25-Dec-2016.) $)
  df-sbc $a |- ( [. A / x ]. ph <-> A e. { x | ph } ) $.

  $( This theorem, which is similar to Theorem 6.7 of [Quine] p. 42 and holds
     under both our definition and Quine's, provides us with a weak definition
     of the proper substitution of a class for a set.  Since our ~ df-sbc does
     not result in the same behavior as Quine's for proper classes, if we
     wished to avoid conflict with Quine's definition we could start with this
     theorem and ~ dfsbcq2 instead of ~ df-sbc .  ( ~ dfsbcq2 is needed because
     unlike Quine we do not overload the ~ df-sb syntax.)  As a consequence of
     these theorems, we can derive ~ sbc8g , which is a weaker version of
     ~ df-sbc that leaves substitution undefined when ` A ` is a proper class.

     However, it is often a nuisance to have to prove the sethood hypothesis of
     ~ sbc8g , so we will allow direct use of ~ df-sbc .  Proper substiution
     with a proper class is rarely needed, and when it is, we can simply use
     the expansion of Quine's definition.  (Contributed by NM, 14-Apr-1995.) $)
  dfsbcq $p |- ( A = B -> ( [. A / x ]. ph <-> [. B / x ]. ph ) ) $=
    ( wceq cab wcel wsbc eleq1 df-sbc 3bitr4g ) CDECABFZGDLGABCHABDHCDLIABCJABD
    JK $.

  $( This theorem, which is similar to Theorem 6.7 of [Quine] p. 42 and holds
     under both our definition and Quine's, relates logic substitution ~ df-sb
     and substitution for class variables ~ df-sbc .  Unlike Quine, we use a
     different syntax for each in order to avoid overloading it.  See remarks
     in ~ dfsbcq .  (Contributed by NM, 31-Dec-2016.) $)
  dfsbcq2 $p |- ( y = A -> ( [ y / x ] ph <-> [. A / x ]. ph ) ) $=
    ( cv wceq cab wcel wsb wsbc eleq1 df-clab df-sbc bicomi 3bitr3g ) CEZDFPABG
    ZHDQHZABCIABDJZPDQKACBLSRABDMNO $.

  $( Show that ~ df-sb and ~ df-sbc are equivalent when the class term ` A ` in
     ~ df-sbc is a setvar variable.  This theorem lets us reuse theorems based
     on ~ df-sb for proofs involving ~ df-sbc .  (Contributed by NM,
     31-Dec-2016.)  (Proof modification is discouraged.) $)
  sbsbc $p |- ( [ y / x ] ph <-> [. y / x ]. ph ) $=
    ( weq wsb cv wsbc wb eqid dfsbcq2 ax-mp ) CCDABCEABCFZGHLIABCLJK $.

  ${
    sbceq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for class substitution.  (Contributed by Mario
       Carneiro, 9-Feb-2017.)  (Revised by NM, 30-Jun-2018.) $)
    sbceq1d $p |- ( ph -> ( [. A / x ]. ps <-> [. B / x ]. ps ) ) $=
      ( wceq wsbc wb dfsbcq syl ) ADEGBCDHBCEHIFBCDEJK $.

    sbceq1dd.2 $e |- ( ph -> [. A / x ]. ps ) $.
    $( Equality theorem for class substitution.  (Contributed by Mario
       Carneiro, 9-Feb-2017.)  (Revised by NM, 30-Jun-2018.) $)
    sbceq1dd $p |- ( ph -> [. B / x ]. ps ) $=
      ( wsbc sbceq1d mpbid ) ABCDHBCEHGABCDEFIJ $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( This is the closest we can get to ~ df-sbc if we start from ~ dfsbcq
       (see its comments) and ~ dfsbcq2 .  (Contributed by NM, 18-Nov-2008.)
       (Proof shortened by Andrew Salmon, 29-Jun-2011.)
       (Proof modification is discouraged.) $)
    sbc8g $p |- ( A e. V -> ( [. A / x ]. ph <-> A e. { x | ph } ) ) $=
      ( vy cv wsbc cab wcel dfsbcq eleq1 wsb df-clab weq wb equid dfsbcq2 ax-mp
      bitr2i vtoclbg ) ABEFZGZUAABHZIZABCGCUCIECDABUACJUACUCKUDABELZUBAEBMEENUE
      UBOEPABEUAQRST $.
  $}

  $( By our definition of proper substitution, it can only be true if the
     substituted expression is a set.  (Contributed by Mario Carneiro,
     13-Oct-2016.) $)
  sbcex $p |- ( [. A / x ]. ph -> A e. _V ) $=
    ( wsbc cab wcel cvv df-sbc elex sylbi ) ABCDCABEZFCGFABCHCKIJ $.

  $( Equality theorem for class substitution.  Class version of ~ sbequ12 .
     (Contributed by NM, 26-Sep-2003.) $)
  sbceq1a $p |- ( x = A -> ( ph <-> [. A / x ]. ph ) ) $=
    ( wsb cv wceq wsbc sbid dfsbcq2 syl5bbr ) AABBDBECFABCGABHABBCIJ $.

  $( Equality theorem for class substitution.  Class version of ~ sbequ12r .
     (Contributed by NM, 4-Jan-2017.) $)
  sbceq2a $p |- ( A = x -> ( [. A / x ]. ph <-> ph ) ) $=
    ( cv wceq wsbc wb sbceq1a eqcoms bicomd ) CBDZEAABCFZALGKCABCHIJ $.

  ${
    $d ph y $.  $d A y $.  $d x y $.
    $( Specialization: if a formula is true for all sets, it is true for any
       class which is a set.  Similar to Theorem 6.11 of [Quine] p. 44.  See
       also ~ stdpc4 and ~ rspsbc .  (Contributed by NM, 16-Jan-2004.) $)
    spsbc $p |- ( A e. V -> ( A. x ph -> [. A / x ]. ph ) ) $=
      ( vy wal wsbc wi cv wceq wsb stdpc4 sbsbc sylib dfsbcq syl5ib vtocleg ) A
      BFZABCGZHECDRABEIZGZTCJSRABEKUAABELABEMNABTCOPQ $.

    spsbcd.1 $e |- ( ph -> A e. V ) $.
    spsbcd.2 $e |- ( ph -> A. x ps ) $.
    $( Specialization: if a formula is true for all sets, it is true for any
       class which is a set.  Similar to Theorem 6.11 of [Quine] p. 44.  See
       also ~ stdpc4 and ~ rspsbc .  (Contributed by Mario Carneiro,
       9-Feb-2017.) $)
    spsbcd $p |- ( ph -> [. A / x ]. ps ) $=
      ( wcel wal wsbc spsbc sylc ) ADEHBCIBCDJFGBCDEKL $.
  $}

  ${
    sbcth.1 $e |- ph $.
    $( A substitution into a theorem remains true (when ` A ` is a set).
       (Contributed by NM, 5-Nov-2005.) $)
    sbcth $p |- ( A e. V -> [. A / x ]. ph ) $=
      ( wcel wal wsbc ax-gen spsbc mpi ) CDFABGABCHABEIABCDJK $.
  $}

  ${
    $d x ph $.
    sbcthdv.1 $e |- ( ph -> ps ) $.
    $( Deduction version of ~ sbcth .  (Contributed by NM, 30-Nov-2005.)
       (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    sbcthdv $p |- ( ( ph /\ A e. V ) -> [. A / x ]. ps ) $=
      ( wal wcel wsbc alrimiv spsbc mpan9 ) ABCGDEHBCDIABCFJBCDEKL $.
  $}

  $( An identity theorem for substitution.  See ~ sbid .  (Contributed by Mario
     Carneiro, 18-Feb-2017.) $)
  sbcid $p |- ( [. x / x ]. ph <-> ph )
    $=
    ( cv wsbc wsb sbsbc sbid bitr3i ) ABBCDABBEAABBFABGH $.

  ${
    nfsbc1d.2 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfsbc1 .  (Contributed by NM, 23-May-2006.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc1d $p |- ( ph -> F/ x [. A / x ]. ps ) $=
      ( wsbc cab wcel df-sbc wnfc nfab1 a1i nfeld nfxfrd ) BCDFDBCGZHACBCDIACDO
      ECOJABCKLMN $.
  $}

  ${
    nfsbc1.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for class substitution.  (Contributed
       by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc1 $p |- F/ x [. A / x ]. ph $=
      ( wsbc wnf wtru wnfc a1i nfsbc1d trud ) ABCEBFGABCBCHGDIJK $.
  $}

  ${
    $d x A $.
    $( Bound-variable hypothesis builder for class substitution.  (Contributed
       by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc1v $p |- F/ x [. A / x ]. ph $=
      ( nfcv nfsbc1 ) ABCBCDE $.
  $}

  ${
    nfsbcd.1 $e |- F/ y ph $.
    nfsbcd.2 $e |- ( ph -> F/_ x A ) $.
    nfsbcd.3 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfsbc .  (Contributed by NM, 23-Nov-2005.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfsbcd $p |- ( ph -> F/ x [. A / y ]. ps ) $=
      ( wsbc cab wcel df-sbc nfabd nfeld nfxfrd ) BDEIEBDJZKACBDELACEPGABCDFHMN
      O $.
  $}

  ${
    nfsbc.1 $e |- F/_ x A $.
    nfsbc.2 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for class substitution.  (Contributed
       by NM, 7-Sep-2014.)  (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc $p |- F/ x [. A / y ]. ph $=
      ( wsbc wnf wtru nftru wnfc a1i nfsbcd trud ) ACDGBHIABCDCJBDKIELABHIFLMN
      $.
  $}

  ${
    $d x z $.  $d z A $.  $d y z ph $.
    $( A composition law for class substitution.  (Contributed by NM,
       26-Sep-2003.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    sbcco $p |- ( [. A / y ]. [. y / x ]. ph <-> [. A / x ]. ph ) $=
      ( vz cv wsbc cvv wcel sbcex dfsbcq wsb sbsbc sbbii sbco2 3bitr3ri vtoclbg
      nfv bitri pm5.21nii ) ABCFGZCDGZDHIABDGZUACDJABDJUACEFZGZABUDGZUBUCEDHUAC
      UDDKABUDDKUEABELZUFABCLZCELUACELUGUEUHUACEABCMNABECACROUACEMPABEMSQT $.
  $}

  ${
    $d x y $.  $d y ph $.  $d A y $.
    sbcco2.1 $e |- ( x = y -> A = B ) $.
    $( A composition law for class substitution.  Importantly, ` x ` may occur
       free in the class expression substituted for ` A ` .  (Contributed by
       NM, 5-Sep-2004.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    sbcco2 $p |- ( [. x / y ]. [. B / x ]. ph <-> [. A / x ]. ph ) $=
      ( wsbc cv wsb sbsbc nfv weq wceq wb equcoms dfsbcq bicomd syl sbie bitr3i
      ) ABEGZCBHGUACBIABDGZUACBJUAUBCBUBCKCBLDEMZUAUBNUCBCFOUCUBUAABDEPQRST $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( An equivalence for class substitution.  (Contributed by NM,
       23-Aug-1993.)  (Revised by Mario Carneiro, 12-Oct-2016.) $)
    sbc5 $p |- ( [. A / x ]. ph <-> E. x ( x = A /\ ph ) ) $=
      ( vy wsbc cvv wcel cv wceq wex sbcex exsimpl isset sylibr wsb weq dfsbcq2
      wa eqeq2 anbi1d exbidv sb5 vtoclbg pm5.21nii ) ABCEZCFGZBHZCIZARZBJZABCKU
      JUHBJUFUHABLBCMNABDOBDPZARZBJUEUJDCFABDCQDHZCIZULUIBUNUKUHAUMCUGSTUAABDUB
      UCUD $.
  $}

  ${
    $d x y A $.
    $( An equivalence for class substitution.  (Contributed by NM,
       11-Oct-2004.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    sbc6g $p |- ( A e. V -> ( [. A / x ]. ph <-> A. x ( x = A -> ph ) ) ) $=
      ( wcel cv wceq wi wal wa wex wsbc nfe1 ceqex ceqsalg sbc5 syl6rbbr ) CDEB
      FCGZAHBIRAJZBKZABCLATBCDSBMABCNOABCPQ $.
  $}

  ${
    $d x A $.
    sbc6.1 $e |- A e. _V $.
    $( An equivalence for class substitution.  (Contributed by NM,
       23-Aug-1993.)  (Proof shortened by Eric Schmidt, 17-Jan-2007.) $)
    sbc6 $p |- ( [. A / x ]. ph <-> A. x ( x = A -> ph ) ) $=
      ( cvv wcel wsbc cv wceq wi wal wb sbc6g ax-mp ) CEFABCGBHCIAJBKLDABCEMN
      $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( An equivalence for class substitution in the spirit of ~ df-clab .  Note
       that ` x ` and ` A ` don't have to be distinct.  (Contributed by NM,
       18-Nov-2008.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    sbc7 $p |- ( [. A / x ]. ph <-> E. y ( y = A /\ [. y / x ]. ph ) ) $=
      ( wsbc cv wceq wa wex sbcco sbc5 bitr3i ) ABDEABCFZEZCDEMDGNHCIABCDJNCDKL
      $.
  $}

  ${
    cbvsbc.1 $e |- F/ y ph $.
    cbvsbc.2 $e |- F/ x ps $.
    cbvsbc.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variables in a wff substitution.  (Contributed by Jeff
       Hankins, 19-Sep-2009.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    cbvsbc $p |- ( [. A / x ]. ph <-> [. A / y ]. ps ) $=
      ( cab wcel wsbc cbvab eleq2i df-sbc 3bitr4i ) EACIZJEBDIZJACEKBDEKPQEABCD
      FGHLMACENBDENO $.
  $}

  ${
    $d y ph $.  $d x ps $.
    cbvsbcv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change the bound variable of a class substitution using implicit
       substitution.  (Contributed by NM, 30-Sep-2008.)  (Revised by Mario
       Carneiro, 13-Oct-2016.) $)
    cbvsbcv $p |- ( [. A / x ]. ph <-> [. A / y ]. ps ) $=
      ( nfv cbvsbc ) ABCDEADGBCGFH $.
  $}

  ${
    $d x y A $.  $d y ps $.
    $( Conversion of implicit substitution to explicit class substitution,
       using a bound-variable hypothesis instead of distinct variables.
       (Closed theorem version of ~ sbciegf .)  (Contributed by NM,
       10-Nov-2005.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    sbciegft $p |- ( ( A e. V /\ F/ x ps /\
            A. x ( x = A -> ( ph <-> ps ) ) ) -> ( [. A / x ]. ph <-> ps ) ) $=
      ( wcel wnf cv wceq wb wi wal w3a wsbc imim2i alimi biimpa sylan2 3adant1
      wa wex sbc5 bi1 impd 19.23t syl5bi bi2 com23 19.21t sbc6g 3ad2ant1 impbid
      sylibrd ) DEFZBCGZCHDIZABJZKZCLZMZACDNZBVAUPATZCUAZUTBACDUBUOUSVCBKZUNUSU
      OVBBKZCLZVDURVECURUPABUQABKUPABUCOUDPUOVFVDVBBCUEQRSUFUTBUPAKZCLZVAUOUSBV
      HKZUNUSUOBVGKZCLZVIURVJCURUPBAUQBAKUPABUGOUHPUOVKVIBVGCUIQRSUNUOVAVHJUSAC
      DEUJUKUMUL $.
  $}

  ${
    $d x A $.
    sbciegf.1 $e |- F/ x ps $.
    sbciegf.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 14-Dec-2005.)  (Revised by Mario Carneiro,
       13-Oct-2016.) $)
    sbciegf $p |- ( A e. V -> ( [. A / x ]. ph <-> ps ) ) $=
      ( wcel wnf cv wceq wb wi wal wsbc ax-gen sbciegft mp3an23 ) DEHBCICJDKABL
      MZCNACDOBLFSCGPABCDEQR $.
  $}

  ${
    $d x A $.  $d x ps $.
    sbcieg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 10-Nov-2005.) $)
    sbcieg $p |- ( A e. V -> ( [. A / x ]. ph <-> ps ) ) $=
      ( nfv sbciegf ) ABCDEBCGFH $.
  $}

  ${
    $d x y $.  $d A y $.  $d ch y $.  $d ph y $.  $d ps x $.
    sbcie2g.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    sbcie2g.2 $e |- ( y = A -> ( ps <-> ch ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       This version of ~ sbcie avoids a disjointness condition on ` x ` and
       ` A ` by substituting twice.  (Contributed by Mario Carneiro,
       15-Oct-2016.) $)
    sbcie2g $p |- ( A e. V -> ( [. A / x ]. ph <-> ch ) ) $=
      ( cv wsbc dfsbcq wsb sbsbc nfv sbie bitr3i vtoclbg ) ADEJZKZBADFKCEFGADSF
      LITADEMBADENABDEBDOHPQR $.
  $}

  ${
    $d x A $.  $d x ps $.
    sbcie.1 $e |- A e. _V $.
    sbcie.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 4-Sep-2004.) $)
    sbcie $p |- ( [. A / x ]. ph <-> ps ) $=
      ( cvv wcel wsbc wb sbcieg ax-mp ) DGHACDIBJEABCDGFKL $.
  $}

  ${
    $d x A $.
    sbcied.1 $e |- ( ph -> A e. V ) $.
    sbcied.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    ${
      sbciedf.3 $e |- F/ x ph $.
      sbciedf.4 $e |- ( ph -> F/ x ch ) $.
      $( Conversion of implicit substitution to explicit class substitution,
         deduction form.  (Contributed by NM, 29-Dec-2014.) $)
      sbciedf $p |- ( ph -> ( [. A / x ]. ps <-> ch ) ) $=
        ( wcel wnf cv wceq wb wi wal wsbc ex alrimi sbciegft syl3anc ) AEFKCDLD
        MENZBCOZPZDQBDERCOGJAUEDIAUCUDHSTBCDEFUAUB $.
    $}

    $d x ph $.  $d x ch $.
    $( Conversion of implicit substitution to explicit class substitution,
       deduction form.  (Contributed by NM, 13-Dec-2014.) $)
    sbcied $p |- ( ph -> ( [. A / x ]. ps <-> ch ) ) $=
      ( nfv nfvd sbciedf ) ABCDEFGHADIACDJK $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x ch $.
    sbcied2.1 $e |- ( ph -> A e. V ) $.
    sbcied2.2 $e |- ( ph -> A = B ) $.
    sbcied2.3 $e |- ( ( ph /\ x = B ) -> ( ps <-> ch ) ) $.
    $( Conversion of implicit substitution to explicit class substitution,
       deduction form.  (Contributed by NM, 13-Dec-2014.) $)
    sbcied2 $p |- ( ph -> ( [. A / x ]. ps <-> ch ) ) $=
      ( cv wceq wb id sylan9eqr syldan sbcied ) ABCDEGHADKZELZRFLBCMSAREFSNIOJP
      Q $.
  $}

  ${
    $d y A $.  $d y B $.  $d y ph $.  $d x y $.
    elrabsf.1 $e |- F/_ x B $.
    $( Membership in a restricted class abstraction, expressed with explicit
       class substitution.  (The variation ~ elrabf has implicit
       substitution).  The hypothesis specifies that ` x ` must not be a free
       variable in ` B ` .  (Contributed by NM, 30-Sep-2003.)  (Proof shortened
       by Mario Carneiro, 13-Oct-2016.) $)
    elrabsf $p |- ( A e. { x e. B | ph }
          <-> ( A e. B /\ [. A / x ]. ph ) ) $=
      ( vy cv wsbc crab dfsbcq nfcv nfv nfsbc1v sbceq1a cbvrab elrab2 ) ABFGZHZ
      ABCHFCDABDIABQCJARBFDEFDKAFLABQMABQNOP $.
  $}

  ${
    $d x y B $.  $d y A $.
    $( Substitution applied to an atomic wff.  Set theory version of ~ eqsb3 .
       (Contributed by Andrew Salmon, 29-Jun-2011.) $)
    eqsbc3 $p |- ( A e. V -> ( [. A / x ]. x = B <-> A = B ) ) $=
      ( vy cv wceq wsbc dfsbcq eqeq1 wsb sbsbc eqsb3 bitr3i vtoclbg ) AFCGZAEFZ
      HZQCGZPABHBCGEBDPAQBIQBCJRPAEKSPAELEACMNO $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ph $.  $d y ps $.
    $( Move negation in and out of class substitution.  (Contributed by NM,
       16-Jan-2004.) $)
    sbcng $p |- ( A e. V -> ( [. A / x ]. -. ph <-> -. [. A / x ]. ph ) ) $=
      ( vy wn wsb wsbc dfsbcq2 cv wceq notbid sbn vtoclbg ) AFZBEGABEGZFOBCHABC
      HZFECDOBECIEJCKPQABECILABEMN $.

    $( Distribution of class substitution over implication.  (Contributed by
       NM, 16-Jan-2004.) $)
    sbcimg $p |- ( A e. V ->
     ( [. A / x ]. ( ph -> ps ) <-> ( [. A / x ]. ph -> [. A / x ]. ps ) ) ) $=
      ( vy wi wsb wsbc dfsbcq2 cv wceq imbi12d sbim vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.

    $( Distribution of class substitution over conjunction.  (Contributed by
       NM, 31-Dec-2016.) $)
    sbcan $p |- ( [. A / x ]. ( ph /\ ps )
        <-> ( [. A / x ]. ph /\ [. A / x ]. ps ) ) $=
      ( vy wa wsbc cvv wcel sbcex adantl dfsbcq2 cv wceq anbi12d sban pm5.21nii
      wsb vtoclbg ) ABFZCDGZDHIZACDGZBCDGZFZTCDJUDUBUCBCDJKTCERACERZBCERZFUAUEE
      DHTCEDLEMDNUFUCUGUDACEDLBCEDLOABCEPSQ $.

    $( Distribution of class substitution over conjunction.  (Contributed by
       NM, 21-May-2004.) $)
    sbcang $p |- ( A e. V ->
     ( [. A / x ]. ( ph /\ ps ) <-> ( [. A / x ]. ph /\ [. A / x ]. ps ) ) ) $=
      ( vy wa wsb wsbc dfsbcq2 cv wceq anbi12d sban vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.

    $( Distribution of class substitution over disjunction.  (Contributed by
       NM, 31-Dec-2016.) $)
    sbcor $p |- ( [. A / x ]. ( ph \/ ps )
         <-> ( [. A / x ]. ph \/ [. A / x ]. ps ) ) $=
      ( vy wo wsbc cvv wcel sbcex jaoi wsb dfsbcq2 cv wceq orbi12d sbor vtoclbg
      pm5.21nii ) ABFZCDGZDHIZACDGZBCDGZFZTCDJUCUBUDACDJBCDJKTCELACELZBCELZFUAU
      EEDHTCEDMENDOUFUCUGUDACEDMBCEDMPABCEQRS $.

    $( Distribution of class substitution over disjunction.  (Contributed by
       NM, 21-May-2004.) $)
    sbcorg $p |- ( A e. V ->
     ( [. A / x ]. ( ph \/ ps ) <-> ( [. A / x ]. ph \/ [. A / x ]. ps ) ) ) $=
      ( vy wo wsb wsbc dfsbcq2 cv wceq orbi12d sbor vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.

    $( Distribution of class substitution over biconditional.  (Contributed by
       Raph Levien, 10-Apr-2004.) $)
    sbcbig $p |- ( A e. V ->
   ( [. A / x ]. ( ph <-> ps ) <-> ( [. A / x ]. ph <-> [. A / x ]. ps ) ) ) $=
      ( vy wb wsb wsbc dfsbcq2 cv wceq bibi12d sbbi vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.
  $}

  ${
    $d x z A $.  $d x y z $.  $d z ph $.
    $( Move universal quantifier in and out of class substitution.
       (Contributed by NM, 31-Dec-2016.) $)
    sbcal $p |- ( [. A / y ]. A. x ph <-> A. x [. A / y ]. ph ) $=
      ( vz wal wsbc cvv wcel sbcex sps dfsbcq2 cv wceq albidv vtoclbg pm5.21nii
      wsb sbal ) ABFZCDGZDHIZACDGZBFZTCDJUCUBBACDJKTCERACERZBFUAUDEDHTCEDLEMDNU
      EUCBACEDLOABCESPQ $.

    $( Move universal quantifier in and out of class substitution.
       (Contributed by NM, 16-Jan-2004.) $)
    sbcalg $p |- ( A e. V
        -> ( [. A / y ]. A. x ph <-> A. x [. A / y ]. ph ) ) $=
      ( vz wal wsb wsbc dfsbcq2 cv wceq albidv sbal vtoclbg ) ABGZCFHACFHZBGPCD
      IACDIZBGFDEPCFDJFKDLQRBACFDJMABCFNO $.

    $( Move existential quantifier in and out of class substitution.
       (Contributed by NM, 21-May-2004.) $)
    sbcex2 $p |- ( [. A / y ]. E. x ph <-> E. x [. A / y ]. ph ) $=
      ( vz wex wsbc cvv wcel sbcex exlimiv wsb dfsbcq2 wceq exbidv sbex vtoclbg
      cv pm5.21nii ) ABFZCDGZDHIZACDGZBFZTCDJUCUBBACDJKTCELACELZBFUAUDEDHTCEDME
      RDNUEUCBACEDMOABCEPQS $.

    $( Move existential quantifier in and out of class substitution.
       (Contributed by NM, 21-May-2004.) $)
    sbcexg $p |- ( A e. V
         -> ( [. A / y ]. E. x ph <-> E. x [. A / y ]. ph ) ) $=
      ( vz wex wsb wsbc dfsbcq2 cv wceq exbidv sbex vtoclbg ) ABGZCFHACFHZBGPCD
      IACDIZBGFDEPCFDJFKDLQRBACFDJMABCFNO $.
  $}

  ${
    $d x B $.  $d x A $.
    $( A variation of extensionality for classes.  (Contributed by Andrew
       Salmon, 28-Jun-2011.) $)
    sbceqal $p |- ( A e. V -> ( A. x ( x = A -> x = B ) -> A = B ) ) $=
      ( wcel cv wceq wi wal wsbc spsbc sbcimg wb eqsbc3 mpbiri pm5.5 syl 3bitrd
      eqid sylibd ) BDEZAFZBGZUBCGZHZAIUEABJZBCGZUEABDKUAUFUCABJZUDABJZHZUIUGUC
      UDABDLUAUHUJUIMUAUHBBGBSABBDNOUHUIPQABCDNRT $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Theorem *14.121 in [WhiteheadRussell] p. 185.  (Contributed by Andrew
       Salmon, 28-Jun-2011.)  (Proof shortened by Wolf Lammen, 9-May-2013.) $)
    sbeqalb $p |- ( A e. V -> ( ( A. x ( ph <-> x = A ) /\ A. x ( ph <->
      x = B ) ) -> A = B ) ) $=
      ( cv wceq wb wal wa wi wcel bibi1 biimpa biimpd alanimi sbceqal syl5 ) AB
      FZCGZHZBIASDGZHZBIJTUBKZBICELCDGUAUCUDBUAUCJTUBUAUCTUBHATUBMNOPBCDEQR $.
  $}

  ${
    sbcbid.1 $e |- F/ x ph $.
    sbcbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 29-Dec-2014.) $)
    sbcbid $p |- ( ph -> ( [. A / x ]. ps <-> [. A / x ]. ch ) ) $=
      ( cab wcel wsbc abbid eleq2d df-sbc 3bitr4g ) AEBDHZIECDHZIBDEJCDEJAOPEAB
      CDFGKLBDEMCDEMN $.
  $}

  ${
    $d x ph $.
    sbcbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 29-Dec-2014.) $)
    sbcbidv $p |- ( ph -> ( [. A / x ]. ps <-> [. A / x ]. ch ) ) $=
      ( nfv sbcbid ) ABCDEADGFH $.
  $}

  ${
    sbcbii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building inference rule for class substitution.  (Contributed by
       NM, 11-Nov-2005.) $)
    sbcbii $p |- ( [. A / x ]. ph <-> [. A / x ]. ps ) $=
      ( wsbc wb wtru a1i sbcbidv trud ) ACDFBCDFGHABCDABGHEIJK $.
  $}

  ${
    $d x C $.  $d x A $.
    $( ~ eqsbc3 with setvar variable on right side of equals sign.
       (Contributed by Alan Sare, 24-Oct-2011.) $)
    eqsbc3r $p |- ( A e. B -> ( [. A / x ]. C = x <-> C = A ) ) $=
      ( wcel wceq wsbc eqcom sbcbii biimpi eqsbc3 syl5ib syl6ib syl6ibr sylibrd
      cv idd impbid ) BCEZDAPZFZABGZDBFZSUBBDFZUCUBTDFZABGZSUDUBUFUAUEABDTHIZJA
      BDCKZLBDHZMSUCUFUBSUCUDUFSUCUCUDSUCQUINUHOUGNR $.
  $}

  ${
    $d y ch $.  $d y ps $.  $d y ph $.  $d y A $.  $d x y $.
    $( Distribution of class substitution over triple conjunction.
       (Contributed by NM, 14-Dec-2006.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbc3ang $p |- ( A e. V -> ( [. A / x ]. ( ph /\ ps /\ ch ) <->
                ( [. A / x ]. ph /\ [. A / x ]. ps /\ [. A / x ]. ch ) ) ) $=
      ( vy w3a wsb wsbc dfsbcq2 cv wceq 3anbi123d sb3an vtoclbg ) ABCHZDGIADGIZ
      BDGIZCDGIZHQDEJADEJZBDEJZCDEJZHGEFQDGEKGLEMRUASUBTUCADGEKBDGEKCDGEKNABCDG
      OP $.
  $}

  ${
    $d y z A $.  $d x y B $.
    $( Class substitution into a membership relation.  (Contributed by NM,
       17-Nov-2006.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    sbcel1gv $p |- ( A e. V -> ( [. A / x ]. x e. B <-> A e. B ) ) $=
      ( vy cv wcel wsb wsbc dfsbcq2 eleq1 clelsb3 vtoclbg ) AFCGZAEHEFZCGNABIBC
      GEBDNAEBJOBCKEACLM $.
  $}

  ${
    $d y z B $.  $d x y A $.
    $( Class substitution into a membership relation.  (Contributed by NM,
       17-Nov-2006.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    sbcel2gv $p |- ( B e. V -> ( [. B / x ]. A e. x <-> A e. B ) ) $=
      ( vy cv wcel eleq2 sbcie2g ) BAFZGBEFZGBCGAECDJKBHKCBHI $.
  $}

  ${
    $d x ph $.
    sbcimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Substitution analog of Theorem 19.20 of [Margaris] p. 90.  (Contributed
       by NM, 11-Nov-2005.) $)
    sbcimdv $p |- ( ( ph /\ A e. V ) ->
          ( [. A / x ]. ps -> [. A / x ]. ch ) ) $=
      ( wcel wsbc wi wal alrimiv spsbc syl5 sbcimg sylibd impcom ) EFHZABDEICDE
      IJZRABCJZDEIZSATDKRUAATDGLTDEFMNBCDEFOPQ $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ph $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    sbctt $p |- ( ( A e. V /\ F/ x ph ) -> ( [. A / x ]. ph <-> ph ) ) $=
      ( vy wcel wnf wsbc wb wsb wi wceq dfsbcq2 bibi1d imbi2d sbft vtoclg imp
      cv ) CDFABGZABCHZAIZTABEJZAIZKTUBKECDESCLZUDUBTUEUCUAAABECMNOABEPQR $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    sbcgf.1 $e |- F/ x ph $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 11-Oct-2004.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbcgf $p |- ( A e. V -> ( [. A / x ]. ph <-> ph ) ) $=
      ( wcel wnf wsbc wb sbctt mpan2 ) CDFABGABCHAIEABCDJK $.

    $( Substitution for a variable not free in antecedent affects only the
       consequent.  (Contributed by NM, 11-Oct-2004.) $)
    sbc19.21g $p |- ( A e. V ->
            ( [. A / x ]. ( ph -> ps ) <-> ( ph -> [. A / x ]. ps ) ) ) $=
      ( wcel wi wsbc sbcimg sbcgf imbi1d bitrd ) DEGZABHCDIACDIZBCDIZHAPHABCDEJ
      NOAPACDEFKLM $.
  $}

  ${
    $d x ph $.
    $( Substitution for a variable not occurring in a wff does not affect it.
       Distinct variable form of ~ sbcgf .  (Contributed by Alan Sare,
       10-Nov-2012.) $)
    sbcg $p |- ( A e. V -> ( [. A / x ]. ph <-> ph ) ) $=
      ( nfv sbcgf ) ABCDABEF $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x V $.  $d y W $.
    sbc2iegf.1 $e |- F/ x ps $.
    sbc2iegf.2 $e |- F/ y ps $.
    sbc2iegf.3 $e |- F/ x B e. W $.
    sbc2iegf.4 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by Mario Carneiro, 19-Dec-2013.) $)
    sbc2iegf $p |- ( ( A e. V /\ B e. W ) ->
            ( [. A / x ]. [. B / y ]. ph <-> ps ) ) $=
      ( wcel wa simpl cv wceq wb adantll nfv wsbc wnf a1i sbciedf nfan ) EGMZFH
      MZNZADFUAZBCEGUFUGOUGCPEQZUIBRUFUGUJNZABDFHUGUJOUJDPFQABRUGLSUKDTBDUBUKJU
      CUDSUFUGCUFCTKUEBCUBUHIUCUD $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ps $.
    sbc2ie.1 $e |- A e. _V $.
    sbc2ie.2 $e |- B e. _V $.
    sbc2ie.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 16-Dec-2008.)  (Revised by Mario Carneiro,
       19-Dec-2013.) $)
    sbc2ie $p |- ( [. A / x ]. [. B / y ]. ph <-> ps ) $=
      ( cvv wcel wsbc wb nfv nfth sbc2iegf mp2an ) EJKFJKZADFLCELBMGHABCDEFJJBC
      NBDNRCHOIPQ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.  $d x y ch $.
    sbc2iedv.1 $e |- A e. _V $.
    sbc2iedv.2 $e |- B e. _V $.
    sbc2iedv.3 $e |- ( ph -> ( ( x = A /\ y = B ) -> ( ps <-> ch ) ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 16-Dec-2008.)  (Proof shortened by Mario Carneiro,
       18-Oct-2016.) $)
    sbc2iedv $p |- ( ph -> ( [. A / x ]. [. B / y ]. ps <-> ch ) ) $=
      ( wsbc cvv wcel a1i cv wceq wa wb impl sbcied ) ABEGKCDFLFLMAHNADOFPZQZBC
      EGLGLMUBINAUAEOGPBCRJSTT $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.  $d x y z ps $.
    sbc3ie.1 $e |- A e. _V $.
    sbc3ie.2 $e |- B e. _V $.
    sbc3ie.3 $e |- C e. _V $.
    sbc3ie.4 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by Mario Carneiro, 19-Jun-2014.)  (Revised by Mario
       Carneiro, 29-Dec-2014.) $)
    sbc3ie $p |- ( [. A / x ]. [. B / y ]. [. C / z ]. ph <-> ps ) $=
      ( wsbc cv wceq wa cvv wcel a1i wb 3expa sbcied sbc2ie ) AEHMBCDFGIJCNFOZD
      NGOZPZABEHQHQRUFKSUDUEENHOABTLUAUBUC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y V $.  $d x W $.
    $( Lemma for ~ sbccom .  (Contributed by NM, 14-Nov-2005.)  (Revised by
       Mario Carneiro, 18-Oct-2016.) $)
    sbccomlem $p |- ( [. A / x ]. [. B / y ]. ph
         <-> [. B / y ]. [. A / x ]. ph ) $=
      ( cv wceq wa wex wsbc excom exdistr an12 exbii bitri 3bitr3i sbc5 3bitr4i
      19.42v sbcbii ) CFEGZAHZCIZBDJZBFDGZAHZBIZCEJZACEJZBDJABDJZCEJUEUCHBIZUAU
      GHZCIZUDUHUEUBHZCIBIUNBIZCIUKUMUNBCKUEUBBCLUOULCUOUAUFHZBIULUNUPBUEUAAMNU
      AUFBSONPUCBDQUGCEQRUIUCBDACEQTUJUGCEABDQTR $.
  $}

  ${
    $d w y z A $.  $d w x z B $.  $d w z ph $.  $d x y $.
    $( Commutative law for double class substitution.  (Contributed by NM,
       15-Nov-2005.)  (Proof shortened by Mario Carneiro, 18-Oct-2016.) $)
    sbccom $p |- ( [. A / x ]. [. B / y ]. ph
          <-> [. B / y ]. [. A / x ]. ph ) $=
      ( vw vz cv wsbc sbccomlem sbcbii bitri 3bitr3i sbcco ) ACFHZIZFEIZBDIZABG
      HZIZGDIZCEIZACEIZBDIABDIZCEIQBSIZGDIZUACOIZFEIZRUBTCOIZFEIZGDIUIGDIZFEIUF
      UHUIGFDEJUJUEGDUJPBSIZFEIUEUIULFEACBOSJKPFBESJLKUKUGFETGCDOJKMQBGDNUACFEN
      MQUCBDACFENKUAUDCEABGDNKM $.
  $}

  ${
    $d x y z $.  $d A z $.  $d B x z $.  $d V z $.  $d ph z $.
    $( Interchange class substitution and restricted quantifier.  (Contributed
       by NM, 1-Mar-2008.)  (Revised by David Abernethy, 22-Feb-2010.) $)
    sbcralt $p |- ( ( A e. V /\ F/_ y A ) ->
           ( [. A / x ]. A. y e. B ph <-> A. y e. B [. A / x ]. ph ) ) $=
      ( vz wral wsbc cv wcel wnfc wa sbcco simpl wsb wceq sbsbc nfcv wb nfralxy
      nfs1v weq sbequ12 ralbidv sbie bitr3i nfnfc1 nfcvd id nfeqd nfan1 dfsbcq2
      adantl ralbid adantll syl5bb sbcied syl5bbr ) ACEHZBDIUTBGJZIZGDIDFKZCDLZ
      MZABDIZCEHZUTBGDNVEVBVGGDFVCVDOVBABGPZCEHZVEVADQZMVGVBUTBGPVIUTBGRUTVIBGV
      HBCEBESABGUBUABGUCAVHCEABGUDUEUFUGVDVJVIVGTVCVDVJMVHVFCEVDVJCCDUHVDCVADVD
      CVAUIVDUJUKULVJVHVFTVDABGDUMUNUOUPUQURUS $.

    $( Interchange class substitution and restricted existential quantifier.
       (Contributed by NM, 1-Mar-2008.)  (Proof shortened by Mario Carneiro,
       13-Oct-2016.) $)
    sbcrext $p |- ( ( A e. V /\ F/_ y A ) ->
          ( [. A / x ]. E. y e. B ph <-> E. y e. B [. A / x ]. ph ) ) $=
      ( vz wrex wsbc cv wcel wnfc wa sbcco simpl wsb wceq sbsbc nfcv wb nfrexxy
      nfs1v sbequ12 rexbidv sbie bitr3i nfnfc1 nfcvd nfeqd nfan1 dfsbcq2 adantl
      id rexbid adantll syl5bb sbcied syl5bbr ) ACEHZBDIUSBGJZIZGDIDFKZCDLZMZAB
      DIZCEHZUSBGDNVDVAVFGDFVBVCOVAABGPZCEHZVDUTDQZMVFVAUSBGPVHUSBGRUSVHBGVGBCE
      BESABGUBUABJUTQAVGCEABGUCUDUEUFVCVIVHVFTVBVCVIMVGVECEVCVICCDUGVCCUTDVCCUT
      UHVCUMUIUJVIVGVETVCABGDUKULUNUOUPUQUR $.
  $}

  ${
    $d y z A $.  $d x B $.  $d x y z $.  $d ph z $.  $d B z $.
    $( Interchange class substitution and restricted quantifier.  (Contributed
       by NM, 15-Nov-2005.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbcralg $p |- ( A e. V ->
                 ( [. A / x ]. A. y e. B ph <-> A. y e. B [. A / x ]. ph ) ) $=
      ( vz wral wsb wsbc dfsbcq2 cv wceq ralbidv nfcv nfs1v nfralxy weq sbequ12
      sbie vtoclbg ) ACEHZBGIABGIZCEHZUBBDJABDJZCEHGDFUBBGDKGLDMUCUECEABGDKNUBU
      DBGUCBCEBEOABGPQBGRAUCCEABGSNTUA $.

    $( Interchange class substitution and restricted existential quantifier.
       (Contributed by NM, 15-Nov-2005.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbcrexg $p |- ( A e. V ->
                 ( [. A / x ]. E. y e. B ph <-> E. y e. B [. A / x ]. ph ) ) $=
      ( vz wrex wsb wsbc dfsbcq2 cv wceq rexbidv nfcv nfs1v nfrexxy weq sbequ12
      sbie vtoclbg ) ACEHZBGIABGIZCEHZUBBDJABDJZCEHGDFUBBGDKGLDMUCUECEABGDKNUBU
      DBGUCBCEBEOABGPQBGRAUCCEABGSNTUA $.

    $( Interchange class substitution and restricted uniqueness quantifier.
       (Contributed by NM, 24-Feb-2013.) $)
    sbcreug $p |- ( A e. V ->
                 ( [. A / x ]. E! y e. B ph <-> E! y e. B [. A / x ]. ph ) ) $=
      ( vz wreu wsb wsbc dfsbcq2 cv wceq reubidv nfcv nfs1v nfreuxy weq sbequ12
      sbie vtoclbg ) ACEHZBGIABGIZCEHZUBBDJABDJZCEHGDFUBBGDKGLDMUCUECEABGDKNUBU
      DBGUCBCEBEOABGPQBGRAUCCEABGSNTUA $.
  $}

  ${
    $d y w A $.  $d w z B $.  $d w ph $.  $d x y $.  $d w x z $.
    sbcabel.1 $e |- F/_ x B $.
    $( Interchange class substitution and class abstraction.  (Contributed by
       NM, 5-Nov-2005.) $)
    sbcabel $p |- ( A e. V -> ( [. A / x ]. { y | ph } e. B <->
                  { y | [. A / x ]. ph } e. B ) ) $=
      ( vw wcel cvv cab wsbc wb cv wceq wa wex wal bitrd abeq2 elex sbcexg sbcg
      sbcang sbcalg sbcbig bibi1d albidv sbcbii 3bitr4g nfcri sbcgf anbi12d syl
      exbidv df-clel ) DFIDJIZACKZEIZBDLZABDLZCKZEIZMDFUAUQHNZUROZVDEIZPZHQZBDL
      ZVDVBOZVFPZHQZUTVCUQVIVGBDLZHQVLVGHBDJUBUQVMVKHUQVMVEBDLZVFBDLZPVKVEVFBDJ
      UDUQVNVJVOVFUQCNVDIZAMZCRZBDLZVPVAMZCRZVNVJUQVSVQBDLZCRWAVQCBDJUEUQWBVTCU
      QWBVPBDLZVAMVTVPABDJUFUQWCVPVAVPBDJUCUGSUHSVEVRBDACVDTUIVACVDTUJVFBDJBHEG
      UKULUMSUOSUSVHBDHUREUPUIHVBEUPUJUN $.
  $}

  ${
    $d y A $.  $d x y B $.  $d y ph $.
    $( Restricted quantifier version of Axiom 4 of [Mendelson] p. 69.  This
       provides an axiom for a predicate calculus for a restricted domain.
       This theorem generalizes the unrestricted ~ stdpc4 and ~ spsbc .  See
       also ~ rspsbca and rspcsbela .  (Contributed by NM, 17-Nov-2006.)
       (Proof shortened by Mario Carneiro, 13-Oct-2016.) $)
    rspsbc $p |- ( A e. B -> ( A. x e. B ph -> [. A / x ]. ph ) ) $=
      ( vy wral wsb wcel wsbc cbvralsv dfsbcq2 rspcv syl5bi ) ABDFABEGZEDFCDHAB
      CIZABEDJNOECDABECKLM $.

    $( Restricted quantifier version of Axiom 4 of [Mendelson] p. 69.
       (Contributed by NM, 14-Dec-2005.) $)
    rspsbca $p |- ( ( A e. B /\ A. x e. B ph ) -> [. A / x ]. ph ) $=
      ( wcel wral wsbc rspsbc imp ) CDEABDFABCGABCDHI $.

    $( Existence form of ~ rspsbca .  (Contributed by NM, 29-Feb-2008.)  (Proof
       shortened by Mario Carneiro, 13-Oct-2016.) $)
    rspesbca $p |- ( ( A e. B /\ [. A / x ]. ph ) -> E. x e. B ph ) $=
      ( vy wcel wsbc wa wsb wrex dfsbcq2 rspcev cbvrexsv sylibr ) CDFABCGZHABEI
      ZEDJABDJPOECDABECKLABEDMN $.

    $( Existence form of ~ spsbc .  (Contributed by Mario Carneiro,
       18-Nov-2016.) $)
    spesbc $p |- ( [. A / x ]. ph -> E. x ph ) $=
      ( wsbc cvv wrex wex wcel sbcex rspesbca mpancom rexv sylib ) ABCDZABEFZAB
      GCEHNOABCIABCEJKABLM $.

    spesbcd.1 $e |- ( ph -> [. A / x ]. ps ) $.
    $( form of ~ spsbc .  (Contributed by Mario Carneiro, 9-Feb-2017.) $)
    spesbcd $p |- ( ph -> E. x ps ) $=
      ( wsbc wex spesbc syl ) ABCDFBCGEBCDHI $.
  $}

  ${
    $d x B $.
    sbcth2.1 $e |- ( x e. B -> ph ) $.
    $( A substitution into a theorem.  (Contributed by NM, 1-Mar-2008.)  (Proof
       shortened by Mario Carneiro, 13-Oct-2016.) $)
    sbcth2 $p |- ( A e. B -> [. A / x ]. ph ) $=
      ( wcel wral wsbc rgen rspsbc mpi ) CDFABDGABCHABDEIABCDJK $.
  $}

  ${
    ra5.1 $e |- F/ x ph $.
    $( Restricted quantifier version of Axiom 5 of [Mendelson] p. 69.  This is
       an axiom of a predicate calculus for a restricted domain.  Compare the
       unrestricted ~ stdpc5 .  (Contributed by NM, 16-Jan-2004.) $)
    ra5 $p |- ( A. x e. A ( ph -> ps ) -> ( ph -> A. x e. A ps ) ) $=
      ( wi wral cv wcel wal df-ral bi2.04 albii bitri stdpc5 sylbi syl6ibr ) AB
      FZCDGZACHDIZBFZCJZBCDGSAUAFZCJZAUBFSTRFZCJUDRCDKUEUCCTABLMNAUACEOPBCDKQ
      $.
  $}

  ${
    $d x y A $.
    rmo2.1 $e |- F/ y ph $.
    $( Condition implying restricted "at most one."  (Contributed by Jim
       Kingdon, 14-Jul-2018.) $)
    rmo2ilem $p |- ( E. y A. x e. A ( ph -> x = y ) -> E* x e. A ph ) $=
      ( cv wceq wi wral wex wcel wal wrmo impexp albii df-ral bitr4i exbii wmo
      wa nfv nfan mo2r df-rmo sylibr sylbir ) ABFZCFGZHZBDIZCJUGDKZATZUHHZBLZCJ
      ZABDMZUNUJCUNUKUIHZBLUJUMUQBUKAUHNOUIBDPQRUOULBSUPULBCUKACUKCUAEUBUCABDUD
      UEUF $.

    $( Condition implying restricted "at most one."  (Contributed by NM,
       17-Jun-2017.) $)
    rmo2i $p |- ( E. y e. A A. x e. A ( ph -> x = y ) -> E* x e. A ph ) $=
      ( cv wceq wi wral wrex wex wrmo rexex rmo2ilem syl ) ABFCFGHBDIZCDJPCKABD
      LPCDMABCDENO $.

    $( Restricted "at most one" using explicit substitution.  (Contributed by
       NM, 4-Nov-2012.)  (Revised by NM, 16-Jun-2017.) $)
    rmo3 $p |- ( E* x e. A ph <->
               A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( wrmo cv wcel wa wmo wsb wi wral anbi1i bitri 3bitri impexp albii df-ral
      wal weq df-rmo sban clelsb3 anbi2i an4 ancom r19.21v 3bitr2i nfv nfan mo3
      imbi1i 3bitr4i ) ABDFBGDHZAIZBJZAABCKZIZBCUAZLZCDMZBDMZABDUBUPUPBCKZIZUTL
      ZCTZBTUOVBLZBTUQVCVGVHBVGCGDHZUOVALZLZCTVJCDMVHVFVKCVFVIUOIZUSIZUTLVLVALV
      KVEVMUTVEUPVIURIZIUOVIIZUSIVMVDVNUPVDUOBCKZURIVNUOABCUCVPVIURCBDUDNOUEUOA
      VIURUFVOVLUSUOVIUGNPUMVLUSUTQVIUOVAQPRVJCDSUOVACDUHUIRUPBCUOACUOCUJEUKULV
      BBDSUNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d y ph $.  $d x y ps $.  $d x ch $.
    rmoi.b $e |- ( x = B -> ( ph <-> ps ) ) $.
    rmoi.c $e |- ( x = C -> ( ph <-> ch ) ) $.
    $( Consequence of "at most one", using implicit substitution.  (Contributed
       by NM, 2-Jan-2015.)  (Revised by NM, 16-Jun-2017.) $)
    rmob $p |- ( ( E* x e. A ph /\ ( B e. A /\ ps ) ) ->
        ( B = C <-> ( C e. A /\ ch ) ) ) $=
      ( wrmo cv wcel wa wmo wceq wb df-rmo simprl eleq1 anbi12d syl5ibcom simpl
      wi a1i simplrl simpr simpll simplrr mob syl212anc ex pm5.21ndd sylanb ) A
      DEJDKZELZAMZDNZFELZBMZFGOZGELZCMZPZADEQUQUSMZVAUTVBVDURUTVAUQURBRFGESUAVB
      VAUCVDVACUBUDVDVAVCVDVAMURVAUQURBVCUQURBVAUEZVDVAUFUQUSVAUGVEUQURBVAUHUPU
      SVBDFGEEUNFOUOURABUNFESHTUNGOUOVAACUNGESITUIUJUKULUM $.

    $( Consequence of "at most one", using implicit substitution.  (Contributed
       by NM, 4-Nov-2012.)  (Revised by NM, 16-Jun-2017.) $)
    rmoi $p |- ( ( E* x e. A ph
          /\ ( B e. A /\ ps ) /\ ( C e. A /\ ch ) ) -> B = C ) $=
      ( wrmo wcel wa wceq rmob biimp3ar ) ADEJFEKBLFGMGEKCLABCDEFGHINO $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Proper substitution of classes for sets into classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [_ $.  $( Underlined left bracket $)
  $c ]_ $.  $( Underlined right bracket $)

  $( Extend class notation to include the proper substitution of a class for a
     set into another class. $)
  csb $a class [_ A / x ]_ B $.

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Define the proper substitution of a class for a set into another class.
       The underlined brackets distinguish it from the substitution into a wff,
       ~ wsbc , to prevent ambiguity.  Theorem ~ sbcel1g shows an example of
       how ambiguity could arise if we didn't use distinguished brackets.
       Theorem ~ sbccsbg recreates substitution into a wff from this
       definition.  (Contributed by NM, 10-Nov-2005.) $)
    df-csb $a |- [_ A / x ]_ B = { y | [. A / x ]. y e. B } $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y $.
    $( Alternate expression for the proper substitution into a class, without
       referencing substitution into a wff.  Note that ` x ` can be free in
       ` B ` but cannot occur in ` A ` .  (Contributed by NM, 2-Dec-2013.) $)
    csb2 $p |- [_ A / x ]_ B = { y | E. x ( x = A /\ y e. B ) } $=
      ( csb cv wcel wsbc cab wceq wa wex df-csb sbc5 abbii eqtri ) ACDEBFDGZACH
      ZBIAFCJQKALZBIABCDMRSBQACNOP $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Analog of ~ dfsbcq for proper substitution into a class.  (Contributed
       by NM, 10-Nov-2005.) $)
    csbeq1 $p |- ( A = B -> [_ A / x ]_ C = [_ B / x ]_ C ) $=
      ( vy wceq cv wcel wsbc cab csb dfsbcq abbidv df-csb 3eqtr4g ) BCFZEGDHZAB
      IZEJQACIZEJABDKACDKPRSEQABCLMAEBDNAECDNO $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z C $.  $d z D $.
    cbvcsb.1 $e |- F/_ y C $.
    cbvcsb.2 $e |- F/_ x D $.
    cbvcsb.3 $e |- ( x = y -> C = D ) $.
    $( Change bound variables in a class substitution.  Interestingly, this
       does not require any bound variable conditions on ` A ` .  (Contributed
       by Jeff Hankins, 13-Sep-2009.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    cbvcsb $p |- [_ A / x ]_ C = [_ A / y ]_ D $=
      ( vz cv wcel wsbc cab csb nfcri weq eleq2d cbvsbc abbii df-csb 3eqtr4i )
      IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBICE
      TUA $.
  $}

  ${
    $d x y $.  $d z A $.  $d y z B $.  $d x z C $.
    cbvcsbv.1 $e |- ( x = y -> B = C ) $.
    $( Change the bound variable of a proper substitution into a class using
       implicit substitution.  (Contributed by NM, 30-Sep-2008.)  (Revised by
       Mario Carneiro, 13-Oct-2016.) $)
    cbvcsbv $p |- [_ A / x ]_ B = [_ A / y ]_ C $=
      ( nfcv cbvcsb ) ABCDEBDGAEGFH $.
  $}

  ${
    csbeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for proper substitution into a class.  (Contributed
       by NM, 3-Dec-2005.) $)
    csbeq1d $p |- ( ph -> [_ A / x ]_ C = [_ B / x ]_ C ) $=
      ( wceq csb csbeq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Analog of ~ sbid for proper substitution into a class.  (Contributed by
       NM, 10-Nov-2005.) $)
    csbid $p |- [_ x / x ]_ A = A $=
      ( vy cv csb wcel wsbc cab df-csb sbcid abbii abid2 3eqtri ) AADZBECDBFZAN
      GZCHOCHBACNBIPOCOAJKCBLM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( Equality theorem for proper substitution into a class.  (Contributed by
       NM, 10-Nov-2005.) $)
    csbeq1a $p |- ( x = A -> B = [_ A / x ]_ B ) $=
      ( cv wceq csb csbid csbeq1 syl5eqr ) ADZBECAJCFABCFACGAJBCHI $.
  $}

  ${
    $d z A $.  $d y z B $.  $d z V $.  $d x z $.
    $( Composition law for chained substitutions into a class.  (Contributed by
       NM, 10-Nov-2005.) $)
    csbco $p |- [_ A / y ]_ [_ y / x ]_ B = [_ A / x ]_ B $=
      ( vz cv csb wcel wsbc cab df-csb abeq2i sbcbii sbcco bitri abbii 3eqtr4i
      ) EFZABFZDGZHZBCIZEJRDHZACIZEJBCTGACDGUBUDEUBUCASIZBCIUDUAUEBCUEETAESDKLM
      UCABCNOPBECTKAECDKQ $.
  $}

  ${
    $d y A $.  $d y B $.  $d y V $.  $d x y $.
    $( Substitution doesn't affect a constant ` B ` (in which ` x ` is not
       free).  (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    csbtt $p |- ( ( A e. V /\ F/_ x B ) -> [_ A / x ]_ B = B ) $=
      ( vy wcel wnfc wa csb cv wsbc cab df-csb wnf wb nfcr sbctt sylan2 abbi1dv
      syl5eq ) BDFZACGZHZABCIEJCFZABKZELCAEBCMUCUEECUBUAUDANUEUDOAECPUDABDQRST
      $.
  $}

  ${
    csbconstgf.1 $e |- F/_ x B $.
    $( Substitution doesn't affect a constant ` B ` (in which ` x ` is not
       free).  (Contributed by NM, 10-Nov-2005.) $)
    csbconstgf $p |- ( A e. V -> [_ A / x ]_ B = B ) $=
      ( wcel wnfc csb wceq csbtt mpan2 ) BDFACGABCHCIEABCDJK $.
  $}

  ${
    $d A y $.  $d B x y $.  $d V y $.
    $( Substitution doesn't affect a constant ` B ` (in which ` x ` is not
       free). ~ csbconstgf with distinct variable requirement.  (Contributed by
       Alan Sare, 22-Jul-2012.) $)
    csbconstg $p |- ( A e. V -> [_ A / x ]_ B = B ) $=
      ( nfcv csbconstgf ) ABCDACEF $.
  $}

  ${
    $d w x y z $.  $d w y z A $.  $d w y z B $.  $d w y z C $.
    $( Distribute proper substitution through a membership relation.
       (Contributed by NM, 10-Nov-2005.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbcel12g $p |- ( A e. V -> ( [. A / x ]. B e. C <->
                   [_ A / x ]_ B e. [_ A / x ]_ C ) ) $=
      ( vy vz wcel wsbc cv cab csb wsb dfsbcq2 abbidv eleq12d nfs1v nfab df-csb
      sbab wceq nfel weq sbie vtoclbg eleq12i syl6bbr ) BEHCDHZABIZFJZCHZABIZFK
      ZUJDHZABIZFKZHZABCLZABDLZHUHAGMUKAGMZFKZUNAGMZFKZHZUIUQGBEUHAGBNGJBUAZVAU
      MVCUPVEUTULFUKAGBNOVEVBUOFUNAGBNOPUHVDAGAVAVCUTAFUKAGQRVBAFUNAGQRUBAGUCCV
      ADVCAGFCTAGFDTPUDUEURUMUSUPAFBCSAFBDSUFUG $.

    $( Distribute proper substitution through an equality relation.
       (Contributed by NM, 10-Nov-2005.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbceqg $p |- ( A e. V -> ( [. A / x ]. B = C <->
                   [_ A / x ]_ B = [_ A / x ]_ C ) ) $=
      ( vy vz wcel wceq wsbc cab csb wsb dfsbcq2 abbidv eqeq12d nfs1v nfab sbab
      cv nfeq weq sbie vtoclbg df-csb eqeq12i syl6bbr ) BEHCDIZABJZFTZCHZABJZFK
      ZUJDHZABJZFKZIZABCLZABDLZIUHAGMUKAGMZFKZUNAGMZFKZIZUIUQGBEUHAGBNGTBIZVAUM
      VCUPVEUTULFUKAGBNOVEVBUOFUNAGBNOPUHVDAGAVAVCUTAFUKAGQRVBAFUNAGQRUAAGUBCVA
      DVCAGFCSAGFDSPUCUDURUMUSUPAFBCUEAFBDUEUFUG $.
  $}

  $( Distribute proper substitution through negated membership.  (Contributed
     by Andrew Salmon, 18-Jun-2011.) $)
  sbcnel12g $p |- ( A e. V -> ( [. A / x ]. B e/ C <-> [_ A / x ]_ B e/
                    [_ A / x ]_ C ) ) $=
    ( wcel wnel wsbc wn csb wb df-nel sbcbii a1i sbcel12g notbid syl6bbr 3bitrd
    sbcng ) BEFZCDGZABHZCDFZIZABHZUCABHZIZABCJZABDJZGZUBUEKTUAUDABCDLMNUCABESTU
    GUHUIFZIUJTUFUKABCDEOPUHUILQR $.

  $( Distribute proper substitution through an inequality.  (Contributed by
     Andrew Salmon, 18-Jun-2011.) $)
  sbcne12g $p |- ( A e. V -> ( [. A / x ]. B =/= C <-> [_ A / x ]_ B =/=
                   [_ A / x ]_ C ) ) $=
    ( wcel wne wsbc csb wb wceq sbceqg notbid df-ne sbcbii sbcng syl5bb bibi12d
    wn a1i mpbird ) BEFZCDGZABHZABCIZABDIZGZJCDKZABHZSZUEUFKZSZJUBUIUKABCDELMUB
    UDUJUGULUDUHSZABHUBUJUCUMABCDNOUHABEPQUGULJUBUEUFNTRUA $.

  ${
    $d y A $.  $d x y C $.  $d y V $.
    $( Move proper substitution in and out of a membership relation.  Note that
       the scope of ` [. A / x ]. ` is the wff ` B e. C ` , whereas the scope
       of ` [_ A / x ]_ ` is the class ` B ` .  (Contributed by NM,
       10-Nov-2005.) $)
    sbcel1g $p |- ( A e. V -> ( [. A / x ]. B e. C <->
                    [_ A / x ]_ B e. C ) ) $=
      ( wcel wsbc csb sbcel12g csbconstg eleq2d bitrd ) BEFZCDFABGABCHZABDHZFND
      FABCDEIMODNABDEJKL $.

    $( Move proper substitution to first argument of an equality.  (Contributed
       by NM, 30-Nov-2005.) $)
    sbceq1g $p |- ( A e. V -> ( [. A / x ]. B = C <->
                    [_ A / x ]_ B = C ) ) $=
      ( wcel wceq wsbc csb sbceqg csbconstg eqeq2d bitrd ) BEFZCDGABHABCIZABDIZ
      GODGABCDEJNPDOABDEKLM $.
  $}

  ${
    $d y A $.  $d x y B $.  $d y V $.
    $( Move proper substitution in and out of a membership relation.
       (Contributed by NM, 14-Nov-2005.) $)
    sbcel2g $p |- ( A e. V -> ( [. A / x ]. B e. C <->
                    B e. [_ A / x ]_ C ) ) $=
      ( wcel wsbc csb sbcel12g csbconstg eleq1d bitrd ) BEFZCDFABGABCHZABDHZFCO
      FABCDEIMNCOABCEJKL $.

    $( Move proper substitution to second argument of an equality.
       (Contributed by NM, 30-Nov-2005.) $)
    sbceq2g $p |- ( A e. V -> ( [. A / x ]. B = C <->
                    B = [_ A / x ]_ C ) ) $=
      ( wcel wceq wsbc csb sbceqg csbconstg eqeq1d bitrd ) BEFZCDGABHABCIZABDIZ
      GCPGABCDEJNOCPABCEKLM $.
  $}

  ${
    $d y z A $.  $d x z B $.  $d z C $.  $d x y $.
    $( Commutative law for double substitution into a class.  (Contributed by
       NM, 14-Nov-2005.) $)
    csbcomg $p |- ( ( A e. V /\ B e. W ) ->
                 [_ A / x ]_ [_ B / y ]_ C = [_ B / y ]_ [_ A / x ]_ C ) $=
      ( vz wcel cvv csb wceq elex wsbc wb sbcel2g sbcbidv adantl adantr 3bitr3d
      wa cv sbccom a1i eqrdv syl2an ) CFICJIZDJIZACBDEKZKZBDACEKZKZLDGICFMDGMUG
      UHUAZHUJULUMHUBZUIIZACNZUNUKIZBDNZUNUJIZUNULIZUMUNEIZBDNZACNZVAACNZBDNZUP
      URVCVEOUMVAABCDUCUDUHVCUPOUGUHVBUOACBDUNEJPQRUGVEUROUHUGVDUQBDACUNEJPQSTU
      GUPUSOUHACUNUIJPSUHURUTOUGBDUNUKJPRTUEUF $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d y ph $.
    csbeq2d.1 $e |- F/ x ph $.
    csbeq2d.2 $e |- ( ph -> B = C ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 22-Nov-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    csbeq2d $p |- ( ph -> [_ A / x ]_ B = [_ A / x ]_ C ) $=
      ( vy cv wcel wsbc cab csb eleq2d sbcbid abbidv df-csb 3eqtr4g ) AHIZDJZBC
      KZHLSEJZBCKZHLBCDMBCEMAUAUCHATUBBCFADESGNOPBHCDQBHCEQR $.
  $}

  ${
    $d x ph $.
    csbeq2dv.1 $e |- ( ph -> B = C ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 10-Nov-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    csbeq2dv $p |- ( ph -> [_ A / x ]_ B = [_ A / x ]_ C ) $=
      ( nfv csbeq2d ) ABCDEABGFH $.
  $}

  ${
    csbeq2i.1 $e |- B = C $.
    $( Formula-building inference rule for class substitution.  (Contributed by
       NM, 10-Nov-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    csbeq2i $p |- [_ A / x ]_ B = [_ A / x ]_ C $=
      ( csb wceq wtru a1i csbeq2dv trud ) ABCFABDFGHABCDCDGHEIJK $.
  $}

  ${
    $d y z A $.  $d x y z $.
    $( The proper substitution of a class for setvar variable results in the
       class (if the class exists).  (Contributed by NM, 10-Nov-2005.) $)
    csbvarg $p |- ( A e. V -> [_ A / x ]_ x = A ) $=
      ( vz vy wcel cvv cv csb wceq elex wsbc cab df-csb sbcel2gv abbi1dv syl5eq
      vex ax-mp csbeq2i csbco 3eqtr3i syl ) BCFBGFZABAHZIZBJBCKUDUFDHZEHZFEBLZD
      MZBEBAUHUEIZIEBUHIUFUJEBUKUHUHGFZUKUHJERULUKUGUEFAUHLZDMUHADUHUENULUMDUHA
      UGUHGOPQSTAEBUEUAEDBUHNUBUDUIDBEUGBGOPQUC $.
  $}

  ${
    $d x y $.
    $( Substitution into a wff expressed in terms of substitution into a
       class.  (Contributed by NM, 15-Aug-2007.) $)
    sbccsbg $p |- ( A e. V ->
                 ( [. A / x ]. ph <-> y e. [_ A / x ]_ { y | ph } ) ) $=
      ( wsbc cv cab wcel csb abid sbcbii sbcel2g syl5bbr ) ABDFCGZACHZIZBDFDEIO
      BDPJIQABDACKLBDOPEMN $.
  $}

  $( Substitution into a wff expressed in using substitution into a class.
     (Contributed by NM, 27-Nov-2005.) $)
  sbccsb2g $p |- ( A e. V ->
               ( [. A / x ]. ph <-> A e. [_ A / x ]_ { x | ph } ) ) $=
    ( wsbc cv cab wcel csb abid sbcbii sbcel12g csbvarg eleq1d bitrd syl5bbr )
    ABCEBFZABGZHZBCEZCDHZCBCRIZHZSABCABJKUATBCQIZUBHUCBCQRDLUAUDCUBBCDMNOP $.

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y ph $.
    nfcsb1d.1 $e |- ( ph -> F/_ x A ) $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by Mario Carneiro, 12-Oct-2016.) $)
    nfcsb1d $p |- ( ph -> F/_ x [_ A / x ]_ B ) $=
      ( vy csb cv wcel wsbc cab df-csb nfv nfsbc1d nfabd nfcxfrd ) ABBCDGFHDIZB
      CJZFKBFCDLARBFAFMAQBCENOP $.
  $}

  ${
    $d y z A $.  $d z B $.  $d x y z $.
    nfcsb1.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by Mario Carneiro, 12-Oct-2016.) $)
    nfcsb1 $p |- F/_ x [_ A / x ]_ B $=
      ( csb wnfc wtru a1i nfcsb1d trud ) AABCEFGABCABFGDHIJ $.
  $}

  ${
    $d x y A $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by NM, 17-Aug-2006.)  (Revised by Mario Carneiro,
       12-Oct-2016.) $)
    nfcsb1v $p |- F/_ x [_ A / x ]_ B $=
      ( nfcv nfcsb1 ) ABCABDE $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z ph $.
    nfcsbd.1 $e |- F/ y ph $.
    nfcsbd.2 $e |- ( ph -> F/_ x A ) $.
    nfcsbd.3 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of ~ nfcsb .  (Contributed by NM, 21-Nov-2005.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfcsbd $p |- ( ph -> F/_ x [_ A / y ]_ B ) $=
      ( vz csb cv wcel wsbc cab df-csb nfv nfcrd nfsbcd nfabd nfcxfrd ) ABCDEJI
      KELZCDMZINCIDEOAUBBIAIPAUABCDFGABIEHQRST $.
  $}

  ${
    nfcsb.1 $e |- F/_ x A $.
    nfcsb.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by Mario Carneiro, 12-Oct-2016.) $)
    nfcsb $p |- F/_ x [_ A / y ]_ B $=
      ( csb wnfc wtru nftru a1i nfcsbd trud ) ABCDGHIABCDBJACHIEKADHIFKLM $.
  $}

  ${
    $d x y $.
    csbhypf.1 $e |- F/_ x A $.
    csbhypf.2 $e |- F/_ x C $.
    csbhypf.3 $e |- ( x = A -> B = C ) $.
    $( Introduce an explicit substitution into an implicit substitution
       hypothesis.  See ~ sbhypf for class substitution version.  (Contributed
       by NM, 19-Dec-2008.) $)
    csbhypf $p |- ( y = A -> [_ y / x ]_ B = C ) $=
      ( cv wceq wi csb nfeq2 nfcsb1v nfeq nfim eqeq1 csbeq1a eqeq1d imbi12d
      chvar ) AIZCJZDEJZKBIZCJZAUEDLZEJZKABUFUHAAUECFMAUGEAUEDNGOPUBUEJZUCUFUDU
      HUBUECQUIDUGEAUEDRSTHUA $.
  $}

  ${
    $d x A $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Closed theorem version of ~ csbiegf .)  (Contributed by NM,
       11-Nov-2005.) $)
    csbiebt $p |- ( ( A e. V /\ F/_ x C ) ->
                 ( A. x ( x = A -> B = C ) <-> [_ A / x ]_ B = C ) ) $=
      ( wcel cvv wnfc cv wceq wi wal csb wb elex wa wsbc adantl a1i nfeqd spsbc
      adantr simpl biimt csbeq1a eqeq1d bitr3d nfv nfnfc1 nfcsb1v simpr sbciedf
      nfan sylibd id nfan1 biimprcd alrimi ex impbid sylan ) BEFBGFZADHZAIBJZCD
      JZKZALZABCMZDJZNBEOVBVCPZVGVIVJVGVFABQZVIVBVGVKKVCVFABGUAUBVJVFVIABGVBVCU
      CVDVFVINVJVDVEVFVIVDVEUDVDCVHDABCUEUFZUGRVBVCAVBAUHADUIZUMVJAVHDAVHHZVJAB
      CUJZSVBVCUKTULUNVCVIVGKVBVCVIVGVCVIPVFAVCVIAVMVCAVHDVNVCVOSVCUOTUPVIVFVCV
      DVEVIVLUQRURUSRUTVA $.

    csbiedf.1 $e |- F/ x ph $.
    csbiedf.2 $e |- ( ph -> F/_ x C ) $.
    csbiedf.3 $e |- ( ph -> A e. V ) $.
    csbiedf.4 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by Mario Carneiro, 13-Oct-2016.) $)
    csbiedf $p |- ( ph -> [_ A / x ]_ B = C ) $=
      ( cv wceq wi wal csb ex alrimi wcel wnfc wb csbiebt syl2anc mpbid ) ABKCL
      ZDELZMZBNZBCDOELZAUFBGAUDUEJPQACFRBESUGUHTIHBCDEFUAUBUC $.
  $}

  ${
    $d x z A $.  $d z B $.  $d y C $.  $d x y $.
    csbieb.1 $e |- A e. _V $.
    csbieb.2 $e |- F/_ x C $.
    $( Bidirectional conversion between an implicit class substitution
       hypothesis ` x = A -> B = C ` and its explicit substitution equivalent.
       (Contributed by NM, 2-Mar-2008.) $)
    csbieb $p |- ( A. x ( x = A -> B = C ) <-> [_ A / x ]_ B = C ) $=
      ( cvv wcel wnfc cv wceq wi wal csb wb csbiebt mp2an ) BGHADIAJBKCDKLAMABC
      NDKOEFABCDGPQ $.
  $}

  ${
    $d a x A $.  $d a B $.  $d a y C $.  $d x y $.
    csbiebg.2 $e |- F/_ x C $.
    $( Bidirectional conversion between an implicit class substitution
       hypothesis ` x = A -> B = C ` and its explicit substitution equivalent.
       (Contributed by NM, 24-Mar-2013.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    csbiebg $p |- ( A e. V ->
          ( A. x ( x = A -> B = C ) <-> [_ A / x ]_ B = C ) ) $=
      ( va cv wceq wal csb eqeq2 imbi1d albidv csbeq1 eqeq1d vex csbieb vtoclbg
      wi ) AHZGHZIZCDIZTZAJAUBCKZDIUABIZUDTZAJABCKZDIGBEUBBIZUEUHAUJUCUGUDUBBUA
      LMNUJUFUIDAUBBCOPAUBCDGQFRS $.
  $}

  ${
    $d x y A $.  $d y C $.  $d x y V $.
    csbiegf.1 $e |- ( A e. V -> F/_ x C ) $.
    csbiegf.2 $e |- ( x = A -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by NM, 11-Nov-2005.)  (Revised by Mario Carneiro,
       13-Oct-2016.) $)
    csbiegf $p |- ( A e. V -> [_ A / x ]_ B = C ) $=
      ( wcel cv wceq wi wal csb ax-gen wnfc wb csbiebt mpdan mpbii ) BEHZAIBJCD
      JKZALZABCMDJZUAAGNTADOUBUCPFABCDEQRS $.
  $}

  ${
    $d x A $.  $d y C $.  $d x y $.
    csbief.1 $e |- A e. _V $.
    csbief.2 $e |- F/_ x C $.
    csbief.3 $e |- ( x = A -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by NM, 26-Nov-2005.)  (Revised by Mario Carneiro,
       13-Oct-2016.) $)
    csbief $p |- [_ A / x ]_ B = C $=
      ( cvv wcel csb wceq wnfc a1i csbiegf ax-mp ) BHIZABCJDKEABCDHADLPFMGNO $.
  $}

  ${
    $d x A $.  $d x y C $.  $d x y ph $.
    csbied.1 $e |- ( ph -> A e. V ) $.
    csbied.2 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by Mario Carneiro, 2-Dec-2014.)  (Revised by Mario
       Carneiro, 13-Oct-2016.) $)
    csbied $p |- ( ph -> [_ A / x ]_ B = C ) $=
      ( nfv nfcvd csbiedf ) ABCDEFABIABEJGHK $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x D $.
    csbied2.1 $e |- ( ph -> A e. V ) $.
    csbied2.2 $e |- ( ph -> A = B ) $.
    csbied2.3 $e |- ( ( ph /\ x = B ) -> C = D ) $.
    $( Conversion of implicit substitution to explicit class substitution,
       deduction form.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    csbied2 $p |- ( ph -> [_ A / x ]_ C = D ) $=
      ( cv wceq id sylan9eqr syldan csbied ) ABCEFGHABKZCLZQDLEFLRAQCDRMINJOP
      $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d z C $.  $d x y z D $.
    csbie2t.1 $e |- A e. _V $.
    csbie2t.2 $e |- B e. _V $.
    $( Conversion of implicit substitution to explicit substitution into a
       class (closed form of ~ csbie2 ).  (Contributed by NM, 3-Sep-2007.)
       (Revised by Mario Carneiro, 13-Oct-2016.) $)
    csbie2t $p |- ( A. x A. y ( ( x = A /\ y = B ) -> C = D ) ->
                  [_ A / x ]_ [_ B / y ]_ C = D ) $=
      ( cv wceq wa wi wal csb cvv nfa1 nfcvd wcel a1i csbiedf nfa2 nfv nfan sps
      sp impl ) AICJZBIDJZKEFJZLZBMZAMZACBDENFOUKAPULAFQCORULGSULUGKZBDEFOULUGB
      UJBAUAUGBUBUCUMBFQDORUMHSULUGUHUIUKUJAUJBUEUDUFTT $.

    csbie2.3 $e |- ( ( x = A /\ y = B ) -> C = D ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by NM, 27-Aug-2007.) $)
    csbie2 $p |- [_ A / x ]_ [_ B / y ]_ C = D $=
      ( cv wceq wa wi wal csb gen2 csbie2t ax-mp ) AJCKBJDKLEFKMZBNANACBDEOOFKS
      ABIPABCDEFGHQR $.
  $}

  ${
    $d x y z $.  $d A y z $.  $d B y z $.  $d C x $.  $d D y z $.  $d V z $.
    csbie2g.1 $e |- ( x = y -> B = C ) $.
    csbie2g.2 $e |- ( y = A -> C = D ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       This version of ~ sbcie avoids a disjointness condition on ` x ` and
       ` A ` by substituting twice.  (Contributed by Mario Carneiro,
       11-Nov-2016.) $)
    csbie2g $p |- ( A e. V -> [_ A / x ]_ B = D ) $=
      ( vz wcel csb cv wsbc cab df-csb wceq eleq2d sbcie2g abbi1dv syl5eq ) CGK
      ZACDLJMZDKZACNZJOFAJCDPUBUEJFUDUCEKUCFKABCGAMBMZQDEUCHRUFCQEFUCIRSTUA $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z C $.  $d z ph $.
    $( Nest the composition of two substitutions.  (Contributed by Mario
       Carneiro, 11-Nov-2016.) $)
    sbcnestgf $p |- ( ( A e. V /\ A. y F/ x ph ) ->
         ( [. A / x ]. [. B / y ]. ph <-> [. [_ A / x ]_ B / y ]. ph ) ) $=
      ( vz wcel wnf wal wsbc csb wb cv wi wceq dfsbcq syl cvv a1i csbeq1 imbi2d
      bibi12d vex csbeq1a adantl nfnf1 nfal nfa1 wnfc nfcsb1v sp nfsbcd sbciedf
      vtoclg imp ) DFHABIZCJZACEKZBDKZACBDELZKZMZURUSBGNZKZACBVDELZKZMZOURVCOGD
      FVDDPZVHVCURVIVEUTVGVBUSBVDDQVIVFVAPVGVBMBVDDEUAACVFVAQRUCUBURUSVGBVDSVDS
      HURGUDTBNVDPZUSVGMZURVJEVFPVKBVDEUEACEVFQRUFUQBCABUGUHURABCVFUQCUIBVFUJUR
      BVDEUKTUQCULUMUNUOUP $.

    $( Nest the composition of two substitutions.  (Contributed by NM,
       23-Nov-2005.)  (Proof shortened by Mario Carneiro, 10-Nov-2016.) $)
    csbnestgf $p |- ( ( A e. V /\ A. y F/_ x C ) ->
         [_ A / x ]_ [_ B / y ]_ C = [_ [_ A / x ]_ B / y ]_ C ) $=
      ( vz wcel wnfc wal wa cv csb wsbc cab cvv wceq elex df-csb abeq2i wb nfcr
      sbcbii wnf alimi sbcnestgf sylan2 syl5bb abbidv sylan 3eqtr4g ) CFHZAEIZB
      JZKGLZBDEMZHZACNZGOZUOEHZBACDMZNZGOZACUPMBVAEMULCPHZUNUSVCQCFRVDUNKZURVBG
      URUTBDNZACNZVEVBUQVFACVFGUPBGDESTUCUNVDUTAUDZBJVGVBUAUMVHBAGEUBUEUTABCDPU
      FUGUHUIUJAGCUPSBGVAESUK $.

    $d x ph $.
    $( Nest the composition of two substitutions.  (Contributed by NM,
       27-Nov-2005.)  (Proof shortened by Mario Carneiro, 11-Nov-2016.) $)
    sbcnestg $p |- ( A e. V ->
          ( [. A / x ]. [. B / y ]. ph <-> [. [_ A / x ]_ B / y ]. ph ) ) $=
      ( wcel wnf wal wsbc csb wb nfv ax-gen sbcnestgf mpan2 ) DFGABHZCIACEJBDJA
      CBDEKJLQCABMNABCDEFOP $.

    $d x C $.
    $( Nest the composition of two substitutions.  (Contributed by NM,
       23-Nov-2005.)  (Proof shortened by Mario Carneiro, 10-Nov-2016.) $)
    csbnestg $p |- ( A e. V ->
          [_ A / x ]_ [_ B / y ]_ C = [_ [_ A / x ]_ B / y ]_ C ) $=
      ( wcel wnfc wal csb wceq nfcv ax-gen csbnestgf mpan2 ) CFGAEHZBIACBDEJJBA
      CDJEJKPBAELMABCDEFNO $.
  $}

  ${
    $d x y $.  $d y C $.
    $( Nest the composition of two substitutions.  (Contributed by NM,
       23-May-2006.)  (Proof shortened by Mario Carneiro, 11-Nov-2016.) $)
    csbnest1g $p |- ( A e. V ->
         [_ A / x ]_ [_ B / x ]_ C = [_ [_ A / x ]_ B / x ]_ C ) $=
      ( vy wcel cv csb wnfc wceq nfcsb1v ax-gen csbnestgf mpan2 csbeq2i 3eqtr3g
      wal csbco ) BEGZABFCAFHZDIZIZIZFABCIZUBIZABACDIZIAUEDITAUBJZFRUDUFKUHFAUA
      DLMAFBCUBENOABUCUGAFCDSPAFUEDSQ $.
  $}

  ${
    $d x A $.
    $( Idempotent law for class substitutions.  (Contributed by NM,
       1-Mar-2008.) $)
    csbidmg $p |- ( A e. V -> [_ A / x ]_ [_ A / x ]_ B = [_ A / x ]_ B ) $=
      ( wcel cvv csb wceq elex csbnest1g csbconstg csbeq1d eqtrd syl ) BDEBFEZA
      BABCGZGZPHBDIOQAABBGZCGPABBCFJOARBCABBFKLMN $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x C $.  $d x D $.
    sbcco3g.1 $e |- ( x = A -> B = C ) $.
    $( Composition of two substitutions.  (Contributed by NM, 27-Nov-2005.)
       (Revised by Mario Carneiro, 11-Nov-2016.) $)
    sbcco3g $p |- ( A e. V ->
         ( [. A / x ]. [. B / y ]. ph <-> [. C / y ]. ph ) ) $=
      ( wcel wsbc csb sbcnestg cvv wceq wb elex nfcvd csbiegf dfsbcq 3syl bitrd
      ) DGIZACEJBDJACBDEKZJZACFJZABCDEGLUBDMIZUCFNUDUEODGPBDEFMUFBFQHRACUCFSTUA
      $.

    $( Composition of two class substitutions.  (Contributed by NM,
       27-Nov-2005.)  (Revised by Mario Carneiro, 11-Nov-2016.) $)
    csbco3g $p |- ( A e. V ->
                 [_ A / x ]_ [_ B / y ]_ D = [_ C / y ]_ D ) $=
      ( wcel csb csbnestg cvv wceq elex nfcvd csbiegf syl csbeq1d eqtrd ) CGIZA
      CBDFJJBACDJZFJBEFJABCDFGKTBUAEFTCLIZUAEMCGNACDELUBAEOHPQRS $.
  $}

  ${
    $d x B $.  $d x D $.
    $( Special case related to ~ rspsbc .  (Contributed by NM, 10-Dec-2005.)
       (Proof shortened by Eric Schmidt, 17-Jan-2007.) $)
    rspcsbela $p |- ( ( A e. B /\ A. x e. B C e. D ) -> [_ A / x ]_ C e. D ) $=
      ( wcel wral csb wsbc rspsbc sbcel1g sylibd imp ) BCFZDEFZACGZABDHEFZNPOAB
      IQOABCJABDECKLM $.
  $}

  ${
    $d w x y z $.  $d w y z A $.
    $( Two ways of expressing " ` x ` is (effectively) not free in ` A ` ."
       (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    sbnfc2 $p |- ( F/_ x A <-> A. y A. z [_ y / x ]_ A = [_ z / x ]_ A ) $=
      ( vw cv csb wceq wal cvv wcel vex csbtt mpan wsb wsbc sbsbc sbcel2g ax-mp
      wb eqtr4d alrimivv nfv wnf eleq2 bitri 3bitr4g 2alimi sbnf2 sylibr impbii
      wnfc nfcd ) ADULZABFZDGZACFZDGZHZCIBIZUNUSBCUNUPDURUOJKZUNUPDHBLZAUODJMNU
      QJKZUNURDHCLZAUQDJMNUAUBUTAEDUTEUCUTEFZDKZABOZVFACOZTZCIBIVFAUDUSVIBCUSVE
      UPKZVEURKZVGVHUPURVEUEVGVFAUOPZVJVFABQVAVLVJTVBAUOVEDJRSUFVHVFAUQPZVKVFAC
      QVCVMVKTVDAUQVEDJRSUFUGUHVFABCUIUJUMUK $.
  $}

  ${
    $d y z A $.  $d z ph $.  $d x y z $.  $d V z $.
    $( Move substitution into a class abstraction.  (Contributed by NM,
       13-Dec-2005.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    csbabg $p |- ( A e. V ->
                 [_ A / x ]_ { y | ph } = { y | [. A / x ]. ph } ) $=
      ( vz wcel cab csb wsbc cv sbccom wsb df-clab sbsbc sbcbii 3bitr4i sbcel2g
      bitri syl5rbb eqrdv ) DEGZFBDACHZIZABDJZCHZFKZUFGZUGUCGZBDJZUBUGUDGUECUGJ
      ZACUGJZBDJUHUJACBUGDLUHUECFMUKUEFCNUECFOSUIULBDUIACFMULAFCNACFOSPQBDUGUCE
      RTUA $.
  $}

  ${
    $d x v z $.  $d y v z $.  $d A w v z $.  $d B w v z $.  $d ph v z $.
    $d ps v z $.
    cbvralcsf.1 $e |- F/_ y A $.
    cbvralcsf.2 $e |- F/_ x B $.
    cbvralcsf.3 $e |- F/ y ph $.
    cbvralcsf.4 $e |- F/ x ps $.
    cbvralcsf.5 $e |- ( x = y -> A = B ) $.
    cbvralcsf.6 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A more general version of ~ cbvralf that doesn't require ` A ` and ` B `
       to be distinct from ` x ` or ` y ` .  Changes bound variables using
       implicit substitution.  (Contributed by Andrew Salmon, 13-Jul-2011.) $)
    cbvralcsf $p |- ( A. x e. A ph <-> A. y e. B ps ) $=
      ( vz vv cv wcel wi wal wsbc nfcri wral csb nfv nfcsb1v nfsbc1v id csbeq1a
      nfim weq eleq12d sbceq1a imbi12d cbval nfcv nfcsb nfsbc csbeq1 cab df-csb
      eleq2d sbie sbsbc bitr3i abbi2i eqtr4i syl6eq dfsbcq syl6bb bitri 3bitr4i
      wsb df-ral ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVPMOZCWAEUBZPZACWASZQZMRVT
      VOWECMVOMUCWCWDCCMWBCWAEUDTACWAUEUHCMUIZVNWCAWDWFVMWAEWBWFUFCWAEUGUJACWAU
      KULUMWEVSMDWCWDDDMWBDCWAEDWAUNZGUOTADCWAWGIUPUHVSMUCMDUIZWCVRWDBWHWAVQWBF
      WHUFWHWBCVQEUBZFCWAVQEUQWINOZEPZCVQSZNURFCNVQEUSWLNFWJFPZWKCDVKWLWKWMCDCN
      FHTCDUIEFWJKUTVAWKCDVBVCVDVEVFUJWHWDACVQSZBACWAVQVGWNACDVKBACDVBABCDJLVAV
      CVHULUMVIACEVLBDFVLVJ $.

    $( A more general version of ~ cbvrexf that has no distinct variable
       restrictions.  Changes bound variables using implicit substitution.
       (Contributed by Andrew Salmon, 13-Jul-2011.)  (Proof shortened by Mario
       Carneiro, 7-Dec-2014.) $)
    cbvrexcsf $p |- ( E. x e. A ph <-> E. y e. B ps ) $=
      ( vz vv cv wcel wa wex wsbc nfcri wrex csb nfv nfcsb1v nfsbc1v id csbeq1a
      nfan weq eleq12d sbceq1a anbi12d cbvex nfcv nfcsb nfsbc csbeq1 cab df-csb
      eleq2d sbie sbsbc bitr3i abbi2i eqtr4i syl6eq dfsbcq syl6bb bitri 3bitr4i
      wsb df-rex ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVPMOZCWAEUBZPZACWASZQZMRVT
      VOWECMVOMUCWCWDCCMWBCWAEUDTACWAUEUHCMUIZVNWCAWDWFVMWAEWBWFUFCWAEUGUJACWAU
      KULUMWEVSMDWCWDDDMWBDCWAEDWAUNZGUOTADCWAWGIUPUHVSMUCMDUIZWCVRWDBWHWAVQWBF
      WHUFWHWBCVQEUBZFCWAVQEUQWINOZEPZCVQSZNURFCNVQEUSWLNFWJFPZWKCDVKWLWKWMCDCN
      FHTCDUIEFWJKUTVAWKCDVBVCVDVEVFUJWHWDACVQSZBACWAVQVGWNACDVKBACDVBABCDJLVAV
      CVHULUMVIACEVLBDFVLVJ $.

    $( A more general version of ~ cbvreuv that has no distinct variable
       rextrictions.  Changes bound variables using implicit substitution.
       (Contributed by Andrew Salmon, 13-Jul-2011.) $)
    cbvreucsf $p |- ( E! x e. A ph <-> E! y e. B ps ) $=
      ( vz vv cv wcel wa weu wsb nfcri wreu csb nfv nfcsb1v nfan weq id csbeq1a
      nfs1v eleq12d sbequ12 anbi12d cbveu nfcv nfcsb nfsb csbeq1 cab wsbc sbsbc
      abbii eleq2d sbie bicomi abbi2i df-csb 3eqtr4ri syl6eq sbequ syl6bb bitri
      df-reu 3bitr4i ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVQMOZCWBEUBZPZACMSZQZM
      RWAVPWFCMVPMUCWDWECCMWCCWBEUDTACMUIUECMUFZVOWDAWEWGVNWBEWCWGUGCWBEUHUJACM
      UKULUMWFVTMDWDWEDDMWCDCWBEDWBUNGUOTACMDIUPUEVTMUCMDUFZWDVSWEBWHWBVRWCFWHU
      GWHWCCVREUBZFCWBVREUQNOZEPZCDSZNURWKCVRUSZNURFWIWLWMNWKCDUTVAWLNFWLWJFPZW
      KWNCDCNFHTCDUFEFWJKVBVCVDVECNVREVFVGVHUJWHWEACDSBAMDCVIABCDJLVCVJULUMVKAC
      EVLBDFVLVM $.

    $( A more general version of ~ cbvrab with no distinct variable
       restrictions.  (Contributed by Andrew Salmon, 13-Jul-2011.) $)
    cbvrabcsf $p |- { x e. A | ph } = { y e. B | ps } $=
      ( vz vv cv wcel wa cab wsb nfcri crab csb nfv nfcsb1v nfan weq id csbeq1a
      nfs1v eleq12d sbequ12 anbi12d cbvab nfcv nfcsb csbeq1 df-csb eleq2d sbsbc
      nfsb wsbc bitr3i abbi2i eqtr4i syl6eq sbequ syl6bb eqtri df-rab 3eqtr4i
      sbie ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVOMOZCVTEUBZPZACMSZQZMRVSVNWDCMV
      NMUCWBWCCCMWACVTEUDTACMUIUECMUFZVMWBAWCWEVLVTEWAWEUGCVTEUHUJACMUKULUMWDVR
      MDWBWCDDMWADCVTEDVTUNGUOTACMDIUTUEVRMUCMDUFZWBVQWCBWFVTVPWAFWFUGWFWACVPEU
      BZFCVTVPEUPWGNOZEPZCVPVAZNRFCNVPEUQWJNFWHFPZWICDSWJWIWKCDCNFHTCDUFEFWHKUR
      VKWICDUSVBVCVDVEUJWFWCACDSBAMDCVFABCDJLVKVGULUMVHACEVIBDFVIVJ $.
  $}

  ${
    $d A y $.  $d ps y $.  $d B x $.  $d ch x $.
    cbvralv2.1 $e |- ( x = y -> ( ps <-> ch ) ) $.
    cbvralv2.2 $e |- ( x = y -> A = B ) $.
    $( Rule used to change the bound variable in a restricted universal
       quantifier with implicit substitution which also changes the quantifier
       domain.  (Contributed by David Moews, 1-May-2017.) $)
    cbvralv2 $p |- ( A. x e. A ps <-> A. y e. B ch ) $=
      ( nfcv nfv cbvralcsf ) ABCDEFDEICFIADJBCJHGK $.

    $( Rule used to change the bound variable in a restricted existential
       quantifier with implicit substitution which also changes the quantifier
       domain.  (Contributed by David Moews, 1-May-2017.) $)
    cbvrexv2 $p |- ( E. x e. A ps <-> E. y e. B ch ) $=
      ( nfcv nfv cbvrexcsf ) ABCDEFDEICFIADJBCJHGK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Define basic set operations and relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new symbols. $)
  $c \ $. $( Backslash (difference) $)
  $c u. $. $( Cup (union) $)
  $c i^i $. $( Cap (intersection) $)
  $c C_ $. $( Subclass or subset symbol $)
  $c C. $. $( Proper subclass or subset symbol $)

  $( Extend class notation to include class difference (read:  " ` A ` minus
     ` B ` "). $)
  cdif $a class ( A \ B ) $.

  $( Extend class notation to include union of two classes (read:  " ` A `
     union ` B ` "). $)
  cun $a class ( A u. B ) $.

  $( Extend class notation to include the intersection of two classes
     (read:  " ` A ` intersect ` B ` "). $)
  cin $a class ( A i^i B ) $.

  $( Extend wff notation to include the subclass relation.  This is
     read " ` A ` is a subclass of ` B ` " or " ` B ` includes ` A ` ."  When
     ` A ` exists as a set, it is also read " ` A ` is a subset of ` B ` ." $)
  wss $a wff A C_ B $.

  $( Extend wff notation with proper subclass relation. $)
  wpss $a wff A C. B $.

  ${
    $d x A $.  $d x B $.  $d y A $.  $d y B $.  $d z x $.  $d z y $.  $d z A $.
    $d z B $.
    $( Soundness justification theorem for ~ df-dif .  (Contributed by Rodolfo
       Medina, 27-Apr-2010.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    difjust $p |- { x | ( x e. A /\ -. x e. B ) }
                  = { y | ( y e. A /\ -. y e. B ) } $=
      ( vz cv wcel wn wa cab weq eleq1 notbid anbi12d cbvabv eqtri ) AFZCGZQDGZ
      HZIZAJEFZCGZUBDGZHZIZEJBFZCGZUGDGZHZIZBJUAUFAEAEKZRUCTUEQUBCLULSUDQUBDLMN
      OUFUKEBEBKZUCUHUEUJUBUGCLUMUDUIUBUGDLMNOP $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define class difference, also called relative complement.  Definition
       5.12 of [TakeutiZaring] p. 20.  Contrast this operation with union
       ` ( A u. B ) ` ( ~ df-un ) and intersection ` ( A i^i B ) `
       ( ~ df-in ).  Several notations are used in the literature; we chose the
       ` \ ` convention used in Definition 5.3 of [Eisenberg] p. 67 instead of
       the more common minus sign to reserve the latter for later use in, e.g.,
       arithmetic.  We will use the terminology " ` A ` excludes ` B ` " to
       mean ` A \ B ` .  We will use " ` B ` is removed from ` A ` " to mean
       ` A \ { B } ` i.e. the removal of an element or equivalently the
       exclusion of a singleton.  (Contributed by NM, 29-Apr-1994.) $)
    df-dif $a |- ( A \ B ) = { x | ( x e. A /\ -. x e. B ) } $.
  $}

  ${
    $d x A $.  $d x B $.  $d y A $.  $d y B $.  $d z x $.  $d z y $.  $d z A $.
    $d z B $.
    $( Soundness justification theorem for ~ df-un .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    unjust $p |- { x | ( x e. A \/ x e. B ) } = { y | ( y e. A \/ y e. B ) } $=
      ( vz cv wcel wo cab weq eleq1 orbi12d cbvabv eqtri ) AFZCGZODGZHZAIEFZCGZ
      SDGZHZEIBFZCGZUCDGZHZBIRUBAEAEJPTQUAOSCKOSDKLMUBUFEBEBJTUDUAUESUCCKSUCDKL
      MN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define the union of two classes.  Definition 5.6 of [TakeutiZaring]
       p. 16.  Contrast this operation with difference ` ( A \ B ) `
       ( ~ df-dif ) and intersection ` ( A i^i B ) ` ( ~ df-in ).  (Contributed
       by NM, 23-Aug-1993.) $)
    df-un $a |- ( A u. B ) = { x | ( x e. A \/ x e. B ) } $.
  $}

  ${
    $d x A $.  $d x B $.  $d y A $.  $d y B $.  $d z x $.  $d z y $.  $d z A $.
    $d z B $.
    $( Soundness justification theorem for ~ df-in .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    injust $p |- { x | ( x e. A /\ x e. B ) }
                  = { y | ( y e. A /\ y e. B ) } $=
      ( vz cv wcel wa cab weq eleq1 anbi12d cbvabv eqtri ) AFZCGZODGZHZAIEFZCGZ
      SDGZHZEIBFZCGZUCDGZHZBIRUBAEAEJPTQUAOSCKOSDKLMUBUFEBEBJTUDUAUESUCCKSUCDKL
      MN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define the intersection of two classes.  Definition 5.6 of
       [TakeutiZaring] p. 16.  Contrast this operation with union
       ` ( A u. B ) ` ( ~ df-un ) and difference ` ( A \ B ) ` ( ~ df-dif ).
       (Contributed by NM, 29-Apr-1994.) $)
    df-in $a |- ( A i^i B ) = { x | ( x e. A /\ x e. B ) } $.

    $( Alternate definition for the intersection of two classes.  (Contributed
       by NM, 6-Jul-2005.) $)
    dfin5 $p |- ( A i^i B ) = { x e. A | x e. B } $=
      ( cin cv wcel wa cab crab df-in df-rab eqtr4i ) BCDAEZBFMCFZGAHNABIABCJNA
      BKL $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of class difference.  (Contributed by NM,
       25-Mar-2004.) $)
    dfdif2 $p |- ( A \ B ) = { x e. A | -. x e. B } $=
      ( cdif cv wcel wn wa cab crab df-dif df-rab eqtr4i ) BCDAEZBFNCFGZHAIOABJ
      ABCKOABLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Expansion of membership in a class difference.  (Contributed by NM,
       29-Apr-1994.) $)
    eldif $p |- ( A e. ( B \ C ) <-> ( A e. B /\ -. A e. C ) ) $=
      ( vx cdif wcel cvv wn wa elex adantr cv wceq notbid anbi12d df-dif elab2g
      eleq1 pm5.21nii ) ABCEZFAGFZABFZACFZHZIZATJUBUAUDABJKDLZBFZUFCFZHZIUEDATG
      UFAMZUGUBUIUDUFABRUJUHUCUFACRNODBCPQS $.
  $}

  ${
    eldifd.1 $e |- ( ph -> A e. B ) $.
    eldifd.2 $e |- ( ph -> -. A e. C ) $.
    $( If a class is in one class and not another, it is also in their
       difference.  One-way deduction form of ~ eldif .  (Contributed by David
       Moews, 1-May-2017.) $)
    eldifd $p |- ( ph -> A e. ( B \ C ) ) $=
      ( wcel wn cdif eldif sylanbrc ) ABCGBDGHBCDIGEFBCDJK $.
  $}

  ${
    eldifad.1 $e |- ( ph -> A e. ( B \ C ) ) $.
    $( If a class is in the difference of two classes, it is also in the
       minuend.  One-way deduction form of ~ eldif .  (Contributed by David
       Moews, 1-May-2017.) $)
    eldifad $p |- ( ph -> A e. B ) $=
      ( wcel wn cdif wa eldif sylib simpld ) ABCFZBDFGZABCDHFMNIEBCDJKL $.
  $}

  ${
    eldifbd.1 $e |- ( ph -> A e. ( B \ C ) ) $.
    $( If a class is in the difference of two classes, it is not in the
       subtrahend.  One-way deduction form of ~ eldif .  (Contributed by David
       Moews, 1-May-2017.) $)
    eldifbd $p |- ( ph -> -. A e. C ) $=
      ( wcel wn cdif wa eldif sylib simprd ) ABCFZBDFGZABCDHFMNIEBCDJKL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Subclasses and subsets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $( Define the subclass relationship.  Exercise 9 of [TakeutiZaring] p. 18.
     Note that ` A C_ A ` (proved in ~ ssid ).  Contrast this relationship with
     the relationship ` A C. B ` (as will be defined in ~ df-pss ).  For a more
     traditional definition, but requiring a dummy variable, see ~ dfss2 (or
     ~ dfss3 which is similar).  (Contributed by NM, 27-Apr-1994.) $)
  df-ss $a |- ( A C_ B <-> ( A i^i B ) = A ) $.

  $( Variant of subclass definition ~ df-ss .  (Contributed by NM,
     3-Sep-2004.) $)
  dfss $p |- ( A C_ B <-> A = ( A i^i B ) ) $=
    ( wss cin wceq df-ss eqcom bitri ) ABCABDZAEAIEABFIAGH $.

  $( Define proper subclass relationship between two classes.  Definition 5.9
     of [TakeutiZaring] p. 17.  Note that ` -. A C. A ` (proved in ~ pssirr ).
     Contrast this relationship with the relationship ` A C_ B ` (as defined in
     ~ df-ss ).  Other possible definitions are given by ~ dfpss2 and
     ~ dfpss3 .  (Contributed by NM, 7-Feb-1996.) $)
  df-pss $a |- ( A C. B <-> ( A C_ B /\ A =/= B ) ) $.

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of the subclass relationship between two classes.
       Definition 5.9 of [TakeutiZaring] p. 17.  (Contributed by NM,
       8-Jan-2002.) $)
    dfss2 $p |- ( A C_ B <-> A. x ( x e. A -> x e. B ) ) $=
      ( wss cv wcel wa wb wal wi cin wceq dfss df-in eqeq2i abeq2 3bitri pm4.71
      cab albii bitr4i ) BCDZAEZBFZUDUCCFZGZHZAIZUDUEJZAIUBBBCKZLBUFASZLUHBCMUJ
      UKBABCNOUFABPQUIUGAUDUERTUA $.

    $( Alternate definition of subclass relationship.  (Contributed by NM,
       14-Oct-1999.) $)
    dfss3 $p |- ( A C_ B <-> A. x e. A x e. B ) $=
      ( wss cv wcel wi wal wral dfss2 df-ral bitr4i ) BCDAEZBFMCFZGAHNABIABCJNA
      BKL $.
  $}

  ${
    $d z y A $.  $d z y B $.  $d x z $.
    dfss2f.1 $e |- F/_ x A $.
    dfss2f.2 $e |- F/_ x B $.
    $( Equivalence for subclass relation, using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by NM,
       3-Jul-1994.)  (Revised by Andrew Salmon, 27-Aug-2011.) $)
    dfss2f $p |- ( A C_ B <-> A. x ( x e. A -> x e. B ) ) $=
      ( vz wss cv wcel wal dfss2 nfcri nfim nfv weq eleq1 imbi12d cbval bitri
      wi ) BCGFHZBIZUACIZTZFJAHZBIZUECIZTZAJFBCKUDUHFAUBUCAAFBDLAFCELMUHFNFAOUB
      UFUCUGUAUEBPUAUECPQRS $.

    $d y A $.  $d y B $.
    $( Equivalence for subclass relation, using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by NM,
       20-Mar-2004.) $)
    dfss3f $p |- ( A C_ B <-> A. x e. A x e. B ) $=
      ( wss cv wcel wi wal wral dfss2f df-ral bitr4i ) BCFAGZBHOCHZIAJPABKABCDE
      LPABMN $.

    $( If ` x ` is not free in ` A ` and ` B ` , it is not free in
       ` A C_ B ` .  (Contributed by NM, 27-Dec-1996.) $)
    nfss $p |- F/ x A C_ B $=
      ( wss cv wcel wral dfss3f nfra1 nfxfr ) BCFAGCHZABIAABCDEJMABKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Membership relationships follow from a subclass relationship.
       (Contributed by NM, 5-Aug-1993.) $)
    ssel $p |- ( A C_ B -> ( C e. A -> C e. B ) ) $=
      ( vx wss cv wceq wa wex wi wal dfss2 biimpi 19.21bi anim2d eximdv df-clel
      wcel 3imtr4g ) ABEZDFZCGZUAARZHZDIUBUABRZHZDICARCBRTUDUFDTUCUEUBTUCUEJZDT
      UGDKDABLMNOPDCAQDCBQS $.
  $}

  $( Membership relationships follow from a subclass relationship.
     (Contributed by NM, 7-Jun-2004.) $)
  ssel2 $p |- ( ( A C_ B /\ C e. A ) -> C e. B ) $=
    ( wss wcel ssel imp ) ABDCAECBEABCFG $.

  ${
    sseli.1 $e |- A C_ B $.
    $( Membership inference from subclass relationship.  (Contributed by NM,
       5-Aug-1993.) $)
    sseli $p |- ( C e. A -> C e. B ) $=
      ( wss wcel wi ssel ax-mp ) ABECAFCBFGDABCHI $.

    ${
      sselii.2 $e |- C e. A $.
      $( Membership inference from subclass relationship.  (Contributed by NM,
         31-May-1999.) $)
      sselii $p |- C e. B $=
        ( wcel sseli ax-mp ) CAFCBFEABCDGH $.
    $}

    ${
      sseldi.2 $e |- ( ph -> C e. A ) $.
      $( Membership inference from subclass relationship.  (Contributed by NM,
         25-Jun-2014.) $)
      sseldi $p |- ( ph -> C e. B ) $=
        ( wcel sseli syl ) ADBGDCGFBCDEHI $.
    $}
  $}

  ${
    sseld.1 $e |- ( ph -> A C_ B ) $.
    $( Membership deduction from subclass relationship.  (Contributed by NM,
       15-Nov-1995.) $)
    sseld $p |- ( ph -> ( C e. A -> C e. B ) ) $=
      ( wss wcel wi ssel syl ) ABCFDBGDCGHEBCDIJ $.

    $( Membership deduction from subclass relationship.  (Contributed by NM,
       26-Jun-2014.) $)
    sselda $p |- ( ( ph /\ C e. A ) -> C e. B ) $=
      ( wcel sseld imp ) ADBFDCFABCDEGH $.

    ${
      sseldd.2 $e |- ( ph -> C e. A ) $.
      $( Membership inference from subclass relationship.  (Contributed by NM,
         14-Dec-2004.) $)
      sseldd $p |- ( ph -> C e. B ) $=
        ( wcel sseld mpd ) ADBGDCGFABCDEHI $.
    $}
  $}

  ${
    ssneld.1 $e |- ( ph -> A C_ B ) $.
    $( If a class is not in another class, it is also not in a subclass of that
       class.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    ssneld $p |- ( ph -> ( -. C e. B -> -. C e. A ) ) $=
      ( wcel sseld con3d ) ADBFDCFABCDEGH $.

    ssneldd.2 $e |- ( ph -> -. C e. B ) $.
    $( If an element is not in a class, it is also not in a subclass of that
       class.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    ssneldd $p |- ( ph -> -. C e. A ) $=
      ( wcel wn ssneld mpd ) ADCGHDBGHFABCDEIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    ssriv.1 $e |- ( x e. A -> x e. B ) $.
    $( Inference rule based on subclass definition.  (Contributed by NM,
       5-Aug-1993.) $)
    ssriv $p |- A C_ B $=
      ( wss cv wcel wi dfss2 mpgbir ) BCEAFZBGKCGHAABCIDJ $.
  $}

  ${
    ssrd.0 $e |- F/ x ph $.
    ssrd.1 $e |- F/_ x A $.
    ssrd.2 $e |- F/_ x B $.
    ssrd.3 $e |- ( ph -> ( x e. A -> x e. B ) ) $.
    $( Deduction rule based on subclass definition.  (Contributed by Thierry
       Arnoux, 8-Mar-2017.) $)
    ssrd $p |- ( ph -> A C_ B ) $=
      ( cv wcel wi wal wss alrimi dfss2f sylibr ) ABIZCJQDJKZBLCDMARBEHNBCDFGOP
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    ssrdv.1 $e |- ( ph -> ( x e. A -> x e. B ) ) $.
    $( Deduction rule based on subclass definition.  (Contributed by NM,
       15-Nov-1995.) $)
    ssrdv $p |- ( ph -> A C_ B ) $=
      ( cv wcel wi wal wss alrimiv dfss2 sylibr ) ABFZCGNDGHZBICDJAOBEKBCDLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Transitivity of subclasses.  Exercise 5 of [TakeutiZaring] p. 17.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       14-Jun-2011.) $)
    sstr2 $p |- ( A C_ B -> ( B C_ C -> A C_ C ) ) $=
      ( vx wss cv wcel wi wal ssel imim1d alimdv dfss2 3imtr4g ) ABEZDFZBGZPCGZ
      HZDIPAGZRHZDIBCEACEOSUADOTQRABPJKLDBCMDACMN $.
  $}

  $( Transitivity of subclasses.  Theorem 6 of [Suppes] p. 23.  (Contributed by
     NM, 5-Sep-2003.) $)
  sstr $p |- ( ( A C_ B /\ B C_ C ) -> A C_ C ) $=
    ( wss sstr2 imp ) ABDBCDACDABCEF $.

  ${
    sstri.1 $e |- A C_ B $.
    sstri.2 $e |- B C_ C $.
    $( Subclass transitivity inference.  (Contributed by NM, 5-May-2000.) $)
    sstri $p |- A C_ C $=
      ( wss sstr2 mp2 ) ABFBCFACFDEABCGH $.
  $}

  ${
    sstrd.1 $e |- ( ph -> A C_ B ) $.
    sstrd.2 $e |- ( ph -> B C_ C ) $.
    $( Subclass transitivity deduction.  (Contributed by NM, 2-Jun-2004.) $)
    sstrd $p |- ( ph -> A C_ C ) $=
      ( wss sstr syl2anc ) ABCGCDGBDGEFBCDHI $.
  $}

  ${
    syl5ss.1 $e |- A C_ B $.
    syl5ss.2 $e |- ( ph -> B C_ C ) $.
    $( Subclass transitivity deduction.  (Contributed by NM, 6-Feb-2014.) $)
    syl5ss $p |- ( ph -> A C_ C ) $=
      ( wss a1i sstrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl6ss.1 $e |- ( ph -> A C_ B ) $.
    syl6ss.2 $e |- B C_ C $.
    $( Subclass transitivity deduction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    syl6ss $p |- ( ph -> A C_ C ) $=
      ( wss a1i sstrd ) ABCDECDGAFHI $.
  $}

  ${
    sylan9ss.1 $e |- ( ph -> A C_ B ) $.
    sylan9ss.2 $e |- ( ps -> B C_ C ) $.
    $( A subclass transitivity deduction.  (Contributed by NM, 27-Sep-2004.)
       (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
    sylan9ss $p |- ( ( ph /\ ps ) -> A C_ C ) $=
      ( wss sstr syl2an ) ACDHDEHCEHBFGCDEIJ $.
  $}

  ${
    sylan9ssr.1 $e |- ( ph -> A C_ B ) $.
    sylan9ssr.2 $e |- ( ps -> B C_ C ) $.
    $( A subclass transitivity deduction.  (Contributed by NM, 27-Sep-2004.) $)
    sylan9ssr $p |- ( ( ps /\ ph ) -> A C_ C ) $=
      ( wss sylan9ss ancoms ) ABCEHABCDEFGIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The subclass relationship is antisymmetric.  Compare Theorem 4 of
       [Suppes] p. 22.  (Contributed by NM, 5-Aug-1993.) $)
    eqss $p |- ( A = B <-> ( A C_ B /\ B C_ A ) ) $=
      ( vx cv wcel wb wal wi wa wceq wss albiim dfcleq dfss2 anbi12i 3bitr4i )
      CDZAEZQBEZFCGRSHCGZSRHCGZIABJABKZBAKZIRSCLCABMUBTUCUACABNCBANOP $.
  $}

  ${
    eqssi.1 $e |- A C_ B $.
    eqssi.2 $e |- B C_ A $.
    $( Infer equality from two subclass relationships.  Compare Theorem 4 of
       [Suppes] p. 22.  (Contributed by NM, 9-Sep-1993.) $)
    eqssi $p |- A = B $=
      ( wceq wss eqss mpbir2an ) ABEABFBAFCDABGH $.
  $}

  ${
    eqssd.1 $e |- ( ph -> A C_ B ) $.
    eqssd.2 $e |- ( ph -> B C_ A ) $.
    $( Equality deduction from two subclass relationships.  Compare Theorem 4
       of [Suppes] p. 22.  (Contributed by NM, 27-Jun-2004.) $)
    eqssd $p |- ( ph -> A = B ) $=
      ( wss wceq eqss sylanbrc ) ABCFCBFBCGDEBCHI $.
  $}

  ${
    eqrd.0 $e |- F/ x ph $.
    eqrd.1 $e |- F/_ x A $.
    eqrd.2 $e |- F/_ x B $.
    eqrd.3 $e |- ( ph -> ( x e. A <-> x e. B ) ) $.
    $( Deduce equality of classes from equivalence of membership.  (Contributed
       by Thierry Arnoux, 21-Mar-2017.) $)
    eqrd $p |- ( ph -> A = B ) $=
      ( cv wcel biimpd ssrd biimprd eqssd ) ACDABCDEFGABIZCJZODJZHKLABDCEGFAPQH
      MLN $.
  $}

  ${
    $d A x $.
    $( Any class is a subclass of itself.  Exercise 10 of [TakeutiZaring]
       p. 18.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 14-Jun-2011.) $)
    ssid $p |- A C_ A $=
      ( vx cv wcel id ssriv ) BAABCADEF $.
  $}

  ${
    $d A x $.
    $( Any class is a subclass of the universal class.  (Contributed by NM,
       31-Oct-1995.) $)
    ssv $p |- A C_ _V $=
      ( vx cvv cv elex ssriv ) BACBDAEF $.
  $}

  $( Equality theorem for subclasses.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 21-Jun-2011.) $)
  sseq1 $p |- ( A = B -> ( A C_ C <-> B C_ C ) ) $=
    ( wceq wss wa wb eqss wi sstr2 adantl adantr impbid sylbi ) ABDABEZBAEZFZAC
    EZBCEZGABHQRSPRSIOBACJKOSRIPABCJLMN $.

  $( Equality theorem for the subclass relationship.  (Contributed by NM,
     25-Jun-1998.) $)
  sseq2 $p |- ( A = B -> ( C C_ A <-> C C_ B ) ) $=
    ( wss wa wi wceq wb sstr2 com12 anim12i eqss dfbi2 3imtr4i ) ABDZBADZECADZC
    BDZFZRQFZEABGQRHOSPTQORCABIJRPQCBAIJKABLQRMN $.

  $( Equality theorem for the subclass relationship.  (Contributed by NM,
     31-May-1999.) $)
  sseq12 $p |- ( ( A = B /\ C = D ) -> ( A C_ C <-> B C_ D ) ) $=
    ( wceq wss sseq1 sseq2 sylan9bb ) ABEACFBCFCDEBDFABCGCDBHI $.

  ${
    sseq1i.1 $e |- A = B $.
    $( An equality inference for the subclass relationship.  (Contributed by
       NM, 18-Aug-1993.) $)
    sseq1i $p |- ( A C_ C <-> B C_ C ) $=
      ( wceq wss wb sseq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( An equality inference for the subclass relationship.  (Contributed by
       NM, 30-Aug-1993.) $)
    sseq2i $p |- ( C C_ A <-> C C_ B ) $=
      ( wceq wss wb sseq2 ax-mp ) ABECAFCBFGDABCHI $.

    ${
      sseq12i.2 $e |- C = D $.
      $( An equality inference for the subclass relationship.  (Contributed by
         NM, 31-May-1999.)  (Proof shortened by Eric Schmidt, 26-Jan-2007.) $)
      sseq12i $p |- ( A C_ C <-> B C_ D ) $=
        ( wceq wss wb sseq12 mp2an ) ABGCDGACHBDHIEFABCDJK $.
    $}
  $}

  ${
    sseq1d.1 $e |- ( ph -> A = B ) $.
    $( An equality deduction for the subclass relationship.  (Contributed by
       NM, 14-Aug-1994.) $)
    sseq1d $p |- ( ph -> ( A C_ C <-> B C_ C ) ) $=
      ( wceq wss wb sseq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( An equality deduction for the subclass relationship.  (Contributed by
       NM, 14-Aug-1994.) $)
    sseq2d $p |- ( ph -> ( C C_ A <-> C C_ B ) ) $=
      ( wceq wss wb sseq2 syl ) ABCFDBGDCGHEBCDIJ $.

    ${
      sseq12d.2 $e |- ( ph -> C = D ) $.
      $( An equality deduction for the subclass relationship.  (Contributed by
         NM, 31-May-1999.) $)
      sseq12d $p |- ( ph -> ( A C_ C <-> B C_ D ) ) $=
        ( wss sseq1d sseq2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
    $}
  $}

  ${
    eqsstr.1 $e |- A = B $.
    eqsstr.2 $e |- B C_ C $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 16-Jul-1995.) $)
    eqsstri $p |- A C_ C $=
      ( wss sseq1i mpbir ) ACFBCFEABCDGH $.
  $}

  ${
    eqsstr3.1 $e |- B = A $.
    eqsstr3.2 $e |- B C_ C $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 19-Oct-1999.) $)
    eqsstr3i $p |- A C_ C $=
      ( eqcomi eqsstri ) ABCBADFEG $.
  $}

  ${
    sseqtr.1 $e |- A C_ B $.
    sseqtr.2 $e |- B = C $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 28-Jul-1995.) $)
    sseqtri $p |- A C_ C $=
      ( wss sseq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    sseqtr4.1 $e |- A C_ B $.
    sseqtr4.2 $e |- C = B $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 4-Apr-1995.) $)
    sseqtr4i $p |- A C_ C $=
      ( eqcomi sseqtri ) ABCDCBEFG $.
  $}

  ${
    eqsstrd.1 $e |- ( ph -> A = B ) $.
    eqsstrd.2 $e |- ( ph -> B C_ C ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    eqsstrd $p |- ( ph -> A C_ C ) $=
      ( wss sseq1d mpbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqsstr3d.1 $e |- ( ph -> B = A ) $.
    eqsstr3d.2 $e |- ( ph -> B C_ C ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    eqsstr3d $p |- ( ph -> A C_ C ) $=
      ( eqcomd eqsstrd ) ABCDACBEGFH $.
  $}

  ${
    sseqtrd.1 $e |- ( ph -> A C_ B ) $.
    sseqtrd.2 $e |- ( ph -> B = C ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    sseqtrd $p |- ( ph -> A C_ C ) $=
      ( wss sseq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    sseqtr4d.1 $e |- ( ph -> A C_ B ) $.
    sseqtr4d.2 $e |- ( ph -> C = B ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    sseqtr4d $p |- ( ph -> A C_ C ) $=
      ( eqcomd sseqtrd ) ABCDEADCFGH $.
  $}

  ${
    3sstr3.1 $e |- A C_ B $.
    3sstr3.2 $e |- A = C $.
    3sstr3.3 $e |- B = D $.
    $( Substitution of equality in both sides of a subclass relationship.
       (Contributed by NM, 13-Jan-1996.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr3i $p |- C C_ D $=
      ( wss sseq12i mpbi ) ABHCDHEACBDFGIJ $.
  $}

  ${
    3sstr4.1 $e |- A C_ B $.
    3sstr4.2 $e |- C = A $.
    3sstr4.3 $e |- D = B $.
    $( Substitution of equality in both sides of a subclass relationship.
       (Contributed by NM, 13-Jan-1996.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr4i $p |- C C_ D $=
      ( wss sseq12i mpbir ) CDHABHECADBFGIJ $.
  $}

  ${
    3sstr3g.1 $e |- ( ph -> A C_ B ) $.
    3sstr3g.2 $e |- A = C $.
    3sstr3g.3 $e |- B = D $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 1-Oct-2000.) $)
    3sstr3g $p |- ( ph -> C C_ D ) $=
      ( wss sseq12i sylib ) ABCIDEIFBDCEGHJK $.
  $}

  ${
    3sstr4g.1 $e |- ( ph -> A C_ B ) $.
    3sstr4g.2 $e |- C = A $.
    3sstr4g.3 $e |- D = B $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 16-Aug-1994.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr4g $p |- ( ph -> C C_ D ) $=
      ( wss sseq12i sylibr ) ABCIDEIFDBECGHJK $.
  $}

  ${
    3sstr3d.1 $e |- ( ph -> A C_ B ) $.
    3sstr3d.2 $e |- ( ph -> A = C ) $.
    3sstr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 1-Oct-2000.) $)
    3sstr3d $p |- ( ph -> C C_ D ) $=
      ( wss sseq12d mpbid ) ABCIDEIFABDCEGHJK $.
  $}

  ${
    3sstr4d.1 $e |- ( ph -> A C_ B ) $.
    3sstr4d.2 $e |- ( ph -> C = A ) $.
    3sstr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 30-Nov-1995.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr4d $p |- ( ph -> C C_ D ) $=
      ( wss sseq12d mpbird ) ADEIBCIFADBECGHJK $.
  $}

  ${
    syl5eqss.1 $e |- A = B $.
    syl5eqss.2 $e |- ( ph -> B C_ C ) $.
    $( B chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl5eqss $p |- ( ph -> A C_ C ) $=
      ( wss sseq1i sylibr ) ACDGBDGFBCDEHI $.
  $}

  ${
    syl5eqssr.1 $e |- B = A $.
    syl5eqssr.2 $e |- ( ph -> B C_ C ) $.
    $( B chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl5eqssr $p |- ( ph -> A C_ C ) $=
      ( eqcomi syl5eqss ) ABCDCBEGFH $.
  $}

  ${
    syl6sseq.1 $e |- ( ph -> A C_ B ) $.
    syl6sseq.2 $e |- B = C $.
    $( A chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl6sseq $p |- ( ph -> A C_ C ) $=
      ( wss sseq2i sylib ) ABCGBDGECDBFHI $.
  $}

  ${
    syl6ssr.1 $e |- ( ph -> A C_ B ) $.
    syl6ssr.2 $e |- C = B $.
    $( A chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl6sseqr $p |- ( ph -> A C_ C ) $=
      ( eqcomi syl6sseq ) ABCDEDCFGH $.
  $}

  ${
    syl5sseq.1 $e |- B C_ A $.
    syl5sseq.2 $e |- ( ph -> A = C ) $.
    $( Subclass transitivity deduction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    syl5sseq $p |- ( ph -> B C_ C ) $=
      ( wceq wss sseq2 biimpa sylancl ) ABDGZCBHZCDHZFELMNBDCIJK $.
  $}

  ${
    syl5sseqr.1 $e |- B C_ A $.
    syl5sseqr.2 $e |- ( ph -> C = A ) $.
    $( Subclass transitivity deduction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    syl5sseqr $p |- ( ph -> B C_ C ) $=
      ( wss a1i sseqtr4d ) ACBDCBGAEHFI $.
  $}

  ${
    syl6eqss.1 $e |- ( ph -> A = B ) $.
    syl6eqss.2 $e |- B C_ C $.
    $( A chained subclass and equality deduction.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    syl6eqss $p |- ( ph -> A C_ C ) $=
      ( wss a1i eqsstrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6eqssr.1 $e |- ( ph -> B = A ) $.
    syl6eqssr.2 $e |- B C_ C $.
    $( A chained subclass and equality deduction.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    syl6eqssr $p |- ( ph -> A C_ C ) $=
      ( eqcomd syl6eqss ) ABCDACBEGFH $.
  $}

  $( Equality implies the subclass relation.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Andrew Salmon, 21-Jun-2011.) $)
  eqimss $p |- ( A = B -> A C_ B ) $=
    ( wceq wss eqss simplbi ) ABCABDBADABEF $.

  $( Equality implies the subclass relation.  (Contributed by NM,
     23-Nov-2003.) $)
  eqimss2 $p |- ( B = A -> A C_ B ) $=
    ( wss eqimss eqcoms ) ABCABABDE $.

  ${
    eqimssi.1 $e |- A = B $.
    $( Infer subclass relationship from equality.  (Contributed by NM,
       6-Jan-2007.) $)
    eqimssi $p |- A C_ B $=
      ( ssid sseqtri ) AABADCE $.

    $( Infer subclass relationship from equality.  (Contributed by NM,
       7-Jan-2007.) $)
    eqimss2i $p |- B C_ A $=
      ( ssid sseqtr4i ) BBABDCE $.
  $}

  $( Two classes are different if they don't include the same class.
     (Contributed by NM, 23-Apr-2015.) $)
  nssne1 $p |- ( ( A C_ B /\ -. A C_ C ) -> B =/= C ) $=
    ( wss wn wne wceq sseq2 biimpcd necon3bd imp ) ABDZACDZEBCFLMBCBCGLMBCAHIJK
    $.

  $( Two classes are different if they are not subclasses of the same class.
     (Contributed by NM, 23-Apr-2015.) $)
  nssne2 $p |- ( ( A C_ C /\ -. B C_ C ) -> A =/= B ) $=
    ( wss wn wne wceq sseq1 biimpcd necon3bd imp ) ACDZBCDZEABFLMABABGLMABCHIJK
    $.

  ${
    $d x A $.  $d x B $.
    $( Negation of subclass relationship.  One direction of Exercise 13 of
       [TakeutiZaring] p. 18.  (Contributed by Jim Kingdon, 15-Jul-2018.) $)
    nssr $p |- ( E. x ( x e. A /\ -. x e. B ) -> -. A C_ B ) $=
      ( cv wcel wn wa wex wi wal wss exanaliim dfss2 sylnibr ) ADZBEZOCEZFGAHPQ
      IAJBCKPQALABCMN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Quantification restricted to a subclass.  (Contributed by NM,
       11-Mar-2006.) $)
    ssralv $p |- ( A C_ B -> ( A. x e. B ph -> A. x e. A ph ) ) $=
      ( wss cv wcel ssel imim1d ralimdv2 ) CDEZAABDCKBFZCGLDGACDLHIJ $.

    $( Existential quantification restricted to a subclass.  (Contributed by
       NM, 11-Jan-2007.) $)
    ssrexv $p |- ( A C_ B -> ( E. x e. A ph -> E. x e. B ph ) ) $=
      ( wss cv wcel ssel anim1d reximdv2 ) CDEZAABCDKBFZCGLDGACDLHIJ $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Restricted universal quantification on a subset in terms of superset.
       (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    ralss $p |- ( A C_ B -> ( A. x e. A ph <->
          A. x e. B ( x e. A -> ph ) ) ) $=
      ( wss cv wcel wi wa ssel pm4.71rd imbi1d impexp syl6bb ralbidv2 ) CDEZABF
      ZCGZAHZBCDPSQDGZRIZAHTSHPRUAAPRTCDQJKLTRAMNO $.

    $( Restricted existential quantification on a subset in terms of superset.
       (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    rexss $p |- ( A C_ B -> ( E. x e. A ph <->
          E. x e. B ( x e. A /\ ph ) ) ) $=
      ( wss cv wcel wa ssel pm4.71rd anbi1d anass syl6bb rexbidv2 ) CDEZABFZCGZ
      AHZBCDORPDGZQHZAHSRHOQTAOQSCDPIJKSQALMN $.
  $}

  ${
    $d ph y $.  $d ps y $.  $d x y $.
    $( Class abstractions in a subclass relationship.  (Contributed by NM,
       3-Jul-1994.) $)
    ss2ab $p |- ( { x | ph } C_ { x | ps } <-> A. x ( ph -> ps ) ) $=
      ( cab wss cv wcel wi wal nfab1 dfss2f abid imbi12i albii bitri ) ACDZBCDZ
      ECFZPGZRQGZHZCIABHZCICPQACJBCJKUAUBCSATBACLBCLMNO $.
  $}

  ${
    $d x A $.
    $( Class abstraction in a subclass relationship.  (Contributed by NM,
       16-Aug-2006.) $)
    abss $p |- ( { x | ph } C_ A <-> A. x ( ph -> x e. A ) ) $=
      ( cab wss cv wcel wi wal abid2 sseq2i ss2ab bitr3i ) ABDZCENBFCGZBDZEAOHB
      IPCNBCJKAOBLM $.

    $( Subclass of a class abstraction.  (Contributed by NM, 16-Aug-2006.) $)
    ssab $p |- ( A C_ { x | ph } <-> A. x ( x e. A -> ph ) ) $=
      ( cab wss cv wcel wi wal abid2 sseq1i ss2ab bitr3i ) CABDZEBFCGZBDZNEOAHB
      IPCNBCJKOABLM $.

    $( The relation for a subclass of a class abstraction is equivalent to
       restricted quantification.  (Contributed by NM, 6-Sep-2006.) $)
    ssabral $p |- ( A C_ { x | ph } <-> A. x e. A ph ) $=
      ( cab wss cv wcel wi wal wral ssab df-ral bitr4i ) CABDEBFCGAHBIABCJABCKA
      BCLM $.
  $}

  ${
    ss2abi.1 $e |- ( ph -> ps ) $.
    $( Inference of abstraction subclass from implication.  (Contributed by NM,
       31-Mar-1995.) $)
    ss2abi $p |- { x | ph } C_ { x | ps } $=
      ( cab wss wi ss2ab mpgbir ) ACEBCEFABGCABCHDI $.
  $}

  ${
    $d x ph $.
    ss2abdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction of abstraction subclass from implication.  (Contributed by NM,
       29-Jul-2011.) $)
    ss2abdv $p |- ( ph -> { x | ps } C_ { x | ch } ) $=
      ( wi wal cab wss alrimiv ss2ab sylibr ) ABCFZDGBDHCDHIAMDEJBCDKL $.
  $}

  ${
    $d x ph $.  $d x A $.
    abssdv.1 $e |- ( ph -> ( ps -> x e. A ) ) $.
    $( Deduction of abstraction subclass from implication.  (Contributed by NM,
       20-Jan-2006.) $)
    abssdv $p |- ( ph -> { x | ps } C_ A ) $=
      ( cv wcel wi wal cab wss alrimiv abss sylibr ) ABCFDGHZCIBCJDKAOCELBCDMN
      $.
  $}

  ${
    $d x A $.
    abssi.1 $e |- ( ph -> x e. A ) $.
    $( Inference of abstraction subclass from implication.  (Contributed by NM,
       20-Jan-2006.) $)
    abssi $p |- { x | ph } C_ A $=
      ( cab cv wcel ss2abi abid2 sseqtri ) ABEBFCGZBECAKBDHBCIJ $.
  $}

  $( Restricted abstraction classes in a subclass relationship.  (Contributed
     by NM, 30-May-1999.) $)
  ss2rab $p |- ( { x e. A | ph } C_ { x e. A | ps } <->
               A. x e. A ( ph -> ps ) ) $=
    ( crab wss cv wcel wa cab wi wal df-rab sseq12i ss2ab df-ral imdistan albii
    wral bitr2i 3bitri ) ACDEZBCDEZFCGDHZAIZCJZUDBIZCJZFUEUGKZCLZABKZCDSZUBUFUC
    UHACDMBCDMNUEUGCOULUDUKKZCLUJUKCDPUMUICUDABQRTUA $.

  ${
    $d x B $.
    $( Restricted class abstraction in a subclass relationship.  (Contributed
       by NM, 16-Aug-2006.) $)
    rabss $p |- ( { x e. A | ph } C_ B <-> A. x e. A ( ph -> x e. B ) ) $=
      ( crab wss cv wcel wa cab wal wral df-rab sseq1i abss impexp albii df-ral
      wi bitr4i 3bitri ) ABCEZDFBGZCHZAIZBJZDFUEUCDHZSZBKZAUGSZBCLZUBUFDABCMNUE
      BDOUIUDUJSZBKUKUHULBUDAUGPQUJBCRTUA $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass of a restricted class abstraction.  (Contributed by NM,
       16-Aug-2006.) $)
    ssrab $p |- ( B C_ { x e. A | ph } <-> ( B C_ A /\ A. x e. B ph ) ) $=
      ( crab wss cv wcel wa cab wal wral df-rab sseq2i ssab dfss3 anbi1i r19.26
      wi df-ral 3bitr2ri 3bitri ) DABCEZFDBGZCHZAIZBJZFUDDHUFSBKZDCFZABDLZIZUCU
      GDABCMNUFBDOUKUEBDLZUJIUFBDLUHUIULUJBDCPQUEABDRUFBDTUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    ssrabdv.1 $e |- ( ph -> B C_ A ) $.
    ssrabdv.2 $e |- ( ( ph /\ x e. B ) -> ps ) $.
    $( Subclass of a restricted class abstraction (deduction rule).
       (Contributed by NM, 31-Aug-2006.) $)
    ssrabdv $p |- ( ph -> B C_ { x e. A | ps } ) $=
      ( wss wral crab ralrimiva ssrab sylanbrc ) AEDHBCEIEBCDJHFABCEGKBCDELM $.
  $}

  ${
    $d x B $.  $d x ph $.
    rabssdv.1 $e |- ( ( ph /\ x e. A /\ ps ) -> x e. B ) $.
    $( Subclass of a restricted class abstraction (deduction rule).
       (Contributed by NM, 2-Feb-2015.) $)
    rabssdv $p |- ( ph -> { x e. A | ps } C_ B ) $=
      ( cv wcel wi wral crab wss 3exp ralrimiv rabss sylibr ) ABCGZEHZIZCDJBCDK
      ELASCDAQDHBRFMNBCDEOP $.
  $}

  ${
    $d x ph $.
    ss2rabdv.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction of restricted abstraction subclass from implication.
       (Contributed by NM, 30-May-2006.) $)
    ss2rabdv $p |- ( ph -> { x e. A | ps } C_ { x e. A | ch } ) $=
      ( wi wral crab wss ralrimiva ss2rab sylibr ) ABCGZDEHBDEICDEIJANDEFKBCDEL
      M $.
  $}

  ${
    ss2rabi.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference of restricted abstraction subclass from implication.
       (Contributed by NM, 14-Oct-1999.) $)
    ss2rabi $p |- { x e. A | ph } C_ { x e. A | ps } $=
      ( crab wss wi ss2rab mprgbir ) ACDFBCDFGABHCDABCDIEJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass law for restricted abstraction.  (Contributed by NM,
       18-Dec-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    rabss2 $p |- ( A C_ B -> { x e. A | ph } C_ { x e. B | ph } ) $=
      ( wss cv wcel wa cab crab wi wal pm3.45 alimi dfss2 ss2ab 3imtr4i 3sstr4g
      df-rab ) CDEZBFZCGZAHZBIZUADGZAHZBIZABCJABDJUBUEKZBLUCUFKZBLTUDUGEUHUIBUB
      UEAMNBCDOUCUFBPQABCSABDSR $.

    $( Subclass relation for the restriction of a class abstraction.
       (Contributed by NM, 31-Mar-1995.) $)
    ssab2 $p |- { x | ( x e. A /\ ph ) } C_ A $=
      ( cv wcel wa simpl abssi ) BDCEZAFBCIAGH $.

    $( Subclass relation for a restricted class.  (Contributed by NM,
       19-Mar-1997.) $)
    ssrab2 $p |- { x e. A | ph } C_ A $=
      ( crab cv wcel wa cab df-rab ssab2 eqsstri ) ABCDBECFAGBHCABCIABCJK $.
  $}

  ${
    $d V x $.
    $( If the restricting class of a restricted class abstraction is a subset
       of this restricted class abstraction, it is equal to this restricted
       class abstraction.  (Contributed by Alexander van der Vekens,
       31-Dec-2017.) $)
    ssrabeq $p |- ( V C_ { x e. V | ph } <-> V = { x e. V | ph } ) $=
      ( crab wss wa wceq ssrab2 biantru eqss bitr4i ) CABCDZEZMLCEZFCLGNMABCHIC
      LJK $.
  $}

  $( A restricted class is a subclass of the corresponding unrestricted class.
     (Contributed by Mario Carneiro, 23-Dec-2016.) $)
  rabssab $p |- { x e. A | ph } C_ { x | ph } $=
    ( crab cv wcel wa cab df-rab simpr ss2abi eqsstri ) ABCDBECFZAGZBHABHABCINA
    BMAJKL $.

  ${
    $d x y $.  $d y z A $.  $d y z B $.  $d x z C $.
    $( A subset relationship useful for converting union to indexed union using
       dfiun2 or dfiun2g and intersection to indexed intersection using
       dfiin2 .  (Contributed by NM, 5-Oct-2006.)  (Proof shortened by Mario
       Carneiro, 26-Sep-2015.) $)
    uniiunlem $p |- ( A. x e. A B e. D ->
                     ( A. x e. A B e. C <-> { y | E. x e. A y = B } C_ C ) ) $=
      ( vz cv wceq wrex cab wss wcel wi wal wral eqeq1 rexbidv cbvabv wb sseq1i
      r19.23v albii ralcom4 abss 3bitr4i bitr4i nfv eleq1 ceqsalg ralbi syl5rbb
      ralimi syl ) BHZDIZACJZBKZELZGHZDIZUTEMZNZGOZACPZDFMZACPZDEMZACPZUSVAACJZ
      GKZELZVEURVKEUQVJBGUOUTIUPVAACUOUTDQRSUAVCACPZGOVJVBNZGOVEVLVMVNGVAVBACUB
      UCVCAGCUDVJGEUEUFUGVGVDVHTZACPVEVITVFVOACVBVHGDFVHGUHUTDEUIUJUMVDVHACUKUN
      UL $.
  $}

  $( Alternate definition of proper subclass.  (Contributed by NM,
     7-Feb-1996.) $)
  dfpss2 $p |- ( A C. B <-> ( A C_ B /\ -. A = B ) ) $=
    ( wpss wss wne wa wceq wn df-pss df-ne anbi2i bitri ) ABCABDZABEZFMABGHZFAB
    INOMABJKL $.

  $( Alternate definition of proper subclass.  (Contributed by NM,
     7-Feb-1996.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  dfpss3 $p |- ( A C. B <-> ( A C_ B /\ -. B C_ A ) ) $=
    ( wpss wss wceq wn wa dfpss2 eqss baib notbid pm5.32i bitri ) ABCABDZABEZFZ
    GNBADZFZGABHNPRNOQONQABIJKLM $.

  $( Equality theorem for proper subclass.  (Contributed by NM, 7-Feb-1996.) $)
  psseq1 $p |- ( A = B -> ( A C. C <-> B C. C ) ) $=
    ( wceq wss wne wa wpss sseq1 neeq1 anbi12d df-pss 3bitr4g ) ABDZACEZACFZGBC
    EZBCFZGACHBCHNOQPRABCIABCJKACLBCLM $.

  $( Equality theorem for proper subclass.  (Contributed by NM, 7-Feb-1996.) $)
  psseq2 $p |- ( A = B -> ( C C. A <-> C C. B ) ) $=
    ( wceq wss wne wa wpss sseq2 neeq2 anbi12d df-pss 3bitr4g ) ABDZCAEZCAFZGCB
    EZCBFZGCAHCBHNOQPRABCIABCJKCALCBLM $.

  ${
    psseq1i.1 $e |- A = B $.
    $( An equality inference for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq1i $p |- ( A C. C <-> B C. C ) $=
      ( wceq wpss wb psseq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( An equality inference for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq2i $p |- ( C C. A <-> C C. B ) $=
      ( wceq wpss wb psseq2 ax-mp ) ABECAFCBFGDABCHI $.

    ${
      psseq12i.2 $e |- C = D $.
      $( An equality inference for the proper subclass relationship.
         (Contributed by NM, 9-Jun-2004.) $)
      psseq12i $p |- ( A C. C <-> B C. D ) $=
        ( wpss psseq1i psseq2i bitri ) ACGBCGBDGABCEHCDBFIJ $.
    $}
  $}

  ${
    psseq1d.1 $e |- ( ph -> A = B ) $.
    $( An equality deduction for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq1d $p |- ( ph -> ( A C. C <-> B C. C ) ) $=
      ( wceq wpss wb psseq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( An equality deduction for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq2d $p |- ( ph -> ( C C. A <-> C C. B ) ) $=
      ( wceq wpss wb psseq2 syl ) ABCFDBGDCGHEBCDIJ $.

    ${
      psseq12d.2 $e |- ( ph -> C = D ) $.
      $( An equality deduction for the proper subclass relationship.
         (Contributed by NM, 9-Jun-2004.) $)
      psseq12d $p |- ( ph -> ( A C. C <-> B C. D ) ) $=
        ( wpss psseq1d psseq2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
    $}
  $}

  $( A proper subclass is a subclass.  Theorem 10 of [Suppes] p. 23.
     (Contributed by NM, 7-Feb-1996.) $)
  pssss $p |- ( A C. B -> A C_ B ) $=
    ( wpss wss wne df-pss simplbi ) ABCABDABEABFG $.

  $( Two classes in a proper subclass relationship are not equal.  (Contributed
     by NM, 16-Feb-2015.) $)
  pssne $p |- ( A C. B -> A =/= B ) $=
    ( wpss wss wne df-pss simprbi ) ABCABDABEABFG $.

  ${
    pssssd.1 $e |- ( ph -> A C. B ) $.
    $( Deduce subclass from proper subclass.  (Contributed by NM,
       29-Feb-1996.) $)
    pssssd $p |- ( ph -> A C_ B ) $=
      ( wpss wss pssss syl ) ABCEBCFDBCGH $.

    $( Proper subclasses are unequal.  Deduction form of ~ pssne .
       (Contributed by David Moews, 1-May-2017.) $)
    pssned $p |- ( ph -> A =/= B ) $=
      ( wpss wne pssne syl ) ABCEBCFDBCGH $.
  $}

  $( Subclass in terms of proper subclass.  (Contributed by Jim Kingdon,
     16-Jul-2018.) $)
  sspssr $p |- ( ( A C. B \/ A = B ) -> A C_ B ) $=
    ( wpss wss wceq pssss eqimss jaoi ) ABCABDABEABFABGH $.

  $( Proper subclass is irreflexive.  Theorem 7 of [Suppes] p. 23.
     (Contributed by NM, 7-Feb-1996.) $)
  pssirr $p |- -. A C. A $=
    ( wpss wss wn wa pm3.24 dfpss3 mtbir ) AABAACZIDEIFAAGH $.

  $( Proper subclass has no 2-cycle loops.  Compare Theorem 8 of [Suppes]
     p. 23.  (Contributed by NM, 7-Feb-1996.)  (Proof shortened by Andrew
     Salmon, 26-Jun-2011.) $)
  pssn2lp $p |- -. ( A C. B /\ B C. A ) $=
    ( wpss wn wi wa wss dfpss3 simprbi pssss nsyl imnan mpbi ) ABCZBACZDENOFDNB
    AGZONABGPDABHIBAJKNOLM $.

  $( Two ways of stating trichotomy with respect to inclusion.  (Contributed by
     Jim Kingdon, 16-Jul-2018.) $)
  sspsstrir $p |- ( ( A C. B \/ A = B \/ B C. A ) -> ( A C_ B \/ B C_ A ) ) $=
    ( wpss wss wo wceq pssss orcd eqimss olcd 3jaoi ) ABCZABDZBADZEABFZBACZLMNA
    BGHOMNABIHPNMBAGJK $.

  $( Partial trichotomy law for subclasses.  (Contributed by NM, 16-May-1996.)
     (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  ssnpss $p |- ( A C_ B -> -. B C. A ) $=
    ( wpss wss wn dfpss3 simprbi con2i ) BACZABDZIBADJEBAFGH $.

  $( Like ~ pssn2lp but for subset and proper subset.  (Contributed by Jim
     Kingdon, 17-Jul-2018.) $)
  sspssn $p |- -. ( A C_ B /\ B C. A ) $=
    ( wss wpss wa wn pm3.24 ssnpss anim2i ancoms mto ) ABCZBADZEMMFZEZMGMLOLNMA
    BHIJK $.

  $( Transitive law for proper subclass.  Theorem 9 of [Suppes] p. 23.
     (Contributed by NM, 7-Feb-1996.) $)
  psstr $p |- ( ( A C. B /\ B C. C ) -> A C. C ) $=
    ( wpss wa wss wceq pssss sylan9ss pssn2lp psseq1 anbi1d mtbiri con2i dfpss2
    wn sylanbrc ) ABDZBCDZEZACFACGZPACDRSABCABHBCHIUATUATCBDZSECBJUARUBSACBKLMN
    ACOQ $.

  $( Transitive law for subclass and proper subclass.  (Contributed by NM,
     3-Apr-1996.) $)
  sspsstr $p |- ( ( A C_ B /\ B C. C ) -> A C. C ) $=
    ( wpss wa wceq wn id pssss sylan9ss sspssn sseq1 anbi1d mtbiri con2i dfpss2
    wss sylanbrc ) ABQZBCDZEZACQACFZGACDSTABCSHBCIJUBUAUBUACBQZTECBKUBSUCTACBLM
    NOACPR $.

  $( Transitive law for subclass and proper subclass.  (Contributed by NM,
     3-Apr-1996.) $)
  psssstr $p |- ( ( A C. B /\ B C_ C ) -> A C. C ) $=
    ( wpss wss wa wn pssss id sylan9ss sspssn psseq1 anbi2d mtbiri con2i ancoms
    wceq dfpss2 sylanbrc ) ABDZBCEZFACEACQZGZACDTUAABCABHUAIJUATUCUBUATFZUBUDUA
    CBDZFBCKUBTUEUAACBLMNOPACRS $.

  ${
    psstrd.1 $e |- ( ph -> A C. B ) $.
    psstrd.2 $e |- ( ph -> B C. C ) $.
    $( Proper subclass inclusion is transitive.  Deduction form of ~ psstr .
       (Contributed by David Moews, 1-May-2017.) $)
    psstrd $p |- ( ph -> A C. C ) $=
      ( wpss psstr syl2anc ) ABCGCDGBDGEFBCDHI $.
  $}

  ${
    sspsstrd.1 $e |- ( ph -> A C_ B ) $.
    sspsstrd.2 $e |- ( ph -> B C. C ) $.
    $( Transitivity involving subclass and proper subclass inclusion.
       Deduction form of ~ sspsstr .  (Contributed by David Moews,
       1-May-2017.) $)
    sspsstrd $p |- ( ph -> A C. C ) $=
      ( wss wpss sspsstr syl2anc ) ABCGCDHBDHEFBCDIJ $.
  $}

  ${
    psssstrd.1 $e |- ( ph -> A C. B ) $.
    psssstrd.2 $e |- ( ph -> B C_ C ) $.
    $( Transitivity involving subclass and proper subclass inclusion.
       Deduction form of ~ psssstr .  (Contributed by David Moews,
       1-May-2017.) $)
    psssstrd $p |- ( ph -> A C. C ) $=
      ( wpss wss psssstr syl2anc ) ABCGCDHBDGEFBCDIJ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        The difference, union, and intersection of two classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
      The difference of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality theorem for class difference.  (Contributed by NM,
       10-Feb-1997.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difeq1 $p |- ( A = B -> ( A \ C ) = ( B \ C ) ) $=
      ( vx wceq cv wcel wn crab cdif rabeq dfdif2 3eqtr4g ) ABEDFCGHZDAINDBIACJ
      BCJNDABKDACLDBCLM $.

    $( Equality theorem for class difference.  (Contributed by NM,
       10-Feb-1997.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difeq2 $p |- ( A = B -> ( C \ A ) = ( C \ B ) ) $=
      ( vx wceq cv wcel wn crab cdif eleq2 notbid rabbidv dfdif2 3eqtr4g ) ABEZ
      DFZAGZHZDCIQBGZHZDCICAJCBJPSUADCPRTABQKLMDCANDCBNO $.
  $}

  $( Equality theorem for class difference.  (Contributed by FL,
     31-Aug-2009.) $)
  difeq12 $p |- ( ( A = B /\ C = D ) -> ( A \ C ) = ( B \ D ) ) $=
    ( wceq cdif difeq1 difeq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    difeq1i.1 $e |- A = B $.
    $( Inference adding difference to the right in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq1i $p |- ( A \ C ) = ( B \ C ) $=
      ( wceq cdif difeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Inference adding difference to the left in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq2i $p |- ( C \ A ) = ( C \ B ) $=
      ( wceq cdif difeq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      difeq12i.2 $e |- C = D $.
      $( Equality inference for class difference.  (Contributed by NM,
         29-Aug-2004.) $)
      difeq12i $p |- ( A \ C ) = ( B \ D ) $=
        ( cdif difeq1i difeq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
    $}
  $}

  ${
    difeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction adding difference to the right in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq1d $p |- ( ph -> ( A \ C ) = ( B \ C ) ) $=
      ( wceq cdif difeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Deduction adding difference to the left in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq2d $p |- ( ph -> ( C \ A ) = ( C \ B ) ) $=
      ( wceq cdif difeq2 syl ) ABCFDBGDCGFEBCDHI $.
  $}

  ${
    difeq12d.1 $e |- ( ph -> A = B ) $.
    difeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for class difference.  (Contributed by FL,
       29-May-2014.) $)
    difeq12d $p |- ( ph -> ( A \ C ) = ( B \ D ) ) $=
      ( cdif difeq1d difeq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    difeqri.1 $e |- ( ( x e. A /\ -. x e. B ) <-> x e. C ) $.
    $( Inference from membership to difference.  (Contributed by NM,
       17-May-1998.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difeqri $p |- ( A \ B ) = C $=
      ( cdif cv wcel wn wa eldif bitri eqriv ) ABCFZDAGZNHOBHOCHIJODHOBCKELM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfdif.1 $e |- F/_ x A $.
    nfdif.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for class difference.  (Contributed by
       NM, 3-Dec-2003.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    nfdif $p |- F/_ x ( A \ B ) $=
      ( vy cdif cv wcel wn crab dfdif2 nfcri nfn nfrabxy nfcxfr ) ABCGFHCIZJZFB
      KFBCLRAFBQAAFCEMNDOP $.
  $}

  $( Implication of membership in a class difference.  (Contributed by NM,
     29-Apr-1994.) $)
  eldifi $p |- ( A e. ( B \ C ) -> A e. B ) $=
    ( cdif wcel wn eldif simplbi ) ABCDEABEACEFABCGH $.

  $( Implication of membership in a class difference.  (Contributed by NM,
     3-May-1994.) $)
  eldifn $p |- ( A e. ( B \ C ) -> -. A e. C ) $=
    ( cdif wcel wn eldif simprbi ) ABCDEABEACEFABCGH $.

  $( A set does not belong to a class excluding it.  (Contributed by NM,
     27-Jun-1994.) $)
  elndif $p |- ( A e. B -> -. A e. ( C \ B ) ) $=
    ( cdif wcel eldifn con2i ) ACBDEABEACBFG $.

  ${
    $d x A $.  $d x B $.
    $( Double class difference.  Exercise 11 of [TakeutiZaring] p. 22.
       (Contributed by NM, 17-May-1998.) $)
    difdif $p |- ( A \ ( B \ A ) ) = A $=
      ( vx cdif cv wcel wn wa simpl pm4.45im imanim eldif sylnibr anim2i impbii
      wi sylbi difeqri ) CABADZACEZAFZTSFZGZHZUAUAUCIUAUATBFZUAPZHUDUAUEJUFUCUA
      UFUEUAGHUBUEUAKTBALMNQOR $.

    $( Subclass relationship for class difference.  Exercise 14 of
       [TakeutiZaring] p. 22.  (Contributed by NM, 29-Apr-1994.) $)
    difss $p |- ( A \ B ) C_ A $=
      ( vx cdif cv eldifi ssriv ) CABDACEABFG $.
  $}

  $( A difference of two classes is contained in the minuend.  Deduction form
     of ~ difss .  (Contributed by David Moews, 1-May-2017.) $)
  difssd $p |- ( ph -> ( A \ B ) C_ A ) $=
    ( cdif wss difss a1i ) BCDBEABCFG $.

  $( If a class is contained in a difference, it is contained in the minuend.
     (Contributed by David Moews, 1-May-2017.) $)
  difss2 $p |- ( A C_ ( B \ C ) -> A C_ B ) $=
    ( cdif wss id difss syl6ss ) ABCDZEZAIBJFBCGH $.

  ${
    difss2d.1 $e |- ( ph -> A C_ ( B \ C ) ) $.
    $( If a class is contained in a difference, it is contained in the
       minuend.  Deduction form of ~ difss2 .  (Contributed by David Moews,
       1-May-2017.) $)
    difss2d $p |- ( ph -> A C_ B ) $=
      ( cdif wss difss2 syl ) ABCDFGBCGEBCDHI $.
  $}

  $( Preservation of a subclass relationship by class difference.  (Contributed
     by NM, 15-Feb-2007.) $)
  ssdifss $p |- ( A C_ B -> ( A \ C ) C_ B ) $=
    ( cdif wss difss sstr mpan ) ACDZAEABEIBEACFIABGH $.

  ${
    $d x A $.
    ddifnel.1 $e |- ( -. x e. ( _V \ A ) -> x e. A ) $.
    $( Double complement under universal class.  The hypothesis is one way of
       expressing the idea that membership in ` A ` is decidable.  Exercise
       4.10(s) of [Mendelson] p. 231, but with an additional hypothesis.  For a
       version without a hypothesis, but which only states that ` A ` is a
       subset of ` _V \ ( _V \ A ) ` , see ~ ddifss .  (Contributed by Jim
       Kingdon, 21-Jul-2018.) $)
    ddifnel $p |- ( _V \ ( _V \ A ) ) = A $=
      ( cvv cdif cv wcel wn wa adantl elndif vex jctil impbii difeqri ) ADDBEZB
      AFZDGZQPGHZIQBGZSTRCJTSRQBDKALMNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Contraposition law for subsets.  (Contributed by NM, 22-Mar-1998.) $)
    ssconb $p |- ( ( A C_ C /\ B C_ C ) ->
                  ( A C_ ( C \ B ) <-> B C_ ( C \ A ) ) ) $=
      ( vx wss wa cv wcel cdif wi wal wn wb ssel pm5.1 jcab 3bitr4g eldif dfss2
      imbi2i syl2an con2b a1i anbi12d albidv ) ACEZBCEZFZDGZAHZUICBIZHZJZDKUIBH
      ZUICAIZHZJZDKAUKEBUOEUHUMUQDUHUJUICHZUNLZFZJZUNURUJLZFZJZUMUQUHUJURJZUJUS
      JZFUNURJZUNVBJZFVAVDUHVEVGVFVHUFVEVGVEVGMUGACUINBCUINVEVGOUAVFVHMUHUJUNUB
      UCUDUJURUSPUNURVBPQULUTUJUICBRTUPVCUNUICARTQUEDAUKSDBUOSQ $.

    $( Contraposition law for subsets.  Exercise 15 of [TakeutiZaring] p. 22.
       (Contributed by NM, 22-Mar-1998.) $)
    sscon $p |- ( A C_ B -> ( C \ B ) C_ ( C \ A ) ) $=
      ( vx wss cdif cv wcel wn wa ssel con3d anim2d eldif 3imtr4g ssrdv ) ABEZD
      CBFZCAFZQDGZCHZTBHZIZJUATAHZIZJTRHTSHQUCUEUAQUDUBABTKLMTCBNTCANOP $.

    $( Difference law for subsets.  (Contributed by NM, 28-May-1998.) $)
    ssdif $p |- ( A C_ B -> ( A \ C ) C_ ( B \ C ) ) $=
      ( vx wss cdif cv wcel wn wa ssel anim1d eldif 3imtr4g ssrdv ) ABEZDACFZBC
      FZPDGZAHZSCHIZJSBHZUAJSQHSRHPTUBUAABSKLSACMSBCMNO $.
  $}

  ${
    ssdifd.1 $e |- ( ph -> A C_ B ) $.
    $( If ` A ` is contained in ` B ` , then ` ( A \ C ) ` is contained in
       ` ( B \ C ) ` .  Deduction form of ~ ssdif .  (Contributed by David
       Moews, 1-May-2017.) $)
    ssdifd $p |- ( ph -> ( A \ C ) C_ ( B \ C ) ) $=
      ( wss cdif ssdif syl ) ABCFBDGCDGFEBCDHI $.

    $( If ` A ` is contained in ` B ` , then ` ( C \ B ) ` is contained in
       ` ( C \ A ) ` .  Deduction form of ~ sscon .  (Contributed by David
       Moews, 1-May-2017.) $)
    sscond $p |- ( ph -> ( C \ B ) C_ ( C \ A ) ) $=
      ( wss cdif sscon syl ) ABCFDCGDBGFEBCDHI $.

    $( If ` A ` is contained in ` B ` , then ` ( A \ C ) ` is also contained in
       ` B ` .  Deduction form of ~ ssdifss .  (Contributed by David Moews,
       1-May-2017.) $)
    ssdifssd $p |- ( ph -> ( A \ C ) C_ B ) $=
      ( wss cdif ssdifss syl ) ABCFBDGCFEBCDHI $.

    ssdif2d.2 $e |- ( ph -> C C_ D ) $.
    $( If ` A ` is contained in ` B ` and ` C ` is contained in ` D ` , then
       ` ( A \ D ) ` is contained in ` ( B \ C ) ` .  Deduction form.
       (Contributed by David Moews, 1-May-2017.) $)
    ssdif2d $p |- ( ph -> ( A \ D ) C_ ( B \ C ) ) $=
      ( cdif sscond ssdifd sstrd ) ABEHBDHCDHADEBGIABCDFJK $.
  $}

  $( Restricted universal quantification on a class difference in terms of an
     implication.  (Contributed by Alexander van der Vekens, 3-Jan-2018.) $)
  raldifb $p |- ( A. x e. A ( x e/ B -> ph ) <-> A. x e. ( A \ B ) ph ) $=
    ( cv wnel wi cdif wcel wa impexp bicomi wn df-nel anbi2i eldif bitri imbi1i
    ralbii2 ) BEZDFZAGZABCCDHZTCIZUBGZUDUAJZAGZTUCIZAGUGUEUDUAAKLUFUHAUFUDTDIMZ
    JZUHUAUIUDTDNOUHUJTCDPLQRQS $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
      The union of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Expansion of membership in class union.  Theorem 12 of [Suppes] p. 25.
       (Contributed by NM, 7-Aug-1994.) $)
    elun $p |- ( A e. ( B u. C ) <-> ( A e. B \/ A e. C ) ) $=
      ( vx cun wcel cvv wo elex jaoi wceq eleq1 orbi12d df-un elab2g pm5.21nii
      cv ) ABCEZFAGFZABFZACFZHZARITSUAABIACIJDQZBFZUCCFZHUBDARGUCAKUDTUEUAUCABL
      UCACLMDBCNOP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    uneqri.1 $e |- ( ( x e. A \/ x e. B ) <-> x e. C ) $.
    $( Inference from membership to union.  (Contributed by NM, 5-Aug-1993.) $)
    uneqri $p |- ( A u. B ) = C $=
      ( cun cv wcel wo elun bitri eqriv ) ABCFZDAGZMHNBHNCHINDHNBCJEKL $.
  $}

  ${
    $d x A $.
    $( Idempotent law for union of classes.  Theorem 23 of [Suppes] p. 27.
       (Contributed by NM, 5-Aug-1993.) $)
    unidm $p |- ( A u. A ) = A $=
      ( vx cv wcel oridm uneqri ) BAAABCADEF $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Commutative law for union of classes.  Exercise 6 of [TakeutiZaring]
       p. 17.  (Contributed by NM, 25-Jun-1998.)  (Proof shortened by Andrew
       Salmon, 26-Jun-2011.) $)
    uncom $p |- ( A u. B ) = ( B u. A ) $=
      ( vx cun cv wcel wo orcom elun bitr4i uneqri ) CABBADZCEZAFZMBFZGONGMLFNO
      HMBAIJK $.
  $}

  ${
    $( If a class equals the union of two other classes, then it equals the
       union of those two classes commuted.  (Contributed by Alan Sare,
       18-Feb-2012.) $)
    equncom $p |- ( A = ( B u. C ) <-> A = ( C u. B ) ) $=
      ( cun uncom eqeq2i ) BCDCBDABCEF $.
  $}

  ${
    equncomi.1 $e |- A = ( B u. C ) $.
    $( Inference form of ~ equncom .  (Contributed by Alan Sare,
       18-Feb-2012.) $)
    equncomi $p |- A = ( C u. B ) $=
      ( cun wceq equncom mpbi ) ABCEFACBEFDABCGH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality theorem for union of two classes.  (Contributed by NM,
       5-Aug-1993.) $)
    uneq1 $p |- ( A = B -> ( A u. C ) = ( B u. C ) ) $=
      ( vx wceq cun cv wcel wo eleq2 orbi1d elun 3bitr4g eqrdv ) ABEZDACFZBCFZO
      DGZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.
  $}

  $( Equality theorem for the union of two classes.  (Contributed by NM,
     5-Aug-1993.) $)
  uneq2 $p |- ( A = B -> ( C u. A ) = ( C u. B ) ) $=
    ( wceq cun uneq1 uncom 3eqtr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Equality theorem for union of two classes.  (Contributed by NM,
     29-Mar-1998.) $)
  uneq12 $p |- ( ( A = B /\ C = D ) -> ( A u. C ) = ( B u. D ) ) $=
    ( wceq cun uneq1 uneq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    uneq1i.1 $e |- A = B $.
    $( Inference adding union to the right in a class equality.  (Contributed
       by NM, 30-Aug-1993.) $)
    uneq1i $p |- ( A u. C ) = ( B u. C ) $=
      ( wceq cun uneq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Inference adding union to the left in a class equality.  (Contributed by
       NM, 30-Aug-1993.) $)
    uneq2i $p |- ( C u. A ) = ( C u. B ) $=
      ( wceq cun uneq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      uneq12i.2 $e |- C = D $.
      $( Equality inference for union of two classes.  (Contributed by NM,
         12-Aug-2004.)  (Proof shortened by Eric Schmidt, 26-Jan-2007.) $)
      uneq12i $p |- ( A u. C ) = ( B u. D ) $=
        ( wceq cun uneq12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
    $}
  $}

  ${
    uneq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction adding union to the right in a class equality.  (Contributed
       by NM, 29-Mar-1998.) $)
    uneq1d $p |- ( ph -> ( A u. C ) = ( B u. C ) ) $=
      ( wceq cun uneq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Deduction adding union to the left in a class equality.  (Contributed by
       NM, 29-Mar-1998.) $)
    uneq2d $p |- ( ph -> ( C u. A ) = ( C u. B ) ) $=
      ( wceq cun uneq2 syl ) ABCFDBGDCGFEBCDHI $.

    ${
      uneq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for union of two classes.  (Contributed by NM,
         29-Sep-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
      uneq12d $p |- ( ph -> ( A u. C ) = ( B u. D ) ) $=
        ( wceq cun uneq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
    $}
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfun.1 $e |- F/_ x A $.
    nfun.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for the union of classes.
       (Contributed by NM, 15-Sep-2003.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfun $p |- F/_ x ( A u. B ) $=
      ( vy cun cv wcel wo cab df-un nfcri nfor nfab nfcxfr ) ABCGFHZBIZQCIZJZFK
      FBCLTAFRSAAFBDMAFCEMNOP $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Associative law for union of classes.  Exercise 8 of [TakeutiZaring]
       p. 17.  (Contributed by NM, 3-May-1994.)  (Proof shortened by Andrew
       Salmon, 26-Jun-2011.) $)
    unass $p |- ( ( A u. B ) u. C ) = ( A u. ( B u. C ) ) $=
      ( vx cun cv wcel wo elun orbi2i orbi1i orass bitr2i 3bitrri uneqri ) DABE
      ZCABCEZEZDFZRGSAGZSQGZHTSBGZSCGZHZHZSPGZUCHZSAQIUAUDTSBCIJUGTUBHZUCHUEUFU
      HUCSABIKTUBUCLMNO $.
  $}

  $( A rearrangement of union.  (Contributed by NM, 12-Aug-2004.) $)
  un12 $p |- ( A u. ( B u. C ) ) = ( B u. ( A u. C ) ) $=
    ( cun uncom uneq1i unass 3eqtr3i ) ABDZCDBADZCDABCDDBACDDIJCABEFABCGBACGH
    $.

  $( A rearrangement of union.  (Contributed by NM, 12-Aug-2004.)  (Proof
     shortened by Andrew Salmon, 26-Jun-2011.) $)
  un23 $p |- ( ( A u. B ) u. C ) = ( ( A u. C ) u. B ) $=
    ( cun unass un12 uncom 3eqtri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( A rearrangement of the union of 4 classes.  (Contributed by NM,
     12-Aug-2004.) $)
  un4 $p |- ( ( A u. B ) u. ( C u. D ) ) =
            ( ( A u. C ) u. ( B u. D ) ) $=
    ( cun un12 uneq2i unass 3eqtr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHA
    CLHI $.

  $( Union distributes over itself.  (Contributed by NM, 17-Aug-2004.) $)
  unundi $p |- ( A u. ( B u. C ) ) = ( ( A u. B ) u. ( A u. C ) ) $=
    ( cun unidm uneq1i un4 eqtr3i ) AADZBCDZDAJDABDACDDIAJAEFAABCGH $.

  $( Union distributes over itself.  (Contributed by NM, 17-Aug-2004.) $)
  unundir $p |- ( ( A u. B ) u. C ) = ( ( A u. C ) u. ( B u. C ) ) $=
    ( cun unidm uneq2i un4 eqtr3i ) ABDZCCDZDICDACDBCDDJCICEFABCCGH $.

  ${
    $d x A $.  $d x B $.
    $( Subclass relationship for union of classes.  Theorem 25 of [Suppes]
       p. 27.  (Contributed by NM, 5-Aug-1993.) $)
    ssun1 $p |- A C_ ( A u. B ) $=
      ( vx cun cv wcel wo orc elun sylibr ssriv ) CAABDZCEZAFZNMBFZGMLFNOHMABIJ
      K $.
  $}

  $( Subclass relationship for union of classes.  (Contributed by NM,
     30-Aug-1993.) $)
  ssun2 $p |- A C_ ( B u. A ) $=
    ( cun ssun1 uncom sseqtri ) AABCBACABDABEF $.

  $( Subclass law for union of classes.  (Contributed by NM, 5-Aug-1993.) $)
  ssun3 $p |- ( A C_ B -> A C_ ( B u. C ) ) $=
    ( wss cun ssun1 sstr2 mpi ) ABDBBCEZDAIDBCFABIGH $.

  $( Subclass law for union of classes.  (Contributed by NM, 14-Aug-1994.) $)
  ssun4 $p |- ( A C_ B -> A C_ ( C u. B ) ) $=
    ( wss cun ssun2 sstr2 mpi ) ABDBCBEZDAIDBCFABIGH $.

  $( Membership law for union of classes.  (Contributed by NM, 5-Aug-1993.) $)
  elun1 $p |- ( A e. B -> A e. ( B u. C ) ) $=
    ( cun ssun1 sseli ) BBCDABCEF $.

  $( Membership law for union of classes.  (Contributed by NM, 30-Aug-1993.) $)
  elun2 $p |- ( A e. B -> A e. ( C u. B ) ) $=
    ( cun ssun2 sseli ) BCBDABCEF $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Subclass law for union of classes.  (Contributed by NM, 14-Oct-1999.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    unss1 $p |- ( A C_ B -> ( A u. C ) C_ ( B u. C ) ) $=
      ( vx wss cun cv wcel wo ssel orim1d elun 3imtr4g ssrdv ) ABEZDACFZBCFZODG
      ZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.

    $( A relationship between subclass and union.  Theorem 26 of [Suppes]
       p. 27.  (Contributed by NM, 30-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 26-Jun-2011.) $)
    ssequn1 $p |- ( A C_ B <-> ( A u. B ) = B ) $=
      ( vx cv wcel wi wal cun wb wceq wo bicom pm4.72 elun bibi1i 3bitr4i albii
      wss dfss2 dfcleq ) CDZAEZUABEZFZCGUAABHZEZUCIZCGABRUEBJUDUGCUCUBUCKZIUHUC
      IUDUGUCUHLUBUCMUFUHUCUAABNOPQCABSCUEBTP $.
  $}

  $( Subclass law for union of classes.  Exercise 7 of [TakeutiZaring] p. 18.
     (Contributed by NM, 14-Oct-1999.) $)
  unss2 $p |- ( A C_ B -> ( C u. A ) C_ ( C u. B ) ) $=
    ( wss cun unss1 uncom 3sstr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Subclass law for union of classes.  (Contributed by NM, 2-Jun-2004.) $)
  unss12 $p |- ( ( A C_ B /\ C C_ D ) -> ( A u. C ) C_ ( B u. D ) ) $=
    ( wss cun unss1 unss2 sylan9ss ) ABECDEACFBCFBDFABCGCDBHI $.

  $( A relationship between subclass and union.  (Contributed by NM,
     13-Jun-1994.) $)
  ssequn2 $p |- ( A C_ B <-> ( B u. A ) = B ) $=
    ( wss cun wceq ssequn1 uncom eqeq1i bitri ) ABCABDZBEBADZBEABFJKBABGHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The union of two subclasses is a subclass.  Theorem 27 of [Suppes] p. 27
       and its converse.  (Contributed by NM, 11-Jun-2004.) $)
    unss $p |- ( ( A C_ C /\ B C_ C ) <-> ( A u. B ) C_ C ) $=
      ( vx cun wss cv wcel wi wal wa dfss2 19.26 elun imbi1i jaob bitri anbi12i
      wo albii 3bitr4i bitr2i ) ABEZCFDGZUCHZUDCHZIZDJZACFZBCFZKZDUCCLUDAHZUFIZ
      UDBHZUFIZKZDJUMDJZUODJZKUHUKUMUODMUGUPDUGULUNSZUFIUPUEUSUFUDABNOULUFUNPQT
      UIUQUJURDACLDBCLRUAUB $.
  $}

  ${
    unssi.1 $e |- A C_ C $.
    unssi.2 $e |- B C_ C $.
    $( An inference showing the union of two subclasses is a subclass.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    unssi $p |- ( A u. B ) C_ C $=
      ( wss wa cun pm3.2i unss mpbi ) ACFZBCFZGABHCFLMDEIABCJK $.
  $}

  ${
    unssd.1 $e |- ( ph -> A C_ C ) $.
    unssd.2 $e |- ( ph -> B C_ C ) $.
    $( A deduction showing the union of two subclasses is a subclass.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    unssd $p |- ( ph -> ( A u. B ) C_ C ) $=
      ( wss cun wa unss biimpi syl2anc ) ABDGZCDGZBCHDGZEFMNIOBCDJKL $.
  $}

  ${
    unssad.1 $e |- ( ph -> ( A u. B ) C_ C ) $.
    $( If ` ( A u. B ) ` is contained in ` C ` , so is ` A ` .  One-way
       deduction form of ~ unss .  Partial converse of ~ unssd .  (Contributed
       by David Moews, 1-May-2017.) $)
    unssad $p |- ( ph -> A C_ C ) $=
      ( wss cun wa unss sylibr simpld ) ABDFZCDFZABCGDFLMHEBCDIJK $.

    $( If ` ( A u. B ) ` is contained in ` C ` , so is ` B ` .  One-way
       deduction form of ~ unss .  Partial converse of ~ unssd .  (Contributed
       by David Moews, 1-May-2017.) $)
    unssbd $p |- ( ph -> B C_ C ) $=
      ( wss cun wa unss sylibr simprd ) ABDFZCDFZABCGDFLMHEBCDIJK $.
  $}

  $( A condition that implies inclusion in the union of two classes.
     (Contributed by NM, 23-Nov-2003.) $)
  ssun $p |- ( ( A C_ B \/ A C_ C ) -> A C_ ( B u. C ) ) $=
    ( wss cun ssun3 ssun4 jaoi ) ABDABCEDACDABCFACBGH $.

  $( Restricted existential quantification over union.  (Contributed by Jeff
     Madsen, 5-Jan-2011.) $)
  rexun $p |- ( E. x e. ( A u. B ) ph <->
                          ( E. x e. A ph \/ E. x e. B ph ) ) $=
    ( cun wrex cv wcel wa wo df-rex 19.43 elun anbi1i andir bitri exbii orbi12i
    wex 3bitr4i ) ABCDEZFBGZUAHZAIZBSZABCFZABDFZJZABUAKUBCHZAIZUBDHZAIZJZBSUJBS
    ZULBSZJUEUHUJULBLUDUMBUDUIUKJZAIUMUCUPAUBCDMNUIUKAOPQUFUNUGUOABCKABDKRTP $.

  $( Restricted quantification over a union.  (Contributed by Scott Fenton,
     12-Apr-2011.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
  ralunb $p |- ( A. x e. ( A u. B ) ph <->
                 ( A. x e. A ph /\ A. x e. B ph ) ) $=
    ( cv cun wcel wi wal wa wral wo elun imbi1i jaob bitri albii df-ral anbi12i
    19.26 3bitr4i ) BEZCDFZGZAHZBIZUBCGZAHZBIZUBDGZAHZBIZJZABUCKABCKZABDKZJUFUH
    UKJZBIUMUEUPBUEUGUJLZAHUPUDUQAUBCDMNUGAUJOPQUHUKBTPABUCRUNUIUOULABCRABDRSUA
    $.

  $( Restricted quantification over union.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  ralun $p |- ( ( A. x e. A ph /\ A. x e. B ph ) -> A. x e. ( A u. B ) ph ) $=
    ( cun wral wa ralunb biimpri ) ABCDEFABCFABDFGABCDHI $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
      The intersection of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Expansion of membership in an intersection of two classes.  Theorem 12
       of [Suppes] p. 25.  (Contributed by NM, 29-Apr-1994.) $)
    elin $p |- ( A e. ( B i^i C ) <-> ( A e. B /\ A e. C ) ) $=
      ( vx cin wcel wa elex adantl cv wceq eleq1 anbi12d df-in elab2g pm5.21nii
      cvv ) ABCEZFAQFZABFZACFZGZARHUASTACHIDJZBFZUCCFZGUBDARQUCAKUDTUEUAUCABLUC
      ACLMDBCNOP $.
  $}

  ${
    elin2.x $e |- X = ( B i^i C ) $.
    $( Membership in a class defined as an intersection.  (Contributed by
       Stefan O'Rear, 29-Mar-2015.) $)
    elin2 $p |- ( A e. X <-> ( A e. B /\ A e. C ) ) $=
      ( wcel cin wa eleq2i elin bitri ) ADFABCGZFABFACFHDLAEIABCJK $.
  $}

  ${
    elin3.x $e |- X = ( ( B i^i C ) i^i D ) $.
    $( Membership in a class defined as a ternary intersection.  (Contributed
       by Stefan O'Rear, 29-Mar-2015.) $)
    elin3 $p |- ( A e. X <-> ( A e. B /\ A e. C /\ A e. D ) ) $=
      ( cin wcel wa w3a elin anbi1i elin2 df-3an 3bitr4i ) ABCGZHZADHZIABHZACHZ
      IZRIAEHSTRJQUARABCKLAPDEFMSTRNO $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Commutative law for intersection of classes.  Exercise 7 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 5-Aug-1993.) $)
    incom $p |- ( A i^i B ) = ( B i^i A ) $=
      ( vx cin cv wcel wa ancom elin 3bitr4i eqriv ) CABDZBADZCEZAFZNBFZGPOGNLF
      NMFOPHNABINBAIJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    ineqri.1 $e |- ( ( x e. A /\ x e. B ) <-> x e. C ) $.
    $( Inference from membership to intersection.  (Contributed by NM,
       5-Aug-1993.) $)
    ineqri $p |- ( A i^i B ) = C $=
      ( cin cv wcel wa elin bitri eqriv ) ABCFZDAGZMHNBHNCHINDHNBCJEKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality theorem for intersection of two classes.  (Contributed by NM,
       14-Dec-1993.) $)
    ineq1 $p |- ( A = B -> ( A i^i C ) = ( B i^i C ) ) $=
      ( vx wceq cin cv wcel wa eleq2 anbi1d elin 3bitr4g eqrdv ) ABEZDACFZBCFZO
      DGZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.
  $}

  $( Equality theorem for intersection of two classes.  (Contributed by NM,
     26-Dec-1993.) $)
  ineq2 $p |- ( A = B -> ( C i^i A ) = ( C i^i B ) ) $=
    ( wceq cin ineq1 incom 3eqtr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Equality theorem for intersection of two classes.  (Contributed by NM,
     8-May-1994.) $)
  ineq12 $p |- ( ( A = B /\ C = D ) -> ( A i^i C ) = ( B i^i D ) ) $=
    ( wceq cin ineq1 ineq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    ineq1i.1 $e |- A = B $.
    $( Equality inference for intersection of two classes.  (Contributed by NM,
       26-Dec-1993.) $)
    ineq1i $p |- ( A i^i C ) = ( B i^i C ) $=
      ( wceq cin ineq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for intersection of two classes.  (Contributed by NM,
       26-Dec-1993.) $)
    ineq2i $p |- ( C i^i A ) = ( C i^i B ) $=
      ( wceq cin ineq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      ineq12i.2 $e |- C = D $.
      $( Equality inference for intersection of two classes.  (Contributed by
         NM, 24-Jun-2004.)  (Proof shortened by Eric Schmidt, 26-Jan-2007.) $)
      ineq12i $p |- ( A i^i C ) = ( B i^i D ) $=
        ( wceq cin ineq12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
    $}
  $}

  ${
    ineq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for intersection of two classes.  (Contributed by NM,
       10-Apr-1994.) $)
    ineq1d $p |- ( ph -> ( A i^i C ) = ( B i^i C ) ) $=
      ( wceq cin ineq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for intersection of two classes.  (Contributed by NM,
       10-Apr-1994.) $)
    ineq2d $p |- ( ph -> ( C i^i A ) = ( C i^i B ) ) $=
      ( wceq cin ineq2 syl ) ABCFDBGDCGFEBCDHI $.

    ${
      ineq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for intersection of two classes.  (Contributed by
         NM, 24-Jun-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
      ineq12d $p |- ( ph -> ( A i^i C ) = ( B i^i D ) ) $=
        ( wceq cin ineq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
    $}

    ${
      ineqan12d.2 $e |- ( ps -> C = D ) $.
      $( Equality deduction for intersection of two classes.  (Contributed by
         NM, 7-Feb-2007.) $)
      ineqan12d $p |- ( ( ph /\ ps ) -> ( A i^i C ) = ( B i^i D ) ) $=
        ( wceq cin ineq12 syl2an ) ACDIEFICEJDFJIBGHCDEFKL $.
    $}
  $}

  $( A frequently-used variant of subclass definition ~ df-ss .  (Contributed
     by NM, 10-Jan-2015.) $)
  dfss1 $p |- ( A C_ B <-> ( B i^i A ) = A ) $=
    ( wss cin wceq df-ss incom eqeq1i bitri ) ABCABDZAEBADZAEABFJKAABGHI $.

  $( Another definition of subclasshood.  Similar to ~ df-ss , ~ dfss , and
     ~ dfss1 .  (Contributed by David Moews, 1-May-2017.) $)
  dfss5 $p |- ( A C_ B <-> A = ( B i^i A ) ) $=
    ( wss cin wceq dfss1 eqcom bitri ) ABCBADZAEAIEABFIAGH $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfin.1 $e |- F/_ x A $.
    nfin.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for the intersection of classes.
       (Contributed by NM, 15-Sep-2003.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfin $p |- F/_ x ( A i^i B ) $=
      ( vy cin cv wcel crab dfin5 nfcri nfrabxy nfcxfr ) ABCGFHCIZFBJFBCKOAFBAF
      CELDMN $.
  $}

  ${
    $d A y $.  $d C y z $.  $d D y z $.  $d x y z $.
    $( Distribute proper substitution through an intersection relation.
       (Contributed by Alan Sare, 22-Jul-2012.) $)
    csbing $p |- ( A e. B -> [_ A / x ]_ ( C i^i D ) =
                  ( [_ A / x ]_ C i^i [_ A / x ]_ D ) ) $=
      ( vy cv cin csb wceq csbeq1 ineq12d eqeq12d nfcsb1v csbeq1a csbief vtoclg
      vex nfin ) AFGZDEHZIZATDIZATEIZHZJABUAIZABDIZABEIZHZJFBCTBJZUBUFUEUIATBUA
      KUJUCUGUDUHATBDKATBEKLMATUAUEFRAUCUDATDNATENSAGTJDUCEUDATDOATEOLPQ $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    rabbi2dva.1 $e |- ( ( ph /\ x e. A ) -> ( x e. B <-> ps ) ) $.
    $( Deduction from a wff to a restricted class abstraction.  (Contributed by
       NM, 14-Jan-2014.) $)
    rabbi2dva $p |- ( ph -> ( A i^i B ) = { x e. A | ps } ) $=
      ( cin cv wcel crab dfin5 rabbidva syl5eq ) ADEGCHEIZCDJBCDJCDEKANBCDFLM
      $.
  $}

  ${
    $d x A $.
    $( Idempotent law for intersection of classes.  Theorem 15 of [Suppes]
       p. 26.  (Contributed by NM, 5-Aug-1993.) $)
    inidm $p |- ( A i^i A ) = A $=
      ( vx cv wcel anidm ineqri ) BAAABCADEF $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Associative law for intersection of classes.  Exercise 9 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 3-May-1994.) $)
    inass $p |- ( ( A i^i B ) i^i C ) = ( A i^i ( B i^i C ) ) $=
      ( vx cin cv wcel wa anass elin anbi2i bitr4i anbi1i 3bitr4i ineqri ) DABE
      ZCABCEZEZDFZAGZSBGZHZSCGZHZTSQGZHZSPGZUCHSRGUDTUAUCHZHUFTUAUCIUEUHTSBCJKL
      UGUBUCSABJMSAQJNO $.
  $}

  $( A rearrangement of intersection.  (Contributed by NM, 21-Apr-2001.) $)
  in12 $p |- ( A i^i ( B i^i C ) ) = ( B i^i ( A i^i C ) ) $=
    ( cin incom ineq1i inass 3eqtr3i ) ABDZCDBADZCDABCDDBACDDIJCABEFABCGBACGH
    $.

  $( A rearrangement of intersection.  (Contributed by NM, 21-Apr-2001.)
     (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  in32 $p |- ( ( A i^i B ) i^i C ) = ( ( A i^i C ) i^i B ) $=
    ( cin inass in12 incom 3eqtri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( A rearrangement of intersection.  (Contributed by NM, 27-Aug-2012.) $)
  in13 $p |- ( A i^i ( B i^i C ) ) = ( C i^i ( B i^i A ) ) $=
    ( cin in32 incom 3eqtr4i ) BCDZADBADZCDAHDCIDBCAEAHFCIFG $.

  $( A rearrangement of intersection.  (Contributed by NM, 27-Aug-2012.) $)
  in31 $p |- ( ( A i^i B ) i^i C ) = ( ( C i^i B ) i^i A ) $=
    ( cin in12 incom 3eqtr4i ) CABDZDACBDZDHCDIADCABEHCFIAFG $.

  $( Rotate the intersection of 3 classes.  (Contributed by NM,
     27-Aug-2012.) $)
  inrot $p |- ( ( A i^i B ) i^i C ) = ( ( C i^i A ) i^i B ) $=
    ( cin in31 in32 eqtri ) ABDCDCBDADCADBDABCECBAFG $.

  $( Rearrangement of intersection of 4 classes.  (Contributed by NM,
     21-Apr-2001.) $)
  in4 $p |- ( ( A i^i B ) i^i ( C i^i D ) ) =
            ( ( A i^i C ) i^i ( B i^i D ) ) $=
    ( cin in12 ineq2i inass 3eqtr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHA
    CLHI $.

  $( Intersection distributes over itself.  (Contributed by NM, 6-May-1994.) $)
  inindi $p |- ( A i^i ( B i^i C ) ) = ( ( A i^i B ) i^i ( A i^i C ) ) $=
    ( cin inidm ineq1i in4 eqtr3i ) AADZBCDZDAJDABDACDDIAJAEFAABCGH $.

  $( Intersection distributes over itself.  (Contributed by NM,
     17-Aug-2004.) $)
  inindir $p |- ( ( A i^i B ) i^i C ) = ( ( A i^i C ) i^i ( B i^i C ) ) $=
    ( cin inidm ineq2i in4 eqtr3i ) ABDZCCDZDICDACDBCDDJCICEFABCCGH $.

  $( A relationship between subclass and intersection.  Similar to Exercise 9
     of [TakeutiZaring] p. 18.  (Contributed by NM, 17-May-1994.) $)
  sseqin2 $p |- ( A C_ B <-> ( B i^i A ) = A ) $=
    ( dfss1 ) ABC $.

  ${
    $d x A $.  $d x B $.
    $( The intersection of two classes is a subset of one of them.  Part of
       Exercise 12 of [TakeutiZaring] p. 18.  (Contributed by NM,
       27-Apr-1994.) $)
    inss1 $p |- ( A i^i B ) C_ A $=
      ( vx cin cv wcel elin simplbi ssriv ) CABDZACEZJFKAFKBFKABGHI $.
  $}

  $( The intersection of two classes is a subset of one of them.  Part of
     Exercise 12 of [TakeutiZaring] p. 18.  (Contributed by NM,
     27-Apr-1994.) $)
  inss2 $p |- ( A i^i B ) C_ B $=
    ( cin incom inss1 eqsstr3i ) ABCBACBBADBAEF $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Subclass of intersection.  Theorem 2.8(vii) of [Monk1] p. 26.
       (Contributed by NM, 15-Jun-2004.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    ssin $p |- ( ( A C_ B /\ A C_ C ) <-> A C_ ( B i^i C ) ) $=
      ( vx cv wcel wi wal wa cin wss elin imbi2i albii jcab 19.26 3bitrri dfss2
      anbi12i 3bitr4i ) DEZAFZUABFZGZDHZUBUACFZGZDHZIZUBUABCJZFZGZDHZABKZACKZIA
      UJKUMUBUCUFIZGZDHUDUGIZDHUIULUQDUKUPUBUABCLMNUQURDUBUCUFONUDUGDPQUNUEUOUH
      DABRDACRSDAUJRT $.
  $}

  ${
    ssini.1 $e |- A C_ B $.
    ssini.2 $e |- A C_ C $.
    $( An inference showing that a subclass of two classes is a subclass of
       their intersection.  (Contributed by NM, 24-Nov-2003.) $)
    ssini $p |- A C_ ( B i^i C ) $=
      ( wss wa cin pm3.2i ssin mpbi ) ABFZACFZGABCHFLMDEIABCJK $.
  $}

  ${
    ssind.1 $e |- ( ph -> A C_ B ) $.
    ssind.2 $e |- ( ph -> A C_ C ) $.
    $( A deduction showing that a subclass of two classes is a subclass of
       their intersection.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    ssind $p |- ( ph -> A C_ ( B i^i C ) ) $=
      ( wss cin wa ssin biimpi syl2anc ) ABCGZBDGZBCDHGZEFMNIOBCDJKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Add right intersection to subclass relation.  (Contributed by NM,
       16-Aug-1994.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    ssrin $p |- ( A C_ B -> ( A i^i C ) C_ ( B i^i C ) ) $=
      ( vx wss cin cv wcel wa ssel anim1d elin 3imtr4g ssrdv ) ABEZDACFZBCFZODG
      ZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.

    $( Add left intersection to subclass relation.  (Contributed by NM,
       19-Oct-1999.) $)
    sslin $p |- ( A C_ B -> ( C i^i A ) C_ ( C i^i B ) ) $=
      ( wss cin ssrin incom 3sstr4g ) ABDACEBCECAECBEABCFCAGCBGH $.
  $}

  $( Intersection of subclasses.  (Contributed by NM, 5-May-2000.) $)
  ss2in $p |- ( ( A C_ B /\ C C_ D ) -> ( A i^i C ) C_ ( B i^i D ) ) $=
    ( wss cin ssrin sslin sylan9ss ) ABECDEACFBCFBDFABCGCDBHI $.

  $( Intersection preserves subclass relationship.  (Contributed by NM,
     14-Sep-1999.) $)
  ssinss1 $p |- ( A C_ C -> ( A i^i B ) C_ C ) $=
    ( cin wss wi inss1 sstr2 ax-mp ) ABDZAEACEJCEFABGJACHI $.

  $( Inclusion of an intersection of two classes.  (Contributed by NM,
     30-Oct-2014.) $)
  inss $p |- ( ( A C_ C \/ B C_ C ) -> ( A i^i B ) C_ C ) $=
    ( wss cin ssinss1 incom syl5eqss jaoi ) ACDABEZCDBCDZABCFKJBAECABGBACFHI $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
      Combinations of difference, union, and intersection of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Absorption law for union.  (Contributed by NM, 16-Apr-2006.) $)
  unabs $p |- ( A u. ( A i^i B ) ) = A $=
    ( cin wss cun wceq inss1 ssequn2 mpbi ) ABCZADAJEAFABGJAHI $.

  $( Absorption law for intersection.  (Contributed by NM, 16-Apr-2006.) $)
  inabs $p |- ( A i^i ( A u. B ) ) = A $=
    ( cun wss cin wceq ssun1 df-ss mpbi ) AABCZDAJEAFABGAJHI $.

  $( Negation of subclass expressed in terms of intersection and proper
     subclass.  (Contributed by NM, 30-Jun-2004.)  (Proof shortened by Andrew
     Salmon, 26-Jun-2011.) $)
  nssinpss $p |- ( -. A C_ B <-> ( A i^i B ) C. A ) $=
    ( cin wne wss wa wn wpss inss1 biantrur df-ss necon3bbii df-pss 3bitr4i ) A
    BCZADZOAEZPFABEZGOAHQPABIJROAABKLOAMN $.

  $( Negation of subclass expressed in terms of proper subclass and union.
     (Contributed by NM, 15-Sep-2004.) $)
  nsspssun $p |- ( -. A C_ B <-> B C. ( A u. B ) ) $=
    ( wss wn cun wa wpss ssun2 biantrur ssid biantru unss bitri xchnxbir dfpss3
    bitr4i ) ABCZDBABEZCZRBCZDZFZBRGTUBQSUABAHIQQBBCZFTUCQBJKABBLMNBROP $.

  ${
    $d x A $.  $d x B $.
    $( Double complement and subset.  Similar to ~ ddifss but inside a class
       ` B ` instead of the universal class ` _V ` .  In classical logic the
       subset operation on the right hand side could be an equality (that is,
       ` A C_ B <-> ( B \ ( B \ A ) ) = A ` ).  (Contributed by Jim Kingdon,
       24-Jul-2018.) $)
    ssddif $p |- ( A C_ B <-> A C_ ( B \ ( B \ A ) ) ) $=
      ( vx cv wcel wi wal cdif wss wa wn simpr con2i anim2i eldif notbii anbi2i
      ancr bitri dfss2 sylibr syl6 eldifi imim2i impbii albii 3bitr4i ) CDZAEZU
      HBEZFZCGUIUHBBAHZHZEZFZCGABIAUMIUKUOCUKUOUKUIUJUIJZUNUIUJRUPUJUJUIKZJZKZJ
      ZUNUIUSUJURUIUJUQLMNUNUJUHULEZKZJUTUHBULOVBUSUJVAURUHBAOPQSUAUBUNUJUIUHBU
      LUCUDUEUFCABTCAUMTUG $.

    $( Union of two classes and class difference.  In classical logic this
       would be an equality.  (Contributed by Jim Kingdon, 24-Jul-2018.) $)
    unssdif $p |- ( A u. B ) C_ ( _V \ ( ( _V \ A ) \ B ) ) $=
      ( vx cun cvv cdif cv wcel wo wn wa vex eldif mpbiran anbi1i ioran 3bitr4i
      biimpi con2i elun 3imtr4i ssriv ) CABDZEEAFZBFZFZCGZAHZUGBHZIZUGUEHZJZUGU
      CHUGUFHZUKUJUKUJJZUGUDHZUIJZKUHJZUPKUKUNUOUQUPUOUGEHZUQCLZUGEAMNOUGUDBMUH
      UIPQRSUGABTUMURULUSUGEUEMNUAUB $.

    $( Intersection of two classes and class difference.  In classical logic
       this would be an equality.  (Contributed by Jim Kingdon,
       24-Jul-2018.) $)
    inssdif $p |- ( A i^i B ) C_ ( A \ ( _V \ B ) ) $=
      ( vx cin cvv cdif cv wcel wa wn elndif anim2i elin eldif 3imtr4i ssriv )
      CABDZAEBFZFZCGZAHZTBHZIUATRHJZITQHTSHUBUCUATBEKLTABMTARNOP $.

    $( Difference with intersection.  Theorem 33 of [Suppes] p. 29.
       (Contributed by NM, 31-Mar-1998.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    difin $p |- ( A \ ( A i^i B ) ) = ( A \ B ) $=
      ( vx cdif cv wcel wa wn wfal wi ax-in2 expd dfnot syl6ibr com12 imdistani
      cin simpr con3i eldif anim2i impbii notbii anbi2i bitri 3bitr4i eqriv
      elin ) CAABQZDZABDZCEZAFZUMULBFZGZHZGZUMUNHZGZULUJFZULUKFUQUSUMUPURUPUMUR
      UPUMUNIJURUPUMUNIUOIKLUNMNOPURUPUMUOUNUMUNRSUAUBUTUMULUIFZHZGUQULAUITVBUP
      UMVAUOULABUHUCUDUEULABTUFUG $.
  $}

  $( Double complement under universal class.  In classical logic (or given an
     additional hypothesis, as in ~ ddifnel ), this is equality rather than
     subset.  (Contributed by Jim Kingdon, 24-Jul-2018.) $)
  ddifss $p |- A C_ ( _V \ ( _V \ A ) ) $=
    ( cvv wss cdif ssv ssddif mpbi ) ABCABBADDCAEABFG $.

  ${
    $d x A $.  $d x B $.
    $( Union as a subset of class complement and intersection (De Morgan's
       law).  One direction of the definition of union in [Mendelson] p. 231.
       This would be an equality, rather than subset, in classical logic.
       (Contributed by Jim Kingdon, 25-Jul-2018.) $)
    unssin $p |- ( A u. B ) C_ ( _V \ ( ( _V \ A ) i^i ( _V \ B ) ) ) $=
      ( vx cun cvv cdif cin cv wcel wo wn wa oranim eldifn anim12i nsyl sylnibr
      elin elun vex eldif mpbiran 3imtr4i ssriv ) CABDZEEAFZEBFZGZFZCHZAIZUJBIZ
      JZUJUHIZKZUJUEIUJUIIZUMUJUFIZUJUGIZLZUNUMUKKZULKZLUSUKULMUQUTURVAUJEANUJE
      BNOPUJUFUGRQUJABSUPUJEIUOCTUJEUHUAUBUCUD $.

    $( Intersection in terms of class difference and union (De Morgan's law).
       Similar to Exercise 4.10(n) of [Mendelson] p. 231.  This would be an
       equality, rather than subset, in classical logic.  (Contributed by Jim
       Kingdon, 25-Jul-2018.) $)
    inssun $p |- ( A i^i B ) C_ ( _V \ ( ( _V \ A ) u. ( _V \ B ) ) ) $=
      ( vx cin cvv cdif cv wcel wa wn wo pm3.1 eldifn orim12i nsyl elun sylnibr
      cun elin vex eldif mpbiran 3imtr4i ssriv ) CABDZEEAFZEBFZRZFZCGZAHZUJBHZI
      ZUJUHHZJZUJUEHUJUIHZUMUJUFHZUJUGHZKZUNUMUKJZULJZKUSUKULLUQUTURVAUJEAMUJEB
      MNOUJUFUGPQUJABSUPUJEHUOCTUJEUHUAUBUCUD $.
  $}

  $( Intersection of two classes and class difference.  In classical logic,
     such as Exercise 4.10(q) of [Mendelson] p. 231, this is an equality rather
     than subset.  (Contributed by Jim Kingdon, 26-Jul-2018.) $)
  inssddif $p |- ( A i^i B ) C_ ( A \ ( A \ B ) ) $=
    ( cin cdif wss inss1 ssddif mpbi difin difeq2i sseqtri ) ABCZAALDZDZAABDZDL
    AELNEABFLAGHMOAABIJK $.

  ${
    $d x A $.  $d x B $.
    $( Intersection with universal complement.  Remark in [Stoll] p. 20.
       (Contributed by NM, 17-Aug-2004.) $)
    invdif $p |- ( A i^i ( _V \ B ) ) = ( A \ B ) $=
      ( vx cvv cdif cin cv wcel wa vex eldif mpbiran anbi2i elin 3bitr4i eqriv
      wn ) CADBEZFZABEZCGZAHZUARHZIUBUABHQZIUASHUATHUCUDUBUCUADHUDCJUADBKLMUAAR
      NUAABKOP $.

    $( Intersection with class difference.  Theorem 34 of [Suppes] p. 29.
       (Contributed by NM, 17-Aug-2004.) $)
    indif $p |- ( A i^i ( A \ B ) ) = ( A \ B ) $=
      ( vx cdif cin cv wcel wn wa anabs5 elin eldif anbi2i bitri 3bitr4i eqriv
      ) CAABDZEZQCFZAGZTSBGHZIZIZUBSRGZSQGZTUAJUDTUEIUCSAQKUEUBTSABLZMNUFOP $.
  $}

  $( Bring an intersection in and out of a class difference.  (Contributed by
     Jeff Hankins, 15-Jul-2009.) $)
  indif2 $p |- ( A i^i ( B \ C ) ) = ( ( A i^i B ) \ C ) $=
    ( cin cvv cdif inass invdif ineq2i 3eqtr3ri ) ABDZECFZDABLDZDKCFABCFZDABLGK
    CHMNABCHIJ $.

  $( Bring an intersection in and out of a class difference.  (Contributed by
     Mario Carneiro, 15-May-2015.) $)
  indif1 $p |- ( ( A \ C ) i^i B ) = ( ( A i^i B ) \ C ) $=
    ( cdif cin indif2 incom difeq1i 3eqtr3i ) BACDZEBAEZCDJBEABEZCDBACFBJGKLCBA
    GHI $.

  $( Commutation law for intersection and difference.  (Contributed by Scott
     Fenton, 18-Feb-2013.) $)
  indifcom $p |- ( A i^i ( B \ C ) ) = ( B i^i ( A \ C ) ) $=
    ( cin cdif incom difeq1i indif2 3eqtr4i ) ABDZCEBADZCEABCEDBACEDJKCABFGABCH
    BACHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Distributive law for intersection over union.  Exercise 10 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 30-Sep-2002.)  (Proof
       shortened by Andrew Salmon, 26-Jun-2011.) $)
    indi $p |- ( A i^i ( B u. C ) ) = ( ( A i^i B ) u. ( A i^i C ) ) $=
      ( vx cun cin cv wcel wo wa andi elin orbi12i bitr4i anbi2i 3bitr4i ineqri
      elun ) DABCEZABFZACFZEZDGZAHZUCBHZUCCHZIZJZUCTHZUCUAHZIZUDUCSHZJUCUBHUHUD
      UEJZUDUFJZIUKUDUEUFKUIUMUJUNUCABLUCACLMNULUGUDUCBCROUCTUARPQ $.

    $( Distributive law for union over intersection.  Exercise 11 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 30-Sep-2002.)  (Proof
       shortened by Andrew Salmon, 26-Jun-2011.) $)
    undi $p |- ( A u. ( B i^i C ) ) = ( ( A u. B ) i^i ( A u. C ) ) $=
      ( vx cin cv wcel wo wa elin orbi2i ordi elun anbi12i bitr2i 3bitri uneqri
      cun ) DABCEZABRZACRZEZDFZAGZUCSGZHUDUCBGZUCCGZIZHUDUFHZUDUGHZIZUCUBGZUEUH
      UDUCBCJKUDUFUGLULUCTGZUCUAGZIUKUCTUAJUMUIUNUJUCABMUCACMNOPQ $.
  $}

  $( Distributive law for intersection over union.  Theorem 28 of [Suppes]
     p. 27.  (Contributed by NM, 30-Sep-2002.) $)
  indir $p |- ( ( A u. B ) i^i C ) = ( ( A i^i C ) u. ( B i^i C ) ) $=
    ( cun cin indi incom uneq12i 3eqtr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMK
    NLACGBCGHI $.

  $( Distributive law for union over intersection.  Theorem 29 of [Suppes]
     p. 27.  (Contributed by NM, 30-Sep-2002.) $)
  undir $p |- ( ( A i^i B ) u. C ) = ( ( A u. C ) i^i ( B u. C ) ) $=
    ( cin cun undi uncom ineq12i 3eqtr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMK
    NLACGBCGHI $.

  $( Equality of union and intersection implies equality of their arguments.
     (Contributed by NM, 16-Apr-2006.)  (Proof shortened by Andrew Salmon,
     26-Jun-2011.) $)
  uneqin $p |- ( ( A u. B ) = ( A i^i B ) <-> A = B ) $=
    ( cun cin wceq wss wa eqimss unss ssin sstr sylbir simpl anim12i syl sylibr
    eqss unidm inidm eqtr4i uneq2 ineq2 3eqtr3a impbii ) ABCZABDZEZABEZUGABFZBA
    FZGZUHUGUEUFFZUKUEUFHULAUFFZBUFFZGUKABUFIUMUIUNUJUMAAFUIGUIAABJAABKLUNUJBBF
    ZGUJBABJUJUOMLNLOABQPUHAACZAADZUEUFUPAUQARASTABAUAABAUBUCUD $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Distributive law for class difference.  Theorem 39 of [Suppes] p. 29.
       (Contributed by NM, 17-Aug-2004.) $)
    difundi $p |- ( A \ ( B u. C ) ) = ( ( A \ B ) i^i ( A \ C ) ) $=
      ( vx cun cdif cin cv wcel wa wn eldif anbi12i elin wo notbii anbi2i bitri
      elun ioran anandi 3bitr4ri eqriv ) DABCEZFZABFZACFZGZDHZUFIZUIUGIZJUIAIZU
      IBIZKZJZULUICIZKZJZJZUIUHIUIUEIZUJUOUKURUIABLUIACLMUIUFUGNUTULUNUQJZJZUSU
      TULUMUPOZKZJZVBUTULUIUDIZKZJVEUIAUDLVGVDULVFVCUIBCSPQRVDVAULUMUPTQRULUNUQ
      UARUBUC $.
  $}

  $( Distributive law for class difference.  (Contributed by NM,
     17-Aug-2004.) $)
  difundir $p |- ( ( A u. B ) \ C ) = ( ( A \ C ) u. ( B \ C ) ) $=
    ( cun cvv cdif cin indir invdif uneq12i 3eqtr3i ) ABDZECFZGAMGZBMGZDLCFACFZ
    BCFZDABMHLCINPOQACIBCIJK $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Distributive law for class difference.  In classical logic, for example,
       theorem 40 of [Suppes] p. 29, this is an equality instead of subset.
       (Contributed by Jim Kingdon, 26-Jul-2018.) $)
    difindiss $p |- ( ( A \ B ) u. ( A \ C ) ) C_ ( A \ ( B i^i C ) ) $=
      ( vx cdif cun cin cv wcel wo elun wa wn orbi12i andi bitr4i pm3.14 anim2i
      eldif sylbi elin notbii anbi2i bitr2i sylib ssriv ) DABEZACEZFZABCGZEZDHZ
      UIIULUGIZULUHIZJZULUKIZULUGUHKUOULAIZULBIZULCIZLZMZLZUPUOUQURMZUSMZJZLZVB
      UOUQVCLZUQVDLZJVFUMVGUNVHULABSULACSNUQVCVDOPVEVAUQURUSQRTUPUQULUJIZMZLVBU
      LAUJSVJVAUQVIUTULBCUAUBUCUDUETUF $.
  $}

  $( Distributive law for class difference.  (Contributed by NM,
     17-Aug-2004.) $)
  difindir $p |- ( ( A i^i B ) \ C ) = ( ( A \ C ) i^i ( B \ C ) ) $=
    ( cin cvv cdif inindir invdif ineq12i 3eqtr3i ) ABDZECFZDALDZBLDZDKCFACFZBC
    FZDABLGKCHMONPACHBCHIJ $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Distribute intersection over difference.  (Contributed by Scott Fenton,
       14-Apr-2011.) $)
    indifdir $p |- ( ( A \ B ) i^i C ) = ( ( A i^i C ) \ ( B i^i C ) ) $=
      ( vx cdif cv wcel wn wa elin notbii anbi12i eldif anbi1i bitri an32 simpl
      cin con3i wfal anim2i ax-in2 expcomd impcom dfnot sylibr adantll 3bitr4ri
      wi jca impbii eqriv ) DABEZCRZACRZBCRZEZDFZUOGZURUPGZHZIURAGZURCGZIZURBGZ
      VCIZHZIZURUQGURUNGZUSVDVAVGURACJUTVFURBCJKLURUOUPMVIVBVEHZIZVCIZVHVIURUMG
      ZVCIVLURUMCJVMVKVCURABMNOVLVDVJIZVHVBVJVCPVNVHVJVGVDVFVEVEVCQSUAVHVDVJVDV
      GQVCVGVJVBVCVGIVETUIZVJVGVCVOVGVEVCTVFTUBUCUDVEUEUFUGUJUKOOUHUL $.
  $}

  $( Set difference with a set difference.  In classical logic this would be
     equality rather than subset.  (Contributed by Jim Kingdon,
     27-Jul-2018.) $)
  difdif2ss $p |- ( ( A \ B ) u. ( A i^i C ) ) C_ ( A \ ( B \ C ) ) $=
    ( cin cun cvv wss inssdif unss2 ax-mp difindiss sstri invdif eqcomi difeq2i
    cdif sseqtr4i ) ABPZACDZEZABFCPZDZPZABCPZPTRAUAPZEZUCSUEGTUFGACHSUERIJABUAK
    LUDUBAUBUDBCMNOQ $.

  $( De Morgan's law for union.  Theorem 5.2(13) of [Stoll] p. 19.
     (Contributed by NM, 18-Aug-2004.) $)
  undm $p |- ( _V \ ( A u. B ) ) = ( ( _V \ A ) i^i ( _V \ B ) ) $=
    ( cvv difundi ) CABD $.

  $( De Morgan's law for intersection.  In classical logic, this would be
     equality rather than subset, as in Theorem 5.2(13') of [Stoll] p. 19.
     (Contributed by Jim Kingdon, 27-Jul-2018.) $)
  indmss $p |- ( ( _V \ A ) u. ( _V \ B ) ) C_ ( _V \ ( A i^i B ) ) $=
    ( cvv difindiss ) CABD $.

  $( A relationship involving double difference and union.  (Contributed by NM,
     29-Aug-2004.) $)
  difun1 $p |- ( A \ ( B u. C ) ) = ( ( A \ B ) \ C ) $=
    ( cvv cdif cin cun inass invdif eqtr3i undm ineq2i difeq1i ) ADBEZFZCEZABCG
    ZEZABEZCEANDCEZFZFZPROTFUBPANTHOCIJADQEZFUBRUCUAABCKLAQIJJOSCABIMJ $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( A subset relationship involving class union and class difference.  In
       classical logic, this would be equality rather than subset, as in the
       first equality of Exercise 13 of [TakeutiZaring] p. 22.  (Contributed by
       Jim Kingdon, 28-Jul-2018.) $)
    undif3ss $p |- ( A u. ( B \ C ) ) C_ ( ( A u. B ) \ ( C \ A ) ) $=
      ( vx cdif cun cv wcel wo wn wa elun eldif orbi2i orc olc jca anim12i jaoi
      simpl orcd adantr adantl ccase impbii 3bitri biimpri pm4.53r sylibr sylbi
      sylnibr ssriv ) DABCEZFZABFZCAEZEZDGZUNHZURAHZURBHZIZURCHZJZUTIZKZURUQHZU
      SUTURUMHZIUTVAVDKZIZVFURAUMLVHVIUTURBCMNVJVFUTVFVIUTVBVEUTVAOUTVDPQVAVBVD
      VEVAUTPVDUTORSUTVDVAUTVJUTVDKUTVIUTVDTUAVIUTPUTVJUTUTVIOZUBUTVJVAVKUCUDUE
      UFVFURUOHZURUPHZJZKVGVBVLVEVNVLVBURABLUGVEVCUTJKVMVCUTUHURCAMUKRURUOUPMUI
      UJUL $.

    $( Represent a set difference as an intersection with a larger difference.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    difin2 $p |- ( A C_ C -> ( A \ B ) = ( ( C \ B ) i^i A ) ) $=
      ( vx wss cdif cin cv wcel wn ssel pm4.71d anbi1d eldif anbi1i ancom anass
      wa elin bitr4i 3bitri 3bitr4g eqrdv ) ACEZDABFZCBFZAGZUDDHZAIZUHBIJZRUIUH
      CIZRZUJRZUHUEIUHUGIZUDUIULUJUDUIUKACUHKLMUHABNUNUHUFIZUIRUKUJRZUIRZUMUHUF
      ASUOUPUIUHCBNOUQUIUPRUMUPUIPUIUKUJQTUAUBUC $.
  $}

  $( Swap second and third argument of double difference.  (Contributed by NM,
     18-Aug-2004.) $)
  dif32 $p |- ( ( A \ B ) \ C ) = ( ( A \ C ) \ B ) $=
    ( cun cdif uncom difeq2i difun1 3eqtr3i ) ABCDZEACBDZEABECEACEBEJKABCFGABCH
    ACBHI $.

  $( Absorption-like law for class difference: you can remove a class only
     once.  (Contributed by FL, 2-Aug-2009.) $)
  difabs $p |- ( ( A \ B ) \ B ) = ( A \ B ) $=
    ( cun cdif difun1 unidm difeq2i eqtr3i ) ABBCZDABDZBDJABBEIBABFGH $.

  $( Two ways to express symmetric difference.  This theorem shows the
     equivalence of the definition of symmetric difference in [Stoll] p. 13 and
     the restated definition in Example 4.1 of [Stoll] p. 262.  (Contributed by
     NM, 17-Aug-2004.) $)
  symdif1 $p |- ( ( A \ B ) u. ( B \ A ) ) = ( ( A u. B ) \ ( A i^i B ) ) $=
    ( cun cin cdif difundir difin incom difeq2i eqtri uneq12i eqtr2i ) ABCABDZE
    AMEZBMEZCABEZBAEZCABMFNPOQABGOBBADZEQMRBABHIBAGJKL $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
    Class abstractions with difference, union, and intersection of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)
  ${
    $d x A $.  $d x B $.
    $( Expressing symmetric difference with exclusive-or or two differences.
       (Contributed by Jim Kingdon, 28-Jul-2018.) $)
    symdifxor $p |- ( ( A \ B ) u. ( B \ A ) ) =
                  { x | ( x e. A \/_ x e. B ) } $=
      ( cv wcel wxo cdif cun wo wn eldif orbi12i elun excxor ancom orbi2i bitri
      wa 3bitr4i abbi2i ) ADZBEZUACEZFZABCGZCBGZHZUAUEEZUAUFEZIUBUCJRZUCUBJZRZI
      ZUAUGEUDUHUJUIULUABCKUACBKLUAUEUFMUDUJUKUCRZIUMUBUCNUNULUJUKUCOPQST $.
  $}

  ${
    $d x y $.  $d ph y $.  $d ps y $.
    $( Union of two class abstractions.  (Contributed by NM, 29-Sep-2002.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    unab $p |- ( { x | ph } u. { x | ps } ) = { x | ( ph \/ ps ) } $=
      ( vy cab wo wsb cv wcel sbor df-clab orbi12i 3bitr4ri uneqri ) DACEZBCEZA
      BFZCEZQCDGACDGZBCDGZFDHZRIUAOIZUAPIZFABCDJQDCKUBSUCTADCKBDCKLMN $.

    $( Intersection of two class abstractions.  (Contributed by NM,
       29-Sep-2002.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    inab $p |- ( { x | ph } i^i { x | ps } ) = { x | ( ph /\ ps ) } $=
      ( vy cab wa wsb cv wcel sban df-clab anbi12i 3bitr4ri ineqri ) DACEZBCEZA
      BFZCEZQCDGACDGZBCDGZFDHZRIUAOIZUAPIZFABCDJQDCKUBSUCTADCKBDCKLMN $.

    $( Difference of two class abstractions.  (Contributed by NM,
       23-Oct-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difab $p |- ( { x | ph } \ { x | ps } ) = { x | ( ph /\ -. ps ) } $=
      ( vy cab wn wcel wsb df-clab sban bicomi xchbinxr anbi12i 3bitrri difeqri
      wa cv sbn ) DACEZBCEZABFZPZCEZDQZUCGUBCDHACDHZUACDHZPUDSGZUDTGZFZPUBDCIAU
      ACDJUEUGUFUIUGUEADCIKUFBCDHUHBCDRBDCILMNO $.
  $}

  $( A class builder defined by a negation.  (Contributed by FL,
     18-Sep-2010.) $)
  notab $p |- { x | -. ph } = ( _V \ { x | ph } ) $=
    ( cv cvv wcel wn wa cab cdif crab df-rab rabab eqtr3i difab abid2 difeq1i )
    BCDEZAFZGBHZRBHZDABHZIZRBDJSTRBDKRBLMQBHZUAISUBQABNUCDUABDOPMM $.

  $( Union of two restricted class abstractions.  (Contributed by NM,
     25-Mar-2004.) $)
  unrab $p |- ( { x e. A | ph } u. { x e. A | ps } ) =
              { x e. A | ( ph \/ ps ) } $=
    ( crab cun cv wcel wa cab wo df-rab uneq12i unab andi abbii eqtr4i ) ACDEZB
    CDEZFCGDHZAIZCJZTBIZCJZFZABKZCDEZRUBSUDACDLBCDLMUGTUFIZCJZUEUFCDLUEUAUCKZCJ
    UIUAUCCNUHUJCTABOPQQQ $.

  $( Intersection of two restricted class abstractions.  (Contributed by NM,
     1-Sep-2006.) $)
  inrab $p |- ( { x e. A | ph } i^i { x e. A | ps } ) =
              { x e. A | ( ph /\ ps ) } $=
    ( crab cin cv wcel wa cab df-rab ineq12i inab anandi abbii eqtr4i ) ACDEZBC
    DEZFCGDHZAIZCJZSBIZCJZFZABIZCDEZQUARUCACDKBCDKLUFSUEIZCJZUDUECDKUDTUBIZCJUH
    TUBCMUGUICSABNOPPP $.

  ${
    $d x B $.
    $( Intersection with a restricted class abstraction.  (Contributed by NM,
       19-Nov-2007.) $)
    inrab2 $p |- ( { x e. A | ph } i^i B ) = { x e. ( A i^i B ) | ph } $=
      ( crab cin cv wcel cab df-rab abid2 eqcomi ineq12i inab elin anbi1i bitri
      wa an32 eqtr4i abbii ) ABCEZDFBGZCHZARZBIZUCDHZBIZFZABCDFZEZUBUFDUHABCJUH
      DBDKLMUKUCUJHZARZBIZUIABUJJUIUEUGRZBIUNUEUGBNUMUOBUMUDUGRZARUOULUPAUCCDOP
      UDUGASQUATTT $.
  $}

  $( Difference of two restricted class abstractions.  (Contributed by NM,
     23-Oct-2004.) $)
  difrab $p |- ( { x e. A | ph } \ { x e. A | ps } ) =
              { x e. A | ( ph /\ -. ps ) } $=
    ( crab cdif cv wcel wa wn df-rab difeq12i difab anass simpr con3i anim2i wi
    cab eqtr4i pm3.2 adantr con3d imdistani impbii bitr3i abbii ) ACDEZBCDEZFCG
    DHZAIZCSZUJBIZCSZFZABJZIZCDEZUHULUIUNACDKBCDKLURUJUQIZCSZUOUQCDKUOUKUMJZIZC
    SUTUKUMCMUSVBCUSUKUPIZVBUJAUPNVCVBUPVAUKUMBUJBOPQUKVAUPUKBUMUJBUMRAUJBUAUBU
    CUDUEUFUGTTT $.

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of restricted class abstraction.  (Contributed by
       NM, 20-Sep-2003.) $)
    dfrab2 $p |- { x e. A | ph } = ( { x | ph } i^i A ) $=
      ( crab cv wcel wa cab cin df-rab inab abid2 ineq1i eqtr3i incom 3eqtri )
      ABCDBECFZAGBHZCABHZIZSCIABCJQBHZSIRTQABKUACSBCLMNCSOP $.

    $( Alternate definition of restricted class abstraction.  (Contributed by
       Mario Carneiro, 8-Sep-2013.) $)
    dfrab3 $p |- { x e. A | ph } = ( A i^i { x | ph } ) $=
      ( crab cv wcel wa cab cin df-rab inab abid2 ineq1i 3eqtr2i ) ABCDBECFZAGB
      HOBHZABHZICQIABCJOABKPCQBCLMN $.

    $( Complementation of restricted class abstractions.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    notrab $p |- ( A \ { x e. A | ph } ) = { x e. A | -. ph } $=
      ( cv wcel cab cdif wn crab difab cin difin dfrab3 difeq2i difeq1i 3eqtr4i
      wa abid2 df-rab ) BDCEZBFZABFZGZTAHZQBFCABCIZGZUDBCITABJCCUBKZGCUBGUFUCCU
      BLUEUGCABCMNUACUBBCROPUDBCSP $.

    $( Restricted class abstraction with a common superset.  (Contributed by
       Stefan O'Rear, 12-Sep-2015.)  (Proof shortened by Mario Carneiro,
       8-Nov-2015.) $)
    dfrab3ss $p |- ( A C_ B -> { x e. A | ph } = ( A i^i { x e. B | ph } ) ) $=
      ( wss cab crab wceq df-ss ineq1 eqcomd sylbi dfrab3 ineq2i eqtr4i 3eqtr4g
      cin inass ) CDEZCABFZQZCDQZTQZABCGCABDGZQZSUBCHZUAUCHCDIUFUCUAUBCTJKLABCM
      UECDTQZQUCUDUGCABDMNCDTROP $.
  $}

  $( Abstraction restricted to a union.  (Contributed by Stefan O'Rear,
     5-Feb-2015.) $)
  rabun2 $p |- { x e. ( A u. B ) | ph } =
      ( { x e. A | ph } u. { x e. B | ph } ) $=
    ( cun crab cv wcel wa cab df-rab uneq12i elun anbi1i andir bitri abbii unab
    wo eqtr4i ) ABCDEZFBGZUAHZAIZBJZABCFZABDFZEZABUAKUHUBCHZAIZBJZUBDHZAIZBJZEZ
    UEUFUKUGUNABCKABDKLUEUJUMSZBJUOUDUPBUDUIULSZAIUPUCUQAUBCDMNUIULAOPQUJUMBRTT
    T $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
    Restricted uniqueness with difference, union, and intersection
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.
    $( Transfer uniqueness to a smaller subclass.  (Contributed by NM,
       20-Oct-2005.) $)
    reuss2 $p |- ( ( ( A C_ B /\ A. x e. A ( ph -> ps ) ) /\
                 ( E. x e. A ph /\ E! x e. B ps ) ) -> E! x e. A ph ) $=
      ( wrex wreu wa wss wi wral wcel wex weu df-rex df-reu anbi12i wal sylan2b
      cv wmo df-ral ssel prth sylan exp4b com23 a2d imp4a alimdv imp euimmo syl
      eu5 simplbi2 syl9 imp32 sylibr ) ACDFZBCEGZHDEIZABJZCDKZHZCTZDLZAHZCMZVEE
      LZBHZCNZHZACDGZUSVHUTVKACDOBCEPQVDVLHVGCNZVMVDVHVKVNVDVKVGCUAZVHVNVDVGVJJ
      ZCRZVKVOJVCVAVFVBJZCRZVQVBCDUBVAVSVQVAVRVPCVAVRVFAVJVAVFVBAVJJZVAVBVFVTVA
      VBVFAVJVAVFVIJVBVPDEVEUCVFVIABUDUEUFUGUHUIUJUKSVGVJCULUMVNVHVOVGCUNUOUPUQ
      ACDPURS $.

    $( Transfer uniqueness to a smaller subclass.  (Contributed by NM,
       21-Aug-1999.) $)
    reuss $p |- ( ( A C_ B /\ E. x e. A ph /\ E! x e. B ph ) ->
                E! x e. A ph ) $=
      ( wss wrex wreu wi wral wa cv wcel idd rgen reuss2 mpanl2 3impb ) CDEZABC
      FZABDGZABCGZRAAHZBCISTJUAUBBCBKCLAMNAABCDOPQ $.

    $( Transfer uniqueness to a smaller class.  (Contributed by NM,
       21-Oct-2005.) $)
    reuun1 $p |- ( ( E. x e. A ph /\ E! x e. ( A u. B ) ( ph \/ ps ) )
                 -> E! x e. A ph ) $=
      ( cun wss wo wi wral wrex wreu wa ssun1 orc rgenw reuss2 mpanl12 ) DDEFZG
      AABHZIZCDJACDKTCSLMACDLDENUACDABOPATCDSQR $.

    $( Transfer uniqueness to a smaller or larger class.  (Contributed by NM,
       21-Oct-2005.) $)
    reuun2 $p |- ( -. E. x e. B ph ->
             ( E! x e. ( A u. B ) ph <-> E! x e. A ph ) ) $=
      ( wrex wn cv wcel wa wo weu cun wreu wex df-rex euor2 sylnbi df-reu bitri
      wb elun anbi1i andir orcom eubii 3bitr4g ) ABDEZFBGZDHZAIZUHCHZAIZJZBKZUL
      BKZABCDLZMZABCMUGUJBNUNUOTABDOUJULBPQUQUHUPHZAIZBKUNABUPRUSUMBUSUKUIJZAIZ
      UMURUTAUHCDUAUBVAULUJJUMUKUIAUCULUJUDSSUESABCRUF $.

    $( Restricted uniqueness "picks" a member of a subclass.  (Contributed by
       NM, 21-Aug-1999.) $)
    reupick $p |- ( ( ( A C_ B /\ ( E. x e. A ph /\ E! x e. B ph ) ) /\ ph ) ->
                  ( x e. A <-> x e. B ) ) $=
      ( wss wrex wreu wa cv wcel wi ssel ad2antrr wex weu df-rex df-reu anbi12i
      ancrd anim1d an32 syl6ib eximdv eupick ex com23 imp32 sylan2b expcomd imp
      syl9 impbid ) CDEZABCFZABDGZHZHZAHBIZCJZURDJZUMUSUTKUPACDURLZMUQAUTUSKUQU
      TAUSUPUMUSAHZBNZUTAHZBOZHVDUSKZUNVCUOVEABCPABDQRUMVCVEVFUMVEVCVFUMVCVDUSH
      ZBNZVEVFUMVBVGBUMVBUTUSHZAHVGUMUSVIAUMUSUTVASTUTUSAUAUBUCVEVHVFVDUSBUDUEU
      KUFUGUHUIUJUL $.

    $( Restricted uniqueness "picks" a member of a subclass.  (Contributed by
       Mario Carneiro, 19-Nov-2016.) $)
    reupick3 $p  |- ( ( E! x e. A ph /\ E. x e. A ( ph /\ ps ) /\ x e. A ) ->
       ( ph -> ps ) ) $=
      ( wreu wa wrex cv wcel wi weu wex df-reu df-rex anass exbii bitr4i eupick
      syl2anb expd 3impia ) ACDEZABFZCDGZCHDIZABJUBUDFUEABUBUEAFZCKUFBFZCLZUFBJ
      UDACDMUDUEUCFZCLUHUCCDNUGUICUEABOPQUFBCRSTUA $.

    $( Restricted uniqueness "picks" a member of a subclass.  (Contributed by
       Mario Carneiro, 15-Dec-2013.)  (Proof shortened by Mario Carneiro,
       19-Nov-2016.) $)
    reupick2 $p |- ( ( ( A. x e. A ( ps -> ph ) /\ E. x e. A ps /\
                       E! x e. A ph ) /\ x e. A ) -> ( ph <-> ps ) ) $=
      ( wi wral wrex wreu w3a cv wcel ancr ralimi rexim syl reupick3 3exp com12
      wa syl6 3imp1 rsp 3ad2ant1 imp impbid ) BAEZCDFZBCDGZACDHZIZCJDKZSABUGUHU
      IUKABEZUGUHABSZCDGZUIUKULEZEUGBUMEZCDFUHUNEUFUPCDBALMBUMCDNOUIUNUOUIUNUKU
      LABCDPQRTUAUJUKUFUGUHUKUFEUIUFCDUBUCUDUE $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           The empty set
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the symbol for the empty or null set. $)
  $c (/) $. $( null set $)

  $( Extend class notation to include the empty set. $)
  c0 $a class (/) $.

  $( Define the empty set.  Special case of Exercise 4.10(o) of [Mendelson]
     p. 231.  For a more traditional definition, but requiring a dummy
     variable, see ~ dfnul2 .  (Contributed by NM, 5-Aug-1993.) $)
  df-nul $a |- (/) = ( _V \ _V ) $.

  $( Alternate definition of the empty set.  Definition 5.14 of [TakeutiZaring]
     p. 20.  (Contributed by NM, 26-Dec-1996.) $)
  dfnul2 $p |- (/) = { x | -. x = x } $=
    ( cv wceq wn c0 wcel cdif wa df-nul eleq2i eldif pm3.24 eqid notnoti 2false
    cvv 3bitri abbi2i ) ABZSCZDZAESEFSPPGZFSPFZUCDHZUAEUBSIJSPPKUDUAUCLTSMNOQR
    $.

  $( Alternate definition of the empty set.  (Contributed by NM,
     25-Mar-2004.) $)
  dfnul3 $p |- (/) = { x e. A | -. x e. A } $=
    ( weq wn cv wcel wa c0 crab equid notnoti pm3.24 2false abbii dfnul2 df-rab
    cab 3eqtr4i ) AACZDZAQAEBFZUADZGZAQHUBABITUCATUCSAJKUALMNAOUBABPR $.

  $( The empty set has no elements.  Theorem 6.14 of [Quine] p. 44.
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Mario Carneiro,
     1-Sep-2015.) $)
  noel $p |- -. A e. (/) $=
    ( c0 wcel cvv cdif eldifi eldifn pm2.65i df-nul eleq2i mtbir ) ABCADDEZCZMA
    DCADDFADDGHBLAIJK $.

  $( If a set has elements, it is not empty.  A set with elements is also
     inhabited, see ~ elex2 .  (Contributed by NM, 31-Dec-1993.) $)
  n0i $p |- ( B e. A -> -. A = (/) ) $=
    ( c0 wceq wcel noel eleq2 mtbiri con2i ) ACDZBAEZJKBCEBFACBGHI $.

  $( If a set has elements, it is not empty.  A set with elements is also
     inhabited, see ~ elex2 .  (Contributed by NM, 31-Dec-1993.) $)
  ne0i $p |- ( B e. A -> A =/= (/) ) $=
    ( wcel c0 n0i neneqad ) BACADABEF $.

  $( The universal class is not equal to the empty set.  (Contributed by NM,
     11-Sep-2008.) $)
  vn0 $p |- _V =/= (/) $=
    ( vx cv cvv wcel c0 wne vex ne0i ax-mp ) ABZCDCEFAGCJHI $.

  $( The universal class is inhabited.  (Contributed by Jim Kingdon,
     17-Dec-2018.) $)
  vn0m $p |- E. x x e. _V $=
    ( cv cvv wcel wex vex 19.8a ax-mp ) ABCDZIAEAFIAGH $.

  ${
    $d x y $.  $d y A $.
    n0rf.1 $e |- F/_ x A $.
    $( An inhabited class is nonempty.  Following the Definition of [Bauer],
       p. 483, we call a class ` A ` nonempty if ` A =/= (/) ` and inhabited if
       it has at least one element.  In classical logic these two concepts are
       equivalent, for example see Proposition 5.17(1) of [TakeutiZaring]
       p. 20.  This version of ~ n0r requires only that ` x ` not be free in,
       rather than not occur in, ` A ` .  (Contributed by Jim Kingdon,
       31-Jul-2018.) $)
    n0rf $p |- ( E. x x e. A -> A =/= (/) ) $=
      ( cv wcel wex wn wal c0 wne exalim wceq wb nfcv cleqf noel nbn necon3abii
      albii bitr4i sylibr ) ADZBEZAFUCGZAHZGBIJUCAKUEBIBILUCUBIEZMZAHUEABICAINO
      UDUGAUFUCUBPQSTRUA $.
  $}

  ${
    $d x y A $.
    $( An inhabited class is nonempty.  See ~ n0rf for more discussion.
       (Contributed by Jim Kingdon, 31-Jul-2018.) $)
    n0r $p |- ( E. x x e. A -> A =/= (/) ) $=
      ( nfcv n0rf ) ABABCD $.

    $( An inhabited class is nonempty.  See ~ n0rf for more discussion.
       (Contributed by Jim Kingdon, 31-Jul-2018.) $)
    neq0r $p |- ( E. x x e. A -> -. A = (/) ) $=
      ( cv wcel wex c0 n0r neneqd ) ACBDAEBFABGH $.
  $}

  ${
    $d x A $.  $d x ph $.
    reximdva0m.1 $e |- ( ( ph /\ x e. A ) -> ps ) $.
    $( Restricted existence deduced from inhabited class.  (Contributed by Jim
       Kingdon, 31-Jul-2018.) $)
    reximdva0m $p |- ( ( ph /\ E. x x e. A ) -> E. x e. A ps ) $=
      ( cv wcel wex wa wrex ex ancld eximdv imp df-rex sylibr ) ACFDGZCHZIQBIZC
      HZBCDJARTAQSCAQBAQBEKLMNBCDOP $.
  $}

  ${
    $d A x $.
    $( A case of equivalence of "at most one" and "only one".  If a class is
       inhabited, that class having at most one element is equivalent to it
       having only one element.  (Contributed by Jim Kingdon, 31-Jul-2018.) $)
    n0mmoeu $p |- ( E. x x e. A -> ( E* x x e. A <-> E! x x e. A ) ) $=
      ( cv wcel exmoeu2 ) ACBDAE $.
  $}

  $( Vacuous existential quantification is false.  (Contributed by NM,
     15-Oct-2003.) $)
  rex0 $p |- -. E. x e. (/) ph $=
    ( c0 cv wcel wn noel pm2.21i nrex ) ABCBDZCEAFJGHI $.

  ${
    $d x A $.
    $( The empty set has no elements.  Theorem 2 of [Suppes] p. 22.
       (Contributed by NM, 29-Aug-1993.) $)
    eq0 $p |- ( A = (/) <-> A. x -. x e. A ) $=
      ( c0 wceq cv wcel wb wal wn nfcv cleqf noel nbn albii bitr4i ) BCDAEZBFZP
      CFZGZAHQIZAHABCABJACJKTSARQPLMNO $.

    $( The universe contains every set.  (Contributed by NM, 11-Sep-2006.) $)
    eqv $p |- ( A = _V <-> A. x x e. A ) $=
      ( cvv wceq cv wcel wb wal dfcleq vex tbt albii bitr4i ) BCDAEZBFZNCFZGZAH
      OAHABCIOQAPOAJKLM $.
  $}

  ${
    $d x A $.  $d x y $.
    $( Membership of the empty set in another class.  (Contributed by NM,
       29-Jun-2004.) $)
    0el $p |- ( (/) e. A <-> E. x e. A A. y -. y e. x ) $=
      ( c0 wcel cv wceq wrex wn wal risset eq0 rexbii bitri ) DCEAFZDGZACHBFOEI
      BJZACHADCKPQACBOLMN $.
  $}

  ${
    $d x ph $.
    $( The class builder of a decidable proposition not containing the
       abstraction variable is either the universal class or the empty set.
       (Contributed by Jim Kingdon, 1-Aug-2018.) $)
    abvor0dc $p |- ( DECID ph -> ( { x | ph } = _V \/ { x | ph } = (/) ) ) $=
      ( wdc wn wo cab cvv wceq c0 df-dc cv wcel id vex a1i 2thd abbi1dv 2falsed
      noel orim12i sylbi ) ACAADZEABFZGHZUCIHZEAJAUDUBUEAABGAABKZGLZAMUGABNOPQU
      BABIUBAUFILZUBMUHDUBUFSORQTUA $.
  $}

  ${
    $( Nonempty class abstraction.  (Contributed by Jim Kingdon,
       1-Aug-2018.) $)
    abn0r $p |- ( E. x ph -> { x | ph } =/= (/) ) $=
      ( wex cv cab wcel c0 wne abid exbii nfab1 n0rf sylbir ) ABCBDABEZFZBCNGHO
      ABABIJBNABKLM $.
  $}

  $( Non-empty restricted class abstraction.  (Contributed by Jim Kingdon,
     1-Aug-2018.) $)
  rabn0r $p |- ( E. x e. A ph -> { x e. A | ph } =/= (/) ) $=
    ( cv wcel wa wex cab c0 wne wrex crab abn0r df-rex df-rab neeq1i 3imtr4i )
    BDCEAFZBGRBHZIJABCKABCLZIJRBMABCNTSIABCOPQ $.

  ${
    $d x y $.  $d A y $.  $d ph y $.
    $( Inhabited restricted class abstraction.  (Contributed by Jim Kingdon,
       18-Sep-2018.) $)
    rabn0m $p |- ( E. y y e. { x e. A | ph } <-> E. x e. A ph ) $=
      ( wrex cv wcel wa wex crab df-rex rabid exbii nfv cab df-rab eleq2i nfxfr
      nfsab1 eleq1 cbvex 3bitr2ri ) ABDEBFZDGAHZBIUCABDJZGZBICFZUEGZCIABDKUFUDB
      ABDLMUFUHBCUFCNUHUGUDBOZGBUEUIUGABDPQUDBCSRUCUGUETUAUB $.
  $}

  $( Any restricted class abstraction restricted to the empty set is empty.
     (Contributed by NM, 15-Oct-2003.)  (Proof shortened by Andrew Salmon,
     26-Jun-2011.) $)
  rab0 $p |- { x e. (/) | ph } = (/) $=
    ( cv c0 wcel wa wceq wn crab noel intnanr equid notnoti 2false abbii df-rab
    cab dfnul2 3eqtr4i ) BCZDEZAFZBQTTGZHZBQABDIDUBUDBUBUDUAATJKUCBLMNOABDPBRS
    $.

  ${
    $d x y $.  $d A y $.  $d ph y $.

    $( Condition for a restricted class abstraction to be empty.  (Contributed
       by Jeff Madsen, 7-Jun-2010.) $)
    rabeq0 $p |- ( { x e. A | ph } = (/) <-> A. x e. A -. ph ) $=
      ( vy cv wcel wn wi wa wral crab c0 wceq imnan albii df-ral bitri 3bitr4ri
      wal wsb sbn nfv sb8 eq0 cab df-rab eleq2i df-clab notbii ) BECFZAGZHZBSUJ
      AIZGZBSZUKBCJABCKZLMZULUNBUJANOUKBCPUNBDTZDSUMBDTZGZDSZUOUQURUTDUMBDUAOUN
      BDUNDUBUCUQDEZUPFZGZDSVADUPUDVDUTDVCUSVCVBUMBUEZFUSUPVEVBABCUFUGUMDBUHQUI
      OQRR $.

    $( Condition for a class abstraction to be empty.  (Contributed by Jim
       Kingdon, 12-Aug-2018.) $)
    abeq0 $p |- ( { x | ph } = (/) <-> A. x -. ph ) $=
      ( vy wn wsb wal cab c0 wceq sbn albii nfv sb8 cv eq0 df-clab notbii bitri
      wcel 3bitr4ri ) ADZBCEZCFABCEZDZCFZUABFABGZHIZUBUDCABCJKUABCUACLMUGCNUFSZ
      DZCFUECUFOUIUDCUHUCACBPQKRT $.
  $}

  ${
    $d A x $.
    $( Law of excluded middle given decidability, in terms of restricted class
       abstractions.  (Contributed by Jim Kingdon, 2-Aug-2018.) $)
    rabxmdc $p |- ( A. x DECID ph ->
        A = ( { x e. A | ph } u. { x e. A | -. ph } ) ) $=
      ( wdc wal wn wo crab cun wral wceq cv wcel wi exmiddc alimi df-ral sylibr
      a1d rabid2 unrab syl6eqr ) ADZBEZCAAFZGZBCHZABCHUEBCHIUDUFBCJZCUGKUDBLCMZ
      UFNZBEUHUCUJBUCUFUIAOSPUFBCQRUFBCTRAUEBCUAUB $.

    $( Law of noncontradiction, in terms of restricted class abstractions.
       (Contributed by Jeff Madsen, 20-Jun-2011.) $)
    rabnc $p |- ( { x e. A | ph } i^i { x e. A | -. ph } ) = (/) $=
      ( crab wn cin wa c0 inrab wceq rabeq0 cv wcel pm3.24 a1i mprgbir eqtri )
      ABCDAEZBCDFARGZBCDZHARBCITHJSEZBCSBCKUABLCMANOPQ $.
  $}

  ${
    $d x A $.
    $( The union of a class with the empty set is itself.  Theorem 24 of
       [Suppes] p. 27.  (Contributed by NM, 5-Aug-1993.) $)
    un0 $p |- ( A u. (/) ) = A $=
      ( vx c0 cv wcel wo noel biorfi bicomi uneqri ) BACABDZAEZLKCEZFMLKGHIJ $.

    $( The intersection of a class with the empty set is the empty set.
       Theorem 16 of [Suppes] p. 26.  (Contributed by NM, 5-Aug-1993.) $)
    in0 $p |- ( A i^i (/) ) = (/) $=
      ( vx c0 cv wcel wa noel bianfi bicomi ineqri ) BACCBDZCEZKAEZLFLMKGHIJ $.
  $}

  $( The intersection of a class with the universal class is itself.  Exercise
     4.10(k) of [Mendelson] p. 231.  (Contributed by NM, 17-May-1998.) $)
  inv1 $p |- ( A i^i _V ) = A $=
    ( cvv cin inss1 ssid ssv ssini eqssi ) ABCAABDAABAEAFGH $.

  $( The union of a class with the universal class is the universal class.
     Exercise 4.10(l) of [Mendelson] p. 231.  (Contributed by NM,
     17-May-1998.) $)
  unv $p |- ( A u. _V ) = _V $=
    ( cvv cun ssv ssun2 eqssi ) ABCZBGDBAEF $.

  ${
    $d A x $.
    $( The null set is a subset of any class.  Part of Exercise 1 of
       [TakeutiZaring] p. 22.  (Contributed by NM, 5-Aug-1993.) $)
    0ss $p |- (/) C_ A $=
      ( vx c0 cv wcel noel pm2.21i ssriv ) BCABDZCEIAEIFGH $.
  $}

  $( Any subset of the empty set is empty.  Theorem 5 of [Suppes] p. 23 and its
     converse.  (Contributed by NM, 17-Sep-2003.) $)
  ss0b $p |- ( A C_ (/) <-> A = (/) ) $=
    ( c0 wceq wss 0ss eqss mpbiran2 bicomi ) ABCZABDZIJBADAEABFGH $.

  $( Any subset of the empty set is empty.  Theorem 5 of [Suppes] p. 23.
     (Contributed by NM, 13-Aug-1994.) $)
  ss0 $p |- ( A C_ (/) -> A = (/) ) $=
    ( c0 wss wceq ss0b biimpi ) ABCABDAEF $.

  $( A subclass of an empty class is empty.  (Contributed by NM, 7-Mar-2007.)
     (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  sseq0 $p |- ( ( A C_ B /\ B = (/) ) -> A = (/) ) $=
    ( c0 wceq wss sseq2 ss0 syl6bi impcom ) BCDZABEZACDZJKACELBCAFAGHI $.

  $( A class with a nonempty subclass is nonempty.  (Contributed by NM,
     17-Feb-2007.) $)
  ssn0 $p |- ( ( A C_ B /\ A =/= (/) ) -> B =/= (/) ) $=
    ( wss c0 wne wceq sseq0 ex necon3d imp ) ABCZADEBDEKBDADKBDFADFABGHIJ $.

  ${
    abf.1 $e |- -. ph $.
    $( A class builder with a false argument is empty.  (Contributed by NM,
       20-Jan-2012.) $)
    abf $p |- { x | ph } = (/) $=
      ( cab c0 wss wceq cv wcel pm2.21i abssi ss0 ax-mp ) ABDZEFNEGABEABHEICJKN
      LM $.
  $}

  ${
    $d x A $.  $d x ph $.
    eq0rdv.1 $e |- ( ph -> -. x e. A ) $.
    $( Deduction rule for equality to the empty set.  (Contributed by NM,
       11-Jul-2014.) $)
    eq0rdv $p |- ( ph -> A = (/) ) $=
      ( c0 wss wceq cv wcel pm2.21d ssrdv ss0 syl ) ACEFCEGABCEABHZCINEIDJKCLM
      $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( The proper substitution of a proper class for a set into a class results
       in the empty set.  (Contributed by NM, 17-Aug-2018.) $)
    csbprc $p |- ( -. A e. _V -> [_ A / x ]_ B = (/) ) $=
      ( vy cvv wcel wn csb cv wsbc cab c0 df-csb wfal sbcex con3i pm2.21d falim
      impbid1 abbidv fal abf syl6eq syl5eq ) BEFZGZABCHDICFZABJZDKZLADBCMUFUIND
      KLUFUHNDUFUHNUFUHNUHUEUGABOPQUHRSTNDUAUBUCUD $.
  $}

  $( Two classes are empty iff their union is empty.  (Contributed by NM,
     11-Aug-2004.) $)
  un00 $p |- ( ( A = (/) /\ B = (/) ) <-> ( A u. B ) = (/) ) $=
    ( c0 wceq wa cun uneq12 un0 syl6eq wss ssun1 sseq2 mpbii sylib ssun2 impbii
    ss0b jca ) ACDZBCDZEZABFZCDZUAUBCCFCACBCGCHIUCSTUCACJZSUCAUBJUDABKUBCALMAQN
    UCBCJZTUCBUBJUEBAOUBCBLMBQNRP $.

  $( Only the universal class has the universal class as a subclass.
     (Contributed by NM, 17-Sep-2003.)  (Proof shortened by Andrew Salmon,
     26-Jun-2011.) $)
  vss $p |- ( _V C_ A <-> A = _V ) $=
    ( cvv wss wa wceq ssv biantrur eqss bitr4i ) BACZABCZJDABEKJAFGABHI $.

  $( The null set is a proper subset of any non-empty set.  (Contributed by NM,
     27-Feb-1996.) $)
  0pss $p |- ( (/) C. A <-> A =/= (/) ) $=
    ( c0 wpss wne wss 0ss df-pss mpbiran necom bitri ) BACZBADZABDKBAELAFBAGHBA
    IJ $.

  $( No set is a proper subset of the empty set.  (Contributed by NM,
     17-Jun-1998.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  npss0 $p |- -. A C. (/) $=
    ( c0 wpss wss wn wa wi 0ss a1i imanim ax-mp dfpss3 mtbir ) ABCABDZBADZEFZNO
    GPEONAHINOJKABLM $.

  $( Any non-universal class is a proper subclass of the universal class.
     (Contributed by NM, 17-May-1998.) $)
  pssv $p |- ( A C. _V <-> -. A = _V ) $=
    ( cvv wpss wss wceq wn ssv dfpss2 mpbiran ) ABCABDABEFAGABHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Two ways of saying that two classes are disjoint (have no members in
       common).  (Contributed by NM, 17-Feb-2004.) $)
    disj $p |- ( ( A i^i B ) = (/) <-> A. x e. A -. x e. B ) $=
      ( cin c0 wceq cv wcel wn wi wal wral wa cab df-in eqeq1i abeq1 imnan noel
      wb nbn bitr2i albii 3bitri df-ral bitr4i ) BCDZEFZAGZBHZUICHZIZJZAKZULABL
      UHUJUKMZANZEFUOUIEHZTZAKUNUGUPEABCOPUOAEQURUMAUMUOIURUJUKRUQUOUISUAUBUCUD
      ULABUEUF $.

    $( Two ways of saying that two classes are disjoint.  (Contributed by Jeff
       Madsen, 19-Jun-2011.) $)
    disjr $p |- ( ( A i^i B ) = (/) <-> A. x e. B -. x e. A ) $=
      ( cin c0 wceq cv wcel wn wral incom eqeq1i disj bitri ) BCDZEFCBDZEFAGBHI
      ACJOPEBCKLACBMN $.

    $( Two ways of saying that two classes are disjoint (have no members in
       common).  (Contributed by NM, 19-Aug-1993.) $)
    disj1 $p |- ( ( A i^i B ) = (/) <-> A. x ( x e. A -> -. x e. B ) ) $=
      ( cin c0 wceq cv wcel wn wral wi wal disj df-ral bitri ) BCDEFAGZCHIZABJP
      BHQKALABCMQABNO $.

    $( Two ways of saying that two classes are disjoint, using the complement
       of ` B ` relative to a universe ` C ` .  (Contributed by NM,
       15-Feb-2007.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    reldisj $p |- ( A C_ C -> ( ( A i^i B ) = (/) <-> A C_ ( C \ B ) ) ) $=
      ( vx wss cv wcel wn wi wal cdif cin c0 wceq wb dfss2 pm5.44 eldif imbi2i
      wa syl6bbr sps sylbi albidv disj1 3bitr4g ) ACEZDFZAGZUHBGHZIZDJUIUHCBKZG
      ZIZDJABLMNAULEUGUKUNDUGUIUHCGZIZDJUKUNOZDACPUPUQDUPUKUIUOUJTZIUNUIUOUJQUM
      URUIUHCBRSUAUBUCUDDABUEDAULPUF $.

    $( Two ways of saying that two classes are disjoint.  (Contributed by NM,
       19-May-1998.) $)
    disj3 $p |- ( ( A i^i B ) = (/) <-> A = ( A \ B ) ) $=
      ( vx cv wcel wn wi wal cdif wb cin c0 wa pm4.71 eldif bibi2i bitr4i albii
      wceq disj1 dfcleq 3bitr4i ) CDZAEZUCBEFZGZCHUDUCABIZEZJZCHABKLSAUGSUFUICU
      FUDUDUEMZJUIUDUENUHUJUDUCABOPQRCABTCAUGUAUB $.

    $( Members of disjoint sets are not equal.  (Contributed by NM,
       28-Mar-2007.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    disjne $p |- ( ( ( A i^i B ) = (/) /\ C e. A /\ D e. B ) -> C =/= D ) $=
      ( vx cin c0 wceq wcel wne cv wn wral wi disj eleq1 notbid rspccva eleq1a
      wa necon3bd syl5com sylanb 3impia ) ABFGHZCAIZDBIZCDJZUEEKZBIZLZEAMZUFUGU
      HNEABOULUFTCBIZLZUGUHUKUNECAUICHUJUMUICBPQRUGUMCDDBCSUAUBUCUD $.
  $}

  $( A set can't belong to both members of disjoint classes.  (Contributed by
     NM, 28-Feb-2015.) $)
  disjel $p |- ( ( ( A i^i B ) = (/) /\ C e. A ) -> -. C e. B ) $=
    ( cin c0 wceq wcel wn cdif wi disj3 eleq2 eldifn syl6bi sylbi imp ) ABDEFZC
    AGZCBGHZQAABIZFZRSJABKUARCTGSATCLCABMNOP $.

  $( Two ways of saying that two classes are disjoint.  (Contributed by NM,
     17-May-1998.) $)
  disj2 $p |- ( ( A i^i B ) = (/) <-> A C_ ( _V \ B ) ) $=
    ( cvv wss cin c0 wceq cdif wb ssv reldisj ax-mp ) ACDABEFGACBHDIAJABCKL $.

  $( A consequence of two classes being disjoint.  In classical logic this
     would be a biconditional.  (Contributed by Jim Kingdon, 2-Aug-2018.) $)
  disj4im $p |- ( ( A i^i B ) = (/) -> -. ( A \ B ) C. A ) $=
    ( cin c0 wceq cdif wpss wn disj3 eqcom bitri wss dfpss2 simprbi con2i sylbi
    ) ABCDEZABFZAEZRAGZHQARESABIARJKTSTRALSHRAMNOP $.

  $( Intersection with a subclass of a disjoint class.  (Contributed by FL,
     24-Jan-2007.) $)
  ssdisj $p |- ( ( A C_ B /\ ( B i^i C ) = (/) ) -> ( A i^i C ) = (/) ) $=
    ( wss cin c0 wceq wa ss0b wi ssrin sstr2 syl syl5bir imp ss0 ) ABDZBCEZFGZH
    ACEZFDZTFGQSUASRFDZQUARIQTRDUBUAJABCKTRFLMNOTPM $.

  $( A class is a proper subset of its union with a disjoint nonempty class.
     (Contributed by NM, 15-Sep-2004.) $)
  disjpss $p |- ( ( ( A i^i B ) = (/) /\ B =/= (/) ) -> A C. ( A u. B ) ) $=
    ( cin c0 wceq wne wa wss wn cun wpss ssid biantru bitri sseq2 syl5bb syl6bi
    ssin ss0 necon3ad imp nsspssun uncom psseq2i sylib ) ABCZDEZBDFZGBAHZIZAABJ
    ZKZUGUHUJUGUIBDUGUIBDHZBDEUIBUFHZUGUMUIUIBBHZGUNUOUIBLMBABRNUFDBOPBSQTUAUJA
    BAJZKULBAUBUPUKABAUCUDNUE $.

  $( The union of disjoint classes is disjoint.  (Contributed by NM,
     26-Sep-2004.) $)
  undisj1 $p |- ( ( ( A i^i C ) = (/) /\ ( B i^i C ) = (/) ) <->
               ( ( A u. B ) i^i C ) = (/) ) $=
    ( cin c0 wceq wa cun un00 indir eqeq1i bitr4i ) ACDZEFBCDZEFGMNHZEFABHCDZEF
    MNIPOEABCJKL $.

  $( The union of disjoint classes is disjoint.  (Contributed by NM,
     13-Sep-2004.) $)
  undisj2 $p |- ( ( ( A i^i B ) = (/) /\ ( A i^i C ) = (/) ) <->
               ( A i^i ( B u. C ) ) = (/) ) $=
    ( cin c0 wceq wa cun un00 indi eqeq1i bitr4i ) ABDZEFACDZEFGMNHZEFABCHDZEFM
    NIPOEABCJKL $.

  $( Subclass implies empty intersection with difference from the universal
     class.  (Contributed by NM, 17-Sep-2003.) $)
  ssindif0im $p |- ( A C_ B -> ( A i^i ( _V \ B ) ) = (/) ) $=
    ( wss cvv cdif cin c0 wceq ddifss sstr mpan2 disj2 sylibr ) ABCZADDBEZEZCZA
    OFGHNBPCQBIABPJKAOLM $.

  $( The intersection of classes with a common member is nonempty.
     (Contributed by NM, 7-Apr-1994.) $)
  inelcm $p |- ( ( A e. B /\ A e. C ) -> ( B i^i C ) =/= (/) ) $=
    ( wcel wa cin c0 wne elin ne0i sylbir ) ABDACDEABCFZDLGHABCILAJK $.

  $( A minimum element of a class has no elements in common with the class.
     (Contributed by NM, 22-Jun-1994.) $)
  minel $p |- ( ( A e. B /\ ( C i^i B ) = (/) ) -> -. A e. C ) $=
    ( cin c0 wceq wcel wn wa wi inelcm necon2bi imnan sylibr con2d impcom ) CBD
    ZEFZABGZACGZHRTSRTSIZHTSHJUAQEACBKLTSMNOP $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Distribute union over difference.  (Contributed by NM, 17-May-1998.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    undif4 $p |- ( ( A i^i C ) = (/) ->
                 ( A u. ( B \ C ) ) = ( ( A u. B ) \ C ) ) $=
      ( vx cv wcel wn wi wal cdif cun wb cin c0 wceq wo wa eldif elun 3bitr4g
      pm2.621 olc impbid1 anbi2d orbi2i bitri anbi1i alimi disj1 dfcleq 3imtr4i
      ordi ) DEZAFZUMCFGZHZDIUMABCJZKZFZUMABKZCJZFZLZDIACMNOURVAOUPVCDUPUNUMUQF
      ZPZUMUTFZUOQZUSVBUPUNUMBFZPZUNUOPZQZVIUOQVEVGUPVJUOVIUPVJUOUNUOUAUOUNUBUC
      UDVEUNVHUOQZPVKVDVLUNUMBCRUEUNVHUOULUFVFVIUOUMABSUGTUMAUQSUMUTCRTUHDACUID
      URVAUJUK $.

    $( Subset relation for disjoint classes.  (Contributed by NM,
       25-Oct-2005.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    disjssun $p |- ( ( A i^i B ) = (/) -> ( A C_ ( B u. C ) <-> A C_ C ) ) $=
      ( cin c0 wceq cun wss indi equncomi uneq2 un0 syl6eq syl5eq df-ss 3bitr4g
      eqeq1d ) ABDZEFZABCGZDZAFACDZAFATHACHSUAUBASUAUBRGZUBUARUBABCIJSUCUBEGUBR
      EUBKUBLMNQATOACOP $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass implies empty difference.  One direction of Exercise 7 of
       [TakeutiZaring] p. 22.  In classical logic this would be an
       equivalence.  (Contributed by Jim Kingdon, 2-Aug-2018.) $)
    ssdif0im $p |- ( A C_ B -> ( A \ B ) = (/) ) $=
      ( vx cv wcel wi wal cdif wn wss c0 wceq wa imanim eldif sylnibr alimi eq0
      dfss2 3imtr4i ) CDZAEZUABEZFZCGUAABHZEZIZCGABJUEKLUDUGCUDUBUCIMUFUBUCNUAA
      BOPQCABSCUERT $.
  $}

  $( Universal class equality in terms of empty difference.  (Contributed by
     Jim Kingdon, 3-Aug-2018.) $)
  vdif0im $p |- ( A = _V -> ( _V \ A ) = (/) ) $=
    ( cvv wceq wss cdif c0 vss ssdif0im sylbir ) ABCBADBAEFCAGBAHI $.

  ${
    $d V x $.
    $( If the difference between the restricting class of a restricted class
       abstraction and the restricted class abstraction is empty, the
       restricting class is equal to this restricted class abstraction.
       (Contributed by Jim Kingdon, 3-Aug-2018.) $)
    difrab0eqim $p |-
        ( V = { x e. V | ph } -> ( V \ { x e. V | ph } ) = (/) ) $=
      ( crab wceq wss cdif c0 ssrabeq ssdif0im sylbir ) CABCDZECLFCLGHEABCICLJK
      $.
  $}

  $( A subclass missing a member is a proper subclass.  (Contributed by NM,
     12-Jan-2002.) $)
  ssnelpss $p |- ( A C_ B -> ( ( C e. B /\ -. C e. A ) -> A C. B ) ) $=
    ( wcel wn wa wceq wss wpss nelneq2 eqcom sylnib dfpss2 baibr syl5ib ) CBDCA
    DEFZABGZEZABHZABIZPBAGQCBAJBAKLTSRABMNO $.

  ${
    ssnelpssd.1 $e |- ( ph -> A C_ B ) $.
    ssnelpssd.2 $e |- ( ph -> C e. B ) $.
    ssnelpssd.3 $e |- ( ph -> -. C e. A ) $.
    $( Subclass inclusion with one element of the superclass missing is proper
       subclass inclusion.  Deduction form of ~ ssnelpss .  (Contributed by
       David Moews, 1-May-2017.) $)
    ssnelpssd $p |- ( ph -> A C. B ) $=
      ( wcel wn wpss wss wa wi ssnelpss syl mp2and ) ADCHZDBHIZBCJZFGABCKQRLSME
      BCDNOP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Intersection, subclass, and difference relationship.  In classical logic
       the converse would also hold.  (Contributed by Jim Kingdon,
       3-Aug-2018.) $)
    inssdif0im $p |- ( ( A i^i B ) C_ C -> ( A i^i ( B \ C ) ) = (/) ) $=
      ( vx cv cin wcel wi wal cdif wn c0 wceq wa elin imbi1i imanim sylbi eldif
      wss anbi2i anass 3bitr4ri sylnib alimi dfss2 eq0 3imtr4i ) DEZABFZGZUICGZ
      HZDIUIABCJZFZGZKZDIUJCTUOLMUMUQDUMUIAGZUIBGZNZULKZNZUPUMUTULHVBKUKUTULUIA
      BOPUTULQRURUIUNGZNURUSVANZNUPVBVCVDURUIBCSUAUIAUNOURUSVAUBUCUDUEDUJCUFDUO
      UGUH $.
  $}

  $( The difference between a class and itself is the empty set.  Proposition
     5.15 of [TakeutiZaring] p. 20.  Also Theorem 32 of [Suppes] p. 28.
     (Contributed by NM, 22-Apr-2004.) $)
  difid $p |- ( A \ A ) = (/) $=
    ( wss cdif c0 wceq ssid ssdif0im ax-mp ) AABAACDEAFAAGH $.

  ${
    $d x A $.
    $( The difference between a class and itself is the empty set.  Proposition
       5.15 of [TakeutiZaring] p. 20.  Also Theorem 32 of [Suppes] p. 28.
       Alternate proof of ~ difid .  (Contributed by David Abernethy,
       17-Jun-2012.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    difidALT $p |- ( A \ A ) = (/) $=
      ( vx cdif cv wcel wn crab c0 dfdif2 dfnul3 eqtr4i ) AACBDAEFBAGHBAAIBAJK
      $.
  $}

  $( The difference between a class and the empty set.  Part of Exercise 4.4 of
     [Stoll] p. 16.  (Contributed by NM, 17-Aug-2004.) $)
  dif0 $p |- ( A \ (/) ) = A $=
    ( cdif c0 difid difeq2i difdif eqtr3i ) AAABZBACBAHCAADEAAFG $.

  $( The difference between the empty set and a class.  Part of Exercise 4.4 of
     [Stoll] p. 16.  (Contributed by NM, 17-Aug-2004.) $)
  0dif $p |- ( (/) \ A ) = (/) $=
    ( c0 cdif wss wceq difss ss0 ax-mp ) BACZBDIBEBAFIGH $.

  $( A class and its relative complement are disjoint.  Theorem 38 of [Suppes]
     p. 29.  (Contributed by NM, 24-Mar-1998.) $)
  disjdif $p |- ( A i^i ( B \ A ) ) = (/) $=
    ( cin wss cdif c0 wceq inss1 inssdif0im ax-mp ) ABCADABAECFGABHABAIJ $.

  $( The difference of a class from its intersection is empty.  Theorem 37 of
     [Suppes] p. 29.  (Contributed by NM, 17-Aug-2004.)  (Proof shortened by
     Andrew Salmon, 26-Jun-2011.) $)
  difin0 $p |- ( ( A i^i B ) \ B ) = (/) $=
    ( cin wss cdif c0 wceq inss2 ssdif0im ax-mp ) ABCZBDKBEFGABHKBIJ $.

  $( Absorption of difference by union.  In classical logic, as Theorem 35 of
     [Suppes] p. 29, this would be equality rather than subset.  (Contributed
     by Jim Kingdon, 4-Aug-2018.) $)
  undif1ss $p |- ( ( A \ B ) u. B ) C_ ( A u. B ) $=
    ( cdif wss cun difss unss1 ax-mp ) ABCZADIBEABEDABFIABGH $.

  $( Absorption of difference by union.  In classical logic, as in Part of
     proof of Corollary 6K of [Enderton] p. 144, this would be equality rather
     than subset.  (Contributed by Jim Kingdon, 4-Aug-2018.) $)
  undif2ss $p |- ( A u. ( B \ A ) ) C_ ( A u. B ) $=
    ( cdif cun undif1ss uncom 3sstr4i ) BACZADBADAHDABDBAEAHFABFG $.

  $( Absorption of difference by union.  (Contributed by NM, 18-Aug-2013.) $)
  undifabs $p |- ( A u. ( A \ B ) ) = A $=
    ( cdif cun ssid difss unssi ssun1 eqssi ) AABCZDAAJAAEABFGAJHI $.

  $( The intersection and class difference of a class with another class are
     contained in the original class.  In classical logic we'd be able to make
     a stronger statement: that everything in the original class is in the
     intersection or the difference (that is, this theorem would be equality
     rather than subset).  (Contributed by Jim Kingdon, 4-Aug-2018.) $)
  inundifss $p |- ( ( A i^i B ) u. ( A \ B ) ) C_ A $=
    ( cin cdif inss1 difss unssi ) ABCABDAABEABFG $.

  $( Absorption of union by difference.  Theorem 36 of [Suppes] p. 29.
     (Contributed by NM, 19-May-1998.) $)
  difun2 $p |- ( ( A u. B ) \ B ) = ( A \ B ) $=
    ( cun cdif c0 difundir difid uneq2i un0 3eqtri ) ABCBDABDZBBDZCKECKABBFLEKB
    GHKIJ $.

  $( Union of complementary parts into whole.  (Contributed by Jim Kingdon,
     4-Aug-2018.) $)
  undifss $p |- ( A C_ B <-> ( A u. ( B \ A ) ) C_ B ) $=
    ( wss cdif cun wa difss jctr unss sylib ssun1 sstr mpan impbii ) ABCZABADZE
    ZBCZOOPBCZFROSBAGHAPBIJAQCROAPKAQBLMN $.

  $( A subset of a difference does not intersect the subtrahend.  (Contributed
     by Jeff Hankins, 1-Sep-2013.)  (Proof shortened by Mario Carneiro,
     24-Aug-2015.) $)
  ssdifin0 $p |- ( A C_ ( B \ C ) -> ( A i^i C ) = (/) ) $=
    ( cdif wss cin c0 wceq ssrin incom disjdif eqtri sseq0 sylancl ) ABCDZEACFZ
    OCFZEQGHPGHAOCIQCOFGOCJCBKLPQMN $.

  $( A class is a subclass of itself subtracted from another iff it is the
     empty set.  (Contributed by Steve Rodriguez, 20-Nov-2015.) $)
  ssdifeq0 $p |- ( A C_ ( B \ A ) <-> A = (/) ) $=
    ( cdif wss wceq cin inidm ssdifin0 syl5eqr 0ss difeq2 sseq12d mpbiri impbii
    c0 id ) ABACZDZAOEZRAAAFOAGABAHISROBOCZDTJSAOQTSPAOBKLMN $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( A consequence of inclusion in the union of two classes.  In classical
       logic this would be a biconditional.  (Contributed by Jim Kingdon,
       4-Aug-2018.) $)
    ssundifim $p |- ( A C_ ( B u. C ) -> ( A \ B ) C_ C ) $=
      ( vx cv wcel cun wi wal cdif wss wo wn wa pm5.6r elun eldif 3imtr4i dfss2
      imbi2i imbi1i alimi ) DEZAFZUCBCGZFZHZDIUCABJZFZUCCFZHZDIAUEKUHCKUGUKDUDU
      CBFZUJLZHUDULMNZUJHUGUKUDULUJOUFUMUDUCBCPTUIUNUJUCABQUARUBDAUESDUHCSR $.
  $}

  $( Distributive law for class difference.  In classical logic, as in Exercise
     4.8 of [Stoll] p. 16, this would be equality rather than subset.
     (Contributed by Jim Kingdon, 4-Aug-2018.) $)
  difdifdirss $p |- ( ( A \ B ) \ C ) C_ ( ( A \ C ) \ ( B \ C ) ) $=
    ( cdif cvv cun cin dif32 invdif eqtr4i un0 indi disjdif incom eqtr3i uneq2i
    c0 wss ax-mp sseqtri ddifss unss2 indmss difeq2i sstri sslin eqsstri ) ABDC
    DZACDZEBDZCFZGZUIBCDZDZUHUIUJGZQFZULUHUOUPUHUIBDUOABCHUIBIJUOKJULUOUICGZFUP
    UIUJCLQUQUOCUIGQUQCAMCUINOPJJULUIEUMDZGZUNUKURRULUSRUKUJEECDZDZFZURCVARUKVB
    RCUACVAUJUBSVBEBUTGZDURBUTUCVCUMEBCIUDTUEUKURUIUFSUIUMITUG $.

  $( Two ways that ` A ` and ` B ` can "partition" ` C ` (when ` A ` and ` B `
     don't overlap and ` A ` is a part of ` C ` ).  In classical logic, the
     second implication would be a biconditional.  (Contributed by Jim Kingdon,
     4-Aug-2018.) $)
  uneqdifeqim $p |- ( ( A C_ C /\ ( A i^i B ) = (/) )
     -> ( ( A u. B ) = C -> ( C \ A ) = B ) ) $=
    ( cin c0 wceq cun cdif wi wss uncom eqcomd difeq1 difun2 incom eqeq1i disj3
    wa eqtr bitri expcom eqcoms sylbi syl5com sylancl syl mpan com12 adantl ) A
    BDZEFZABGZCFZCAHZBFZIACJUMUKUOBAGZULFZUMUKUOIZBAKUQUMRZCUPFZURUSUPCUPULCSLU
    TUNUPAHZFZVABAHZFZURCUPAMBANVBVDRUNVCFZUKUOUNVAVCSUKBVCFZVEUOIZUKBADZEFVFUJ
    VHEABOPBAQTVGVCBVEVCBFUOUNVCBSUAUBUCUDUEUFUGUHUI $.

  ${
    $d x A $.
    $( Theorem 19.2 of [Margaris] p. 89 with restricted quantifiers (compare
       ~ 19.2 ).  The restricted version is valid only when the domain of
       quantification is inhabited.  (Contributed by Jim Kingdon,
       5-Aug-2018.) $)
    r19.2m $p |- ( ( E. x x e. A /\ A. x e. A ph ) -> E. x e. A ph ) $=
      ( wral cv wcel wex wrex wa wal df-ral exintr sylbi df-rex syl6ibr impcom
      wi ) ABCDZBECFZBGZABCHZRTSAIBGZUARSAQBJTUBQABCKSABLMABCNOP $.
  $}

  ${
    $d a x A $.  $d a y A $.
    r19.3rm.1 $e |- F/ x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by Jim Kingdon, 19-Dec-2018.) $)
    r19.3rm $p |- ( E. y y e. A -> ( ph <-> A. x e. A ph ) ) $=
      ( va cv wcel wex wral wb eleq1 cbvexv wi biimt df-ral 19.23 bitri syl6bbr
      wal sylbi sylbir ) CGZDHZCIFGZDHZFIZAABDJZKZUFUDFCUEUCDLMUGBGZDHZBIZUIUFU
      KFBUEUJDLMULAULANZUHULAOUHUKANBTUMABDPUKABEQRSUAUB $.
  $}

  ${
    $d x A $.
    r19.28m.1 $e |- F/ x ph $.
    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is inhabited.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.28m $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( ph /\ A. x e. A ps ) ) ) $=
      ( cv wcel wex wral wa r19.3rm anbi1d r19.26 syl6rbbr ) CFDGCHZABCDIZJACDI
      ZPJABJCDIOAQPACCDEKLABCDMN $.
  $}

  ${
    $d x A $.  $d y A $.  $d x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by Jim Kingdon, 6-Aug-2018.) $)
    r19.3rmv $p |- ( E. y y e. A -> ( ph <-> A. x e. A ph ) ) $=
      ( nfv r19.3rm ) ABCDABEF $.
  $}

  ${
    $d x a A $.  $d y a A $.  $d x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.9rmv $p |- ( E. y y e. A -> ( ph <-> E. x e. A ph ) ) $=
      ( va cv wcel wex wrex wb eleq1 cbvexv wa df-rex 19.41v bitri baibr sylbir
      sylbi ) CFZDGZCHEFZDGZEHZAABDIZJZUCUAECUBTDKLUDBFZDGZBHZUFUCUHEBUBUGDKLUE
      UIAUEUHAMBHUIAMABDNUHABOPQSR $.
  $}

  ${
    $d x A $.  $d y A $.  $d x ph $.
    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is inhabited.
       (Contributed by Jim Kingdon, 6-Aug-2018.) $)
    r19.28mv $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( ph /\ A. x e. A ps ) ) ) $=
      ( nfv r19.28m ) ABCDACEF $.

    $( Restricted version of Theorem 19.45 of [Margaris] p. 90.  (Contributed
       by NM, 27-May-1998.) $)
    r19.45mv $p |- ( E. x x e. A ->
                   ( E. x e. A ( ph \/ ps ) <-> ( ph \/ E. x e. A ps ) ) ) $=
      ( cv wcel wex wrex wo r19.9rmv orbi1d r19.43 syl6rbbr ) CEDFCGZABCDHZIACD
      HZOIABICDHNAPOACCDJKABCDLM $.
  $}

  ${
    $d x A $.
    r19.27m.1 $e |- F/ x ps $.
    $( Restricted quantifier version of Theorem 19.27 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is inhabited.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.27m $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( A. x e. A ph /\ ps ) ) ) $=
      ( cv wcel wex wral wa r19.3rm anbi2d r19.26 syl6rbbr ) CFDGCHZACDIZBJPBCD
      IZJABJCDIOBQPBCCDEKLABCDMN $.
  $}

  ${
    $d x A $.  $d x ps $.
    $( Restricted quantifier version of Theorem 19.27 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is inhabited.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.27mv $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( A. x e. A ph /\ ps ) ) ) $=
      ( nfv r19.27m ) ABCDBCEF $.
  $}

  ${
    $d x A $.
    $( Vacuous quantification is always true.  (Contributed by NM,
       11-Mar-1997.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    rzal $p |- ( A = (/) -> A. x e. A ph ) $=
      ( c0 wceq cv wcel ne0i necon2bi pm2.21d ralrimiv ) CDEZABCLBFZCGZANCDCMHI
      JK $.

    $( Restricted existential quantification implies its restriction is
       nonempty.  (Contributed by Szymon Jaroszewicz, 3-Apr-2007.) $)
    rexn0 $p |- ( E. x e. A ph -> A =/= (/) ) $=
      ( c0 wne cv wcel ne0i a1d rexlimiv ) ACDEZBCBFZCGKACLHIJ $.

    $( Restricted existential quantification implies its restriction is
       inhabited.  (Contributed by Jim Kingdon, 16-Oct-2018.) $)
    rexm $p |- ( E. x e. A ph -> E. x x e. A ) $=
      ( wrex cv wcel wa wex df-rex simpl eximi sylbi ) ABCDBECFZAGZBHMBHABCINMB
      MAJKL $.

    $( Idempotent law for restricted quantifier.  (Contributed by NM,
       28-Mar-1997.) $)
    ralidm $p |- ( A. x e. A A. x e. A ph <-> A. x e. A ph ) $=
      ( wral nfra1 cv wcel wa anidm rsp2 syl5bir ralrimi wi wal wex ax-1 sylibr
      19.23 df-ral impbii ) ABCDZBCDZUAUBABCUABCEBFCGZUCUCHUBAUCIABBCCJKLUAUCUA
      MBNZUBUAUCBOZUAMUDUAUEPUCUABABCERQUABCSQT $.
  $}

  $( Vacuous universal quantification is always true.  (Contributed by NM,
     20-Oct-2005.) $)
  ral0 $p |- A. x e. (/) ph $=
    ( c0 cv wcel noel pm2.21i rgen ) ABCBDZCEAIFGH $.

  ${
    $d x A $.
    rgenm.1 $e |- ( ( E. x x e. A /\ x e. A ) -> ph ) $.
    $( Generalization rule that eliminates an inhabited class requirement.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    rgenm $p |- A. x e. A ph $=
      ( wral cv wcel wi wal wex nfe1 alrimi 19.38 ax-mp pm5.4 albii mpbi df-ral
      ex mpbir ) ABCEBFCGZAHZBIZUAUBHZBIZUCUABJZUCHUEUFUBBUABKUFUAADSLUAUBBMNUD
      UBBUAAOPQABCRT $.
  $}

  ${
    $d x A $.
    ralf0.1 $e |- -. ph $.
    $( The quantification of a falsehood is vacuous when true.  (Contributed by
       NM, 26-Nov-2005.) $)
    ralf0 $p |- ( A. x e. A ph <-> A = (/) ) $=
      ( wral c0 wceq cv wcel wi wal wn con3 mpi alimi df-ral eq0 3imtr4i impbii
      rzal ) ABCEZCFGZBHCIZAJZBKUCLZBKUAUBUDUEBUDALUEDUCAMNOABCPBCQRABCTS $.
  $}

  $( Inhabited classes and restricted quantification.  (Contributed by Jim
     Kingdon, 6-Aug-2018.) $)
  ralm $p |- ( ( E. x x e. A -> A. x e. A ph ) <-> A. x e. A ph ) $=
    ( cv wcel wex wral wi wal df-ral imbi2i 19.38 sylbi pm2.43 alimi syl sylibr
    ax-1 impbii ) BDCEZBFZABCGZHZUBUCTAHZBIZUBUCTUDHZBIZUEUCUAUEHUGUBUEUAABCJZK
    TUDBLMUFUDBTANOPUHQUBUARS $.

  ${
    $d x y A $.
    raaan.1 $e |- F/ y ph $.
    raaan.2 $e |- F/ x ps $.
    $( Special case of ~ raaan where ` A ` is inhabited.  (Contributed by Jim
       Kingdon, 6-Aug-2018.) $)
    raaanlem $p |- ( E. x x e. A ->
      ( A. x e. A A. y e. A ( ph /\ ps ) <->
         ( A. x e. A ph /\ A. y e. A ps ) ) ) $=
      ( cv wcel wex wa wral wb eleq1 cbvexv r19.28m ralbidv sylbi nfcv nfralxy
      r19.27m bitrd ) CHZEIZCJZABKDELZCELZABDELZKZCELZACELUHKUEDHZEIZDJZUGUJMUD
      ULCDUCUKENOUMUFUICEABDEFPQRAUHCEBCDECESGTUAUB $.

    $( Rearrange restricted quantifiers.  (Contributed by NM, 26-Oct-2010.) $)
    raaan $p |- ( A. x e. A A. y e. A ( ph /\ ps ) <->
                  ( A. x e. A ph /\ A. y e. A ps ) ) $=
      ( cv wcel wex wa wral wi raaanlem pm5.74i ralm jcab eleq1 cbvexv bitri
      imbi1i anbi12i 3bitr3i ) CHZEIZCJZABKDELZCELZMUFACELZBDELZKZMZUHUKUFUHUKA
      BCDEFGNOUGCEPULUFUIMZUFUJMZKUKUFUIUJQUMUIUNUJACEPUNDHZEIZDJZUJMUJUFUQUJUE
      UPCDUDUOERSUABDEPTUBTUC $.
  $}

  ${
    $d y ph $.  $d x ps $.  $d x y A $.
    $( Rearrange restricted quantifiers.  (Contributed by NM, 11-Mar-1997.) $)
    raaanv $p |- ( A. x e. A A. y e. A ( ph /\ ps ) <->
                  ( A. x e. A ph /\ A. y e. A ps ) ) $=
      ( nfv raaan ) ABCDEADFBCFG $.
  $}

  ${
    $d z y $.  $d z x A $.
    $( Set substitution into the first argument of a subset relation.
       (Contributed by Rodolfo Medina, 7-Jul-2010.)  (Proof shortened by Mario
       Carneiro, 14-Nov-2016.) $)
    sbss $p |- ( [ y / x ] x C_ A <-> y C_ A ) $=
      ( vz cv wss wsb vex sbequ sseq1 nfv sbie vtoclb ) AEZCFZADGDEZCFZOABGBEZC
      FDRBHODBAIPRCJOQADQAKNPCJLM $.
  $}

  ${
    $d A y $.  $d B y $.  $d C y $.  $d V y $.  $d x y $.
    $( Distribute proper substitution through a subclass relation.
       (Contributed by Alan Sare, 22-Jul-2012.)  (Proof shortened by Alexander
       van der Vekens, 23-Jul-2017.) $)
    sbcssg $p |- ( A e. V -> ( [. A / x ]. B C_ C <->
      [_ A / x ]_ B C_ [_ A / x ]_ C ) ) $=
      ( vy wcel cv wi wal wsbc csb wss sbcalg sbcimg sbcel2g bitrd albidv dfss2
      imbi12d sbcbii 3bitr4g ) BEGZFHZCGZUDDGZIZFJZABKZUDABCLZGZUDABDLZGZIZFJZC
      DMZABKUJULMUCUIUGABKZFJUOUGFABENUCUQUNFUCUQUEABKZUFABKZIUNUEUFABEOUCURUKU
      SUMABUDCEPABUDDEPTQRQUPUHABFCDSUAFUJULSUB $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           Conditional operator
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c , $.  $( Comma (also used for unordered pair notation later) $)
  $c if $.  $( Conditional operator (was "ded" for "deduction class"). $)

  $( Extend class notation to include the conditional operator.  See ~ df-if
     for a description.  (In older databases this was denoted "ded".) $)
  cif $a class if ( ph , A , B ) $.

  ${
    $d x ph $.  $d x A $.  $d x B $.
    $( Define the conditional operator.  Read ` if ( ph , A , B ) ` as "if
       ` ph ` then ` A ` else ` B ` ."  See ~ iftrue and ~ iffalse for its
       values.  In mathematical literature, this operator is rarely defined
       formally but is implicit in informal definitions such as "let f(x)=0 if
       x=0 and 1/x otherwise."

       In the absence of excluded middle, this will tend to be useful where
       ` ph ` is decidable (in the sense of ~df-dc ).  (Contributed by NM,
       15-May-1999.) $)
    df-if $a |- if ( ph , A , B ) =
                 { x | ( ( x e. A /\ ph ) \/ ( x e. B /\ -. ph ) ) } $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.  $d x C $.
    $( An alternate definition of the conditional operator ~ df-if as a simple
       class abstraction.  (Contributed by Mario Carneiro, 8-Sep-2013.) $)
    dfif6 $p |- if ( ph , A , B ) =
                 ( { x e. A | ph } u. { x e. B | -. ph } ) $=
      ( cv wcel wa cab wn cun wo crab cif unab df-rab uneq12i df-if 3eqtr4ri )
      BEZCFAGZBHZSDFAIZGZBHZJTUCKBHABCLZUBBDLZJACDMTUCBNUEUAUFUDABCOUBBDOPABCDQ
      R $.

    $( Equality theorem for conditional operator.  (Contributed by NM,
       1-Sep-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    ifeq1 $p |- ( A = B -> if ( ph , A , C ) = if ( ph , B , C ) ) $=
      ( vx wceq crab wn cun cif rabeq uneq1d dfif6 3eqtr4g ) BCFZAEBGZAHEDGZIAE
      CGZQIABDJACDJOPRQAEBCKLAEBDMAECDMN $.

    $( Equality theorem for conditional operator.  (Contributed by NM,
       1-Sep-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    ifeq2 $p |- ( A = B -> if ( ph , C , A ) = if ( ph , C , B ) ) $=
      ( vx wceq crab wn cun cif rabeq uneq2d dfif6 3eqtr4g ) BCFZAEDGZAHZEBGZIP
      QECGZIADBJADCJORSPQEBCKLAEDBMAEDCMN $.

    $( Value of the conditional operator when its first argument is true.
       (Contributed by NM, 15-May-1999.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    iftrue $p |- ( ph -> if ( ph , A , B ) = A ) $=
      ( vx cv wcel wa wn wo cab cif dedlema abbi2dv df-if syl6reqr ) ABDEZBFZAG
      PCFZAHGIZDJABCKASDBAQRLMADBCNO $.
  $}

  ${
    iftruei.1 $e |- ph $.
    $( Inference associated with ~ iftrue .  (Contributed by BJ,
       7-Oct-2018.) $)
    iftruei $p |- if ( ph , A , B ) = A $=
      ( cif wceq iftrue ax-mp ) AABCEBFDABCGH $.
  $}

  ${
    iftrued.1 $e |- ( ph -> ch ) $.
    $( Value of the conditional operator when its first argument is true.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    iftrued $p |- ( ph -> if ( ch , A , B ) = A ) $=
      ( cif wceq iftrue syl ) ABBCDFCGEBCDHI $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    $( Value of the conditional operator when its first argument is false.
       (Contributed by NM, 14-Aug-1999.) $)
    iffalse $p |- ( -. ph -> if ( ph , A , B ) = B ) $=
      ( vx wn cv wcel wa wo cab cif dedlemb abbi2dv df-if syl6reqr ) AEZCDFZBGZ
      AHQCGZPHIZDJABCKPTDCARSLMADBCNO $.
  $}

  ${
    iffalsei.1 $e |- -. ph $.
    $( Inference associated with ~ iffalse .  (Contributed by BJ,
       7-Oct-2018.) $)
    iffalsei $p |- if ( ph , A , B ) = B $=
      ( wn cif wceq iffalse ax-mp ) AEABCFCGDABCHI $.
  $}

  ${
    iffalsed.1 $e |- ( ph -> -. ch ) $.
    $( Value of the conditional operator when its first argument is false.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    iffalsed $p |- ( ph -> if ( ch , A , B ) = B ) $=
      ( wn cif wceq iffalse syl ) ABFBCDGDHEBCDIJ $.
  $}

  $( When values are unequal, but an "if" condition checks if they are equal,
     then the "false" branch results.  This is a simple utility to provide a
     slight shortening and simplification of proofs vs. applying ~ iffalse
     directly in this case.  (Contributed by David A. Wheeler, 15-May-2015.) $)
  ifnefalse $p |- ( A =/= B -> if ( A = B , C , D ) = D ) $=
    ( wne wceq wn cif df-ne iffalse sylbi ) ABEABFZGLCDHDFABILCDJK $.

  ${
    $d y A $.  $d y B $.  $d x y ph $.
    dfif3.1 $e |- C = { x | ph } $.
    $( Alternate definition of the conditional operator ~ df-if .  Note that
       ` ph ` is independent of ` x ` i.e. a constant true or false.
       (Contributed by NM, 25-Aug-2013.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    dfif3 $p |- if ( ph , A , B )
                  = ( ( A i^i C ) u. ( B i^i ( _V \ C ) ) ) $=
      ( vy cif crab wn cun cin cvv cdif dfif6 cab weq ineq2i dfrab3 eqtr4i
      biidd cbvabv eqtri notab difeq2i eqtr2i uneq12i ) ACDHAGCIZAJZGDIZKCELZDM
      ENZLZKAGCDOUKUHUMUJUKCAGPZLUHEUNCEABPUNFAABGBGQAUAUBUCZRAGCSTUJDUIGPZLUMU
      IGDSUPULDUPMUNNULAGUDEUNMUOUETRUFUGT $.
  $}

  $( Equality theorem for conditional operators.  (Contributed by NM,
     1-Sep-2004.) $)
  ifeq12 $p |- ( ( A = B /\ C = D ) ->
                if ( ph , A , C ) = if ( ph , B , D ) ) $=
    ( wceq cif ifeq1 ifeq2 sylan9eq ) BCFDEFABDGACDGACEGABCDHADECIJ $.

  ${
    ifeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for conditional operator.  (Contributed by NM,
       16-Feb-2005.) $)
    ifeq1d $p |- ( ph -> if ( ps , A , C ) = if ( ps , B , C ) ) $=
      ( wceq cif ifeq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.

    $( Equality deduction for conditional operator.  (Contributed by NM,
       16-Feb-2005.) $)
    ifeq2d $p |- ( ph -> if ( ps , C , A ) = if ( ps , C , B ) ) $=
      ( wceq cif ifeq2 syl ) ACDGBECHBEDHGFBCDEIJ $.

    ifeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for conditional operator.  (Contributed by NM,
       24-Mar-2015.) $)
    ifeq12d $p |- ( ph -> if ( ps , A , C ) = if ( ps , B , D ) ) $=
      ( cif ifeq1d ifeq2d eqtrd ) ABCEIBDEIBDFIABCDEGJABEFDHKL $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.  $d ps x $.
    $( Equivalence theorem for conditional operators.  (Contributed by Raph
       Levien, 15-Jan-2004.) $)
    ifbi $p |- ( ( ph <-> ps ) -> if ( ph , A , B ) = if ( ps , A , B ) ) $=
      ( vx wb cv wcel wa wn wo cab cif anbi2 notbid anbi2d orbi12d abbidv df-if
      id 3eqtr4g ) ABFZEGZCHZAIZUCDHZAJZIZKZELUDBIZUFBJZIZKZELACDMBCDMUBUIUMEUB
      UEUJUHULABUDNUBUGUKUFUBABUBTOPQRAECDSBECDSUA $.
  $}

  ${
    ifbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalence deduction for conditional operators.  (Contributed by NM,
       18-Apr-2005.) $)
    ifbid $p |- ( ph -> if ( ps , A , B ) = if ( ch , A , B ) ) $=
      ( wb cif wceq ifbi syl ) ABCGBDEHCDEHIFBCDEJK $.
  $}

  ${
    ifbieq1d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    ifbieq1d.2 $e |- ( ph -> A = B ) $.
    $( Equivalence/equality deduction for conditional operators.  (Contributed
       by JJ, 25-Sep-2018.) $)
    ifbieq1d $p |- ( ph -> if ( ps , A , C ) = if ( ch , B , C ) ) $=
      ( cif ifbid ifeq1d eqtrd ) ABDFICDFICEFIABCDFGJACDEFHKL $.
  $}

  ${
    ifbieq2i.1 $e |- ( ph <-> ps ) $.
    ifbieq2i.2 $e |- A = B $.
    $( Equivalence/equality inference for conditional operators.  (Contributed
       by Paul Chapman, 22-Jun-2011.) $)
    ifbieq2i $p |- if ( ph , C , A ) = if ( ps , C , B ) $=
      ( cif wb wceq ifbi ax-mp ifeq2 eqtri ) AECHZBECHZBEDHZABIOPJFABECKLCDJPQJ
      GBCDEMLN $.
  $}

  ${
    ifbieq2d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    ifbieq2d.2 $e |- ( ph -> A = B ) $.
    $( Equivalence/equality deduction for conditional operators.  (Contributed
       by Paul Chapman, 22-Jun-2011.) $)
    ifbieq2d $p |- ( ph -> if ( ps , C , A ) = if ( ch , C , B ) ) $=
      ( cif ifbid ifeq2d eqtrd ) ABFDICFDICFEIABCFDGJACDEFHKL $.
  $}

  ${
    ifbieq12i.1 $e |- ( ph <-> ps ) $.
    ifbieq12i.2 $e |- A = C $.
    ifbieq12i.3 $e |- B = D $.
    $( Equivalence deduction for conditional operators.  (Contributed by NM,
       18-Mar-2013.) $)
    ifbieq12i $p |- if ( ph , A , B ) = if ( ps , C , D ) $=
      ( cif wceq ifeq1 ax-mp ifbieq2i eqtri ) ACDJZAEDJZBEFJCEKPQKHACEDLMABDFEG
      INO $.
  $}

  ${
    ifbieq12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    ifbieq12d.2 $e |- ( ph -> A = C ) $.
    ifbieq12d.3 $e |- ( ph -> B = D ) $.
    $( Equivalence deduction for conditional operators.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    ifbieq12d $p |- ( ph -> if ( ps , A , B ) = if ( ch , C , D ) ) $=
      ( cif ifbid ifeq12d eqtrd ) ABDEKCDEKCFGKABCDEHLACDFEGIJMN $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y ph $.  $d y ps $.
    nfifd.2 $e |- ( ph -> F/ x ps ) $.
    nfifd.3 $e |- ( ph -> F/_ x A ) $.
    nfifd.4 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of ~ nfif .  (Contributed by NM, 15-Feb-2013.)
       (Revised by Mario Carneiro, 13-Oct-2016.) $)
    nfifd $p |- ( ph -> F/_ x if ( ps , A , B ) ) $=
      ( vy cif cv wcel wa wn wo cab df-if nfv nfcrd nfand nford nfabd nfcxfrd
      nfnd ) ACBDEJIKZDLZBMZUEELZBNZMZOZIPBIDEQAUKCIAIRAUGUJCAUFBCACIDGSFTAUHUI
      CACIEHSABCFUDTUAUBUC $.
  $}

  ${
    $d x y z $.  $d y z A $.  $d y z B $.  $d z ph $.
    nfif.1 $e |- F/ x ph $.
    nfif.2 $e |- F/_ x A $.
    nfif.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a conditional operator.
       (Contributed by NM, 16-Feb-2005.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    nfif $p |- F/_ x if ( ph , A , B ) $=
      ( cif wnfc wtru wnf a1i nfifd trud ) BACDHIJABCDABKJELBCIJFLBDIJGLMN $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                          Power classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the symbol for power class. $)
  $c ~P $.  $( Calligraphic P $)

  $( Extend class notation to include power class.  (The tilde in the Metamath
     token is meant to suggest the calligraphic font of the P.) $)
  cpw $a class ~P A $.

  ${
    $d x A $.  $d y A $.  $d w x $.  $d w y $.  $d w A $.  $d w z $.  $d z x $.
    $d z y $.  $d z A $.
    $( Soundness justification theorem for ~ df-pw .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    pwjust $p |- { x | x C_ A } = { y | y C_ A } $=
      ( vz cv wss cab sseq1 cbvabv eqtri ) AEZCFZAGDEZCFZDGBEZCFZBGLNADKMCHINPD
      BMOCHIJ $.
  $}

  ${
    $d x A $.
    $( Define power class.  Definition 5.10 of [TakeutiZaring] p. 17, but we
       also let it apply to proper classes, i.e. those that are not members of
       ` _V ` .  When applied to a set, this produces its power set.  A power
       set of S is the set of all subsets of S, including the empty set and S
       itself.  For example, if ` A ` is { 3 , 5 , 7 }, then ` ~P A ` is {
       (/) , { 3 } , { 5 } , { 7 } , { 3 , 5 } , { 3 , 7 } , { 5 , 7 } , { 3 ,
       5 , 7 } }.  We will later introduce the Axiom of Power Sets.  Still
       later we will prove that the size of the power set of a finite set is 2
       raised to the power of the size of the set.  (Contributed by NM,
       5-Aug-1993.) $)
    df-pw $a |- ~P A = { x | x C_ A } $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for power class.  (Contributed by NM, 5-Aug-1993.) $)
    pweq $p |- ( A = B -> ~P A = ~P B ) $=
      ( vx wceq cv wss cab cpw sseq2 abbidv df-pw 3eqtr4g ) ABDZCEZAFZCGNBFZCGA
      HBHMOPCABNIJCAKCBKL $.
  $}

  ${
    pweqi.1 $e |- A = B $.
    $( Equality inference for power class.  (Contributed by NM,
       27-Nov-2013.) $)
    pweqi $p |- ~P A = ~P B $=
      ( wceq cpw pweq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    pweqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for power class.  (Contributed by NM,
       27-Nov-2013.) $)
    pweqd $p |- ( ph -> ~P A = ~P B ) $=
      ( wceq cpw pweq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d A x $.  $d B x $.
    ${
      elpw.1 $e |- A e. _V $.
      $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.
         (Contributed by NM, 31-Dec-1993.) $)
      elpw $p |- ( A e. ~P B <-> A C_ B ) $=
        ( vx cv wss cpw sseq1 df-pw elab2 ) DEZBFABFDABGCKABHDBIJ $.
    $}

    $( Setvar variable membership in a power class (common case).  See
       ~ elpw .  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
    selpw $p |- ( x e. ~P A <-> x C_ A ) $=
      ( cv vex elpw ) ACBADE $.

    $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.
       (Contributed by NM, 6-Aug-2000.) $)
    elpwg $p |- ( A e. V -> ( A e. ~P B <-> A C_ B ) ) $=
      ( vx cv cpw wcel wss eleq1 sseq1 vex elpw vtoclbg ) DEZBFZGNBHAOGABHDACNA
      OINABJNBDKLM $.
  $}

  $( Subset relation implied by membership in a power class.  (Contributed by
     NM, 17-Feb-2007.) $)
  elpwi $p |- ( A e. ~P B -> A C_ B ) $=
    ( cpw wcel wss elpwg ibi ) ABCZDABEABHFG $.

  ${
    elpwid.1 $e |- ( ph -> A e. ~P B ) $.
    $( An element of a power class is a subclass.  Deduction form of ~ elpwi .
       (Contributed by David Moews, 1-May-2017.) $)
    elpwid $p |- ( ph -> A C_ B ) $=
      ( cpw wcel wss elpwi syl ) ABCEFBCGDBCHI $.
  $}

  $( If ` A ` belongs to a part of ` C ` then ` A ` belongs to ` C ` .
     (Contributed by FL, 3-Aug-2009.) $)
  elelpwi $p |- ( ( A e. B /\ B e. ~P C ) -> A e. C ) $=
    ( cpw wcel elpwi sseld impcom ) BCDEZABEACEIBCABCFGH $.

  ${
    $d y z A $.  $d x y z $.
    nfpw.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for power class.  (Contributed by NM,
       28-Oct-2003.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    nfpw $p |- F/_ x ~P A $=
      ( vy cpw cv wss cab df-pw nfcv nfss nfab nfcxfr ) ABEDFZBGZDHDBIOADANBANJ
      CKLM $.
  $}

  $( Membership of the original in a power set.  (Contributed by Stefan O'Rear,
     1-Feb-2015.) $)
  pwidg $p |- ( A e. V -> A e. ~P A ) $=
    ( wcel cpw wss ssid elpwg mpbiri ) ABCAADCAAEAFAABGH $.

  ${
    pwid.1 $e |- A e. _V $.
    $( A set is a member of its power class.  Theorem 87 of [Suppes] p. 47.
       (Contributed by NM, 5-Aug-1993.) $)
    pwid $p |- A e. ~P A $=
      ( cvv wcel cpw pwidg ax-mp ) ACDAAEDBACFG $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass relationship for power class.  (Contributed by NM,
       21-Jun-2009.) $)
    pwss $p |- ( ~P A C_ B <-> A. x ( x C_ A -> x e. B ) ) $=
      ( cpw wss cv wcel wi wal dfss2 df-pw abeq2i imbi1i albii bitri ) BDZCEAFZ
      PGZQCGZHZAIQBEZSHZAIAPCJTUBARUASUAAPABKLMNO $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          Unordered and ordered pairs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new symbols needed. $)
  $c <. $.  $( Bracket (the period distinguishes it from 'less than') $)
  $c >. $.  $( Bracket (the period distinguishes it from 'greater than') $)

  $( Extend class notation to include singleton. $)
  csn $a class { A } $.
  $( Extend class notation to include unordered pair. $)
  cpr $a class { A , B } $.
  $( Extend class notation to include unordered triplet. $)
  ctp $a class { A , B , C } $.
  $( Extend class notation to include ordered pair. $)
  cop $a class <. A , B >. $.
  $( Extend class notation to include ordered triple. $)
  cotp $a class <. A , B , C >. $.

  ${
    $d x A $.  $d y A $.  $d z x $.  $d z y $.  $d z A $.
    $( Soundness justification theorem for ~ df-sn .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    snjust $p |- { x | x = A } = { y | y = A } $=
      ( vz cv wceq cab eqeq1 cbvabv eqtri ) AEZCFZAGDEZCFZDGBEZCFZBGLNADKMCHINP
      DBMOCHIJ $.
  $}

  ${
    $d x A $.
    $( Define the singleton of a class.  Definition 7.1 of [Quine] p. 48.  For
       convenience, it is well-defined for proper classes, i.e., those that are
       not elements of ` _V ` , although it is not very meaningful in this
       case.  For an alternate definition see ~ dfsn2 .  (Contributed by NM,
       5-Aug-1993.) $)
    df-sn $a |- { A } = { x | x = A } $.
  $}

  $( Define unordered pair of classes.  Definition 7.1 of [Quine] p. 48.  They
     are unordered, so ` { A , B } = { B , A } ` as proven by ~ prcom .  For a
     more traditional definition, but requiring a dummy variable, see
     ~ dfpr2 .  (Contributed by NM, 5-Aug-1993.) $)
  df-pr $a |- { A , B } = ( { A } u. { B } ) $.

  $( Define unordered triple of classes.  Definition of [Enderton] p. 19.
     (Contributed by NM, 9-Apr-1994.) $)
  df-tp $a |- { A , B , C } = ( { A , B } u. { C } ) $.

  ${
    $d x A $.  $d x B $.
    $( Definition of an ordered pair, equivalent to Kuratowski's definition
       ` { { A } , { A , B } } ` when the arguments are sets.  Since the
       behavior of Kuratowski definition is not very useful for proper classes,
       we define it to be empty in this case (see ~ opprc1 and ~ opprc2 ).  For
       Kuratowski's actual definition when the arguments are sets, see ~ dfop .

       Definition 9.1 of [Quine] p. 58 defines an ordered pair unconditionally
       as ` <. A , B >. = { { A } , { A , B } } ` , which has different
       behavior from our ~ df-op when the arguments are proper classes.
       Ordinarily this difference is not important, since neither definition is
       meaningful in that case.  Our ~ df-op was chosen because it often makes
       proofs shorter by eliminating unnecessary sethood hypotheses.

       There are other ways to define ordered pairs.  The basic requirement is
       that two ordered pairs are equal iff their respective members are
       equal.  In 1914 Norbert Wiener gave the first successful definition
       ` <. A , B >. ` _2 ` = { { { A } , (/) } , { { B } } } ` .  This was
       simplified by Kazimierz Kuratowski in 1921 to our present definition.
       An even simpler definition is ` <. A , B >. ` _3
       ` = { A , { A , B } } ` , but it requires the Axiom of Regularity for
       its justification and is not commonly used.  Finally, an ordered pair of
       real numbers can be represented by a complex number.  (Contributed by
       NM, 28-May-1995.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    df-op $a |- <. A , B >. = { x |
      ( A e. _V /\ B e. _V /\ x e. { { A } , { A , B } } ) } $.
  $}

  $( Define ordered triple of classes.  Definition of ordered triple in [Stoll]
     p. 25.  (Contributed by NM, 3-Apr-2015.) $)
  df-ot $a |- <. A , B , C >. = <. <. A , B >. , C >. $.

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for singletons.  Part of Exercise 4 of [TakeutiZaring]
       p. 15.  (Contributed by NM, 5-Aug-1993.) $)
    sneq $p |- ( A = B -> { A } = { B } ) $=
      ( vx wceq cv cab csn eqeq2 abbidv df-sn 3eqtr4g ) ABDZCEZADZCFMBDZCFAGBGL
      NOCABMHICAJCBJK $.
  $}

  ${
    sneqi.1 $e |- A = B $.
    $( Equality inference for singletons.  (Contributed by NM, 22-Jan-2004.) $)
    sneqi $p |- { A } = { B } $=
      ( wceq csn sneq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    sneqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for singletons.  (Contributed by NM, 22-Jan-2004.) $)
    sneqd $p |- ( ph -> { A } = { B } ) $=
      ( wceq csn sneq syl ) ABCEBFCFEDBCGH $.
  $}

  $( Alternate definition of singleton.  Definition 5.1 of [TakeutiZaring]
     p. 15.  (Contributed by NM, 24-Apr-1994.) $)
  dfsn2 $p |- { A } = { A , A } $=
    ( cpr csn cun df-pr unidm eqtr2i ) AABACZHDHAAEHFG $.

  ${
    $d x A $.
    $( There is only one element in a singleton.  Exercise 2 of [TakeutiZaring]
       p. 15.  (Contributed by NM, 5-Aug-1993.) $)
    elsn $p |- ( x e. { A } <-> x = A ) $=
      ( cv wceq csn df-sn abeq2i ) ACBDABEABFG $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of unordered pair.  Definition 5.1 of
       [TakeutiZaring] p. 15.  (Contributed by NM, 24-Apr-1994.) $)
    dfpr2 $p |- { A , B } = { x | ( x = A \/ x = B ) } $=
      ( cpr csn cun cv wceq cab df-pr wcel elun elsn orbi12i bitri abbi2i eqtri
      wo ) BCDBEZCEZFZAGZBHZUBCHZRZAIBCJUEAUAUBUAKUBSKZUBTKZRUEUBSTLUFUCUGUDABM
      ACMNOPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( A member of an unordered pair of classes is one or the other of them.
       Exercise 1 of [TakeutiZaring] p. 15, generalized.  (Contributed by NM,
       13-Sep-1995.) $)
    elprg $p |- ( A e. V -> ( A e. { B , C } <-> ( A = B \/ A = C ) ) ) $=
      ( vx cv wceq wo cpr eqeq1 orbi12d dfpr2 elab2g ) EFZBGZNCGZHABGZACGZHEABC
      IDNAGOQPRNABJNACJKEBCLM $.
  $}

  ${
    elpr.1 $e |- A e. _V $.
    $( A member of an unordered pair of classes is one or the other of them.
       Exercise 1 of [TakeutiZaring] p. 15.  (Contributed by NM,
       13-Sep-1995.) $)
    elpr $p |- ( A e. { B , C } <-> ( A = B \/ A = C ) ) $=
      ( cvv wcel cpr wceq wo wb elprg ax-mp ) AEFABCGFABHACHIJDABCEKL $.
  $}

  ${
    elpr2.1 $e |- B e. _V $.
    elpr2.2 $e |- C e. _V $.
    $( A member of an unordered pair of classes is one or the other of them.
       Exercise 1 of [TakeutiZaring] p. 15.  (Contributed by NM,
       14-Oct-2005.) $)
    elpr2 $p |- ( A e. { B , C } <-> ( A = B \/ A = C ) ) $=
      ( cpr wcel wceq wo elprg ibi cvv wb eleq1 mpbiri jaoi syl ibir impbii ) A
      BCFZGZABHZACHZIZUAUDABCTJKUDUAUDALGZUAUDMUBUEUCUBUEBLGDABLNOUCUECLGEACLNO
      PABCLJQRS $.
  $}

  $( If a class is an element of a pair, then it is one of the two paired
     elements.  (Contributed by Scott Fenton, 1-Apr-2011.) $)
  elpri $p |- ( A e. { B , C } -> ( A = B \/ A = C ) ) $=
    ( cpr wcel wceq wo elprg ibi ) ABCDZEABFACFGABCJHI $.

  ${
    nelpri.1 $e |- A =/= B $.
    nelpri.2 $e |- A =/= C $.
    $( If an element doesn't match the items in an unordered pair, it is not in
       the unordered pair.  (Contributed by David A. Wheeler, 10-May-2015.) $)
    nelpri $p |- -. A e. { B , C } $=
      ( wne cpr wcel wn wa wceq wo neanior elpri con3i sylbi mp2an ) ABFZACFZAB
      CGHZIZDERSJABKACKLZIUAABACMTUBABCNOPQ $.
  $}

  ${
    $d A x $.  $d B x $.
    $( There is only one element in a singleton.  Exercise 2 of [TakeutiZaring]
       p. 15 (generalized).  (Contributed by NM, 13-Sep-1995.)  (Proof
       shortened by Andrew Salmon, 29-Jun-2011.) $)
    elsncg $p |- ( A e. V -> ( A e. { B } <-> A = B ) ) $=
      ( vx cv wceq csn eqeq1 df-sn elab2g ) DEZBFABFDABGCKABHDBIJ $.
  $}

  ${
    elsnc.1 $e |- A e. _V $.
    $( There is only one element in a singleton.  Exercise 2 of [TakeutiZaring]
       p. 15.  (Contributed by NM, 13-Sep-1995.) $)
    elsnc $p |- ( A e. { B } <-> A = B ) $=
      ( cvv wcel csn wceq wb elsncg ax-mp ) ADEABFEABGHCABDIJ $.
  $}

  $( There is only one element in a singleton.  (Contributed by NM,
     5-Jun-1994.) $)
  elsni $p |- ( A e. { B } -> A = B ) $=
    ( csn wcel wceq elsncg ibi ) ABCZDABEABHFG $.

  $( A set is a member of its singleton.  Part of Theorem 7.6 of [Quine]
     p. 49.  (Contributed by NM, 28-Oct-2003.) $)
  snidg $p |- ( A e. V -> A e. { A } ) $=
    ( wcel csn wceq eqid elsncg mpbiri ) ABCAADCAAEAFAABGH $.

  $( A class is a set iff it is a member of its singleton.  (Contributed by NM,
     5-Apr-2004.) $)
  snidb $p |- ( A e. _V <-> A e. { A } ) $=
    ( cvv wcel csn snidg elex impbii ) ABCAADZCABEAHFG $.

  ${
    snid.1 $e |- A e. _V $.
    $( A set is a member of its singleton.  Part of Theorem 7.6 of [Quine]
       p. 49.  (Contributed by NM, 31-Dec-1993.) $)
    snid $p |- A e. { A } $=
      ( cvv wcel csn snidb mpbi ) ACDAAEDBAFG $.
  $}

  $( A setvar variable is a member of its singleton (common case).
     (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  ssnid $p |- x e. { x } $=
    ( cv vex snid ) ABACD $.

  $( There is only one element in a singleton.  Exercise 2 of [TakeutiZaring]
     p. 15.  This variation requires only that ` B ` , rather than ` A ` , be a
     set.  (Contributed by NM, 28-Oct-2003.) $)
  elsnc2g $p |- ( B e. V -> ( A e. { B } <-> A = B ) ) $=
    ( wcel csn wceq elsni snidg eleq1 syl5ibrcom impbid2 ) BCDZABEZDZABFZABGLNO
    BMDBCHABMIJK $.

  ${
    elsnc2.1 $e |- B e. _V $.
    $( There is only one element in a singleton.  Exercise 2 of [TakeutiZaring]
       p. 15.  This variation requires only that ` B ` , rather than ` A ` , be
       a set.  (Contributed by NM, 12-Jun-1994.) $)
    elsnc2 $p |- ( A e. { B } <-> A = B ) $=
      ( cvv wcel csn wceq wb elsnc2g ax-mp ) BDEABFEABGHCABDIJ $.
  $}

  ${
    $d x y A $.
    $( A singleton has at most one element.  This works whether ` A ` is a
       proper class or not, and in that sense can be seen as encompassing both
       ~ snmg and ~ snprc .  (Contributed by Jim Kingdon, 30-Aug-2018.) $)
    mosn $p |- E* x x e. { A } $=
      ( cv csn wcel wmo wceq moeq elsn mobii mpbir ) ACZBDEZAFLBGZAFABHMNAABIJK
      $.
  $}

  ${
    $d A x $.  $d ps x $.
    $( Substitution expressed in terms of quantification over a singleton.
       (Contributed by Mario Carneiro, 23-Apr-2015.) $)
    ralsns $p |- ( A e. V -> ( A. x e. { A } ph <-> [. A / x ]. ph ) ) $=
      ( wcel wsbc cv wceq wal csn wral sbc6g df-ral imbi1i albii bitri syl6rbbr
      wi elsn ) CDEABCFBGZCHZARZBIZABCJZKZABCDLUETUDEZARZBIUCABUDMUGUBBUFUAABCS
      NOPQ $.

    $( Restricted existential quantification over a singleton.  (Contributed by
       Mario Carneiro, 23-Apr-2015.)  (Revised by NM, 22-Aug-2018.) $)
    rexsns $p |- ( E. x e. { A } ph <-> [. A / x ]. ph ) $=
      ( cv csn wcel wa wex wceq wrex wsbc elsn anbi1i exbii df-rex sbc5 3bitr4i
      ) BDZCEZFZAGZBHRCIZAGZBHABSJABCKUAUCBTUBABCLMNABSOABCPQ $.

    $( Restricted existential quantification over a singleton.  (Contributed by
       Mario Carneiro, 23-Apr-2015.)  Obsolete as of 22-Aug-2018.  Use ~ rexsns
       instead.  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    rexsnsOLD $p |- ( A e. V -> ( E. x e. { A } ph <-> [. A / x ]. ph ) ) $=
      ( wcel wsbc cv wceq wa wex csn wrex wb sbc5 a1i df-rex anbi1i exbii bitri
      elsn syl6rbbr ) CDEZABCFZBGZCHZAIZBJZABCKZLZUCUGMUBABCNOUIUDUHEZAIZBJUGAB
      UHPUKUFBUJUEABCTQRSUA $.

    ralsng.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Substitution expressed in terms of quantification over a singleton.
       (Contributed by NM, 14-Dec-2005.)  (Revised by Mario Carneiro,
       23-Apr-2015.) $)
    ralsng $p |- ( A e. V -> ( A. x e. { A } ph <-> ps ) ) $=
      ( wcel csn wral wsbc ralsns sbcieg bitrd ) DEGACDHIACDJBACDEKABCDEFLM $.

    $( Restricted existential quantification over a singleton.  (Contributed by
       NM, 29-Jan-2012.) $)
    rexsng $p |- ( A e. V -> ( E. x e. { A } ph <-> ps ) ) $=
      ( wcel csn wrex wsbc rexsnsOLD sbcieg bitrd ) DEGACDHIACDJBACDEKABCDEFLM
      $.
  $}

  $( There is a set being the element of a singleton if and only if there is an
     element of the singleton.  (Contributed by Alexander van der Vekens,
     1-Jan-2018.) $)
  exsnrex $p |- ( E. x M = { x } <-> E. x e. M M = { x } ) $=
    ( cv csn wceq wex wcel wa wrex vex snid eleq2 mpbiri pm4.71ri df-rex bitr4i
    exbii ) BACZDZEZAFRBGZTHZAFTABITUBATUATUARSGRAJKBSRLMNQTABOP $.

  ${
    $d A x $.  $d ps x $.
    ralsn.1 $e |- A e. _V $.
    ralsn.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Convert a quantification over a singleton to a substitution.
       (Contributed by NM, 27-Apr-2009.) $)
    ralsn $p |- ( A. x e. { A } ph <-> ps ) $=
      ( cvv wcel csn wral wb ralsng ax-mp ) DGHACDIJBKEABCDGFLM $.

    $( Restricted existential quantification over a singleton.  (Contributed by
       Jeff Madsen, 5-Jan-2011.) $)
    rexsn $p |- ( E. x e. { A } ph <-> ps ) $=
      ( cvv wcel csn wrex wb rexsng ax-mp ) DGHACDIJBKEABCDGFLM $.
  $}

  ${
    $( Members of an unordered triple of classes.  (Contributed by FL,
       2-Feb-2014.)  (Proof shortened by Mario Carneiro, 11-Feb-2015.) $)
    eltpg $p |- ( A e. V -> ( A e. { B , C , D } <->
       ( A = B \/ A = C \/ A = D ) ) ) $=
      ( wcel cpr csn wo wceq ctp w3o elprg elsncg orbi12d cun df-tp eleq2i elun
      bitri df-3or 3bitr4g ) AEFZABCGZFZADHZFZIZABJZACJZIZADJZIABCDKZFZUIUJULLU
      CUEUKUGULABCEMADENOUNAUDUFPZFUHUMUOABCDQRAUDUFSTUIUJULUAUB $.
  $}

  ${
    $( A member of an unordered triple of classes is one of them.  (Contributed
       by Mario Carneiro, 11-Feb-2015.) $)
    eltpi $p |- ( A e. { B , C , D } -> ( A = B \/ A = C \/ A = D ) ) $=
      ( ctp wcel wceq w3o eltpg ibi ) ABCDEZFABGACGADGHABCDKIJ $.
  $}

  ${
    eltp.1 $e |- A e. _V $.
    $( A member of an unordered triple of classes is one of them.  Special case
       of Exercise 1 of [TakeutiZaring] p. 17.  (Contributed by NM,
       8-Apr-1994.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    eltp $p |- ( A e. { B , C , D } <-> ( A = B \/ A = C \/ A = D ) ) $=
      ( cvv wcel ctp wceq w3o wb eltpg ax-mp ) AFGABCDHGABIACIADIJKEABCDFLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Alternate definition of unordered triple of classes.  Special case of
       Definition 5.3 of [TakeutiZaring] p. 16.  (Contributed by NM,
       8-Apr-1994.) $)
    dftp2 $p |- { A , B , C } = { x | ( x = A \/ x = B \/ x = C ) } $=
      ( cv wceq w3o ctp vex eltp abbi2i ) AEZBFLCFLDFGABCDHLBCDAIJK $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    nfpr.1 $e |- F/_ x A $.
    nfpr.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for unordered pairs.  (Contributed by
       NM, 14-Nov-1995.) $)
    nfpr $p |- F/_ x { A , B } $=
      ( vy cpr cv wceq wo cab dfpr2 nfeq2 nfor nfab nfcxfr ) ABCGFHZBIZQCIZJZFK
      FBCLTAFRSAAQBDMAQCEMNOP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ps $.  $d x ch $.  $d x th $.
    ralprg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ralprg.2 $e |- ( x = B -> ( ph <-> ch ) ) $.
    $( Convert a quantification over a pair to a conjunction.  (Contributed by
       NM, 17-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    ralprg $p |- ( ( A e. V /\ B e. W ) ->
      ( A. x e. { A , B } ph <-> ( ps /\ ch ) ) ) $=
      ( cpr wral csn wa wcel cun df-pr raleqi ralunb ralsng bi2anan9 syl5bb
      bitri ) ADEFKZLZADEMZLZADFMZLZNZEGOZFHOZNBCNUEADUFUHPZLUJADUDUMEFQRADUFUH
      SUCUKUGBULUICABDEGITACDFHJTUAUB $.

    $( Convert a quantification over a pair to a disjunction.  (Contributed by
       NM, 17-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    rexprg $p |- ( ( A e. V /\ B e. W ) ->
      ( E. x e. { A , B } ph <-> ( ps \/ ch ) ) ) $=
      ( cpr wrex csn wo wcel wa cun df-pr rexeqi rexsng orbi1d orbi2d sylan9bb
      rexun bitri syl5bb ) ADEFKZLZADEMZLZADFMZLZNZEGOZFHOZPBCNZUHADUIUKQZLUMAD
      UGUQEFRSADUIUKUDUEUNUMBULNUOUPUNUJBULABDEGITUAUOULCBACDFHJTUBUCUF $.

    raltpg.3 $e |- ( x = C -> ( ph <-> th ) ) $.
    $( Convert a quantification over a triple to a conjunction.  (Contributed
       by NM, 17-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    raltpg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
      ( A. x e. { A , B , C } ph <-> ( ps /\ ch /\ th ) ) ) $=
      ( wcel w3a cpr wral csn wa ctp wb ralprg ralsng bi2anan9 3impa cun raleqi
      df-tp ralunb bitri df-3an 3bitr4g ) FIOZGJOZHKOZPAEFGQZRZAEHSZRZTZBCTZDTZ
      AEFGHUAZRZBCDPUNUOUPVAVCUBUNUOTURVBUPUTDABCEFGIJLMUCADEHKNUDUEUFVEAEUQUSU
      GZRVAAEVDVFFGHUIUHAEUQUSUJUKBCDULUM $.

    $( Convert a quantification over a triple to a disjunction.  (Contributed
       by Mario Carneiro, 23-Apr-2015.) $)
    rextpg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
      ( E. x e. { A , B , C } ph <-> ( ps \/ ch \/ th ) ) ) $=
      ( wcel w3a cpr wrex csn wo ctp wb wa rexprg orbi1d rexsng orbi2d sylan9bb
      w3o 3impa cun df-tp rexeqi rexun bitri df-3or 3bitr4g ) FIOZGJOZHKOZPAEFG
      QZRZAEHSZRZTZBCTZDTZAEFGHUAZRZBCDUIURUSUTVEVGUBURUSUCZVEVFVDTUTVGVJVBVFVD
      ABCEFGIJLMUDUEUTVDDVFADEHKNUFUGUHUJVIAEVAVCUKZRVEAEVHVKFGHULUMAEVAVCUNUOB
      CDUPUQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.  $d x ch $.
    ralpr.1 $e |- A e. _V $.
    ralpr.2 $e |- B e. _V $.
    ralpr.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ralpr.4 $e |- ( x = B -> ( ph <-> ch ) ) $.
    $( Convert a quantification over a pair to a conjunction.  (Contributed by
       NM, 3-Jun-2007.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    ralpr $p |- ( A. x e. { A , B } ph <-> ( ps /\ ch ) ) $=
      ( cvv wcel cpr wral wa wb ralprg mp2an ) EKLFKLADEFMNBCOPGHABCDEFKKIJQR
      $.

    $( Convert an existential quantification over a pair to a disjunction.
       (Contributed by NM, 3-Jun-2007.)  (Revised by Mario Carneiro,
       23-Apr-2015.) $)
    rexpr $p |- ( E. x e. { A , B } ph <-> ( ps \/ ch ) ) $=
      ( cvv wcel cpr wrex wo wb rexprg mp2an ) EKLFKLADEFMNBCOPGHABCDEFKKIJQR
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ps $.  $d x ch $.  $d x th $.
    raltp.1 $e |- A e. _V $.
    raltp.2 $e |- B e. _V $.
    raltp.3 $e |- C e. _V $.
    raltp.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    raltp.5 $e |- ( x = B -> ( ph <-> ch ) ) $.
    raltp.6 $e |- ( x = C -> ( ph <-> th ) ) $.
    $( Convert a quantification over a triple to a conjunction.  (Contributed
       by NM, 13-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    raltp $p |- ( A. x e. { A , B , C } ph <-> ( ps /\ ch /\ th ) ) $=
      ( cvv wcel ctp wral w3a wb raltpg mp3an ) FOPGOPHOPAEFGHQRBCDSTIJKABCDEFG
      HOOOLMNUAUB $.

    $( Convert a quantification over a triple to a disjunction.  (Contributed
       by Mario Carneiro, 23-Apr-2015.) $)
    rextp $p |- ( E. x e. { A , B , C } ph <-> ( ps \/ ch \/ th ) ) $=
      ( cvv wcel ctp wrex w3o wb rextpg mp3an ) FOPGOPHOPAEFGHQRBCDSTIJKABCDEFG
      HOOOLMNUAUB $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( TODO - make obsolete; use ralsnsSBC instead - also,
       shorten posn w/ ralsn or ralsng $)
    $( Substitution expressed in terms of quantification over a singleton.
       (Contributed by NM, 14-Dec-2005.)  (Revised by Mario Carneiro,
       23-Apr-2015.) $)
    sbcsng $p |- ( A e. V -> ( [. A / x ]. ph <-> A. x e. { A } ph ) ) $=
      ( wcel csn wral wsbc ralsns bicomd ) CDEABCFGABCHABCDIJ $.
  $}

  ${
    nfsn.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for singletons.  (Contributed by NM,
       14-Nov-1995.) $)
    nfsn $p |- F/_ x { A } $=
      ( csn cpr dfsn2 nfpr nfcxfr ) ABDBBEBFABBCCGH $.
  $}

  ${
    $d A y $.  $d B y $.  $d V y $.  $d x y $.
    $( Distribute proper substitution through the singleton of a class.
       (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbsng $p |- ( A e. V -> [_ A / x ]_ { B } = { [_ A / x ]_ B } ) $=
      ( vy wcel wceq cab csb csn wsbc csbabg sbceq2g abbidv eqtrd df-sn csbeq2i
      cv 3eqtr4g ) BDFZABERZCGZEHZIZUAABCIZGZEHZABCJZIUEJTUDUBABKZEHUGUBAEBDLTU
      IUFEABUACDMNOABUHUCECPQEUEPS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Intersection with the singleton of a non-member is disjoint.
       (Contributed by NM, 22-May-1998.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.)  (Proof shortened by Wolf Lammen, 30-Sep-2014.) $)
    disjsn $p |- ( ( A i^i { B } ) = (/) <-> -. B e. A ) $=
      ( vx csn cin c0 wceq cv wcel wn wi wal wa disj1 con2b imbi1i imnan 3bitri
      elsn albii wex alnex df-clel xchbinxr ) ABDZEFGCHZAIZUFUEIZJKZCLUFBGZUGMZ
      JZCLZBAIZJCAUENUIULCUIUHUGJZKUJUOKULUGUHOUHUJUOCBSPUJUGQRTUMUKCUAUNUKCUBC
      BAUCUDR $.
  $}

  $( Intersection of distinct singletons is disjoint.  (Contributed by NM,
     25-May-1998.) $)
  disjsn2 $p |- ( A =/= B -> ( { A } i^i { B } ) = (/) ) $=
    ( wne csn wcel wn cin c0 wceq elsni eqcomd necon3ai disjsn sylibr ) ABCBADZ
    EZFOBDGHIPABPBABAJKLOBMN $.

  $( The intersection of distinct unordered pairs is disjoint.  (Contributed by
     Alexander van der Vekens, 11-Nov-2017.) $)
  disjpr2 $p |- ( ( ( A =/= C /\ B =/= C ) /\ ( A =/= D /\ B =/= D ) )
                  -> ( { A , B } i^i { C , D } ) = (/) ) $=
    ( wne wa cpr cin csn c0 wceq df-pr ineq1i indir eqtri disjsn2 adantr adantl
    cun syl5eq a1i ineq2d indi jca un00 sylib uneq12d un0 syl6eq eqtrd ) ACEZBC
    EZFZADEZBDEZFZFZABGZCDGZHURCIZDIZSZHZJUQUSVBURUSVBKUQCDLUAUBUQVCURUTHZURVAH
    ZSZJURUTVAUCUQVFJJSJUQVDJVEJUQVDAIZUTHZBIZUTHZSZJVDVGVISZUTHVKURVLUTABLZMVG
    VIUTNOUQVHJKZVJJKZFVKJKUQVNVOUMVNUPUKVNULACPQQUMVOUPULVOUKBCPRQUDVHVJUEUFTU
    QVEVGVAHZVIVAHZSZJVEVLVAHVRURVLVAVMMVGVIVANOUQVPJKZVQJKZFVRJKUQVSVTUPVSUMUN
    VSUOADPQRUPVTUMUOVTUNBDPRRUDVPVQUEUFTUGJUHUITUJ $.

  ${
    $d x A $.
    $( The singleton of a proper class (one that doesn't exist) is the empty
       set.  Theorem 7.2 of [Quine] p. 48.  (Contributed by NM, 5-Aug-1993.) $)
    snprc $p |- ( -. A e. _V <-> { A } = (/) ) $=
      ( vx cv csn wcel wex wn wceq c0 cvv elsn exbii notbii wal eq0 alnex bitri
      isset 3bitr4ri ) BCZADZEZBFZGZTAHZBFZGUAIHZAJEZGUCUFUBUEBBAKLMUGUBGBNUDBU
      AOUBBPQUHUFBARMS $.
  $}

  ${
    $d x y A $.  $d x B $.
    r19.12sn.1 $e |- A e. _V $.
    $( Special case of ~ r19.12 where its converse holds.  (Contributed by NM,
       19-May-2008.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    r19.12sn $p |- ( E. x e. { A } A. y e. B ph
                <-> A. y e. B E. x e. { A } ph ) $=
      ( cvv wcel wral csn wrex wb wsbc sbcralg rexsnsOLD ralbidv 3bitr4d ax-mp
      ) DGHZACEIZBDJZKZABUAKZCEIZLFSTBDMABDMZCEIUBUDABCDEGNTBDGOSUCUECEABDGOPQR
      $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Condition where a restricted class abstraction is a singleton.
       (Contributed by NM, 28-May-2006.) $)
    rabsn $p |- ( B e. A -> { x e. A | x = B } = { B } ) $=
      ( wcel cv wceq wa cab crab csn eleq1 pm5.32ri abbidv df-rab df-sn 3eqtr4g
      baib ) CBDZAEZBDZSCFZGZAHUAAHUAABICJRUBUAAUBRUAUATRSCBKLQMUAABNACOP $.
  $}

  ${
    $d x A $.  $d y ph $.
    rabrsndc.1 $e |- A e. _V $.
    rabrsndc.2 $e |- DECID ph $.
    $( A class abstraction over a decidable proposition restricted to a
       singleton is either the empty set or the singleton itself.  (Contributed
       by Jim Kingdon, 8-Aug-2018.) $)
    rabrsndc $p |- ( M = { x e. { A } | ph } -> ( M = (/) \/ M = { A } ) ) $=
      ( csn crab wceq c0 wo wral wsbc cvv ax-mp wb ralsns orbi12i mpbir eqeq1
      wn wcel pm2.1dc sbcth sbcor mpbi rabeq0 eqcom rabid2 bitri orbi12d mpbiri
      wdc ) DABCGZHZIZDJIZDUNIZKUOJIZUOUNIZKZVAAUAZBUNLZABUNLZKZVEVBBCMZABCMZKZ
      VBAKZBCMZVHCNUBZVJEVIBCNAUMVIFAUCOUDOVBABCUEUFVCVFVDVGVKVCVFPEVBBCNQOVKVD
      VGPEABCNQORSUSVCUTVDABUNUGUTUNUOIVDUOUNUHABUNUIUJRSUPUQUSURUTDUOJTDUOUNTU
      KUL $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y A $.
    $( Another way to express existential uniqueness of a wff: its class
       abstraction is a singleton.  (Contributed by Mario Carneiro,
       14-Nov-2016.) $)
    euabsn2 $p |- ( E! x ph <-> E. y { x | ph } = { y } ) $=
      ( weu cv wceq wb wal wex cab csn df-eu wcel abeq1 elsn bibi2i albii bitri
      exbii bitr4i ) ABDABEZCEZFZGZBHZCIABJUBKZFZCIABCLUGUECUGAUAUFMZGZBHUEABUF
      NUIUDBUHUCABUBOPQRST $.

    $( Another way to express existential uniqueness of a wff: its class
       abstraction is a singleton.  (Contributed by NM, 22-Feb-2004.) $)
    euabsn $p |- ( E! x ph <-> E. x { x | ph } = { x } ) $=
      ( vy weu cab cv csn wceq wex euabsn2 nfab1 nfeq1 sneq eqeq2d cbvex bitr4i
      nfv ) ABDABEZCFZGZHZCIRBFZGZHZBIABCJUDUABCUDCQBRTABKLUBSHUCTRUBSMNOP $.

    $( A way to express restricted existential uniqueness of a wff: its
       restricted class abstraction is a singleton.  (Contributed by NM,
       30-May-2006.)  (Proof shortened by Mario Carneiro, 14-Nov-2016.) $)
    reusn $p |- ( E! x e. A ph <-> E. y { x e. A | ph } = { y } ) $=
      ( cv wcel wa weu cab csn wceq wex wreu euabsn2 df-reu df-rab eqeq1i exbii
      crab 3bitr4i ) BEDFAGZBHUABIZCEJZKZCLABDMABDSZUCKZCLUABCNABDOUFUDCUEUBUCA
      BDPQRT $.

    $( Restricted existential uniqueness determined by a singleton.
       (Contributed by NM, 29-May-2006.) $)
    absneu $p |- ( ( A e. V /\ { x | ph } = { A } ) -> E! x ph ) $=
      ( vy wcel cab csn wceq wa wex weu sneq eqeq2d spcegv imp euabsn2 sylibr
      cv ) CDFZABGZCHZIZJUAESZHZIZEKZABLTUCUGUFUCECDUDCIUEUBUAUDCMNOPABEQR $.

    $( Restricted existential uniqueness determined by a singleton.
       (Contributed by NM, 29-May-2006.)  (Revised by Mario Carneiro,
       23-Dec-2016.) $)
    rabsneu $p |- ( ( A e. V /\ { x e. B | ph } = { A } ) -> E! x e. B ph ) $=
      ( wcel crab csn wceq wa cv weu df-rab eqeq1i absneu sylan2b df-reu sylibr
      wreu cab ) CEFZABDGZCHZIZJBKDFAJZBLZABDSUDUAUEBTZUCIUFUBUGUCABDMNUEBCEOPA
      BDQR $.
  $}

  ${
    $d x A $.
    $( Two ways to express " ` A ` is a singleton."  (Contributed by NM,
       30-Oct-2010.) $)
    eusn $p |- ( E! x x e. A <-> E. x A = { x } ) $=
      ( cv wcel weu cab csn wceq wex euabsn abid2 eqeq1i exbii bitri ) ACZBDZAE
      PAFZOGZHZAIBRHZAIPAJSTAQBRABKLMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    rabsnt.1 $e |- B e. _V $.
    rabsnt.2 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Truth implied by equality of a restricted class abstraction and a
       singleton.  (Contributed by NM, 29-May-2006.)  (Proof shortened by Mario
       Carneiro, 23-Dec-2016.) $)
    rabsnt $p |- ( { x e. A | ph } = { B } -> ps ) $=
      ( crab csn wceq wcel snid id syl5eleqr elrab simprbi syl ) ACDHZEIZJZERKZ
      BTESREFLTMNUAEDKBABCEDGOPQ $.
  $}

  $( Commutative law for unordered pairs.  (Contributed by NM, 5-Aug-1993.) $)
  prcom $p |- { A , B } = { B , A } $=
    ( csn cun cpr uncom df-pr 3eqtr4i ) ACZBCZDJIDABEBAEIJFABGBAGH $.

  $( Equality theorem for unordered pairs.  (Contributed by NM,
     29-Mar-1998.) $)
  preq1 $p |- ( A = B -> { A , C } = { B , C } ) $=
    ( wceq csn cun cpr sneq uneq1d df-pr 3eqtr4g ) ABDZAEZCEZFBEZNFACGBCGLMONAB
    HIACJBCJK $.

  $( Equality theorem for unordered pairs.  (Contributed by NM, 5-Aug-1993.) $)
  preq2 $p |- ( A = B -> { C , A } = { C , B } ) $=
    ( wceq cpr preq1 prcom 3eqtr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Equality theorem for unordered pairs.  (Contributed by NM,
     19-Oct-2012.) $)
  preq12 $p |- ( ( A = C /\ B = D ) -> { A , B } = { C , D } ) $=
    ( wceq cpr preq1 preq2 sylan9eq ) ACEBDEABFCBFCDFACBGBDCHI $.

  ${
    preq1i.1 $e |- A = B $.
    $( Equality inference for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq1i $p |- { A , C } = { B , C } $=
      ( wceq cpr preq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq2i $p |- { C , A } = { C , B } $=
      ( wceq cpr preq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      preq12i.2 $e |- C = D $.
      $( Equality inference for unordered pairs.  (Contributed by NM,
         19-Oct-2012.) $)
      preq12i $p |- { A , C } = { B , D } $=
        ( wceq cpr preq12 mp2an ) ABGCDGACHBDHGEFACBDIJ $.
    $}
  $}

  ${
    preq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq1d $p |- ( ph -> { A , C } = { B , C } ) $=
      ( wceq cpr preq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq2d $p |- ( ph -> { C , A } = { C , B } ) $=
      ( wceq cpr preq2 syl ) ABCFDBGDCGFEBCDHI $.

    preq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq12d $p |- ( ph -> { A , C } = { B , D } ) $=
      ( wceq cpr preq12 syl2anc ) ABCHDEHBDICEIHFGBDCEJK $.
  $}

  $( Equality theorem for unordered triples.  (Contributed by NM,
     13-Sep-2011.) $)
  tpeq1 $p |- ( A = B -> { A , C , D } = { B , C , D } ) $=
    ( wceq cpr csn cun ctp preq1 uneq1d df-tp 3eqtr4g ) ABEZACFZDGZHBCFZPHACDIB
    CDINOQPABCJKACDLBCDLM $.

  $( Equality theorem for unordered triples.  (Contributed by NM,
     13-Sep-2011.) $)
  tpeq2 $p |- ( A = B -> { C , A , D } = { C , B , D } ) $=
    ( wceq cpr csn cun ctp preq2 uneq1d df-tp 3eqtr4g ) ABEZCAFZDGZHCBFZPHCADIC
    BDINOQPABCJKCADLCBDLM $.

  $( Equality theorem for unordered triples.  (Contributed by NM,
     13-Sep-2011.) $)
  tpeq3 $p |- ( A = B -> { C , D , A } = { C , D , B } ) $=
    ( wceq cpr csn cun ctp sneq uneq2d df-tp 3eqtr4g ) ABEZCDFZAGZHOBGZHCDAICDB
    INPQOABJKCDALCDBLM $.

  ${
    tpeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq1d $p |- ( ph -> { A , C , D } = { B , C , D } ) $=
      ( wceq ctp tpeq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.

    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq2d $p |- ( ph -> { C , A , D } = { C , B , D } ) $=
      ( wceq ctp tpeq2 syl ) ABCGDBEHDCEHGFBCDEIJ $.

    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq3d $p |- ( ph -> { C , D , A } = { C , D , B } ) $=
      ( wceq ctp tpeq3 syl ) ABCGDEBHDECHGFBCDEIJ $.

    tpeq123d.2 $e |- ( ph -> C = D ) $.
    tpeq123d.3 $e |- ( ph -> E = F ) $.
    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq123d $p |- ( ph -> { A , C , E } = { B , D , F } ) $=
      ( ctp tpeq1d tpeq2d tpeq3d 3eqtrd ) ABDFKCDFKCEFKCEGKABCDFHLADECFIMAFGCEJ
      NO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Rotation of the elements of an unordered triple.  (Contributed by Alan
       Sare, 24-Oct-2011.) $)
    tprot $p |- { A , B , C } = { B , C , A } $=
      ( vx cv wceq w3o cab ctp 3orrot abbii dftp2 3eqtr4i ) DEZAFZNBFZNCFZGZDHP
      QOGZDHABCIBCAIRSDOPQJKDABCLDBCALM $.
  $}

  $( Swap 1st and 2nd members of an undordered triple.  (Contributed by NM,
     22-May-2015.) $)
  tpcoma $p |- { A , B , C } = { B , A , C } $=
    ( cpr csn cun ctp prcom uneq1i df-tp 3eqtr4i ) ABDZCEZFBADZMFABCGBACGLNMABH
    IABCJBACJK $.

  $( Swap 2nd and 3rd members of an undordered triple.  (Contributed by NM,
     22-May-2015.) $)
  tpcomb $p |- { A , B , C } = { A , C , B } $=
    ( ctp tpcoma tprot 3eqtr4i ) BCADCBADABCDACBDBCAEABCFACBFG $.

  $( Split off the first element of an unordered triple.  (Contributed by Mario
     Carneiro, 5-Jan-2016.) $)
  tpass $p |- { A , B , C } = ( { A } u. { B , C } ) $=
    ( ctp cpr csn cun df-tp tprot uncom 3eqtr4i ) BCADBCEZAFZGABCDMLGBCAHABCIML
    JK $.

  $( Two ways to write an unordered quadruple.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  qdass $p |- ( { A , B } u. { C , D } ) = ( { A , B , C } u. { D } ) $=
    ( cpr csn cun ctp unass df-tp uneq1i df-pr uneq2i 3eqtr4ri ) ABEZCFZGZDFZGO
    PRGZGABCHZRGOCDEZGOPRITQRABCJKUASOCDLMN $.

  $( Two ways to write an unordered quadruple.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  qdassr $p |- ( { A , B } u. { C , D } ) = ( { A } u. { B , C , D } ) $=
    ( csn cun cpr ctp unass df-pr uneq1i tpass uneq2i 3eqtr4i ) AEZBEZFZCDGZFOP
    RFZFABGZRFOBCDHZFOPRITQRABJKUASOBCDLMN $.

  $( Unordered triple ` { A , A , B } ` is just an overlong way to write
     ` { A , B } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm12 $p |- { A , A , B } = { A , B } $=
    ( csn cun cpr ctp dfsn2 uneq1i df-pr df-tp 3eqtr4ri ) ACZBCZDAAEZMDABEAABFL
    NMAGHABIAABJK $.

  $( Unordered triple ` { A , B , A } ` is just an overlong way to write
     ` { A , B } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm13 $p |- { A , B , A } = { A , B } $=
    ( ctp cpr tprot tpidm12 eqtr3i ) AABCABACABDAABEABFG $.

  $( Unordered triple ` { A , B , B } ` is just an overlong way to write
     ` { A , B } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm23 $p |- { A , B , B } = { A , B } $=
    ( ctp cpr tprot tpidm12 prcom 3eqtri ) ABBCBBACBADABDABBEBAFBAGH $.

  $( Unordered triple ` { A , A , A } ` is just an overlong way to write
     ` { A } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm $p |- { A , A , A } = { A } $=
    ( ctp cpr csn tpidm12 dfsn2 eqtr4i ) AAABAACADAAEAFG $.

  $( An unordered triple is an unordered pair if one of its elements is
     identical with another element.  (Contributed by Alexander van der Vekens,
     6-Oct-2017.) $)
  tppreq3 $p |- ( B = C -> { A , B , C } = { A , B } ) $=
    ( wceq ctp cpr tpeq3 eqcoms tpidm23 syl6eq ) BCDABCEZABBEZABFKLDCBCBABGHABI
    J $.

  $( An unordered pair contains its first member.  Part of Theorem 7.6 of
     [Quine] p. 49.  (Contributed by Stefan Allan, 8-Nov-2008.) $)
  prid1g $p |- ( A e. V -> A e. { A , B } ) $=
    ( wcel cpr wceq wo eqid orci elprg mpbiri ) ACDAABEDAAFZABFZGLMAHIAABCJK $.

  $( An unordered pair contains its second member.  Part of Theorem 7.6 of
     [Quine] p. 49.  (Contributed by Stefan Allan, 8-Nov-2008.) $)
  prid2g $p |- ( B e. V -> B e. { A , B } ) $=
    ( wcel cpr prid1g prcom syl6eleq ) BCDBBAEABEBACFBAGH $.

  ${
    prid1.1 $e |- A e. _V $.
    $( An unordered pair contains its first member.  Part of Theorem 7.6 of
       [Quine] p. 49.  (Contributed by NM, 5-Aug-1993.) $)
    prid1 $p |- A e. { A , B } $=
      ( cvv wcel cpr prid1g ax-mp ) ADEAABFECABDGH $.
  $}

  ${
    prid2.1 $e |- B e. _V $.
    $( An unordered pair contains its second member.  Part of Theorem 7.6 of
       [Quine] p. 49.  (Contributed by NM, 5-Aug-1993.) $)
    prid2 $p |- B e. { A , B } $=
      ( cpr prid1 prcom eleqtri ) BBADABDBACEBAFG $.
  $}

  $( A proper class vanishes in an unordered pair.  (Contributed by NM,
     5-Aug-1993.) $)
  prprc1 $p |- ( -. A e. _V -> { A , B } = { B } ) $=
    ( cvv wcel wn csn c0 wceq cpr snprc cun uneq1 df-pr uncom un0 3eqtr4g sylbi
    eqtr2i ) ACDEAFZGHZABIZBFZHAJTSUBKGUBKZUAUBSGUBLABMUCUBGKUBGUBNUBORPQ $.

  $( A proper class vanishes in an unordered pair.  (Contributed by NM,
     22-Mar-2006.) $)
  prprc2 $p |- ( -. B e. _V -> { A , B } = { A } ) $=
    ( cvv wcel wn cpr csn prcom prprc1 syl5eq ) BCDEABFBAFAGABHBAIJ $.

  $( An unordered pair containing two proper classes is the empty set.
     (Contributed by NM, 22-Mar-2006.) $)
  prprc $p |- ( ( -. A e. _V /\ -. B e. _V ) -> { A , B } = (/) ) $=
    ( cvv wcel wn cpr csn c0 prprc1 wceq snprc biimpi sylan9eq ) ACDEBCDEZABFBG
    ZHABINOHJBKLM $.

  ${
    tpid1.1 $e |- A e. _V $.
    $( One of the three elements of an unordered triple.  (Contributed by NM,
       7-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    tpid1 $p |- A e. { A , B , C } $=
      ( ctp wcel wceq w3o eqid 3mix1i eltp mpbir ) AABCEFAAGZABGZACGZHMNOAIJAAB
      CDKL $.
  $}

  ${
    tpid2.1 $e |- B e. _V $.
    $( One of the three elements of an unordered triple.  (Contributed by NM,
       7-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    tpid2 $p |- B e. { A , B , C } $=
      ( ctp wcel wceq w3o eqid 3mix2i eltp mpbir ) BABCEFBAGZBBGZBCGZHNMOBIJBAB
      CDKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x ps $.
    $( Closed theorem form of ~ tpid3 .  (Contributed by Alan Sare,
       24-Oct-2011.) $)
    tpid3g $p |- ( A e. B -> A e. { C , D , A } ) $=
      ( vx wcel cv wceq wex ctp elisset w3o cab wi 3mix3 a1i abid syl6ibr dftp2
      eleq2i eleq1 mpbidi exlimdv mpd ) ABFZEGZAHZEIACDAJZFZEABKUEUGUIEUGUFUHFZ
      UIUEUEUGUFUFCHZUFDHZUGLZEMZFZUJUEUGUMUOUGUMNUEUGUKULOPUMEQRUHUNUFECDASTRU
      FAUHUAUBUCUD $.
  $}

  ${
    tpid3.1 $e |- C e. _V $.
    $( One of the three elements of an unordered triple.  (Contributed by NM,
       7-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    tpid3 $p |- C e. { A , B , C } $=
      ( ctp wcel wceq w3o eqid 3mix3i eltp mpbir ) CABCEFCAGZCBGZCCGZHOMNCIJCAB
      CDKL $.
  $}

  $( The singleton of a set is not empty.  (Contributed by NM, 14-Dec-2008.) $)
  snnzg $p |- ( A e. V -> { A } =/= (/) ) $=
    ( wcel csn c0 wne snidg ne0i syl ) ABCAADZCJEFABGJAHI $.

  ${
    $d x A $.
    $( The singleton of a set is inhabited.  (Contributed by Jim Kingdon,
       11-Aug-2018.) $)
    snmg $p |- ( A e. V -> E. x x e. { A } ) $=
      ( wcel csn cv wex snidg elex2 syl ) BCDBBEZDAFKDAGBCHABKIJ $.
  $}

  ${
    $d x A $.
    snnz.1 $e |- A e. _V $.
    $( The singleton of a set is not empty.  (Contributed by NM,
       10-Apr-1994.) $)
    snnz $p |- { A } =/= (/) $=
      ( cvv wcel csn c0 wne snnzg ax-mp ) ACDAEFGBACHI $.

    $( The singleton of a set is inhabited.  (Contributed by Jim Kingdon,
       11-Aug-2018.) $)
    snm $p |- E. x x e. { A } $=
      ( cvv wcel cv csn wex snmg ax-mp ) BDEAFBGEAHCABDIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A pair containing a set is inhabited.  (Contributed by Jim Kingdon,
       21-Sep-2018.) $)
    prmg $p |- ( A e. V -> E. x x e. { A , B } ) $=
      ( wcel cv csn wex cpr snmg wceq wo orc elsn vex elpr 3imtr4i eximi syl )
      BDEAFZBGEZAHTBCIEZAHABDJUAUBATBKZUCTCKZLUAUBUCUDMABNTBCAOPQRS $.
  $}

  ${
    $d x A $.  $d x B $.
    prnz.1 $e |- A e. _V $.
    $( A pair containing a set is not empty.  (Contributed by NM,
       9-Apr-1994.) $)
    prnz $p |- { A , B } =/= (/) $=
      ( cpr wcel c0 wne prid1 ne0i ax-mp ) AABDZEKFGABCHKAIJ $.

    $( A pair containing a set is inhabited.  (Contributed by Jim Kingdon,
       21-Sep-2018.) $)
    prm $p |- E. x x e. { A , B } $=
      ( cvv wcel cv cpr wex prmg ax-mp ) BEFAGBCHFAIDABCEJK $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A pair containing a set is not empty.  (Contributed by FL,
       19-Sep-2011.) $)
    prnzg $p |- ( A e. V -> { A , B } =/= (/) ) $=
      ( vx cv cpr c0 wne wceq preq1 neeq1d vex prnz vtoclg ) DEZBFZGHABFZGHDACO
      AIPQGOABJKOBDLMN $.
  $}

  ${
    tpnz.1 $e |- A e. _V $.
    $( A triplet containing a set is not empty.  (Contributed by NM,
       10-Apr-1994.) $)
    tpnz $p |- { A , B , C } =/= (/) $=
      ( ctp wcel c0 wne tpid1 ne0i ax-mp ) AABCEZFLGHABCDILAJK $.
  $}

  ${
    $d A x $.  $d B x $.
    snss.1 $e |- A e. _V $.
    $( The singleton of an element of a class is a subset of the class.
       Theorem 7.4 of [Quine] p. 49.  (Contributed by NM, 5-Aug-1993.) $)
    snss $p |- ( A e. B <-> { A } C_ B ) $=
      ( vx cv csn wcel wi wal wceq wss elsn imbi1i albii dfss2 clel2 3bitr4ri )
      DEZAFZGZRBGZHZDIRAJZUAHZDISBKABGUBUDDTUCUADALMNDSBODABCPQ $.
  $}

  $( Membership in a set with an element removed.  (Contributed by NM,
     10-Oct-2007.) $)
  eldifsn $p |- ( A e. ( B \ { C } ) <-> ( A e. B /\ A =/= C ) ) $=
    ( csn cdif wcel wn wa wne eldif elsncg necon3bbid pm5.32i bitri ) ABCDZEFAB
    FZAOFZGZHPACIZHABOJPRSPQACACBKLMN $.

  $( Membership in a set with an element removed.  (Contributed by NM,
     10-Mar-2015.) $)
  eldifsni $p |- ( A e. ( B \ { C } ) -> A =/= C ) $=
    ( csn cdif wcel wne eldifsn simprbi ) ABCDEFABFACGABCHI $.

  $( ` A ` is not in ` ( B \ { A } ) ` .  (Contributed by David Moews,
     1-May-2017.) $)
  neldifsn $p |- -. A e. ( B \ { A } ) $=
    ( csn cdif wcel wne neirr eldifsni mto ) ABACDEAAFAGABAHI $.

  $( ` A ` is not in ` ( B \ { A } ) ` .  Deduction form.  (Contributed by
     David Moews, 1-May-2017.) $)
  neldifsnd $p |- ( ph -> -. A e. ( B \ { A } ) ) $=
    ( csn cdif wcel wn neldifsn a1i ) BCBDEFGABCHI $.

  $( Restricted existential quantification over a set with an element removed.
     (Contributed by NM, 4-Feb-2015.) $)
  rexdifsn $p |- ( E. x e. ( A \ { B } ) ph
      <-> E. x e. A ( x =/= B /\ ph ) ) $=
    ( cv wne wa csn cdif wcel eldifsn anbi1i anass bitri rexbii2 ) ABEZDFZAGZBC
    DHIZCPSJZAGPCJZQGZAGUARGTUBAPCDKLUAQAMNO $.

  ${
    $d A x $.  $d B x $.
    $( The singleton of an element of a class is a subset of the class.
       Theorem 7.4 of [Quine] p. 49.  (Contributed by NM, 22-Jul-2001.) $)
    snssg $p |- ( A e. V -> ( A e. B <-> { A } C_ B ) ) $=
      ( vx cv wcel csn wss eleq1 wceq sneq sseq1d vex snss vtoclbg ) DEZBFPGZBH
      ABFAGZBHDACPABIPAJQRBPAKLPBDMNO $.

    $( An element not in a set can be removed without affecting the set.
       (Contributed by NM, 16-Mar-2006.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    difsn $p |- ( -. A e. B -> ( B \ { A } ) = B ) $=
      ( vx wcel wn csn cdif cv wne wa eldifsn simpl wceq eleq1 biimpcd necon3bd
      com12 ancld impbid2 syl5bb eqrdv ) ABDZEZCBAFGZBCHZUDDUEBDZUEAIZJZUCUFUEB
      AKUCUHUFUFUGLUCUFUGUFUCUGUFUBUEAUEAMUFUBUEABNOPQRSTUA $.

    $( Removal of a singleton from an unordered pair.  (Contributed by NM,
       16-Mar-2006.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    difprsnss $p |- ( { A , B } \ { A } ) C_ { B } $=
      ( vx cpr csn cdif cv wcel wn wa wceq wo elpr elsn notbii biimparc syl2anb
      vex biorf eldif 3imtr4i ssriv ) CABDZAEZFZBEZCGZUCHZUGUDHZIZJUGBKZUGUEHUG
      UFHUHUGAKZUKLZULIZUKUJUGABCRMUIULCANOUNUKUMULUKSPQUGUCUDTCBNUAUB $.
  $}

  $( Removal of a singleton from an unordered pair.  (Contributed by Thierry
     Arnoux, 4-Feb-2017.) $)
  difprsn1 $p |- ( A =/= B -> ( { A , B } \ { A } ) = { B } ) $=
    ( wne cpr csn cdif wceq necom cin c0 disjsn2 disj3 sylib cun df-pr equncomi
    difeq1i difun2 eqtri syl6reqr sylbir ) ABCBACZABDZAEZFZBEZGBAHUBUFUFUDFZUEU
    BUFUDIJGUFUGGBAKUFUDLMUEUFUDNZUDFUGUCUHUDUCUDUFABOPQUFUDRSTUA $.

  $( Removal of a singleton from an unordered pair.  (Contributed by Alexander
     van der Vekens, 5-Oct-2017.) $)
  difprsn2 $p |- ( A =/= B -> ( { A , B } \ { B } ) = { A } ) $=
    ( wne cpr csn cdif prcom difeq1i wceq necom difprsn1 sylbi syl5eq ) ABCZABD
    ZBEZFBADZPFZAEZOQPABGHNBACRSIABJBAKLM $.

  $( Removal of a singleton from an unordered triple.  (Contributed by
     Alexander van der Vekens, 5-Oct-2017.) $)
  diftpsn3 $p |- ( ( A =/= C /\ B =/= C )
                    -> ( { A , B , C } \ { C } ) = { A , B } ) $=
    ( wne wa ctp csn cdif cpr cun a1i c0 cin necom disjsn2 sylbi uneq12d syl6eq
    wceq 3eqtrd df-tp difeq1d df-pr ineq1d incom indi eqtri adantr adantl unidm
    difundir disj3 sylib eqcomd difid un0 ) ACDZBCDZEZABCFZCGZHABIZVAJZVAHZVBVA
    HZVAVAHZJZVBUSUTVCVAUTVCSUSABCUAKUBVDVGSUSVBVAVAUKKUSVGVBLJVBUSVEVBVFLUSVBV
    EUSVBVAMZLSVBVESUSVHAGZBGZJZVAMZVAVIMZVAVJMZJZLUSVBVKVAVBVKSUSABUCKUDVLVOSU
    SVLVAVKMVOVKVAUEVAVIVJUFUGKUSVOLLJLUSVMLVNLUQVMLSZURUQCADVPACNCAOPUHURVNLSZ
    UQURCBDVQBCNCBOPUIQLUJRTVBVAULUMUNVFLSUSVAUOKQVBUPRT $.

  $( ` ( B \ { A } ) ` equals ` B ` if and only if ` A ` is not a member of
     ` B ` .  Generalization of ~ difsn .  (Contributed by David Moews,
     1-May-2017.) $)
  difsnb $p |- ( -. A e. B <-> ( B \ { A } ) = B ) $=
    ( wcel wn csn cdif wceq difsn neldifsnd nelne1 mpdan necomd necon2bi impbii
    wne ) ABCZDBAEFZBGABHPQBPBQPAQCDBQOPABIABQJKLMN $.

  $( ` ( B \ { A } ) ` is a proper subclass of ` B ` if ` A ` is a member of
     ` B ` .  In classical logic, the converse holds as well.  (Contributed by
     Jim Kingdon, 9-Aug-2018.) $)
  difsnpssim $p |- ( A e. B -> ( B \ { A } ) C. B ) $=
    ( wcel wn csn cdif wpss notnot1 wne wss wa difss biantrur difsnb necon3bbii
    df-pss 3bitr4i sylib ) ABCZSDZDZBAEZFZBGZSHUCBIZUCBJZUEKUAUDUFUEBUBLMTUCBAB
    NOUCBPQR $.

  $( The singleton of an element of a class is a subset of the class.
     (Contributed by NM, 6-Jun-1994.) $)
  snssi $p |- ( A e. B -> { A } C_ B ) $=
    ( wcel csn wss snssg ibi ) ABCADBEABBFG $.

  ${
    snssd.1 $e |- ( ph -> A e. B ) $.
    $( The singleton of an element of a class is a subset of the class
       (deduction rule).  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    snssd $p |- ( ph -> { A } C_ B ) $=
      ( wcel csn wss wb snssg syl mpbid ) ABCEZBFCGZDALLMHDBCCIJK $.
  $}

  $( If we remove a single element from a class then put it back in, we end up
     with a subset of the original class.  In classical logic, we could replace
     subset with equality.  (Contributed by Jim Kingdon, 10-Aug-2018.) $)
  difsnss $p |- ( B e. A -> ( ( A \ { B } ) u. { B } ) C_ A ) $=
    ( wcel csn cdif cun uncom wss snssi undifss sylib syl5eqss ) BACZABDZEZNFNO
    FZAONGMNAHPAHBAINAJKL $.

  $( Note that ` x ` is a dummy variable in the proof below. $)
  $( Compute the power set of the empty set.  Theorem 89 of [Suppes] p. 47.
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
     29-Jun-2011.) $)
  pw0 $p |- ~P (/) = { (/) } $=
    ( vx cv c0 wss cab wceq cpw csn ss0b abbii df-pw df-sn 3eqtr4i ) ABZCDZAENC
    FZAECGCHOPANIJACKACLM $.

  $( A singleton is a subset of an unordered pair containing its member.
     (Contributed by NM, 27-Aug-2004.) $)
  snsspr1 $p |- { A } C_ { A , B } $=
    ( csn cun cpr ssun1 df-pr sseqtr4i ) ACZIBCZDABEIJFABGH $.

  $( A singleton is a subset of an unordered pair containing its member.
     (Contributed by NM, 2-May-2009.) $)
  snsspr2 $p |- { B } C_ { A , B } $=
    ( csn cun cpr ssun2 df-pr sseqtr4i ) BCZACZIDABEIJFABGH $.

  $( A singleton is a subset of an unordered triple containing its member.
     (Contributed by NM, 9-Oct-2013.) $)
  snsstp1 $p |- { A } C_ { A , B , C } $=
    ( csn cpr cun ctp snsspr1 ssun1 sstri df-tp sseqtr4i ) ADZABEZCDZFZABCGMNPA
    BHNOIJABCKL $.

  $( A singleton is a subset of an unordered triple containing its member.
     (Contributed by NM, 9-Oct-2013.) $)
  snsstp2 $p |- { B } C_ { A , B , C } $=
    ( csn cpr cun ctp snsspr2 ssun1 sstri df-tp sseqtr4i ) BDZABEZCDZFZABCGMNPA
    BHNOIJABCKL $.

  $( A singleton is a subset of an unordered triple containing its member.
     (Contributed by NM, 9-Oct-2013.) $)
  snsstp3 $p |- { C } C_ { A , B , C } $=
    ( csn cpr cun ctp ssun2 df-tp sseqtr4i ) CDZABEZKFABCGKLHABCIJ $.

  $( A pair is a subset of an unordered triple containing its members.
     (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  prsstp12 $p |- { A , B } C_ { A , B , C } $=
    ( cpr csn cun ctp ssun1 df-tp sseqtr4i ) ABDZKCEZFABCGKLHABCIJ $.

  $( A pair is a subset of an unordered triple containing its members.
     (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  prsstp13 $p |- { A , C } C_ { A , B , C } $=
    ( cpr ctp prsstp12 tpcomb sseqtr4i ) ACDACBEABCEACBFABCGH $.

  $( A pair is a subset of an unordered triple containing its members.
     (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  prsstp23 $p |- { B , C } C_ { A , B , C } $=
    ( cpr ctp prsstp12 tprot sseqtr4i ) BCDBCAEABCEBCAFABCGH $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    prss.1 $e |- A e. _V $.
    prss.2 $e |- B e. _V $.
    $( A pair of elements of a class is a subset of the class.  Theorem 7.5 of
       [Quine] p. 49.  (Contributed by NM, 30-May-1994.)  (Proof shortened by
       Andrew Salmon, 29-Jun-2011.) $)
    prss $p |- ( ( A e. C /\ B e. C ) <-> { A , B } C_ C ) $=
      ( csn wss wa cun wcel cpr unss snss anbi12i df-pr sseq1i 3bitr4i ) AFZCGZ
      BFZCGZHRTIZCGACJZBCJZHABKZCGRTCLUCSUDUAACDMBCEMNUEUBCABOPQ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.
    $( A pair of elements of a class is a subset of the class.  Theorem 7.5 of
       [Quine] p. 49.  (Contributed by NM, 22-Mar-2006.)  (Proof shortened by
       Andrew Salmon, 29-Jun-2011.) $)
    prssg $p |- ( ( A e. V /\ B e. W )
                -> ( ( A e. C /\ B e. C ) <-> { A , B } C_ C ) ) $=
      ( wcel wa csn wss cpr snssg bi2anan9 cun unss df-pr sseq1i bitr4i syl6bb
      ) ADFZBEFZGACFZBCFZGAHZCIZBHZCIZGZABJZCIZSUAUDTUBUFACDKBCEKLUGUCUEMZCIUIU
      CUECNUHUJCABOPQR $.
  $}

  $( A pair of elements of a class is a subset of the class.  (Contributed by
     NM, 16-Jan-2015.) $)
  prssi $p |- ( ( A e. C /\ B e. C ) -> { A , B } C_ C ) $=
    ( wcel wa cpr wss prssg ibi ) ACDBCDEABFCGABCCCHI $.

  $( An unordered pair belongs to the power class of a class iff each member
     belongs to the class.  (Contributed by Thierry Arnoux, 3-Oct-2016.)
     (Revised by NM, 18-Jan-2018.) $)
  prsspwg $p |- ( ( A e. V /\ B e. W ) -> ( { A , B } C_ ~P C
      <-> ( A C_ C /\ B C_ C ) ) ) $=
    ( wcel wa cpw cpr wss prssg elpwg bi2anan9 bitr3d ) ADFZBEFZGACHZFZBQFZGABI
    QJACJZBCJZGABQDEKORTPSUAACDLBCELMN $.

  ${
    $d x A $.  $d x B $.
    $( Empty set and the singleton itself are subsets of a singleton.
       (Contributed by Jim Kingdon, 10-Aug-2018.) $)
    sssnr $p |- ( ( A = (/) \/ A = { B } ) -> A C_ { B } ) $=
      ( c0 wceq csn wss 0ss sseq1 mpbiri eqimss jaoi ) ACDZABEZFZAMDLNCMFMGACMH
      IAMJK $.

    $( The inhabited subset of a singleton.  (Contributed by Jim Kingdon,
       10-Aug-2018.) $)
    sssnm $p |- ( E. x x e. A -> ( A C_ { B } <-> A = { B } ) ) $=
      ( cv wcel wex csn wss wceq wa wb ssel elsni syl6 eleq1 ibd exlimdv anc2li
      snssi eqss syl6ibr com12 eqimss impbid1 ) ADZBEZAFZBCGZHZBUHIZUIUGUJUIUGU
      IUHBHZJUJUIUGUKUIUGCBEZUKUIUFULAUIUFULUIUFUECIZUFULKUIUFUEUHEUMBUHUELUECM
      NUECBONPQCBSNRBUHTUAUBBUHUCUD $.

    $( Two ways to express that an inhabited set equals a singleton.
       (Contributed by Jim Kingdon, 11-Aug-2018.) $)
    eqsnm $p |- ( E. x x e. A -> ( A = { B } <-> A. x e. A x = B ) ) $=
      ( cv wceq wral csn wss wcel wex dfss3 elsn ralbii bitri sssnm syl5rbbr )
      ADZCEZABFZBCGZHZQBIAJBTEUAQTIZABFSABTKUBRABACLMNABCOP $.
  $}

  ${
    $( The subsets of a pair.  (Contributed by Jim Kingdon, 11-Aug-2018.) $)
    ssprr $p |- (
        ( ( A = (/) \/ A = { B } ) \/ ( A = { C } \/ A = { B , C } ) )
        -> A C_ { B , C } ) $=
      ( c0 wceq csn wo cpr wss 0ss sseq1 mpbiri snsspr1 jaoi snsspr2 eqimss ) A
      DEZABFZEZGABCHZIZACFZEZATEZGQUASQUADTITJADTKLSUARTIBCMARTKLNUCUAUDUCUAUBT
      IBCOAUBTKLATPNN $.

    $( The subsets of a triple.  (Contributed by Jim Kingdon, 11-Aug-2018.) $)
    sstpr $p |- (
        ( ( ( A = (/) \/ A = { B } ) \/ ( A = { C } \/ A = { B , C } ) ) \/
          ( ( A = { D } \/ A = { B , D } ) \/
            ( A = { C , D } \/ A = { B , C , D } ) ) )
        -> A C_ { B , C , D } ) $=
      ( c0 wceq csn wo cpr ctp wss ssprr prsstp12 syl6ss snsstp3 sseq1 prsstp13
      mpbiri jaoi prsstp23 eqimss ) AEFABGFHACGFABCIZFHHZABCDJZKZADGZFZABDIZFZH
      ZACDIZFZAUDFZHZHUCAUBUDABCLBCDMNUJUEUNUGUEUIUGUEUFUDKBCDOAUFUDPRUIUEUHUDK
      BCDQAUHUDPRSULUEUMULUEUKUDKBCDTAUKUDPRAUDUASSS $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.  $d D x $.
    tpss.1 $e |- A e. _V $.
    tpss.2 $e |- B e. _V $.
    tpss.3 $e |- C e. _V $.
    $( A triplet of elements of a class is a subset of the class.  (Contributed
       by NM, 9-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    tpss $p |- ( ( A e. D /\ B e. D /\ C e. D ) <-> { A , B , C } C_ D ) $=
      ( cpr wss csn wa cun wcel w3a ctp unss df-3an prss snss anbi12i 3bitr4i
      bitri df-tp sseq1i ) ABHZDIZCJZDIZKZUEUGLZDIADMZBDMZCDMZNZABCOZDIUEUGDPUN
      UKULKZUMKUIUKULUMQUPUFUMUHABDEFRCDGSTUBUOUJDABCUCUDUA $.
  $}

  $( A triple of elements of a class is a subset of the class.  (Contributed by
     Alexander van der Vekens, 1-Feb-2018.) $)
  tpssi $p |- ( ( A e. D /\ B e. D /\ C e. D ) -> { A , B , C } C_ D ) $=
    ( w3a ctp cpr csn cun df-tp wss prssi 3adant3 snssi 3ad2ant3 unssd syl5eqss
    wcel ) ADRZBDRZCDRZEZABCFABGZCHZIDABCJUBUCUDDSTUCDKUAABDLMUASUDDKTCDNOPQ $.

  ${
    $d x A $.  $d x B $.
    sneqr.1 $e |- A e. _V $.
    $( If the singletons of two sets are equal, the two sets are equal.  Part
       of Exercise 4 of [TakeutiZaring] p. 15.  (Contributed by NM,
       27-Aug-1993.) $)
    sneqr $p |- ( { A } = { B } -> A = B ) $=
      ( csn wceq wcel snid eleq2 mpbii elsnc sylib ) ADZBDZEZAMFZABENALFOACGLMA
      HIABCJK $.

    $( If a singleton is a subset of another, their members are equal.
       (Contributed by NM, 28-May-2006.) $)
    snsssn $p |- ( { A } C_ { B } -> A = B ) $=
      ( vx csn wss cv wceq wi wal wcel dfss2 elsn imbi12i albii bitri cvv ax-mp
      sbceqal sylbi ) AEZBEZFZDGZAHZUDBHZIZDJZABHZUCUDUAKZUDUBKZIZDJUHDUAUBLULU
      GDUJUEUKUFDAMDBMNOPAQKUHUIICDABQSRT $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Closed form of ~ sneqr .  (Contributed by Scott Fenton, 1-Apr-2011.) $)
    sneqrg $p |- ( A e. V -> ( { A } = { B } -> A = B ) ) $=
      ( vx cv csn wceq wi sneq eqeq1d eqeq1 imbi12d vex sneqr vtoclg ) DEZFZBFZ
      GZPBGZHAFZRGZABGZHDACPAGZSUBTUCUDQUARPAIJPABKLPBDMNO $.

  $}

  $( Two singletons of sets are equal iff their elements are equal.
     (Contributed by Scott Fenton, 16-Apr-2012.) $)
  sneqbg $p |- ( A e. V -> ( { A } = { B } <-> A = B ) ) $=
    ( wcel csn wceq sneqrg sneq impbid1 ) ACDAEBEFABFABCGABHI $.

  ${
    $d x A $.
    $( The singleton of a class is a subset of its power class.  (Contributed
       by NM, 5-Aug-1993.) $)
    snsspw $p |- { A } C_ ~P A $=
      ( vx csn cpw cv wceq wss wcel eqimss elsn df-pw abeq2i 3imtr4i ssriv ) BA
      CZADZBEZAFQAGZQOHQPHQAIBAJRBPBAKLMN $.
  $}


  ${
    $d x A $.  $d x B $.  $d x C $.
    prsspw.1 $e |- A e. _V $.
    prsspw.2 $e |- B e. _V $.
    $( An unordered pair belongs to the power class of a class iff each member
       belongs to the class.  (Contributed by NM, 10-Dec-2003.)  (Proof
       shortened by Andrew Salmon, 26-Jun-2011.) $)
    prsspw $p |- ( { A , B } C_ ~P C <-> ( A C_ C /\ B C_ C ) ) $=
      ( cpr cpw wss wcel wa prss elpw anbi12i bitr3i ) ABFCGZHAOIZBOIZJACHZBCHZ
      JABODEKPRQSACDLBCELMN $.
  $}

  $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
     the same second element, the first elements are equal.  Closed form of
     ~ preqr1 .  (Contributed by Jim Kingdon, 21-Sep-2018.) $)
  preqr1g $p |- ( ( A e. _V /\ B e. _V ) ->
      ( { A , C } = { B , C } -> A = B ) ) $=
    ( cvv wcel wa cpr wceq wo wi prid1g eleq2 syl5ibcom elprg sylibd adantr imp
    syl5ibrcom adantl eqcom eqeq2 oplem1 ex ) ADEZBDEZFZACGZBCGZHZABHZUFUIFUJAC
    HZBAHZBCHZUFUIUJUKIZUDUIUNJUEUDUIAUHEZUNUDAUGEUIUOACDKUGUHALMABCDNOPQUFUIUL
    UMIZUEUIUPJUDUEUIBUGEZUPUEUQUIBUHEBCDKUGUHBLRBACDNOSQABTACBUAUBUC $.

  $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
     the same second element, the second elements are equal.  Closed form of
     ~ preqr2 .  (Contributed by Jim Kingdon, 21-Sep-2018.) $)
  preqr2g $p |- ( ( A e. _V /\ B e. _V ) ->
      ( { C , A } = { C , B } -> A = B ) ) $=
    ( cpr wceq cvv wcel wa prcom eqeq12i preqr1g syl5bi ) CADZCBDZEACDZBCDZEAFG
    BFGHABEMONPCAICBIJABCKL $.

  ${
    preqr1.1 $e |- A e. _V $.
    preqr1.2 $e |- B e. _V $.
    $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
       the same second element, the first elements are equal.  (Contributed by
       NM, 18-Oct-1995.) $)
    preqr1 $p |- ( { A , C } = { B , C } -> A = B ) $=
      ( cpr wceq wcel wo prid1 eleq2 mpbii elpr sylib mpbiri eqcom eqeq2 oplem1
      ) ACFZBCFZGZABGZACGZBAGZBCGZUAATHZUBUCIUAASHUFACDJSTAKLABCDMNUABSHZUDUEIU
      AUGBTHBCEJSTBKOBACEMNABPACBQR $.
  $}

  ${
    preqr2.1 $e |- A e. _V $.
    preqr2.2 $e |- B e. _V $.
    $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
       the same first element, the second elements are equal.  (Contributed by
       NM, 5-Aug-1993.) $)
    preqr2 $p |- ( { C , A } = { C , B } -> A = B ) $=
      ( cpr wceq prcom eqeq12i preqr1 sylbi ) CAFZCBFZGACFZBCFZGABGLNMOCAHCBHIA
      BCDEJK $.
  $}

  ${
    preq12b.1 $e |- A e. _V $.
    preq12b.2 $e |- B e. _V $.
    preq12b.3 $e |- C e. _V $.
    preq12b.4 $e |- D e. _V $.
    $( Equality relationship for two unordered pairs.  (Contributed by NM,
       17-Oct-1996.) $)
    preq12b $p |- ( { A , B } = { C , D } <->
                   ( ( A = C /\ B = D ) \/ ( A = D /\ B = C ) ) ) $=
      ( cpr wceq wa wo wcel preq1 eqeq1d preqr2 syl6bi com12 ancld prcom eqeq2i
      prid1 eleq2 mpbii elpr sylib wi sylbi orim12d preq12 syl6eq sylan9eq jaoi
      mpd impbii ) ABIZCDIZJZACJZBDJZKZADJZBCJZKZLZURUSVBLZVEURAUQMZVFURAUPMVGA
      BEUBUPUQAUCUDACDEUEUFURUSVAVBVDURUSUTUSURUTUSURCBIZUQJUTUSUPVHUQACBNOBDCF
      HPQRSURVBVCURUPDCIZJZVBVCUGUQVIUPCDTUAVBVJVCVBVJDBIZVIJVCVBUPVKVIADBNZOBC
      DFGPQRUHSUIUNVAURVDABCDUJVBVCUPBDIZUQVBUPVKVMVLDBTUKBCDNULUMUO $.

    $( Equality of two unordered pairs.  (Contributed by NM, 17-Oct-1996.) $)
    prel12 $p |- ( -. A = B -> ( { A , B } = { C , D } <->
                   ( A e. { C , D } /\ B e. { C , D } ) ) ) $=
      ( wceq wn cpr wcel wa eleq2 mpbii wo wi elpr eqeq2 notbid prid1 prid2 jca
      orel2 syl6bi com3l imp ancrd orel1 orim12d orcom bitri preq12b 3imtr4g ex
      syl5bi impd impbid2 ) ABIZJZABKZCDKZIZAVBLZBVBLZMVCVDVEVCAVALVDABEUAVAVBA
      NOVCBVALVEABFUBVAVBBNOUCUTVDVEVCVDACIZADIZPZUTVEVCQZACDERUTVHVIUTVHMZBDIZ
      BCIZPZVFVKMZVGVLMZPVEVCVJVKVNVLVOVJVKVFUTVHVKVFQVKUTVHVFVKUTVGJVHVFQVKUSV
      GBDASTVGVFUDUEUFUGUHVJVLVGUTVHVLVGQVLUTVHVGVLUTVFJVHVGQVLUSVFBCASTVFVGUIU
      EUFUGUHUJVEVLVKPVMBCDFRVLVKUKULABCDEFGHUMUNUOUPUQUR $.

    $( A way to represent ordered pairs using unordered pairs with distinct
       members.  (Contributed by NM, 27-Mar-2007.) $)
    opthpr $p |- ( A =/= D ->
                 ( { A , B } = { C , D } <-> ( A = C /\ B = D ) ) ) $=
      ( cpr wceq wa wo wne preq12b idd wn wi df-ne pm2.21 sylbi impd orc syl5bb
      jaod impbid1 ) ABICDIJACJBDJKZADJZBCJZKZLZADMZUFABCDEFGHNUKUJUFUKUFUFUIUK
      UFOUKUGUHUFUKUGPUGUHUFQZQADRUGULSTUAUDUFUIUBUEUC $.
  $}

  ${
    $d A x y z w $.  $d B x y z w $.  $d C x y z w $.  $d D x y z w $.
    $d V x y z w $.  $d W x y z w $.  $d X x y z w $.  $d Y x y z w $.
    $( Closed form of ~ preq12b .  (Contributed by Scott Fenton,
       28-Mar-2014.) $)
    preq12bg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) ) ->
       ( { A , B } = { C , D } <->
         ( ( A = C /\ B = D ) \/ ( A = D /\ B = C ) ) ) ) $=
      ( vx vy vz vw wcel wa cpr wceq wo wb wi cv weq preq1 eqeq1d eqeq1 orbi12d
      anbi1d bibi12d imbi2d preq2 anbi2d eqeq2 w3a vex preq12b vtoclbg vtocl3ga
      eqeq2d a1i 3expa impr ) AEMZBFMZNCGMZDHMZABOZCDOZPZACPZBDPZNZADPZBCPZNZQZ
      RZVAVBVCVDVOSZVDITZJTZOZKTZDOZPZIKUAZVRDPZNZVQDPZJKUAZNZQZRZSZVDAVROZWAPZ
      AVTPZWDNZVKWGNZQZRZSVDVEWAPZWNVINZVKBVTPZNZQZRZSVPIJKABCEFGVQAPZWJWRVDXEW
      BWMWIWQXEVSWLWAVQAVRUBUCXEWEWOWHWPXEWCWNWDVQAVTUDUFXEWFVKWGVQADUDUFUEUGUH
      VRBPZWRXDVDXFWMWSWQXCXFWLVEWAVRBAUIUCXFWOWTWPXBXFWDVIWNVRBDUDUJXFWGXAVKVR
      BVTUDUJUEUGUHVTCPZXDVOVDXGWSVGXCVNXGWAVFVEVTCDUBUQXGWTVJXBVMXGWNVHVIVTCAU
      KUFXGXAVLVKVTCBUKUJUEUGUHWKVQEMVRFMVTGMULVSVTLTZOZPWCJLUAZNZILUAZWGNZQWBW
      ILDHXHDPZXIWAVSXHDVTUIUQXNXKWEXMWHXNXJWDWCXHDVRUKUJXNXLWFWGXHDVQUKUFUEVQV
      RVTXHIUMJUMKUMLUMUNUOURUPUSUT $.
  $}

  $( Two pairs are not equal if at least one element of the first pair is not
     contained in the second pair.  (Contributed by Alexander van der Vekens,
     13-Aug-2017.) $)
  prneimg $p |- ( ( ( A e. U /\ B e. V ) /\ ( C e. X /\ D e. Y ) )
                  -> ( ( ( A =/= C /\ A =/= D ) \/ ( B =/= C /\ B =/= D ) )
                       -> { A , B } =/= { C , D } ) ) $=
    ( wcel wa wne wo cpr wceq wn preq12bg oranim df-ne anbi12i sylnibr ad2antll
    orddi simpll pm1.4 jca sylbi syl6bi anim12i syl6 pm4.56 syl6ib necon2ad ) A
    EIBFIJCGIDHIJJZACKZADKZJZBCKZBDKZJZLZABMZCDMZUMVAVBNZUPOZUSOZJZUTOUMVCACNZA
    DNZLZBCNZBDNZLZJZVFUMVCVGVKJVHVJJLZVMABCDEFGHPVNVIVGVJLZJZVKVHLZVKVJLZJZJZV
    MVGVKVHVJUBVTVIVLVIVOVSUCVRVLVPVQVKVJUDUAUEUFUGVIVDVLVEVIVGOZVHOZJUPVGVHQUN
    WAUOWBACRADRSTVLVJOZVKOZJUSVJVKQUQWCURWDBCRBDRSTUHUIUPUSUJUKUL $.

  ${
    preqsn.1 $e |- A e. _V $.
    preqsn.2 $e |- B e. _V $.
    preqsn.3 $e |- C e. _V $.
    $( Equivalence for a pair equal to a singleton.  (Contributed by NM,
       3-Jun-2008.) $)
    preqsn $p |- ( { A , B } = { C } <-> ( A = B /\ B = C ) ) $=
      ( cpr csn wceq wa dfsn2 eqeq2i preq12b oridm eqtr3 simpr jca eqtr bitri
      wo impbii ) ABGZCHZIUBCCGZIZABIZBCIZJZUCUDUBCKLUEACIZUGJZUJTZUHABCCDEFFMU
      KUJUHUJNUJUHUJUFUGABCOUIUGPQUHUIUGABCRUFUGPQUASSS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Value of the ordered pair when the arguments are sets.  (Contributed by
       Mario Carneiro, 26-Apr-2015.) $)
    dfopg $p |- ( ( A e. V /\ B e. W ) ->
      <. A , B >. = { { A } , { A , B } } ) $=
      ( vx wcel cvv cop csn cpr wceq elex wa cab w3a df-3an baibr abbidv abid2
      cv df-op eqcomi 3eqtr3g eqcomd syl2an ) ACFAGFZBGFZABHZAIABJJZKBDFACLBDLU
      FUGMZUIUHUJETUIFZENUFUGUKOZENZUIUHUJUKULEULUJUKUFUGUKPQREUISUHUMEABUAUBUC
      UDUE $.
  $}

  ${
    dfop.1 $e |- A e. _V $.
    dfop.2 $e |- B e. _V $.
    $( Value of an ordered pair when the arguments are sets, with the
       conclusion corresponding to Kuratowski's original definition.
       (Contributed by NM, 25-Jun-1998.) $)
    dfop $p |- <. A , B >. = { { A } , { A , B } } $=
      ( cvv wcel cop csn cpr wceq dfopg mp2an ) AEFBEFABGAHABIIJCDABEEKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality theorem for ordered pairs.  (Contributed by NM, 25-Jun-1998.)
       (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opeq1 $p |- ( A = B -> <. A , C >. = <. B , C >. ) $=
      ( vx wceq cvv wcel cv csn cpr w3a cab cop eleq1 anbi1d preq1 df-3an df-op
      wa sneq preq12d eleq2d anbi12d 3bitr4g abbidv 3eqtr4g ) ABEZAFGZCFGZDHZAI
      ZACJZJZGZKZDLBFGZUIUJBIZBCJZJZGZKZDLACMBCMUGUOVADUGUHUISZUNSUPUISZUTSUOVA
      UGVBVCUNUTUGUHUPUIABFNOUGUMUSUJUGUKUQULURABTABCPUAUBUCUHUIUNQUPUIUTQUDUED
      ACRDBCRUF $.

    $( Equality theorem for ordered pairs.  (Contributed by NM, 25-Jun-1998.)
       (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opeq2 $p |- ( A = B -> <. C , A >. = <. C , B >. ) $=
      ( vx wceq cvv wcel cv csn cpr w3a cab cop eleq1 anbi2d eqidd preq2 df-3an
      wa df-op preq12d eleq2d anbi12d 3bitr4g abbidv 3eqtr4g ) ABEZCFGZAFGZDHZC
      IZCAJZJZGZKZDLUHBFGZUJUKCBJZJZGZKZDLCAMCBMUGUOUTDUGUHUISZUNSUHUPSZUSSUOUT
      UGVAVBUNUSUGUIUPUHABFNOUGUMURUJUGUKUKULUQUGUKPABCQUAUBUCUHUIUNRUHUPUSRUDU
      EDCATDCBTUF $.
  $}

  $( Equality theorem for ordered pairs.  (Contributed by NM, 28-May-1995.) $)
  opeq12 $p |- ( ( A = C /\ B = D ) -> <. A , B >. = <. C , D >. ) $=
    ( wceq cop opeq1 opeq2 sylan9eq ) ACEBDEABFCBFCDFACBGBDCHI $.

  ${
    opeq1i.1 $e |- A = B $.
    $( Equality inference for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq1i $p |- <. A , C >. = <. B , C >. $=
      ( wceq cop opeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq2i $p |- <. C , A >. = <. C , B >. $=
      ( wceq cop opeq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      opeq12i.2 $e |- C = D $.
      $( Equality inference for ordered pairs.  (Contributed by NM,
         16-Dec-2006.)  (Proof shortened by Eric Schmidt, 4-Apr-2007.) $)
      opeq12i $p |- <. A , C >. = <. B , D >. $=
        ( wceq cop opeq12 mp2an ) ABGCDGACHBDHGEFACBDIJ $.
    $}
  $}

  ${
    opeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq1d $p |- ( ph -> <. A , C >. = <. B , C >. ) $=
      ( wceq cop opeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq2d $p |- ( ph -> <. C , A >. = <. C , B >. ) $=
      ( wceq cop opeq2 syl ) ABCFDBGDCGFEBCDHI $.

    opeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for ordered pairs.  (Contributed by NM,
       16-Dec-2006.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    opeq12d $p |- ( ph -> <. A , C >. = <. B , D >. ) $=
      ( wceq cop opeq12 syl2anc ) ABCHDEHBDICEIHFGBDCEJK $.
  $}

  $( Equality theorem for ordered triples.  (Contributed by NM, 3-Apr-2015.) $)
  oteq1 $p |- ( A = B -> <. A , C , D >. = <. B , C , D >. ) $=
    ( wceq cop cotp opeq1 opeq1d df-ot 3eqtr4g ) ABEZACFZDFBCFZDFACDGBCDGLMNDAB
    CHIACDJBCDJK $.

  $( Equality theorem for ordered triples.  (Contributed by NM, 3-Apr-2015.) $)
  oteq2 $p |- ( A = B -> <. C , A , D >. = <. C , B , D >. ) $=
    ( wceq cop cotp opeq2 opeq1d df-ot 3eqtr4g ) ABEZCAFZDFCBFZDFCADGCBDGLMNDAB
    CHICADJCBDJK $.

  $( Equality theorem for ordered triples.  (Contributed by NM, 3-Apr-2015.) $)
  oteq3 $p |- ( A = B -> <. C , D , A >. = <. C , D , B >. ) $=
    ( wceq cop cotp opeq2 df-ot 3eqtr4g ) ABECDFZAFKBFCDAGCDBGABKHCDAICDBIJ $.

  ${
    oteq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq1d $p |- ( ph -> <. A , C , D >. = <. B , C , D >. ) $=
      ( wceq cotp oteq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.

    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq2d $p |- ( ph -> <. C , A , D >. = <. C , B , D >. ) $=
      ( wceq cotp oteq2 syl ) ABCGDBEHDCEHGFBCDEIJ $.

    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq3d $p |- ( ph -> <. C , D , A >. = <. C , D , B >. ) $=
      ( wceq cotp oteq3 syl ) ABCGDEBHDECHGFBCDEIJ $.

    oteq123d.2 $e |- ( ph -> C = D ) $.
    oteq123d.3 $e |- ( ph -> E = F ) $.
    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq123d $p |- ( ph -> <. A , C , E >. = <. B , D , F >. ) $=
      ( cotp oteq1d oteq2d oteq3d 3eqtrd ) ABDFKCDFKCEFKCEGKABCDFHLADECFIMAFGCE
      JNO $.
  $}

  ${
    $d y A $.  $d y B $.  $d y x $.
    nfop.1 $e |- F/_ x A $.
    nfop.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for ordered pairs.  (Contributed by
       NM, 14-Nov-1995.) $)
    nfop $p |- F/_ x <. A , B >. $=
      ( vy cop cvv wcel cv csn cpr w3a cab df-op nfel1 nfsn nfpr nfcri nf3an
      nfab nfcxfr ) ABCGBHIZCHIZFJBKZBCLZLZIZMZFNFBCOUIAFUCUDUHAABHDPACHEPAFUGA
      UEUFABDQABCDERRSTUAUB $.
  $}

  ${
    $d z B $.  $d z A $.  $d x z $.
    nfopd.2 $e |- ( ph -> F/_ x A ) $.
    nfopd.3 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfop .  This
       shows how the deduction version of a not-free theorem such as ~ nfop can
       be created from the corresponding not-free inference theorem.
       (Contributed by NM, 4-Feb-2008.) $)
    nfopd $p |- ( ph -> F/_ x <. A , B >. ) $=
      ( vz cv wcel wal cab cop wnfc nfaba1 nfop wb wa nfnfc1 wceq abidnf adantr
      nfan adantl opeq12d nfceqdf syl2anc mpbii ) ABGHZCIZBJGKZUHDIZBJGKZLZMZBC
      DLZMZBUJULUIBGNUKBGNOABCMZBDMZUNUPPEFUQURQZBUMUOUQURBBCRBDRUBUSUJCULDUQUJ
      CSURBGCTUAURULDSUQBGDTUCUDUEUFUG $.
  $}

  ${
    opid.1 $e |- A e. _V $.
    $( The ordered pair ` <. A , A >. ` in Kuratowski's representation.
       (Contributed by FL, 28-Dec-2011.) $)
    opid $p |- <. A , A >. = { { A } } $=
      ( csn cpr cop dfsn2 eqcomi preq2i dfop 3eqtr4i ) ACZAADZDKKDAAEKCLKKKLAFG
      HAABBIKFJ $.
  $}

  ${
    $d B x $.  $d ps x $.
    ralunsn.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Restricted quantification over the union of a set and a singleton, using
       implicit substitution.  (Contributed by Paul Chapman, 17-Nov-2012.)
       (Revised by Mario Carneiro, 23-Apr-2015.) $)
    ralunsn $p |- ( B e. C -> ( A. x e. ( A u. { B } ) ph <->
                                ( A. x e. A ph /\ ps ) ) ) $=
      ( csn cun wral wa wcel ralunb ralsng anbi2d syl5bb ) ACDEHZIJACDJZACQJZKE
      FLZRBKACDQMTSBRABCEFGNOP $.
  $}

  ${
    $d A x $.  $d B x y $.  $d C x $.  $d ch x $.  $d ps y $.  $d th x $.
    2ralunsn.1 $e |- ( x = B -> ( ph <-> ch ) ) $.
    2ralunsn.2 $e |- ( y = B -> ( ph <-> ps ) ) $.
    2ralunsn.3 $e |- ( x = B -> ( ps <-> th ) ) $.
    $( Double restricted quantification over the union of a set and a
       singleton, using implicit substitution.  (Contributed by Paul Chapman,
       17-Nov-2012.) $)
    2ralunsn $p |- ( B e. C ->
                     ( A. x e. ( A u. { B } ) A. y e. ( A u. { B } ) ph <->
                       ( ( A. x e. A A. y e. A ph /\ A. x e. A ps ) /\
                         ( A. y e. A ch /\ th ) ) ) ) $=
      ( wcel csn cun wral wa ralunsn ralbidv cv wceq r19.26 anbi1i syl6bb bitrd
      anbi12d ) HIMZAFGHNOZPZEUHPAFGPZBQZEUHPZUJEGPBEGPQZCFGPZDQZQZUGUIUKEUHABF
      GHIKRSUGULUKEGPZUOQUPUKUOEGHIETHUAZUJUNBDURACFGJSLUFRUQUMUOUJBEGUBUCUDUE
      $.
  $}

  ${
    $d A x $.  $d B x y $.
    $( Expansion of an ordered pair when either member is a proper class.
       (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    opprc $p |- ( -. ( A e. _V /\ B e. _V ) -> <. A , B >. = (/) ) $=
      ( vx cvv wcel wa wn cop cv csn cpr w3a cab c0 df-op wal wceq 3simpa con3i
      alrimiv abeq0 sylibr syl5eq ) ADEZBDEZFZGZABHUDUECIAJABKKEZLZCMZNCABOUGUI
      GZCPUJNQUGUKCUIUFUDUEUHRSTUICUAUBUC $.
  $}

  $( Expansion of an ordered pair when the first member is a proper class.  See
     also ~ opprc .  (Contributed by NM, 10-Apr-2004.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  opprc1 $p |- ( -. A e. _V -> <. A , B >. = (/) ) $=
    ( cvv wcel wn wa cop c0 wceq simpl con3i opprc syl ) ACDZENBCDZFZEABGHIPNNO
    JKABLM $.

  $( Expansion of an ordered pair when the second member is a proper class.
     See also ~ opprc .  (Contributed by NM, 15-Nov-1994.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  opprc2 $p |- ( -. B e. _V -> <. A , B >. = (/) ) $=
    ( cvv wcel wn wa cop c0 wceq simpr con3i opprc syl ) BCDZEACDZNFZEABGHIPNON
    JKABLM $.

  ${
    $d A x $.  $d A y $.  $d B x $.  $d B y $.  $d C y $.
    $( If an ordered pair has an element, then its arguments are sets.
       (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    oprcl $p |- ( C e. <. A , B >. -> ( A e. _V /\ B e. _V ) ) $=
      ( vy vx cop wcel cv wex cvv wa elex2 wsb csn cpr w3a df-op eleq2i df-clab
      cab bitri 3simpa sbimi sylbi nfv sbf sylib exlimiv syl ) CABFZGDHZUJGZDIA
      JGZBJGZKZDCUJLULUODULUOEDMZUOULUMUNEHANABOOGZPZEDMZUPULUKURETZGUSUJUTUKEA
      BQRURDESUAURUOEDUMUNUQUBUCUDUOEDUOEUEUFUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The power set of a singleton.  (Contributed by Jim Kingdon,
       12-Aug-2018.) $)
    pwsnss $p |- { (/) , { A } } C_ ~P { A } $=
      ( vx cv c0 wceq csn wo cab wss cpr cpw sssnr ss2abi dfpr2 df-pw 3sstr4i )
      BCZDEQAFZEGZBHQRIZBHDRJRKSTBQALMBDRNBROP $.

    ${
      $d x y $.
      $( Compute the power set of the power set of the empty set.  (See ~ pw0
         for the power set of the empty set.)  Theorem 90 of [Suppes] p. 48
         (but with subset in place of equality).  (Contributed by Jim Kingdon,
         12-Aug-2018.) $)
      pwpw0ss $p |- { (/) , { (/) } } C_ ~P { (/) } $=
        ( c0 pwsnss ) AB $.
    $}

    $( The power set of an unordered pair.  (Contributed by Jim Kingdon,
       13-Aug-2018.) $)
    pwprss $p |- ( { (/) , { A } } u. { { B } , { A , B } } ) C_
        ~P { A , B } $=
      ( vx c0 csn cpr cun cpw cv wcel wo wss wceq elpr orbi12i ssprr sylbi elun
      vex elpw 3imtr4i ssriv ) CDAEZFZBEZABFZFZGZUFHZCIZUDJZUJUGJZKZUJUFLZUJUHJ
      UJUIJUMUJDMUJUCMKZUJUEMUJUFMKZKUNUKUOULUPUJDUCCSZNUJUEUFUQNOUJABPQUJUDUGR
      UJUFUQTUAUB $.

    $( The power set of an unordered triple.  (Contributed by Jim Kingdon,
       13-Aug-2018.) $)
    pwtpss $p |-
        ( ( { (/) , { A } } u. { { B } , { A , B } } ) u.
          ( { { C } , { A , C } } u. { { B , C } , { A , B , C } } ) )
        C_ ~P { A , B , C } $=
      ( vx c0 csn cpr cun ctp cpw cv wceq wo wcel sstpr elun elpr orbi12i bitri
      wss vex elpw 3imtr4i ssriv ) DEAFZGZBFZABGZGZHZCFZACGZGZBCGZABCIZGZHZHZUO
      JZDKZELUTUELMZUTUGLUTUHLMZMZUTUKLUTULLMZUTUNLUTUOLMZMZMZUTUOTUTURNZUTUSNU
      TABCOVHUTUJNZUTUQNZMVGUTUJUQPVIVCVJVFVIUTUFNZUTUINZMVCUTUFUIPVKVAVLVBUTEU
      EDUAZQUTUGUHVMQRSVJUTUMNZUTUPNZMVFUTUMUPPVNVDVOVEUTUKULVMQUTUNUOVMQRSRSUT
      UOVMUBUCUD $.
  $}

  ${
    $( Compute the power set of the power set of the power set of the empty
       set.  (See also ~ pw0 and ~ pwpw0ss .)  (Contributed by Jim Kingdon,
       13-Aug-2018.) $)
    pwpwpw0ss $p |-
        ( { (/) , { (/) } } u. { { { (/) } } , { (/) , { (/) } } } )
        C_ ~P { (/) , { (/) } } $=
      ( c0 csn pwprss ) AABC $.
  $}

  ${

    $( The power class of the universe is the universe.  Exercise 4.12(d) of
       [Mendelson] p. 235.  (Contributed by NM, 14-Sep-2003.) $)
    pwv $p |- ~P _V = _V $=
      ( vx cvv cpw cv wcel wss ssv vex elpw mpbir 2th eqriv ) ABCZBADZMEZNBEONB
      FNGNBAHZIJPKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                       The union of a class
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare class union symbol. $)
  $c U. $. $( Big cup $)

  $( Extend class notation to include the union of a class (read:  'union
     ` A ` ') $)
  cuni $a class U. A $.

  ${
    $d x y A $.
    $( Define the union of a class i.e. the collection of all members of the
       members of the class.  Definition 5.5 of [TakeutiZaring] p. 16.  For
       example, { { 1 , 3 } , { 1 , 8 } } = { 1 , 3 , 8 } .  This is similar to
       the union of two classes ~ df-un .  (Contributed by NM, 23-Aug-1993.) $)
    df-uni $a |- U. A = { x | E. y ( x e. y /\ y e. A ) } $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of class union.  (Contributed by NM,
       28-Jun-1998.) $)
    dfuni2 $p |- U. A = { x | E. y e. A x e. y } $=
      ( cuni cv wcel wa wex cab wrex df-uni exancom df-rex bitr4i abbii eqtri )
      CDAEBEZFZQCFZGBHZAIRBCJZAIABCKTUAATSRGBHUARSBLRBCMNOP $.
  $}

  ${
    $d x A y $.  $d x B y $.
    $( Membership in class union.  (Contributed by NM, 22-May-1994.) $)
    eluni $p |- ( A e. U. B <-> E. x ( A e. x /\ x e. B ) ) $=
      ( vy cuni wcel cvv cv wa wex elex adantr exlimiv wceq eleq1 anbi1d exbidv
      df-uni elab2g pm5.21nii ) BCEZFBGFZBAHZFZUCCFZIZAJZBUAKUFUBAUDUBUEBUCKLMD
      HZUCFZUEIZAJUGDBUAGUHBNZUJUFAUKUIUDUEUHBUCOPQDACRST $.

    $( Membership in class union.  Restricted quantifier version.  (Contributed
       by NM, 31-Aug-1999.) $)
    eluni2 $p |- ( A e. U. B <-> E. x e. B A e. x ) $=
      ( cv wcel wa wex cuni wrex exancom eluni df-rex 3bitr4i ) BADZEZNCEZFAGPO
      FAGBCHEOACIOPAJABCKOACLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Membership in class union.  (Contributed by NM, 24-Mar-1995.) $)
    elunii $p |- ( ( A e. B /\ B e. C ) -> A e. U. C ) $=
      ( vx wcel wa cv cuni wceq eleq2 eleq1 anbi12d spcegv anabsi7 eluni sylibr
      wex ) ABEZBCEZFZADGZEZUACEZFZDQZACHERSUEUDTDBCUABIUBRUCSUABAJUABCKLMNDACO
      P $.
  $}

  ${
    $d y z A $.  $d x y z $.
    nfuni.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for union.  (Contributed by NM,
       30-Dec-1996.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    nfuni $p |- F/_ x U. A $=
      ( vy vz cuni wel wrex cab dfuni2 nfv nfrexxy nfab nfcxfr ) ABFDEGZEBHZDID
      EBJPADOAEBCOAKLMN $.
  $}

  ${
    $d y z A $.  $d x y z $.  $d y z ph $.
    nfunid.3 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfuni .  (Contributed by NM, 18-Feb-2013.) $)
    nfunid $p |- ( ph -> F/_ x U. A ) $=
      ( vy vz cuni wel wrex cab dfuni2 nfv nfvd nfrexdxy nfabd nfcxfrd ) ABCGEF
      HZFCIZEJEFCKARBEAELAQBFCAFLDAQBMNOP $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d V y z $.  $d x y z $.
    $( Distribute proper substitution through the union of a class.
       (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbunig $p |- ( A e. V -> [_ A / x ]_ U. B = U. [_ A / x ]_ B ) $=
      ( vz vy wcel cv wa wex cab csb cuni wsbc csbabg sbcexg sbcang sbcg df-uni
      bitrd sbcel2g anbi12d exbidv abbidv eqtrd csbeq2i 3eqtr4g ) BDGZABEHFHZGZ
      UICGZIZFJZEKZLZUJUIABCLZGZIZFJZEKZABCMZLUPMUHUOUMABNZEKUTUMAEBDOUHVBUSEUH
      VBULABNZFJUSULFABDPUHVCURFUHVCUJABNZUKABNZIURUJUKABDQUHVDUJVEUQUJABDRABUI
      CDUAUBTUCTUDUEABVAUNEFCSUFEFUPSUG $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality theorem for class union.  Exercise 15 of [TakeutiZaring]
       p. 18.  (Contributed by NM, 10-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 29-Jun-2011.) $)
    unieq $p |- ( A = B -> U. A = U. B ) $=
      ( vy vx wceq wel wrex cab cuni rexeq abbidv dfuni2 3eqtr4g ) ABEZCDFZDAGZ
      CHODBGZCHAIBINPQCODABJKCDALCDBLM $.
  $}

  ${
    unieqi.1 $e |- A = B $.
    $( Inference of equality of two class unions.  (Contributed by NM,
       30-Aug-1993.) $)
    unieqi $p |- U. A = U. B $=
      ( wceq cuni unieq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    unieqd.1 $e |- ( ph -> A = B ) $.
    $( Deduction of equality of two class unions.  (Contributed by NM,
       21-Apr-1995.) $)
    unieqd $p |- ( ph -> U. A = U. B ) $=
      ( wceq cuni unieq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Membership in union of a class abstraction.  (Contributed by NM,
       11-Aug-1994.)  (Revised by Mario Carneiro, 14-Nov-2016.) $)
    eluniab $p |- ( A e. U. { x | ph } <-> E. x ( A e. x /\ ph ) ) $=
      ( vy cab cuni wcel cv wa wex eluni nfv nfsab1 nfan weq eleq2 eleq1 syl6bb
      abid anbi12d cbvex bitri ) CABEZFGCDHZGZUDUCGZIZDJCBHZGZAIZBJDCUCKUGUJDBU
      EUFBUEBLABDMNUJDLDBOZUEUIUFAUDUHCPUKUFUHUCGAUDUHUCQABSRTUAUB $.

    $( Membership in union of a class abstraction.  (Contributed by NM,
       4-Oct-2006.) $)
    elunirab $p |- ( A e. U. { x e. B | ph } <->
                   E. x e. B ( A e. x /\ ph ) ) $=
      ( cv wcel cab cuni wex crab wrex eluniab df-rab unieqi eleq2i df-rex an12
      wa exbii bitri 3bitr4i ) CBEZDFZARZBGZHZFCUBFZUDRZBIZCABDJZHZFUGARZBDKZUD
      BCLUKUFCUJUEABDMNOUMUCULRZBIUIULBDPUNUHBUCUGAQSTUA $.
  $}

  ${
    $d x y A $.  $d x y B $.
    unipr.1 $e |- A e. _V $.
    unipr.2 $e |- B e. _V $.
    $( The union of a pair is the union of its members.  Proposition 5.7 of
       [TakeutiZaring] p. 16.  (Contributed by NM, 23-Aug-1993.) $)
    unipr $p |- U. { A , B } = ( A u. B ) $=
      ( vx vy cv wcel wo cab cpr wa wex cun cuni wceq 19.43 bitri clel3 exancom
      vex elpr anbi2i andi exbii orbi12i 3bitr4ri abbii df-un df-uni 3eqtr4ri )
      EGZAHZULBHZIZEJULFGZHZUPABKZHZLZFMZEJABNUROUOVAEUQUPAPZLZUQUPBPZLZIZFMVCF
      MZVEFMZIVAUOVCVEFQUTVFFUTUQVBVDIZLVFUSVIUQUPABFUAUBUCUQVBVDUDRUEUMVGUNVHU
      MVBUQLFMVGFULACSVBUQFTRUNVDUQLFMVHFULBDSVDUQFTRUFUGUHEABUIEFURUJUK $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( The union of a pair is the union of its members.  Proposition 5.7 of
       [TakeutiZaring] p. 16.  (Contributed by NM, 25-Aug-2006.) $)
    uniprg $p |- ( ( A e. V /\ B e. W ) -> U. { A , B } = ( A u. B ) ) $=
      ( vx vy cv cpr cuni cun wceq preq1 unieqd uneq1 eqeq12d preq2 uneq2 unipr
      vex vtocl2g ) EGZFGZHZIZUAUBJZKAUBHZIZAUBJZKABHZIZABJZKEFABCDUAAKZUDUGUEU
      HULUCUFUAAUBLMUAAUBNOUBBKZUGUJUHUKUMUFUIUBBAPMUBBAQOUAUBESFSRT $.
  $}

  ${
    unisn.1 $e |- A e. _V $.
    $( A set equals the union of its singleton.  Theorem 8.2 of [Quine] p. 53.
       (Contributed by NM, 30-Aug-1993.) $)
    unisn $p |- U. { A } = A $=
      ( csn cuni cpr cun dfsn2 unieqi unipr unidm 3eqtri ) ACZDAAEZDAAFALMAGHAA
      BBIAJK $.
  $}

  ${
    $d x A $.
    $( A set equals the union of its singleton.  Theorem 8.2 of [Quine] p. 53.
       (Contributed by NM, 13-Aug-2002.) $)
    unisng $p |- ( A e. V -> U. { A } = A ) $=
      ( vx cv csn cuni wceq sneq unieqd id eqeq12d vex unisn vtoclg ) CDZEZFZOG
      AEZFZAGCABOAGZQSOATPROAHITJKOCLMN $.
  $}

  ${
    $d x y $.  $d y A $.
    $( An alternative statement of the effective freeness of a class ` A ` ,
       when it is a set.  (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    dfnfc2 $p |- ( A. x A e. V -> ( F/_ x A <-> A. y F/ x y = A ) ) $=
      ( wcel wal wnfc cv wceq wnf nfcvd id nfeqd alrimiv wa csn cuni simpr elsn
      df-nfc nfbii albii bitri sylibr nfunid nfa1 nfnf1 nfal nfan unisng adantr
      sps nfceqdf mpbid ex impbid2 ) CDEZAFZACGZBHZCIZAJZBFZUSVBBUSAUTCUSAUTKUS
      LMNURVCUSURVCOZACPZQZGUSVDAVEVDVCAVEGZURVCRVGUTVEEZAJZBFVCABVETVIVBBVHVAA
      BCSUAUBUCUDUEVDAVFCURVCAUQAUFVBABVAAUGUHUIURVFCIZVCUQVJACDUJULUKUMUNUOUP
      $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The class union of the union of two classes.  Theorem 8.3 of [Quine]
       p. 53.  (Contributed by NM, 20-Aug-1993.) $)
    uniun $p |- U. ( A u. B ) = ( U. A u. U. B ) $=
      ( vx vy cun cuni cv wcel wa wo 19.43 elun anbi2i andi bitri exbii orbi12i
      wex eluni 3bitr4i eqriv ) CABEZFZAFZBFZEZCGZDGZHZUHUBHZIZDRZUGUDHZUGUEHZJ
      ZUGUCHUGUFHUIUHAHZIZUIUHBHZIZJZDRUQDRZUSDRZJULUOUQUSDKUKUTDUKUIUPURJZIUTU
      JVCUIUHABLMUIUPURNOPUMVAUNVBDUGASDUGBSQTDUGUBSUGUDUELTUA $.

    $( The class union of the intersection of two classes.  Exercise 4.12(n) of
       [Mendelson] p. 235.  (Contributed by NM, 4-Dec-2003.)  (Proof shortened
       by Andrew Salmon, 29-Jun-2011.) $)
    uniin $p |- U. ( A i^i B ) C_ ( U. A i^i U. B ) $=
      ( vx vy cin cuni cv wcel wex 19.40 elin anbi2i anandi bitri exbii anbi12i
      wa eluni 3imtr4i ssriv ) CABEZFZAFZBFZEZCGZDGZHZUGUAHZQZDIZUFUCHZUFUDHZQZ
      UFUBHUFUEHUHUGAHZQZUHUGBHZQZQZDIUPDIZURDIZQUKUNUPURDJUJUSDUJUHUOUQQZQUSUI
      VBUHUGABKLUHUOUQMNOULUTUMVADUFARDUFBRPSDUFUARUFUCUDKST $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Subclass relationship for class union.  Theorem 61 of [Suppes] p. 39.
       (Contributed by NM, 22-Mar-1998.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    uniss $p |- ( A C_ B -> U. A C_ U. B ) $=
      ( vx vy wss cuni cv wcel wa wex ssel anim2d eximdv eluni 3imtr4g ssrdv )
      ABEZCAFZBFZQCGZDGZHZUAAHZIZDJUBUABHZIZDJTRHTSHQUDUFDQUCUEUBABUAKLMDTANDTB
      NOP $.

    $( Subclass relationship for class union.  (Contributed by NM,
       24-May-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    ssuni $p |- ( ( A C_ B /\ B e. C ) -> A C_ U. C ) $=
      ( vy vx wcel wss cuni cv wi wal eleq2 imbi1d elunii expcom vtoclga imim2d
      wceq alimdv dfss2 3imtr4g impcom ) BCFZABGZACHZGZUCDIZAFZUGBFZJZDKUHUGUEF
      ZJZDKUDUFUCUJULDUCUIUKUHUGEIZFZUKJUIUKJEBCUMBRUNUIUKUMBUGLMUNUMCFUKUGUMCN
      OPQSDABTDAUETUAUB $.
  $}

  ${
    unissi.1 $e |- A C_ B $.
    $( Subclass relationship for subclass union.  Inference form of ~ uniss .
       (Contributed by David Moews, 1-May-2017.) $)
    unissi $p |- U. A C_ U. B $=
      ( wss cuni uniss ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    unissd.1 $e |- ( ph -> A C_ B ) $.
    $( Subclass relationship for subclass union.  Deduction form of ~ uniss .
       (Contributed by David Moews, 1-May-2017.) $)
    unissd $p |- ( ph -> U. A C_ U. B ) $=
      ( wss cuni uniss syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x y A $.
    $( The union of a set is empty iff the set is included in the singleton of
       the empty set.  (Contributed by NM, 12-Sep-2004.) $)
    uni0b $p |- ( U. A = (/) <-> A C_ { (/) } ) $=
      ( vx vy cv c0 wceq wral wcel wn wal csn wss cuni eq0 ralbii ralcom4 bitri
      dfss3 elsn albii wrex eluni2 notbii ralnex 3bitr4i 3bitr4ri ) BDZEFZBAGZC
      DZUGHZIZBAGZCJZAEKZLZAMZEFZUIULCJZBAGUNUHUSBACUGNOULBCAPQUPUGUOHZBAGUIBAU
      ORUTUHBABESOQUJUQHZIZCJUKBAUAZIZCJURUNVBVDCVAVCBUJAUBUCTCUQNUMVDCUKBAUDTU
      EUF $.

    $( The union of a set is empty iff all of its members are empty.
       (Contributed by NM, 16-Aug-2006.) $)
    uni0c $p |- ( U. A = (/) <-> A. x e. A x = (/) ) $=
      ( cuni c0 wceq csn wss cv wcel wral uni0b dfss3 elsn ralbii 3bitri ) BCDE
      BDFZGAHZPIZABJQDEZABJBKABPLRSABADMNO $.
  $}

  $( The union of the empty set is the empty set.  Theorem 8.7 of [Quine]
     p. 54.  (Reproved without relying on ax-nul by Eric Schmidt.)
     (Contributed by NM, 16-Sep-1993.)  (Revised by Eric Schmidt,
     4-Apr-2007.) $)
  uni0 $p |- U. (/) = (/) $=
    ( c0 cuni wceq csn wss 0ss uni0b mpbir ) ABACAADZEIFAGH $.

  $( An element of a class is a subclass of its union.  Theorem 8.6 of [Quine]
     p. 54.  Also the basis for Proposition 7.20 of [TakeutiZaring] p. 40.
     (Contributed by NM, 6-Jun-1994.) $)
  elssuni $p |- ( A e. B -> A C_ U. B ) $=
    ( wss wcel cuni ssid ssuni mpan ) AACABDABECAFAABGH $.

  $( Condition turning a subclass relationship for union into an equality.
     (Contributed by NM, 18-Jul-2006.) $)
  unissel $p |- ( ( U. A C_ B /\ B e. A ) -> U. A = B ) $=
    ( cuni wss wcel wa simpl elssuni adantl eqssd ) ACZBDZBAEZFKBLMGMBKDLBAHIJ
    $.

  ${
    $d x y A $.  $d x y B $.
    $( Relationship involving membership, subset, and union.  Exercise 5 of
       [Enderton] p. 26 and its converse.  (Contributed by NM, 20-Sep-2003.) $)
    unissb $p |- ( U. A C_ B <-> A. x e. A x C_ B ) $=
      ( vy cv cuni wcel wi wal wss wa wex eluni imbi1i 19.23v albii bitri dfss2
      wral 3bitr4i bitr4i alcom 19.21v impexp bi2.04 imbi2i df-ral ) DEZBFZGZUH
      CGZHZDIZAEZBGZUNCJZHZAIZUICJUPABSUMUHUNGZUOKZUKHZAIZDIZURULVBDULUTALZUKHV
      BUJVDUKAUHBMNUTUKAOUAPVCVADIZAIURVADAUBVEUQAUOUSUKHZHZDIUOVFDIZHVEUQUOVFD
      UCVAVGDVAUSUOUKHHVGUSUOUKUDUSUOUKUEQPUPVHUODUNCRUFTPQQDUICRUPABUGT $.
  $}

  ${
    $d x A $.  $d x y B $.
    $( A subclass condition on the members of two classes that implies a
       subclass relation on their unions.  Proposition 8.6 of [TakeutiZaring]
       p. 59.  (Contributed by NM, 22-Mar-2004.) $)
    uniss2 $p |- ( A. x e. A E. y e. B x C_ y -> U. A C_ U. B ) $=
      ( cv wss wrex wral cuni wcel ssuni expcom rexlimiv ralimi unissb sylibr )
      AEZBEZFZBDGZACHQDIZFZACHCIUAFTUBACSUBBDSRDJUBQRDKLMNACUAOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( If the difference ` A \ B ` contains the largest members of ` A ` , then
       the union of the difference is the union of ` A ` .  (Contributed by NM,
       22-Mar-2004.) $)
    unidif $p |- ( A. x e. A E. y e. ( A \ B ) x C_ y ->
               U. ( A \ B ) = U. A ) $=
      ( cv wss cdif wrex wral cuni wceq uniss2 difss unissi jctil eqss sylibr
      wa ) AEBEFBCDGZHACIZSJZCJZFZUBUAFZRUAUBKTUDUCABCSLSCCDMNOUAUBPQ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Relationship implying union.  (Contributed by NM, 10-Nov-1999.) $)
    ssunieq $p |- ( ( A e. B /\ A. x e. B x C_ A ) -> A = U. B ) $=
      ( wcel cv wss wral cuni wceq elssuni unissb biimpri anim12i eqss sylibr
      wa ) BCDZAEBFACGZPBCHZFZSBFZPBSIQTRUABCJUARACBKLMBSNO $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Any member of a class is the largest of those members that it includes.
       (Contributed by NM, 13-Aug-2002.) $)
    unimax $p |- ( A e. B -> U. { x e. B | x C_ A } = A ) $=
      ( vy wcel cv wss crab wral cuni wceq ssid sseq1 elrab3 elrab simprbi rgen
      mpbiri wa ssunieq eqcomd sylancl ) BCEZBAFZBGZACHZEZDFZBGZDUFIZUFJZBKUCUG
      BBGZBLUEULABCUDBBMNRUIDUFUHUFEUHCEUIUEUIAUHCUDUHBMOPQUGUJSBUKDBUFTUAUB $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        The intersection of a class
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare class intersection symbol. $)
  $c |^| $. $( Big cap $)

  $( Extend class notation to include the intersection of a class (read:
     'intersect ` A ` '). $)
  cint $a class |^| A $.

  ${
    $d x y A $.
    $( Define the intersection of a class.  Definition 7.35 of [TakeutiZaring]
       p. 44.  For example, ` |^| ` { { 1 , 3 } , { 1 , 8 } } = { 1 } .
       Compare this with the intersection of two classes, ~ df-in .
       (Contributed by NM, 18-Aug-1993.) $)
    df-int $a |- |^| A = { x | A. y ( y e. A -> x e. y ) } $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of class intersection.  (Contributed by NM,
       28-Jun-1998.) $)
    dfint2 $p |- |^| A = { x | A. y e. A x e. y } $=
      ( cint cv wcel wi wal cab wral df-int df-ral abbii eqtr4i ) CDBEZCFAEOFZG
      BHZAIPBCJZAIABCKRQAPBCLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality law for intersection.  (Contributed by NM, 13-Sep-1999.) $)
    inteq $p |- ( A = B -> |^| A = |^| B ) $=
      ( vx vy wceq wel wral cab cint raleq abbidv dfint2 3eqtr4g ) ABEZCDFZDAGZ
      CHODBGZCHAIBINPQCODABJKCDALCDBLM $.
  $}

  ${
    inteqi.1 $e |- A = B $.
    $( Equality inference for class intersection.  (Contributed by NM,
       2-Sep-2003.) $)
    inteqi $p |- |^| A = |^| B $=
      ( wceq cint inteq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    inteqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for class intersection.  (Contributed by NM,
       2-Sep-2003.) $)
    inteqd $p |- ( ph -> |^| A = |^| B ) $=
      ( wceq cint inteq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x A y $.  $d x B y $.
    elint.1 $e |- A e. _V $.
    $( Membership in class intersection.  (Contributed by NM, 21-May-1994.) $)
    elint $p |- ( A e. |^| B <-> A. x ( x e. B -> A e. x ) ) $=
      ( vy cv wcel wi wal cint wceq eleq1 imbi2d albidv df-int elab2 ) AFZCGZEF
      ZQGZHZAIRBQGZHZAIEBCJDSBKZUAUCAUDTUBRSBQLMNEACOP $.
  $}

  ${
    $d x A $.  $d x B $.
    elint2.1 $e |- A e. _V $.
    $( Membership in class intersection.  (Contributed by NM, 14-Oct-1999.) $)
    elint2 $p |- ( A e. |^| B <-> A. x e. B A e. x ) $=
      ( cint wcel cv wi wal wral elint df-ral bitr4i ) BCEFAGZCFBNFZHAIOACJABCD
      KOACLM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Membership in class intersection, with the sethood requirement expressed
       as an antecedent.  (Contributed by NM, 20-Nov-2003.) $)
    elintg $p |- ( A e. V -> ( A e. |^| B <-> A. x e. B A e. x ) ) $=
      ( vy cv cint wcel wral eleq1 wceq ralbidv vex elint2 vtoclbg ) EFZCGZHPAF
      ZHZACIBQHBRHZACIEBDPBQJPBKSTACPBRJLAPCEMNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in class intersection.  (Contributed by NM, 14-Oct-1999.)
       (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    elinti $p |- ( A e. |^| B -> ( C e. B -> A e. C ) ) $=
      ( vx cint wcel wi cv wral elintg eleq2 rspccv syl6bi pm2.43i ) ABEZFZCBFA
      CFZGZPPADHZFZDBIRDABOJTQDCBSCAKLMN $.
  $}

  ${
    $d y z A $.  $d x y z $.
    nfint.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for intersection.  (Contributed by NM,
       2-Feb-1997.)  (Proof shortened by Andrew Salmon, 12-Aug-2011.) $)
    nfint $p |- F/_ x |^| A $=
      ( vy vz cint wel wral cab dfint2 nfv nfralxy nfab nfcxfr ) ABFDEGZEBHZDID
      EBJPADOAEBCOAKLMN $.
  $}

  ${
    $d A x y $.  $d ph y $.
    inteqab.1 $e |- A e. _V $.
    $( Membership in the intersection of a class abstraction.  (Contributed by
       NM, 30-Aug-1993.) $)
    elintab $p |- ( A e. |^| { x | ph } <-> A. x ( ph -> A e. x ) ) $=
      ( vy cab cint wcel cv wi wal elint nfsab1 nfv nfim weq eleq1 syl6bb eleq2
      abid imbi12d cbval bitri ) CABFZGHEIZUDHZCUEHZJZEKACBIZHZJZBKECUDDLUHUKEB
      UFUGBABEMUGBNOUKENEBPZUFAUGUJULUFUIUDHAUEUIUDQABTRUEUICSUAUBUC $.

    $( Membership in the intersection of a class abstraction.  (Contributed by
       NM, 17-Oct-1999.) $)
    elintrab $p |- ( A e. |^| { x e. B | ph } <->
                 A. x e. B ( ph -> A e. x ) ) $=
      ( cv wcel wa cab cint wi wal crab wral elintab impexp albii df-rab inteqi
      bitri eleq2i df-ral 3bitr4i ) CBFZDGZAHZBIZJZGZUEACUDGZKZKZBLZCABDMZJZGUK
      BDNUIUFUJKZBLUMUFBCEOUPULBUEAUJPQTUOUHCUNUGABDRSUAUKBDUBUC $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y ph $.
    $( Membership in the intersection of a class abstraction.  (Contributed by
       NM, 17-Feb-2007.) $)
    elintrabg $p |- ( A e. V -> ( A e. |^| { x e. B | ph } <->
                 A. x e. B ( ph -> A e. x ) ) ) $=
      ( vy cv crab cint wcel wi wral eleq1 wceq imbi2d ralbidv elintrab vtoclbg
      vex ) FGZABDHIZJATBGZJZKZBDLCUAJACUBJZKZBDLFCETCUAMTCNZUDUFBDUGUCUEATCUBM
      OPABTDFSQR $.

    $( The intersection of the empty set is the universal class.  Exercise 2 of
       [TakeutiZaring] p. 44.  (Contributed by NM, 18-Aug-1993.) $)
    int0 $p |- |^| (/) = _V $=
      ( vy vx cv c0 wcel wi wal cab weq cint cvv pm2.21i ax-gen equid 2th abbii
      noel df-int df-v 3eqtr4i ) ACZDEZBCUAEZFZAGZBHBBIZBHDJKUEUFBUEUFUDAUBUCUA
      QLMBNOPBADRBST $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y ph $.
    $( An element of a class includes the intersection of the class.  Exercise
       4 of [TakeutiZaring] p. 44 (with correction), generalized to classes.
       (Contributed by NM, 18-Nov-1995.) $)
    intss1 $p |- ( A e. B -> |^| B C_ A ) $=
      ( vx vy wcel cint cv wal vex elint wceq eleq1 eleq2 imbi12d spcgv pm2.43a
      wi syl5bi ssrdv ) ABEZCBFZACGZUAEDGZBEZUBUCEZQZDHZTUBAEZDUBBCIJUGTUHUFTUH
      QDABUCAKUDTUEUHUCABLUCAUBMNOPRS $.

    $( Subclass of a class intersection.  Theorem 5.11(viii) of [Monk1] p. 52
       and its converse.  (Contributed by NM, 14-Oct-1999.) $)
    ssint $p |- ( A C_ |^| B <-> A. x e. B A C_ x ) $=
      ( vy cint wss cv wcel wral dfss3 vex elint2 ralbii ralcom bitr4i 3bitri )
      BCEZFDGZQHZDBIRAGZHZACIZDBIZBTFZACIZDBQJSUBDBARCDKLMUCUADBIZACIUEUADABCNU
      DUFACDBTJMOP $.

    $( Subclass of the intersection of a class abstraction.  (Contributed by
       NM, 31-Jul-2006.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    ssintab $p |- ( A C_ |^| { x | ph } <-> A. x ( ph -> A C_ x ) ) $=
      ( vy cab cint wss cv wral wi wal ssint sseq2 ralab2 bitri ) CABEZFGCDHZGZ
      DPIACBHZGZJBKDCPLARTDBQSCMNO $.

    $( Subclass of the least upper bound.  (Contributed by NM, 8-Aug-2000.) $)
    ssintub $p |- A C_ |^| { x e. B | A C_ x } $=
      ( vy cv wss crab cint ssint wcel sseq2 elrab simprbi mprgbir ) BBAEZFZACG
      ZHFBDEZFZDQDBQIRQJRCJSPSARCORBKLMN $.

    $( Subclass of the minimum value of class of supersets.  (Contributed by
       NM, 10-Aug-2006.) $)
    ssmin $p |- A C_ |^| { x | ( A C_ x /\ ph ) } $=
      ( cv wss wa cab cint wi ssintab simpl mpgbir ) CCBDEZAFZBGHENMIBNBCJMAKL
      $.

    $( Any member of a class is the smallest of those members that include it.
       (Contributed by NM, 13-Aug-2002.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    intmin $p |- ( A e. B -> |^| { x e. B | A C_ x } = A ) $=
      ( vy wcel cv wss crab cint wi wral elintrab ssid wceq sseq2 eleq2 imbi12d
      vex rspcv mpii syl5bi ssrdv ssintub a1i eqssd ) BCEZBAFZGZACHIZBUFDUIBDFZ
      UIEUHUJUGEZJZACKZUFUJBEZUHAUJCDRLUFUMBBGZUNBMULUOUNJABCUGBNUHUOUKUNUGBBOU
      GBUJPQSTUAUBBUIGUFABCUCUDUE $.

    $( Intersection of subclasses.  (Contributed by NM, 14-Oct-1999.) $)
    intss $p |- ( A C_ B -> |^| B C_ |^| A ) $=
      ( vy vx cv wcel wal cint wss imim1 al2imi vex elint 3imtr4g alrimiv dfss2
      wi 3imtr4i ) CEZAFZSBFZQZCGZDEZBHZFZUDAHZFZQZDGABIUEUGIUCUIDUCUAUDSFZQZCG
      TUJQZCGUFUHUBUKULCTUAUJJKCUDBDLZMCUDAUMMNOCABPDUEUGPR $.

    $( The intersection of an inhabited set is a subclass of its union.
       (Contributed by NM, 29-Jul-2006.) $)
    intssunim $p |- ( E. x x e. A -> |^| A C_ U. A ) $=
      ( vy cv wcel wex cint cuni wral r19.2m ex vex elint2 eluni2 3imtr4g ssrdv
      wrex ) ADZBEAFZCBGZBHZSCDZREZABIZUCABQZUBTEUBUAESUDUEUCABJKAUBBCLMAUBBNOP
      $.
  $}

  ${
    $d x A $.
    $( Subclass of the intersection of a restricted class builder.
       (Contributed by NM, 30-Jan-2015.) $)
    ssintrab $p |- ( A C_ |^| { x e. B | ph }
           <-> A. x e. B ( ph -> A C_ x ) ) $=
      ( crab cint wss cv wcel wa cab wral df-rab inteqi sseq2i wal impexp albii
      wi ssintab df-ral 3bitr4i bitri ) CABDEZFZGCBHZDIZAJZBKZFZGZACUFGZSZBDLZU
      EUJCUDUIABDMNOUHULSZBPUGUMSZBPUKUNUOUPBUGAULQRUHBCTUMBDUAUBUC $.
  $}

  ${
    $d x A $.
    $( Subclass relationship for intersection and union.  (Contributed by Jim
       Kingdon, 14-Aug-2018.) $)
    intssuni2m $p |- ( ( A C_ B /\ E. x x e. A ) -> |^| A C_ U. B ) $=
      ( cv wcel wex wss cint cuni intssunim uniss sylan9ssr ) ADBEAFBCGBHBICIAB
      JBCKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    intminss.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Under subset ordering, the intersection of a restricted class
       abstraction is less than or equal to any of its members.  (Contributed
       by NM, 7-Sep-2013.) $)
    intminss $p |- ( ( A e. B /\ ps ) -> |^| { x e. B | ph } C_ A ) $=
      ( wcel wa crab cint wss elrab intss1 sylbir ) DEGBHDACEIZGOJDKABCDEFLDOMN
      $.
  $}

  ${
    $d x A $.
    intmin2.1 $e |- A e. _V $.
    $( Any set is the smallest of all sets that include it.  (Contributed by
       NM, 20-Sep-2003.) $)
    intmin2 $p |- |^| { x | A C_ x } = A $=
      ( cv wss cvv crab cint cab rabab inteqi wcel wceq intmin ax-mp eqtr3i ) B
      ADEZAFGZHZQAIZHBRTQAJKBFLSBMCABFNOP $.
  $}

  ${
    $d x A $.  $d x ps $.
    intmin3.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    intmin3.3 $e |- ps $.
    $( Under subset ordering, the intersection of a class abstraction is less
       than or equal to any of its members.  (Contributed by NM,
       3-Jul-2005.) $)
    intmin3 $p |- ( A e. V -> |^| { x | ph } C_ A ) $=
      ( wcel cab cint wss elabg mpbiri intss1 syl ) DEHZDACIZHZQJDKPRBGABCDEFLM
      DQNO $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Elimination of a conjunct in a class intersection.  (Contributed by NM,
       31-Jul-2006.) $)
    intmin4 $p |- ( A C_ |^| { x | ph } ->
                  |^| { x | ( A C_ x /\ ph ) } = |^| { x | ph } ) $=
      ( vy cab cint wss cv wa wcel wi wal wb ssintab simpr impbid2 imbi1d alimi
      ancr elintab albi syl sylbi vex 3bitr4g eqrdv ) CABEFZGZDCBHZGZAIZBEFZUGU
      HUKDHZUIJZKZBLZAUNKZBLZUMULJUMUGJUHAUJKZBLZUPURMZABCNUTUOUQMZBLVAUSVBBUSU
      KAUNUSUKAUJAOAUJSPQRUOUQBUAUBUCUKBUMDUDZTABUMVCTUEUF $.
  $}

  ${
    $d x z A $.  $d x z ph $.  $d x y z $.
    intab.1 $e |- A e. _V $.
    intab.2 $e |- { x | E. y ( ph /\ x = A ) } e. _V $.
    $( The intersection of a special case of a class abstraction. ` y ` may be
       free in ` ph ` and ` A ` , which can be thought of a ` ph ( y ) ` and
       ` A ( y ) ` .  (Contributed by NM, 28-Jul-2006.)  (Proof shortened by
       Mario Carneiro, 14-Nov-2016.) $)
    intab $p |- |^| { x | A. y ( ph -> A e. x ) } =
                { x | E. y ( ph /\ x = A ) } $=
      ( vz cv wcel wi wal cab cint wceq wa wex wss ex alrimiv sylibr cvv anbi2d
      eqeq1 exbidv cbvabv eqeltri nfe1 nfab nfeq2 eleq2 imbi2d albid elab 19.8a
      wsbc sbc6 df-sbc sylib mpgbir intss1 19.29r simplr pm3.35 adantlr eqeltrd
      ax-mp exlimiv syl vex elintab abssi eqssi eqtri ) ADBHZIZJZCKZBLZMZAGHZDN
      ZOZCPZGLZAVNDNZOZCPZBLZVSWDWDVRIZVSWDQWIADWDIZJZCVQWKCKBWDWDWHUAWCWGGBVTV
      NNZWBWFCWLWAWEAVTVNDUCUBUDUEZFUFVNWDNZVPWKCCVNWDWCCGWBCUGUHUIWNVOWJAVNWDD
      UJUKULUMAWCGDUOZWJAWAWCJZGKWOAWPGAWAWCWBCUNRSWCGDEUPTWCGDUQURUSWDVRUTVFWC
      GVSWCVQVTVNIZJZBKVTVSIWCWRBWCVQWQWCVQOWBVPOZCPWQWBVPCVAWSWQCWSVTDVNAWAVPV
      BAVPVOWAAVOVCVDVEVGVHRSVQBVTGVIVJTVKVLWMVM $.
  $}

  $( The intersection of a class containing the empty set is empty.
     (Contributed by NM, 24-Apr-2004.) $)
  int0el $p |- ( (/) e. A -> |^| A = (/) ) $=
    ( c0 wcel cint intss1 wss 0ss a1i eqssd ) BACZADZBBAEBKFJKGHI $.

  ${
    $d x y A $.  $d x y B $.
    $( The class intersection of the union of two classes.  Theorem 78 of
       [Suppes] p. 42.  (Contributed by NM, 22-Sep-2002.) $)
    intun $p |- |^| ( A u. B ) = ( |^| A i^i |^| B ) $=
      ( vx vy cun cint cin cv wcel wi wal wa 19.26 elun imbi1i jaob bitri elint
      wo 3bitr4i albii vex anbi12i elin eqriv ) CABEZFZAFZBFZGZDHZUFIZCHZUKIZJZ
      DKZUMUHIZUMUIIZLZUMUGIUMUJIUKAIZUNJZUKBIZUNJZLZDKVADKZVCDKZLUPUSVAVCDMUOV
      DDUOUTVBSZUNJVDULVGUNUKABNOUTUNVBPQUAUQVEURVFDUMACUBZRDUMBVHRUCTDUMUFVHRU
      MUHUIUDTUE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    intpr.1 $e |- A e. _V $.
    intpr.2 $e |- B e. _V $.
    $( The intersection of a pair is the intersection of its members.  Theorem
       71 of [Suppes] p. 42.  (Contributed by NM, 14-Oct-1999.) $)
    intpr $p |- |^| { A , B } = ( A i^i B ) $=
      ( vx vy cpr cint cin cv wcel wi wal wa wceq 19.26 wo vex clel4 3bitr4i
      elpr imbi1i jaob bitri albii anbi12i elint elin eqriv ) EABGZHZABIZFJZUJK
      ZEJZUMKZLZFMZUOAKZUOBKZNZUOUKKUOULKUMAOZUPLZUMBOZUPLZNZFMVCFMZVEFMZNURVAV
      CVEFPUQVFFUQVBVDQZUPLVFUNVIUPUMABFRUAUBVBUPVDUCUDUEUSVGUTVHFUOACSFUOBDSUF
      TFUOUJERUGUOABUHTUI $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( The intersection of a pair is the intersection of its members.  Closed
       form of ~ intpr .  Theorem 71 of [Suppes] p. 42.  (Contributed by FL,
       27-Apr-2008.) $)
    intprg $p |- ( ( A e. V /\ B e. W ) -> |^| { A , B } = ( A i^i B ) ) $=
      ( vx vy cv cpr cint cin wceq preq1 inteqd ineq1 eqeq12d preq2 ineq2 intpr
      vex vtocl2g ) EGZFGZHZIZUAUBJZKAUBHZIZAUBJZKABHZIZABJZKEFABCDUAAKZUDUGUEU
      HULUCUFUAAUBLMUAAUBNOUBBKZUGUJUHUKUMUFUIUBBAPMUBBAQOUAUBESFSRT $.
  $}

  $( Intersection of a singleton.  (Contributed by Stefan O'Rear,
     22-Feb-2015.) $)
  intsng $p |- ( A e. V -> |^| { A } = A ) $=
    ( wcel csn cint cpr dfsn2 inteqi cin wceq intprg anidms inidm syl6eq syl5eq
    ) ABCZADZEAAFZEZAQRAGHPSAAIZAPSTJAABBKLAMNO $.

  ${
    intsn.1 $e |- A e. _V $.
    $( The intersection of a singleton is its member.  Theorem 70 of [Suppes]
       p. 41.  (Contributed by NM, 29-Sep-2002.) $)
    intsn $p |- |^| { A } = A $=
      ( cvv wcel csn cint wceq intsng ax-mp ) ACDAEFAGBACHI $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( The union and intersection of a singleton are equal.  See also ~ eusn .
       (Contributed by Jim Kingdon, 14-Aug-2018.) $)
    uniintsnr $p |- ( E. x A = { x } -> U. A = |^| A ) $=
      ( csn wceq cuni cint vex unisn unieq inteq intsn syl6eq 3eqtr4a exlimiv
      cv ) BAOZCZDZBEZBFZDARQEPSTPAGZHBQIRTQFPBQJPUAKLMN $.

    $( The union and the intersection of a class abstraction are equal if there
       is a unique satisfying value of ` ph ( x ) ` .  (Contributed by Jim
       Kingdon, 14-Aug-2018.) $)
    uniintabim $p |- ( E! x ph -> U. { x | ph } = |^| { x | ph } ) $=
      ( vy weu cab cv csn wceq wex cuni cint euabsn2 uniintsnr sylbi ) ABDABEZC
      FGHCIOJOKHABCLCOMN $.
  $}

  ${
    intunsn.1 $e |- B e. _V $.
    $( Theorem joining a singleton to an intersection.  (Contributed by NM,
       29-Sep-2002.) $)
    intunsn $p |- |^| ( A u. { B } ) = ( |^| A i^i B ) $=
      ( csn cun cint cin intun intsn ineq2i eqtri ) ABDZEFAFZLFZGMBGALHNBMBCIJK
      $.
  $}

  $( Relative intersection of an empty set.  (Contributed by Stefan O'Rear,
     3-Apr-2015.) $)
  rint0 $p |- ( X = (/) -> ( A i^i |^| X ) = A ) $=
    ( c0 wceq cint cin inteq ineq2d cvv int0 ineq2i inv1 eqtri syl6eq ) BCDZABE
    ZFACEZFZAOPQABCGHRAIFAQIAJKALMN $.

  ${
    $d B y $.  $d X y $.
    $( Membership in a restricted intersection.  (Contributed by Stefan O'Rear,
       3-Apr-2015.) $)
    elrint $p |- ( X e. ( A i^i |^| B ) <-> ( X e. A /\ A. y e. B X e. y ) ) $=
      ( cint cin wcel wa cv wral elin elintg pm5.32i bitri ) DBCEZFGDBGZDOGZHPD
      AIGACJZHDBOKPQRADCBLMN $.

    $( Membership in a restricted intersection.  (Contributed by Stefan O'Rear,
       3-Apr-2015.) $)
    elrint2 $p |- ( X e. A -> ( X e. ( A i^i |^| B ) <->
          A. y e. B X e. y ) ) $=
      ( cint cin wcel cv wral elrint baib ) DBCEFGDBGDAHGACIABCDJK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Indexed union and intersection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c U_ $. $( Underlined big cup. $)
  $c |^|_ $. $( Underlined big cap. $)

  $( Extend class notation to include indexed union.  Note:  Historically
     (prior to 21-Oct-2005), set.mm used the notation ` U. x e. A B ` , with
     the same union symbol as ~ cuni .  While that syntax was unambiguous, it
     did not allow for LALR parsing of the syntax constructions in set.mm.  The
     new syntax uses as distinguished symbol ` U_ ` instead of ` U. ` and does
     allow LALR parsing.  Thanks to Peter Backes for suggesting this change. $)
  ciun $a class U_ x e. A B $.

  $( Extend class notation to include indexed intersection.  Note:
     Historically (prior to 21-Oct-2005), set.mm used the notation
     ` |^| x e. A B ` , with the same intersection symbol as ~ cint .  Although
     that syntax was unambiguous, it did not allow for LALR parsing of the
     syntax constructions in set.mm.  The new syntax uses a distinguished
     symbol ` |^|_ ` instead of ` |^| ` and does allow LALR parsing.  Thanks to
     Peter Backes for suggesting this change. $)
  ciin $a class |^|_ x e. A B $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( Define indexed union.  Definition indexed union in [Stoll] p. 45.  In
       most applications, ` A ` is independent of ` x ` (although this is not
       required by the definition), and ` B ` depends on ` x ` i.e. can be read
       informally as ` B ( x ) ` .  We call ` x ` the index, ` A ` the index
       set, and ` B ` the indexed set.  In most books, ` x e. A ` is written as
       a subscript or underneath a union symbol ` U. ` .  We use a special
       union symbol ` U_ ` to make it easier to distinguish from plain class
       union.  In many theorems, you will see that ` x ` and ` A ` are in the
       same distinct variable group (meaning ` A ` cannot depend on ` x ` ) and
       that ` B ` and ` x ` do not share a distinct variable group (meaning
       that can be thought of as ` B ( x ) ` i.e. can be substituted with a
       class expression containing ` x ` ).  An alternate definition tying
       indexed union to ordinary union is ~ dfiun2 .  Theorem ~ uniiun provides
       a definition of ordinary union in terms of indexed union.  (Contributed
       by NM, 27-Jun-1998.) $)
    df-iun $a |- U_ x e. A B = { y | E. x e. A y e. B } $.

    $( Define indexed intersection.  Definition of [Stoll] p. 45.  See the
       remarks for its sibling operation of indexed union ~ df-iun .  An
       alternate definition tying indexed intersection to ordinary intersection
       is ~ dfiin2 .  Theorem ~ intiin provides a definition of ordinary
       intersection in terms of indexed intersection.  (Contributed by NM,
       27-Jun-1998.) $)
    df-iin $a |- |^|_ x e. A B = { y | A. x e. A y e. B } $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y C $.
    $( Membership in indexed union.  (Contributed by NM, 3-Sep-2003.) $)
    eliun $p |- ( A e. U_ x e. B C <-> E. x e. B A e. C ) $=
      ( vy ciun wcel wrex elex rexlimivw cv wceq eleq1 rexbidv df-iun pm5.21nii
      cvv elab2g ) BACDFZGBQGZBDGZACHZBSIUATACBDIJEKZDGZACHUBEBSQUCBLUDUAACUCBD
      MNAECDORP $.

    $( Membership in indexed intersection.  (Contributed by NM, 3-Sep-2003.) $)
    eliin $p |- ( A e. V -> ( A e. |^|_ x e. B C <-> A. x e. B A e. C ) ) $=
      ( vy cv wcel wral ciin wceq eleq1 ralbidv df-iin elab2g ) FGZDHZACIBDHZAC
      IFBACDJEPBKQRACPBDLMAFCDNO $.
  $}

  ${
    $d y z A $.  $d x z B $.  $d z C $.  $d x y $.
    $( Commutation of indexed unions.  (Contributed by NM, 18-Dec-2008.) $)
    iuncom $p |- U_ x e. A U_ y e. B C = U_ y e. B U_ x e. A C $=
      ( vz ciun cv wcel wrex rexcom eliun rexbii 3bitr4i eqriv ) FACBDEGZGZBDAC
      EGZGZFHZPIZACJZTRIZBDJZTQITSITEIZBDJZACJUEACJZBDJUBUDUEABCDKUAUFACBTDELMU
      CUGBDATCELMNATCPLBTDRLNO $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d x y z $.
    $( Commutation of union with indexed union.  (Contributed by Mario
       Carneiro, 18-Jan-2014.) $)
    iuncom4 $p |- U_ x e. A U. B = U. U_ x e. A B $=
      ( vy vz cuni ciun cv wcel wa wex df-rex rexbii rexcom4 bitri exbii eluni2
      wrex eliun 3bitr4i r19.41v anbi1i eqriv ) DABCFZGZABCGZFZDHZUDIZABRZUHEHZ
      IZEUFRZUHUEIUHUGIULECRZABRZUKCIZABRZULJZEKZUJUMUOUPULJZABRZEKZUSUOUTEKZAB
      RVBUNVCABULECLMUTAEBNOVAUREUPULABUAPOUIUNABEUHCQMUMUKUFIZULJZEKUSULEUFLVE
      UREVDUQULAUKBCSUBPOTAUHBUDSEUHUFQTUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Indexed union of a constant class, i.e. where ` B ` does not depend on
       ` x ` .  (Contributed by Jim Kingdon, 15-Aug-2018.) $)
    iunconstm $p |- ( E. x x e. A -> U_ x e. A B = B ) $=
      ( vy cv wcel wex ciun wrex r19.9rmv eliun syl6rbbr eqrdv ) AEBFAGZDABCHZC
      NDEZCFZQABIPOFQAABJAPBCKLM $.
  $}

  ${
    $d x z A $.  $d x z B $.  $d y z A $.
    $( Indexed intersection of a constant class, i.e. where ` B ` does not
       depend on ` x ` .  (Contributed by Jim Kingdon, 19-Dec-2018.) $)
    iinconstm $p |- ( E. y y e. A -> |^|_ x e. A B = B ) $=
      ( vz cv wcel wex ciin wral r19.3rmv cvv wb vex eliin ax-mp syl6rbbr eqrdv
      ) BFCGBHZEACDIZDSEFZDGZUBACJZUATGZUBABCKUALGUDUCMENAUACDLOPQR $.
  $}

  ${
    $d x y $.  $d y z A $.  $d x z B $.  $d z C $.
    $( Law combining indexed union with indexed intersection.  Eq. 14 in
       [KuratowskiMostowski] p. 109.  This theorem also appears as the last
       example at ~ http://en.wikipedia.org/wiki/Union%5F%28set%5Ftheory%29 .
       (Contributed by NM, 17-Aug-2004.)  (Proof shortened by Andrew Salmon,
       25-Jul-2011.) $)
    iuniin $p |- U_ x e. A |^|_ y e. B C C_ |^|_ y e. B U_ x e. A C $=
      ( vz ciin ciun cv wcel wrex wral r19.12 cvv vex eliin ax-mp eliun 3imtr4i
      wb rexbii ralbii ssriv ) FACBDEGZHZBDACEHZGZFIZUDJZACKZUHUFJZBDLZUHUEJUHU
      GJZUHEJZBDLZACKUNACKZBDLUJULUNABCDMUIUOACUHNJZUIUOTFOZBUHDENPQUAUKUPBDAUH
      CERUBSAUHCUDRUQUMULTURBUHDUFNPQSUC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Subclass theorem for indexed union.  (Contributed by NM, 10-Dec-2004.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iunss1 $p |- ( A C_ B -> U_ x e. A C C_ U_ x e. B C ) $=
      ( vy wss ciun cv wcel wrex ssrexv eliun 3imtr4g ssrdv ) BCFZEABDGZACDGZOE
      HZDIZABJSACJRPIRQISABCKARBDLARCDLMN $.

    $( Subclass theorem for indexed union.  (Contributed by NM,
       24-Jan-2012.) $)
    iinss1 $p |- ( A C_ B -> |^|_ x e. B C C_ |^|_ x e. A C ) $=
      ( vy wss ciin cv wcel wral ssralv cvv wb vex eliin ax-mp 3imtr4g ssrdv )
      BCFZEACDGZABDGZSEHZDIZACJZUCABJZUBTIZUBUAIZUCABCKUBLIZUFUDMENZAUBCDLOPUHU
      GUEMUIAUBBDLOPQR $.

    $( Equality theorem for indexed union.  (Contributed by NM,
       27-Jun-1998.) $)
    iuneq1 $p |- ( A = B -> U_ x e. A C = U_ x e. B C ) $=
      ( wss wa ciun wceq iunss1 anim12i eqss 3imtr4i ) BCEZCBEZFABDGZACDGZEZPOE
      ZFBCHOPHMQNRABCDIACBDIJBCKOPKL $.

    $( Equality theorem for restricted existential quantifier.  (Contributed by
       NM, 27-Jun-1998.) $)
    iineq1 $p |- ( A = B -> |^|_ x e. A C = |^|_ x e. B C ) $=
      ( vy wceq cv wcel wral cab ciin raleq abbidv df-iin 3eqtr4g ) BCFZEGDHZAB
      IZEJQACIZEJABDKACDKPRSEQABCLMAEBDNAECDNO $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Subclass theorem for indexed union.  (Contributed by NM, 26-Nov-2003.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    ss2iun $p |- ( A. x e. A B C_ C -> U_ x e. A B C_ U_ x e. A C ) $=
      ( vy wss wral ciun cv wcel wrex ssel ralimi rexim syl eliun 3imtr4g ssrdv
      wi ) CDFZABGZEABCHZABDHZUAEIZCJZABKZUDDJZABKZUDUBJUDUCJUAUEUGSZABGUFUHSTU
      IABCDUDLMUEUGABNOAUDBCPAUDBDPQR $.

    $( Equality theorem for indexed union.  (Contributed by NM,
       22-Oct-2003.) $)
    iuneq2 $p |- ( A. x e. A B = C -> U_ x e. A B = U_ x e. A C ) $=
      ( wss wral wa ciun wceq ss2iun anim12i eqss ralbii r19.26 bitri 3imtr4i )
      CDEZABFZDCEZABFZGZABCHZABDHZEZUCUBEZGCDIZABFZUBUCIRUDTUEABCDJABDCJKUGQSGZ
      ABFUAUFUHABCDLMQSABNOUBUCLP $.

    $( Equality theorem for indexed intersection.  (Contributed by NM,
       22-Oct-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iineq2 $p |- ( A. x e. A B = C -> |^|_ x e. A B = |^|_ x e. A C ) $=
      ( vy wceq wral cv wcel cab ciin wb eleq2 ralimi syl abbidv df-iin 3eqtr4g
      ralbi ) CDFZABGZEHZCIZABGZEJUBDIZABGZEJABCKABDKUAUDUFEUAUCUELZABGUDUFLTUG
      ABCDUBMNUCUEABSOPAEBCQAEBDQR $.
  $}

  ${
    iuneq2i.1 $e |- ( x e. A -> B = C ) $.
    $( Equality inference for indexed union.  (Contributed by NM,
       22-Oct-2003.) $)
    iuneq2i $p |- U_ x e. A B = U_ x e. A C $=
      ( wceq ciun iuneq2 mprg ) CDFABCGABDGFABABCDHEI $.

    $( Equality inference for indexed intersection.  (Contributed by NM,
       22-Oct-2003.) $)
    iineq2i $p |- |^|_ x e. A B = |^|_ x e. A C $=
      ( wceq ciin iineq2 mprg ) CDFABCGABDGFABABCDHEI $.
  $}

  ${
    iineq2d.1 $e |- F/ x ph $.
    iineq2d.2 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality deduction for indexed intersection.  (Contributed by NM,
       7-Dec-2011.) $)
    iineq2d $p |- ( ph -> |^|_ x e. A B = |^|_ x e. A C ) $=
      ( wceq wral ciin cv wcel ex ralrimi iineq2 syl ) ADEHZBCIBCDJBCEJHAQBCFAB
      KCLQGMNBCDEOP $.
  $}

  ${
    $d x ph $.
    iuneq2dv.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality deduction for indexed union.  (Contributed by NM,
       3-Aug-2004.) $)
    iuneq2dv $p |- ( ph -> U_ x e. A B = U_ x e. A C ) $=
      ( wceq wral ciun ralrimiva iuneq2 syl ) ADEGZBCHBCDIBCEIGAMBCFJBCDEKL $.

    $( Equality deduction for indexed intersection.  (Contributed by NM,
       3-Aug-2004.) $)
    iineq2dv $p |- ( ph -> |^|_ x e. A B = |^|_ x e. A C ) $=
      ( nfv iineq2d ) ABCDEABGFH $.
  $}

  ${
    $d x A $.  $d x B $.
    iuneq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for indexed union, deduction version.  (Contributed by
       Drahflow, 22-Oct-2015.) $)
    iuneq1d $p |- ( ph -> U_ x e. A C = U_ x e. B C ) $=
      ( wceq ciun iuneq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.

    ${
      $d x ph $.
      iuneq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for indexed union, deduction version.  (Contributed
         by Drahflow, 22-Oct-2015.) $)
      iuneq12d $p |- ( ph -> U_ x e. A C = U_ x e. B D ) $=
        ( ciun iuneq1d wceq cv wcel adantr iuneq2dv eqtrd ) ABCEIBDEIBDFIABCDEG
        JABDEFAEFKBLDMHNOP $.
    $}
  $}

  ${
    $d x ph $.  $d x A $.
    iuneq2d.2 $e |- ( ph -> B = C ) $.
    $( Equality deduction for indexed union.  (Contributed by Drahflow,
       22-Oct-2015.) $)
    iuneq2d $p |- ( ph -> U_ x e. A B = U_ x e. A C ) $=
      ( wceq cv wcel adantr iuneq2dv ) ABCDEADEGBHCIFJK $.
  $}

  ${
    $d x y $.  $d z A $.  $d z B $.  $d x z $.  $d y z $.
    nfiunxy.1 $e |- F/_ y A $.
    nfiunxy.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for indexed union.  (Contributed by
       Mario Carneiro, 25-Jan-2014.) $)
    nfiunxy $p |- F/_ y U_ x e. A B $=
      ( vz ciun cv wcel wrex cab df-iun nfcri nfrexxy nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.

    $( Bound-variable hypothesis builder for indexed intersection.
       (Contributed by Mario Carneiro, 25-Jan-2014.) $)
    nfiinxy $p |- F/_ y |^|_ x e. A B $=
      ( vz ciin cv wcel wral cab df-iin nfcri nfralxy nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.
  $}

  ${
    $d x A $.  $d z A $.  $d z B $.  $d x z $.  $d y z $.
    nfiunya.1 $e |- F/_ y A $.
    nfiunya.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for indexed union.  (Contributed by
       Mario Carneiro, 25-Jan-2014.) $)
    nfiunya $p |- F/_ y U_ x e. A B $=
      ( vz ciun cv wcel wrex cab df-iun nfcri nfrexya nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.

    $( Bound-variable hypothesis builder for indexed intersection.
       (Contributed by Mario Carneiro, 25-Jan-2014.) $)
    nfiinya $p |- F/_ y |^|_ x e. A B $=
      ( vz ciin cv wcel wral cab df-iin nfcri nfralya nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Bound-variable hypothesis builder for indexed union.  (Contributed by
       NM, 12-Oct-2003.) $)
    nfiu1 $p |- F/_ x U_ x e. A B $=
      ( vy ciun cv wcel wrex cab df-iun nfre1 nfab nfcxfr ) AABCEDFCGZABHZDIADB
      CJOADNABKLM $.

    $( Bound-variable hypothesis builder for indexed intersection.
       (Contributed by NM, 15-Oct-2003.) $)
    nfii1 $p |- F/_ x |^|_ x e. A B $=
      ( vy ciin cv wcel wral cab df-iin nfra1 nfab nfcxfr ) AABCEDFCGZABHZDIADB
      CJOADNABKLM $.
  $}

  ${
    $d y z w A $.  $d y z w B $.  $d w C z $.  $d w x y z $.
    $( Alternate definition of indexed union when ` B ` is a set.  Definition
       15(a) of [Suppes] p. 44.  (Contributed by NM, 23-Mar-2006.)  (Proof
       shortened by Andrew Salmon, 25-Jul-2011.) $)
    dfiun2g $p |- ( A. x e. A B e. C ->
                  U_ x e. A B = U. { y | E. x e. A y = B } ) $=
      ( vz wcel wral ciun cv wceq wrex cab cuni wa wex nfra1 wb rsp syl6bb syl6
      clel3g rexbida rexcom4 r19.41v exbii exancom bitri eliun eluniab 3bitr4g
      imp eqrdv ) DEGZACHZFACDIZBJZDKZACLZBMNZUOFJZDGZACLZVAUQGZUSOBPZVAUPGVAUT
      GUOVCURVDOZACLZBPZVEUOVCVFBPZACLVHUOVBVIACUNACQUOAJCGZVBVIRZUOVJUNVKUNACS
      BVADEUBUAULUCVFABCUDTVHUSVDOZBPVEVGVLBURVDACUEUFUSVDBUGUHTAVACDUIUSBVAUJU
      KUM $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       (Contributed by Jeff Hankins, 27-Aug-2009.) $)
    dfiin2g $p |- ( A. x e. A B e. C
               -> |^|_ x e. A B = |^| { y | E. x e. A y = B } ) $=
      ( vw vz wcel wral cv cab wceq wrex wi wal df-ral wb eqeq1 albii bitr4i
      ciin cint eleq2 biimprcd alrimiv eqid imbi12d mpii impbid2 imim2i pm5.74d
      spcgv alimi albi syl sylbi alcom r19.23v vex rexbidv elab imbi1i 3bitr3ri
      19.21v syl6bb syl5bb abbidv df-iin df-int 3eqtr4g ) DEHZACIZFJZDHZACIZFKG
      JZBJZDLZACMZBKZHZVMVPHZNZGOZFKACDUAVTUBVLVOWDFVOAJCHZVNNZAOZVLWDVNACPVLWG
      WEVPDLZWBNZGOZNZAOZWDVLWEVKNZAOZWGWLQZVKACPWNWFWKQZAOWOWMWPAWMWEVNWJVKVNW
      JQWEVKVNWJVNWIGWHWBVNVPDVMUCZUDUEVKWJDDLZVNDUFWIWRVNNGDEWHWHWRWBVNVPDDRWQ
      UGULUHUIUJUKUMWFWKAUNUOUPWIACIZGOZWEWINZGOZAOZWDWLWTXAAOZGOXCWSXDGWIACPSX
      AAGUQTWSWCGWSWHACMZWBNWCWHWBACURWAXEWBVSXEBVPGUSVQVPLVRWHACVQVPDRUTVAVBTS
      XBWKAWEWIGVDSVCVEVFVGAFCDVHFGVTVIVJ $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    dfiun2.1 $e |- B e. _V $.
    $( Alternate definition of indexed union when ` B ` is a set.  Definition
       15(a) of [Suppes] p. 44.  (Contributed by NM, 27-Jun-1998.)  (Revised by
       David Abernethy, 19-Jun-2012.) $)
    dfiun2 $p |- U_ x e. A B = U. { y | E. x e. A y = B } $=
      ( cvv wcel ciun cv wceq wrex cab cuni dfiun2g a1i mprg ) DFGZACDHBIDJACKB
      LMJACABCDFNQAICGEOP $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       Definition 15(b) of [Suppes] p. 44.  (Contributed by NM, 28-Jun-1998.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    dfiin2 $p |- |^|_ x e. A B = |^| { y | E. x e. A y = B } $=
      ( cvv wcel ciin cv wceq wrex cab cint dfiin2g a1i mprg ) DFGZACDHBIDJACKB
      LMJACABCDFNQAICGEOP $.
  $}

  ${
    $d x z $.  $d y z w $.  $d z A $.  $d z w B $.  $d z w C $.
    $( Define double indexed union.  (Contributed by FL, 6-Nov-2013.) $)
    dfiunv2 $p |- U_ x e. A U_ y e. B C =
      { z | E. x e. A E. y e. B z e. C } $=
      ( vw ciun cv wcel wrex cab wceq df-iun a1i iuneq2i vex weq eleq1 rexbidv
      elab rexbii abbii 3eqtri ) ADBEFHZHADGIZFJZBEKZGLZHCIZUIJZADKZCLUJFJZBEKZ
      ADKZCLADUEUIUEUIMAIDJBGEFNOPACDUINULUOCUKUNADUHUNGUJCQGCRUGUMBEUFUJFSTUAU
      BUCUD $.
  $}

  ${
    $d z y A $.  $d z x A $.  $d z B $.  $d z C $.
    cbviun.1 $e |- F/_ y B $.
    cbviun.2 $e |- F/_ x C $.
    cbviun.3 $e |- ( x = y -> B = C ) $.
    $( Rule used to change the bound variables in an indexed union, with the
       substitution specified implicitly by the hypothesis.  (Contributed by
       NM, 26-Mar-2006.)  (Revised by Andrew Salmon, 25-Jul-2011.) $)
    cbviun $p |- U_ x e. A B = U_ y e. A C $=
      ( vz cv wcel wrex cab ciun nfcri weq eleq2d cbvrex abbii df-iun 3eqtr4i )
      IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBICE
      TUA $.

    $( Change bound variables in an indexed intersection.  (Contributed by Jeff
       Hankins, 26-Aug-2009.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    cbviin $p |- |^|_ x e. A B = |^|_ y e. A C $=
      ( vz cv wcel wral cab ciin nfcri weq eleq2d cbvral abbii df-iin 3eqtr4i )
      IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBICE
      TUA $.
  $}

  ${
    $d x A $.  $d y A $.  $d y z B $.  $d x z C $.
    cbviunv.1 $e |- ( x = y -> B = C ) $.
    $( Rule used to change the bound variables in an indexed union, with the
       substitution specified implicitly by the hypothesis.  (Contributed by
       NM, 15-Sep-2003.) $)
    cbviunv $p |- U_ x e. A B = U_ y e. A C $=
      ( nfcv cbviun ) ABCDEBDGAEGFH $.

    $( Change bound variables in an indexed intersection.  (Contributed by Jeff
       Hankins, 26-Aug-2009.) $)
    cbviinv $p |- |^|_ x e. A B = |^|_ y e. A C $=
      ( nfcv cbviin ) ABCDEBDGAEGFH $.
  $}

  ${
    $d x y C $.  $d y A $.  $d y B $.
    $( Subset theorem for an indexed union.  (Contributed by NM, 13-Sep-2003.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iunss $p |- ( U_ x e. A B C_ C <-> A. x e. A B C_ C ) $=
      ( vy ciun wss cv wcel wrex cab wal wral df-iun sseq1i abss ralbii ralcom4
      wi dfss2 r19.23v albii 3bitrri 3bitri ) ABCFZDGEHZCIZABJZEKZDGUHUFDIZSZEL
      ZCDGZABMZUEUIDAEBCNOUHEDPUNUGUJSZELZABMUOABMZELULUMUPABECDTQUOAEBRUQUKEUG
      UJABUAUBUCUD $.
  $}

  ${
    $d x y C $.  $d y A $.  $d y B $.
    $( Subset implication for an indexed union.  (Contributed by NM,
       3-Sep-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    ssiun $p |- ( E. x e. A C C_ B -> C C_ U_ x e. A B ) $=
      ( vy wss wrex ciun cv wcel ssel reximi r19.37av syl eliun syl6ibr ssrdv
      wi ) DCFZABGZEDABCHZTEIZDJZUBCJZABGZUBUAJTUCUDRZABGUCUERSUFABDCUBKLUCUDAB
      MNAUBBCOPQ $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Identity law for subset of an indexed union.  (Contributed by NM,
       12-Oct-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    ssiun2 $p |- ( x e. A -> B C_ U_ x e. A B ) $=
      ( vy cv wcel ciun wrex rspe ex eliun syl6ibr ssrdv ) AEBFZDCABCGZNDEZCFZQ
      ABHZPOFNQRQABIJAPBCKLM $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.
    ssiun2s.1 $e |- ( x = C -> B = D ) $.
    $( Subset relationship for an indexed union.  (Contributed by NM,
       26-Oct-2003.) $)
    ssiun2s $p |- ( C e. A -> D C_ U_ x e. A B ) $=
      ( ciun wss nfcv nfiu1 nfss cv wceq sseq1d ssiun2 vtoclgaf ) CABCGZHEQHADB
      ADIAEQAEIABCJKALDMCEQFNABCOP $.
  $}

  ${
    $d x y $.  $d x B $.  $d y C $.  $d x D $.
    $( A subclass condition on the members of two indexed classes ` C ( x ) `
       and ` D ( y ) ` that implies a subclass relation on their indexed
       unions.  Generalization of Proposition 8.6 of [TakeutiZaring] p. 59.
       Compare ~ uniss2 .  (Contributed by NM, 9-Dec-2004.) $)
    iunss2 $p |- ( A. x e. A E. y e. B C C_ D ->
                 U_ x e. A C C_ U_ y e. B D ) $=
      ( wss wrex wral ciun ssiun ralimi iunss sylibr ) EFGBDHZACIEBDFJZGZACIACE
      JPGOQACBDFEKLACEPMN $.
  $}

  ${
    $d y A $.  $d x y $.  $d x B $.
    $( The indexed union of a class abstraction.  (Contributed by NM,
       27-Dec-2004.) $)
    iunab $p |- U_ x e. A { y | ph } = { y | E. x e. A ph } $=
      ( cab ciun wrex wceq cv wcel nfcv nfab1 nfiunxy cleqf abid rexbii 3bitr4i
      wb eliun mpgbir ) BDACEZFZABDGZCEZHCIZUBJZUEUDJZRCCUBUDBCDUACDKACLMUCCLNU
      EUAJZBDGUCUFUGUHABDACOPBUEDUASUCCOQT $.

    $( The indexed union of a restricted class abstraction.  (Contributed by
       NM, 3-Jan-2004.)  (Proof shortened by Mario Carneiro, 14-Nov-2016.) $)
    iunrab $p |- U_ x e. A { y e. B | ph } = { y e. B | E. x e. A ph } $=
      ( cv wcel cab ciun wrex crab iunab wceq df-rab a1i iuneq2i r19.42v eqtr4i
      wa abbii 3eqtr4i ) BDCFEGZASZCHZIUCBDJZCHZBDACEKZIABDJZCEKZUCBCDLBDUGUDUG
      UDMBFDGACENOPUIUBUHSZCHUFUHCENUEUJCUBABDQTRUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    iunxdif2.1 $e |- ( x = y -> C = D ) $.
    $( Indexed union with a class difference as its index.  (Contributed by NM,
       10-Dec-2004.) $)
    iunxdif2 $p |- ( A. x e. A E. y e. ( A \ B ) C C_ D ->
                 U_ y e. ( A \ B ) D = U_ x e. A C ) $=
      ( wss cdif wrex wral ciun wceq iunss2 difss iunss1 ax-mp cbviunv sseqtr4i
      wa jctil eqss sylibr ) EFHBCDIZJACKZBUDFLZACELZHZUGUFHZTUFUGMUEUIUHABCUDE
      FNUFBCFLZUGUDCHUFUJHCDOBUDCFPQABCEFGRSUAUFUGUBUC $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d x y z $.
    ssiinf.1 $e |- F/_ x C $.
    $( Subset theorem for an indexed intersection.  (Contributed by FL,
       15-Oct-2012.)  (Proof shortened by Mario Carneiro, 14-Oct-2016.) $)
    ssiinf $p |- ( C C_ |^|_ x e. A B <-> A. x e. A C C_ B ) $=
      ( vy cv ciin wcel wral wss cvv vex eliin ax-mp ralbii nfcv ralcomf dfss3
      wb bitri 3bitr4i ) FGZABCHZIZFDJZUCCIZFDJZABJZDUDKDCKZABJUFUGABJZFDJUIUEU
      KFDUCLIUEUKTFMAUCBCLNOPUGFADBEFBQRUAFDUDSUJUHABFDCSPUB $.
  $}

  ${
    $d x C $.
    $( Subset theorem for an indexed intersection.  (Contributed by NM,
       15-Oct-2003.) $)
    ssiin $p |- ( C C_ |^|_ x e. A B <-> A. x e. A C C_ B ) $=
      ( nfcv ssiinf ) ABCDADEF $.
  $}

  ${
    $d x y C $.  $d y A $.  $d y B $.
    $( Subset implication for an indexed intersection.  (Contributed by NM,
       15-Oct-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iinss $p |- ( E. x e. A B C_ C -> |^|_ x e. A B C_ C ) $=
      ( vy wss wrex ciin cv wcel wral cvv wb vex eliin ax-mp wi reximi r19.36av
      ssel syl syl5bi ssrdv ) CDFZABGZEABCHZDEIZUFJZUGCJZABKZUEUGDJZUGLJUHUJMEN
      AUGBCLOPUEUIUKQZABGUJUKQUDULABCDUGTRUIUKABSUAUBUC $.
  $}

  ${
    $d A y $.  $d B y $.  $d x y $.
    $( An indexed intersection is included in any of its members.  (Contributed
       by FL, 15-Oct-2012.) $)
    iinss2 $p |- ( x e. A -> |^|_ x e. A B C_ B ) $=
      ( vy cv wcel ciin wral wi cvv wb vex eliin ax-mp rsp sylbi com12 ssrdv )
      AEBFZDABCGZCDEZTFZSUACFZUBUCABHZSUCIUAJFUBUDKDLAUABCJMNUCABOPQR $.
  $}

  ${
    $d x y A $.
    $( Class union in terms of indexed union.  Definition in [Stoll] p. 43.
       (Contributed by NM, 28-Jun-1998.) $)
    uniiun $p |- U. A = U_ x e. A x $=
      ( vy cuni wel wrex cab cv ciun dfuni2 df-iun eqtr4i ) BDCAEABFCGABAHZICAB
      JACBMKL $.

    $( Class intersection in terms of indexed intersection.  Definition in
       [Stoll] p. 44.  (Contributed by NM, 28-Jun-1998.) $)
    intiin $p |- |^| A = |^|_ x e. A x $=
      ( vy cint wel wral cab cv ciin dfint2 df-iin eqtr4i ) BDCAEABFCGABAHZICAB
      JACBMKL $.

    $( An indexed union of singletons recovers the index set.  (Contributed by
       NM, 6-Sep-2005.) $)
    iunid $p |- U_ x e. A { x } = A $=
      ( vy cv csn ciun wceq cab wcel df-sn equcom abbii eqtri a1i iuneq2i iunab
      wrex risset abid2 3eqtr2i ) ABADZEZFABUACDZGZCHZFZBABUBUEUBUEGUABIUBUCUAG
      ZCHUECUAJUGUDCCAKLMNOUFUDABQZCHUCBIZCHBUDACBPUIUHCAUCBRLCBSTM $.
  $}

  ${
    $d x y $.  $d y A $.
    $( An indexed union of the empty set is empty.  (Contributed by NM,
       26-Mar-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iun0 $p |- U_ x e. A (/) = (/) $=
      ( vy c0 ciun cv wcel wrex wn noel a1i nrex eliun mtbir 2false eqriv ) CAB
      DEZDCFZQGZRDGZSTABHTABTIAFBGRJZKLARBDMNUAOP $.

    $( An empty indexed union is empty.  (Contributed by NM, 4-Dec-2004.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    0iun $p |- U_ x e. (/) A = (/) $=
      ( vy c0 ciun cv wcel wrex rex0 eliun mtbir noel 2false eqriv ) CADBEZDCFZ
      OGZPDGQPBGZADHRAIAPDBJKPLMN $.

    $( An empty indexed intersection is the universal class.  (Contributed by
       NM, 20-Oct-2005.) $)
    0iin $p |- |^|_ x e. (/) A = _V $=
      ( vy c0 ciin cv wcel wral cab cvv df-iin vex ral0 2th abbi2i eqtr4i ) ADB
      ECFZBGZADHZCIJACDBKSCJQJGSCLRAMNOP $.

    $( Indexed intersection with a universal index class.  (Contributed by NM,
       11-Sep-2008.) $)
    viin $p |- |^|_ x e. _V A = { y | A. x y e. A } $=
      ( cvv ciin cv wcel wral cab wal df-iin ralv abbii eqtri ) ADCEBFCGZADHZBI
      OAJZBIABDCKPQBOALMN $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( There is an inhabited class in an indexed collection ` B ( x ) ` iff the
       indexed union of them is inhabited.  (Contributed by Jim Kingdon,
       16-Aug-2018.) $)
    iunn0m $p |- ( E. x e. A E. y y e. B <-> E. y y e. U_ x e. A B ) $=
      ( cv wcel wex wrex ciun rexcom4 eliun exbii bitr4i ) BEZDFZBGACHOACHZBGNA
      CDIFZBGOABCJQPBANCDKLM $.
  $}

  ${
    $d y A $.  $d x y $.
    $( Indexed intersection of a class builder.  (Contributed by NM,
       6-Dec-2011.) $)
    iinab $p |- |^|_ x e. A { y | ph } = { y | A. x e. A ph } $=
      ( cab ciin wral wceq cv wcel nfcv nfab1 nfiinxy cleqf abid ralbii cvv vex
      wb eliin ax-mp 3bitr4i mpgbir ) BDACEZFZABDGZCEZHCIZUEJZUHUGJZSCCUEUGBCDU
      DCDKACLMUFCLNUHUDJZBDGZUFUIUJUKABDACOPUHQJUIULSCRBUHDUDQTUAUFCOUBUC $.

    $d x A $.  $d x B $.
    $( Indexed intersection of a restricted class builder.  (Contributed by Jim
       Kingdon, 16-Aug-2018.) $)
    iinrabm $p |- ( E. x x e. A
          -> |^|_ x e. A { y e. B | ph } = { y e. B | A. x e. A ph } ) $=
      ( cv wcel wex wa wral cab crab ciin r19.28mv abbidv wceq df-rab a1i iinab
      iineq2i eqtri 3eqtr4g ) BFDGZBHZCFEGZAIZBDJZCKZUEABDJZIZCKBDACELZMZUICELU
      DUGUJCUEABDNOULBDUFCKZMUHBDUKUMUKUMPUCACEQRTUFBCDSUAUICEQUB $.
  $}

  ${
    $d y A $.  $d x y B $.  $d y C $.
    $( Indexed union of intersection.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ uniiun to recover
       Enderton's theorem.  (Contributed by NM, 26-Mar-2004.) $)
    iunin2 $p |- U_ x e. A ( B i^i C ) = ( B i^i U_ x e. A C ) $=
      ( vy cin ciun cv wcel wrex r19.42v elin rexbii eliun anbi2i 3bitr4i eqriv
      wa ) EABCDFZGZCABDGZFZEHZSIZABJZUCCIZUCUAIZRZUCTIUCUBIUFUCDIZRZABJUFUIABJ
      ZRUEUHUFUIABKUDUJABUCCDLMUGUKUFAUCBDNOPAUCBSNUCCUALPQ $.

    $( Indexed union of intersection.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ uniiun to recover
       Enderton's theorem.  (Contributed by Mario Carneiro, 30-Aug-2015.) $)
    iunin1 $p |- U_ x e. A ( C i^i B ) = ( U_ x e. A C i^i B ) $=
      ( cin ciun iunin2 wceq cv wcel incom a1i iuneq2i 3eqtr4i ) ABCDEZFCABDFZE
      ABDCEZFPCEABCDGABQOQOHAIBJDCKLMPCKN $.

    $( Indexed union of class difference.  Compare to theorem "De Morgan's
       laws" in [Enderton] p. 31.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iundif2ss $p |- U_ x e. A ( B \ C ) C_ ( B \ |^|_ x e. A C ) $=
      ( vy cdif ciun ciin cv wcel wrex wn wa eldif rexbii r19.42v wral rexnalim
      bitri cvv wb vex eliin ax-mp sylnibr anim2i sylbi eliun 3imtr4i ssriv ) E
      ABCDFZGZCABDHZFZEIZUKJZABKZUOCJZUOUMJZLZMZUOULJUOUNJUQURUODJZLZABKZMZVAUQ
      URVCMZABKVEUPVFABUOCDNOURVCABPSVDUTURVDVBABQZUSVBABRUOTJUSVGUAEUBAUOBDTUC
      UDUEUFUGAUOBUKUHUOCUMNUIUJ $.
  $}

  ${
    $d x B $.  $d y C $.  $d x D $.  $d x y $.
    $( Rearrange indexed unions over intersection.  (Contributed by NM,
       18-Dec-2008.) $)
    2iunin $p |- U_ x e. A U_ y e. B ( C i^i D )
        = ( U_ x e. A C i^i U_ y e. B D ) $=
      ( cin ciun wceq cv wcel iunin2 a1i iuneq2i iunin1 eqtri ) ACBDEFGHZHACEBD
      FHZGZHACEHRGACQSQSIAJCKBDEFLMNACREOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Indexed intersection of class difference.  Compare to Theorem "De
       Morgan's laws" in [Enderton] p. 31.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iindif2m $p |- ( E. x x e. A ->
                 |^|_ x e. A ( B \ C ) = ( B \ U_ x e. A C ) ) $=
      ( vy cv wcel wex cdif ciin ciun wral wn r19.28mv eldif bicomi ralbii wrex
      wa cvv ralnex eliun xchbinxr anbi2i 3bitr3g vex eliin ax-mp 3bitr4g eqrdv
      wb ) AFBGAHZEABCDIZJZCABDKZIZULEFZUMGZABLZUQCGZUQUOGZMZSZUQUNGZUQUPGULUTU
      QDGZMZSZABLUTVFABLZSUSVCUTVFABNVGURABURVGUQCDOPQVHVBUTVHVEABRVAVEABUAAUQB
      DUBUCUDUEUQTGVDUSUKEUFAUQBUMTUGUHUQCUOOUIUJ $.

    $( Indexed intersection of intersection.  Compare to Theorem "Distributive
       laws" in [Enderton] p. 30.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iinin2m $p |- ( E. x x e. A ->
      |^|_ x e. A ( B i^i C ) = ( B i^i |^|_ x e. A C ) ) $=
      ( vy cv wcel wex cin ciin wral wa r19.28mv elin ralbii cvv wb eliin ax-mp
      3bitr4g vex anbi2i eqrdv ) AFBGAHZEABCDIZJZCABDJZIZUDEFZUEGZABKZUICGZUIUG
      GZLZUIUFGZUIUHGUDULUIDGZLZABKULUPABKZLUKUNULUPABMUJUQABUICDNOUMURULUIPGZU
      MURQEUAZAUIBDPRSUBTUSUOUKQUTAUIBUEPRSUICUGNTUC $.

    $( Indexed intersection of intersection.  Compare to Theorem "Distributive
       laws" in [Enderton] p. 30.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iinin1m $p |- ( E. x x e. A ->
      |^|_ x e. A ( C i^i B ) = ( |^|_ x e. A C i^i B ) ) $=
      ( cv wcel wex cin ciin iinin2m wceq incom a1i iineq2i 3eqtr4g ) AEBFZAGAB
      CDHZICABDIZHABDCHZIRCHABCDJABSQSQKPDCLMNRCLO $.
  $}

  ${
    $d A x y $.  $d X x y $.  $d B x $.
    $( Elementhood in a relative intersection.  (Contributed by Mario Carneiro,
       30-Dec-2016.) $)
    elriin $p |- ( B e. ( A i^i |^|_ x e. X S ) <->
      ( B e. A /\ A. x e. X B e. S ) ) $=
      ( ciin cin wcel wa wral elin eliin pm5.32i bitri ) CBAEDFZGHCBHZCOHZIPCDH
      AEJZICBOKPQRACEDBLMN $.

    $( Relative intersection of an empty family.  (Contributed by Stefan
       O'Rear, 3-Apr-2015.) $)
    riin0 $p |- ( X = (/) -> ( A i^i |^|_ x e. X S ) = A ) $=
      ( c0 wceq ciin cin iineq1 ineq2d cvv 0iin ineq2i inv1 eqtri syl6eq ) DEFZ
      BADCGZHBAECGZHZBQRSBADECIJTBKHBSKBACLMBNOP $.

    $( Relative intersection of an inhabited family.  (Contributed by Jim
       Kingdon, 19-Aug-2018.) $)
    riinm $p |- ( ( A. x e. X S C_ A /\ E. x x e. X ) ->
        ( A i^i |^|_ x e. X S ) = |^|_ x e. X S ) $=
      ( wss wral cv wcel wex ciin cin incom wceq wrex r19.2m ancoms iinss df-ss
      wa syl sylib syl5eq ) CBEZADFZAGDHAIZSZBADCJZKUGBKZUGBUGLUFUGBEZUHUGMUFUC
      ADNZUIUEUDUJUCADOPADCBQTUGBRUAUB $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d y V $.
    iinxsng.1 $e |- ( x = A -> B = C ) $.
    $( A singleton index picks out an instance of an indexed intersection's
       argument.  (Contributed by NM, 15-Jan-2012.)  (Proof shortened by Mario
       Carneiro, 17-Nov-2016.) $)
    iinxsng $p |- ( A e. V -> |^|_ x e. { A } B = C ) $=
      ( vy wcel csn ciin cv wral cab df-iin wceq eleq2d ralsng abbi1dv syl5eq )
      BEHZABIZCJGKZCHZAUALZGMDAGUACNTUDGDUCUBDHABEAKBOCDUBFPQRS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x y D $.  $d x y E $.  $d y V $.
    $d y W $.
    iinxprg.1 $e |- ( x = A -> C = D ) $.
    iinxprg.2 $e |- ( x = B -> C = E ) $.
    $( Indexed intersection with an unordered pair index.  (Contributed by NM,
       25-Jan-2012.) $)
    iinxprg $p |- ( ( A e. V /\ B e. W )
        -> |^|_ x e. { A , B } C = ( D i^i E ) ) $=
      ( vy wcel wa cv cpr wral cab ciin wceq eleq2d ralprg abbidv df-in 3eqtr4g
      cin df-iin ) BGLCHLMZKNZDLZABCOZPZKQUHELZUHFLZMZKQAUJDREFUEUGUKUNKUIULUMA
      BCGHANZBSDEUHITUOCSDFUHJTUAUBAKUJDUFKEFUCUD $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d y V $.
    iunxsng.1 $e |- ( x = A -> B = C ) $.
    $( A singleton index picks out an instance of an indexed union's argument.
       (Contributed by Mario Carneiro, 25-Jun-2016.) $)
    iunxsng $p |- ( A e. V -> U_ x e. { A } B = C ) $=
      ( vy wcel csn ciun cv wrex eliun wceq eleq2d rexsng syl5bb eqrdv ) BEHZGA
      BIZCJZDGKZUAHUBCHZATLSUBDHZAUBTCMUCUDABEAKBNCDUBFOPQR $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.
    iunxsn.1 $e |- A e. _V $.
    iunxsn.2 $e |- ( x = A -> B = C ) $.
    $( A singleton index picks out an instance of an indexed union's argument.
       (Contributed by NM, 26-Mar-2004.)  (Proof shortened by Mario Carneiro,
       25-Jun-2016.) $)
    iunxsn $p |- U_ x e. { A } B = C $=
      ( cvv wcel csn ciun wceq iunxsng ax-mp ) BGHABICJDKEABCDGFLM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Separate a union in an indexed union.  (Contributed by NM,
       27-Dec-2004.)  (Proof shortened by Mario Carneiro, 17-Nov-2016.) $)
    iunun $p |- U_ x e. A ( B u. C ) = ( U_ x e. A B u. U_ x e. A C ) $=
      ( vy cun ciun cv wcel wrex r19.43 elun rexbii eliun orbi12i 3bitr4i eqriv
      wo ) EABCDFZGZABCGZABDGZFZEHZSIZABJZUDUAIZUDUBIZRZUDTIUDUCIUDCIZUDDIZRZAB
      JUJABJZUKABJZRUFUIUJUKABKUEULABUDCDLMUGUMUHUNAUDBCNAUDBDNOPAUDBSNUDUAUBLP
      Q $.

    $( Separate a union in the index of an indexed union.  (Contributed by NM,
       26-Mar-2004.)  (Proof shortened by Mario Carneiro, 17-Nov-2016.) $)
    iunxun $p |- U_ x e. ( A u. B ) C = ( U_ x e. A C u. U_ x e. B C ) $=
      ( vy cun ciun cv wcel wrex rexun eliun orbi12i bitr4i elun 3bitr4i eqriv
      wo ) EABCFZDGZABDGZACDGZFZEHZDIZASJZUDUAIZUDUBIZRZUDTIUDUCIUFUEABJZUEACJZ
      RUIUEABCKUGUJUHUKAUDBDLAUDCDLMNAUDSDLUDUAUBOPQ $.
  $}

  ${
    $d x y z $.  $d x z A $.  $d z B $.  $d y z C $.
    $( Separate an indexed union in the index of an indexed union.
       (Contributed by Mario Carneiro, 5-Dec-2016.) $)
    iunxiun $p |- U_ x e. U_ y e. A B C = U_ y e. A U_ x e. B C $=
      ( vz ciun cv wcel wa wex eliun anbi1i r19.41v bitr4i exbii rexcom4 df-rex
      wrex 3bitr4i bitri rexbii eqriv ) FABCDGZEGZBCADEGZGZFHZEIZAUDSZUHUFIZBCS
      ZUHUEIUHUGIAHZUDIZUIJZAKZUMDIZUIJZAKZBCSZUJULUPURBCSZAKUTUOVAAUOUQBCSZUIJ
      VAUNVBUIBUMCDLMUQUIBCNOPURBACQOUIAUDRUKUSBCUKUIADSUSAUHDELUIADRUAUBTAUHUD
      ELBUHCUFLTUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( A relationship involving union and indexed intersection.  Exercise 23 of
       [Enderton] p. 33 but with equality changed to subset.  (Contributed by
       Jim Kingdon, 19-Aug-2018.) $)
    iinuniss $p |- ( A u. |^| B ) C_ |^|_ x e. B ( A u. x ) $=
      ( vy cv wcel cint wo cab cun wral ciin r19.32vr elint2 orbi2i elun ralbii
      vex 3imtr4i ss2abi df-un df-iin 3sstr4i ) DEZBFZUDCGZFZHZDIUDBAEZJZFZACKZ
      DIBUFJACUJLUHULDUEUDUIFZACKZHUEUMHZACKUHULUEUMACMUGUNUEAUDCDRNOUKUOACUDBU
      IPQSTDBUFUAADCUJUBUC $.

    $( A relationship involving union and indexed union.  Exercise 25 of
       [Enderton] p. 33 but with biconditional changed to implication.
       (Contributed by Jim Kingdon, 19-Aug-2018.) $)
    iununir $p |- ( ( A u. U. B ) = U_ x e. B ( A u. x ) ->
        ( B = (/) -> A = (/) ) ) $=
      ( c0 wceq cuni cun cv ciun unieq syl6eq uneq2d un0 iuneq1 eqeq12d biimpcd
      uni0 0iun ) CDEZBCFZGZACBAHGZIZEBDESUABUCDSUABDGBSTDBSTDFDCDJQKLBMKSUCADU
      BIDACDUBNAUBRKOP $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass relationship for power class and union.  (Contributed by NM,
       18-Jul-2006.) $)
    sspwuni $p |- ( A C_ ~P B <-> U. A C_ B ) $=
      ( vx cv cpw wcel wral wss cuni vex elpw ralbii dfss3 unissb 3bitr4i ) CDZ
      BEZFZCAGPBHZCAGAQHAIBHRSCAPBCJKLCAQMCABNO $.

    $( Two ways to express a collection of subclasses.  (Contributed by NM,
       19-Jul-2006.) $)
    pwssb $p |- ( A C_ ~P B <-> A. x e. A x C_ B ) $=
      ( cpw wss cuni cv wral sspwuni unissb bitri ) BCDEBFCEAGCEABHBCIABCJK $.
  $}

  $( Relationship for power class and union.  (Contributed by NM,
     18-Jul-2006.) $)
  elpwuni $p |- ( B e. A -> ( A C_ ~P B <-> U. A = B ) ) $=
    ( cpw wss cuni wcel wceq sspwuni unissel expcom eqimss impbid1 syl5bb ) ABC
    DAEZBDZBAFZNBGZABHPOQOPQABIJNBKLM $.

  ${
    $d x y A $.
    $( The power class of an intersection in terms of indexed intersection.
       Exercise 24(a) of [Enderton] p. 33.  (Contributed by NM,
       29-Nov-2003.) $)
    iinpw $p |- ~P |^| A = |^|_ x e. A ~P x $=
      ( vy cint cpw cv ciin wss wcel wral ssint vex elpw ralbii bitr4i wb eliin
      cvv ax-mp 3bitr4i eqriv ) CBDZEZABAFZEZGZCFZUBHZUGUEIZABJZUGUCIUGUFIZUHUG
      UDHZABJUJAUGBKUIULABUGUDCLZMNOUGUBUMMUGRIUKUJPUMAUGBUERQSTUA $.

    $( Inclusion of an indexed union of a power class in the power class of the
       union of its index.  Part of Exercise 24(b) of [Enderton] p. 33.
       (Contributed by NM, 25-Nov-2003.) $)
    iunpwss $p |- U_ x e. A ~P x C_ ~P U. A $=
      ( vy cpw ciun cuni wss wrex wcel ssiun eliun vex elpw rexbii bitri uniiun
      cv sseq2i 3imtr4i ssriv ) CABAQZDZEZBFZDZCQZUAGZABHZUFABUAEZGZUFUCIZUFUEI
      ZABUAUFJUKUFUBIZABHUHAUFBUBKUMUGABUFUACLZMNOULUFUDGUJUFUDUNMUDUIUFABPROST
      $.
  $}

  ${
    $d x X $.
    $( Relative intersection of an inhabited class.  (Contributed by Jim
       Kingdon, 19-Aug-2018.) $)
    rintm $p |- ( ( X C_ ~P A /\ E. x x e. X ) -> ( A i^i |^| X ) = |^| X ) $=
      ( cpw wss cv wcel wex wa cint cin incom wceq cuni intssuni2m ssid sspwuni
      mpbi syl6ss df-ss sylib syl5eq ) CBDZEAFCGAHIZBCJZKUEBKZUEBUELUDUEBEUFUEM
      UDUEUCNZBACUCOUCUCEUGBEUCPUCBQRSUEBTUAUB $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                     Disjointness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Disj_ $.

  $( Extend wff notation to include the statement that a family of classes
     ` B ( x ) ` , for ` x e. A ` , is a disjoint family. $)
  wdisj $a wff Disj_ x e. A B $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( A collection of classes ` B ( x ) ` is disjoint when for each element
       ` y ` , it is in ` B ( x ) ` for at most one ` x ` .  (Contributed by
       Mario Carneiro, 14-Nov-2016.)  (Revised by NM, 16-Jun-2017.) $)
    df-disj $a |- ( Disj_ x e. A B <-> A. y E* x e. A y e. B ) $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( Alternate definition for disjoint classes.  (Contributed by NM,
       17-Jun-2017.) $)
    dfdisj2 $p |- ( Disj_ x e. A B <-> A. y E* x ( x e. A /\ y e. B ) ) $=
      ( wdisj cv wcel wrmo wal wa wmo df-disj df-rmo albii bitri ) ACDEBFDGZACH
      ZBIAFCGPJAKZBIABCDLQRBPACMNO $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( If each element of a collection is contained in a disjoint collection,
       the original collection is also disjoint.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjss2 $p |- ( A. x e. A B C_ C ->
      ( Disj_ x e. A C -> Disj_ x e. A B ) ) $=
      ( vy wss wral cv wcel wrmo wal wdisj ssel ralimi rmoim syl alimdv df-disj
      wi 3imtr4g ) CDFZABGZEHZDIZABJZEKUCCIZABJZEKABDLABCLUBUEUGEUBUFUDSZABGUEU
      GSUAUHABCDUCMNUFUDABOPQAEBDRAEBCRT $.
  $}

  $( Equality theorem for disjoint collection.  (Contributed by Mario Carneiro,
     14-Nov-2016.) $)
  disjeq2 $p |- ( A. x e. A B = C ->
    ( Disj_ x e. A B <-> Disj_ x e. A C ) ) $=
    ( wceq wral wdisj wss wi eqimss2 ralimi disjss2 syl eqimss impbid ) CDEZABF
    ZABCGZABDGZQDCHZABFRSIPTABDCJKABDCLMQCDHZABFSRIPUAABCDNKABCDLMO $.

  ${
    $d x ph $.
    disjeq2dv.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality deduction for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq2dv $p |- ( ph -> ( Disj_ x e. A B <-> Disj_ x e. A C ) ) $=
      ( wceq wral wdisj wb ralrimiva disjeq2 syl ) ADEGZBCHBCDIBCEIJANBCFKBCDEL
      M $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( A subset of a disjoint collection is disjoint.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjss1 $p |- ( A C_ B -> ( Disj_ x e. B C -> Disj_ x e. A C ) ) $=
      ( vy wss cv wcel wa wmo wal wdisj wi ssel anim1d alrimiv moim syl dfdisj2
      alimdv 3imtr4g ) BCFZAGZCHZEGDHZIZAJZEKUCBHZUEIZAJZEKACDLABDLUBUGUJEUBUIU
      FMZAKUGUJMUBUKAUBUHUDUEBCUCNOPUIUFAQRTAECDSAEBDSUA $.

    $( Equality theorem for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq1 $p |- ( A = B -> ( Disj_ x e. A C <-> Disj_ x e. B C ) ) $=
      ( wceq wdisj wss wi eqimss2 disjss1 syl eqimss impbid ) BCEZABDFZACDFZNCB
      GOPHCBIACBDJKNBCGPOHBCLABCDJKM $.

    disjeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq1d $p |- ( ph -> ( Disj_ x e. A C <-> Disj_ x e. B C ) ) $=
      ( wceq wdisj wb disjeq1 syl ) ACDGBCEHBDEHIFBCDEJK $.

    $d x ph $.
    disjeq12d.1 $e |- ( ph -> C = D ) $.
    $( Equality theorem for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq12d $p |- ( ph -> ( Disj_ x e. A C <-> Disj_ x e. B D ) ) $=
      ( wdisj disjeq1d wceq cv wcel adantr disjeq2dv bitrd ) ABCEIBDEIBDFIABCDE
      GJABDEFAEFKBLDMHNOP $.
  $}

  ${
    $d x y z A $.  $d z B $.  $d z C $.
    cbvdisj.1 $e |- F/_ y B $.
    cbvdisj.2 $e |- F/_ x C $.
    cbvdisj.3 $e |- ( x = y -> B = C ) $.
    $( Change bound variables in a disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    cbvdisj $p |- ( Disj_ x e. A B <-> Disj_ y e. A C ) $=
      ( vz cv wcel wrmo wal wdisj nfcri weq eleq2d cbvrmo albii df-disj 3bitr4i
      ) IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBI
      CETUA $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.
    cbvdisjv.1 $e |- ( x = y -> B = C ) $.
    $( Change bound variables in a disjoint collection.  (Contributed by Mario
       Carneiro, 11-Dec-2016.) $)
    cbvdisjv $p |- ( Disj_ x e. A B <-> Disj_ y e. A C ) $=
      ( nfcv cbvdisj ) ABCDEBDGAEGFH $.
  $}

  ${
    $d z A $.  $d z B $.  $d x y z $.
    nfdisjv.1 $e |- F/_ y A $.
    nfdisjv.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for disjoint collection.  (Contributed
       by Jim Kingdon, 19-Aug-2018.) $)
    nfdisjv $p |- F/ y Disj_ x e. A B $=
      ( vz wdisj cv wcel wa wmo wal dfdisj2 nfcv nfel nfcri nfan nfmo nfal
      nfxfr ) ACDHAIZCJZGIDJZKZALZGMBAGCDNUFBGUEBAUCUDBBUBCBUBOEPBGDFQRSTUA $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Bound-variable hypothesis builder for disjoint collection.  (Contributed
       by Mario Carneiro, 14-Nov-2016.) $)
    nfdisj1 $p |- F/ x Disj_ x e. A B $=
      ( vy wdisj cv wcel wrmo wal df-disj nfrmo1 nfal nfxfr ) ABCEDFCGZABHZDIAA
      DBCJOADNABKLM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d x C $.
    $( If there is a function ` C ( y ) ` such that ` C ( y ) = x ` for all
       ` y e. B ( x ) ` , then the sets ` B ( x ) ` for distinct ` x e. A ` are
       disjoint.  (Contributed by Mario Carneiro, 10-Dec-2016.) $)
    invdisj $p |- ( A. x e. A A. y e. B C = x -> Disj_ x e. A B ) $=
      ( cv wceq wral wa wmo wal wdisj nfra2xy wi df-ral rsp eqcom syl6ib imim2i
      wcel impd alimi sylbi mo2icl syl alrimi dfdisj2 sylibr ) EAFZGZBDHZACHZUI
      CTZBFDTZIZAJZBKACDLULUPBUJABCDMULUOUIEGZNZAKZUPULUMUKNZAKUSUKACOUTURAUTUM
      UNUQUKUNUQNUMUKUNUJUQUJBDPEUIQRSUAUBUCUOAEUDUEUFABCDUGUH $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Any collection of singletons is disjoint.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    sndisj $p |- Disj_ x e. A { x } $=
      ( vy cv csn wdisj wcel wmo dfdisj2 weq moeq simpr elsn sylib eqcomd moimi
      wa ax-mp mpgbir ) ABADZEZFTBGZCDZUAGZQZAHZCACBUAIACJZAHUFAUCKUEUGAUEUCTUE
      UDCAJUBUDLCTMNOPRS $.
  $}

  $( Any collection of empty sets is disjoint.  (Contributed by Mario Carneiro,
     14-Nov-2016.) $)
  0disj $p |- Disj_ x e. A (/) $=
    ( c0 cv csn wss wral wdisj 0ss rgenw sndisj disjss2 mp2 ) CADEZFZABGABNHABC
    HOABNIJABKABCNLM $.

  ${
    $d x y A $.  $d y B $.
    $( A singleton collection is disjoint.  (Contributed by Mario Carneiro,
       14-Nov-2016.) $)
    disjxsn $p |- Disj_ x e. { A } B $=
      ( vy csn wdisj cv wcel wa wmo dfdisj2 wceq moeq elsni adantr moimi mpgbir
      ax-mp ) ABEZCFAGZSHZDGCHZIZAJZDADSCKTBLZAJUDABMUCUEAUAUEUBTBNOPRQ $.

    $( An empty collection is disjoint.  (Contributed by Mario Carneiro,
       14-Nov-2016.) $)
    disjx0 $p |- Disj_ x e. (/) B $=
      ( c0 csn wss wdisj 0ss disjxsn disjss1 mp2 ) CCDZEAKBFACBFKGACBHACKBIJ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                     Binary relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend wff notation to include the general binary relation predicate.
     Note that the syntax is simply three class symbols in a row.  Since binary
     relations are the only possible wff expressions consisting of three class
     expressions in a row, the syntax is unambiguous. $)
  wbr $a wff A R B $.

  $( Define a general binary relation.  Note that the syntax is simply three
     class symbols in a row.  Definition 6.18 of [TakeutiZaring] p. 29
     generalized to arbitrary classes.  This definition of relations is
     well-defined, although not very meaningful, when classes ` A ` and/or
     ` B ` are proper classes (i.e. are not sets).  On the other hand, we often
     find uses for this definition when ` R ` is a proper class (see for
     example ~ iprc ).  (Contributed by NM, 31-Dec-1993.) $)
  df-br $a |- ( A R B <-> <. A , B >. e. R ) $.

  $( Equality theorem for binary relations.  (Contributed by NM,
     4-Jun-1995.) $)
  breq $p |- ( R = S -> ( A R B <-> A S B ) ) $=
    ( wceq cop wcel wbr eleq2 df-br 3bitr4g ) CDEABFZCGLDGABCHABDHCDLIABCJABDJK
    $.

  $( Equality theorem for a binary relation.  (Contributed by NM,
     31-Dec-1993.) $)
  breq1 $p |- ( A = B -> ( A R C <-> B R C ) ) $=
    ( wceq cop wcel wbr opeq1 eleq1d df-br 3bitr4g ) ABEZACFZDGBCFZDGACDHBCDHMN
    ODABCIJACDKBCDKL $.

  $( Equality theorem for a binary relation.  (Contributed by NM,
     31-Dec-1993.) $)
  breq2 $p |- ( A = B -> ( C R A <-> C R B ) ) $=
    ( wceq cop wcel wbr opeq2 eleq1d df-br 3bitr4g ) ABEZCAFZDGCBFZDGCADHCBDHMN
    ODABCIJCADKCBDKL $.

  $( Equality theorem for a binary relation.  (Contributed by NM,
     8-Feb-1996.) $)
  breq12 $p |- ( ( A = B /\ C = D ) -> ( A R C <-> B R D ) ) $=
    ( wceq wbr breq1 breq2 sylan9bb ) ABFACEGBCEGCDFBDEGABCEHCDBEIJ $.

  ${
    breqi.1 $e |- R = S $.
    $( Equality inference for binary relations.  (Contributed by NM,
       19-Feb-2005.) $)
    breqi $p |- ( A R B <-> A S B ) $=
      ( wceq wbr wb breq ax-mp ) CDFABCGABDGHEABCDIJ $.
  $}

  ${
    breq1i.1 $e |- A = B $.
    $( Equality inference for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq1i $p |- ( A R C <-> B R C ) $=
      ( wceq wbr wb breq1 ax-mp ) ABFACDGBCDGHEABCDIJ $.

    $( Equality inference for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq2i $p |- ( C R A <-> C R B ) $=
      ( wceq wbr wb breq2 ax-mp ) ABFCADGCBDGHEABCDIJ $.

    ${
      breq12i.2 $e |- C = D $.
      $( Equality inference for a binary relation.  (Contributed by NM,
         8-Feb-1996.)  (Proof shortened by Eric Schmidt, 4-Apr-2007.) $)
      breq12i $p |- ( A R C <-> B R D ) $=
        ( wceq wbr wb breq12 mp2an ) ABHCDHACEIBDEIJFGABCDEKL $.
    $}
  $}

  ${
    breq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq1d $p |- ( ph -> ( A R C <-> B R C ) ) $=
      ( wceq wbr wb breq1 syl ) ABCGBDEHCDEHIFBCDEJK $.

    $( Equality deduction for a binary relation.  (Contributed by NM,
       29-Oct-2011.) $)
    breqd $p |- ( ph -> ( C A D <-> C B D ) ) $=
      ( wceq wbr wb breq syl ) ABCGDEBHDECHIFDEBCJK $.

    $( Equality deduction for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq2d $p |- ( ph -> ( C R A <-> C R B ) ) $=
      ( wceq wbr wb breq2 syl ) ABCGDBEHDCEHIFBCDEJK $.

    ${
      breq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for a binary relation.  (Contributed by NM,
         8-Feb-1996.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
      breq12d $p |- ( ph -> ( A R C <-> B R D ) ) $=
        ( wceq wbr wb breq12 syl2anc ) ABCIDEIBDFJCEFJKGHBCDEFLM $.
    $}

    ${
      breq123d.2 $e |- ( ph -> R = S ) $.
      breq123d.3 $e |- ( ph -> C = D ) $.
      $( Equality deduction for a binary relation.  (Contributed by NM,
         29-Oct-2011.) $)
      breq123d $p |- ( ph -> ( A R C <-> B S D ) ) $=
        ( wbr breq12d breqd bitrd ) ABDFKCEFKCEGKABCDEFHJLAFGCEIMN $.
    $}

    ${
      breqan12i.2 $e |- ( ps -> C = D ) $.
      $( Equality deduction for a binary relation.  (Contributed by NM,
         8-Feb-1996.) $)
      breqan12d $p |- ( ( ph /\ ps ) -> ( A R C <-> B R D ) ) $=
        ( wceq wbr wb breq12 syl2an ) ACDJEFJCEGKDFGKLBHICDEFGMN $.

      $( Equality deduction for a binary relation.  (Contributed by NM,
         8-Feb-1996.) $)
      breqan12rd $p |- ( ( ps /\ ph ) -> ( A R C <-> B R D ) ) $=
        ( wbr wb breqan12d ancoms ) ABCEGJDFGJKABCDEFGHILM $.
    $}
  $}

  $( Two classes are different if they don't have the same relationship to a
     third class.  (Contributed by NM, 3-Jun-2012.) $)
  nbrne1 $p |- ( ( A R B /\ -. A R C ) -> B =/= C ) $=
    ( wbr wn wne wceq breq2 biimpcd necon3bd imp ) ABDEZACDEZFBCGMNBCBCHMNBCADI
    JKL $.

  $( Two classes are different if they don't have the same relationship to a
     third class.  (Contributed by NM, 3-Jun-2012.) $)
  nbrne2 $p |- ( ( A R C /\ -. B R C ) -> A =/= B ) $=
    ( wbr wn wne wceq breq1 biimpcd necon3bd imp ) ACDEZBCDEZFABGMNABABHMNABCDI
    JKL $.

  ${
    eqbrtr.1 $e |- A = B $.
    eqbrtr.2 $e |- B R C $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqbrtri $p |- A R C $=
      ( wbr breq1i mpbir ) ACDGBCDGFABCDEHI $.
  $}

  ${
    eqbrtrd.1 $e |- ( ph -> A = B ) $.
    eqbrtrd.2 $e |- ( ph -> B R C ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 8-Oct-1999.) $)
    eqbrtrd $p |- ( ph -> A R C ) $=
      ( wbr breq1d mpbird ) ABDEHCDEHGABCDEFIJ $.
  $}

  ${
    eqbrtrr.1 $e |- A = B $.
    eqbrtrr.2 $e |- A R C $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqbrtrri $p |- B R C $=
      ( eqcomi eqbrtri ) BACDABEGFH $.
  $}

  ${
    eqbrtrrd.1 $e |- ( ph -> A = B ) $.
    eqbrtrrd.2 $e |- ( ph -> A R C ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 24-Oct-1999.) $)
    eqbrtrrd $p |- ( ph -> B R C ) $=
      ( eqcomd eqbrtrd ) ACBDEABCFHGI $.
  $}

  ${
    breqtr.1 $e |- A R B $.
    breqtr.2 $e |- B = C $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    breqtri $p |- A R C $=
      ( wbr breq2i mpbi ) ABDGACDGEBCADFHI $.
  $}

  ${
    breqtrd.1 $e |- ( ph -> A R B ) $.
    breqtrd.2 $e |- ( ph -> B = C ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 24-Oct-1999.) $)
    breqtrd $p |- ( ph -> A R C ) $=
      ( wbr breq2d mpbid ) ABCEHBDEHFACDBEGIJ $.
  $}

  ${
    breqtrr.1 $e |- A R B $.
    breqtrr.2 $e |- C = B $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 5-Aug-1993.) $)
    breqtrri $p |- A R C $=
      ( eqcomi breqtri ) ABCDECBFGH $.
  $}

  ${
    breqtrrd.1 $e |- ( ph -> A R B ) $.
    breqtrrd.2 $e |- ( ph -> C = B ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 24-Oct-1999.) $)
    breqtrrd $p |- ( ph -> A R C ) $=
      ( eqcomd breqtrd ) ABCDEFADCGHI $.
  $}

  ${
    3brtr3.1 $e |- A R B $.
    3brtr3.2 $e |- A = C $.
    3brtr3.3 $e |- B = D $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 11-Aug-1999.) $)
    3brtr3i $p |- C R D $=
      ( eqbrtrri breqtri ) CBDEACBEGFIHJ $.
  $}

  ${
    3brtr4.1 $e |- A R B $.
    3brtr4.2 $e |- C = A $.
    3brtr4.3 $e |- D = B $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 11-Aug-1999.) $)
    3brtr4i $p |- C R D $=
      ( eqbrtri breqtrri ) CBDECABEGFIHJ $.
  $}

  ${
    3brtr3d.1 $e |- ( ph -> A R B ) $.
    3brtr3d.2 $e |- ( ph -> A = C ) $.
    3brtr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 18-Oct-1999.) $)
    3brtr3d $p |- ( ph -> C R D ) $=
      ( wbr breq12d mpbid ) ABCFJDEFJGABDCEFHIKL $.
  $}

  ${
    3brtr4d.1 $e |- ( ph -> A R B ) $.
    3brtr4d.2 $e |- ( ph -> C = A ) $.
    3brtr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 21-Feb-2005.) $)
    3brtr4d $p |- ( ph -> C R D ) $=
      ( wbr breq12d mpbird ) ADEFJBCFJGADBECFHIKL $.
  $}

  ${
    3brtr3g.1 $e |- ( ph -> A R B ) $.
    3brtr3g.2 $e |- A = C $.
    3brtr3g.3 $e |- B = D $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 16-Jan-1997.) $)
    3brtr3g $p |- ( ph -> C R D ) $=
      ( wbr breq12i sylib ) ABCFJDEFJGBDCEFHIKL $.
  $}

  ${
    3brtr4g.1 $e |- ( ph -> A R B ) $.
    3brtr4g.2 $e |- C = A $.
    3brtr4g.3 $e |- D = B $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 16-Jan-1997.) $)
    3brtr4g $p |- ( ph -> C R D ) $=
      ( wbr breq12i sylibr ) ABCFJDEFJGDBECFHIKL $.
  $}

  ${
    syl5eqbr.1 $e |- A = B $.
    syl5eqbr.2 $e |- ( ph -> B R C ) $.
    $( B chained equality inference for a binary relation.  (Contributed by NM,
       11-Oct-1999.) $)
    syl5eqbr $p |- ( ph -> A R C ) $=
      ( eqid 3brtr4g ) ACDBDEGFDHI $.
  $}

  ${
    syl5eqbrr.1 $e |- B = A $.
    syl5eqbrr.2 $e |- ( ph -> B R C ) $.
    $( B chained equality inference for a binary relation.  (Contributed by NM,
       17-Sep-2004.) $)
    syl5eqbrr $p |- ( ph -> A R C ) $=
      ( eqid 3brtr3g ) ACDBDEGFDHI $.
  $}

  ${
    syl5breq.1 $e |- A R B $.
    syl5breq.2 $e |- ( ph -> B = C ) $.
    $( B chained equality inference for a binary relation.  (Contributed by NM,
       11-Oct-1999.) $)
    syl5breq $p |- ( ph -> A R C ) $=
      ( wbr a1i breqtrd ) ABCDEBCEHAFIGJ $.
  $}

  ${
    syl5breqr.1 $e |- A R B $.
    syl5breqr.2 $e |- ( ph -> C = B ) $.
    $( B chained equality inference for a binary relation.  (Contributed by NM,
       24-Apr-2005.) $)
    syl5breqr $p |- ( ph -> A R C ) $=
      ( eqcomd syl5breq ) ABCDEFADCGHI $.
  $}

  ${
    syl6eqbr.1 $e |- ( ph -> A = B ) $.
    syl6eqbr.2 $e |- B R C $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       12-Oct-1999.) $)
    syl6eqbr $p |- ( ph -> A R C ) $=
      ( wbr breq1d mpbiri ) ABDEHCDEHGABCDEFIJ $.
  $}

  ${
    syl6eqbrr.1 $e |- ( ph -> B = A ) $.
    syl6eqbrr.2 $e |- B R C $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eqbrr $p |- ( ph -> A R C ) $=
      ( eqcomd syl6eqbr ) ABCDEACBFHGI $.
  $}

  ${
    syl6breq.1 $e |- ( ph -> A R B ) $.
    syl6breq.2 $e |- B = C $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       11-Oct-1999.) $)
    syl6breq $p |- ( ph -> A R C ) $=
      ( eqid 3brtr3g ) ABCBDEFBHGI $.
  $}

  ${
    syl6breqr.1 $e |- ( ph -> A R B ) $.
    syl6breqr.2 $e |- C = B $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       24-Apr-2005.) $)
    syl6breqr $p |- ( ph -> A R C ) $=
      ( eqcomi syl6breq ) ABCDEFDCGHI $.
  $}


  ${
    ssbrd.1 $e |- ( ph -> A C_ B ) $.
    $( Deduction from a subclass relationship of binary relations.
       (Contributed by NM, 30-Apr-2004.) $)
    ssbrd $p |- ( ph -> ( C A D -> C B D ) ) $=
      ( cop wcel wbr sseld df-br 3imtr4g ) ADEGZBHMCHDEBIDECIABCMFJDEBKDECKL $.
  $}

  ${
    ssbri.1 $e |- A C_ B $.
    $( Inference from a subclass relationship of binary relations.
       (Contributed by NM, 28-Mar-2007.)  (Revised by Mario Carneiro,
       8-Feb-2015.) $)
    ssbri $p |- ( C A D -> C B D ) $=
      ( wbr wi wtru wss a1i ssbrd trud ) CDAFCDBFGHABCDABIHEJKL $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z R $.  $d x y z $.  $d y ph $.
    nfbrd.2 $e |- ( ph -> F/_ x A ) $.
    nfbrd.3 $e |- ( ph -> F/_ x R ) $.
    nfbrd.4 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfbr .
       (Contributed by NM, 13-Dec-2005.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfbrd $p |- ( ph -> F/ x A R B ) $=
      ( wbr cop wcel df-br nfopd nfeld nfxfrd ) CDEICDJZEKABCDELABPEABCDFHMGNO
      $.
  $}

  ${
    $d y A $.  $d y B $.  $d y R $.  $d x y $.
    nfbr.1 $e |- F/_ x A $.
    nfbr.2 $e |- F/_ x R $.
    nfbr.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for binary relation.  (Contributed by
       NM, 1-Sep-1999.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    nfbr $p |- F/ x A R B $=
      ( wbr wnf wtru wnfc a1i nfbrd trud ) BCDHAIJABCDABKJELADKJFLACKJGLMN $.
  $}

  ${
    $d x y $.  $d y z A $.  $d y z R $.
    $( Relationship between a binary relation and a class abstraction.
       (Contributed by Andrew Salmon, 8-Jul-2011.) $)
    brab1 $p |- ( x R A <-> x e. { z | z R A } ) $=
      ( vy cv wbr wsbc cab wcel cvv wb vex breq1 sbcie2g ax-mp df-sbc bitr3i )
      AFZCDGZBFZCDGZBSHZSUBBIJSKJUCTLAMUBEFZCDGTBESKUAUDCDNUDSCDNOPUBBSQR $.
  $}

  $( The union of two binary relations.  (Contributed by NM, 21-Dec-2008.) $)
  brun $p |- ( A ( R u. S ) B <-> ( A R B \/ A S B ) ) $=
    ( cop cun wcel wo wbr elun df-br orbi12i 3bitr4i ) ABEZCDFZGNCGZNDGZHABOIAB
    CIZABDIZHNCDJABOKRPSQABCKABDKLM $.

  $( The intersection of two relations.  (Contributed by FL, 7-Oct-2008.) $)
  brin $p |- ( A ( R i^i S ) B <-> ( A R B /\ A S B ) ) $=
    ( cop cin wcel wa wbr elin df-br anbi12i 3bitr4i ) ABEZCDFZGNCGZNDGZHABOIAB
    CIZABDIZHNCDJABOKRPSQABCKABDKLM $.

  $( The difference of two binary relations.  (Contributed by Scott Fenton,
     11-Apr-2011.) $)
  brdif $p |- ( A ( R \ S ) B <-> ( A R B /\ -. A S B ) ) $=
    ( cop cdif wcel wn wa wbr eldif df-br notbii anbi12i 3bitr4i ) ABEZCDFZGPCG
    ZPDGZHZIABQJABCJZABDJZHZIPCDKABQLUARUCTABCLUBSABDLMNO $.

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d y z D $.  $d y z R $.
    $d x y z $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    sbcbrg $p |- ( A e. D -> ( [. A / x ]. B R C <->
           [_ A / x ]_ B [_ A / x ]_ R [_ A / x ]_ C ) ) $=
      ( vy wbr wsb cv csb wsbc dfsbcq2 wceq csbeq1 breq123d nfcsb1v weq csbeq1a
      nfbr sbie vtoclbg ) CDFHZAGIAGJZCKZAUDDKZAUDFKZHZUCABLABCKZABDKZABFKZHGBE
      UCAGBMUDBNUEUIUFUJUGUKAUDBCOAUDBFOAUDBDOPUCUHAGAUEUFUGAUDCQAUDFQAUDDQTAGR
      CUEDUFFUGAUDCSAUDFSAUDDSPUAUB $.
  $}

  ${
    $d y A $.  $d y C $.  $d y D $.  $d x y R $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.) $)
    sbcbr12g $p |- ( A e. D ->
                 ( [. A / x ]. B R C <-> [_ A / x ]_ B R [_ A / x ]_ C ) ) $=
      ( wcel wbr wsbc csb sbcbrg csbconstg breqd bitrd ) BEGZCDFHABIABCJZABDJZA
      BFJZHPQFHABCDEFKORFPQABFELMN $.
  $}

  ${
    $d y A $.  $d x y C $.  $d y D $.  $d x y R $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.) $)
    sbcbr1g $p |- ( A e. D ->
                  ( [. A / x ]. B R C <-> [_ A / x ]_ B R C ) ) $=
      ( wcel wbr wsbc csb sbcbr12g csbconstg breq2d bitrd ) BEGZCDFHABIABCJZABD
      JZFHPDFHABCDEFKOQDPFABDELMN $.
  $}

  ${
    $d y A $.  $d x y B $.  $d y D $.  $d x y R $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.) $)
    sbcbr2g $p |- ( A e. D ->
                  ( [. A / x ]. B R C <-> B R [_ A / x ]_ C ) ) $=
      ( wcel wbr wsbc csb sbcbr12g csbconstg breq1d bitrd ) BEGZCDFHABIABCJZABD
      JZFHCQFHABCDEFKOPCQFABCELMN $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Ordered-pair class abstractions (class builders)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c |-> $.  $( Maps-to symbol $)

  $( Extend class notation to include ordered-pair class abstraction (class
     builder). $)
  copab $a class { <. x , y >. | ph } $.

  $( Extend the definition of a class to include maps-to notation for defining
     a function via a rule. $)
  cmpt $a class ( x e. A |-> B ) $.

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( Define the class abstraction of a collection of ordered pairs.
       Definition 3.3 of [Monk1] p. 34.  Usually ` x ` and ` y ` are distinct,
       although the definition doesn't strictly require it.  The brace notation
       is called "class abstraction" by Quine; it is also (more commonly)
       called a "class builder" in the literature.  (Contributed by NM,
       4-Jul-1994.) $)
    df-opab $a |- { <. x , y >. | ph } =
                  { z | E. x E. y ( z = <. x , y >. /\ ph ) } $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( Define maps-to notation for defining a function via a rule.  Read as
       "the function defined by the map from ` x ` (in ` A ` ) to
       ` B ( x ) ` ."  The class expression ` B ` is the value of the function
       at ` x ` and normally contains the variable ` x ` .  Similar to the
       definition of mapping in [ChoquetDD] p. 2.  (Contributed by NM,
       17-Feb-2008.) $)
    df-mpt $a |- ( x e. A |-> B ) =
                    { <. x , y >. | ( x e. A /\ y = B ) } $.
  $}

  ${
    $d x z R $.  $d y z R $.
    $( The collection of ordered pairs in a class is a subclass of it.
       (Contributed by NM, 27-Dec-1996.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    opabss $p |- { <. x , y >. | x R y } C_ R $=
      ( vz cv wbr copab cop wceq wa wex cab df-opab df-br eleq1 biimpar sylan2b
      wcel exlimivv abssi eqsstri ) AEZBEZCFZABGDEZUBUCHZIZUDJZBKAKZDLCUDABDMUI
      DCUHUECRZABUDUGUFCRZUJUBUCCNUGUJUKUEUFCOPQSTUA $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.  $d z ch $.
    opabbid.1 $e |- F/ x ph $.
    opabbid.2 $e |- F/ y ph $.
    opabbid.3 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal ordered-pair class abstractions (deduction
       rule).  (Contributed by NM, 21-Feb-2004.)  (Proof shortened by Andrew
       Salmon, 9-Jul-2011.) $)
    opabbid $p |- ( ph -> { <. x , y >. | ps } = { <. x , y >. | ch } ) $=
      ( vz cv cop wceq wa wex cab copab anbi2d exbid abbidv df-opab 3eqtr4g ) A
      IJDJEJKLZBMZENZDNZIOUBCMZENZDNZIOBDEPCDEPAUEUHIAUDUGDFAUCUFEGABCUBHQRRSBD
      EITCDEITUA $.
  $}

  ${
    $d x ph $.  $d y z ph $.  $d z ps $.  $d z ch $.
    opabbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal ordered-pair class abstractions (deduction
       rule).  (Contributed by NM, 15-May-1995.) $)
    opabbidv $p |- ( ph -> { <. x , y >. | ps } = { <. x , y >. | ch } ) $=
      ( nfv opabbid ) ABCDEADGAEGFH $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.
    opabbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's yield equal class abstractions.  (Contributed by NM,
       15-May-1995.) $)
    opabbii $p |- { <. x , y >. | ph } = { <. x , y >. | ps } $=
      ( vz cv wceq copab eqid wb a1i opabbidv ax-mp ) FGZOHZACDIBCDIHOJPABCDABK
      PELMN $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d ph w $.
    nfopab.1 $e |- F/ z ph $.
    $( Bound-variable hypothesis builder for class abstraction.  (Contributed
       by NM, 1-Sep-1999.)  (Unnecessary distinct variable restrictions were
       removed by Andrew Salmon, 11-Jul-2011.) $)
    nfopab $p |- F/_ z { <. x , y >. | ph } $=
      ( vw copab cv cop wceq wa wex cab df-opab nfv nfan nfex nfab nfcxfr ) DAB
      CGFHBHCHIJZAKZCLZBLZFMABCFNUCDFUBDBUADCTADTDOEPQQRS $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( The first abstraction variable in an ordered-pair class abstraction
       (class builder) is effectively not free.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    nfopab1 $p |- F/_ x { <. x , y >. | ph } $=
      ( vz copab cv cop wceq wa wex cab df-opab nfe1 nfab nfcxfr ) BABCEDFBFCFG
      HAICJZBJZDKABCDLQBDPBMNO $.

    $( The second abstraction variable in an ordered-pair class abstraction
       (class builder) is effectively not free.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    nfopab2 $p |- F/_ y { <. x , y >. | ph } $=
      ( vz copab cv cop wceq wa wex cab df-opab nfe1 nfex nfab nfcxfr ) CABCEDF
      BFCFGHAIZCJZBJZDKABCDLSCDRCBQCMNOP $.
  $}

  ${
    $d x y z w v $.  $d v ph $.  $d v ps $.
    cbvopab.1 $e |- F/ z ph $.
    cbvopab.2 $e |- F/ w ph $.
    cbvopab.3 $e |- F/ x ps $.
    cbvopab.4 $e |- F/ y ps $.
    cbvopab.5 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables in an ordered-pair class
       abstraction, using implicit substitution.  (Contributed by NM,
       14-Sep-2003.) $)
    cbvopab $p |- { <. x , y >. | ph } = { <. z , w >. | ps } $=
      ( vv cv cop wceq wa wex cab nfv nfan opeq12 eqeq2d anbi12d cbvex2 df-opab
      copab abbii 3eqtr4i ) LMZCMZDMZNZOZAPZDQCQZLRUIEMZFMZNZOZBPZFQEQZLRACDUFB
      EFUFUOVALUNUTCDEFUMAEUMESGTUMAFUMFSHTUSBCUSCSITUSBDUSDSJTUJUPOUKUQOPZUMUS
      ABVBULURUIUJUKUPUQUAUBKUCUDUGACDLUEBEFLUEUH $.
  $}

  ${
    $d x y z w $.  $d z w v ph $.  $d x y v ps $.
    cbvopabv.1 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables in an ordered-pair class
       abstraction, using implicit substitution.  (Contributed by NM,
       15-Oct-1996.) $)
    cbvopabv $p |- { <. x , y >. | ph } = { <. z , w >. | ps } $=
      ( nfv cbvopab ) ABCDEFAEHAFHBCHBDHGI $.
  $}

  ${
    $d v w x y $.  $d v w y z $.  $d v w ph $.  $d v w ps $.
    cbvopab1.1 $e |- F/ z ph $.
    cbvopab1.2 $e |- F/ x ps $.
    cbvopab1.3 $e |- ( x = z -> ( ph <-> ps ) ) $.
    $( Change first bound variable in an ordered-pair class abstraction, using
       explicit substitution.  (Contributed by NM, 6-Oct-2004.)  (Revised by
       Mario Carneiro, 14-Oct-2016.) $)
    cbvopab1 $p |- { <. x , y >. | ph } = { <. z , y >. | ps } $=
      ( vw vv cv cop wceq wa wex cab copab wsb nfv nfan nfs1v nfex opeq1 eqeq2d
      sbequ12 anbi12d exbidv cbvex nfsb sbequ sbie syl6bb bitri df-opab 3eqtr4i
      abbii ) IKZCKZDKZLZMZANZDOZCOZIPUQEKZUSLZMZBNZDOZEOZIPACDQBEDQVDVJIVDUQJK
      ZUSLZMZACJRZNZDOZJOVJVCVPCJVCJSVOCDVMVNCVMCSACJUATUBURVKMZVBVODVQVAVMAVNV
      QUTVLUQURVKUSUCUDACJUEUFUGUHVPVIJEVOEDVMVNEVMESACJEFUITUBVIJSVKVEMZVOVHDV
      RVMVGVNBVRVLVFUQVKVEUSUCUDVRVNACERBAJECUJABCEGHUKULUFUGUHUMUPACDIUNBEDIUN
      UO $.
  $}

  ${
    $d w x y z $.  $d w ph $.  $d w ps $.
    cbvopab2.1 $e |- F/ z ph $.
    cbvopab2.2 $e |- F/ y ps $.
    cbvopab2.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Change second bound variable in an ordered-pair class abstraction, using
       explicit substitution.  (Contributed by NM, 22-Aug-2013.) $)
    cbvopab2 $p |- { <. x , y >. | ph } = { <. x , z >. | ps } $=
      ( vw cv cop wceq wa wex cab copab nfv nfan opeq2 df-opab anbi12d 3eqtr4i
      eqeq2d cbvex exbii abbii ) IJZCJZDJZKZLZAMZDNZCNZIOUGUHEJZKZLZBMZENZCNZIO
      ACDPBCEPUNUTIUMUSCULURDEUKAEUKEQFRUQBDUQDQGRUIUOLZUKUQABVAUJUPUGUIUOUHSUC
      HUAUDUEUFACDITBCEITUB $.
  $}

  ${
    $d x y z w $.  $d z w ph $.
    $( Change first bound variable in an ordered-pair class abstraction, using
       explicit substitution.  (Contributed by NM, 31-Jul-2003.) $)
    cbvopab1s $p |- { <. x , y >. | ph } = { <. z , y >. | [ z / x ] ph } $=
      ( vw cv cop wceq wa wex cab wsb copab nfv nfs1v nfan opeq1 eqeq2d df-opab
      nfex sbequ12 anbi12d exbidv cbvex abbii 3eqtr4i ) EFZBFZCFZGZHZAIZCJZBJZE
      KUGDFZUIGZHZABDLZIZCJZDJZEKABCMURDCMUNVAEUMUTBDUMDNUSBCUQURBUQBNABDOPTUHU
      OHZULUSCVBUKUQAURVBUJUPUGUHUOUIQRABDUAUBUCUDUEABCESURDCESUF $.
  $}

  ${
    $d x y $.  $d y z $.  $d z ph $.  $d x ps $.
    cbvopab1v.1 $e |- ( x = z -> ( ph <-> ps ) ) $.
    $( Rule used to change the first bound variable in an ordered pair
       abstraction, using implicit substitution.  (Contributed by NM,
       31-Jul-2003.)  (Proof shortened by Eric Schmidt, 4-Apr-2007.) $)
    cbvopab1v $p |- { <. x , y >. | ph } = { <. z , y >. | ps } $=
      ( nfv cbvopab1 ) ABCDEAEGBCGFH $.
  $}

  ${
    $d x y z w $.  $d z w ph $.  $d y w ps $.
    cbvopab2v.1 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Rule used to change the second bound variable in an ordered pair
       abstraction, using implicit substitution.  (Contributed by NM,
       2-Sep-1999.) $)
    cbvopab2v $p |- { <. x , y >. | ph } = { <. x , z >. | ps } $=
      ( vw cv cop wceq wex cab copab opeq2 eqeq2d anbi12d cbvexv exbii df-opab
      wa abbii 3eqtr4i ) GHZCHZDHZIZJZATZDKZCKZGLUCUDEHZIZJZBTZEKZCKZGLACDMBCEM
      UJUPGUIUOCUHUNDEUEUKJZUGUMABUQUFULUCUEUKUDNOFPQRUAACDGSBCEGSUB $.
  $}

  ${
    $d w y z A $.  $d w ph $.  $d w x y z $.
    $( Move substitution into a class abstraction.  (Contributed by NM,
       6-Aug-2007.)  (Proof shortened by Mario Carneiro, 17-Nov-2016.) $)
    csbopabg $p |- ( A e. V -> [_ A / x ]_ { <. y , z >. | ph } =
               { <. y , z >. | [. A / x ]. ph } ) $=
      ( vw cv copab csb wsb wceq wsbc csbeq1 dfsbcq2 opabbidv eqeq12d vex nfs1v
      nfopab sbequ12 csbief vtoclg ) BGHZACDIZJZABGKZCDIZLBEUEJZABEMZCDIZLGEFUD
      ELZUFUIUHUKBUDEUENULUGUJCDABGEOPQBUDUEUHGRUGCDBABGSTBHUDLAUGCDABGUAPUBUC
      $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.  $d ps z $.
    $( Union of two ordered pair class abstractions.  (Contributed by NM,
       30-Sep-2002.) $)
    unopab $p |- ( { <. x , y >. | ph } u. { <. x , y >. | ps } ) =
               { <. x , y >. | ( ph \/ ps ) } $=
      ( vz cv cop wceq wa wex cab wo copab unab 19.43 andi exbii bitr2i df-opab
      cun bitr3i abbii eqtri uneq12i 3eqtr4i ) EFCFDFGHZAIZDJZCJZEKZUFBIZDJZCJZ
      EKZTZUFABLZIZDJZCJZEKZACDMZBCDMZTUPCDMUOUIUMLZEKUTUIUMENVCUSEVCUHULLZCJUS
      UHULCOVDURCURUGUKLZDJVDUQVEDUFABPQUGUKDORQUAUBUCVAUJVBUNACDESBCDESUDUPCDE
      SUE $.
  $}

  ${
    $d x y ph $.  $d y A $.  $d y B $.  $d y C $.  $d y D $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq12f $p |- ( ( A. x A = C /\ A. x e. A B = D ) ->
                    ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( vy wceq wal wral wa cv wcel copab cmpt nfa1 nfra1 nfan nfv rsp df-mpt
      imp eqeq2d pm5.32da sp eleq2d anbi1d sylan9bbr opabbid 3eqtr4g ) BDGZAHZC
      EGZABIZJZAKZBLZFKZCGZJZAFMUODLZUQEGZJZAFMABCNADENUNUSVBAFUKUMAUJAOULABPQU
      NFRUMUSUPVAJUKVBUMUPURVAUMUPJCEUQUMUPULULABSUAUBUCUKUPUTVAUKBDUOUJAUDUEUF
      UGUHAFBCTAFDETUI $.

    mpteq12dv.1 $e |- ( ph -> A = C ) $.
    ${
      mpteq12dva.2 $e |- ( ( ph /\ x e. A ) -> B = D ) $.
      $( An equality inference for the maps to notation.  (Contributed by Mario
         Carneiro, 26-Jan-2017.) $)
      mpteq12dva $p |- ( ph -> ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
        ( wceq wal wral cmpt alrimiv ralrimiva mpteq12f syl2anc ) ACEIZBJDFIZBC
        KBCDLBEFLIAQBGMARBCHNBCDEFOP $.
    $}

    mpteq12dv.2 $e |- ( ph -> B = D ) $.
    $( An equality inference for the maps to notation.  (Contributed by NM,
       24-Aug-2011.)  (Revised by Mario Carneiro, 16-Dec-2013.) $)
    mpteq12dv $p |- ( ph -> ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( wceq cv wcel adantr mpteq12dva ) ABCDEFGADFIBJCKHLM $.
  $}

  ${
    $d x A $.  $d x C $.
    $( An equality theorem for the maps to notation.  (Contributed by NM,
       16-Dec-2013.) $)
    mpteq12 $p |- ( ( A = C /\ A. x e. A B = D ) ->
                    ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( wceq wal wral cmpt ax-17 mpteq12f sylan ) BDFZMAGCEFABHABCIADEIFMAJABCD
      EKL $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq1 $p |- ( A = B -> ( x e. A |-> C ) = ( x e. B |-> C ) ) $=
      ( wceq wral cmpt cv wcel eqidd rgen mpteq12 mpan2 ) BCEDDEZABFABDGACDGENA
      BAHBIDJKABDCDLM $.

    mpteq1d.1 $e |- ( ph -> A = B ) $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 11-Jun-2016.) $)
    mpteq1d $p |- ( ph -> ( x e. A |-> C ) = ( x e. B |-> C ) ) $=
      ( wceq cmpt mpteq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.
  $}

  ${
    mpteq2ia.1 $e |- ( x e. A -> B = C ) $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq2ia $p |- ( x e. A |-> B ) = ( x e. A |-> C ) $=
      ( wceq wal wral cmpt eqid ax-gen rgen mpteq12f mp2an ) BBFZAGCDFZABHABCIA
      BDIFOABJKPABELABCBDMN $.
  $}

  ${
    mpteq2i.1 $e |- B = C $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq2i $p |- ( x e. A |-> B ) = ( x e. A |-> C ) $=
      ( wceq cv wcel a1i mpteq2ia ) ABCDCDFAGBHEIJ $.
  $}

  ${
    mpteq12i.1 $e |- A = C $.
    mpteq12i.2 $e |- B = D $.
    $( An equality inference for the maps to notation.  (Contributed by Scott
       Fenton, 27-Oct-2010.)  (Revised by Mario Carneiro, 16-Dec-2013.) $)
    mpteq12i $p |- ( x e. A |-> B ) = ( x e. C |-> D ) $=
      ( cmpt wceq wtru a1i mpteq12dv trud ) ABCHADEHIJABCDEBDIJFKCEIJGKLM $.
  $}

  ${
    mpteq2da.1 $e |- F/ x ph $.
    mpteq2da.2 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Slightly more general equality inference for the maps to notation.
       (Contributed by FL, 14-Sep-2013.)  (Revised by Mario Carneiro,
       16-Dec-2013.) $)
    mpteq2da $p |- ( ph -> ( x e. A |-> B ) = ( x e. A |-> C ) ) $=
      ( wceq wal wral cmpt eqid ax-gen cv wcel ex ralrimi mpteq12f sylancr ) AC
      CHZBIDEHZBCJBCDKBCEKHTBCLMAUABCFABNCOUAGPQBCDCERS $.
  $}

  ${
    $d x ph $.
    mpteq2dva.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Slightly more general equality inference for the maps to notation.
       (Contributed by Scott Fenton, 25-Apr-2012.) $)
    mpteq2dva $p |- ( ph -> ( x e. A |-> B ) = ( x e. A |-> C ) ) $=
      ( nfv mpteq2da ) ABCDEABGFH $.
  $}

  ${
    $d x ph $.
    mpteq2dv.1 $e |- ( ph -> B = C ) $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 23-Aug-2014.) $)
    mpteq2dv $p |- ( ph -> ( x e. A |-> B ) = ( x e. A |-> C ) ) $=
      ( wceq cv wcel adantr mpteq2dva ) ABCDEADEGBHCIFJK $.
  $}

  ${
    $d z A $.  $d z B $.  $d x y z $.
    nfmpt.1 $e |- F/_ x A $.
    nfmpt.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for the maps-to notation.
       (Contributed by NM, 20-Feb-2013.) $)
    nfmpt $p |- F/_ x ( y e. A |-> B ) $=
      ( vz cmpt cv wcel wceq wa copab df-mpt nfcri nfeq2 nfan nfopab nfcxfr ) A
      BCDHBICJZGIZDKZLZBGMBGCDNUCBGATUBAABCEOAUADFPQRS $.
  $}

  ${
    $d A z $.  $d B z $.  $d x y $.  $d x z $.
    $( Bound-variable hypothesis builder for the maps-to notation.
       (Contributed by FL, 17-Feb-2008.) $)
    nfmpt1 $p |- F/_ x ( x e. A |-> B ) $=
      ( vz cmpt cv wcel wceq wa copab df-mpt nfopab1 nfcxfr ) AABCEAFBGDFCHIZAD
      JADBCKNADLM $.
  $}

  ${
    $d w z x A $.  $d w z y A $.  $d w z B $.  $d w z C $.
    cbvmpt.1 $e |- F/_ y B $.
    cbvmpt.2 $e |- F/_ x C $.
    cbvmpt.3 $e |- ( x = y -> B = C ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  This version has bound-variable hypotheses in place of
       distinct variable conditions.  (Contributed by NM, 11-Sep-2011.) $)
    cbvmpt $p |- ( x e. A |-> B ) = ( y e. A |-> C ) $=
      ( vz vw cv wcel wceq wa copab cmpt wsb nfv nfan weq nfs1v sbequ12 anbi12d
      eleq1 cbvopab1 nfeq2 nfsb sbequ eqeq2d sbie syl6bb eqtri df-mpt 3eqtr4i )
      AKZCLZIKZDMZNZAIOZBKZCLZUQEMZNZBIOZACDPBCEPUTJKZCLZURAJQZNZJIOVEUSVIAIJUS
      JRVGVHAVGARURAJUASAJTUPVGURVHUOVFCUDURAJUBUCUEVIVDJIBVGVHBVGBRURAJBBUQDFU
      FUGSVDJRJBTZVGVBVHVCVFVACUDVJVHURABQVCURJBAUHURVCABAUQEGUFABTDEUQHUIUJUKU
      CUEULAICDUMBICEUMUN $.
  $}

  ${
    $d A x $.  $d A y $.  $d B y $.  $d C x $.
    cbvmptv.1 $e |- ( x = y -> B = C ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  (Contributed by Mario Carneiro, 19-Feb-2013.) $)
    cbvmptv $p |- ( x e. A |-> B ) = ( y e. A |-> C ) $=
      ( nfcv cbvmpt ) ABCDEBDGAEGFH $.
  $}

  ${
    $d x y $.  $d y B $.
    $( Function with universal domain in maps-to notation.  (Contributed by NM,
       16-Aug-2013.) $)
    mptv $p |- ( x e. _V |-> B ) = { <. x , y >. | y = B } $=
      ( cvv cmpt cv wcel wceq wa copab df-mpt vex biantrur opabbii eqtr4i ) ADC
      EAFDGZBFCHZIZABJQABJABDCKQRABPQALMNO $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Transitive classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare a new symbol. $)
  $c Tr $. $( Transitive predicate (read:  "the following class is
              transitive") $)

  $( Extend wff notation to include transitive classes.  Notation from
     [TakeutiZaring] p. 35. $)
  wtr $a wff Tr A $.

  $( Define the transitive class predicate.  Definition of [Enderton] p. 71
     extended to arbitrary classes.  For alternate definitions, see ~ dftr2
     (which is suggestive of the word "transitive"), ~ dftr3 , ~ dftr4 , and
     ~ dftr5 .  The term "complete" is used instead of "transitive" in
     Definition 3 of [Suppes] p. 130.  (Contributed by NM, 29-Aug-1993.) $)
  df-tr $a |- ( Tr A <-> U. A C_ A ) $.

  ${
    $d x y A $.
    $( An alternate way of defining a transitive class.  Exercise 7 of
       [TakeutiZaring] p. 40.  (Contributed by NM, 24-Apr-1994.) $)
    dftr2 $p |- ( Tr A <-> A. x A. y ( ( x e. y /\ y e. A ) -> x e. A ) ) $=
      ( cuni wss cv wcel wi wal wa dfss2 df-tr 19.23v eluni imbi1i bitr4i albii
      wtr wex 3bitr4i ) CDZCEAFZUAGZUBCGZHZAICRUBBFZGUFCGJZUDHBIZAIAUACKCLUHUEA
      UHUGBSZUDHUEUGUDBMUCUIUDBUBCNOPQT $.

    $( An alternate way of defining a transitive class.  (Contributed by NM,
       20-Mar-2004.) $)
    dftr5 $p |- ( Tr A <-> A. x e. A A. y e. x y e. A ) $=
      ( wtr cv wcel wa wi wal wral dftr2 alcom impexp albii df-ral bitr4i bitri
      r19.21v ) CDBEZAEZFZTCFZGSCFZHZAIBIZUCBTJZACJZBACKUEUDBIZAIZUGUDBALUIUBUF
      HZAIUGUHUJAUHUBUCHZBTJZUJUHUAUKHZBIULUDUMBUAUBUCMNUKBTOPUBUCBTRQNUFACOPQQ
      $.

    $( An alternate way of defining a transitive class.  Definition 7.1 of
       [TakeutiZaring] p. 35.  (Contributed by NM, 29-Aug-1993.) $)
    dftr3 $p |- ( Tr A <-> A. x e. A x C_ A ) $=
      ( vy wtr cv wcel wral wss dftr5 dfss3 ralbii bitr4i ) BDCEBFCAEZGZABGMBHZ
      ABGACBIONABCMBJKL $.
  $}

  $( An alternate way of defining a transitive class.  Definition of [Enderton]
     p. 71.  (Contributed by NM, 29-Aug-1993.) $)
  dftr4 $p |- ( Tr A <-> A C_ ~P A ) $=
    ( wtr cuni wss cpw df-tr sspwuni bitr4i ) ABACADAAEDAFAAGH $.

  $( Equality theorem for the transitive class predicate.  (Contributed by NM,
     17-Sep-1993.) $)
  treq $p |- ( A = B -> ( Tr A <-> Tr B ) ) $=
    ( wceq cuni wss wtr unieq sseq1d sseq2 bitrd df-tr 3bitr4g ) ABCZADZAEZBDZB
    EZAFBFMOPAEQMNPAABGHABPIJAKBKL $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( In a transitive class, the membership relation is transitive.
       (Contributed by NM, 19-Apr-1994.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    trel $p |- ( Tr A -> ( ( B e. C /\ C e. A ) -> B e. A ) ) $=
      ( vy vx wtr cv wcel wa wi wal dftr2 eleq12 wb eleq1 adantl anbi12d adantr
      wceq imbi12d spc2gv pm2.43b sylbi ) AFDGZEGZHZUEAHZIZUDAHZJZEKDKZBCHZCAHZ
      IZBAHZJZDEALUKUNUOUJUPDEBCCAUDBSZUECSZIZUHUNUIUOUSUFULUGUMUDBUECMURUGUMNU
      QUECAOPQUQUIUONURUDBAORTUAUBUC $.
  $}

  $( In a transitive class, the membership relation is transitive.
     (Contributed by NM, 19-Apr-1994.) $)
  trel3 $p |- ( Tr A -> ( ( B e. C /\ C e. D /\ D e. A ) -> B e. A ) ) $=
    ( wtr wcel w3a wa 3anass trel anim2d syl5bi syld ) AEZBCFZCDFZDAFZGZOCAFZHZ
    BAFROPQHZHNTOPQINUASOACDJKLABCJM $.

  ${
    $d x A $.  $d x B $.
    $( An element of a transitive class is a subset of the class.  (Contributed
       by NM, 7-Aug-1994.) $)
    trss $p |- ( Tr A -> ( B e. A -> B C_ A ) ) $=
      ( vx wtr wcel wss cv wceq eleq1 sseq1 imbi12d imbi2d wral dftr3 rsp sylbi
      wi vtoclg pm2.43b ) ADZBAEZBAFZTCGZAEZUCAFZQZQTUAUBQZQCBAUCBHZUFUGTUHUDUA
      UEUBUCBAIUCBAJKLTUECAMUFCANUECAOPRS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The intersection of transitive classes is transitive.  (Contributed by
       NM, 9-May-1994.) $)
    trin $p |- ( ( Tr A /\ Tr B ) -> Tr ( A i^i B ) ) $=
      ( vx wtr cin wss wral wcel elin trss im2anan9 syl5bi ssin syl6ib ralrimiv
      wa cv dftr3 sylibr ) ADZBDZPZCQZABEZFZCUDGUDDUBUECUDUBUCUDHZUCAFZUCBFZPZU
      EUFUCAHZUCBHZPUBUIUCABITUJUGUAUKUHAUCJBUCJKLUCABMNOCUDRS $.
  $}

  $( The empty set is transitive.  (Contributed by NM, 16-Sep-1993.) $)
  tr0 $p |- Tr (/) $=
    ( c0 wtr cpw wss 0ss dftr4 mpbir ) ABAACZDHEAFG $.

  $( The universe is transitive.  (Contributed by NM, 14-Sep-2003.) $)
  trv $p |- Tr _V $=
    ( cvv wtr cuni wss ssv df-tr mpbir ) ABACZADHEAFG $.

  ${
    $d x y z A $.  $d y z B $.
    $( The indexed union of a class of transitive sets is transitive.
       (Contributed by Mario Carneiro, 16-Nov-2014.) $)
    triun $p |- ( A. x e. A Tr B -> Tr U_ x e. A B ) $=
      ( vy wtr wral cv ciun wss wcel wrex eliun r19.29 nfcv nfiu1 nfss trss imp
      wa ssiun2 sstr2 syl5com syl5 rexlimi syl sylan2b ralrimiva dftr3 sylibr )
      CEZABFZDGZABCHZIZDUMFUMEUKUNDUMULUMJUKULCJZABKZUNAULBCLUKUPSUJUOSZABKUNUJ
      UOABMUQUNABAULUMAULNABCOPUQULCIZAGBJZUNUJUOURCULQRUSCUMIURUNABCTULCUMUAUB
      UCUDUEUFUGDUMUHUI $.

    $( The union of a class of transitive sets is transitive.  Exercise 5(a) of
       [Enderton] p. 73.  (Contributed by Scott Fenton, 21-Feb-2011.)  (Proof
       shortened by Mario Carneiro, 26-Apr-2014.) $)
    truni $p |- ( A. x e. A Tr x -> Tr U. A ) $=
      ( cv wtr wral ciun cuni triun wceq wb uniiun treq ax-mp sylibr ) ACZDABEA
      BOFZDZBGZDZABOHRPISQJABKRPLMN $.

    $( The intersection of a class of transitive sets is transitive.  Exercise
       5(b) of [Enderton] p. 73.  (Contributed by Scott Fenton,
       25-Feb-2011.) $)
    trint $p |- ( A. x e. A Tr x -> Tr |^| A ) $=
      ( vy cv wtr wral wel wss wi cint dftr3 ralbii biimpi df-ral ralcom4 bitri
      wal sylib ralim alimi syl wcel vex elint2 ssint imbi12i albii sylibr ) AD
      ZEZABFZCAGZABFZCDZUIHZABFZIZCQZBJZEZUKULUOIZABFZCQZURUKUOCUIFZABFZVCUKVEU
      JVDABCUIKLMVEVACQZABFVCVDVFABUOCUINLVAACBOPRVBUQCULUOABSTUAUTUNUSHZCUSFZU
      RCUSKVHUNUSUBZVGIZCQURVGCUSNVJUQCVIUMVGUPAUNBCUCUDAUNBUEUFUGPPUH $.

    $( If ` A ` is transitive and inhabited, then ` |^| A ` is a subset of
       ` A ` .  (Contributed by Jim Kingdon, 22-Aug-2018.) $)
    trintssm $p |- ( ( E. x x e. A /\ Tr A ) -> |^| A C_ A ) $=
      ( vy cv wcel wex wtr wa cint wral vex elint2 wrex r19.2m ex trel rexlimdv
      expcomd sylan9 syl5bi ssrdv ) ADZBEZAFZBGZHZCBIZBCDZUGEUHUBEZABJZUFUHBEZA
      UHBCKLUDUJUIABMZUEUKUDUJULUIABNOUEUIUKABUEUIUCUKBUHUBPRQSTUA $.

    $( Any inhabited transitive class includes its intersection.  Similar to
       Exercise 2 in [TakeutiZaring] p. 44.  (Contributed by Jim Kingdon,
       22-Aug-2018.) $)
    trint0m $p |- ( ( Tr A /\ E. x x e. A ) -> |^| A C_ A ) $=
      ( cv wcel wex wtr cint wss intss1 trss com12 sstr2 sylsyld exlimiv impcom
      wi ) ACZBDZAEBFZBGZBHZRSUAPARTQHSQBHZUAQBISRUBBQJKTQBLMNO $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
       IZF Set Theory - add the Axioms of Collection and Separation
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          Introduce the Axiom of Collection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w a b $.
    ax-coll.1 $e |- F/ b ph $.
    $( Axiom of Collection.  Axiom 7 of [Crosilla], p.  "Axioms of CZF and IZF"
       (with unnecessary quantifier removed).  It is similar to ~ bnd but uses
       a freeness hypothesis in place of one of the distinct variable
       constraints.  (Contributed by Jim Kingdon, 23-Aug-2018.) $)
    ax-coll $a |- ( A. x e. a E. y ph -> E. b A. x e. a E. y e. b ph ) $.

    $( Axiom of Replacement.  Axiom 7' of [Crosilla], p.  "Axioms of CZF and
       IZF" (with unnecessary quantifier removed).  In our context this is not
       an axiom, but a theorem proved from ~ ax-coll .  It is identical to
       ~ zfrep6 except for the choice of a freeness hypothesis rather than a
       distinct variable constraint between ` b ` and ` ph ` .  (Contributed by
       Jim Kingdon, 23-Aug-2018.) $)
    repizf $p |- ( A. x e. a E! y ph -> E. b A. x e. a E. y e. b ph ) $=
      ( weu cv wral wex wrex euex ralimi ax-coll syl ) ACGZBDHZIACJZBQIACEHKBQI
      EJPRBQACLMABCDEFNO $.
  $}

  ${
    $d ph w v $.  $d x y z w v $.
    $( A version of the Axiom of Replacement.  Normally ` ph ` would have free
       variables ` x ` and ` y ` .  Axiom 6 of [Kunen] p. 12.  The Separation
       Scheme ~ ax-sep cannot be derived from this version and must be stated
       as a separate axiom in an axiom system (such as Kunen's) that uses this
       version.  (Contributed by NM, 10-Oct-2003.) $)
    zfrep6 $p |- ( A. x e. z E! y ph -> E. w A. x e. z E. y e. w ph ) $=
      ( nfv repizf ) ABCDEAEFG $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          Introduce the Axiom of Separation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.  $d y z ph $.
    $( The Axiom of Separation of IZF set theory.  Axiom 6 of [Crosilla], p.
       "Axioms of CZF and IZF" (with unnecessary quantifier removed, and with a
       ` F/ y ph ` condition replaced by a distinct variable constraint between
       ` y ` and ` ph ` ).

       The Separation Scheme is a weak form of Frege's Axiom of Comprehension,
       conditioning it (with ` x e. z ` ) so that it asserts the existence of a
       collection only if it is smaller than some other collection ` z ` that
       already exists.  This prevents Russell's paradox ~ ru .  In some texts,
       this scheme is called "Aussonderung" or the Subset Axiom.

       (Contributed by NM, 11-Sep-2006.) $)
    ax-sep $a |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $.
  $}

  ${
    $d x y z w $.  $d y ph w $.  $d z w $.
    $( A less restrictive version of the Separation Scheme ~ ax-sep , where
       variables ` x ` and ` z ` can both appear free in the wff ` ph ` , which
       can therefore be thought of as ` ph ( x , z ) ` .  This version was
       derived from the more restrictive ~ ax-sep with no additional set theory
       axioms.  (Contributed by NM, 10-Dec-2006.)  (Proof shortened by Mario
       Carneiro, 17-Nov-2016.) $)
    axsep2 $p |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $=
      ( vw wel wa wb wal wex cv eleq2 anbi1d anabs5 syl6bb bibi2d albidv exbidv
      weq ax-sep chvarv ) BCFZBEFZBDFZAGZGZHZBIZCJUBUEHZBIZCJEDEDSZUHUJCUKUGUIB
      UKUFUEUBUKUFUDUEGUEUKUCUDUEEKDKBKLMUDANOPQRUEBCETUA $.
  $}

  ${
    $d x y A z $.  $d y ph z $.
    zfauscl.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) using a class variable.  To derive this
       from ~ ax-sep , we invoke the Axiom of Extensionality (indirectly via
       ~ vtocl ), which is needed for the justification of class variable
       notation.  (Contributed by NM, 5-Aug-1993.) $)
    zfauscl $p |- E. y A. x ( x e. y <-> ( x e. A /\ ph ) ) $=
      ( vz cv wcel wa wb wal wex eleq2 anbi1d bibi2d albidv exbidv ax-sep vtocl
      wceq ) BGZCGHZUAFGZHZAIZJZBKZCLUBUADHZAIZJZBKZCLFDEUCDTZUGUKCULUFUJBULUEU
      IUBULUDUHAUCDUAMNOPQABCFRS $.
  $}

  ${
    $d x ph z $.  $d x y z $.
    bm1.3ii.1 $e |- E. x A. y ( ph -> y e. x ) $.
    $( Convert implication to equivalence using the Separation Scheme
       (Aussonderung) ~ ax-sep .  Similar to Theorem 1.3ii of [BellMachover]
       p. 463.  (Contributed by NM, 5-Aug-1993.) $)
    bm1.3ii $p |- E. x A. y ( y e. x <-> ph ) $=
      ( vz wel wi wal wa wex weq elequ2 imbi2d albidv cbvexv mpbi ax-sep pm3.2i
      wb exan 19.42v bimsc1 alanimi eximi sylbir exlimiv ax-mp ) ACEFZGZCHZCBFZ
      UHAISZCHZBJZIZEJUKASZCHZBJZUJUNEUJEJZUNAUKGZCHZBJUSDVAUJBEBEKZUTUICVBUKUH
      ABECLMNOPACBEQRTUOUREUOUJUMIZBJURUJUMBUAVCUQBUIULUPCAUHUKUBUCUDUEUFUG $.
  $}

  ${
    $d x y z $.
    $( Derive a weakened version of ~ ax-i9 , where ` x ` and ` y ` must be
       distinct, from Separation ~ ax-sep and Extensionality ~ ax-ext .  The
       theorem ` -. A. x -. x = y ` also holds ( ~ ax9vsep ), but in
       intuitionistic logic ` E. x x = y ` is stronger.  (Contributed by Jim
       Kingdon, 25-Aug-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    a9evsep $p |- E. x x = y $=
      ( vz cv wcel wceq wi wa wb wal wex ax-sep id biantru bibi2i biimpri alimi
      ax-ext syl eximi ax-mp ) CDZADZEZUBBDZEZUBUBFZUGGZHZIZCJZAKUCUEFZAKUHCABL
      UKULAUKUDUFIZCJULUJUMCUMUJUFUIUDUHUFUGMNOPQABCRSTUA $.

    $( Derive a weakened version of ~ ax-9 , where ` x ` and ` y ` must be
       distinct, from Separation ~ ax-sep and Extensionality ~ ax-ext .  In
       intuitionistic logic ~ a9evsep is stronger and also holds.  (Contributed
       by NM, 12-Nov-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax9vsep $p |- -. A. x -. x = y $=
      ( cv wceq wex wn wal a9evsep exalim ax-mp ) ACBCDZAEKFAGFABHKAIJ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
              Derive the Null Set Axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    zfnuleu.1 $e |- E. x A. y -. y e. x $.
    $( Show the uniqueness of the empty set (using the Axiom of Extensionality
       via ~ bm1.1 to strengthen the hypothesis in the form of ~ axnul ).
       (Contributed by NM, 22-Dec-2007.) $)
    zfnuleu $p |- E! x A. y -. y e. x $=
      ( wel wn wal weu wfal wb wex nbfal albii exbii mpbi nfv bm1.1 ax-mp eubii
      mpbir ) BADZEZBFZAGTHIZBFZAGZUDAJZUEUBAJUFCUBUDAUAUCBTKLZMNHABHAOPQUBUDAU
      GRS $.
  $}

  ${
    $d x y z w $.
    $( The Null Set Axiom of ZF set theory: there exists a set with no
       elements.  Axiom of Empty Set of [Enderton] p. 18.  In some textbooks,
       this is presented as a separate axiom; here we show it can be derived
       from Separation ~ ax-sep .  This version of the Null Set Axiom tells us
       that at least one empty set exists, but does not tell us that it is
       unique - we need the Axiom of Extensionality to do that (see
       ~ zfnuleu ).

       This theorem should not be referenced by any proof.  Instead, use
       ~ ax-nul below so that the uses of the Null Set Axiom can be more easily
       identified.  (Contributed by Jeff Hoffman, 3-Feb-2008.)  (Revised by NM,
       4-Feb-2008.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    axnul $p |- E. x A. y -. y e. x $=
      ( vz cv wn wa wb wal wex ax-sep pm3.24 intnan id mtbiri alimi eximi ax-mp
      wcel ) BDZADRZSCDRZSSRZUBEFZFZGZBHZAITEZBHZAIUCBACJUFUHAUEUGBUETUDUCUAUBK
      LUEMNOPQ $.

    $( The Null Set Axiom of IZF set theory.  It was derived as ~ axnul above
       and is therefore redundant, but we state it as a separate axiom here so
       that its uses can be identified more easily.  Axiom 4 of [Crosilla] p.
       "Axioms of CZF and IZF".  (Contributed by NM, 7-Aug-2003.) $)
    ax-nul $a |- E. x A. y -. y e. x $.

    $( The Null Set Axiom of ZF set theory: the empty set exists.  Corollary
       5.16 of [TakeutiZaring] p. 20.  For the unabbreviated version, see
       ~ ax-nul .  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 9-Jul-2011.) $)
    0ex $p |- (/) e. _V $=
      ( vx vy c0 cv wceq wex wel wn wal ax-nul eq0 exbii mpbir issetri ) ACADZC
      EZAFBAGHBIZAFABJPQABOKLMN $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( The existence of proper substitution into a class.  (Contributed by NM,
       10-Nov-2005.) $)
    csbexga $p |- ( ( A e. V /\ A. x B e. W ) -> [_ A / x ]_ B e. _V ) $=
      ( vy wcel wal wa csb wsbc cab cvv df-csb abid2 elex syl5eqel alimi spsbc
      cv syl5 imp wb nfcv sbcabel adantr mpbid ) BDGZCEGZAHZIZABCJFTCGZABKFLZMA
      FBCNUKULFLZMGZABKZUMMGZUHUJUPUJUOAHUHUPUIUOAUIUNCMFCOCEPQRUOABDSUAUBUHUPU
      QUCUJULAFBMDAMUDUEUFUGQ $.
  $}

  ${
    csbexa.1 $e |- A e. _V $.
    csbexa.2 $e |- B e. _V $.
    $( The existence of proper substitution into a class.  (Contributed by NM,
       7-Aug-2007.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    csbexa $p |- [_ A / x ]_ B e. _V $=
      ( cvv wcel csb wal csbexga mpan mpg ) CFGZABCHFGZABFGMAINDABCFFJKEL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           Theorems requiring subset and intersection existence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( No set contains all sets.  Theorem 41 of [Suppes] p. 30.  (Contributed
       by NM, 23-Aug-1993.) $)
    nalset $p |- -. E. x A. y y e. x $=
      ( vz wel wn wex wal alexnim wa wb ax-sep weq elequ1 elequ2 notbid anbi12d
      bitrd bibi12d spv pclem6 syl eximii mpg ) BADZEZBFUDBGAFEAUDABHCBDZCADZCC
      DZEZIZJZCGZUEBUICBAKULBBDZUDUMEZIZJZUEUKUPCBCBLZUFUMUJUOCBBMUQUGUDUIUNCBA
      MUQUHUMUQUHBCDUMCBCMCBBNQOPRSUMUDTUAUBUC $.
  $}

  ${
    $d x y $.
    $( The universal class is not a member of itself (and thus is not a set).
       Proposition 5.21 of [TakeutiZaring] p. 21; our proof, however, does not
       depend on the Axiom of Regularity.  (Contributed by NM, 23-Aug-1993.) $)
    vprc $p |- -. _V e. _V $=
      ( vx vy cvv wcel cv wceq wex wal nalset vex tbt albii dfcleq bitr4i exbii
      wb mtbi isset mtbir ) CCDAEZCFZAGZBEZTDZBHZAGUBABIUEUAAUEUDUCCDZPZBHUAUDU
      GBUFUDBJKLBTCMNOQACRS $.
  $}

  $( The universal class doesn't belong to any class.  (Contributed by FL,
     31-Dec-2006.) $)
  nvel $p |- -. _V e. A $=
    ( cvv wcel vprc elex mto ) BACBBCDBAEF $.

  $( The universal class does not exist.  (Contributed by NM, 4-Jul-2005.) $)
  vnex $p |- -. E. x x = _V $=
    ( cvv wcel cv wceq wex vprc isset mtbi ) BBCADBEAFGABHI $.

  ${
    $d A x y $.  $d B x y $.
    inex1.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) using class notation.  Compare Exercise
       4 of [TakeutiZaring] p. 22.  (Contributed by NM, 5-Aug-1993.) $)
    inex1 $p |- ( A i^i B ) e. _V $=
      ( vx vy cin cv wceq wex wcel wa wb zfauscl dfcleq elin bibi2i albii bitri
      wal exbii mpbir issetri ) DABFZDGZUCHZDIEGZUDJZUFAJUFBJZKZLZESZDIUHEDACMU
      EUKDUEUGUFUCJZLZESUKEUDUCNUMUJEULUIUGUFABOPQRTUAUB $.
  $}

  ${
    inex2.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) using class notation.  (Contributed by
       NM, 27-Apr-1994.) $)
    inex2 $p |- ( B i^i A ) e. _V $=
      ( cin cvv incom inex1 eqeltri ) BADABDEBAFABCGH $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Closed-form, generalized Separation Scheme.  (Contributed by NM,
       7-Apr-1995.) $)
    inex1g $p |- ( A e. V -> ( A i^i B ) e. _V ) $=
      ( vx cv cin cvv wcel wceq ineq1 eleq1d vex inex1 vtoclg ) DEZBFZGHABFZGHD
      ACOAIPQGOABJKOBDLMN $.
  $}

  ${
    ssex.1 $e |- B e. _V $.
    $( The subset of a set is also a set.  Exercise 3 of [TakeutiZaring]
       p. 22.  This is one way to express the Axiom of Separation ~ ax-sep
       (a.k.a.  Subset Axiom).  (Contributed by NM, 27-Apr-1994.) $)
    ssex $p |- ( A C_ B -> A e. _V ) $=
      ( wss cin wceq cvv wcel df-ss inex2 eleq1 mpbii sylbi ) ABDABEZAFZAGHZABI
      ONGHPBACJNAGKLM $.
  $}

  ${
    ssexi.1 $e |- B e. _V $.
    ssexi.2 $e |- A C_ B $.
    $( The subset of a set is also a set.  (Contributed by NM, 9-Sep-1993.) $)
    ssexi $p |- A e. _V $=
      ( wss cvv wcel ssex ax-mp ) ABEAFGDABCHI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The subset of a set is also a set.  Exercise 3 of [TakeutiZaring] p. 22
       (generalized).  (Contributed by NM, 14-Aug-1994.) $)
    ssexg $p |- ( ( A C_ B /\ B e. C ) -> A e. _V ) $=
      ( vx wcel wss cvv cv wi wceq sseq2 imbi1d vex ssex vtoclg impcom ) BCEABF
      ZAGEZADHZFZRIQRIDBCSBJTQRSBAKLASDMNOP $.
  $}

  ${
    ssexd.1 $e |- ( ph -> B e. C ) $.
    ssexd.2 $e |- ( ph -> A C_ B ) $.
    $( A subclass of a set is a set.  Deduction form of ~ ssexg .  (Contributed
       by David Moews, 1-May-2017.) $)
    ssexd $p |- ( ph -> A e. _V ) $=
      ( wss wcel cvv ssexg syl2anc ) ABCGCDHBIHFEBCDJK $.
  $}

  $( Existence of a difference.  (Contributed by NM, 26-May-1998.) $)
  difexg $p |- ( A e. V -> ( A \ B ) e. _V ) $=
    ( cdif wss wcel cvv difss ssexg mpan ) ABDZAEACFKGFABHKACIJ $.

  ${
    $d x y A $.  $d y ph $.
    zfausab.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) in terms of a class abstraction.
       (Contributed by NM, 8-Jun-1994.) $)
    zfausab $p |- { x | ( x e. A /\ ph ) } e. _V $=
      ( cv wcel wa cab ssab2 ssexi ) BECFAGBHCDABCIJ $.
  $}

  ${
    $d x A $.
    $( Separation Scheme in terms of a restricted class abstraction.
       (Contributed by NM, 23-Oct-1999.) $)
    rabexg $p |- ( A e. V -> { x e. A | ph } e. _V ) $=
      ( crab wss wcel cvv ssrab2 ssexg mpan ) ABCEZCFCDGLHGABCILCDJK $.
  $}

  ${
    $d x A $.
    rabex.1 $e |- A e. _V $.
    $( Separation Scheme in terms of a restricted class abstraction.
       (Contributed by NM, 19-Jul-1996.) $)
    rabex $p |- { x e. A | ph } e. _V $=
      ( cvv wcel crab rabexg ax-mp ) CEFABCGEFDABCEHI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    elssabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction involving a subset.  Unlike ~ elabg ,
       ` A ` does not have to be a set.  (Contributed by NM, 29-Aug-2006.) $)
    elssabg $p |- ( B e. V ->
                  ( A e. { x | ( x C_ B /\ ph ) } <-> ( A C_ B /\ ps ) ) ) $=
      ( wcel wss wa cvv wi cv cab wb ssexg expcom adantrd wceq sseq1 elab3g syl
      anbi12d ) EFHZDEIZBJZDKHZLDCMZEIZAJZCNHUFOUDUEUGBUEUDUGDEFPQRUJUFCDKUHDSU
      IUEABUHDETGUCUAUB $.
  $}

  ${
    $d x A $.
    $( The intersection of an inhabited class exists.  (Contributed by Jim
       Kingdon, 27-Aug-2018.) $)
    inteximm $p |- ( E. x x e. A -> |^| A e. _V ) $=
      ( cv wcel cint cvv wss intss1 vex ssex syl exlimiv ) ACZBDZBEZFDZANOMGPMB
      HOMAIJKL $.
  $}

  ${
    $d x A $.
    $( If the intersection of a class exists, the class is non-empty.
       (Contributed by Jim Kingdon, 27-Aug-2018.) $)
    intexr $p |- ( |^| A e. _V -> A =/= (/) ) $=
      ( cint cvv wcel c0 wceq vprc inteq int0 syl6eq eleq1d mtbiri necon2ai ) A
      BZCDZAEAEFZOCCDGPNCCPNEBCAEHIJKLM $.
  $}

  $( If a class intersection is the universe, it is not a set.  In classical
     logic this would be an equivalence.  (Contributed by Jim Kingdon,
     27-Aug-2018.) $)
  intnexr $p |- ( |^| A = _V -> -. |^| A e. _V ) $=
    ( cint cvv wceq wcel vprc eleq1 mtbiri ) ABZCDICECCEFICCGH $.

  ${
    $d x y $.  $d ph y $.
    $( The intersection of an inhabited class abstraction exists.  (Contributed
       by Jim Kingdon, 27-Aug-2018.) $)
    intexabim $p |- ( E. x ph -> |^| { x | ph } e. _V ) $=
      ( vy wex cv cab wcel cint cvv abid exbii nfsab1 nfv eleq1 inteximm sylbir
      cbvex ) ABDBEZABFZGZBDZSHIGZTABABJKUACEZSGZCDUBUDTCBABCLTCMUCRSNQCSOPP $.
  $}

  $( The intersection of an inhabited restricted class abstraction exists.
     (Contributed by Jim Kingdon, 27-Aug-2018.) $)
  intexrabim $p |- ( E. x e. A ph -> |^| { x e. A | ph } e. _V ) $=
    ( cv wcel wex cab cint cvv wrex crab intexabim df-rex df-rab inteqi 3imtr4i
    wa eleq1i ) BDCEAQZBFSBGZHZIEABCJABCKZHZIESBLABCMUCUAIUBTABCNORP $.

  ${
    $d A x y $.  $d B y $.  $d x y z $.  $d A z $.  $d B z $.
    $( The existence of an indexed union. ` x ` is normally a free-variable
       parameter in ` B ` , which should be read ` B ( x ) ` .  (Contributed by
       Jim Kingdon, 28-Aug-2018.) $)
    iinexgm $p |- ( ( E. x x e. A /\ A. x e. A B e. C ) ->
        |^|_ x e. A B e. _V ) $=
      ( vy vz cv wcel wex wral wa ciin wceq wrex cab cint cvv wi syl sylib abid
      dfiin2g adantl elisset rgenw r19.2m mpan2 r19.35-1 imp rexcom4 sylibr nfv
      exbii nfsab1 eleq1 cbvex inteximm eqeltrd ) AGBHAIZCDHZABJZKZABCLZEGZCMZA
      BNZEOZPZQVAVCVHMUSAEBCDUBUCVBFGZVGHZFIZVHQHVBVDVGHZEIZVKVBVFEIZVMVBVEEIZA
      BNZVNUSVAVPUSUTVORZABNZVAVPRUSVQABJVRVQABECDUDUEVQABUFUGUTVOABUHSUIVEAEBU
      JTVLVFEVFEUAUMUKVLVJEFVLFULVFEFUNVDVIVGUOUPTFVGUQSUR $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( The intersection of a union ` U. A ` with a class ` B ` is equal to the
       union of the intersections of each element of ` A ` with ` B ` .
       (Contributed by FL, 24-Mar-2007.) $)
    inuni $p |- ( U. A i^i B ) = U. { x | E. y e. A x = ( y i^i B ) } $=
      ( vz cuni cin cv wceq wrex cab wcel wex eluni2 anbi1i elin r19.41v bitr4i
      wa bitri ancom exbii rexcom4 vex inex1 eleq2 ceqsexv rexbii 3bitr4i eqriv
      eluniab ) ECFZDGZAHZBHZDGZIZBCJZAKFZEHZUMLZUTUNLZURSZAMZUTUSLUTULLZUTDLZS
      UTUOLZBCJZVFSZVAVDVEVHVFBUTCNOUTULDPVDUQVBSZAMZBCJZVIVDVJBCJZAMVLVCVMAVCU
      RVBSVMVBURUAUQVBBCQRUBVJBACUCRVLVGVFSZBCJVIVKVNBCVKUTUPLZVNVBVOAUPUODBUDU
      EUNUPUTUFUGUTUODPTUHVGVFBCQTTUIURAUTUKRUJ $.
  $}

  $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.  (Contributed
     by NM, 7-Aug-2000.) $)
  elpw2g $p |- ( B e. V -> ( A e. ~P B <-> A C_ B ) ) $=
    ( wcel cpw wss elpwi cvv ssexg elpwg biimparc syldan expcom impbid2 ) BCDZA
    BEDZABFZABGQOPQOAHDZPABCIRPQABHJKLMN $.

  ${
    elpw2.1 $e |- B e. _V $.
    $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.
       (Contributed by NM, 11-Oct-2007.) $)
    elpw2 $p |- ( A e. ~P B <-> A C_ B ) $=
      ( cvv wcel cpw wss wb elpw2g ax-mp ) BDEABFEABGHCABDIJ $.
  $}


  ${
    $d A x y $.  $d V x y $.
    $( The power set of a set is never a subset.  (Contributed by Stefan
       O'Rear, 22-Feb-2015.) $)
    pwnss $p |- ( A e. V -> -. ~P A C_ A ) $=
      ( vx vy cpw cv wnel crab wcel wn wa wb eleq12 anidms notbid df-nel syl5bb
      wss wceq cbvrabv elrab2 pclem6 ax-mp ssel mtoi ssrab2 elpw2g mpbiri nsyl3
      ) AEZARZCFZULGZCAHZUJIZABIZUKUOUNAIZUNUNIZUQURJZKLUQJDFZUTIZJZUSDUNAUNUTU
      NSZVAURVCVAURLUTUNUTUNMNOUMVBCDAUMULULIZJULUTSZVBULULPVEVDVAVEVDVALULUTUL
      UTMNOQTUAURUQUBUCUJAUNUDUEUPUOUNARUMCAUFUNABUGUHUI $.
  $}

  $( No set equals its power set.  The sethood antecedent is necessary; compare
     ~ pwv .  (Contributed by NM, 17-Nov-2008.)  (Proof shortened by Mario
     Carneiro, 23-Dec-2016.) $)
  pwne $p |- ( A e. V -> ~P A =/= A ) $=
    ( wcel cpw wss wn wne pwnss eqimss necon3bi syl ) ABCADZAEZFLAGABHMLALAIJK
    $.

  $( Lemma for ~ repizf2 .  If we have a function-like proposition which
     provides at most one value of ` y ` for each ` x ` in a set ` w ` , we can
     change "at most one" to "exactly one" by restricting the values of ` x `
     to those values for which the proposition provides a value of ` y ` .
     (Contributed by Jim Kingdon, 7-Sep-2018.) $)
  repizf2lem $p |- ( A. x e. w E* y ph <->
      A. x e. { x e. w | E. y ph } E! y ph ) $=
    ( cv wcel wmo wi wal wex wral crab df-mo imbi2i albii df-ral wa rabid bitri
    weu imbi1i impexp 3bitr4i ) BEZDEZFZACGZHZBIUFACJZACTZHZHZBIZUGBUEKUJBUIBUE
    LZKZUHULBUGUKUFACMNOUGBUEPUOUDUNFZUJHZBIUMUJBUNPUQULBUQUFUIQZUJHULUPURUJUIB
    UERUAUFUIUJUBSOSUC $.

  ${
    $d v x y z w $.  $d v ph $.
    repizf2.1 $e |- F/ z ph $.
    $( Replacement.  This version of replacement is stronger than ~ repizf in
       the sense that ` ph ` does not need to map all values of ` x ` in ` w `
       to a value of ` y ` .  The resulting set contains those elements for
       which there is a value of ` y ` and in that sense, this theorem combines
       ~ repizf with ~ ax-sep .  Another variation would be
       ` A. x e. w E* y ph -> { y | E. x ( x e. w /\ ph ) } e. _V ` but we
       don't have a proof of that yet.  (Contributed by Jim Kingdon,
       7-Sep-2018.) $)
    repizf2 $p |- ( A. x e. w E* y ph ->
        E. z A. x e. { x e. w | E. y ph } E. y e. z ph ) $=
      ( vv wmo cv wral wrex wex crab wi vex rabex wceq weu repizf2lem raleqf wa
      nfcv nfrab1 repizf syl6bir syl5bi wel cab df-rab nfv nfex nfan nfab nfeq2
      nfcxfr exbid sylibd vtocle ) ACHBEIZJZACDIKZBACLZBUSMZJZDLZNGVCVBBUSEOPGI
      ZVCQZUTVABVFJZDLZVEUTACRZBVCJZVGVIABCESVGVKVJBVFJVIVJBVFVCBVFUBZVBBUSUCZT
      ABCGDFUDUEUFVGVHVDDDVFVCDVCBEUGZVBUAZBUHVBBUSUIVODBVNVBDVNDUJADCFUKULUMUO
      UNVABVFVCVLVMTUPUQUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Theorems requiring empty set existence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( Equality theorem for classes and sets .  (Contributed by NM,
       13-Dec-2005.)  (Proof shortened by Raph Levien, 30-Jun-2006.) $)
    class2seteq $p |- ( A e. V -> { x e. A | A e. _V } = A ) $=
      ( wcel cvv crab wceq elex wral cv ax-1 ralrimiv rabid2 sylibr eqcomd syl
      ) BCDBEDZQABFZBGBCHQBRQQABIBRGQQABQAJBDKLQABMNOP $.
  $}

  $( Every power class contains the empty set.  (Contributed by NM,
     25-Oct-2007.) $)
  0elpw $p |- (/) e. ~P A $=
    ( c0 cpw wcel wss 0ss 0ex elpw mpbir ) BACDBAEAFBAGHI $.

  $( The empty set and its power set are not equal.  (Contributed by NM,
     23-Dec-1993.) $)
  0nep0 $p |- (/) =/= { (/) } $=
    ( c0 csn 0ex snnz necomi ) ABAACDE $.

  $( Something cannot be equal to both the null set and the power set of the
     null set.  (Contributed by NM, 30-Sep-2003.) $)
  0inp0 $p |- ( A = (/) -> -. A = { (/) } ) $=
    ( c0 wceq csn wne 0nep0 neeq1 mpbiri neneqd ) ABCZABDZJAKEBKEFABKGHI $.

  ${
    $d A x y $.
    $( The removal of the empty set from a class does not affect its union.
       (Contributed by NM, 22-Mar-2004.) $)
    unidif0 $p |- U. ( A \ { (/) } ) = U. A $=
      ( vx vy c0 csn cdif cuni cv wcel wn wa wex n0i pm4.71i anbi1i exbii eluni
      wceq anbi2i bitri an32 anass 3bitr2ri eldif elsn notbii 3bitr4i eqriv ) B
      ADEZFZGZAGZBHZCHZIZUNAIZUNDRZJZKZKZCLZUOUPKZCLUMUKIZUMULIUTVBCVBUOURKZUPK
      VBURKUTUOVDUPUOURUNUMMNOUOUPURUAUOUPURUBUCPVCUOUNUJIZKZCLVACUMUJQVFUTCVEU
      SUOVEUPUNUIIZJZKUSUNAUIUDVHURUPVGUQCDUEUFSTSPTCUMAQUGUH $.
  $}

  ${
    $d y A $.  $d x A $.
    $( An indexed intersection of the empty set, with an inhabited index set,
       is empty.  (Contributed by Jim Kingdon, 29-Aug-2018.) $)
    iin0imm $p |- ( E. y y e. A -> |^|_ x e. A (/) = (/) ) $=
      ( c0 iinconstm ) ABCDE $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( If an indexed intersection of the empty set is empty, the index set is
       non-empty.  (Contributed by Jim Kingdon, 29-Aug-2018.) $)
    iin0r $p |- ( |^|_ x e. A (/) = (/) -> A =/= (/) ) $=
      ( c0 ciin wceq cvv wcel wn 0ex n0i ax-mp 0iin eqeq1i iineq1 eqeq1d mtbiri
      mtbir necon2ai ) ABCDZCEZBCBCEZTACCDZCEZUCFCEZCFGUDHIFCJKUBFCACLMQUASUBCA
      BCCNOPR $.
  $}

  $( The intersection of the universal class is empty.  (Contributed by NM,
     11-Sep-2008.) $)
  intv $p |- |^| _V = (/) $=
    ( c0 cvv wcel cint wceq 0ex int0el ax-mp ) ABCBDAEFBGH $.

  ${
    $d x y z A $.
    axpweq.1 $e |- A e. _V $.
    $( Two equivalent ways to express the Power Set Axiom.  Note that ~ ax-pow
       is not used by the proof.  (Contributed by NM, 22-Jun-2009.) $)
    axpweq $p |- ( ~P A e. _V
                <-> E. x A. y ( A. z ( z e. y -> z e. A ) -> y e. x ) ) $=
      ( cpw cvv wcel cv wex wel wi wal pwidg wceq pweq eleq2d spcegv wss bitri
      mpd elex exlimiv impbii vex elpw2 pwss dfss2 imbi1i albii exbii ) DFZGHZU
      LAIZFZHZAJZCBKCIDHLCMZBAKZLZBMZAJUMUQUMULULFZHZUQULGNUPVCAULGUNULOUOVBULU
      NULPQRUAUPUMAULUOUBUCUDUPVAAUPULUNSZVAULUNAUEUFVDBIZDSZUSLZBMVABDUNUGVGUT
      BVFURUSCVEDUHUIUJTTUKT $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
             Collection principle
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d ph z w $.  $d x y z w $.
    $( A very strong generalization of the Axiom of Replacement (compare
       ~ zfrep6 ).  Its strength lies in the rather profound fact that
       ` ph ( x , y ) ` does not have to be a "function-like" wff, as it does
       in the standard Axiom of Replacement.  This theorem is sometimes called
       the Boundedness Axiom.  In the context of IZF, it is just a slight
       variation of ~ ax-coll .  (Contributed by NM, 17-Oct-2004.) $)
    bnd $p |- ( A. x e. z E. y ph -> E. w A. x e. z E. y e. w ph ) $=
      ( nfv ax-coll ) ABCDEAEFG $.
  $}

  ${
    $d ph z w v $.  $d x z w v A $.  $d x y z w v B $.
    bnd2.1 $e |- A e. _V $.
    $( A variant of the Boundedness Axiom ~ bnd that picks a subset ` z ` out
       of a possibly proper class ` B ` in which a property is true.
       (Contributed by NM, 4-Feb-2004.) $)
    bnd2 $p |- ( A. x e. A E. y e. B ph ->
              E. z ( z C_ B /\ A. x e. A E. y e. z ph ) ) $=
      ( vw vv wrex wral cv wcel wa wex wss df-rex wi wceq raleq bnd vtocl sylbi
      ralbii exbidv imbi12d cin inex1 inss2 sseq1 mpbiri biantrurd rexeq anbi1i
      vex elin anass bitri rexbii2 syl6bb ralbidv bitr3d spcev exlimiv syl ) AC
      FJZBEKZCLZFMZANZCHLZJZBEKZHOZDLZFPZACVOJZBEKZNZDOZVGVJCOZBEKZVNVFWABEACFQ
      UDWABILZKZVLBWCKZHOZRWBVNRIEGWCESZWDWBWFVNWABWCETWGWEVMHVLBWCETUEUFVJBCIH
      UAUBUCVMVTHVSVMDVKFUGZVKFHUOUHVOWHSZVRVSVMWIVPVRWIVPWHFPVKFUIVOWHFUJUKULW
      IVQVLBEWIVQACWHJVLACVOWHUMAVJCWHVKVHWHMZANVHVKMZVINZANWKVJNWJWLAVHVKFUPUN
      WKVIAUQURUSUTVAVBVCVDVE $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
          IZF Set Theory - add the Axioms of Power Sets and Pairing
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
            Introduce the Axiom of Power Sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w $.
    $( Axiom of Power Sets.  An axiom of Intuitionistic Zermelo-Fraenkel set
       theory.  It states that a set ` y ` exists that includes the power set
       of a given set ` x ` i.e. contains every subset of ` x ` .  This is
       Axiom 8 of [Crosilla] p.  "Axioms of CZF and IZF" except (a) unnecessary
       quantifiers are removed, and (b) Crosilla has a biconditional rather
       than an implication (but the two are equivalent by ~ bm1.3ii ).

       The variant ~ axpow2 uses explicit subset notation.  A version using
       class notation is ~ pwex .  (Contributed by NM, 5-Aug-1993.) $)
    ax-pow $a |- E. y A. z ( A. w ( w e. z -> w e. x ) -> z e. y ) $.

    $( Axiom of Power Sets expressed with the fewest number of different
       variables.  (Contributed by NM, 14-Aug-2003.) $)
    zfpow $p |- E. x A. y ( A. x ( x e. y -> x e. z ) -> y e. x ) $=
      ( vw wel wal wex ax-pow weq elequ1 imbi12d cbvalv imbi1i albii exbii mpbi
      wi ) DBEZDCEZQZDFZBAEZQZBFZAGABEZACEZQZAFZUBQZBFZAGCABDHUDUJAUCUIBUAUHUBT
      UGDADAIRUESUFDABJDACJKLMNOP $.

    $( A variant of the Axiom of Power Sets ~ ax-pow using subset notation.
       Problem in {BellMachover] p. 466.  (Contributed by NM, 4-Jun-2006.) $)
    axpow2 $p |- E. y A. z ( z C_ x -> z e. y ) $=
      ( vw cv wss wel wi wal wex ax-pow dfss2 imbi1i albii exbii mpbir ) CEZAEZ
      FZCBGZHZCIZBJDCGDAGHDIZTHZCIZBJABCDKUBUEBUAUDCSUCTDQRLMNOP $.

    $( A variant of the Axiom of Power Sets ~ ax-pow .  For any set ` x ` ,
       there exists a set ` y ` whose members are exactly the subsets of ` x `
       i.e. the power set of ` x ` .  Axiom Pow of [BellMachover] p. 466.
       (Contributed by NM, 4-Jun-2006.) $)
    axpow3 $p |- E. y A. z ( z C_ x <-> z e. y ) $=
      ( cv wss wel wb wal wex axpow2 bm1.3ii bicom albii exbii mpbir ) CDADEZCB
      FZGZCHZBIQPGZCHZBIPBCABCJKSUABRTCPQLMNO $.
  $}

  ${
    $d w x y z $.
    $( Every set is an element of some other set.  (Contributed by NM,
       4-Jan-2002.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    el $p |- E. y x e. y $=
      ( vz wel wi wal zfpow weq ax-14 alrimiv ax-13 embantd spimv eximii ) BCDB
      ADEZBFZCBDZEZCFABDZBBCAGRSCACAHZPQSTOBCABIJCABKLMN $.
  $}

  ${
    $d A x y z $.
    zfpowcl.1 $e |- A e. _V $.
    $( Power set axiom expressed in class notation.  Axiom 4 of [TakeutiZaring]
       p. 17.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 25-Jul-2011.) $)
    pwex $p |- ~P A e. _V $=
      ( vz vy vx cv cpw cvv wcel wceq pweq eleq1d wss cab df-pw wex wal bm1.3ii
      wb axpow2 abeq2 exbii mpbir issetri eqeltri vtocl ) CFZGZHIAGZHICABUGAJUH
      UIHUGAKLUHDFZUGMZDNZHDUGOEULEFZULJZEPUJUMIUKSDQZEPUKEDCEDTRUNUOEUKDUMUAUB
      UCUDUEUF $.
  $}

  ${
    $d x A $.
    $( Power set axiom expressed in class notation, with the sethood
       requirement as an antecedent.  Axiom 4 of [TakeutiZaring] p. 17.
       (Contributed by NM, 30-Oct-2003.) $)
    pwexg $p |- ( A e. V -> ~P A e. _V ) $=
      ( vx cv cpw cvv wcel wceq pweq eleq1d vex pwex vtoclg ) CDZEZFGAEZFGCABNA
      HOPFNAIJNCKLM $.

    $( Existence of a class of subsets.  (Contributed by NM, 15-Jul-2006.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    abssexg $p |- ( A e. V -> { x | ( x C_ A /\ ph ) } e. _V ) $=
      ( wcel cpw cvv cv wss wa pwexg df-pw eleq1i simpl ss2abi ssexg mpan sylbi
      cab syl ) CDECFZGEZBHCIZAJZBSZGEZCDKUBUCBSZGEZUFUAUGGBCLMUEUGIUHUFUDUCBUC
      ANOUEUGGPQRT $.
  $}

  $( A singleton whose element exists is a set.  The ` A e. _V ` case of
     Theorem 7.12 of [Quine] p. 51, proved using only Extensionality, Power
     Set, and Separation.  Replacement is not needed.  This is a special case
     of ~ snexg and new proofs should use ~ snexg instead.  (Contributed by Jim
     Kingdon, 26-Jan-2019.)  (New usage is discouraged.)
     (Proof modification is discouraged.)  TODO: replace its uses by uses of
     ~snexg and then remove it. $)
  snexgOLD $p |- ( A e. _V -> { A } e. _V ) $=
    ( cvv wcel cpw csn pwexg wss snsspw ssexg mpan syl ) ABCADZBCZAEZBCZABFNLGM
    OAHNLBIJK $.

  $( A singleton whose element exists is a set.  The ` A e. _V ` case of
     Theorem 7.12 of [Quine] p. 51, proved using only Extensionality, Power
     Set, and Separation.  Replacement is not needed.  (Contributed by Jim
     Kingdon, 1-Sep-2018.) $)
  snexg $p |- ( A e. V -> { A } e. _V ) $=
    ( wcel cpw cvv csn pwexg wss snsspw ssexg mpan syl ) ABCADZECZAFZECZABGOMHN
    PAIOMEJKL $.

  ${
    snex.1 $e |- A e. _V $.
    $( A singleton whose element exists is a set.  (Contributed by NM,
       7-Aug-1994.)  (Revised by Mario Carneiro, 24-May-2019.) $)
    snex $p |- { A } e. _V $=
      ( cvv wcel csn snexg ax-mp ) ACDAECDBACFG $.
  $}

  $( A singleton whose element is a proper class is a set.  The ` -. A e. _V `
     case of Theorem 7.12 of [Quine] p. 51, proved using only Extensionality,
     Power Set, and Separation.  Replacement is not needed.  (Contributed by
     Jim Kingdon, 1-Sep-2018.) $)
  snexprc $p |- ( -. A e. _V -> { A } e. _V ) $=
    ( cvv wcel wn csn c0 wceq snprc biimpi 0ex syl6eqel ) ABCDZAEZFBLMFGAHIJK
    $.

  $( The power set of the empty set (the ordinal 1) is a set.  (Contributed by
     NM, 23-Dec-1993.) $)
  p0ex $p |- { (/) } e. _V $=
    ( c0 cpw csn cvv pw0 0ex pwex eqeltrri ) ABACDEAFGH $.

  $( ` { (/) , { (/) } } ` (the ordinal 2) is a set.  (Contributed by NM,
     5-Aug-1993.) $)
  pp0ex $p |- { (/) , { (/) } } e. _V $=
    ( c0 csn cpr cpw p0ex pwex pwpw0ss ssexi ) AABZCIDIEFGH $.

  $( The ordinal number 3 is a set, proved without the Axiom of Union.
     (Contributed by NM, 2-May-2009.) $)
  ord3ex $p |- { (/) , { (/) } , { (/) , { (/) } } } e. _V $=
    ( csn cpr ctp cun cvv df-tp cpw pp0ex pwex pwprss ssexi snsspr2 unss2 ax-mp
    c0 wss eqeltri ) OOAZORBZCSSAZDZEORSFUASRAZSBZDZUDSGSHIORJKTUCPUAUDPUBSLTUC
    SMNKQ $.

  ${
    $d x y z $.
    $( At least two sets exist (or in terms of first-order logic, the universe
       of discourse has two or more objects).  This theorem asserts the
       existence of two sets which do not equal each other; compare with
       ~ dtruex in which we are given a set ` y ` and go from there to a set
       ` x ` which is not equal to it.  (Contributed by Jim Kingdon,
       2-Sep-2018.) $)
    dtruarb $p |- E. x E. y -. x = y $=
      ( vz wel wn wa wex weq el wal ax-nul eximii eeanv mpbir2an nelneq2 2eximi
      sp cv ax-mp ) CADZCBDEZFZBGAGZABHEZBGAGUCTAGUABGCAIUACJUABBCKUACQLTUAABMN
      UBUDABCRARBROPS $.
  $}

  ${
    $d A x $.
    $( A class is a subclass of the power class of its union.  Exercise 6(b) of
       [Enderton] p. 38.  (Contributed by NM, 14-Oct-1996.) $)
    pwuni $p |- A C_ ~P U. A $=
      ( vx cuni cpw cv wcel wss elssuni vex elpw sylibr ssriv ) BAACZDZBEZAFOMG
      ONFOAHOMBIJKL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                   Axiom of Pairing
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z w $.  $d y z w $.
    $( The Axiom of Pairing of IZF set theory.  Axiom 2 of [Crosilla] p.
       "Axioms of CZF and IZF", except (a) unnecessary quantifiers are removed,
       and (b) Crosilla has a biconditional rather than an implication (but the
       two are equivalent by ~ bm1.3ii ).  (Contributed by NM, 14-Nov-2006.) $)
    ax-pr $a |- E. z A. w ( ( w = x \/ w = y ) -> w e. z ) $.

    $( Derive the abbreviated version of the Axiom of Pairing from ~ ax-pr .
       (Contributed by NM, 14-Nov-2006.) $)
    zfpair2 $p |- { x , y } e. _V $=
      ( vz vw cv cpr wceq wex wcel wo wal ax-pr bm1.3ii dfcleq vex bibi2i albii
      wb elpr bitri exbii mpbir issetri ) CAEZBEZFZCEZUFGZCHDEZUGIZUIUDGUIUEGJZ
      RZDKZCHUKCDABCDLMUHUMCUHUJUIUFIZRZDKUMDUGUFNUOULDUNUKUJUIUDUEDOSPQTUAUBUC
      $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The Axiom of Pairing using class variables.  Theorem 7.13 of [Quine]
       p. 51, but restricted to classes which exist.  For proper classes, see
       ~ prprc , ~ prprc1 , and ~ prprc2 .  This is a special case of ~ prexg
       and new proofs should use ~ prexg instead.  (Contributed by Jim Kingdon,
       25-Jul-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.)  TODO: replace its uses by uses of
       ~ prexg and then remove it. $)
    prexgOLD $p |- ( ( A e. _V /\ B e. _V ) -> { A , B } e. _V ) $=
      ( vx vy cvv wcel cpr wi cv wceq preq2 eleq1d zfpair2 vtoclg preq1 vtocleg
      syl5ib imp ) AEFBEFZABGZEFZSUAHCAESCIZBGZEFZUBAJZUAUBDIZGZEFUDDBEUFBJUGUC
      EUFBUBKLCDMNUEUCTEUBABOLQPR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x W $.
    $( The Axiom of Pairing using class variables.  Theorem 7.13 of [Quine]
       p. 51, but restricted to classes which exist.  For proper classes, see
       ~ prprc , ~ prprc1 , and ~ prprc2 .  (Contributed by Jim Kingdon,
       16-Sep-2018.) $)
    prexg $p |- ( ( A e. V /\ B e. W ) -> { A , B } e. _V ) $=
      ( vx vy wcel cpr cvv wi cv wceq preq2 eleq1d zfpair2 vtoclg preq1 vtocleg
      syl5ib imp ) ACGBDGZABHZIGZUAUCJEACUAEKZBHZIGZUDALZUCUDFKZHZIGUFFBDUHBLUI
      UEIUHBUDMNEFOPUGUEUBIUDABQNSRT $.
  $}

  ${
    $( A singleton of a set belongs to the power class of a class containing
       the set.  (Contributed by Alan Sare, 25-Aug-2011.) $)
    snelpwi $p |- ( A e. B -> { A } e. ~P B ) $=
      ( wcel csn cpw wss snssi cvv wb elex snexgOLD elpwg 3syl mpbird ) ABCZADZ
      BECZPBFZABGOAHCPHCQRIABJAKPBHLMN $.
  $}

  ${
    snelpw.1 $e |- A e. _V $.
    $( A singleton of a set belongs to the power class of a class containing
       the set.  (Contributed by NM, 1-Apr-1998.) $)
    snelpw $p |- ( A e. B <-> { A } e. ~P B ) $=
      ( wcel csn wss cpw snss cvv snexgOLD ax-mp elpw bitr4i ) ABDAEZBFNBGDABCH
      NBAIDNIDCAJKLM $.
  $}

  $( A pair of two sets belongs to the power class of a class containing those
     two sets.  (Contributed by Thierry Arnoux, 10-Mar-2017.) $)
  prelpwi $p |- ( ( A e. C /\ B e. C ) -> { A , B } e. ~P C ) $=
    ( wcel wa cpr cpw wss prssi cvv wb elex prexgOLD syl2an elpwg syl mpbird )
    ACDZBCDZEZABFZCGDZUACHZABCITUAJDZUBUCKRAJDBJDUDSACLBCLABMNUACJOPQ $.

  ${
    $d x y z $.
    $( A theorem similar to extensionality, requiring the existence of a
       singleton.  Exercise 8 of [TakeutiZaring] p. 16.  (Contributed by NM,
       10-Aug-1993.) $)
    rext $p |- ( A. z ( x e. z -> y e. z ) -> x = y ) $=
      ( cv wcel wal csn wceq vex snid cvv snexgOLD ax-mp eleq2 imbi12d spcv mpi
      wi elsn equcomi sylbi syl ) ADZCDZEZBDZUDEZRZCFZUFUCGZEZUCUFHZUIUCUJEZUKU
      CAIZJUHUMUKRCUJUCKEUJKEUNUCLMUDUJHUEUMUGUKUDUJUCNUDUJUFNOPQUKUFUCHULBUCSB
      ATUAUB $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Classes are subclasses if and only if their power classes are
       subclasses.  Exercise 18 of [TakeutiZaring] p. 18.  (Contributed by NM,
       13-Oct-1996.) $)
    sspwb $p |- ( A C_ B <-> ~P A C_ ~P B ) $=
      ( vx wss cpw cv wcel sstr2 com12 vex elpw 3imtr4g ssrdv csn ssel snexgOLD
      cvv ax-mp snss bitr4i 3imtr3g impbii ) ABDZAEZBEZDZUCCUDUEUCCFZADZUGBDZUG
      UDGUGUEGUHUCUIUGABHIUGACJZKUGBUJKLMUFCABUFUGNZUDGZUKUEGZUGAGZUGBGZUDUEUKO
      ULUKADUNUKAUGQGUKQGUJUGPRZKUGAUJSTUMUKBDUOUKBUPKUGBUJSTUAMUB $.
  $}

  ${
    $d A x y $.
    $( A class equals the union of its power class.  Exercise 6(a) of
       [Enderton] p. 38.  (Contributed by NM, 14-Oct-1996.)  (Proof shortened
       by Alan Sare, 28-Dec-2008.) $)
    unipw $p |- U. ~P A = A $=
      ( vx vy cpw cuni cv wcel wex eluni elelpwi exlimiv sylbi csn snid snelpwi
      wa vex elunii sylancr impbii eqriv ) BADZEZABFZUCGZUDAGZUEUDCFZGUGUBGPZCH
      UFCUDUBIUHUFCUDUGAJKLUFUDUDMZGUIUBGUEUDBQNUDAOUDUIUBRSTUA $.
  $}

  $( Membership of a power class.  Exercise 10 of [Enderton] p. 26.
     (Contributed by NM, 13-Jan-2007.) $)
  pwel $p |- ( A e. B -> ~P A e. ~P ~P U. B ) $=
    ( wcel cpw cuni wss elssuni sspwb sylib cvv wb pwexg elpwg syl mpbird ) ABC
    ZADZBEZDZDCZQSFZPARFUAABGARHIPQJCTUAKABLQSJMNO $.

  $( A class is transitive iff its power class is transitive.  (Contributed by
     Alan Sare, 25-Aug-2011.)  (Revised by Mario Carneiro, 15-Jun-2014.) $)
  pwtr $p |- ( Tr A <-> Tr ~P A ) $=
    ( cpw cuni wss wtr unipw sseq1i df-tr dftr4 3bitr4ri ) ABZCZKDAKDKEAELAKAFG
    KHAIJ $.

  ${
    $d A x $.  $d B x $.
    $( An extensionality-like principle defining subclass in terms of subsets.
       (Contributed by NM, 30-Jun-2004.) $)
    ssextss $p |- ( A C_ B <-> A. x ( x C_ A -> x C_ B ) ) $=
      ( wss cpw cv wcel wi wal sspwb dfss2 vex elpw imbi12i albii 3bitri ) BCDB
      EZCEZDAFZQGZSRGZHZAISBDZSCDZHZAIBCJAQRKUBUEATUCUAUDSBALZMSCUFMNOP $.

    $( An extensionality-like principle that uses the subset instead of the
       membership relation: two classes are equal iff they have the same
       subsets.  (Contributed by NM, 30-Jun-2004.) $)
    ssext $p |- ( A = B <-> A. x ( x C_ A <-> x C_ B ) ) $=
      ( wss wa cv wi wal wceq wb ssextss anbi12i eqss albiim 3bitr4i ) BCDZCBDZ
      EAFZBDZRCDZGAHZTSGAHZEBCISTJAHPUAQUBABCKACBKLBCMSTANO $.

    $( Negation of subclass relationship.  Compare ~ nssr .  (Contributed by
       Jim Kingdon, 17-Sep-2018.) $)
    nssssr $p |- ( E. x ( x C_ A /\ -. x C_ B ) -> -. A C_ B ) $=
      ( cv wss wn wa wex wi wal exanaliim ssextss sylnibr ) ADZBEZNCEZFGAHOPIAJ
      BCEOPAKABCLM $.
  $}

  $( Classes are equal if and only if their power classes are equal.  Exercise
     19 of [TakeutiZaring] p. 18.  (Contributed by NM, 13-Oct-1996.) $)
  pweqb $p |- ( A = B <-> ~P A = ~P B ) $=
    ( wss wa cpw wceq sspwb anbi12i eqss 3bitr4i ) ABCZBACZDAEZBEZCZNMCZDABFMNF
    KOLPABGBAGHABIMNIJ $.

  ${
    $d x A $.
    intid.1 $e |- A e. _V $.
    $( The intersection of all sets to which a set belongs is the singleton of
       that set.  (Contributed by NM, 5-Jun-2009.) $)
    intid $p |- |^| { x | A e. x } = { A } $=
      ( cv wcel cab cint csn cvv wss snexgOLD ax-mp eleq2 intmin3 wi elintab id
      snid mpgbir snssi eqssi ) BADZEZAFGZBHZUEIEZUDUEJBIEUFCBKLUCBUEEAUEIUBUEB
      MBCRNLBUDEZUEUDJUGUCUCOAUCABCPUCQSBUDTLUA $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( The abstraction of a wff with existential uniqueness exists.
       (Contributed by NM, 25-Nov-1994.) $)
    euabex $p |- ( E! x ph -> { x | ph } e. _V ) $=
      ( vy weu cab cv csn wceq wex cvv wcel euabsn2 snexgOLD ax-mp eleq1 mpbiri
      vex exlimiv sylbi ) ABDABEZCFZGZHZCITJKZABCLUCUDCUCUDUBJKZUAJKUECQUAMNTUB
      JOPRS $.
  $}

  ${
    $d w x y $.  $d w x z $.  $d x y A $.
    $( An inhabited class (even if proper) has an inhabited subset.
       (Contributed by Jim Kingdon, 17-Sep-2018.) $)
    mss $p |- ( E. y y e. A -> E. x ( x C_ A /\ E. z z e. x ) ) $=
      ( vw cv wcel wex wss csn vex snss snm cvv snexgOLD ax-mp wceq sseq1 eleq2
      wa exbidv anbi12d spcev mpan2 sylbi exlimiv elequ1 cbvexv anbi2i sylibr
      exbii ) BFZDGZBHAFZDIZEFZUNGZEHZTZAHZUOCFUNGZCHZTZAHUMUTBUMULJZDIZUTULDBK
      ZLVEUPVDGZEHZUTEULVFMUSVEVHTAVDULNGVDNGVFULOPUNVDQZUOVEURVHUNVDDRVIUQVGEU
      NVDUPSUAUBUCUDUEUFVCUSAVBURUOVAUQCECEAUGUHUIUKUJ $.
  $}

  ${
    $d x y z A w $.  $d y z ph w $.
    $( Restricted existence in a class (even if proper) implies restricted
       existence in a subset.  (Contributed by NM, 23-Aug-2003.) $)
    exss $p |- ( E. x e. A ph -> E. y ( y C_ A /\ E. x e. y ph ) ) $=
      ( vz vw wrex cv wcel wa cab wex wss crab rabn0m df-rab eleq2i sylbi bitri
      wsb exbii bitr3i csn vex snss ssab2 sstr2 mpi simpr wceq elsn sbbii mpbir
      jctil df-clab sban 3imtr4i elex2 syl sylib cvv snexgOLD ax-mp sseq1 rexeq
      equsb1 anbi12d spcev syl2anc exlimiv ) ABDGZEHZBHZDIZAJZBKZIZELZCHZDMZABV
      SGZJZCLZVKVLABDNZIZELVRABEDOWEVQEWDVPVLABDPQUAUBVQWCEVQVLUCZDMZABWFGZWCVQ
      WFVPMZWGVLVPEUDZUEWIVPDMWGABDUFWFVPDUGUHRVQFHABWFNZIFLZWHVQVLWKIZWLVNBETZ
      ABETZJZVMWFIZBETZWOJZVQWMWPWOWRWNWOUIWRVMVLUJZBETBEVFWQWTBEBVLUKULUMUNVQV
      OBETWPVOEBUOVNABEUPSWMVLWQAJZBKZIZWSWKXBVLABWFPQXCXABETWSXAEBUOWQABEUPSSU
      QFVLWKURUSABFWFOUTWBWGWHJCWFVLVAIWFVAIWJVLVBVCVSWFUJVTWGWAWHVSWFDVDABVSWF
      VEVGVHVIVJR $.
  $}

  $( An ordered pair of sets is a set.  (Contributed by Jim Kingdon,
     11-Jan-2019.) $)
  opexg $p |- ( ( A e. V /\ B e. W ) -> <. A , B >. e. _V ) $=
    ( wcel wa cop csn cpr cvv dfopg elex snexg syl adantr prexg syl2anc eqeltrd
    syl2an ) ACEZBDEZFZABGAHZABIZIZJABCDKUBUCJEZUDJEZUEJETUFUATAJEZUFACLZAJMNOT
    UHBJEUGUAUIBDLABJJPSUCUDJJPQR $.

  $( An ordered pair of sets is a set.  This is a special case of ~ opexg and
     new proofs should use ~ opexg instead.  (Contributed by Jim Kingdon,
     19-Sep-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.)  TODO: replace its uses by uses of
     ~ opexg and then remove it. $)
  opexgOLD $p |- ( ( A e. _V /\ B e. _V ) -> <. A , B >. e. _V ) $=
    ( cvv wcel wa cop csn cpr dfopg snexgOLD adantr prexgOLD jca syl eqeltrd )
    ACDZBCDZEZABFAGZABHZHZCABCCIRSCDZTCDZEUACDRUBUCPUBQAJKABLMSTLNO $.

  ${
    opex.1 $e |- A e. _V $.
    opex.2 $e |- B e. _V $.
    $( An ordered pair of sets is a set.  (Contributed by Jim Kingdon,
       24-Sep-2018.)  (Revised by Mario Carneiro, 24-May-2019.) $)
    opex $p |- <. A , B >. e. _V $=
      ( cvv wcel cop opexg mp2an ) AEFBEFABGEFCDABEEHI $.
  $}

  $( An ordered triple of sets is a set.  (Contributed by Jim Kingdon,
     19-Sep-2018.) $)
  otexg $p |- ( ( A e. U /\ B e. V /\ C e. W ) -> <. A , B , C >. e. _V ) $=
    ( wcel cotp cvv wa cop df-ot opexg sylan syl5eqel 3impa ) ADGZBEGZCFGZABCHZ
    IGQRJZSJTABKZCKZIABCLUAUBIGSUCIGABDEMUBCIFMNOP $.

  ${
    elop.1 $e |- A e. _V $.
    elop.2 $e |- B e. _V $.
    elop.3 $e |- C e. _V $.
    $( An ordered pair has two elements.  Exercise 3 of [TakeutiZaring] p. 15.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    elop $p |- ( A e. <. B , C >. <-> ( A = { B } \/ A = { B , C } ) ) $=
      ( cop wcel csn cpr wceq wo dfop eleq2i elpr bitri ) ABCGZHABIZBCJZJZHARKA
      SKLQTABCEFMNARSDOP $.
  $}

  ${
    opi1.1 $e |- A e. _V $.
    opi1.2 $e |- B e. _V $.
    $( One of the two elements in an ordered pair.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opi1 $p |- { A } e. <. A , B >. $=
      ( csn cpr cop cvv wcel snexgOLD ax-mp prid1 dfop eleqtrri ) AEZOABFZFABGO
      PAHIOHICAJKLABCDMN $.

    $( One of the two elements of an ordered pair.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opi2 $p |- { A , B } e. <. A , B >. $=
      ( cpr csn cop cvv wcel prexgOLD mp2an prid2 dfop eleqtrri ) ABEZAFZOEABGP
      OAHIBHIOHICDABJKLABCDMN $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                   Ordered pair theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.  $d B x $.

    $( An ordered pair is inhabited iff the arguments are sets.  (Contributed
       by Jim Kingdon, 21-Sep-2018.) $)
    opm $p |- ( E. x x e. <. A , B >. <-> ( A e. _V /\ B e. _V ) ) $=
      ( cv cop wcel wex cvv csn cpr w3a wa df-op eleq2i exbii abid bitri 19.42v
      cab df-3an 3bitr4ri 3simpa id snexgOLD adantr syl sylanbrc impbii 3bitr2i
      prmg ) ADZBCEZFZAGZBHFZCHFZUKBIZBCJZJFZKZAGZUOUPUSAGZKZUOUPLZUNUKUTASZFZA
      GVAUMVFAULVEUKABCMNOVFUTAUTAPOQVDUSLZAGVDVBLVAVCVDUSARUTVGAUOUPUSTOUOUPVB
      TZUAVCVDUOUPVBUBVDVDVBVCVDUCVDUQHFZVBUOVIUPBUDUEAUQURHUJUFVHUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    opth1.1 $e |- A e. _V $.
    opth1.2 $e |- B e. _V $.
    $( An ordered pair is nonempty if the arguments are sets (it is also
       inhabited; see ~ opm ).  (Contributed by Mario Carneiro,
       26-Apr-2015.) $)
    opnzi $p |- <. A , B >. =/= (/) $=
      ( vx cv cop wcel wex c0 wne cvv opm mpbir2an n0r ax-mp ) EFABGZHEIZQJKRAL
      HBLHCDEABMNEQOP $.

    $( Equality of the first members of equal ordered pairs.  (Contributed by
       NM, 28-May-2008.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opth1 $p |- ( <. A , B >. = <. C , D >. -> A = C ) $=
      ( cop wceq csn cpr wi sneqr a1i wcel cvv wa opi1 id syl5eleq syl oprcl wo
      simpld prid1g eleq2 syl5ibrcom elsni eqcomd syl6 dfopg 3syl eleqtrd elpri
      mpjaod ) ABGZCDGZHZAIZCIZHZACHZURCDJZHZUTVAKUQACELMUQVCCURNZVAUQVDVCCVBNZ
      UQCONZVEUQVFDONZUQURUPNZVFVGPZUQURUOUPABEFQUQRSZCDURUAZTUCCDOUDTURVBCUEUF
      VDCACAUGUHUIUQURUSVBJZNUTVCUBUQURUPVLVJUQVHVIUPVLHVJVKCDOOUJUKULURUSVBUMT
      UN $.

    $( The ordered pair theorem.  If two ordered pairs are equal, their first
       elements are equal and their second elements are equal.  Exercise 6 of
       [TakeutiZaring] p. 16.  Note that ` C ` and ` D ` are not required to be
       sets due our specific ordered pair definition.  (Contributed by NM,
       28-May-1995.) $)
    opth $p |- ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) $=
      ( vx cop wceq wa cvv wcel cpr csn syl eqtr3d dfopg sylancl wi prexgOLD id
      opth1 opi1 syl5eleq oprcl simprd opeq1d simpld preqr2g syl2anc mpd eqeq2d
      cv preq2 eqeq2 imbi12d vex preqr2 vtoclg sylc jca opeq12 impbii ) ABHZCDH
      ZIZACIZBDIZJVFVGVHABCDEFUBZVFDKLZCBMZCDMZIZVHVFCKLZVJVFANZVELVNVJJZVFVOVD
      VEABEFUCVFUAZUDCDVOUEOZUFVFCNZVKMZVSVLMZIZVMVFVEVTWAVFCBHZVEVTVFVDWCVEVFA
      CBVIUGVQPVFVNBKLZWCVTIVFVNVJVRUHZFCBKKQRPVFVPVEWAIVRCDKKQOPVFVKKLZVLKLZWB
      VMSVFVNWDWFWEFCBTRVFVPWGVRCDTOVKVLVSUIUJUKVKCGUMZMZIZBWHIZSVMVHSGDKWHDIZW
      JVMWKVHWLWIVLVKWHDCUNULWHDBUOUPBWHCFGUQURUSUTVAABCDVBVC $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.
    $( Ordered pair theorem. ` C ` and ` D ` are not required to be sets under
       our specific ordered pair definition.  (Contributed by NM,
       14-Oct-2005.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opthg $p |- ( ( A e. V /\ B e. W ) ->
                 ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) ) $=
      ( vx vy cv cop wceq wa wb opeq1 eqeq1d eqeq1 anbi1d bibi12d opeq2 vex
      anbi2d opth vtocl2g ) GIZHIZJZCDJZKZUDCKZUEDKZLZMAUEJZUGKZACKZUJLZMABJZUG
      KZUNBDKZLZMGHABEFUDAKZUHUMUKUOUTUFULUGUDAUENOUTUIUNUJUDACPQRUEBKZUMUQUOUS
      VAULUPUGUEBASOVAUJURUNUEBDPUARUDUECDGTHTUBUC $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d x y X $.
    $( Ordered pair theorem.  (Contributed by NM, 14-Oct-2005.)  (Revised by
       Mario Carneiro, 26-Apr-2015.) $)
    opthg2 $p |- ( ( C e. V /\ D e. W ) ->
                 ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) ) $=
      ( wcel wa cop wceq opthg eqcom anbi12i 3bitr4g ) CEGDFGHCDIZABIZJCAJZDBJZ
      HPOJACJZBDJZHCDABEFKPOLSQTRACLBDLMN $.
  $}

  ${
    opth2.1 $e |- C e. _V $.
    opth2.2 $e |- D e. _V $.
    $( Ordered pair theorem.  (Contributed by NM, 21-Sep-2014.) $)
    opth2 $p |- ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) $=
      ( cvv wcel cop wceq wa wb opthg2 mp2an ) CGHDGHABICDIJACJBDJKLEFABCDGGMN
      $.
  $}

  ${
    otth.1 $e |- A e. _V $.
    otth.2 $e |- B e. _V $.
    otth.3 $e |- R e. _V $.
    $( Ordered triple theorem, with triple express with ordered pairs.
       (Contributed by NM, 1-May-1995.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    otth2 $p |- ( <. <. A , B >. , R >. = <. <. C , D >. , S >. <->
                ( A = C /\ B = D /\ R = S ) ) $=
      ( cop wceq wa w3a opth anbi1i cvv wcel opexgOLD mp2an df-3an 3bitr4i ) AB
      JZCDJZKZEFKZLACKZBDKZLZUELUBEJUCFJKUFUGUEMUDUHUEABCDGHNOUBEUCFAPQBPQUBPQG
      HABRSINUFUGUETUA $.

    $( Ordered triple theorem.  (Contributed by NM, 25-Sep-2014.)  (Revised by
       Mario Carneiro, 26-Apr-2015.) $)
    otth $p |- ( <. A , B , R >. = <. C , D , S >. <->
      ( A = C /\ B = D /\ R = S ) ) $=
      ( cotp wceq cop w3a df-ot eqeq12i otth2 bitri ) ABEJZCDFJZKABLELZCDLFLZKA
      CKBDKEFKMRTSUAABENCDFNOABCDEFGHIPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    eqvinop.1 $e |- B e. _V $.
    eqvinop.2 $e |- C e. _V $.
    $( A variable introduction law for ordered pairs.  Analog of Lemma 15 of
       [Monk2] p. 109.  (Contributed by NM, 28-May-1995.) $)
    eqvinop $p |- ( A = <. B , C >. <-> E. x E. y ( A = <. x , y >. /\
                  <. x , y >. = <. B , C >. ) ) $=
      ( cv cop wceq wa wex opth2 anbi2i ancom anass 3bitri exbii eqeq2d ceqsexv
      19.42v opeq2 opeq1 bitr2i ) CAHZBHZIZJZUGDEIZJZKZBLZALUEDJZCUEEIZJZKZALCU
      IJZULUPAULUMUFEJZUHKZKZBLUMUSBLZKUPUKUTBUKUHUMURKZKVBUHKUTUJVBUHUEUFDEFGM
      NUHVBOUMURUHPQRUMUSBUAVAUOUMUHUOBEGURUGUNCUFEUEUBSTNQRUOUQADFUMUNUICUEDEU
      CSTUD $.
  $}

  ${
    $d x z w A $.  $d y z w A $.  $d z w ph $.
    $( Substitution of class ` A ` for ordered pair ` <. x , y >. ` .
       (Contributed by NM, 27-Dec-1996.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    copsexg $p |- ( A = <. x , y >. ->
                  ( ph <-> E. x E. y ( A = <. x , y >. /\ ph ) ) ) $=
      ( vz vw cv cop wceq wa wex wb wi vex 19.8a weq syl5bi syl5 weu euequ1 wal
      eqvinop 19.23bi ex opth anbi1i 2exbii nfe1 wnf wo dveeq2or nfae anass a1i
      anim2d eximd biidd drex1 sylibd exbii 19.40 19.9t biimpd anim1d syl6 jaoi
      ax-mp exlimi equcom eubii eupick com12 sylan9 sylbi impbid anbi1d 2exbidv
      mpbi mpan eqeq1 bibi2d imbi12d mpbiri adantr exlimivv pm2.43i ) DBGZCGZHZ
      IZAWJAJZCKBKZLZWJDEGZFGZHZIZWPWIIZJZFKEKWJWMMZEFDWGWHBNCNUBWSWTEFWQWTWRWQ
      WTWRAWRAJZCKZBKZLZMWRAXCWRAXCXAXCCXBBOUCUDWREBPZFCPZJZXCAMWNWOWGWHENFNUEZ
      XCXGAJZCKZBKZXGAXAXIBCWRXGAXHUFUGXKXEXFAJZCKZJZBKZXGAXJXOBXNBUHCBPCUAZXEC
      UIZUJXJXOMZCBEUKXPXRXQXPXJXNCKXOXPXIXNCCBCULXIXEXLJZXPXNXEXFAUMZXPXLXMXEX
      LXMMXPXLCOUNUOQUPXNXNCBXPXNUQURUSXQXJXNXOXJXSCKZXQXNXIXSCXTUTYAXECKZXMJXQ
      XNXEXLCVAXQYBXEXMXQYBXEXECVBVCVDRQXNBOVEVFVGVHXEXOXMXFAXOXEXMXEBSZXOXEXMM
      BEPZBSYCBETYDXEBBEVIVJVRXEXMBVKVSVLXMXFAXFCSZXMXFAMCFPZCSYECFTYFXFCCFVIVJ
      VRXFACVKVSVLVMRQVNVOWQWJWRWMXDDWPWIVTZWQWLXCAWQWKXABCWQWJWRAYGVPVQWAWBWCW
      DWEVNWF $.
  $}

  ${
    $d x y ps $.  $d x y A $.  $d x y B $.
    $( Closed theorem form of ~ copsex2g .  (Contributed by NM,
       17-Feb-2013.) $)
    copsex2t $p |- ( ( A. x A. y ( ( x = A /\ y = B ) -> ( ph <-> ps ) )
      /\ ( A e. V /\ B e. W ) ) ->
                  ( E. x E. y ( <. A , B >. = <. x , y >. /\ ph ) <-> ps ) ) $=
      ( wcel wa cv wceq wb wal wex cop elisset nfe1 nfv nfbi anim12i eeanv nfa1
      wi sylibr nfa2 nfex opeq12 copsexg eqcoms syl adantl sp 19.21bi bitr3d ex
      imp exlimd sylan2 ) EGIZFHIZJZCKZELZDKZFLZJZABMZUDZDNZCNZVGDOZCOZEFPZVCVE
      PZLAJZDOZCOZBMZVBVDCOZVFDOZJVMUTVTVAWACEGQDFHQUAVDVFCDUBUEVKVMVSVKVLVSCVJ
      CUCVRBCVQCRBCSTVKVGVSDVIDCUFVRBDVQDCVPDRUGBDSTVKVGVSVKVGJAVRBVGAVRMZVKVGV
      OVNLWBVCVEEFUHWBVNVOACDVNUIUJUKULVKVGVHVKVIDVJCUMUNUQUOUPURURUQUS $.
  $}

  ${
    $d x y ps $.  $d x y A $.  $d x y B $.
    copsex2g.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Implicit substitution inference for ordered pairs.  (Contributed by NM,
       28-May-1995.) $)
    copsex2g $p |- ( ( A e. V /\ B e. W ) ->
                  ( E. x E. y ( <. A , B >. = <. x , y >. /\ ph ) <-> ps ) ) $=
      ( wcel cv wceq wex cop wa wb elisset nfe1 nfv nfbi eeanv nfex copsexg syl
      opeq12 eqcoms bitr3d exlimi sylbir syl2an ) EGJCKZELZCMZDKZFLZDMZEFNZUKUN
      NZLAOZDMZCMZBPZFHJCEGQDFHQUMUPOULUOOZDMZCMVBULUOCDUAVDVBCVABCUTCRBCSTVCVB
      DVABDUTDCUSDRUBBDSTVCAVABVCURUQLAVAPZUKUNEFUEVEUQURACDUQUCUFUDIUGUHUHUIUJ
      $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x y z w ps $.  $d x y z w R $.  $d x y z w S $.
    copsex4g.1 $e |- ( ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) ) ->
                     ( ph <-> ps ) ) $.
    $( An implicit substitution inference for 2 ordered pairs.  (Contributed by
       NM, 5-Aug-1995.) $)
    copsex4g $p |- ( ( ( A e. R /\ B e. S ) /\ ( C e. R /\ D e. S ) ) ->
                      ( E. x E. y E. z E. w ( ( <. A , B >. = <. x , y >. /\
                      <. C , D >. = <. z , w >. ) /\ ph ) <-> ps ) ) $=
      ( wcel wa cop cv wceq wex vex eqcom opth bitri anbi12i anbi1i a1i 4exbidv
      wb id cgsex4g bitrd ) GKNHLNOIKNJLNOOZGHPZCQZDQZPZRZIJPZEQZFQZPZRZOZAOZFS
      ESDSCSUNGRUOHROZUSIRUTJROZOZAOZFSESDSCSBULVDVHCDEFVDVHUHULVCVGAUQVEVBVFUQ
      UPUMRVEUMUPUAUNUOGHCTDTUBUCVBVAURRVFURVAUAUSUTIJETFTUBUCUDUEUFUGABVGCDEFG
      HIJKLVGUIMUJUK $.
  $}

  $( A property of ordered pairs.  (Contributed by Mario Carneiro,
     26-Apr-2015.) $)
  0nelop $p |- -. (/) e. <. A , B >. $=
    ( c0 cop wcel csn cpr wo id cvv wa oprcl dfopg syl eleqtrd elpri wne necomd
    wceq wn simpld snnzg prnzg jca neanior sylib pm2.65i ) CABDZEZCAFZSCABGZSHZ
    UICUJUKGZEULUICUHUMUIIUIAJEZBJEZKUHUMSABCLZABJJMNOCUJUKPNUICUJQZCUKQZKULTUI
    UQURUIUJCUIUNUJCQUIUNUOUPUAZAJUBNRUIUKCUIUNUKCQUSABJUCNRUDCUJCUKUEUFUG $.

  ${
    $d A x $.  $d B x $.  $d C x $.  $d D x $.

    $( Equivalence of existence implied by equality of ordered pairs.
       (Contributed by NM, 28-May-2008.) $)
    opeqex $p |- ( <. A , B >. = <. C , D >. ->
      ( ( A e. _V /\ B e. _V ) <-> ( C e. _V /\ D e. _V ) ) ) $=
      ( vx cop wceq cv wcel wex cvv wa eleq2 exbidv opm 3bitr3g ) ABFZCDFZGZEHZ
      QIZEJTRIZEJAKIBKILCKIDKILSUAUBEQRTMNEABOECDOP $.
  $}

  ${
    opcom.1 $e |- A e. _V $.
    opcom.2 $e |- B e. _V $.
    $( An ordered pair commutes iff its members are equal.  (Contributed by NM,
       28-May-2009.) $)
    opcom $p |- ( <. A , B >. = <. B , A >. <-> A = B ) $=
      ( cop wceq wa opth eqcom anbi2i anidm 3bitri ) ABEBAEFABFZBAFZGMMGMABBACD
      HNMMBAIJMKL $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    moop2.1 $e |- B e. _V $.
    $( "At most one" property of an ordered pair.  (Contributed by NM,
       11-Apr-2004.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    moop2 $p |- E* x A = <. B , x >. $=
      ( vy cv cop wceq wmo csb wa wal eqtr2 vex opth simprbi syl gen2 nfcsb1v
      wi nfcv nfop nfeq2 csbeq1a id opeq12d eqeq2d mo4f mpbir ) BCAFZGZHZAIULBA
      EFZCJZUMGZHZKZUJUMHZTZELALUSAEUQUKUOHZURBUKUOMUTCUNHURCUJUNUMDANOPQRULUPA
      EABUOAUNUMAUMCSAUMUAUBUCURUKUOBURCUNUJUMAUMCUDURUEUFUGUHUI $.
  $}

  ${
    opeqsn.1 $e |- A e. _V $.
    opeqsn.2 $e |- B e. _V $.
    opeqsn.3 $e |- C e. _V $.
    $( Equivalence for an ordered pair equal to a singleton.  (Contributed by
       NM, 3-Jun-2008.) $)
    opeqsn $p |- ( <. A , B >. = { C } <-> ( A = B /\ C = { A } ) ) $=
      ( cop csn wceq cpr wa dfop eqeq1i wcel snexgOLD preqsn eqcom bitri 3bitri
      cvv ax-mp prexgOLD mp2an anbi2i anidm anbi1i dfsn2 syl5req eqeq1d pm5.32i
      preq2 syl6bb ) ABGZCHZIAHZABJZJZUNIUOUPIZUPCIZKZABIZCUOIZKZUMUQUNABDELMUO
      UPCATNZUOTNDAOUAVDBTNUPTNDEABUBUCFPUTVAUSKVCURVAUSURUPUOIVABAIZKZVAUOUPQA
      BADEDPVFVAVAKVAVEVAVABAQUDVAUERSUFVAUSVBVAUSUOCIVBVAUPUOCVAUOAAJUPAUGABAU
      KUHUIUOCQULUJRS $.
  $}

  ${
    opeqpr.1 $e |- A e. _V $.
    opeqpr.2 $e |- B e. _V $.
    opeqpr.3 $e |- C e. _V $.
    opeqpr.4 $e |- D e. _V $.
    $( Equivalence for an ordered pair equal to an unordered pair.
       (Contributed by NM, 3-Jun-2008.) $)
    opeqpr $p |- ( <. A , B >. = { C , D }
  <-> ( ( C = { A } /\ D = { A , B } ) \/ ( C = { A , B } /\ D = { A } ) ) ) $=
      ( cop cpr wceq csn wa wo eqcom dfop eqeq2i cvv wcel snexgOLD ax-mp 3bitri
      prexgOLD mp2an preq12b ) ABIZCDJZKUGUFKUGALZABJZJZKCUHKDUIKMCUIKDUHKMNUFU
      GOUFUJUGABEFPQCDUHUIGHARSZUHRSEATUAUKBRSUIRSEFABUCUDUEUB $.
  $}

  ${
    $d a b c x y A $.  $d a b c x y B $.  $d a b c x y C $.  $d a b c x ph $.
    $d y ps $.
    euotd.1 $e |- ( ph -> A e. _V ) $.
    euotd.2 $e |- ( ph -> B e. _V ) $.
    euotd.3 $e |- ( ph -> C e. _V ) $.
    euotd.4 $e |- ( ph -> ( ps <-> ( a = A /\ b = B /\ c = C ) ) ) $.
    $( Prove existential uniqueness for an ordered triple.  (Contributed by
       Mario Carneiro, 20-May-2015.) $)
    euotd $p |- ( ph -> E! x E. a E. b E. c ( x = <. a , b , c >. /\ ps ) ) $=
      ( vy cv wceq wa wex cvv wtru cotp wb wal weu otexg syl3anc w3a biimpa vex
      wcel otth sylibr eqeq2d biimpd impancom expimpd exlimdv exlimdvv wsbc tru
      adantr ad2antrr simpr eqcomd biimpar jca a1tru 2thd sbcied mpbiri spesbcd
      3anassrs nfcv nfsbc1v nfex sbceq1a exbidv spcegf sylc 2exbidv sylib eqeq1
      excom13 anbi1d 3exbidv syl5ibrcom impbid eqeq2 bibi2d albidv spcegv df-eu
      alrimiv ) ACOZGOZHOZIOZUAZPZBQZIRZHRGRZWNNOZPZUBZCUCZNRZXBCUDADEFUAZSUJZX
      BWNXHPZUBZCUCZXGADSUJESUJZFSUJZXIJKLDEFSSSUEUFAXKCAXBXJAXAXJGHAWTXJIAWSBX
      JABWSXJABQZWSXJXOWRXHWNXOWODPZWPEPZWQFPZUGZWRXHPZABXSMUHWOWPDEWQFGUIHUIIU
      IUKZULUMUNUOUPUQURAXBXJXHWRPZBQZIRHRGRZAYCGRHRZIRZYDAXNYCIFUSZGRZHRZYFLAX
      MYGHEUSZGRZYIKAYJGDAYJGDUSTUTAYJTGDSJAXPQZYGTHESAXMXPKVAYLXQQYCTIFSAXNXPX
      QLVBAXPXQXRYCTUBAXSQZYCTYMYBBYMWRXHYMXSXTAXSVCYAULVDABXSMVEVFYMVGVHVLVIVI
      VIVJVKYHYKHESHEVMYJHGYGHEVNVOXQYGYJGYGHEVPVQVRVSYEYIIFSIFVMYHIHYGIGYCIFVN
      VOVOXRYCYGHGYCIFVPVTVRVSYCIHGWCWAXJWTYCGHIXJWSYBBWNXHWRWBWDWEWFWGWMXFXLNX
      HSXCXHPZXEXKCYNXDXJXBXCXHWNWHWIWJWKVSXBCNWLUL $.
  $}

  ${
    opthw.1 $e |- A e. _V $.
    opthw.2 $e |- B e. _V $.
    $( The union of an ordered pair.  Theorem 65 of [Suppes] p. 39.
       (Contributed by NM, 17-Aug-2004.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    uniop $p |- U. <. A , B >. = { A , B } $=
      ( cop cuni csn cpr cun dfop unieqi cvv wcel snexgOLD ax-mp prexgOLD mp2an
      unipr wss wceq snsspr1 ssequn1 mpbi 3eqtri ) ABEZFAGZABHZHZFUFUGIZUGUEUHA
      BCDJKUFUGALMZUFLMCANOUJBLMUGLMCDABPQRUFUGSUIUGTABUAUFUGUBUCUD $.

    $( Ordered pair membership is inherited by class union.  (Contributed by
       NM, 13-May-2008.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    uniopel $p |- ( <. A , B >. e. C -> U. <. A , B >. e. U. C ) $=
      ( cop wcel cuni cpr uniop opi2 eqeltri elssuni sseld mpi ) ABFZCGZPHZPGRC
      HZGRABIPABDEJABDEKLQPSRPCMNO $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Ordered-pair class abstractions (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z w v $.  $d y z w v $.  $d ph z w v $.
    $( The law of concretion.  Special case of Theorem 9.5 of [Quine] p. 61.
       (Contributed by NM, 14-Apr-1995.)  (Proof shortened by Andrew Salmon,
       25-Jul-2011.) $)
    opabid $p |- ( <. x , y >. e. { <. x , y >. | ph } <-> ph ) $=
      ( vz cv cop wceq wa wex copab vex opex copsexg bicomd df-opab elab2 ) DEZ
      BEZCEZFZGZAHCIBIZADTABCJRSBKCKLUAAUBABCQMNABCDOP $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.
    $( Membership in a class abstraction of pairs.  (Contributed by NM,
       24-Mar-1998.) $)
    elopab $p |- ( A e. { <. x , y >. | ph } <->
                 E. x E. y ( A = <. x , y >. /\ ph ) ) $=
      ( vz copab wcel cvv cv cop wceq wex elex vex eleq1 mpbiri adantr exlimivv
      wa opex eqeq1 anbi1d 2exbidv df-opab elab2g pm5.21nii ) DABCFZGDHGZDBIZCI
      ZJZKZASZCLBLZDUGMUMUHBCULUHAULUHUKHGUIUJBNCNTDUKHOPQREIZUKKZASZCLBLUNEDUG
      HUODKZUQUMBCURUPULAUODUKUAUBUCABCEUDUEUF $.
  $}

  ${
    $d x y z v $.  $d x y w v $.  $d v ph $.
    $( The law of concretion in terms of substitutions.  Less general than
       ~ opelopabsb , but having a much shorter proof.  (Contributed by NM,
       30-Sep-2002.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    opelopabsbALT $p |- ( <. z , w >. e. { <. x , y >. | ph }
                 <-> [ w / y ] [ z / x ] ph ) $=
      ( cv cop wceq wa wex copab wcel wsb excom vex opth equcom anbi12ci anbi1i
      bitri 2exbii elopab 2sb5 3bitr4i ) DFZEFZGZBFZCFZGHZAIZCJBJZUIUFHZUHUEHZI
      ZAIZBJCJZUGABCKLABDMCEMULUKBJCJUQUKBCNUKUPCBUJUOAUJUEUHHZUFUIHZIUOUEUFUHU
      IDOEOPURUNUSUMDBQECQRTSUATABCUGUBACBEDUCUD $.
  $}

  ${
    $d u v x y z w $.  $d u v w z A $.  $d u v w x B $.  $d u v w z ph $.
    $( The law of concretion in terms of substitutions.  (Contributed by NM,
       30-Sep-2002.)  (Revised by Mario Carneiro, 18-Nov-2016.) $)
    opelopabsb $p |- ( <. A , B >. e. { <. x , y >. | ph }
                 <-> [. A / x ]. [. B / y ]. ph ) $=
      ( vv vu vz vw cop wcel cvv wa wsb cv wceq wex nfs1v weq wb copab wsbc vex
      elopab simpl eqcomd opth sylib 2eximi eeanv isset bitr4i sylbi nfv nfsbxy
      anbi12i sbequ12 sylan9bbr cbvopab eleq2s sbcex spesbc exlimiv syl dfsbcq2
      jca opeq1 eleq1d bibi12d opeq2 sbcbidv nfopab1 nfel2 nfopab2 opabid chvar
      nfbi vtocl2g pm5.21nii ) DEJZABCUAZKZDLKZELKZMZACEUBZBDUBZWEVTACFNZBGNZGF
      UAZWAVTWJKVTGOZFOZJZPZWIMZFQGQZWEWIGFVTUDWPWKDPZWLEPZMZFQGQZWEWOWSGFWOWMV
      TPWSWOVTWMWNWIUEUFWKWLDEGUCFUCUGUHUIWTWQGQZWRFQZMWEWQWRGFUJWCXAWDXBGDUKFE
      UKUPULUHUMAWIBCGFAGUNAFUNWHBGRWHBGCACFRUOCFSAWHBGSWIACFUQWHBGUQURUSUTWGWC
      WDWFBDVAWGWFBQWDWFBDVBWFWDBACEVAVCVDVFHOZIOZJZWAKZACINZBHNZTZDXDJZWAKZXGB
      DUBZTWBWGTHIDELLXCDPZXFXKXHXLXMXEXJWAXCDXDVGVHXGBHDVEVIXDEPZXKWBXLWGXNXJV
      TWAXDEDVJVHXNXGWFBDACIEVEVKVIBOZXDJZWAKZXGTZXIBHXFXHBBXEWAABCVLVMXGBHRVQB
      HSZXQXFXGXHXSXPXEWAXOXCXDVGVHXGBHUQVIXOCOZJZWAKZATXRCIXQXGCCXPWAABCVNVMAC
      IRVQCISZYBXQAXGYCYAXPWAXTXDXOVJVHACIUQVIABCVOVPVPVRVS $.

    brabsb.1 $e |- R = { <. x , y >. | ph } $.
    $( The law of concretion in terms of substitutions.  (Contributed by NM,
       17-Mar-2008.) $)
    brabsb $p |- ( A R B <-> [. A / x ]. [. B / y ]. ph ) $=
      ( wbr cop wcel copab wsbc df-br eleq2i opelopabsb 3bitri ) DEFHDEIZFJQABC
      KZJACELBDLDEFMFRQGNABCDEOP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y ch $.  $d z ph $.
    $( Closed theorem form of ~ opelopab .  (Contributed by NM,
       19-Feb-2013.) $)
    opelopabt $p |- ( ( A. x A. y ( x = A -> ( ph <-> ps ) )
                     /\ A. x A. y ( y = B -> ( ps <-> ch ) )
                     /\ ( A e. V /\ B e. W ) ) ->
                    ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) ) $=
      ( cop copab wcel cv wceq wa wex wb wi wal w3a elopab prth 2alimi copsex2t
      19.26-2 bitr syl6 sylbir sylan 3impa syl5bb ) FGJZADEKLULDMZEMZJNAOEPDPZU
      MFNZABQZRZESDSZUNGNZBCQZRZESDSZFHLGILOZTCADEULUAUSVCVDUOCQZUSVCOZUPUTOZAC
      QZRZESDSZVDVEVFURVBOZESDSVJURVBDEUEVKVIDEVKVGUQVAOVHUPUQUTVAUBABCUFUGUCUH
      ACDEFGHIUDUIUJUK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    opelopabga.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       Mario Carneiro, 19-Dec-2013.) $)
    opelopabga $p |- ( ( A e. V /\ B e. W ) ->
                    ( <. A , B >. e. { <. x , y >. | ph } <-> ps ) ) $=
      ( cop copab wcel cv wceq wa wex elopab copsex2g syl5bb ) EFJZACDKLTCMDMJN
      AODPCPEGLFHLOBACDTQABCDEFGHIRS $.

    ${
      brabga.2 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by Mario
         Carneiro, 19-Dec-2013.) $)
      brabga $p |- ( ( A e. V /\ B e. W ) -> ( A R B <-> ps ) ) $=
        ( wbr cop copab wcel wa df-br eleq2i bitri opelopabga syl5bb ) EFGLZEFM
        ZACDNZOZEHOFIOPBUBUCGOUEEFGQGUDUCKRSABCDEFHIJTUA $.
    $}

    $d x y C $.  $d x y D $.
    $( Ordered pair membership in an ordered pair class abstraction.
       (Contributed by Mario Carneiro, 19-Dec-2013.) $)
    opelopab2a $p |- ( ( A e. C /\ B e. D ) -> ( <. A , B >. e.
                 { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } <-> ps ) ) $=
      ( wcel wa cop cv copab wceq eleq1 bi2anan9 anbi12d opelopabga bianabs ) E
      GJZFHJZKZEFLCMZGJZDMZHJZKZAKZCDNJBUIUCBKCDEFGHUDEOZUFFOZKUHUCABUJUEUAUKUG
      UBUDEGPUFFHPQIRST $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    opelopaba.1 $e |- A e. _V $.
    opelopaba.2 $e |- B e. _V $.
    opelopaba.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       Mario Carneiro, 19-Dec-2013.) $)
    opelopaba $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ps ) $=
      ( cvv wcel cop copab wb opelopabga mp2an ) EJKFJKEFLACDMKBNGHABCDEFJJIOP
      $.

    ${
      braba.4 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by NM,
         19-Dec-2013.) $)
      braba $p |- ( A R B <-> ps ) $=
        ( cvv wcel wbr wb brabga mp2an ) ELMFLMEFGNBOHIABCDEFGLLJKPQ $.
    $}
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ch $.
    opelopabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopabg.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       NM, 28-May-1995.)  (Revised by Mario Carneiro, 19-Dec-2013.) $)
    opelopabg $p |- ( ( A e. V /\ B e. W ) ->
                    ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) ) $=
      ( cv wceq sylan9bb opelopabga ) ACDEFGHIDLFMABELGMCJKNO $.

    ${
      brabg.5 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by NM,
         16-Aug-1999.)  (Revised by Mario Carneiro, 19-Dec-2013.) $)
      brabg $p |- ( ( A e. C /\ B e. D ) -> ( A R B <-> ch ) ) $=
        ( cv wceq sylan9bb brabga ) ACDEFGJHIDNFOABENGOCKLPMQ $.
    $}
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y ch $.
    opelopab2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopab2.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Ordered pair membership in an ordered pair class abstraction.
       (Contributed by NM, 14-Oct-2007.)  (Revised by Mario Carneiro,
       19-Dec-2013.) $)
    opelopab2 $p |- ( ( A e. C /\ B e. D ) -> ( <. A , B >. e.
                 { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } <-> ch ) ) $=
      ( cv wceq sylan9bb opelopab2a ) ACDEFGHIDLFMABELGMCJKNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ch $.
    opelopab.1 $e |- A e. _V $.
    opelopab.2 $e |- B e. _V $.
    opelopab.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopab.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       NM, 16-May-1995.) $)
    opelopab $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) $=
      ( cvv wcel cop copab wb opelopabg mp2an ) FLMGLMFGNADEOMCPHIABCDEFGLLJKQR
      $.

    ${
      brab.5 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by NM,
         16-Aug-1999.) $)
      brab $p |- ( A R B <-> ch ) $=
        ( cvv wcel wbr wb brabg mp2an ) FNOGNOFGHPCQIJABCDEFGNNHKLMRS $.
    $}
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w z ph $.  $d w z ps $.
    opelopabaf.x $e |- F/ x ps $.
    opelopabaf.y $e |- F/ y ps $.
    opelopabaf.1 $e |- A e. _V $.
    opelopabaf.2 $e |- B e. _V $.
    opelopabaf.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  This version of
       ~ opelopab uses bound-variable hypotheses in place of distinct variable
       conditions."  (Contributed by Mario Carneiro, 19-Dec-2013.)  (Proof
       shortened by Mario Carneiro, 18-Nov-2016.) $)
    opelopabaf $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ps ) $=
      ( cop copab wcel wsbc opelopabsb cvv wb nfv sbc2iegf mp2an bitri ) EFLACD
      MNADFOCEOZBACDEFPEQNFQNZUCBRIJABCDEFQQGHUDCSKTUAUB $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w z ch $.  $d w z ph $.
    opelopabf.x $e |- F/ x ps $.
    opelopabf.y $e |- F/ y ch $.
    opelopabf.1 $e |- A e. _V $.
    opelopabf.2 $e |- B e. _V $.
    opelopabf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopabf.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  This version of
       ~ opelopab uses bound-variable hypotheses in place of distinct variable
       conditions."  (Contributed by NM, 19-Dec-2008.) $)
    opelopabf $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) $=
      ( cop wcel wsbc cvv wb sbciegf ax-mp copab opelopabsb nfcv cv wceq 3bitri
      nfsbc sbcbidv ) FGNADEUAOAEGPZDFPZBEGPZCADEFGUBFQOUJUKRJUIUKDFQBDEGDGUCHU
      GDUDFUEABEGLUHSTGQOUKCRKBCEGQIMSTUF $.
  $}

  ${
    $d ph z $.  $d ps z $.  $d x z $.  $d y z $.
    $( Equivalence of ordered pair abstraction subclass and implication.
       (Contributed by NM, 27-Dec-1996.)  (Revised by Mario Carneiro,
       19-May-2013.) $)
    ssopab2 $p |- ( A. x A. y ( ph -> ps ) ->
        { <. x , y >. | ph } C_ { <. x , y >. | ps } ) $=
      ( vz wi wal cv cop wceq wa wex cab copab nfa1 sp anim2d eximd sps df-opab
      ss2abdv 3sstr4g ) ABFZDGZCGZEHCHDHIJZAKZDLZCLZEMUFBKZDLZCLZEMACDNBCDNUEUI
      ULEUEUHUKCUDCOUDUHUKFCUDUGUJDUCDOUDABUFUCDPQRSRUAACDETBCDETUB $.
  $}

  ${
    $d ph z $.  $d ps z $.  $d x z $.  $d y z $.
    $( Equivalence of ordered pair abstraction subclass and implication.
       (Contributed by NM, 27-Dec-1996.)  (Proof shortened by Mario Carneiro,
       18-Nov-2016.) $)
    ssopab2b $p |- ( { <. x , y >. | ph } C_ { <. x , y >. | ps } <->
               A. x A. y ( ph -> ps ) ) $=
      ( copab wss wi wal nfopab1 nfss nfopab2 cv cop wcel opabid 3imtr3g alrimi
      ssel ssopab2 impbii ) ACDEZBCDEZFZABGZDHZCHUCUECCUAUBACDIBCDIJUCUDDDUAUBA
      CDKBCDKJUCCLDLMZUANUFUBNABUAUBUFRACDOBCDOPQQABCDST $.
  $}

  ${
    ssopab2i.1 $e |- ( ph -> ps ) $.
    $( Inference of ordered pair abstraction subclass from implication.
       (Contributed by NM, 5-Apr-1995.) $)
    ssopab2i $p |- { <. x , y >. | ph } C_ { <. x , y >. | ps } $=
      ( wi wal copab wss ssopab2 ax-gen mpg ) ABFZDGACDHBCDHICABCDJMDEKL $.
  $}

  ${
    $d x ph $.  $d y ph $.
    ssopab2dv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference of ordered pair abstraction subclass from implication.
       (Contributed by NM, 19-Jan-2014.)  (Revised by Mario Carneiro,
       24-Jun-2014.) $)
    ssopab2dv $p |- ( ph -> { <. x , y >. | ps } C_ { <. x , y >. | ch } ) $=
      ( wi wal copab wss alrimivv ssopab2 syl ) ABCGZEHDHBDEICDEIJANDEFKBCDELM
      $.
  $}

  ${
    $d ph z $.  $d ps z $.  $d x z $.  $d y z $.
    $( Equivalence of ordered pair abstraction equality and biconditional.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    eqopab2b $p |- ( { <. x , y >. | ph } = { <. x , y >. | ps }
                <-> A. x A. y ( ph <-> ps ) ) $=
      ( copab wss wa wi wal wceq wb ssopab2b anbi12i eqss 2albiim 3bitr4i ) ACD
      EZBCDEZFZRQFZGABHDICIZBAHDICIZGQRJABKDICISUATUBABCDLBACDLMQRNABCDOP $.
  $}

  ${
    $d z ph $.  $d z x $.  $d z y $.
    $( Inhabited ordered pair class abstraction.  (Contributed by Jim Kingdon,
       29-Sep-2018.) $)
    opabm $p |- ( E. z z e. { <. x , y >. | ph } <-> E. x E. y ph ) $=
      ( cv copab wcel wex cop wceq wa elopab exbii exrot3 isseti 19.41v mpbiran
      vex opex 2exbii 3bitri ) DEZABCFGZDHUBBEZCEZIZJZAKZCHBHZDHUHDHZCHBHACHBHU
      CUIDABCUBLMUHDBCNUJABCUJUGDHADUFUDUEBRCRSOUGADPQTUA $.
  $}

  ${
    $d ph w $.  $d A w x $.  $d A y $.  $d w y z $.  $d x z $.
    $( Move indexed union inside an ordered-pair abstraction.  (Contributed by
       Stefan O'Rear, 20-Feb-2015.) $)
    iunopab $p |- U_ z e. A { <. x , y >. | ph } =
        { <. x , y >. | E. z e. A ph } $=
      ( vw cv copab wcel wrex cab cop wceq wex ciun elopab rexcom4 exbii bitri
      wa rexbii r19.42v abbii df-iun df-opab 3eqtr4i ) FGZABCHZIZDEJZFKUGBGCGLM
      ZADEJZTZCNZBNZFKDEUHOULBCHUJUOFUJUKATZCNZBNZDEJZUOUIURDEABCUGPUAUSUQDEJZB
      NUOUQDBEQUTUNBUTUPDEJZCNUNUPDCEQVAUMCUKADEUBRSRSSUCDFEUHUDULBCFUEUF $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Power class of union and intersection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y $.  $d B x y $.
    $( The power class of the intersection of two classes is the intersection
       of their power classes.  Exercise 4.12(j) of [Mendelson] p. 235.
       (Contributed by NM, 23-Nov-2003.) $)
    pwin $p |- ~P ( A i^i B ) = ( ~P A i^i ~P B ) $=
      ( vx cpw cin cv wss wa wcel ssin vex elpw anbi12i 3bitr4i ineqri eqcomi )
      ADZBDZEABEZDZCQRTCFZAGZUABGZHUASGUAQIZUARIZHUATIUAABJUDUBUEUCUAACKZLUABUF
      LMUASUFLNOP $.

    $( The power class of the union of two classes includes the union of their
       power classes.  Exercise 4.12(k) of [Mendelson] p. 235.  (Contributed by
       NM, 23-Nov-2003.) $)
    pwunss $p |- ( ~P A u. ~P B ) C_ ~P ( A u. B ) $=
      ( vx cpw cun cv wss wcel ssun elun vex elpw orbi12i bitri 3imtr4i ssriv
      wo ) CADZBDZEZABEZDZCFZAGZUCBGZQZUCUAGUCTHZUCUBHUCABIUGUCRHZUCSHZQUFUCRSJ
      UHUDUIUEUCACKZLUCBUJLMNUCUAUJLOP $.

    $( The power class of the union of two classes is a subset of the union of
       their power classes, if one class is a subclass of the other.  One
       direction of Exercise 4.12(l) of [Mendelson] p. 235.  (Contributed by
       Jim Kingdon, 30-Sep-2018.) $)
    pwssunim $p |- ( ( A C_ B \/ B C_ A ) ->
               ~P ( A u. B ) C_ ( ~P A u. ~P B ) ) $=
      ( wss wo cun cpw wceq ssequn2 pweq eqimss syl ssequn1 orim12i orcoms ssun
      sylbi ) ABCZBACZDABEZFZAFZCZTBFZCZDZTUAUCECRQUERUBQUDRSAGZUBBAHUFTUAGUBSA
      ITUAJKPQSBGZUDABLUGTUCGUDSBITUCJKPMNTUAUCOK $.
  $}

  $( Break up the power class of a union into a union of smaller classes.
     (Contributed by Jim Kingdon, 30-Sep-2018.) $)
  pwundifss $p |- ( ( ~P ( A u. B ) \ ~P A ) u. ~P A ) C_
      ~P ( A u. B ) $=
    ( cun cpw cdif undif1ss wss wceq wa pwunss unss simpli ssequn2 mpbi sseqtri
    mpbir ) ABCDZADZERCQRCZQQRFRQGZSQHTBDZQGZTUBIRUACQGABJRUAQKPLRQMNO $.

  $( The power class of the union of two classes equals the union of their
     power classes, iff one class is a subclass of the other.  Part of Exercise
     7(b) of [Enderton] p. 28.  (Contributed by Jim Kingdon, 30-Sep-2018.) $)
  pwunim $p |- ( ( A C_ B \/ B C_ A ) ->
      ~P ( A u. B ) = ( ~P A u. ~P B ) ) $=
    ( wss wo cun cpw wa wceq pwssunim pwunss biantru sylib eqss sylibr ) ABCBAC
    DZABEFZAFBFEZCZQPCZGZPQHORTABISRABJKLPQMN $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Epsilon and identity relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c _E $. $( Letter E (for epsilon relation) $)
  $c _I $.  $( Letter I (for identity relation) $)

  $( Extend class notation to include the epsilon relation. $)
  cep $a class _E $.

  $( Extend the definition of a class to include identity relation. $)
  cid $a class _I $.

  ${
    $d x y $.
    $( Define the epsilon relation.  Similar to Definition 6.22 of
       [TakeutiZaring] p. 30.  The epsilon relation and set membership are the
       same, that is, ` ( A _E B <-> A e. B ) ` when ` B ` is a set by
       ~ epelg .  Thus, 5 ` _E ` { 1 , 5 }.  (Contributed by NM,
       13-Aug-1995.) $)
    df-eprel $a |- _E = { <. x , y >. | x e. y } $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( The epsilon relation and membership are the same.  General version of
       ~ epel .  (Contributed by Scott Fenton, 27-Mar-2011.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    epelg $p |- ( B e. V -> ( A _E B <-> A e. B ) ) $=
      ( vx vy wcel cvv cep wbr wi cop df-br cv copab wceq wa wex vex sylbi a1i
      elopab pm3.2i opeqex mpbiri simpld adantr exlimivv df-eprel eleq2s eleq12
      elex wb brabga expcom pm5.21ndd ) BCFZAGFZABHIZABFZURUQJUPURABKZHFUQABHLU
      QUTDMZEMZFZDENZHUTVDFUTVAVBKOZVCPZEQDQUQVCDEUTUAVFUQDEVEUQVCVEUQBGFZVEUQV
      GPVAGFZVBGFZPVHVIDRERUBABVAVBUCUDUEUFUGSDEUHZUISTUSUQJUPABUKTUQUPURUSULVC
      USDEABHGCVAAVBBUJVJUMUNUO $.
  $}

  ${
    epelc.1 $e |- B e. _V $.
    $( The epsilon relationship and the membership relation are the same.
       (Contributed by Scott Fenton, 11-Apr-2012.) $)
    epelc $p |- ( A _E B <-> A e. B ) $=
      ( cvv wcel cep wbr wb epelg ax-mp ) BDEABFGABEHCABDIJ $.
  $}

  $( The epsilon relation and the membership relation are the same.
     (Contributed by NM, 13-Aug-1995.) $)
  epel $p |- ( x _E y <-> x e. y ) $=
    ( cv vex epelc ) ACBCBDE $.

  ${
    $d x y $.
    $( Define the identity relation.  Definition 9.15 of [Quine] p. 64.  For
       example, 5 ` _I ` 5 and ` -. ` 4 ` _I ` 5.  (Contributed by NM,
       13-Aug-1995.) $)
    df-id $a |- _I = { <. x , y >. | x = y } $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                  Partial and complete ordering
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$(
We have not yet defined relations ( ~ df-rel ), but here we introduce a
few related notions we will use to develop ordinals.  The class variable
` R ` is no different from other class variables, but it reminds us that
normally it represents what we will later call a "relation."
$)

  $( Declare new constant symbols. $)
  $c Po $.  $( Partial ordering predicate symbol (read: 'partial ordering'). $)
  $c Or $.  $( Strict linear ordering predicate symbol (read: 'orders'). $)

  $( Extend wff notation to include the strict partial ordering predicate.
     Read:  ' ` R ` is a partial order on ` A ` .' $)
  wpo $a wff R Po A $.

  $( Extend wff notation to include the strict linear ordering predicate.
     Read:  ' ` R ` orders ` A ` .' $)
  wor $a wff R Or A $.

  ${
    $d x y z R $.  $d x y z A $.
    $( Define the strict partial order predicate.  Definition of [Enderton]
       p. 168.  The expression ` R Po A ` means ` R ` is a partial order on
       ` A ` .  (Contributed by NM, 16-Mar-1997.) $)
    df-po $a |- ( R Po A <-> A. x e. A A. y e. A A. z e. A
                ( -. x R x /\ ( ( x R y /\ y R z ) -> x R z ) ) ) $.

    $( Define the strict linear order predicate.  The expression ` R Or A ` is
       true if relationship ` R ` orders ` A ` .  The property
       ` x R y -> ( x R z \/ z R y ) ` is called weak linearity by Proposition
       11.2.3 of [HoTT], p.  (varies).  If we assumed excluded middle, it would
       be equivalent to trichotomy, ` x R y \/ x = y \/ y R x ` .  (Contributed
       by NM, 21-Jan-1996.)  (Revised by Jim Kingdon, 4-Oct-2018.) $)
    df-iso $a |- ( R Or A <-> ( R Po A /\ A. x e. A A. y e. A A. z e. A
                ( x R y -> ( x R z \/ z R y ) ) ) ) $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.
    $( Subset theorem for the partial ordering predicate.  (Contributed by NM,
       27-Mar-1997.)  (Proof shortened by Mario Carneiro, 18-Nov-2016.) $)
    poss $p |- ( A C_ B -> ( R Po B -> R Po A ) ) $=
      ( vx vy vz wss cv wbr wn wa wi wral wpo ssralv ralimdv syld df-po 3imtr4g
      ) ABGZDHZUACIJUAEHZCIUBFHZCIKUAUCCILKZFBMZEBMZDBMZUDFAMZEAMZDAMZBCNACNTUG
      UFDAMUJUFDABOTUFUIDATUFUEEAMUIUEEABOTUEUHEAUDFABOPQPQDEFBCRDEFACRS $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z A $.
    $( Equality theorem for partial ordering predicate.  (Contributed by NM,
       27-Mar-1997.) $)
    poeq1 $p |- ( R = S -> ( R Po A <-> S Po A ) ) $=
      ( vx vy vz wceq cv wbr wn wa wral wpo breq notbid anbi12d imbi12d ralbidv
      wi df-po 2ralbidv 3bitr4g ) BCGZDHZUDBIZJZUDEHZBIZUGFHZBIZKZUDUIBIZSZKZFA
      LZEALDALUDUDCIZJZUDUGCIZUGUICIZKZUDUICIZSZKZFALZEALDALABMACMUCUOVDDEAAUCU
      NVCFAUCUFUQUMVBUCUEUPUDUDBCNOUCUKUTULVAUCUHURUJUSUDUGBCNUGUIBCNPUDUIBCNQP
      RUADEFABTDEFACTUB $.
  $}

  $( Equality theorem for partial ordering predicate.  (Contributed by NM,
     27-Mar-1997.) $)
  poeq2 $p |- ( A = B -> ( R Po A <-> R Po B ) ) $=
    ( wceq wpo wss wi eqimss2 poss syl eqimss impbid ) ABDZACEZBCEZMBAFNOGBAHBA
    CIJMABFONGABKABCIJL $.

  ${
    $d R a b c $.  $d A a b c $.  $d x a b c $.
    nfpo.r $e |- F/_ x R $.
    nfpo.a $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for partial orders.  (Contributed by
       Stefan O'Rear, 20-Jan-2015.) $)
    nfpo $p |- F/ x R Po A $=
      ( va vb vc wpo cv wbr wn wa wi wral df-po nfcv nfbr nfan nfralxy nfn nfim
      nfxfr ) BCIFJZUDCKZLZUDGJZCKZUGHJZCKZMZUDUICKZNZMZHBOZGBOZFBOAFGHBCPUPAFB
      EUOAGBEUNAHBEUFUMAUEAAUDUDCAUDQZDUQRUAUKULAUHUJAAUDUGCUQDAUGQZRAUGUICURDA
      UIQZRSAUDUICUQDUSRUBSTTTUC $.

    $( Bound-variable hypothesis builder for total orders.  (Contributed by
       Stefan O'Rear, 20-Jan-2015.) $)
    nfso $p |- F/ x R Or A $=
      ( va vb vc wor wpo cv wbr wo wi wral wa df-iso nfcv nfbr nfralxy nfxfr
      nfpo nfor nfim nfan ) BCIBCJZFKZGKZCLZUGHKZCLZUJUHCLZMZNZHBOZGBOZFBOZPAFG
      HBCQUFUQAABCDEUBUPAFBEUOAGBEUNAHBEUIUMAAUGUHCAUGRZDAUHRZSUKULAAUGUJCURDAU
      JRZSAUJUHCUTDUSSUCUDTTTUEUA $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    $( Properties of partial order relation in class notation.  (Contributed by
       NM, 27-Mar-1997.) $)
    pocl $p |- ( R Po A -> ( ( B e. A /\ C e. A /\ D e. A ) ->
               ( -. B R B /\ ( ( B R C /\ C R D ) -> B R D ) ) ) ) $=
      ( vx vy vz wcel wbr wa wi cv wceq breq1 imbi2d breq2 anbi2d wal wral r3al
      w3a wn id breq12d notbid anbi1d imbi12d anbi12d imbi1d df-po bitri biimpi
      wpo 19.21bbi 19.21bi com12 vtocl3ga ) BAICAIDAIUBAEUNZBBEJZUCZBCEJZCDEJZK
      ZBDEJZLZKZUSFMZVHEJZUCZVHGMZEJZVKHMZEJZKZVHVMEJZLZKZLUSVABVKEJZVNKZBVMEJZ
      LZKZLUSVAVBCVMEJZKZWALZKZLUSVGLFGHBCDAAAVHBNZVRWCUSWHVJVAVQWBWHVIUTWHVHBV
      HBEWHUDZWIUEUFWHVOVTVPWAWHVLVSVNVHBVKEOUGVHBVMEOUHUIPVKCNZWCWGUSWJWBWFVAW
      JVTWEWAWJVSVBVNWDVKCBEQVKCVMEOUIUJRPVMDNZWGVGUSWKWFVFVAWKWEVDWAVEWKWDVCVB
      VMDCEQRVMDBEQUHRPUSVHAIVKAIVMAIUBZVRUSWLVRLZHUSWMHSZFGUSWNGSFSZUSVRHATGAT
      FATWOFGHAEUKVRFGHAAAUAULUMUOUPUQURUQ $.
  $}

  ${
    $d x y z A $.  $d x y z R $.  $d x y z ph $.
    ispod.1 $e |- ( ( ph /\ x e. A ) -> -. x R x ) $.
    ispod.2 $e |- ( ( ph /\ ( x e. A /\ y e. A /\ z e. A ) ) ->
                    ( ( x R y /\ y R z ) -> x R z ) ) $.
    $( Sufficient conditions for a partial order.  (Contributed by NM,
       9-Jul-2014.) $)
    ispod $p |- ( ph -> R Po A ) $=
      ( cv wbr wn wa wi wral wpo wcel w3a 3ad2antr1 jca ralrimivvva sylibr
      df-po ) ABIZUCFJKZUCCIZFJUEDIZFJLUCUFFJMZLZDENCENBENEFOAUHBCDEEEAUCEPZUEE
      PZUFEPZQLUDUGAUJUIUDUKGRHSTBCDEFUBUA $.
  $}

  ${
    $d x y z A $.  $d x y z ph $.  $d x y z R $.  $d x y z X $.  $d y z Y $.
    $d z Z $.
    swopolem.1 $e |- ( ( ph /\ ( x e. A /\ y e. A /\ z e. A ) ) ->
                    ( x R y -> ( x R z \/ z R y ) ) ) $.
    $( Perform the substitutions into the strict weak ordering law.
       (Contributed by Mario Carneiro, 31-Dec-2014.) $)
    swopolem $p |- ( ( ph /\ ( X e. A /\ Y e. A /\ Z e. A ) ) ->
                    ( X R Y -> ( X R Z \/ Z R Y ) ) ) $=
      ( cv wbr wo wi wral wcel wceq breq1 imbi12d breq2 w3a ralrimivvva orbi12d
      orbi1d orbi2d imbi2d rspc3v mpan9 ) ABKZCKZFLZUIDKZFLZULUJFLZMZNZDEOCEOBE
      OGEPHEPIEPUAGHFLZGIFLZIHFLZMZNZAUPBCDEEEJUBUPVAGUJFLZGULFLZUNMZNUQVCULHFL
      ZMZNBCDGHIEEEUIGQZUKVBUOVDUIGUJFRVGUMVCUNUIGULFRUDSUJHQZVBUQVDVFUJHGFTVHU
      NVEVCUJHULFTUESULIQZVFUTUQVIVCURVEUSULIGFTULIHFRUCUFUGUH $.
  $}

  ${
    $d x y z A $.  $d x y z R $.  $d x y z ph $.
    swopo.1 $e |- ( ( ph /\ ( y e. A /\ z e. A ) ) ->
                    ( y R z -> -. z R y ) ) $.
    swopo.2 $e |- ( ( ph /\ ( x e. A /\ y e. A /\ z e. A ) ) ->
                    ( x R y -> ( x R z \/ z R y ) ) ) $.
    $( A strict weak order is a partial order.  (Contributed by Mario Carneiro,
       9-Jul-2014.) $)
    swopo $p |- ( ph -> R Po A ) $=
      ( cv wcel wa wbr wn wi wral weq breq1 breq2 notbid imbi12d ralrimivva w3a
      id ancli rspc2va syl2anr pm2.01d 3adantr1 wo imp orcomd ord expimpd ispod
      sylan2d ) ABCDEFABIZEJZKUPUPFLZUQUQUQKCIZDIZFLZUTUSFLZMZNZDEOCEOURURMZNZA
      UQUQUQUCUDAVDCDEEGUAVDVFUPUTFLZUTUPFLZMZNCDUPUPEECBPZVAVGVCVIUSUPUTFQVJVB
      VHUSUPUTFRSTDBPZVGURVIVEUTUPUPFRVKVHURUTUPUPFQSTUEUFUGAUQUSEJZUTEJZUBKZVA
      VCUPUSFLZVGAVLVMVDUQGUHVNVOVCVGVNVOKZVBVGVPVGVBVNVOVGVBUIHUJUKULUMUOUN $.
  $}

  $( A partial order relation is irreflexive.  (Contributed by NM,
     27-Mar-1997.) $)
  poirr $p |- ( ( R Po A /\ B e. A ) -> -. B R B ) $=
    ( wcel wpo w3a wbr wn wa df-3an anabs1 anidm 3bitrri wi pocl simpld sylan2b
    imp ) BADZACEZSSSFZBBCGZHZUASSIZSIUDSSSSJSSKSLMTUAIUCUBUBIUBNZTUAUCUEIABBBC
    ORPQ $.

  $( A partial order relation is a transitive relation.  (Contributed by NM,
     27-Mar-1997.) $)
  potr $p |- ( ( R Po A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             ( ( B R C /\ C R D ) -> B R D ) ) $=
    ( wpo wcel w3a wa wbr wn wi pocl imp simprd ) AEFZBAGCAGDAGHZIBBEJKZBCEJCDE
    JIBDEJLZPQRSIABCDEMNO $.

  $( A partial order relation has no 2-cycle loops.  (Contributed by NM,
     27-Mar-1997.) $)
  po2nr $p |- ( ( R Po A /\ ( B e. A /\ C e. A ) ) ->
              -. ( B R C /\ C R B ) ) $=
    ( wpo wcel wa wbr wn poirr adantrr wi potr 3exp2 com34 pm2.43d imp32 mtod )
    ADEZBAFZCAFZGGBCDHCBDHGZBBDHZSTUCIUAABDJKSTUAUBUCLZSTUAUDLSTUATUDSTUATUDABC
    BDMNOPQR $.

  $( A partial order relation has no 3-cycle loops.  (Contributed by NM,
     27-Mar-1997.) $)
  po3nr $p |- ( ( R Po A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             -. ( B R C /\ C R D /\ D R B ) ) $=
    ( wpo wcel w3a wa wbr wn po2nr 3adantr2 df-3an potr anim1d syl5bi mtod ) AE
    FZBAGZCAGZDAGZHIZBCEJZCDEJZDBEJZHZBDEJZUFIZSTUBUIKUAABDELMUGUDUEIZUFIUCUIUD
    UEUFNUCUJUHUFABCDEOPQR $.

  ${
    $d x y z R $.
    $( Any relation is a partial ordering of the empty set.  (Contributed by
       NM, 28-Mar-1997.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    po0 $p |- R Po (/) $=
      ( vx vy vz c0 wpo cv wbr wn wa wi wral ral0 df-po mpbir ) EAFBGZPAHIPCGZA
      HQDGZAHJPRAHKJDELCELZBELSBMBCDEANO $.
  $}

  ${
    $d R v w x y z $.  $d S v w z $.  $d X v w y z $.  $d Y x z $.
    $d A v w x z $.  $d B v w x z $.
    pofun.1 $e |- S = { <. x , y >. | X R Y } $.
    pofun.2 $e |- ( x = y -> X = Y ) $.
    $( A function preserves a partial order relation.  (Contributed by Jeff
       Madsen, 18-Jun-2011.) $)
    pofun $p |- ( ( R Po B /\ A. x e. A X e. B ) -> S Po A ) $=
      ( vv vw vz wcel wa cv wbr csb weq cop wpo wn nfcsb1v nfel1 csbeq1a eleq1d
      wral rspc impcom poirr copab df-br eleq2i nfcv nfbr nfv vex breq1d csbief
      csbeq1 syl5eqr breq2d opelopabf 3bitri sylnibr sylan2 w3a com12 3anim123d
      anassrs wi imp adantll potr anbi12i 3imtr4g adantlr syldan ispod ) DEUAZG
      DNZACUGZOZKLMCFVTWBKPZCNZWDWDFQZUBZWBWEOVTAWDGRZDNZWGWEWBWIWAWIAWDCAWHDAW
      DGUCZUDAKSZGWHDAWDGUEZUFUHZUIVTWIOWHWHEQZWFDWHEUJWFWDWDTZFNWOGHEQZABUKZNW
      NWDWDFULFWQWOIUMWPWHHEQZWNABWDWDAWHHEWJAEUNZAHUNZUOZWNBUPKUQZXBWKGWHHEWLU
      RZBKSZHWHWHEXDHABPZGRZWHAXEGHBUQWTJUSZAXEWDGUTVAVBVCVDVEVFVJWCWELPZCNZMPZ
      CNZVGZWIAXHGRZDNZAXJGRZDNZVGZWDXHFQZXHXJFQZOZWDXJFQZVKZWBXLXQVTWBXLXQWBWE
      WIXIXNXKXPWEWBWIWMVHXIWBXNWAXNAXHCAXMDAXHGUCZUDALSZGXMDAXHGUEZUFUHVHXKWBX
      PWAXPAXJCAXODAXJGUCUDAMSGXODAXJGUEUFUHVHVIVLVMVTXQYBWBVTXQOWHXMEQZXMXOEQZ
      OWHXOEQZXTYADWHXMXOEVNXRYFXSYGXRWDXHTZFNYIWQNYFWDXHFULFWQYIIUMWPWRYFABWDX
      HXAYFBUPXBLUQZXCBLSZHXMWHEYKHXFXMXGAXEXHGUTVAVBVCVDXSXHXJTZFNYLWQNYGXHXJF
      ULFWQYLIUMWPXMHEQYGABXHXJAXMHEYCWSWTUOYGBUPYJMUQZYDGXMHEYEURBMSZHXOXMEYNH
      XFXOXGAXEXJGUTVAZVBVCVDVOYAWDXJTZFNYPWQNYHWDXJFULFWQYPIUMWPWRYHABWDXJXAYH
      BUPXBYMXCYNHXOWHEYOVBVCVDVPVQVRVS $.
  $}

  ${
    $d x y z R $.  $d x y z A $.
    $( A strict linear order is a strict partial order.  (Contributed by NM,
       28-Mar-1997.) $)
    sopo $p |- ( R Or A -> R Po A ) $=
      ( vx vy vz wor wpo cv wbr wo wi wral df-iso simplbi ) ABFABGCHZDHZBIOEHZB
      IQPBIJKEALDALCALCDEABMN $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.
    $( Subset theorem for the strict ordering predicate.  (Contributed by NM,
       16-Mar-1997.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    soss $p |- ( A C_ B -> ( R Or B -> R Or A ) ) $=
      ( vx vy vz wpo cv wbr wi wral wor wcel w3a wal ssel r3al 3imtr4g df-iso
      wa wss wo poss 3anim123d imim1d 2alimdv alimdv anim12d ) ABUAZBCGZDHZEHZC
      IUKFHZCIUMULCIUBJZFBKEBKDBKZTACGZUNFAKEAKDAKZTBCLACLUIUJUPUOUQABCUCUIUKBM
      ZULBMZUMBMZNZUNJZFOEOZDOUKAMZULAMZUMAMZNZUNJZFOEOZDOUOUQUIVCVIDUIVBVHEFUI
      VGVAUNUIVDURVEUSVFUTABUKPABULPABUMPUDUEUFUGUNDEFBBBQUNDEFAAAQRUHDEFBCSDEF
      ACSR $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z A $.
    $( Equality theorem for the strict ordering predicate.  (Contributed by NM,
       16-Mar-1997.) $)
    soeq1 $p |- ( R = S -> ( R Or A <-> S Or A ) ) $=
      ( vx vy vz wceq wpo cv wbr wo wi wral wa wor poeq1 orbi12d imbi12d df-iso
      breq 2ralbidv ralbidv anbi12d 3bitr4g ) BCGZABHZDIZEIZBJZUGFIZBJZUJUHBJZK
      ZLZFAMEAMZDAMZNACHZUGUHCJZUGUJCJZUJUHCJZKZLZFAMEAMZDAMZNABOACOUEUFUQUPVDA
      BCPUEUOVCDAUEUNVBEFAAUEUIURUMVAUGUHBCTUEUKUSULUTUGUJBCTUJUHBCTQRUAUBUCDEF
      ABSDEFACSUD $.
  $}

  $( Equality theorem for the strict ordering predicate.  (Contributed by NM,
     16-Mar-1997.) $)
  soeq2 $p |- ( A = B -> ( R Or A <-> R Or B ) ) $=
    ( wceq wor wss wa wi wb soss anim12i eqss dfbi2 3imtr4i bicomd ) ABDZBCEZAC
    EZABFZBAFZGQRHZRQHZGPQRISUATUBABCJBACJKABLQRMNO $.

  $( A strict order relation is irreflexive.  (Contributed by NM,
     24-Nov-1995.) $)
  sonr $p |- ( ( R Or A /\ B e. A ) -> -. B R B ) $=
    ( wor wpo wcel wbr wn sopo poirr sylan ) ACDACEBAFBBCGHACIABCJK $.

  $( A strict order relation is a transitive relation.  (Contributed by NM,
     21-Jan-1996.) $)
  sotr $p |- ( ( R Or A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             ( ( B R C /\ C R D ) -> B R D ) ) $=
    ( wor wpo wcel w3a wbr wa wi sopo potr sylan ) AEFAEGBAHCAHDAHIBCEJCDEJKBDE
    JLAEMABCDENO $.

  ${
    $d x y z R $.  $d x y z A $.  $d x y z ph $.
    issod.1 $e |- ( ph -> R Po A ) $.
    issod.2 $e |- ( ( ph /\ ( x e. A /\ y e. A ) ) ->
                    ( x R y \/ x = y \/ y R x ) ) $.
    $( An irreflexive, transitive, trichotomous relation is a linear ordering
       (in the sense of ~ df-iso ).  (Contributed by NM, 21-Jan-1996.)
       (Revised by Mario Carneiro, 9-Jul-2014.) $)
    issod $p |- ( ph -> R Or A ) $=
      ( vz wpo cv wbr wo wi wral wor wcel wa w3a syl6 ralrimiva weq w3o 3adant3
      orc a1i simp3r breq1 syl5ibcom simp1 simp2r simp2l simp3l 3jca potr sylan
      olc expcomd imp syl21anc 3jaod mpd 3expa expr anassrs ralcom sylib df-iso
      sylanbrc ) ADEIZBJZHJZEKZVJCJZEKZVMVKEKZLZMZCDNHDNZBDNDEOFAVRBDAVJDPZQZVQ
      HDNZCDNVRVTWACDAVSVMDPZWAAVSWBQZQZVQHDWDVKDPZVLVPAWCWEVLQZVPAWCWFRZVNBCUA
      ZVMVJEKZUBZVPAWCWJWFGUCWGVNVPWHWIVNVPMWGVNVOUDUEWGWHVOVPWGVLWHVOAWCWEVLUF
      ZVJVMVKEUGUHVOVNUPZSWGWIVOVPWGAWBVSWERZVLWIVOMZAWCWFUIWGWBVSWEAVSWBWFUJAV
      SWBWFUKAWCWEVLULUMWKAWMQZVLWNWOWIVLVOAVIWMWIVLQVOMFDVMVJVKEUNUOUQURUSWLSU
      TVAVBVCTVDTVQCHDDVEVFTBHCDEVGVH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z R $.
    $( A strict order relation satisfies weak linearity.  (Contributed by Jim
       Kingdon, 6-Oct-2018.) $)
    sowlin $p |- ( ( R Or A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
        ( B R C -> ( B R D \/ D R C ) ) ) $=
      ( vx vy vz wcel w3a wbr wo wi cv wceq breq1 imbi2d breq2 wral wa wor rsp2
      orbi1d imbi12d orbi2d orbi12d df-iso 3anass syl6 impd syl5bi adantl sylbi
      wpo rsp com12 vtocl3ga impcom ) BAICAIDAIJAEUAZBCEKZBDEKZDCEKZLZMZUSFNZGN
      ZEKZVEHNZEKZVHVFEKZLZMZMUSBVFEKZBVHEKZVJLZMZMUSUTVNVHCEKZLZMZMUSVDMFGHBCD
      AAAVEBOZVLVPUSVTVGVMVKVOVEBVFEPVTVIVNVJVEBVHEPUCUDQVFCOZVPVSUSWAVMUTVOVRV
      FCBERWAVJVQVNVFCVHERUEUDQVHDOZVSVDUSWBVRVCUTWBVNVAVQVBVHDBERVHDCEPUFQQUSV
      EAIZVFAIZVHAIZJZVLUSAEUNZVLHASGASZFASZTWFVLMZFGHAEUGWIWJWGWFWCWDWETZTWIVL
      WCWDWEUHWIWCWKVLWIWCWHWKVLMWHFAUOVLGHAAUBUIUJUKULUMUPUQUR $.
  $}

  $( A strict order relation has no 2-cycle loops.  (Contributed by NM,
     21-Jan-1996.) $)
  so2nr $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
              -. ( B R C /\ C R B ) ) $=
    ( wor wpo wcel wa wbr wn sopo po2nr sylan ) ADEADFBAGCAGHBCDICBDIHJADKABCDL
    M $.

  $( A strict order relation has no 3-cycle loops.  (Contributed by NM,
     21-Jan-1996.) $)
  so3nr $p |- ( ( R Or A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             -. ( B R C /\ C R D /\ D R B ) ) $=
    ( wor wpo wcel w3a wbr wn sopo po3nr sylan ) AEFAEGBAHCAHDAHIBCEJCDEJDBEJIK
    AELABCDEMN $.

  $( One direction of ~ sotritric holds for all weakly linear orders.
     (Contributed by Jim Kingdon, 28-Sep-2019.) $)
  sotricim $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
      ( B R C -> -. ( B = C \/ C R B ) ) ) $=
    ( wor wcel wa wbr wceq wn wo w3a adantrr 3adant3 wi breq2 biimprcd 3ad2ant3
    sonr mtod 3expia so2nr imnan sylibr jcad ioran syl6ibr ) ADEZBAFZCAFZGZGZBC
    DHZBCIZJZCBDHZJZGUNUPKJULUMUOUQUHUKUMUOUHUKUMLUNBBDHZUHUKURJZUMUHUIUSUJABDS
    MNUMUHUNUROUKUNURUMBCBDPQRTUAULUMUPGJUMUQOABCDUBUMUPUCUDUEUNUPUFUG $.

  ${
    sotritric.or $e |- R Or A $.
    sotritric.tri $e |- ( ( B e. A /\ C e. A ) ->
      ( B R C \/ B = C \/ C R B ) ) $.
    $( A trichotomy relationship, given a trichotomous order.  (Contributed by
       Jim Kingdon, 28-Sep-2019.) $)
    sotritric $p |- ( ( B e. A /\ C e. A ) ->
        ( B R C <-> -. ( B = C \/ C R B ) ) ) $=
      ( wcel wa wbr wceq wo wn wor wi sotricim mpan w3o 3orass ax-1 pm2.24 jaoi
      sylbi syl impbid ) BAGCAGHZBCDIZBCJZCBDIZKZLZADMUEUFUJNEABCDOPUEUFUGUHQZU
      JUFNZFUKUFUIKULUFUGUHRUFULUIUFUJSUIUFTUAUBUCUD $.

    $( A trichotomy relationship, given a trichotomous order.  (Contributed by
       Jim Kingdon, 13-Dec-2019.) $)
    sotritrieq $p |- ( ( B e. A /\ C e. A ) ->
        ( B = C <-> -. ( B R C \/ C R B ) ) ) $=
      ( wcel wa wceq wbr wo wn wi wor sonr mpan breq2 notbid syl5ibcom w3o jcad
      breq1 ioran syl6ibr adantr 3orrot 3orcomb 3orass 3bitri biimpi orcomd ord
      syl impbid ) BAGZCAGZHZBCIZBCDJZCBDJZKZLZUOURVBMUPUOURUSLZUTLZHVBUOURVCVD
      UOBBDJZLZURVCADNUOVFEABDOPZURVEUSBCBDQRSUOVFURVDVGURVEUTBCBDUBRSUAUSUTUCU
      DUEUQUSURUTTZVBURMFVHVAURVHURVAVHURVAKZVHURUTUSTURUSUTTVIUSURUTUFURUTUSUG
      URUSUTUHUIUJUKULUMUN $.
  $}

  ${
    $d x y z R $.
    $( Any relation is a strict ordering of the empty set.  (Contributed by NM,
       16-Mar-1997.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    so0 $p |- R Or (/) $=
      ( vx vy vz c0 wor wpo cv wbr wo wi wral po0 ral0 df-iso mpbir2an ) EAFEAG
      BHZCHZAIQDHZAISRAIJKDELCELZBELAMTBNBCDEAOP $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Set-like relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c Se $. $( Set-like predicate symbol (read: 'set-like'). $)

  $( Extend wff notation to include the set-like predicate.  Read:  ' ` R ` is
     set-like on ` A ` .' $)
  wse $a wff R Se A $.

  ${
    $d x y R $.  $d x y A $.
    $( Define the set-like predicate.  (Contributed by Mario Carneiro,
       19-Nov-2014.) $)
    df-se $a |- ( R Se A <-> A. x e. A { y e. A | y R x } e. _V ) $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y V $.
    $( The ` R ` -preimage of an element of the base set in a set-like relation
       is a set.  (Contributed by Mario Carneiro, 19-Nov-2014.) $)
    seex $p |- ( ( R Se A /\ B e. A ) -> { x e. A | x R B } e. _V ) $=
      ( vy wse cv wbr crab cvv wcel wral df-se wceq breq2 rabbidv eleq1d sylanb
      rspccva ) BDFAGZEGZDHZABIZJKZEBLCBKTCDHZABIZJKZEABDMUDUGECBUACNZUCUFJUHUB
      UEABUACTDOPQSR $.

    $( Any relation on a set is set-like on it.  (Contributed by Mario
       Carneiro, 22-Jun-2015.) $)
    exse $p |- ( A e. V -> R Se A ) $=
      ( vy vx wcel cv wbr crab cvv wral wse rabexg ralrimivw df-se sylibr ) ACF
      ZDGEGBHZDAIJFZEAKABLQSEARDACMNEDABOP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y S $.
    $( Subset theorem for the set-like predicate.  (Contributed by Mario
       Carneiro, 24-Jun-2015.) $)
    sess1 $p |- ( R C_ S -> ( S Se A -> R Se A ) ) $=
      ( vy vx wss cv wbr crab cvv wcel wral wi simpl ssbrd ss2rabdv ssexg df-se
      wse wa ex syl ralimdv 3imtr4g ) BCFZDGZEGZCHZDAIZJKZEALUFUGBHZDAIZJKZEALA
      CSABSUEUJUMEAUEULUIFZUJUMMUEUKUHDAUEUFAKZTBCUFUGUEUONOPUNUJUMULUIJQUAUBUC
      EDACREDABRUD $.

    $( Subset theorem for the set-like predicate.  (Contributed by Mario
       Carneiro, 24-Jun-2015.) $)
    sess2 $p |- ( A C_ B -> ( R Se B -> R Se A ) ) $=
      ( vy vx wss cv wbr crab cvv wcel wral wse ssralv wi rabss2 ssexg ex df-se
      syl ralimdv syld 3imtr4g ) ABFZDGEGCHZDBIZJKZEBLZUEDAIZJKZEALZBCMACMUDUHU
      GEALUKUGEABNUDUGUJEAUDUIUFFZUGUJOUEDABPULUGUJUIUFJQRTUAUBEDBCSEDACSUC $.
  $}

  $( Equality theorem for the set-like predicate.  (Contributed by Mario
     Carneiro, 24-Jun-2015.) $)
  seeq1 $p |- ( R = S -> ( R Se A <-> S Se A ) ) $=
    ( wceq wse wss wi eqimss2 sess1 syl eqimss impbid ) BCDZABEZACEZMCBFNOGCBHA
    CBIJMBCFONGBCKABCIJL $.

  $( Equality theorem for the set-like predicate.  (Contributed by Mario
     Carneiro, 24-Jun-2015.) $)
  seeq2 $p |- ( A = B -> ( R Se A <-> R Se B ) ) $=
    ( wceq wse wss wi eqimss2 sess2 syl eqimss impbid ) ABDZACEZBCEZMBAFNOGBAHB
    ACIJMABFONGABKABCIJL $.

  ${
    $d y R a b c $.  $d y A a b c $.  $d x y a b c $.
    nffr.r $e |- F/_ x R $.
    nffr.a $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for set-like relations.  (Contributed
       by Mario Carneiro, 24-Jun-2015.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfse $p |- F/ x R Se A $=
      ( va vb wse wbr crab cvv wcel wral df-se nfcv nfbr nfrabxy nfel1 nfralxy
      cv nfxfr ) BCHFTZGTZCIZFBJZKLZGBMAGFBCNUFAGBEAUEKUDAFBAUBUCCAUBODAUCOPEQR
      SUA $.
  $}

  ${
    $d x y A $.
    $( The epsilon relation is set-like on any class.  (This is the origin of
       the term "set-like": a set-like relation "acts like" the epsilon
       relation of sets and their elements.)  (Contributed by Mario Carneiro,
       22-Jun-2015.) $)
    epse $p |- _E Se A $=
      ( vy vx cep wse cv wbr crab cvv wcel wral cab epel bicomi abbi2i eqeltrri
      vex rabssab ssexi rgenw df-se mpbir ) ADEBFZCFZDGZBAHZIJZCAKUGCAUFUEBLZUD
      UHIUEBUDUEUCUDJBCMNOCQPUEBARSTCBADUAUB $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Ordinals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c Ord $. $( Ordinal predicate $)
  $c On $. $( The class of ordinal numbers $)
  $c Lim $. $( Limit ordinal predicate $)
  $c suc $. $( Successor function (read:  'successor of') $)

  $( Extend the definition of a wff to include the ordinal predicate. $)
  word $a wff Ord A $.

  $( Extend the definition of a class to include the class of all ordinal
     numbers.  (The 0 in the name prevents creating a file called con.html,
     which causes problems in Windows.) $)
  con0 $a class On $.

  $( Extend the definition of a wff to include the limit ordinal predicate. $)
  wlim $a wff Lim A $.

  $( Extend class notation to include the successor function. $)
  csuc $a class suc A $.

  ${
    $d x A $.
    $( Define the ordinal predicate, which is true for a class that is
       transitive and whose elements are transitive.  Definition of ordinal in
       [Crosilla], p.  "Set-theoretic principles incompatible with
       intuitionistic logic".  (Contributed by Jim Kingdon, 10-Oct-2018.)  Use
       its alias ~ dford3 instead for naming consistency with set.mm.
       (New usage is discouraged.) $)
    df-iord $a |- ( Ord A <-> ( Tr A /\ A. x e. A Tr x ) ) $.
  $}

  ${
    $d x A $.
    $( Alias for ~ df-iord .  Use it instead of ~ df-iord for naming
       consistency with set.mm.  (Contributed by Jim Kingdon, 10-Oct-2018.) $)
    dford3 $p |- ( Ord A <-> ( Tr A /\ A. x e. A Tr x ) ) $=
      ( df-iord ) ABC $.
  $}

  $( Define the class of all ordinal numbers.  Definition 7.11 of
     [TakeutiZaring] p. 38.  (Contributed by NM, 5-Jun-1994.) $)
  df-on $a |- On = { x | Ord x } $.

  $( Define the limit ordinal predicate, which is true for an ordinal that has
     the empty set as an element and is not a successor (i.e. that is the union
     of itself).  Our definition combines the definition of Lim of
     [BellMachover] p. 471 and Exercise 1 of [TakeutiZaring] p. 42, and then
     changes ` A =/= (/) ` to ` (/) e. A ` (which would be equivalent given the
     law of the excluded middle, but which is not for us).  (Contributed by Jim
     Kingdon, 11-Nov-2018.)  Use its alias ~ dflim2 instead for naming
     consistency with set.mm.  (New usage is discouraged.) $)
  df-ilim $a |- ( Lim A <-> ( Ord A /\ (/) e. A /\ A = U. A ) ) $.

  $( Alias for ~ df-ilim .  Use it instead of ~ df-ilim for naming consistency
     with set.mm.  (Contributed by NM, 4-Nov-2004.) $)
  dflim2 $p |- ( Lim A <-> ( Ord A /\ (/) e. A /\ A = U. A ) ) $=
    ( df-ilim ) AB $.

  $( Define the successor of a class.  When applied to an ordinal number, the
     successor means the same thing as "plus 1".  Definition 7.22 of
     [TakeutiZaring] p. 41, who use "+ 1" to denote this function.  Our
     definition is a generalization to classes.  Although it is not
     conventional to use it with proper classes, it has no effect on a proper
     class ( ~ sucprc ).  Some authors denote the successor operation with a
     prime (apostrophe-like) symbol, such as Definition 6 of [Suppes] p. 134
     and the definition of successor in [Mendelson] p. 246 (who uses the symbol
     "Suc" as a predicate to mean "is a successor ordinal").  The definition of
     successor of [Enderton] p. 68 denotes the operation with a plus-sign
     superscript.  (Contributed by NM, 30-Aug-1993.) $)
  df-suc $a |- suc A = ( A u. { A } ) $.

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for the ordinal predicate.  (Contributed by NM,
       17-Sep-1993.) $)
    ordeq $p |- ( A = B -> ( Ord A <-> Ord B ) ) $=
      ( vx wceq wtr cv wral wa word treq raleq anbi12d dford3 3bitr4g ) ABDZAEZ
      CFEZCAGZHBEZQCBGZHAIBIOPSRTABJQCABKLCAMCBMN $.
  $}

  ${
    $d x A $.
    $( An ordinal number is an ordinal set.  (Contributed by NM,
       5-Jun-1994.) $)
    elong $p |- ( A e. V -> ( A e. On <-> Ord A ) ) $=
      ( vx cv word con0 ordeq df-on elab2g ) CDZEAECAFBJAGCHI $.
  $}

  ${
    elon.1 $e |- A e. _V $.
    $( An ordinal number is an ordinal set.  (Contributed by NM,
       5-Jun-1994.) $)
    elon $p |- ( A e. On <-> Ord A ) $=
      ( cvv wcel con0 word wb elong ax-mp ) ACDAEDAFGBACHI $.
  $}

  $( An ordinal number has the ordinal property.  (Contributed by NM,
     5-Jun-1994.) $)
  eloni $p |- ( A e. On -> Ord A ) $=
    ( con0 wcel word elong ibi ) ABCADABEF $.

  $( An ordinal number is an ordinal set.  (Contributed by NM, 8-Feb-2004.) $)
  elon2 $p |- ( A e. On <-> ( Ord A /\ A e. _V ) ) $=
    ( con0 wcel word cvv wa eloni elex jca elong biimparc impbii ) ABCZADZAECZF
    MNOAGABHIOMNAEJKL $.

  $( Equality theorem for the limit predicate.  (Contributed by NM,
     22-Apr-1994.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  limeq $p |- ( A = B -> ( Lim A <-> Lim B ) ) $=
    ( wceq word c0 wcel cuni wlim ordeq eleq2 id unieq eqeq12d 3anbi123d dflim2
    w3a 3bitr4g ) ABCZADZEAFZAAGZCZPBDZEBFZBBGZCZPAHBHRSUCTUDUBUFABIABEJRABUAUE
    RKABLMNAOBOQ $.

  ${
    $d x A $.
    $( An ordinal class is transitive.  (Contributed by NM, 3-Apr-1994.) $)
    ordtr $p |- ( Ord A -> Tr A ) $=
      ( vx word wtr cv wral dford3 simplbi ) ACADBEDBAFBAGH $.
  $}

  $( An element of an ordinal class is a subset of it.  (Contributed by NM,
     30-May-1994.) $)
  ordelss $p |- ( ( Ord A /\ B e. A ) -> B C_ A ) $=
    ( word wtr wcel wss ordtr trss imp sylan ) ACADZBAEZBAFZAGKLMABHIJ $.

  ${
    $d A x $.  $d B x $.
    $( A transitive subclass of an ordinal class is ordinal.  (Contributed by
       NM, 29-May-1994.) $)
    trssord $p |- ( ( Tr A /\ A C_ B /\ Ord B ) -> Ord A ) $=
      ( vx wtr wss word w3a cv wral dford3 simprbi ssralv syl5 imp anim2i 3impb
      wa sylibr ) ADZABEZBFZGSCHDZCAIZQZAFSTUAUDTUAQUCSTUAUCUAUBCBIZTUCUABDUECB
      JKUBCABLMNOPCAJR $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( An element of an ordinal class is ordinal.  Proposition 7.6 of
       [TakeutiZaring] p. 36.  (Contributed by NM, 23-Apr-1994.) $)
    ordelord $p |- ( ( Ord A /\ B e. A ) -> Ord B ) $=
      ( vx word wcel cv wa wceq eleq1 anbi2d ordeq imbi12d wtr wss wral simprbi
      wi dford3 r19.21bi ordelss simpl trssord syl3anc vtoclg anabsi7 ) ADZBAEZ
      BDZUFCFZAEZGZUIDZQUFUGGZUHQCBAUIBHZUKUMULUHUNUJUGUFUIBAIJUIBKLUKUIMZUIANU
      FULUFUOCAUFAMUOCAOCARPSAUITUFUJUAUIAUBUCUDUE $.
  $}

  ${
    $d x y $.
    $( The class of all ordinal numbers is transitive.  (Contributed by NM,
       4-May-2009.) $)
    tron $p |- Tr On $=
      ( vx vy con0 wtr cv wss dftr3 wcel word vex elon ordelord sylanb ex ssrdv
      syl6ibr mprgbir ) CDAEZCFACACGRCHZBRCSBEZRHZTIZTCHSUAUBSRIUAUBRAJKRTLMNTB
      JKPOQ $.
  $}

  $( An element of an ordinal class is an ordinal number.  (Contributed by NM,
     26-Oct-2003.) $)
  ordelon $p |- ( ( Ord A /\ B e. A ) -> B e. On ) $=
    ( word wcel wa con0 ordelord wb elong adantl mpbird ) ACZBADZEBFDZBCZABGMNO
    HLBAIJK $.

  $( An element of an ordinal number is an ordinal number.  Theorem 2.2(iii) of
     [BellMachover] p. 469.  (Contributed by NM, 26-Oct-2003.) $)
  onelon $p |- ( ( A e. On /\ B e. A ) -> B e. On ) $=
    ( con0 wcel word eloni ordelon sylan ) ACDAEBADBCDAFABGH $.

  $( The intersection of two ordinal classes is ordinal.  Proposition 7.9 of
     [TakeutiZaring] p. 37.  (Contributed by NM, 9-May-1994.) $)
  ordin $p |- ( ( Ord A /\ Ord B ) -> Ord ( A i^i B ) ) $=
    ( word cin wtr ordtr trin syl2an wss inss2 trssord mp3an2 sylancom ) ACZBCZ
    ABDZEZPCZNAEBEQOAFBFABGHQPBIORABJPBKLM $.

  ${
    $d x y A $.  $d x y B $.
    $( The intersection of two ordinal numbers is an ordinal number.
       (Contributed by NM, 7-Apr-1995.) $)
    onin $p |- ( ( A e. On /\ B e. On ) -> ( A i^i B ) e. On ) $=
      ( con0 wcel wa cin word eloni ordin syl2an cvv wb simpl inex1g elong 3syl
      mpbird ) ACDZBCDZEZABFZCDZUAGZRAGBGUCSAHBHABIJTRUAKDUBUCLRSMABCNUAKOPQ $.
  $}

  $( An element of an ordinal number is a subset of the number.  (Contributed
     by NM, 5-Jun-1994.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  onelss $p |- ( A e. On -> ( B e. A -> B C_ A ) ) $=
    ( con0 wcel word wss wi eloni ordelss ex syl ) ACDAEZBADZBAFZGAHLMNABIJK $.

  $( Transitive law for ordinal classes.  (Contributed by NM, 12-Dec-2004.) $)
  ordtr1 $p |- ( Ord C -> ( ( A e. B /\ B e. C ) -> A e. C ) ) $=
    ( word wtr wcel wa wi ordtr trel syl ) CDCEABFBCFGACFHCICABJK $.

  $( Transitive law for ordinal numbers.  Theorem 7M(b) of [Enderton] p. 192.
     (Contributed by NM, 11-Aug-1994.) $)
  ontr1 $p |- ( C e. On -> ( ( A e. B /\ B e. C ) -> A e. C ) ) $=
    ( con0 wcel word wa wi eloni ordtr1 syl ) CDECFABEBCEGACEHCIABCJK $.

  ${
    $d x ps $.  $d x A $.
    onintss.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( If a property is true for an ordinal number, then the minimum ordinal
       number for which it is true is smaller or equal.  Theorem Schema 61 of
       [Suppes] p. 228.  (Contributed by NM, 3-Oct-2003.) $)
    onintss $p |- ( A e. On -> ( ps -> |^| { x e. On | ph } C_ A ) ) $=
      ( con0 wcel crab cint wss intminss ex ) DFGBACFHIDJABCDFEKL $.
  $}

  $( The empty set is an ordinal class.  (Contributed by NM, 11-May-1994.) $)
  ord0 $p |- Ord (/) $=
    ( vx c0 word wtr cv wral tr0 ral0 dford3 mpbir2an ) BCBDAEDZABFGKAHABIJ $.

  $( The empty set is an ordinal number.  Corollary 7N(b) of [Enderton]
     p. 193.  (Contributed by NM, 17-Sep-1993.) $)
  0elon $p |- (/) e. On $=
    ( c0 con0 wcel word ord0 0ex elon mpbir ) ABCADEAFGH $.

  $( The intersection of the class of ordinal numbers is the empty set.
     (Contributed by NM, 20-Oct-2003.) $)
  inton $p |- |^| On = (/) $=
    ( c0 con0 wcel cint wceq 0elon int0el ax-mp ) ABCBDAEFBGH $.

  $( The empty set is not a limit ordinal.  (Contributed by NM, 24-Mar-1995.)
     (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  nlim0 $p |- -. Lim (/) $=
    ( c0 wlim word wcel cuni wceq w3a noel simp2 mto dflim2 mtbir ) ABACZAADZAA
    EFZGZPNAHMNOIJAKL $.

  $( A limit ordinal is ordinal.  (Contributed by NM, 4-May-1995.) $)
  limord $p |- ( Lim A -> Ord A ) $=
    ( wlim word c0 wcel cuni wceq dflim2 simp1bi ) ABACDAEAAFGAHI $.

  $( A limit ordinal is its own supremum (union).  (Contributed by NM,
     4-May-1995.) $)
  limuni $p |- ( Lim A -> A = U. A ) $=
    ( wlim word c0 wcel cuni wceq dflim2 simp3bi ) ABACDAEAAFGAHI $.

  $( The union of a limit ordinal is a limit ordinal.  (Contributed by NM,
     19-Sep-2006.) $)
  limuni2 $p |- ( Lim A -> Lim U. A ) $=
    ( wlim cuni wceq wb limuni limeq syl ibi ) ABZACZBZJAKDJLEAFAKGHI $.

  $( A limit ordinal contains the empty set.  (Contributed by NM,
     15-May-1994.) $)
  0ellim $p |- ( Lim A -> (/) e. A ) $=
    ( wlim word c0 wcel cuni wceq dflim2 simp2bi ) ABACDAEAAFGAHI $.

  $( A limit ordinal class that is also a set is an ordinal number.
     (Contributed by NM, 26-Apr-2004.) $)
  limelon $p |- ( ( A e. B /\ Lim A ) -> A e. On ) $=
    ( wcel wlim con0 word limord elong syl5ibr imp ) ABCZADZAECZLMKAFAGABHIJ $.

  $( The class of all ordinal numbers is not empty.  (Contributed by NM,
     17-Sep-1995.) $)
  onn0 $p |- On =/= (/) $=
    ( c0 con0 wcel wne 0elon ne0i ax-mp ) ABCBADEBAFG $.

  $( The class of all ordinal numbers is inhabited.  (Contributed by Jim
     Kingdon, 6-Mar-2019.) $)
  onm $p |- E. x x e. On $=
    ( cv c0 wceq con0 wcel wa wex 0elon 0ex eleq1 ceqsexv mpbir exsimpr ax-mp )
    ABZCDZPEFZGAHZRAHSCEFZIRTACJPCEKLMQRANO $.

  $( Equality of successors.  (Contributed by NM, 30-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 25-Jul-2011.) $)
  suceq $p |- ( A = B -> suc A = suc B ) $=
    ( wceq csn cun csuc id sneq uneq12d df-suc 3eqtr4g ) ABCZAADZEBBDZEAFBFLABM
    NLGABHIAJBJK $.

  $( Membership in a successor.  This one-way implication does not require that
     either ` A ` or ` B ` be sets.  (Contributed by NM, 6-Jun-1994.) $)
  elsuci $p |- ( A e. suc B -> ( A e. B \/ A = B ) ) $=
    ( csuc wcel csn wo wceq cun df-suc eleq2i elun bitri elsni orim2i sylbi ) A
    BCZDZABDZABEZDZFZRABGZFQABSHZDUAPUCABIJABSKLTUBRABMNO $.

  $( Membership in a successor.  Exercise 5 of [TakeutiZaring] p. 17.
     (Contributed by NM, 15-Sep-1995.) $)
  elsucg $p |- ( A e. V -> ( A e. suc B <-> ( A e. B \/ A = B ) ) ) $=
    ( csuc wcel csn wo wceq cun df-suc eleq2i elun bitri elsncg orbi2d syl5bb )
    ABDZEZABEZABFZEZGZACEZSABHZGRABTIZEUBQUEABJKABTLMUCUAUDSABCNOP $.

  $( Variant of membership in a successor, requiring that ` B ` rather than
     ` A ` be a set.  (Contributed by NM, 28-Oct-2003.) $)
  elsuc2g $p |- ( B e. V -> ( A e. suc B <-> ( A e. B \/ A = B ) ) ) $=
    ( csuc wcel csn cun wceq wo df-suc eleq2i elun elsnc2g orbi2d syl5bb ) ABDZ
    EABBFZGZEZBCEZABEZABHZIZPRABJKSUAAQEZITUCABQLTUDUBUAABCMNOO $.

  ${
    elsuc.1 $e |- A e. _V $.
    $( Membership in a successor.  Exercise 5 of [TakeutiZaring] p. 17.
       (Contributed by NM, 15-Sep-2003.) $)
    elsuc $p |- ( A e. suc B <-> ( A e. B \/ A = B ) ) $=
      ( cvv wcel csuc wceq wo wb elsucg ax-mp ) ADEABFEABEABGHICABDJK $.

    $( Membership in a successor.  (Contributed by NM, 15-Sep-2003.) $)
    elsuc2 $p |- ( B e. suc A <-> ( B e. A \/ B = A ) ) $=
      ( cvv wcel csuc wceq wo wb elsuc2g ax-mp ) ADEBAFEBAEBAGHICBADJK $.
  $}

  ${
    $d y A $.  $d x y $.
    nfsuc.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for successor.  (Contributed by NM,
       15-Sep-2003.) $)
    nfsuc $p |- F/_ x suc A $=
      ( csuc csn cun df-suc nfsn nfun nfcxfr ) ABDBBEZFBGABKCABCHIJ $.
  $}

  $( Membership in a successor.  (Contributed by NM, 20-Jun-1998.) $)
  elelsuc $p |- ( A e. B -> A e. suc B ) $=
    ( wcel csuc wceq wo orc elsucg mpbird ) ABCZABDCJABEZFJKGABBHI $.

  ${
    $d x y A $.  $d x B $.
    $( Membership of a successor in another class.  (Contributed by NM,
       29-Jun-2004.) $)
    sucel $p |- ( suc A e. B <->
                E. x e. B A. y ( y e. x <-> ( y e. A \/ y = A ) ) ) $=
      ( csuc wcel cv wceq wrex wo wb wal risset dfcleq elsuc bibi2i albii bitri
      vex rexbii ) CEZDFAGZUAHZADIBGZUBFZUDCFUDCHJZKZBLZADIAUADMUCUHADUCUEUDUAF
      ZKZBLUHBUBUANUJUGBUIUFUEUDCBSOPQRTR $.
  $}

  $( The successor of the empty set.  (Contributed by NM, 1-Feb-2005.) $)
  suc0 $p |- suc (/) = { (/) } $=
    ( c0 csuc csn cun df-suc uncom un0 3eqtri ) ABAACZDIADIAEAIFIGH $.

  $( A proper class is its own successor.  (Contributed by NM, 3-Apr-1995.) $)
  sucprc $p |- ( -. A e. _V -> suc A = A ) $=
    ( cvv wcel wn csuc cun csn df-suc wceq snprc uneq2 sylbi syl5eq un0 syl6eq
    c0 ) ABCDZAEZAPFZAQRAAGZFZSAHQTPIUASIAJTPAKLMANO $.

  ${
    unisuc.1 $e |- A e. _V $.
    $( A transitive class is equal to the union of its successor.  Combines
       Theorem 4E of [Enderton] p. 72 and Exercise 6 of [Enderton] p. 73.
       (Contributed by NM, 30-Aug-1993.) $)
    unisuc $p |- ( Tr A <-> U. suc A = A ) $=
      ( cuni wss cun wceq wtr csuc ssequn1 df-tr csn df-suc unieqi uniun uneq2i
      unisn 3eqtri eqeq1i 3bitr4i ) ACZADTAEZAFAGAHZCZAFTAIAJUCUAAUCAAKZEZCTUDC
      ZEUAUBUEALMAUDNUFATABPOQRS $.
  $}

  ${
    $( A transitive class is equal to the union of its successor.  Combines
       Theorem 4E of [Enderton] p. 72 and Exercise 6 of [Enderton] p. 73.
       (Contributed by Jim Kingdon, 18-Aug-2019.) $)
    unisucg $p |- ( A e. V -> ( Tr A <-> U. suc A = A ) ) $=
      ( wcel csuc cuni wceq cun wtr csn df-suc unieqi uniun eqtri unisng uneq2d
      syl5eq eqeq1d wss df-tr ssequn1 bitri syl6rbbr ) ABCZADZEZAFAEZAGZAFZAHZU
      CUEUGAUCUEUFAIZEZGZUGUEAUJGZEULUDUMAJKAUJLMUCUKAUFABNOPQUIUFARUHASUFATUAU
      B $.
  $}

  $( A class is included in its own successor.  Part of Proposition 7.23 of
     [TakeutiZaring] p. 41 (generalized to arbitrary classes).  (Contributed by
     NM, 31-May-1994.) $)
  sssucid $p |- A C_ suc A $=
    ( csn cun csuc ssun1 df-suc sseqtr4i ) AAABZCADAHEAFG $.

  $( Part of Proposition 7.23 of [TakeutiZaring] p. 41 (generalized).
     (Contributed by NM, 25-Mar-1995.)  (Proof shortened by Scott Fenton,
     20-Feb-2012.) $)
  sucidg $p |- ( A e. V -> A e. suc A ) $=
    ( wcel csuc wceq wo eqid olci elsucg mpbiri ) ABCAADCAACZAAEZFLKAGHAABIJ $.

  ${
    sucid.1 $e |- A e. _V $.
    $( A set belongs to its successor.  (Contributed by NM, 22-Jun-1994.)
       (Proof shortened by Alan Sare, 18-Feb-2012.)  (Proof shortened by Scott
       Fenton, 20-Feb-2012.) $)
    sucid $p |- A e. suc A $=
      ( cvv wcel csuc sucidg ax-mp ) ACDAAEDBACFG $.
  $}

  $( No successor is empty.  (Contributed by Jim Kingdon, 14-Oct-2018.) $)
  nsuceq0g $p |- ( A e. V -> suc A =/= (/) ) $=
    ( wcel csuc c0 wceq noel sucidg eleq2 syl5ibcom mtoi neneqad ) ABCZADZEMNEF
    ZAECZAGMANCOPABHNEAIJKL $.

  ${
    eqelsuc.1 $e |- A e. _V $.
    $( A set belongs to the successor of an equal set.  (Contributed by NM,
       18-Aug-1994.) $)
    eqelsuc $p |- ( A = B -> A e. suc B ) $=
      ( wceq csuc sucid suceq syl5eleq ) ABDAAEBEACFABGH $.
  $}

  ${
    $d A x y $.  $d B y $.  $d C x y $.
    iunsuc.1 $e |- A e. _V $.
    iunsuc.2 $e |- ( x = A -> B = C ) $.
    $( Inductive definition for the indexed union at a successor.  (Contributed
       by Mario Carneiro, 4-Feb-2013.)  (Proof shortened by Mario Carneiro,
       18-Nov-2016.) $)
    iunsuc $p |- U_ x e. suc A B = ( U_ x e. A B u. C ) $=
      ( csuc ciun csn cun wceq df-suc iuneq1 ax-mp iunxun iunxsn uneq2i 3eqtri
      ) ABGZCHZABBIZJZCHZABCHZAUACHZJUDDJSUBKTUCKBLASUBCMNABUACOUEDUDABCDEFPQR
      $.
  $}

  ${
    $d y z A $.
    $( The successor of a transitive class is transitive.  (Contributed by Alan
       Sare, 11-Apr-2009.) $)
    suctr $p |- ( Tr A -> Tr suc A ) $=
      ( vz vy wtr cv wcel csuc wa wi wal wceq simpr vex elsuc sylib simpl eleq2
      wo syl6 mpdi syl5ibcom elelsuc trel expd adantrd syl8 jao alrimivv sylibr
      dftr2 ) ADZBEZCEZFZUMAGZFZHZULUOFZIZCJBJUODUKUSBCUKUQUMAFZUMAKZRZURUQUPVB
      UNUPLUMACMNOUKUQVAURIZVBURIZUQVAULAFZURUQUNVAVEUNUPPUMAULQUAULAUBZSUKUQUT
      URIVCVDIUKUQUTVEURUKUNUTVEIUPUKUNUTVEAULUMUCUDUEVFUFUTURVAUGSTTUHBCUOUJUI
      $.
  $}

  $( A set whose successor belongs to a transitive class also belongs.
     (Contributed by NM, 5-Sep-2003.)  (Proof shortened by Andrew Salmon,
     12-Aug-2011.) $)
  trsuc $p |- ( ( Tr A /\ suc B e. A ) -> B e. A ) $=
    ( wtr csuc wcel cvv wss sssucid ssexg mpan sucidg syl ancri trel syl5 imp
    wa ) ACZBDZAEZBAEZTBSEZTQRUATUBTBFEZUBBSGTUCBHBSAIJBFKLMABSNOP $.

  $( A member of the successor of a transitive class is a subclass of it.
     (Contributed by NM, 4-Oct-2003.) $)
  trsucss $p |- ( Tr A -> ( B e. suc A -> B C_ A ) ) $=
    ( csuc wcel wceq wo wtr wss elsuci trss wi eqimss a1i jaod syl5 ) BACDBADZB
    AEZFAGZBAHZBAIRPSQABJQSKRBALMNO $.

  $( A set whose successor is a subset of another class is a member of that
     class.  (Contributed by NM, 16-Sep-1995.) $)
  sucssel $p |- ( A e. V -> ( suc A C_ B -> A e. B ) ) $=
    ( wcel csuc wss sucidg ssel syl5com ) ACDAAEZDJBFABDACGJBAHI $.

  $( An ordinal class includes its union.  (Contributed by NM, 13-Sep-2003.) $)
  orduniss $p |- ( Ord A -> U. A C_ A ) $=
    ( word wtr cuni wss ordtr df-tr sylib ) ABACADAEAFAGH $.

  ${
    on.1 $e |- A e. On $.
    $( An ordinal number is an ordinal class.  (Contributed by NM,
       11-Jun-1994.) $)
    onordi $p |- Ord A $=
      ( con0 wcel word eloni ax-mp ) ACDAEBAFG $.

    $( An ordinal number is a transitive class.  (Contributed by NM,
       11-Jun-1994.) $)
    ontrci $p |- Tr A $=
      ( word wtr onordi ordtr ax-mp ) ACADABEAFG $.

    $( A member of an ordinal number is an ordinal number.  Theorem 7M(a) of
       [Enderton] p. 192.  (Contributed by NM, 11-Jun-1994.) $)
    oneli $p |- ( B e. A -> B e. On ) $=
      ( con0 wcel onelon mpan ) ADEBAEBDECABFG $.

    $( A member of an ordinal number is a subset of it.  (Contributed by NM,
       11-Aug-1994.) $)
    onelssi $p |- ( B e. A -> B C_ A ) $=
      ( con0 wcel wss wi onelss ax-mp ) ADEBAEBAFGCABHI $.

    $( An element of an ordinal number equals the intersection with it.
       (Contributed by NM, 11-Jun-1994.) $)
    onelini $p |- ( B e. A -> B = ( B i^i A ) ) $=
      ( wcel wss cin wceq onelssi dfss sylib ) BADBAEBBAFGABCHBAIJ $.

    $( An ordinal number equals its union with any element.  (Contributed by
       NM, 13-Jun-1994.) $)
    oneluni $p |- ( B e. A -> ( A u. B ) = A ) $=
      ( wcel wss cun wceq onelssi ssequn2 sylib ) BADBAEABFAGABCHBAIJ $.

    $( An ordinal number is equal to the union of its successor.  (Contributed
       by NM, 12-Jun-1994.) $)
    onunisuci $p |- U. suc A = A $=
      ( wtr csuc cuni wceq ontrci con0 elexi unisuc mpbi ) ACADEAFABGAAHBIJK $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
             IZF Set Theory - add the Axiom of Union
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                  Introduce the Axiom of Union
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w x y z $.
    $( Axiom of Union.  An axiom of Intuitionistic Zermelo-Fraenkel set
       theory.  It states that a set ` y ` exists that includes the union of a
       given set ` x ` i.e. the collection of all members of the members of
       ` x ` .  The variant ~ axun2 states that the union itself exists.  A
       version with the standard abbreviation for union is ~ uniex2 .  A
       version using class notation is ~ uniex .

       This is Axiom 3 of [Crosilla] p.  "Axioms of CZF and IZF", except (a)
       unnecessary quantifiers are removed, (b) Crosilla has a biconditional
       rather than an implication (but the two are equivalent by ~ bm1.3ii ),
       and (c) the order of the conjuncts is swapped (which is equivalent by
       ~ ancom ).

       The union of a class ~ df-uni should not be confused with the union of
       two classes ~ df-un .  Their relationship is shown in ~ unipr .
       (Contributed by NM, 23-Dec-1993.) $)
    ax-un $a |- E. y A. z ( E. w ( z e. w /\ w e. x ) -> z e. y ) $.

    $( Axiom of Union expressed with the fewest number of different variables.
       (Contributed by NM, 14-Aug-2003.) $)
    zfun $p |- E. x A. y ( E. x ( y e. x /\ x e. z ) -> y e. x ) $=
      ( vw wel wa wex wi wal ax-un weq elequ2 elequ1 anbi12d cbvexv albii exbii
      imbi1i mpbi ) BDEZDCEZFZDGZBAEZHZBIZAGUDACEZFZAGZUDHZBIZAGCABDJUFUKAUEUJB
      UCUIUDUBUHDADAKTUDUAUGDABLDACMNORPQS $.

    $( A variant of the Axiom of Union ~ ax-un .  For any set ` x ` , there
       exists a set ` y ` whose members are exactly the members of the members
       of ` x ` i.e. the union of ` x ` .  Axiom Union of [BellMachover]
       p. 466.  (Contributed by NM, 4-Jun-2006.) $)
    axun2 $p |- E. y A. z ( z e. y <-> E. w ( z e. w /\ w e. x ) ) $=
      ( wel wa wex ax-un bm1.3ii ) CDEDAEFDGBCABCDHI $.

    $( The Axiom of Union using the standard abbreviation for union.  Given any
       set ` x ` , its union ` y ` exists.  (Contributed by NM, 4-Jun-2006.) $)
    uniex2 $p |- E. y y = U. x $=
      ( vz cv cuni wceq wex wcel wb wi wa zfun eluni imbi1i albii exbii bm1.3ii
      wal mpbir dfcleq ) BDZADZEZFZBGCDZUAHZUEUCHZICRZBGUGBCUGUFJZCRZBGUFUAUBHK
      BGZUFJZCRZBGBCALUJUMBUIULCUGUKUFBUEUBMNOPSQUDUHBCUAUCTPS $.
  $}

  ${
    $d x y A $.
    uniex.1 $e |- A e. _V $.
    $( The Axiom of Union in class notation.  This says that if ` A ` is a set
       i.e. ` A e. _V ` (see ~ isset ), then the union of ` A ` is also a set.
       Same as Axiom 3 of [TakeutiZaring] p. 16.  (Contributed by NM,
       11-Aug-1993.) $)
    uniex $p |- U. A e. _V $=
      ( vx vy cv cuni cvv wcel wceq unieq eleq1d uniex2 issetri vtocl ) CEZFZGH
      AFZGHCABOAIPQGOAJKDPCDLMN $.
  $}

  ${
    $d x A $.
    $( The ZF Axiom of Union in class notation, in the form of a theorem
       instead of an inference.  We use the antecedent ` A e. V ` instead of
       ` A e. _V ` to make the theorem more general and thus shorten some
       proofs; obviously the universal class constant ` _V ` is one possible
       substitution for class variable ` V ` .  (Contributed by NM,
       25-Nov-1994.) $)
    uniexg $p |- ( A e. V -> U. A e. _V ) $=
      ( vx cv cuni cvv wcel wceq unieq eleq1d vex uniex vtoclg ) CDZEZFGAEZFGCA
      BNAHOPFNAIJNCKLM $.
  $}

  ${
    unex.1 $e |- A e. _V $.
    unex.2 $e |- B e. _V $.
    $( The union of two sets is a set.  Corollary 5.8 of [TakeutiZaring]
       p. 16.  (Contributed by NM, 1-Jul-1994.) $)
    unex $p |- ( A u. B ) e. _V $=
      ( cpr cuni cun cvv unipr wcel prexgOLD mp2an uniex eqeltrri ) ABEZFABGHAB
      CDIOAHJBHJOHJCDABKLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Existence of union is equivalent to existence of its components.
       (Contributed by NM, 11-Jun-1998.) $)
    unexb $p |- ( ( A e. _V /\ B e. _V ) <-> ( A u. B ) e. _V ) $=
      ( vx vy cvv wcel wa cun cv wceq uneq1 eleq1d uneq2 vex unex vtocl2g ssun1
      wss ssexg mpan ssun2 jca impbii ) AEFZBEFZGABHZEFZCIZDIZHZEFAUIHZEFUGCDAB
      EEUHAJUJUKEUHAUIKLUIBJUKUFEUIBAMLUHUICNDNOPUGUDUEAUFRUGUDABQAUFESTBUFRUGU
      EBAUABUFESTUBUC $.
  $}

  $( A union of two sets is a set.  Corollary 5.8 of [TakeutiZaring] p. 16.
     (Contributed by NM, 18-Sep-2006.) $)
  unexg $p |- ( ( A e. V /\ B e. W ) -> ( A u. B ) e. _V ) $=
    ( wcel cvv cun elex wa unexb biimpi syl2an ) ACEAFEZBFEZABGFEZBDEACHBDHMNIO
    ABJKL $.

  $( An unordered triple of classes exists.  (Contributed by NM,
     10-Apr-1994.) $)
  tpexg $p |- ( ( A e. U /\ B e. V /\ C e. W ) -> { A , B , C } e. _V ) $=
    ( wcel w3a ctp cpr csn cun cvv df-tp wa prexg snexg anim12i 3impa unexg syl
    syl5eqel ) ADGZBEGZCFGZHZABCIABJZCKZLZMABCNUFUGMGZUHMGZOZUIMGUCUDUEULUCUDOU
    JUEUKABDEPCFQRSUGUHMMTUAUB $.

  ${
    $d x A $.  $d x B $.
    $( Union of a singleton in the form of a restricted class abstraction.
       (Contributed by NM, 3-Jul-2008.) $)
    unisn3 $p |- ( A e. B -> U. { x e. B | x = A } = A ) $=
      ( wcel cv wceq crab cuni csn rabsn unieqd unisng eqtrd ) BCDZAEBFACGZHBIZ
      HBNOPACBJKBCLM $.
  $}

  ${
    $d x y z $.
    $( The class of all singletons is a proper class.  (Contributed by NM,
       10-Oct-2008.)  (Proof shortened by Eric Schmidt, 7-Dec-2008.) $)
    snnex $p |- { x | E. y x = { y } } e/ _V $=
      ( vz cv csn wceq wex cab cvv wcel cuni vprc wa vex snid a9ev sneq equcoms
      eximii snexgOLD ax-mp eleq2 eqeq1 anbi12d spcev mp2an eluniab mpbir eqriv
      exbidv 2th eleq1i mtbir uniexg mto nelir ) ADZBDZEZFZBGZAHZIVBIJVBKZIJZVD
      IIJLVCIICVCICDZVCJZVEIJZVFVEUQJZVAMZAGZVEVEEZJZVKUSFZBGZVJVECNZOURVEFVMBB
      CPVMCBVEURQRSVIVLVNMAVKVGVKIJVOVETUAUQVKFZVHVLVAVNUQVKVEUBVPUTVMBUQVKUSUC
      UJUDUEUFVAAVEUGUHVOUKUIULUMVBIUNUOUP $.
  $}

  ${
    opeluu.1 $e |- A e. _V $.
    opeluu.2 $e |- B e. _V $.
    $( Each member of an ordered pair belongs to the union of the union of a
       class to which the ordered pair belongs.  Lemma 3D of [Enderton] p. 41.
       (Contributed by NM, 31-Mar-1995.)  (Revised by Mario Carneiro,
       27-Feb-2016.) $)
    opeluu $p |- ( <. A , B >. e. C ->
                 ( A e. U. U. C /\ B e. U. U. C ) ) $=
      ( cop wcel cuni cpr prid1 opi2 elunii mpan sylancr prid2 jca ) ABFZCGZACH
      ZHZGZBTGZRAABIZGUCSGZUAABDJUCQGRUDABDEKUCQCLMZAUCSLNRBUCGUDUBABEOUEBUCSLN
      P $.
  $}

  ${
    $d A x y v z $.  $d A x y u z $.
    $( Expression for double union that moves union into a class builder.
       (Contributed by FL, 28-May-2007.) $)
    uniuni $p |- U. U. A = U. { x | E. y ( x = U. y /\ y e. A ) } $=
      ( vz vu vv wel cv cuni wcel wex cab wceq eluni anbi2i exbii 19.42v bicomi
      wa 3bitri excom anass ancom bitr3i 2exbii exdistr vex uniex eleq2 ceqsexv
      exancom bitri 3bitr2i eqeq1 anbi1d exbidv elab abbii df-uni 3eqtr4i ) DEG
      ZEHZCIZJZSZEKZDLDFGZFHZAHZBHZIZMZVJCJZSZBKZALZJZSZFKZDLVCIVPIVFVSDVFVAEBG
      ZVMSZBKZSZEKZVMDHZVKJZSZBKZVSVEWCEVDWBVABVBCNOPWDVAWASZBKZEKZVMVAVTSZEKZS
      ZBKZWHWCWJEWJWCVAWABQRPWKWIEKBKVMWLSZEKBKWOWIEBUAWIWPBEWIWLVMSWPVAVTVMUBW
      LVMUCUDUEVMWLBEUFTWNWGBWMWFVMWFWMEWEVJNROPTWHVGVHVKMZVMSZSZFKZBKWSBKFKZVS
      WGWTBWGVMVGWQSZFKZSVMXBSZFKWTWFXCVMWFWQVGSFKXCVGWFFVKVJBUGUHVHVKWEUIUJWQV
      GFUKUDOVMXBFQXDWSFXDXBVMSWSVMXBUCVGWQVMUBULPUMPWSBFUAXAVGWRBKZSZFKVSVGWRF
      BUFXFVRFXEVQVGVQXEVOXEAVHFUGVIVHMZVNWRBXGVLWQVMVIVHVKUNUOUPUQROPULTTURDEV
      CUSDFVPUSUT $.
  $}

  ${
    $d x y z $.  $d A y z $.
    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by NM, 14-Oct-2010.) $)
    eusv1 $p |- ( E! y A. x y = A <-> E. y A. x y = A ) $=
      ( vz cv wceq wal weu wex wa wi sp eqtr3 syl2an gen2 eqeq1 albidv mpbiran2
      eu4 ) BEZCFZAGZBHUBBIUBDEZCFZAGZJTUCFZKZDGBGUGBDUBUAUDUFUEUAALUDALTUCCMNO
      UBUEBDUFUAUDATUCCPQSR $.
  $}

  ${
    $d x y z w $.  $d A y z w $.
    $( Even if ` x ` is free in ` A ` , it is effectively bound when
       ` A ( x ) ` is single-valued.  (Contributed by NM, 14-Oct-2010.)
       (Revised by Mario Carneiro, 14-Oct-2016.) $)
    eusvnf $p |- ( E! y A. x y = A -> F/_ x A ) $=
      ( vz vw cv wceq wal csb cvv wcel wi vex nfcv nfcsb1v nfeq2 csbeq1a eqeq2d
      spcgf ax-mp weu wex wnfc euex eqtr3d alrimivv sbnfc2 sylibr exlimiv syl )
      BFZCGZAHZBUAUMBUBACUCZUMBUDUMUNBUMADFZCIZAEFZCIZGZEHDHUNUMUSDEUMUKUPURUOJ
      KUMUKUPGZLDMULUTAUOJAUONAUKUPAUOCOPAFZUOGCUPUKAUOCQRSTUQJKUMUKURGZLEMULVB
      AUQJAUQNAUKURAUQCOPVAUQGCURUKAUQCQRSTUEUFADECUGUHUIUJ $.

    $( Two ways to say that ` A ( x ) ` is a set expression that does not
       depend on ` x ` .  (Contributed by Mario Carneiro, 18-Nov-2016.) $)
    eusvnfb $p |- ( E! y A. x y = A <-> ( F/_ x A /\ A e. _V ) ) $=
      ( cv wceq wal weu wnfc cvv wcel eusvnf wex euex vex syl6eqelr sps exlimiv
      wa id syl jca isset nfcvd nfeqd nfrd eximdv syl5bi eusv1 sylibr impbii
      imp ) BDZCEZAFZBGZACHZCIJZRZUOUPUQABCKUOUNBLZUQUNBMUNUQBUMUQAUMCULIUMSBNO
      PQTUAURUSUOUPUQUSUQUMBLUPUSBCUBUPUMUNBUPUMAUPAULCUPAULUCUPSUDUEUFUGUKABCU
      HUIUJ $.
  $}

  ${
    $d x y $.  $d A y $.
    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by NM, 14-Oct-2010.)  (Revised by Mario
       Carneiro, 18-Nov-2016.) $)
    eusv2i $p |- ( E! y A. x y = A -> E! y E. x y = A ) $=
      ( cv wceq wal weu wex nfeu1 wnf nfcvd eusvnf nfeqd nf2 sylib 19.2 impbid1
      wi eubid ibir ) BDZCEZAFZBGZUBAHZBGUDUEUCBUCBIUDUEUCUDUBAJUEUCRUDAUACUDAU
      AKABCLMUBANOUBAAPQST $.
  $}

  ${
    $d x y z v w $.  $d A y z w v $.
    eusv2.1 $e |- A e. _V $.
    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by Mario Carneiro, 18-Nov-2016.) $)
    eusv2nf $p |- ( E! y E. x y = A <-> F/_ x A ) $=
      ( cv wceq wex weu wnfc wnf wal nfeu1 wi nfe1 nfeu wa isseti alrimi sylibr
      cvv 19.8a ancri eximii eupick mpan2 nf3 wcel wb dfnfc2 mpg eusvnfb eusv2i
      mpbiran2 sylbir impbii ) BECFZAGZBHZACIZURUPAJZBKZUSURUTBUQBLURUQUPMZAKUT
      URVBAUQABUPANOURUQUPPZBGVBUPVCBBCDQUPUQUPAUAUBUCUQUPBUDUERUPAUFSRCTUGZUSV
      AUHAABCTUIDUJSUSUPAKBHZURVEUSVDDABCUKUMABCULUNUO $.

    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by NM, 15-Oct-2010.)  (Proof shortened by
       Mario Carneiro, 18-Nov-2016.) $)
    eusv2 $p |- ( E! y E. x y = A <-> E! y A. x y = A ) $=
      ( cv wceq wex weu wnfc wal eusv2nf cvv wcel eusvnfb mpbiran2 bitr4i ) BEC
      FZAGBHACIZQAJBHZABCDKSRCLMDABCNOP $.
  $}

  ${
    $d x z A $.  $d w x z B $.  $d x z C $.  $d w x z ph $.  $d w x y z $.
    $( Two ways to express single-valuedness of a class expression
       ` C ( y ) ` .  (Contributed by NM, 16-Dec-2012.)  (Proof shortened by
       Mario Carneiro, 18-Nov-2016.) $)
    reusv1 $p |- ( E. y e. B ph -> ( E! x e. A A. y e. B ( ph -> x = C )
                   <-> E. x e. A A. y e. B ( ph -> x = C ) ) ) $=
      ( wrex cv wceq wi wral wmo wrmo wreu wb nfra1 nfmo wcel wa wal impd com12
      rsp alrimiv moeq moim mpisyl ex rexlimi mormo reu5 rbaib 3syl ) ACEGABHFI
      ZJZCEKZBLZUPBDMZUPBDNZUPBDGZOAUQCEUPCBUOCEPQCHERZAUQVAASZUPUNJZBTUNBLUQVB
      VCBUPVBUNUPVAAUNUOCEUCUAUBUDBFUEUPUNBUFUGUHUIUPBDUJUSUTURUPBDUKULUM $.
  $}

  ${
    $d x y z B $.  $d x z C $.  $d x y D $.  $d x z ph $.  $d x y ps $.
    reusv3.1 $e |- ( y = z -> ( ph <-> ps ) ) $.
    reusv3.2 $e |- ( y = z -> C = D ) $.
    $( Two ways of expressing existential uniqueness via an indirect equality.
       (Contributed by NM, 23-Dec-2012.) $)
    reusv3i $p |- ( E. x e. A A. y e. B ( ph -> x = C )
            -> A. y e. B A. z e. B ( ( ph /\ ps ) -> C = D ) ) $=
      ( cv wceq wi wral wa eqeq2d imbi12d cbvralv ralimi biimpi prth eqtr2 syl6
      raaanv sylbir mpdan rexlimivw ) ACLZHMZNZDGOZABPZHIMZNZEGOZDGOZCFULBUIIMZ
      NZEGOZUQULUTUKUSDEGDLELMZABUJURJVAHIUIKQRSUAULUTPUKUSPZEGOZDGOUQUKUSDEGUE
      VCUPDGVBUOEGVBUMUJURPUNAUJBURUBUIHIUCUDTTUFUGUH $.

    $d x y z A $.
    $( Two ways to express single-valuedness of a class expression
       ` C ( y ) ` .  See ~ reusv1 for the connection to uniqueness.
       (Contributed by NM, 27-Dec-2012.) $)
    reusv3 $p |- ( E. y e. B ( ph /\ C e. A )
          -> ( A. y e. B A. z e. B ( ( ph /\ ps ) -> C = D )
                   <-> E. x e. A A. y e. B ( ph -> x = C ) ) ) $=
      ( wcel wa wrex wceq wi wral cv bitri ralbii eleq1d anbi12d cbvrexv risset
      nfra2xy nfv nfim ralcom impexp bi2.04 r19.21v rsp sylbi com3l imp31 eqeq1
      eqcom syl6bb imbi2d ralbidv syl5ibrcom reximdv ex expimpd rexlimi reusv3i
      com23 syl5bi impbid1 ) AHFLZMZDGNZABMHIOZPZEGQDGQZACRZHOZPZDGQZCFNZVLBIFL
      ZMZEGNVOVTPZVKWBDEGDRERZOZABVJWAJWEHIFKUAUBUCWBWCEGVOVTEVNDEGGUEVTEUFUGWD
      GLZBWAWCWAVPIOZCFNZWFBMZWCCIFUDWIVOWHVTWIVOWHVTPWIVOMZWGVSCFWJVSWGAVMPZDG
      QZWFBVOWLVOWFBWLVOBWLPZEGQZWFWMPVOVNDGQZEGQWNVNDEGGUHWOWMEGWOBWKPZDGQWMVN
      WPDGVNABVMPPWPABVMUIABVMUJSTBWKDGUKSTSWMEGULUMUNUOWGVRWKDGWGVQVMAWGVQIHOV
      MVPIHUPIHUQURUSUTVAVBVCVGVHVDVEUMABCDEFGHIJKVFVI $.
  $}

  ${
    $d x A $.  $d y ph $.  $d x ps $.  $d x y $.
    alxfr.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       18-Feb-2007.) $)
    alxfr $p |- ( ( A. y A e. B /\ A. x E. y x = A ) ->
                ( A. x ph <-> A. y ps ) ) $=
      ( wcel wal cv wceq wex wa wi spcgv com12 alimdv adantr nfa1 nfv sp exlimd
      syl5ibrcom adantl impbid ) EFHZDIZCJEKZDLZCIZMACIZBDIZUGUKULNUJUKUGULUKUF
      BDUFUKBABCEFGOPQPRUJULUKNUGULUJUKULUIACULUHADBDSADTULAUHBBDUAGUCUBQPUDUE
      $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x C $.  $d x ch $.  $d x y ph $.  $d y ps $.
    ralxfrd.1 $e |- ( ( ph /\ y e. C ) -> A e. B ) $.
    ralxfrd.2 $e |- ( ( ph /\ x e. B ) -> E. y e. C x = A ) $.
    ralxfrd.3 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       15-Aug-2014.)  (Proof shortened by Mario Carneiro, 19-Nov-2016.) $)
    ralxfrd $p |- ( ph -> ( A. x e. B ps <-> A. y e. C ch ) ) $=
      ( wral cv wcel wa wceq wb adantlr ralrimdva wrex rspcdv r19.29 wi biimprd
      expimpd ancomsd ad2antrr rexlimdva syl5 mpan2d impbid ) ABDGLZCEHLZAULCEH
      AEMHNZOBCDFGIADMZFPZBCQUNKRUASAUMBDGAUOGNZOZUMUPEHTZBJUMUSOCUPOZEHTURBCUP
      EHUBURUTBEHAUTBUCUQUNAUPCBAUPCBAUPOBCKUDUEUFUGUHUIUJSUK $.

    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by FL,
       10-Apr-2007.)  (Revised by Mario Carneiro, 15-Aug-2014.) $)
    rexxfrd $p |- ( ph -> ( E. x e. B ps <-> E. y e. C ch ) ) $=
      ( wrex wal cv wcel wa nfv wex df-rex rexlimdva 19.3 wceq 19.29 an12 exbii
      wi sylib sylibr sylan2b biimpd expimpd ancomsd reximdv syl5 adantr mpan2d
      syl5bir wb adantlr rspcedv impbid ) ABDGLZCEHLZABVCDGBBEMZADNZGOZPZVCBEBE
      QUAVGVDVEFUBZEHLZVCJAVDVIPZVCUFVFVJBVHPZEHLZAVCVIVDENHOZVHPZERZVLVHEHSVDV
      OPZVMVKPZERZVLVPBVNPZERVRBVNEUCVSVQEBVMVHUDUEUGVKEHSUHUIAVKCEHAVHBCAVHBCA
      VHPBCKUJUKULUMUNUOUPUQTACVBEHAVMPBCDFGIAVHBCURVMKUSUTTVA $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x C $.  $d x ch $.  $d x y ph $.  $d y ps $.
    ralxfr2d.1 $e |- ( ( ph /\ y e. C ) -> A e. V ) $.
    ralxfr2d.2 $e |- ( ph -> ( x e. B <-> E. y e. C x = A ) ) $.
    ralxfr2d.3 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by Mario
       Carneiro, 20-Aug-2014.) $)
    ralxfr2d $p |- ( ph -> ( A. x e. B ps <-> A. y e. C ch ) ) $=
      ( cv wcel wa wceq wex elisset syl wi wrex biimprd r19.23v sylibr r19.21bi
      wral eleq1 mpbidi exlimdv mpd biimpa ralxfrd ) ABCDEFGHAEMHNOZDMZFPZDQZFG
      NZUMFINUPJDFIRSUMUOUQDUOUNGNZUQUMAUOURTZEHAUOEHUAZURTUSEHUFAURUTKUBUOUREH
      UCUDUEUNFGUGUHUIUJAURUTKUKLUL $.

    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by Mario
       Carneiro, 20-Aug-2014.)  (Proof shortened by Mario Carneiro,
       19-Nov-2016.) $)
    rexxfr2d $p |- ( ph -> ( E. x e. B ps <-> E. y e. C ch ) ) $=
      ( cv wcel wa wceq wex elisset syl wi wrex biimprd r19.23v sylibr r19.21bi
      wral eleq1 mpbidi exlimdv mpd biimpa rexxfrd ) ABCDEFGHAEMHNOZDMZFPZDQZFG
      NZUMFINUPJDFIRSUMUOUQDUOUNGNZUQUMAUOURTZEHAUOEHUAZURTUSEHUFAURUTKUBUOUREH
      UCUDUEUNFGUGUHUIUJAURUTKUKLUL $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x A $.  $d x y B $.  $d x C $.
    ralxfr.1 $e |- ( y e. C -> A e. B ) $.
    ralxfr.2 $e |- ( x e. B -> E. y e. C x = A ) $.
    ralxfr.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       10-Jun-2005.)  (Revised by Mario Carneiro, 15-Aug-2014.) $)
    ralxfr $p |- ( A. x e. B ph <-> A. y e. C ps ) $=
      ( wral wb wtru cv wcel adantl wceq wrex ralxfrd trud ) ACFKBDGKLMABCDEFGD
      NGOEFOMHPCNZFOUAEQZDGRMIPUBABLMJPST $.

    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  This proof does not use
       ~ ralxfrd .  (Contributed by NM, 10-Jun-2005.)  (Revised by Mario
       Carneiro, 15-Aug-2014.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ralxfrALT $p |- ( A. x e. B ph <-> A. y e. C ps ) $=
      ( wral cv wcel wi rspcv syl com12 ralrimiv wceq wrex nfv biimprcd rexlimd
      nfra1 rsp syl6 syl5 impbii ) ACFKZBDGKZUIBDGDLGMZUIBUKEFMUIBNHABCEFJOPQRU
      JACFCLZFMULESZDGTUJAIUJUMADGBDGUDADUAUJUKBUMANBDGUEUMABJUBUFUCUGRUH $.

    $( Transfer existence from a variable ` x ` to another variable ` y `
       contained in expression ` A ` .  (Contributed by NM, 10-Jun-2005.)
       (Revised by Mario Carneiro, 15-Aug-2014.) $)
    rexxfr $p |- ( E. x e. B ph <-> E. y e. C ps ) $=
      ( wrex wb wtru cv wcel adantl wceq rexxfrd trud ) ACFKBDGKLMABCDEFGDNGOEF
      OMHPCNZFOTEQZDGKMIPUAABLMJPRS $.
  $}

  ${
    $d x A $.  $d x y D $.  $d y ph $.  $d y ps $.  $d x ch $.
    rabxfrd.1 $e |- F/_ y B $.
    rabxfrd.2 $e |- F/_ y C $.
    rabxfrd.3 $e |- ( ( ph /\ y e. D ) -> A e. D ) $.
    rabxfrd.4 $e |- ( x = A -> ( ps <-> ch ) ) $.
    rabxfrd.5 $e |- ( y = B -> A = C ) $.
    $( Class builder membership after substituting an expression ` A `
       (containing ` y ` ) for ` x ` in the class expression ` ch ` .
       (Contributed by NM, 16-Jan-2012.) $)
    rabxfrd $p |- ( ( ph /\ B e. D ) ->
                 ( C e. { x e. D | ps } <-> B e. { y e. D | ch } ) ) $=
      ( wcel crab wb wa wi imp cv ibibr sylib anbi1d elrab rabid 3bitr4g eleq2d
      ex rabbidva nfcv nfel1 wceq eleq1d elrabf nfrab1 nfel eleq1 pm5.32 sylibr
      3bitr3g ) AGIOZHBDIPZOZGCEIPZOZQZAVBVDRZVBVFRZQVBVGSAGFVCOZEIPZOGEUAZVEOZ
      EIPZOVHVIAVKVNGAVJVMEIAVLIOZRZFIOZCRVOCRVJVMVPVQVOCAVOVQVOQZAVOVQSVOVRSAV
      OVQLUIVOVQUBUCTUDBCDFIMUECEIUFUGUJUHVJVDEGIJEIUKZEHVCKULVLGUMFHVCNUNUOVMV
      FEGIJVSEGVEJCEIUPUQVLGVEURUOVAVBVDVFUSUTT $.
  $}

  ${
    $d x A $.  $d z B $.  $d z C $.  $d x y z D $.  $d y z ph $.  $d x z ps $.
    rabxfr.1 $e |- F/_ y B $.
    rabxfr.2 $e |- F/_ y C $.
    rabxfr.3 $e |- ( y e. D -> A e. D ) $.
    rabxfr.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    rabxfr.5 $e |- ( y = B -> A = C ) $.
    $( Class builder membership after substituting an expression ` A `
       (containing ` y ` ) for ` x ` in the class expression ` ph ` .
       (Contributed by NM, 10-Jun-2005.) $)
    rabxfr $p |- ( B e. D ->
                 ( C e. { x e. D | ph } <-> B e. { y e. D | ps } ) ) $=
      ( wtru wcel crab wb tru cv adantl rabxfrd mpan ) NFHOGACHPOFBDHPOQRNABCDE
      FGHIJDSHOEHONKTLMUAUB $.
  $}

  ${
    $d y ph $.  $d y B $.  $d y C $.  $d x y $.
    reuhypd.1 $e |- ( ( ph /\ x e. C ) -> B e. C ) $.
    reuhypd.2 $e |- ( ( ph /\ x e. C /\ y e. C ) -> ( x = A <-> y = B ) ) $.
    $( A theorem useful for eliminating restricted existential uniqueness
       hypotheses.  (Contributed by NM, 16-Jan-2012.) $)
    reuhypd $p |- ( ( ph /\ x e. C ) -> E! y e. C x = A ) $=
      ( cv wcel wa wceq weu wreu cvv elex syl eueq sylib eleq1 syl5ibrcom 3expa
      pm4.71rd wb pm5.32da bitr4d eubidv mpbid df-reu sylibr ) ABIZFJZKZCIZFJZU
      KDLZKZCMZUPCFNUMUNELZCMZURUMEOJZUTUMEFJZVAGEFPQCERSUMUSUQCUMUSUOUSKUQUMUS
      UOUMUOUSVBGUNEFTUAUCUMUOUPUSAULUOUPUSUDHUBUEUFUGUHUPCFUIUJ $.
  $}

  ${
    $d y B $.  $d y C $.  $d x y $.
    reuhyp.1 $e |- ( x e. C -> B e. C ) $.
    reuhyp.2 $e |- ( ( x e. C /\ y e. C ) -> ( x = A <-> y = B ) ) $.
    $( A theorem useful for eliminating restricted existential uniqueness
       hypotheses.  (Contributed by NM, 15-Nov-2004.) $)
    reuhyp $p |- ( x e. C -> E! y e. C x = A ) $=
      ( wtru cv wcel wceq wreu tru adantl wb 3adant1 reuhypd mpan ) HAIZEJZSCKZ
      BELMHABCDETDEJHFNTBIZEJUAUBDKOHGPQR $.
  $}

  $( The Axiom of Union and its converse.  A class is a set iff its union is a
     set.  (Contributed by NM, 11-Nov-2003.) $)
  uniexb $p |- ( A e. _V <-> U. A e. _V ) $=
    ( cvv wcel cuni uniexg cpw wss pwuni pwexg ssexg sylancr impbii ) ABCZADZBC
    ZABEOANFZGPBCMAHNBIAPBJKL $.

  $( The Axiom of Power Sets and its converse.  A class is a set iff its power
     class is a set.  (Contributed by NM, 11-Nov-2003.) $)
  pwexb $p |- ( A e. _V <-> ~P A e. _V ) $=
    ( cpw cvv wcel cuni uniexb unipw eleq1i bitr2i ) ABZCDJEZCDACDJFKACAGHI $.

  $( The union of the universe is the universe.  Exercise 4.12(c) of
     [Mendelson] p. 235.  (Contributed by NM, 14-Sep-2003.) $)
  univ $p |- U. _V = _V $=
    ( cvv cpw cuni pwv unieqi unipw eqtr3i ) ABZCACAHADEAFG $.

  ${
    eldifpw.1 $e |- C e. _V $.
    $( Membership in a power class difference.  (Contributed by NM,
       25-Mar-2007.) $)
    eldifpw $p |- ( ( A e. ~P B /\ -. C C_ B ) ->
                   ( A u. C ) e. ( ~P ( B u. C ) \ ~P B ) ) $=
      ( cpw wcel wss wn wa cun elpwi unss1 cvv wb unexg mpan2 elpwg syl syl5ibr
      cdif mpd unssbd con3i anim12i eldif sylibr ) ABEZFZCBGZHZIACJZBCJZEZFZUKU
      GFZHZIUKUMUGTFUHUNUJUPUHABGZUNABKUQUNUHUKULGZABCLUHUKMFZUNURNUHCMFUSDACUG
      MOPUKULMQRSUAUOUIUOACBUKBKUBUCUDUKUMUGUEUF $.
  $}

  ${
    op1stb.1 $e |- A e. _V $.
    op1stb.2 $e |- B e. _V $.
    $( Extract the first member of an ordered pair.  Theorem 73 of [Suppes]
       p. 42.  (Contributed by NM, 25-Nov-2003.) $)
    op1stb $p |- |^| |^| <. A , B >. = A $=
      ( cop cint csn cpr dfop inteqi cin cvv wcel snexgOLD ax-mp prexgOLD mp2an
      intpr wss eqtri wceq snsspr1 df-ss mpbi intsn ) ABEZFZFAGZFAUGUHUGUHABHZH
      ZFZUHUFUJABCDIJUKUHUIKZUHUHUIALMZUHLMCANOUMBLMUILMCDABPQRUHUISULUHUAABUBU
      HUIUCUDTTJACUET $.
  $}

  ${
    $( Extract the first member of an ordered pair.  Theorem 73 of [Suppes]
       p. 42.  (Contributed by Jim Kingdon, 17-Dec-2018.) $)
    op1stbg $p |- ( ( A e. V /\ B e. W ) -> |^| |^| <. A , B >. = A ) $=
      ( wcel wa cop cint csn cpr dfopg inteqd cin cvv wceq elex snexgOLD adantr
      syl eqtrd prexgOLD syl2an intprg syl2anc snsspr1 df-ss mpbi syl6eq intsng
      wss ) ACEZBDEZFZABGZHZHAIZHZAUMUOUPUMUOUPABJZJZHZUPUMUNUSABCDKLUMUTUPURMZ
      UPUMUPNEZURNEZUTVAOUKVBULUKANEZVBACPZAQSRUKVDBNEVCULVEBDPABUAUBUPURNNUCUD
      UPURUJVAUPOABUEUPURUFUGUHTLUKUQAOULACUIRT $.
  $}

  ${
    $d x y A $.
    iunpw.1 $e |- A e. _V $.
    $( An indexed union of a power class in terms of the power class of the
       union of its index.  Part of Exercise 24(b) of [Enderton] p. 33.
       (Contributed by NM, 29-Nov-2003.) $)
    iunpw $p |- ( E. x e. A x = U. A <-> ~P U. A = U_ x e. A ~P x ) $=
      ( vy cuni wceq wrex cpw ciun wcel sseq2 biimprcd reximdv com12 ssiun elpw
      cv wss eliun wa uniiun syl6sseqr impbid1 df-pw abeq2i bitri 3bitr4g eqrdv
      vex rexbii ssid uniex eleq2 syl5bbr mpbii sylib elssuni elpwi eqss sylibr
      anim12i ex reximia syl impbii ) AQZBEZFZABGZVGHZABVFHZIZFZVIDVJVLVIDQZVGR
      ZVNVFRZABGZVNVJJVNVLJZVIVOVQVOVIVQVOVHVPABVHVPVOVFVGVNKLMNVQVNABVFIVGABVF
      VNOABUAUBUCVNVGDUIPVRVNVKJZABGVQAVNBVKSVSVPABVPDVKDVFUDUEUJUFUGUHVMVGVKJZ
      ABGZVIVMVGVLJZWAVMVGVGRZWBVGUKWCVGVJJVMWBVGVGBCULPVJVLVGUMUNUOAVGBVKSUPVT
      VHABVFBJZVTVHWDVTTVFVGRZVGVFRZTVHWDWEVTWFVFBUQVGVFURVAVFVGUSUTVBVCVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Ordinals (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( The class of all ordinal numbers is ordinal.  Proposition 7.12 of
       [TakeutiZaring] p. 38, but without using the Axiom of Regularity.
       (Contributed by NM, 17-May-1994.) $)
    ordon $p |- Ord On $=
      ( vx con0 word wtr cv wral tron wcel df-on abeq2i ordtr sylbi rgen dford3
      mpbir2an ) BCBDAEZDZABFGQABPBHPCZQRABAIJPKLMABNO $.
  $}

  ${
    $d x y A $.
    $( The union of a class of ordinal numbers is ordinal.  Proposition 7.19 of
       [TakeutiZaring] p. 40.  (Contributed by NM, 30-May-1994.)  (Proof
       shortened by Andrew Salmon, 12-Aug-2011.) $)
    ssorduni $p |- ( A C_ On -> Ord U. A ) $=
      ( vx vy con0 wss cuni wtr word cv wral wcel wrex eluni2 wa wi ssel onelss
      syl6 rexlimdv syl5bi anc2r syl ssuni syl8 ralrimiv dftr3 sylibr onelon ex
      ssrdv ordon trssord 3exp mpii sylc ) ADEZAFZGZUQDEZUQHZUPBIZUQEZBUQJURUPV
      BBUQVAUQKZVACIZKZCALZUPVBCVAAMZUPVEVBCAUPVDAKZVEVAVDEZVHNZVBUPVHVEVIOZOVH
      VEVJOOUPVHVDDKZVKADVDPZVDVAQRVHVEVIUAUBVAVDAUCUDSTUEBUQUFUGUPBUQDVCVFUPVA
      DKZVGUPVEVNCAUPVHVLVEVNOVMVLVEVNVDVAUHUIRSTUJURUSDHZUTUKURUSVOUTUQDULUMUN
      UO $.
  $}

  $( The union of a set of ordinal numbers is an ordinal number.  Theorem 9 of
     [Suppes] p. 132.  (Contributed by NM, 1-Nov-2003.) $)
  ssonuni $p |- ( A e. V -> ( A C_ On -> U. A e. On ) ) $=
    ( con0 wss cuni wcel word ssorduni cvv wb uniexg elong syl syl5ibr ) ACDAEZ
    CFZABFZOGZAHQOIFPRJABKOILMN $.

  ${
    ssonuni.1 $e |- A e. _V $.
    $( The union of a set of ordinal numbers is an ordinal number.  Corollary
       7N(d) of [Enderton] p. 193.  (Contributed by NM, 20-Sep-2003.) $)
    ssonunii $p |- ( A C_ On -> U. A e. On ) $=
      ( cvv wcel con0 wss cuni wi ssonuni ax-mp ) ACDAEFAGEDHBACIJ $.
  $}

  $( The union of two ordinal numbers is an ordinal number.  (Contributed by
     Jim Kingdon, 25-Jul-2019.) $)
  onun2 $p |- ( ( A e. On /\ B e. On ) -> ( A u. B ) e. On ) $=
    ( con0 wcel wa cpr wss cun prssi cuni wi prexg ssonuni uniprg eleq1d sylibd
    cvv syl mpd ) ACDBCDEZABFZCGZABHZCDZABCITUBUAJZCDZUDTUAQDUBUFKABCCLUAQMRTUE
    UCCABCCNOPS $.

  ${
    onun2i.1 $e |- A e. On $.
    onun2i.2 $e |- B e. On $.
    $( The union of two ordinal numbers is an ordinal number.  (Contributed by
       NM, 13-Jun-1994.)  (Constructive proof by Jim Kingdon, 25-Jul-2019.) $)
    onun2i $p |- ( A u. B ) e. On $=
      ( con0 wcel cun onun2 mp2an ) AEFBEFABGEFCDABHI $.
  $}

  ${
    $d x A $.
    $( Any ordinal class is a subclass of the class of ordinal numbers.
       Corollary 7.15 of [TakeutiZaring] p. 38.  (Contributed by NM,
       18-May-1994.) $)
    ordsson $p |- ( Ord A -> A C_ On ) $=
      ( vx word con0 cv wcel ordelon ex ssrdv ) ACZBADJBEZAFKDFAKGHI $.
  $}

  $( An ordinal number is a subset of the class of ordinal numbers.
     (Contributed by NM, 5-Jun-1994.) $)
  onss $p |- ( A e. On -> A C_ On ) $=
    ( con0 wcel word wss eloni ordsson syl ) ABCADABEAFAGH $.

  $( The union of an ordinal number is an ordinal number.  (Contributed by NM,
     29-Sep-2006.) $)
  onuni $p |- ( A e. On -> U. A e. On ) $=
    ( con0 wcel wss cuni onss ssonuni mpd ) ABCABDAEBCAFABGH $.

  $( The union of an ordinal class is ordinal.  (Contributed by NM,
     12-Sep-2003.) $)
  orduni $p |- ( Ord A -> Ord U. A ) $=
    ( word con0 wss cuni ordsson ssorduni syl ) ABACDAEBAFAGH $.

  ${
    $d x y A $.
    bm2.5ii.1 $e |- A e. _V $.
    $( Problem 2.5(ii) of [BellMachover] p. 471.  (Contributed by NM,
       20-Sep-2003.) $)
    bm2.5ii $p |- ( A C_ On -> U. A = |^| { x e. On | A. y e. A y C_ x } ) $=
      ( con0 wss cuni wcel cv wral crab cint wceq ssonunii wb unissb a1i inteqi
      rabbiia intmin syl5reqr syl ) CEFCGZEHZUCBIAIZFBCJZAEKZLZMCDNUDUHUCUEFZAE
      KZLUCUJUGUIUFAEUIUFOUEEHBCUEPQSRAUCETUAUB $.
  $}

  $( A successor exists iff its class argument exists.  (Contributed by NM,
     22-Jun-1998.) $)
  sucexb $p |- ( A e. _V <-> suc A e. _V ) $=
    ( cvv wcel csn wa cun csuc unexb snexgOLD pm4.71i df-suc eleq1i 3bitr4i ) A
    BCZADZBCZEAOFZBCNAGZBCAOHNPAIJRQBAKLM $.

  $( The successor of a set is a set (generalization).  (Contributed by NM,
     5-Jun-1994.) $)
  sucexg $p |- ( A e. V -> suc A e. _V ) $=
    ( wcel cvv csuc elex sucexb sylib ) ABCADCAEDCABFAGH $.

  ${
    sucex.1 $e |- A e. _V $.
    $( The successor of a set is a set.  (Contributed by NM, 30-Aug-1993.) $)
    sucex $p |- suc A e. _V $=
      ( cvv wcel csuc sucexg ax-mp ) ACDAECDBACFG $.
  $}

  ${
    $d x A $.
    $( The successor of an ordinal class is ordinal.  (Contributed by Jim
       Kingdon, 8-Nov-2018.) $)
    ordsucim $p |- ( Ord A -> Ord suc A ) $=
      ( vx word csuc wtr cv wral ordtr suctr syl wcel wceq wo csn df-suc eleq2i
      cun elun elsn dford3 orbi2i 3bitri wi wal simprbi df-ral sylib syl5ibrcom
      19.21bi treq jaod syl5bi ralrimiv sylanbrc ) ACZADZEZBFZEZBUPGUPCUOAEZUQA
      HZAIJUOUSBUPURUPKZURAKZURALZMZUOUSVBURAANZQZKVCURVFKZMVEUPVGURAOPURAVFRVH
      VDVCBASUAUBUOVCUSVDUOVCUSUCZBUOUSBAGZVIBUDUOUTVJBATUEUSBAUFUGUIUOUSVDUTVA
      URAUJUHUKULUMBUPTUN $.
  $}

  ${
    $d x A $.
    $( The successor of an ordinal number is an ordinal number.  Proposition
       7.24 of [TakeutiZaring] p. 41.  (Contributed by NM, 6-Jun-1994.) $)
    suceloni $p |- ( A e. On -> suc A e. On ) $=
      ( con0 wcel csuc word eloni ordsucim syl cvv wb sucexg elong mpbird ) ABC
      ZADZBCZOEZNAEQAFAGHNOICPQJABKOILHM $.
  $}

  $( The successor of an ordinal class is ordinal.  (Contributed by Jim
     Kingdon, 20-Nov-2018.) $)
  ordsucg $p |- ( A e. _V -> ( Ord A <-> Ord suc A ) ) $=
    ( cvv wcel word csuc ordsucim sucidg ordelord ex syl5com impbid2 ) ABCZADZA
    EZDZAFLANCZOMABGOPMNAHIJK $.

  $( The successor of an ordinal number is an ordinal number.  (Contributed by
     NM, 9-Sep-2003.) $)
  sucelon $p |- ( A e. On <-> suc A e. On ) $=
    ( con0 wcel csuc suceloni word eloni cvv wb elex sucexb elong ordsucg bitrd
    sylibr syl mpbird impbii ) ABCZADZBCZAEUASTFZTGUAAHCZSUBIUATHCUCTBJAKOUCSAF
    UBAHLAMNPQR $.

  $( The successor of an element of an ordinal class is a subset of it.
     (Contributed by NM, 21-Jun-1998.) $)
  ordsucss $p |- ( Ord B -> ( A e. B -> suc A C_ B ) ) $=
    ( word wtr wcel csuc wss wi ordtr csn cun trss snssi a1i jcad syl6ib df-suc
    wa unss sseq1i syl6ibr syl ) BCBDZABEZAFZBGZHBIUCUDAAJZKZBGZUFUCUDABGZUGBGZ
    RUIUCUDUJUKBALUDUKHUCABMNOAUGBSPUEUHBAQTUAUB $.

  $( A set belongs to an ordinal iff its successor is a subset of the ordinal.
     Exercise 8 of [TakeutiZaring] p. 42 and its converse.  (Contributed by NM,
     29-Nov-2003.) $)
  ordelsuc $p |- ( ( A e. C /\ Ord B ) -> ( A e. B <-> suc A C_ B ) ) $=
    ( wcel word wa csuc wss wi ordsucss adantl sucssel adantr impbid ) ACDZBEZF
    ABDZAGBHZPQRIOABJKORQIPABCLMN $.

  ${
    $d x A $.
    $( The successor of an ordinal number is the smallest larger ordinal
       number.  (Contributed by NM, 28-Nov-2003.) $)
    onsucmin $p |- ( A e. On -> suc A = |^| { x e. On | A e. x } ) $=
      ( con0 wcel cv crab cint csuc wss word wb ordelsuc sylan2 rabbidva inteqd
      eloni wceq sucelon intmin sylbi eqtr2d ) BCDZBAEZDZACFZGBHZUCIZACFZGZUFUB
      UEUHUBUDUGACUCCDUBUCJUDUGKUCPBUCCLMNOUBUFCDUIUFQBRAUFCSTUA $.
  $}

  $( Membership is inherited by predecessors.  The converse, for all ordinals,
     implies excluded middle, as shown at ~ onsucelsucexmid .  However, the
     converse does hold where ` B ` is a natural number, as seen at
     ~ nnsucelsuc .  (Contributed by Jim Kingdon, 17-Jul-2019.) $)
  onsucelsucr $p |- ( B e. On -> ( suc A e. suc B -> A e. B ) ) $=
    ( csuc wcel con0 cvv wi elex sucexb sylibr wa wceq wo wss onelss eqimss a1i
    jaod adantl wb elsucg sylbi adantr ordelsuc sylan2 3imtr4d impancom mpancom
    word eloni com12 ) ACZBCZDZBEDZABDZAFDZUNUOUPGUNULFDZUQULUMHAIZJUQUOUNUPUQU
    OKULBDZULBLZMZULBNZUNUPUOVBVCGUQUOUTVCVABULOVAVCGUOULBPQRSUQUNVBTZUOUQURVDU
    SULBFUAUBUCUOUQBUIUPVCTBUJABFUDUEUFUGUHUK $.

  $( The subclass relationship between two ordinals is inherited by their
     predecessors.  The converse implies excluded middle, as shown at
     ~ onsucsssucexmid .  (Contributed by Mario Carneiro and Jim Kingdon,
     29-Jul-2019.) $)
  onsucsssucr $p |- ( ( A e. On /\ Ord B ) -> ( suc A C_ suc B -> A C_ B ) ) $=
    ( con0 wcel word wa csuc wss wb ordsucim ordelsuc sylan2 wi wtr trsucss syl
    ordtr adantl sylbird ) ACDZBEZFAGBGZHZAUBDZABHZUATUBEUDUCIBJAUBCKLUAUDUEMZT
    UABNUFBQBAOPRS $.

  $( Successor and union.  The converse (where ` B ` is an ordinal) implies
     excluded middle, as seen at ~ ordsucunielexmid .  (Contributed by Jim
     Kingdon, 2-Aug-2019.) $)
  sucunielr $p |- ( suc A e. B -> A e. U. B ) $=
    ( csuc wcel cuni cvv elex sucexb sylibr sucidg syl elunii mpancom ) AACZDZN
    BDZABEDPAFDZOPNFDQNBGAHIAFJKANBLM $.

  ${
    $d x y A $.
    $( The class of all ordinal numbers is its own union.  Exercise 11 of
       [TakeutiZaring] p. 40.  (Contributed by NM, 12-Nov-2003.) $)
    unon $p |- U. On = On $=
      ( vx vy con0 cuni cv wcel wrex eluni2 onelon rexlimiva sylbi vex suceloni
      csuc sucid elunii sylancr impbii eqriv ) ACDZCAEZTFZUACFZUBUABEZFZBCGUCBU
      ACHUEUCBCUDUAIJKUCUAUANZFUFCFUBUAALOUAMUAUFCPQRS $.

    $( The union of the ordinal subsets of an ordinal number is that number.
       (Contributed by Jim Kingdon, 2-Aug-2019.) $)
    onuniss2 $p |- ( A e. On -> U. { x e. On | x C_ A } = A ) $=
      ( con0 unimax ) ABCD $.
  $}

  $( The class of ordinal numbers is a limit ordinal.  (Contributed by NM,
     24-Mar-1995.) $)
  limon $p |- Lim On $=
    ( con0 wlim word c0 wcel cuni wceq ordon 0elon unon eqcomi dflim2 mpbir3an
    ) ABACDAEAAFZGHINAJKALM $.

  ${
    $d x y A $.

    $( An ordinal which contains the successor of each of its members is equal
       to its union.  (Contributed by Jim Kingdon, 14-Nov-2018.) $)
    ordunisuc2r $p |- ( Ord A -> ( A. x e. A suc x e. A -> A = U. A ) ) $=
      ( word cv csuc wcel wral cuni wss wa wceq wi wal sucid elunii mpan imim2i
      vex alimi df-ral dfss2 3imtr4i a1i orduniss jctird eqss syl6ibr ) BCZADZE
      ZBFZABGZBBHZIZUMBIZJBUMKUHULUNUOULUNLUHUIBFZUKLZAMUPUIUMFZLZAMULUNUQUSAUK
      URUPUIUJFUKURUIARNUIUJBOPQSUKABTABUMUAUBUCBUDUEBUMUFUG $.
  $}

  ${
    onssi.1 $e |- A e. On $.
    $( An ordinal number is a subset of ` On ` .  (Contributed by NM,
       11-Aug-1994.) $)
    onssi $p |- A C_ On $=
      ( con0 wcel wss onss ax-mp ) ACDACEBAFG $.

    $( The successor of an ordinal number is an ordinal number.  Corollary
       7N(c) of [Enderton] p. 193.  (Contributed by NM, 12-Jun-1994.) $)
    onsuci $p |- suc A e. On $=
      ( con0 wcel csuc suceloni ax-mp ) ACDAECDBAFG $.
  $}

  ${
    $d x y z $.  $d ph y z $.
    $( Lemma for decidability and ordinals.  The set ` { x e. { (/) } | ph } `
       is a way of connecting statements about ordinals (such as trichotomy in
       ~ ordtriexmid or weak linearity in ~ ordsoexmid ) with a proposition
       ` ph ` .  Our lemma states that it is an ordinal number.  (Contributed
       by Jim Kingdon, 28-Jan-2019.) $)
    ordtriexmidlem $p |- { x e. { (/) } | ph } e. On $=
      ( vy vz c0 csn crab con0 wcel word wtr wss cv wa wi wal simpl mpbir ax-mp
      wceq elrabi elsn sylib noel eleq2 mtbiri syl adantl pm2.21dd dftr2 ssrab2
      wn gen2 csuc ord0 ordsucim suc0 ordeq mpbi trssord mp3an p0ex rabex elon
      wb ) ABEFZGZHIVGJZVGKZVGVFLVFJZVHVICMZDMZIZVLVGIZNZVKVGIZOZDPCPVQCDVOVMVP
      VMVNQVNVMULZVMVNVLETZVRVNVLVFIVSABVLVFUADEUBUCVSVMVKEIVKUDVLEVKUEUFUGUHUI
      UMCDVGUJRABVFUKEUNZJZVJEJWAUOEUPSVTVFTWAVJVEUQVTVFURSUSVGVFUTVAVGABVFVBVC
      VDR $.
  $}

  ${
    $d ph x y z $.
    $( Lemma for decidability and ordinals.  The set ` { x e. { (/) } | ph } `
       is a way of connecting statements about ordinals (such as trichotomy in
       ~ ordtriexmid or weak linearity in ~ ordsoexmid ) with a proposition
       ` ph ` .  Our lemma helps connect that set to excluded middle.
       (Contributed by Jim Kingdon, 28-Jan-2019.) $)
    ordtriexmidlem2 $p |- ( { x e. { (/) } | ph } = (/) -> -. ph ) $=
      ( c0 csn crab wceq wcel noel eleq2 mtbiri wb 0ex snid biidd elrab3 sylnib
      cv ax-mp ) ABCDZEZCFZCTGZAUAUBCCGCHTCCIJCSGUBAKCLMAABCSBQCFANORP $.
  $}

  ${
    $d x y z w s $.  $d z w s ph $.  $d x ph $.
    ordtriexmid.1 $e |- A. x e. On A. y e. On ( x e. y \/ x = y \/ y e. x ) $.
    $( Ordinal trichotomy implies the law of the excluded middle (that is,
       decidability of an arbitrary proposition).

       This theorem is stated in "Constructive ordinals", [Crosilla], p.
       "Set-theoretic principles incompatible with intuitionistic logic".

       (Contributed by Mario Carneiro and Jim Kingdon, 14-Nov-2018.) $)
    ordtriexmid $p |- ( ph \/ -. ph ) $=
      ( vz wn wo c0 wceq wcel w3o con0 cv eleq1 eleq2 3orbi123d wa wi 0ex ax-mp
      csn crab noel ordtriexmidlem eqeq1 0elon anbi2d eqeq2 imbi12d vtocl mpan2
      rspec2 vtoclga 3orass mpbi mtp-or ordtriexmidlem2 wb biidd elrab3 orim12i
      snid biimpi orcom mpbir ) AAFZGVFAGZAEHUAZUBZHIZHVIJZGZVGVIHJZVLVIUCVMVJV
      KKZVMVLGVILJVNAEUDBMZHJZVOHIZHVOJZKZVNBVILVOVIIVPVMVQVJVRVKVOVIHNVOVIHUEV
      OVIHOPVOLJZHLJZVSUFVTCMZLJZQZVOWBJZVOWBIZWBVOJZKZRVTWAQZVSRCHSWBHIZWDWIWH
      VSWJWCWAVTWBHLNUGWJWEVPWFVQWGVRWBHVOOWBHVOUHWBHVONPUIWHBCLLDULUJUKUMTVMVJ
      VKUNUOUPVJVFVKAAEUQVKAHVHJVKAURHSVBAAEHVHEMHIAUSUTTVCVATAVFVDVE $.
  $}

  ${
    $d ph x y z $.
    ordtri2orexmid.1 $e |- A. x e. On A. y e. On ( x e. y \/ y C_ x ) $.
    $( Ordinal trichotomy implies excluded middle.  (Contributed by Jim
       Kingdon, 31-Jul-2019.) $)
    ordtri2orexmid $p |- ( ph \/ -. ph ) $=
      ( vz wn wo c0 csn crab wcel wss cv con0 wral 0elon wceq orbi12d ax-mp wb
      ordtriexmidlem csuc suc0 eqeltrri eleq1 sseq2 eleq2 sseq1 rspc2va mpanl12
      onsuci elsni ordtriexmidlem2 syl snssg biidd elrab3 biimpi sylbir orim12i
      0ex snid orcom mpbi ) AFZAGZAVEGAEHIZJZVGKZVGVHLZGZVFBMZCMZKZVMVLLZGZCNOB
      NOZVKDVHNKVGNKVQVKAEUAHUBVGNUCHPUKUDVPVKVHVMKZVMVHLZGBCVHVGNNVLVHQVNVRVOV
      SVLVHVMUEVLVHVMUFRVMVGQVRVIVSVJVMVGVHUGVMVGVHUHRUIUJSVIVEVJAVIVHHQVEVHHUL
      AEUMUNVJHVHKZAHNKVTVJTPHVHNUOSVTAHVGKVTATHVAVBAAEHVGEMHQAUPUQSURUSUTSVEAV
      CVD $.
  $}

  ${
    $d ph x z $.  $d x y $.
    onsucsssucexmid.1 $e |- A. x e. On A. y e. On
      ( x C_ y -> suc x C_ suc y ) $.
    $( The converse of ~ onsucsssucr implies excluded middle.  (Contributed by
       Mario Carneiro and Jim Kingdon, 29-Jul-2019.) $)
    onsucsssucexmid $p |- ( ph \/ -. ph ) $=
      ( vz wo c0 wcel wceq csuc wss con0 wi cv suceq imbi12d onsuci wa ax-mp wb
      wn crab ssrab2 ordtriexmidlem sseq1 sseq1d suc0 0elon eqeltrri p0ex eleq1
      anbi2d sseq2 sseq2d rspec2 vtocl mpan2 vtoclga word onordi ordelsuc mp2an
      csn mpbir elsucg elsni ordtriexmidlem2 syl 0ex biidd rabsnt orim12i orcom
      mpbi ) AUAZAFZAVOFAEGVCZUBZVQHZVRVQIZFZVPVRVQJZHZWAWCVRJZWBKZVRVQKZWEAEVQ
      UCVRLHZWFWEMZAEUDZBNZVQKZWJJZWBKZMZWHBVRLWJVRIZWKWFWMWEWJVRVQUEWOWLWDWBWJ
      VROUFPWJLHZVQLHZWNGJVQLUGGUHQUIZWPCNZLHZRZWJWSKZWLWSJZKZMZMWPWQRZWNMCVQUJ
      WSVQIZXAXFXEWNXGWTWQWPWSVQLUKULXGXBWKXDWMWSVQWJUMXGXCWBWLWSVQOUNPPXEBCLLD
      UOUPUQURSSWGWBUSWCWETWIWBVQWRQUTVRWBLVAVBVDWGWCWATWIVRVQLVESVNVSVOVTAVSVR
      GIVOVRGVFAEVGVHAAEVQGVIENGIAVJVKVLSVOAVMVN $.
  $}

  ${
    $d ph x y z $.
    $( Lemma for ~ onsucelsucexmid .  (Contributed by Jim Kingdon,
       2-Aug-2019.) $)
    onsucelsucexmidlem1 $p |- (/) e.
        { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) } $=
      ( c0 cv wceq csn cpr crab wcel 0ex prid1 eqid eqeq1 orbi1d elrab mpbir2an
      wo orci ) CBDZCEZAQZBCCFZGZHICUCICCEZAQZCUBJKUDACLRUAUEBCUCTTUDASCCMNOP
      $.

    $( Lemma for ~ onsucelsucexmid .  The set
       ` { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) } ` appears as ` A ` in
       the proof of Theorem 1.3 in [Bauer] p. 483 (see ~ acexmidlema ), and
       similar sets also appear in other proofs that various propositions imply
       excluded middle, for example in ~ ordtriexmidlem .  (Contributed by Jim
       Kingdon, 2-Aug-2019.) $)
    onsucelsucexmidlem $p |- { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) }
        e. On $=
      ( vy vz cv c0 wceq wo csn wcel word wa wi wal eleq2 adantl ex sylib mpbir
      csuc cpr crab con0 wtr simpll wn noel mtbiri pm2.21dd onsucelsucexmidlem1
      wss biimpac elsn syl6eqel adantr elrabi vex elpr mpjaod gen2 dftr2 ssrab2
      ord0 ordsucim mp2b wb df-suc suc0 suceq ax-mp df-pr 3eqtr4i ordeq trssord
      cun mpbi mp3an pp0ex rabex elon ) BEFGAHZBFFIZUAZUBZUCJWDKZWDUDZWDWCUKWCK
      ZWEWFCEZDEZJZWIWDJZLZWHWDJZMZDNCNWNCDWLWIFGZWMWIWBGZWLWOWMWLWOLWJWMWJWKWO
      UEWOWJUFWLWOWJWHFJWHUGWIFWHOUHPUIQWJWPWMMWKWJWPWMWJWPLZWHFWDWQWHWBJZWHFGW
      PWJWRWIWBWHOULCFUMRABUJUNQUOWKWOWPHZWJWKWIWCJWSWABWIWCUPWIFWBDUQURRPUSUTC
      DWDVASWABWCVBFTZTZKZWGFKWTKXBVCFVDWTVDVEXAWCGXBWGVFWBTZWBWBIVOXAWCWBVGWTW
      BGXAXCGVHWTWBVIVJFWBVKVLXAWCVMVJVPWDWCVNVQWDWABWCVRVSVTS $.
  $}

  ${
    $d ph x y z $.
    onsucelsucexmid.1 $e |- A. x e. On A. y e. On
      ( x e. y -> suc x e. suc y ) $.
    $( The converse of ~ onsucelsucr implies excluded middle.  On the other
       hand, if ` y ` is constrained to be a natural number, instead of an
       arbitrary ordinal, then the converse of ~ onsucelsucr does hold, as seen
       at ~ nnsucelsuc .  (Contributed by Jim Kingdon, 2-Aug-2019.) $)
    onsucelsucexmid $p |- ( ph \/ -. ph ) $=
      ( vz c0 csuc cv wceq wo wcel wn con0 wral suceq imbi12d eleq2 ax-mp suc0
      wi csn cpr crab onsucelsucexmidlem1 0elon onsucelsucexmidlem pm3.2i eleq1
      wa eleq1d eleq2d rspc2va mp2an elsuci wb p0ex prid2 eqeltri orbi1d elrab3
      eqeq1 wne cvv 0ex nsuceq0g df-ne mpbi pm2.53 mpi sylbi eqeq1i elsnc mtbir
      mtbi mtbii olc sylibr nsyl orim12i ) FGZEHZFIZAJZEFFUAZUBZUCZKZVTWFIZJZAA
      LZJVTWFGZKZWIFWFKZWLAEUDFMKZWFMKZUIBHZCHZKZWPGZWQGZKZTZCMNBMNWMWLTZWNWOUE
      AEUFUGDXBXCFWQKZVTWTKZTBCFWFMMWPFIZWRXDXAXEWPFWQUHXFWSVTWTWPFOUJPWQWFIZXD
      WMXEWLWQWFFQXGWTWKVTWQWFOUKPULUMRVTWFUNRWGAWHWJWGVTFIZAJZAVTWEKWGXIUOVTWD
      WESFWDUPUQZURWCXIEVTWEWAVTIWBXHAWAVTFVAUSUTRXIXHLZAVTFVBZXKFVCKXLVDFVCVER
      VTFVFVGZXHAVHVIVJWHWDWFKZAWHWDWFIZXNLVTWDWFSVKXOWDWDKZXNXPWDFIZXHXQXMVTWD
      FSVKVNWDFUPVLVMWDWFWDQVOVJAXQAJZXNAXQVPWDWEKXNXRUOXJWCXREWDWEWAWDIWBXQAWA
      WDFVAUSUTRVQVRVSR $.
  $}

  ${
    $d ph x y a b $.
    ordsucunielexmid.1 $e |- A. x e. On A. y e. On
      ( x e. U. y -> suc x e. y ) $.
    $( The converse of ~ sucunielr (where ` B ` is an ordinal) implies excluded
       middle.  (Contributed by Jim Kingdon, 2-Aug-2019.) $)
    ordsucunielexmid $p |- ( ph \/ -. ph ) $=
      ( va vb cv wcel csuc wi con0 wa cuni wb wtr wceq word eleq2d wral imbi12d
      eloni ordtr syl vex unisuc sylib adantl suceloni eleq1 suceq eleq1d unieq
      eleq2 rspc2va mpan2 sylan2 sylbird rgen2a onsucelsucexmid ) AEFEGZFGZHZUT
      IZVAIZHZJEFKUTKHZVAKHZLVBUTVDMZHZVEVGVIVBNVFVGVHVAUTVGVAOZVHVAPVGVAQVJVAU
      AVAUBUCVAFUDUEUFRUGVGVFVDKHZVIVEJZVAUHVFVKLBGZCGZMZHZVMIZVNHZJZCKSBKSVLDV
      SVLUTVOHZVCVNHZJBCUTVDKKVMUTPZVPVTVRWAVMUTVOUIWBVQVCVNVMUTUJUKTVNVDPZVTVI
      WAVEWCVOVHUTVNVDULRVNVDVCUMTUNUOUPUQURUS $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
          IZF Set Theory - add the Axiom of Set Induction
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          The ZF Axiom of Foundation would imply Excluded Middle
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A y z $.  $d ph x y $.
    regexmidlemm.a $e |-
      A = { x e. { (/) , { (/) } } | ( x = { (/) } \/ ( x = (/) /\ ph ) ) } $.
    $( Lemma for ~ regexmid . ` A ` is inhabited.  (Contributed by Jim Kingdon,
       3-Sep-2019.) $)
    regexmidlemm $p |- E. y y e. A $=
      ( c0 csn wcel cv wex cpr wceq wa wo p0ex prid2 eqid orci eqeq1 anbi1d
      orbi12d elrab2 mpbir2an elex2 ax-mp ) FGZDHZCIDHCJUGUFFUFKZHUFUFLZUFFLZAM
      ZNZFUFOPUIUKUFQRBIZUFLZUMFLZAMZNULBUFUHDUNUNUIUPUKUMUFUFSUNUOUJAUMUFFSTUA
      EUBUCCUFDUDUE $.

    $( Lemma for ~ regexmid .  If ` A ` has a minimal element, excluded middle
       follows.  (Contributed by Jim Kingdon, 3-Sep-2019.) $)
    regexmidlem1 $p |- ( E. y ( y e. A /\ A. z ( z e. y -> -. z e. A ) ) ->
        ( ph \/ -. ph ) ) $=
      ( cv wcel wn wi wa wo c0 wceq eqeq1 anbi1d orbi12d elrab2 0ex eleq1 eleq2
      wal csn cpr simprbi snid mpbiri notbid imbi12d spcv syl5com prid1 mpbiran
      pm2.46 sylnbi eqid biantrur sylnibr olcd syl6 orc adantl a1d jaoi syl imp
      exlimiv ) CGZEHZDGZVHHZVJEHZIZJZDUBZKAAIZLZCVIVOVQVIVHMUCZNZVHMNZAKZLZVOV
      QJZVIVHMVRUDZHWBBGZVRNZWEMNZAKZLZWBBVHWDEWEVHNZWFVSWHWAWEVHVROWJWGVTAWEVH
      MOPQFRUEVSWCWAVSVOMEHZIZVQVSMVHHZVOWLVSWMMVRHMSUFVHVRMUAUGVNWMWLJDMSVJMNZ
      VKWMVMWLVJMVHTWNVLWKVJMETUHUIUJUKWLVPAWLMMNZAKZAWKMVRNZWPLZWPIWKMWDHWRMVR
      SULWIWRBMWDEWGWFWQWHWPWEMVROWGWGWOAWEMMOPQFRUMWQWPUNUOWOAMUPUQURUSUTWAVQV
      OAVQVTAVPVAVBVCVDVEVFVG $.
  $}

  ${
    $d ph x y z w $.
    regexmid.1 $e |- ( E. y y e. x ->
      E. y ( y e. x /\ A. z ( z e. y -> -. z e. x ) ) ) $.
    $( The axiom of foundation implies excluded middle.

       By foundation (or regularity), we mean the principle that every
       inhabited set has an element which is minimal (when arranged by
       ` e. ` ).  The statement of foundation here is taken from Metamath Proof
       Explorer's ax-reg, and is identical (modulo one unnecessary quantifier)
       to the statement of foundation in Theorem "Foundation implies instances
       of EM" of [Crosilla], p.  "Set-theoretic principles incompatible with
       intuitionistic logic".

       For this reason, IZF does not adopt foundation as an axiom and instead
       replaces it with ~ ax-setind .  (Contributed by Jim Kingdon,
       3-Sep-2019.) $)
    regexmid $p |- ( ph \/ -. ph ) $=
      ( vw cv c0 csn wceq wa wo wcel wex wel wn wi wal eleq2 exbidv pp0ex rabex
      crab regexmidlemm notbid imbi2d albidv anbi12d imbi12d vtocl regexmidlem1
      cpr eqid mp2b ) CGZFGZHIZJUPHJAKLZFHUQULZUCZMZCNZVADCOZDGZUTMZPZQZDRZKZCN
      ZAAPLAFCUTUTUMZUDCBOZCNZVLVCDBOZPZQZDRZKZCNZQVBVJQBUTURFUSUAUBBGZUTJZVMVB
      VSVJWAVLVACVTUTUOSZTWAVRVICWAVLVAVQVHWBWAVPVGDWAVOVFVCWAVNVEVTUTVDSUEUFUG
      UHTUIEUJAFCDUTVKUKUN $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          Introduce the Axiom of Set Induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d y a $.  $d ph y $.
    $( Axiom of ` e. `-Induction (also known as set induction).  An axiom of
       Intuitionistic Zermelo-Fraenkel set theory.  Axiom 9 of [Crosilla] p.
       "Axioms of CZF and IZF".  This replaces the Axiom of Foundation (also
       called Regularity) from Zermelo-Fraenkel set theory.  (Contributed by
       Jim Kingdon, 19-Oct-2018.) $)
    ax-setind $a |- ( A. a ( A. y e. a [ y / a ] ph -> ph ) -> A. a ph ) $.
  $}

  ${
    $d x y S $.
    $( ` e. `-Induction in terms of membership in a class.  (Contributed by
       Mario Carneiro and Jim Kingdon, 22-Oct-2018.) $)
    setindel $p |- ( A. x ( A. y ( y e. x -> y e. S ) -> x e. S ) ->
        S = _V ) $=
      ( cv wcel wi wal cvv wceq wsb wral clelsb3 ralbii df-ral imbi1i ax-setind
      bitri albii sylbir eqv sylibr ) BDZADZEUBCEZFBGZUCCEZFZAGZUFAGZCHIUHUFABJ
      ZBUCKZUFFZAGUIULUGAUKUEUFUKUDBUCKUEUJUDBUCBACLMUDBUCNQORUFBAPSACTUA $.
  $}

  ${
    $d x y A $.
    $( Set (epsilon) induction.  Theorem 5.22 of [TakeutiZaring] p. 21.
       (Contributed by NM, 17-Sep-2003.) $)
    setind $p |- ( A. x ( x C_ A -> x e. A ) -> A = _V ) $=
      ( vy cv wss wcel wi wal cvv wceq dfss2 imbi1i albii setindel sylbi ) ADZB
      EZPBFZGZAHCDZPFTBFGCHZRGZAHBIJSUBAQUARCPBKLMACBNO $.
  $}

  ${
    $d x A $.
    $( Set (epsilon) induction, stated compactly.  Given as a homework problem
       in 1992 by George Boolos (1940-1996).  (Contributed by NM,
       17-Sep-2003.) $)
    setind2 $p |- ( ~P A C_ A -> A = _V ) $=
      ( vx cpw wss cv wcel wi wal cvv wceq pwss setind sylbi ) ACADBEZADNAFGBHA
      IJBAAKBALM $.
  $}

  ${
    $d A x y $.
    $( No class is a member of itself.  Exercise 6 of [TakeutiZaring] p. 22.
       (Contributed by NM, 7-Aug-1994.)  (Proof rewritten by Mario Carneiro and
       Jim Kingdon, 26-Nov-2018.) $)
    elirr $p |- -. A e. A $=
      ( vx vy wcel cvv csn cdif cv wal wsb wral wi wn neldifsnd eleq1 spcgv mpd
      wceq sylibr albii wa w3a simp1 imbi12d pm2.43b 3ad2ant2 wb eleq2 3ad2ant3
      imbi1d mpbid 3expia mtod vex eldif mpbiran elsn xchbinx ex alrimiv df-ral
      clelsb3 imbi2i bitri imbi1i ax-setind syl pm2.65i ) AADZAEAFZGZDZVIBHZVKD
      ZBIZVLVIVNBCJZCVMKZVNLZBIZVOVICHZVMDZVTVKDZLZCIZVNLZBIVSVIWEBVIWDVNVIWDUA
      ZVMARZMVNWFWGVLWFAENVIWDWGVLVIWDWGUBZVIVLVIWDWGUCWHAVMDZVLLZVIVLLZWDVIWJW
      GWDWIVLWCWJCAVMVTARWAWIWBVLVTAVMOVTAVKOUDPUEUFWGVIWJWKUGWDWGWIVIVLVMAAUHU
      JUIUKQULUMVNVMVJDZWGVNVMEDWLMBUNVMEVJUOUPBAUQURSUSUTVRWEBVQWDVNVQWAVPLZCI
      WDVPCVMVAWMWCCVPWBWACBVKVBVCTVDVETSVNCBVFVGVNVLBAAVMAVKOPQVIAENVH $.
  $}

  $( Epsilon irreflexivity of ordinals: no ordinal class is a member of
     itself.  Theorem 2.2(i) of [BellMachover] p. 469, generalized to classes.
     (Contributed by NM, 2-Jan-1994.) $)
  ordirr $p |- ( Ord A -> -. A e. A ) $=
    ( wcel wn word elirr a1i ) AABCADAEF $.

  ${
    $d x y z $.
    $( The membership relation is irreflexive: no set is a member of itself.
       Theorem 105 of [Suppes] p. 54.  (Contributed by NM, 19-Aug-1993.) $)
    elirrv $p |- -. x e. x $=
      ( cv elirr ) ABC $.
  $}

  ${
    $d A x $.
    $( A class is equal to its successor iff it is a proper class (assuming the
       Axiom of Set Induction).  (Contributed by NM, 9-Jul-2004.) $)
    sucprcreg $p |- ( -. A e. _V <-> suc A = A ) $=
      ( vx cvv wcel wn csuc sucprc cv wi wal elirr nfv eleq1 ceqsalg mtbiri csn
      wceq elsn wss syl5bir wo olc cun elun wb df-suc eqeq1i sseq1 sylbi mpbiri
      ssid sseld syl5 alrimiv nsyl3 impbii ) ACDZEAFZAQZAGUQBHZAQZUTADZIZBJZUSU
      QVDAADZAKVBVEBACVEBLUTAAMNOUSVCBVAUTAPZDZUSVBBARVGVBVGUAZUSVBVGVBUBVHUTAV
      FUCZDUSVBUTAVFUDUSVIAUTUSVIASZAASZAUKUSVIAQVJVKUEURVIAAUFUGVIAAUHUIUJULTU
      MTUNUOUP $.
  $}

  $( The Russell class is equal to the universe ` _V ` .  Exercise 5 of
     [TakeutiZaring] p. 22.  (Contributed by Alan Sare, 4-Oct-2008.) $)
  ruv $p |- { x | x e/ x } = _V $=
    ( cvv weq cab cv wnel df-v equid elirrv nelir 2th abbii eqtr2i ) BAACZADAEZ
    OFZADAGNPANPAHOOAIJKLM $.

  $( Alternate proof of Russell's Paradox ~ ru , simplified using (indirectly)
     the Axiom of Set Induction ~ ax-setind .  (Contributed by Alan Sare,
     4-Oct-2008.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ruALT $p |- { x | x e/ x } e/ _V $=
    ( cv wnel cab cvv wcel wn vprc df-nel mpbir wceq wb ruv neleq1 ax-mp ) ABZP
    CADZECZEECZSEEFGHEEIJQEKRSLAMQEENOJ $.

  $( No set contains all ordinal numbers.  Proposition 7.13 of [TakeutiZaring]
     p. 38.  This is also known as the Burali-Forti paradox (remark in
     [Enderton] p. 194).  In 1897, Cesare Burali-Forti noticed that since the
     "set" of all ordinal numbers is an ordinal class ( ~ ordon ), it must be
     both an element of the set of all ordinal numbers yet greater than every
     such element.  ZF set theory resolves this paradox by not allowing the
     class of all ordinal numbers to be a set (so instead it is a proper
     class).  Here we prove the denial of its existence.  (Contributed by NM,
     18-May-1994.) $)
  onprc $p |- -. On e. _V $=
    ( con0 cvv wcel word wn ordon ordirr ax-mp elong mpbiri mto ) ABCZAACZADZME
    FAGHLMNFABIJK $.

  $( The class of all ordinal numbers is its own successor.  (Contributed by
     NM, 12-Sep-2003.) $)
  sucon $p |- suc On = On $=
    ( con0 cvv wcel wn csuc wceq onprc sucprc ax-mp ) ABCDAEAFGAHI $.

  ${
    $d A x y $.  $d B x y $.
    $( No class has 2-cycle membership loops.  Theorem 7X(b) of [Enderton]
       p. 206.  (Contributed by NM, 16-Oct-1996.)  (Proof rewritten by Mario
       Carneiro and Jim Kingdon, 27-Nov-2018.) $)
    en2lp $p |- -. ( A e. B /\ B e. A ) $=
      ( vx vy wcel wa cvv cv wal wi wceq wn elex eldif pm3.4 eleq1 spcgv adantr
      syl mpd cpr cdif wsb wral wo prid2g sylbi com12 mt2d ad2antlr w3a imbi12d
      simp1r pm2.43b 3ad2ant2 wb eleq2 imbi1d 3ad2ant3 mpbid 3expia mtod prid1g
      simp1l sylanbrc vex mpbiran elpr xchbinx sylibr ex alrimiv df-ral clelsb3
      ioran imbi2i albii bitri imbi1i ax-setind pm2.65i ) ABEZBAEZFZAGABUAZUBZE
      ZWDCHZWFEZCIZWGWDWICDUCZDWHUDZWIJZCIZWJWDDHZWHEZWOWFEZJZDIZWIJZCIWNWDWTCW
      DWSWIWDWSFZWHAKZWHBKZUEZLZWIXAXBLXCLXEXAXBBWFEZWCXFLZWBWSWCBGEZXGBAMXHXFB
      WEEZABGUFXFXHXILZXFXHXJFXHXJJBGWENXHXJOUGUHUISUJWDWSXBXFWDWSXBUKZWCXFWBWC
      WSXBUMXKBWHEZXFJZWCXFJZWSWDXMXBWSXLXFWRXMDBWHWOBKWPXLWQXFWOBWHPWOBWFPULQU
      NUOXBWDXMXNUPWSXBXLWCXFWHABUQURUSUTTVAVBXAXCWGWDWGLZWSWBXOWCWBAGEZXOABMXP
      WGAWEEZABGVCWGXPXQLZWGXPXRFXPXRJAGWENXPXROUGUHUISRZRWDWSXCWGWDWSXCUKZWBWG
      WBWCWSXCVDXTAWHEZWGJZWBWGJZWSWDYBXCWSYAWGWRYBDAWHWOAKWPYAWQWGWOAWHPWOAWFP
      ULQUNUOXCWDYBYCUPWSXCYAWBWGWHBAUQURUSUTTVAVBXBXCVOVEWIWHWEEZXDWIWHGEYDLCV
      FZWHGWENVGWHABYEVHVIVJVKVLWMWTCWLWSWIWLWPWKJZDIWSWKDWHVMYFWRDWKWQWPDCWFVN
      VPVQVRVSVQVJWIDCVTSWBWJWGJWCWIWGCABWHAWFPQRTXSWA $.
  $}

  ${
    preleq.1 $e |- A e. _V $.
    preleq.2 $e |- B e. _V $.
    preleq.3 $e |- C e. _V $.
    preleq.4 $e |- D e. _V $.
    $( Equality of two unordered pairs when one member of each pair contains
       the other member.  (Contributed by NM, 16-Oct-1996.) $)
    preleq $p |- ( ( ( A e. B /\ C e. D ) /\ { A , B } = { C , D } ) ->
                   ( A = C /\ B = D ) ) $=
      ( wcel wa cpr wceq wn en2lp eleq12 anbi1d mtbiri con2i adantr wo preq12b
      biimpi adantl ecased ) ABIZCDIZJZABKCDKLZJACLBDLJZADLBCLJZUGUJMUHUJUGUJUG
      DCIZUFJDCNUJUEUKUFADBCOPQRSUHUIUJTZUGUHULABCDEFGHUAUBUCUD $.

    $( Theorem for alternate representation of ordered pairs, requiring the
       Axiom of Set Induction ~ ax-setind (via the ~ preleq step).  See ~ df-op
       for a description of other ordered pair representations.  Exercise 34 of
       [Enderton] p. 207.  (Contributed by NM, 16-Oct-1996.) $)
    opthreg $p |- ( { A , { A , B } } = { C , { C , D } } <->
                   ( A = C /\ B = D ) ) $=
      ( cpr wceq wa wcel prid1 cvv prexgOLD mp2an preleq mpanl12 preq1 eqeq1d
      preqr2 syl6bi imdistani syl adantr preq12 preq2d eqtrd impbii ) AABIZIZCC
      DIZIZJZACJZBDJZKZUNUOUJULJZKZUQAUJLCULLUNUSABEMCDGMAUJCULEANLBNLUJNLEFABO
      PGCNLDNLULNLGHCDOPQRUOURUPUOURCBIZULJUPUOUJUTULACBSTBDCFHUAUBUCUDUQUKCUJI
      ZUMUOUKVAJUPACUJSUEUQUJULCABCDUFUGUHUI $.
  $}

  $( The successor operation behaves like a one-to-one function (assuming the
     Axiom of Set Induction).  Similar to Exercise 35 of [Enderton] p. 208 and
     its converse.  (Contributed by NM, 25-Oct-2003.) $)
  suc11g $p |- ( ( A e. V /\ B e. W ) -> ( suc A = suc B <-> A = B ) ) $=
    ( wcel wa csuc wceq w3a wn en2lp wo sucidg syl5ibrcom elsucg sylibd 3adant1
    eleq2 imp syl5ibcom 3adant2 jca eqcom orbi2i anbi1i sylib sylibr ord 3expia
    ordir mpi suceq impbid1 ) ACEZBDEZFAGZBGZHZABHZUNUOURUSUNUOURIZBAEZABEZFZJU
    SBAKUTVCUSUTVAUSLZVBUSLZFZVCUSLUTVABAHZLZVEFVFUTVHVEUOURVHUNUOURVHUOURBUPEZ
    VHUOVIURBUQEBDMUPUQBRNBADOPSQUNURVEUOUNURVEUNURAUQEZVEUNAUPEURVJACMUPUQARTA
    BCOPSUAUBVHVDVEVGUSVABAUCUDUEUFVAVBUSUJUGUHUKUIABULUM $.

  $( The successor operation behaves like a one-to-one function.  Compare
     Exercise 16 of [Enderton] p. 194.  (Contributed by NM, 3-Sep-2003.) $)
  suc11 $p |- ( ( A e. On /\ B e. On ) -> ( suc A = suc B <-> A = B ) ) $=
    ( con0 suc11g ) ABCCD $.

  ${
    $d x y $.
    $( At least two sets exist (or in terms of first-order logic, the universe
       of discourse has two or more objects).  Although ~ dtruarb can also be
       summarized as "at least two sets exist", the difference is that
       ~ dtruarb shows the existence of two sets which are not equal to each
       other, but this theorem says that given a specific ` y ` , we can
       construct a set ` x ` which does not equal it.  (Contributed by Jim
       Kingdon, 29-Dec-2018.) $)
    dtruex $p |- E. x -. x = y $=
      ( cv wceq wn wex csn cvv wcel snexgOLD ax-mp isset mpbi elirr ssnid eleq2
      vex wa mpbiri mto eqtr ancom mtbi imnani eximi eqcom notbii exbii ) BCZAC
      ZDZEZAFZUJUIDZEZAFUJUIGZDZAFZUMUPHIZURUIHIUSBQUIJKAUPLMUQULAUQUKUKUQRZUQU
      KRUTUIUPDZVAUIUIIZUINVAVBUIUPIBOUIUPUIPSTUIUJUPUATUKUQUBUCUDUEKULUOAUKUNU
      IUJUFUGUHM $.
  $}

  ${
    $d x y $.
    $( At least two sets exist (or in terms of first-order logic, the universe
       of discourse has two or more objects).  If we assumed the law of the
       excluded middle this would be equivalent to ~ dtruex .  (Contributed by
       Jim Kingdon, 29-Dec-2018.) $)
    dtru $p |- -. A. x x = y $=
      ( weq wn wex wal dtruex exnalim ax-mp ) ABCZDAEJAFDABGJAHI $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Existential uniqueness implies there is a value for which the wff
       argument is false.  (Contributed by Jim Kingdon, 29-Dec-2018.) $)
    eunex $p |- ( E! x ph -> E. x -. ph ) $=
      ( vy weu wex cv wceq wi wal wa wn nfv eu3 dtruex nfa1 con3d eximd exlimiv
      sp mpi adantl sylbi ) ABDABEZABFCFGZHZBIZCEZJAKZBEZABCACLMUGUIUCUFUICUFUD
      KZBEUIBCNUFUJUHBUEBOUFAUDUEBSPQTRUAUB $.
  $}

  ${
    $d x y z w ph $.
    ordsoexmid.1 $e |- _E Or On $.
    $( Weak linearity of ordinals implies the law of the excluded middle (that
       is, decidability of an arbitrary proposition).  (Contributed by Mario
       Carneiro and Jim Kingdon, 29-Jan-2019.) $)
    ordsoexmid $p |- ( ph \/ -. ph ) $=
      ( vw vx vy vz wo c0 wcel con0 wi cv w3a wceq eleq1 imbi12d eleq2 cep wral
      wbr wn csn crab csuc ordtriexmidlem elexi sucid onsuci suc0 0elon 3anbi1d
      eqeltrri orbi1d 3anbi2d orbi2d p0ex 3anbi3d orbi12d imbi2d wpo wor df-iso
      wa mpbi simpri epel orbi12i imbi12i 2ralbii ralbii rspec3 ordtriexmidlem2
      vtocl mp3an elsnc sylbi elirr elrabi mto elsuci ord mpi 0ex rabsnt eqcoms
      biidd syl orim12i mp2b orcom ) AUAZAGZAWKGACHUBZUCZWNUDZIZWNWMIZWMWOIZGZW
      LWNWNJACUEZUFZUGWNJIZWOJIZWMJIZWPWSKZWTWNWTUHZHUDWMJUIHUJUHULDLZJIZXCXDMZ
      XGWOIZXGWMIZWRGZKZKZXBXCXDMZXEKDWNXAXGWNNZXIXOXMXEXPXHXBXCXDXGWNJOUKXPXJW
      PXLWSXGWNWOOXPXKWQWRXGWNWMOUMPPXHELZJIZXDMZXGXQIZXKWMXQIZGZKZKZXNEWOWOJXF
      UFXQWONZXSXIYCXMYEXRXCXHXDXQWOJOUNYEXTXJYBXLXQWOXGQYEYAWRXKXQWOWMQUOPPXHX
      RFLZJIZMZXTXGYFIZYFXQIZGZKZKYDFWMUPYFWMNZYHXSYLYCYMYGXDXHXRYFWMJOUQYMYKYB
      XTYMYIXKYJYAYFWMXGQYFWMXQOURUSPYLDEFJJJXGXQRTZXGYFRTZYFXQRTZGZKZFJSEJSZDJ
      SZYLFJSEJSZDJSJRUTZYTJRVAUUBYTVCBDEFJRVBVDVEYSUUADJYRYLEFJJYNXTYQYKDEVFYO
      YIYPYJDFVFFEVFVGVHVIVJVDVKVMVMVMVNWQWKWRAWQWNHNWKWNHXAVOACVLVPWRWMWNNZAWR
      WMWNIZUAUUCUUDWMWMIWMVQACWMWMVRVSWRUUDUUCWMWNVTWAWBAWNWMAACWMHWCCLHNAWFWD
      WEWGWHWIWKAWJVD $.
  $}

  ${
    $d A x y $.
    $( The successor of an ordinal class is ordinal.  (Contributed by NM,
       3-Apr-1995.)  (Constructive proof by Mario Carneiro and Jim Kingdon,
       20-Jul-2019.) $)
    ordsuc $p |- ( Ord A <-> Ord suc A ) $=
      ( vy vx word csuc ordsucim wtr cv wcel wa wi wal wceq en2lp eleq1 biimpac
      wn anim2i expr wss mtoi adantl elelsuc adantr ordelss sylan2 pm2.43d impr
      wo sseld elsuci syl ecased ancom2s alrimivv sylibr sssucid trssord mp3an2
      ex dftr2 mpancom impbii ) ADZAEZDZAFAGZVFVDVFBHZCHZIZVIAIZJZVHAIZKZCLBLVG
      VFVNBCVFVLVMVFVKVJVMVFVKVJJZJZVMVHAMZVOVQQVFVOVQVKAVIIZJZVIANVKVJVQVSVJVQ
      JVRVKVQVJVRVHAVIOPRSUAUBVPVHVEIZVMVQUIVFVKVJVTVFVKJVJVTVFVKVJVJVTKVPVIVEV
      HVOVFVIVEIZVIVETVKWAVJVIAUCUDVEVIUEUFUJSUGUHVHAUKULUMUNUTUOBCAVAUPVGAVETV
      FVDAUQAVEURUSVBVC $.
  $}

  $( A successor is not a limit ordinal.  (Contributed by NM, 25-Mar-1995.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  nlimsucg $p |- ( A e. V -> -. Lim suc A ) $=
    ( wcel csuc wlim wn word cuni wceq wa limord ordsuc sylibr limuni jca ordtr
    wtr unisucg biimpa sylan2 eqeq2d ordirr eleq2 notbid syl5ibrcom sucidg syl6
    wi con3i adantl sylbid expimpd syl5 con2d pm2.43i ) ABCZADZEZFUPURUPURAGZUQ
    UQHZIZJUPUPFZURUSVAURUQGUSUQKALMUQNOUPUSVAVBUPUSJZVAUQAIZVBVCUTAUQUSUPAQZUT
    AIZAPUPVEVFABRSTUAUSVDVBUHUPUSVDAUQCZFZVBUSVHVDAACZFAUBVDVGVIUQAAUCUDUEUPVG
    ABUFUIUGUJUKULUMUNUO $.

  ${
    $d x A $.
    $( The collection of ordinals in the power class of an ordinal is a
       superset of its successor.

       We can think of ` ( ~P A i^i On ) ` as another possible definition of
       successor, which would be equivalent to ~ df-suc given excluded middle.
       It is an ordinal, and has some successor-like properties.  For example,
       if ` A e. On ` then both ` U. suc A = A ` ( ~ onunisuci ) and
       ` U. { x e. On | x C_ A } = A ` ( ~ onuniss2 ).

       Constructively ` ( ~P A i^i On ) ` and ` suc A ` cannot be shown to be
       equivalent (as proved at ~ ordpwsucexmid ).  (Contributed by Jim
       Kingdon, 21-Jul-2019.) $)
    ordpwsucss $p |- ( Ord A -> suc A C_ ( ~P A i^i On ) ) $=
      ( vx word csuc cpw con0 cin cv wcel wss wa wi ordsuc ordelon ex sylbi wtr
      ordtr trsucss syl jcad elin selpw anbi2ci bitri syl6ibr ssrdv ) ACZBADZAE
      ZFGZUHBHZUIIZULFIZULAJZKZULUKIZUHUMUNUOUHUICZUMUNLAMURUMUNUIULNOPUHAQUMUO
      LARAULSTUAUQULUJIZUNKUPULUJFUBUSUOUNBAUCUDUEUFUG $.
  $}

  $( No member of a set of ordinal numbers belongs to its minimum.
     (Contributed by NM, 2-Feb-1997.)  (Constructive proof by Mario Carneiro
     and Jim Kingdon, 21-Jul-2019.) $)
  onnmin $p |- ( ( A C_ On /\ B e. A ) -> -. B e. |^| A ) $=
    ( wcel cint wn con0 wss intss1 elirr ssel mtoi syl adantl ) BACZBADZCZEZAFG
    NOBGZQBAHRPBBCBIOBBJKLM $.

  $( Relationship between subset and elementhood.  In the context of ordinals
     this can be seen as an ordering law.  (Contributed by Jim Kingdon,
     22-Jul-2019.) $)
  ssnel $p |- ( A C_ B -> -. B e. A ) $=
    ( wss wcel elirr ssel mtoi ) ABCBADBBDBEABBFG $.

  ${
    $d ph x z $.
    ordpwsucexmid.1 $e |- A. x e. On suc x = ( ~P x i^i On ) $.
    $( The subset in ~ ordpwsucss cannot be equality.  That is, strengthening
       it to equality implies excluded middle.  (Contributed by Jim Kingdon,
       30-Jul-2019.) $)
    ordpwsucexmid $p |- ( ph \/ -. ph ) $=
      ( vz c0 csn crab wcel wceq wo wn csuc cpw con0 cin 0elpw 0elon elin ax-mp
      cv mpbir2an ordtriexmidlem pweq ineq1d eqeq12d vtoclri eleqtrri elsuci wb
      suceq 0ex snid biidd elrab3 biimpi ordtriexmidlem2 eqcoms orim12i ) EADEF
      ZGZHZEUTIZJZAAKZJEUTLZHVCEUTMZNOZVEEVGHEVFHENHUTPQEVFNRUAUTNHVEVGIZADUBBT
      ZLZVIMZNOZIVHBUTNVIUTIZVJVEVLVGVIUTUJVMVKVFNVIUTUCUDUECUFSUGEUTUHSVAAVBVD
      VAAEUSHVAAUIEUKULAADEUSDTEIAUMUNSUOVDUTEADUPUQURS $.
  $}

  $( An ordinal number is a proper subset of its successor.  (Contributed by
     Stefan O'Rear, 18-Nov-2014.) $)
  onpsssuc $p |- ( A e. On -> A C. suc A ) $=
    ( con0 wcel csuc wceq wn wa wpss elirr sucidg eleq2 syl5ibrcom mtoi sssucid
    wss jctil dfpss2 sylibr ) ABCZAADZOZATEZFZGATHSUCUASUBAACZAISUDUBATCABJATAK
    LMANPATQR $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          Transfinite induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.
    $( The Principle of Transfinite Induction.  Theorem 7.17 of [TakeutiZaring]
       p. 39.  This principle states that if ` A ` is a class of ordinal
       numbers with the property that every ordinal number included in ` A `
       also belongs to ` A ` , then every ordinal number is in ` A ` .

       (Contributed by NM, 18-Feb-2004.) $)
    tfi $p |- ( ( A C_ On /\ A. x e. On ( x C_ A -> x e. A ) ) -> A = On ) $=
      ( vy con0 wss cv wcel wi wral wa wal df-ral albii bitri imbi1i spi imim1i
      dfss2 impexp wsb wceq imdi imbi2i 19.21v bitr4i simpl wtr tron dftr2 mpbi
      bi2.04 3imtr3i alimi sylbi adantl clelsb3 imbi12i ralbii ax-setind sylbir
      jca sbim sylibr syl eqss biimpri syldan ) BDEZAFZBEZVIBGZHZADIZDBEZBDUAZV
      HVMJCFZVIGZVPDGZVPBGZHZHZCKZVIDGZVKHZHZAKZVNVMWFVHVMWCVQVSHZHZCKZWDHZAKZW
      FVMWCVJHZWDHZAKZWKVMWCVLHZAKWNVLADLWOWMAWCVJVKUBMNWMWJAWLWIWDWLWCWGCKZHWI
      VJWPWCCVIBRUCWCWGCUDUEOMNWJWEAWBWIWDWAWHCVQVRJZVSHVQWCJZVSHZWAWHWRWQVSWRV
      QVRVQWCUFWRVRHZAWTAKZCDUGXACKUHCADUIUJPPVAQVQVRVSSWSVQWCVSHHWHVQWCVSSVQWC
      VSUKNULUMQUMUNUOWFWDAKZVNWFWDACTZCVIIZWDHZAKXBXEWEAXDWBWDXDVTCVIIWBXCVTCV
      IXCWCACTZVKACTZHVTWCVKACVBXFVRXGVSCADUPCABUPUQNURVTCVILNOMWDCAUSUTADBRVCV
      DVOVHVNJBDVEVFVG $.
  $}

  ${
    $d w y z ph $.  $d w x y z $.
    tfis.1 $e |- ( x e. On -> ( A. y e. x [ y / x ] ph -> ph ) ) $.
    $( Transfinite Induction Schema.  If all ordinal numbers less than a given
       number ` x ` have a property (induction hypothesis), then all ordinal
       numbers have the property (conclusion).  Exercise 25 of [Enderton]
       p. 200.  (Contributed by NM, 1-Aug-1994.)  (Revised by Mario Carneiro,
       20-Nov-2016.) $)
    tfis $p |- ( x e. On -> ph ) $=
      ( vz vw cv con0 wcel crab wss wi wral wceq ssrab2 wa nfcv syl5bbr simprbi
      wsb nfrab1 nfss nfcri dfss3 sseq1 rabid eleq1 imbi12d sbequ nfs1v sbequ12
      nfim nfv cbvrab elrab2 ralimi syl5 anc2li vtoclgaf rgen tfi mp2an rabeq2i
      eqcomi ) BGZHIZVFAABHHABHJZHVGHKEGZVGKZVHVGIZLZEHMVGHNABHOVKEHCGZVGIZCVEM
      ZVFAPZLVKBVHHBVHQZVIVJBBVHVGVPABHUAZUBBEVGVQUCULVEVHNZVNVIVOVJVNVEVGKVRVI
      CVEVGUDVEVHVGUERVOVEVGIVRVJABHUFVEVHVGUGRUHVFVNAVNABCTZCVEMVFAVMVSCVEVMVL
      HIVSABFTZVSFVLHVGAFCBUIAVTBFHBHQFHQAFUMABFUJABFUKUNUOSUPDUQURUSUTEVGVAVBV
      DVCS $.
  $}

  ${
    $d y ph $.  $d x y $.
    tfis2f.1 $e |- F/ x ps $.
    tfis2f.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    tfis2f.3 $e |- ( x e. On -> ( A. y e. x ps -> ph ) ) $.
    $( Transfinite Induction Schema, using implicit substitution.  (Contributed
       by NM, 18-Aug-1994.) $)
    tfis2f $p |- ( x e. On -> ph ) $=
      ( wsb cv wral con0 wcel sbie ralbii syl5bi tfis ) ACDACDHZDCIZJBDRJRKLAQB
      DRABCDEFMNGOP $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x y $.
    tfis2.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    tfis2.2 $e |- ( x e. On -> ( A. y e. x ps -> ph ) ) $.
    $( Transfinite Induction Schema, using implicit substitution.  (Contributed
       by NM, 18-Aug-1994.) $)
    tfis2 $p |- ( x e. On -> ph ) $=
      ( nfv tfis2f ) ABCDBCGEFH $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x ch $.  $d x A $.  $d x y $.
    tfis3.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    tfis3.2 $e |- ( x = A -> ( ph <-> ch ) ) $.
    tfis3.3 $e |- ( x e. On -> ( A. y e. x ps -> ph ) ) $.
    $( Transfinite Induction Schema, using implicit substitution.  (Contributed
       by NM, 4-Nov-2003.) $)
    tfis3 $p |- ( A e. On -> ch ) $=
      ( con0 tfis2 vtoclga ) ACDFJHABDEGIKL $.
  $}

  ${
    $d x v w y z T $.  $d v w y z R $.  $d x v w z S $.  $d x v w z ch $.
    $d x v w y z ph $.  $d w y z ps $.  $d x A $.  $d x th $.
    tfisi.a $e |- ( ph -> A e. V ) $.
    tfisi.b $e |- ( ph -> T e. On ) $.
    tfisi.c $e |- ( ( ph /\ ( R e. On /\ R C_ T ) /\
          A. y ( S e. R -> ch ) ) -> ps ) $.
    tfisi.d $e |- ( x = y -> ( ps <-> ch ) ) $.
    tfisi.e $e |- ( x = A -> ( ps <-> th ) ) $.
    tfisi.f $e |- ( x = y -> R = S ) $.
    tfisi.g $e |- ( x = A -> R = T ) $.
    $( A transfinite induction scheme in "implicit" form where the induction is
       done on an object derived from the object of interest.  (Contributed by
       Stefan O'Rear, 24-Aug-2015.) $)
    tfisi $p |- ( ph -> th ) $=
      ( vv wi vz vw wss ssid wceq wa eqid wcel wal con0 weq eqeq2 anbi2d imbi1d
      cv sseq1 imbi12d albidv eqeq1d imbi2d cbvalv syl6bb wral w3a simp3l simp2
      simp1l eqeltrd simp3r eqsstrd csb wsb simpl3l simpl1l simpr simpl2 onelss
      eleqtrd simpl3r sstrd simpl1r rspcva syl2anc eqidd csbhypf eqcomd equcoms
      sylc nfcv wb nfv sbhypf bicomd spv mp2and ex alrimiv sylib syl121anc 3exp
      eleq1d tfis3 syl spcgv mpi expd pm2.43i ) AJJUCZDJUDAXHDTAAXHDAJJUEZAXHUF
      ZDTZJUGAGKUHHJUEZXJBTZTZEUIZXIXKTZLAJUJUHXOMHUAUOZUEZAXQJUCZUFZBTZTZEUIZI
      UBUOZUEZAYDJUCZUFZCTZTZFUIZXOUAUBJUAUBUKZYCHYDUEZYGBTZTZEUIYJYKYBYNEYKXRY
      LYAYMXQYDHULYKXTYGBYKXSYFAXQYDJUPUMUNUQURYNYIEFEFUKZYLYEYMYHYOHIYDQUSYOBC
      YGOUTUQVAVBXQJUEZYBXNEYPXRXLYAXMXQJHULYPXTXJBYPXSXHAXQJJUPUMUNUQURXQUJUHZ
      YJUBXQVCZYCYQYRUFZYBEYSXRXTBYSXRXTVDZAHUJUHHJUCIHUHZCTZFUIZBYSXRAXSVEYTHX
      QUJYSXRXTVFZYQYRXRXTVGVHYTHXQJUUDYSXRAXSVIVJYTESUOHVKZHUHZBESVLZTZSUIUUCY
      TUUHSYTUUFUUGYTUUFUFZAUUEJUCZUUGAXSYSXRUUFVMUUIUUEXQJUUIYQUUEXQUHZUUEXQUC
      YQYRXRXTUUFVNUUIUUEHXQYTUUFVOYSXRXTUUFVPVRZXQUUEVQWHAXSYSXRUUFVSVTUUIIUUE
      UEZAUUJUFZCTZTZFUIZUUEUUEUEZUUNUUGTZUUIUUKYRUUQUULYQYRXRXTUUFWAYJUUQUBUUE
      XQYDUUEUEZYIUUPFUUTYEUUMYHUUOYDUUEIULUUTYGUUNCUUTYFUUJAYDUUEJUPUMUNUQURWB
      WCUUIUUEWDUUPUURUUSTFSFSUKZUUMUURUUOUUSUVAIUUEUUEUUMSFSFUKZUUEIESFUOZHIEU
      VCWIEIWIQWEZWFWGUSUVACUUGUUNCUUGWJSFUVBUUGCBCESUVCCEWKOWLZWMWGUTUQWNWHWOW
      PWQUUHUUBSFUVBUUFUUAUUGCUVBUUEIHUVDXAUVEUQVAWRNWSWTWQWPXBXCXNXPEGKEUOGUEZ
      XLXIXMXKUVFHJJRUSUVFBDXJPUTUQXDWHXEXFXGXE $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
             IZF Set Theory - add the Axiom of Infinity
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Introduce the Axiom of Infinity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( Axiom of Infinity.  Axiom 5 of [Crosilla] p.  "Axioms of CZF and IZF".
       (Contributed by Jim Kingdon, 16-Nov-2018.) $)
    ax-iinf $a |- E. x ( (/) e. x /\ A. y ( y e. x -> suc y e. x ) ) $.
  $}

  ${
    $d x y z w $.
    $( A standard version of the Axiom of Infinity, using definitions to
       abbreviate.  Axiom Inf of [BellMachover] p. 472.  (Contributed by NM,
       30-Aug-1993.) $)
    zfinf2 $p |- E. x ( (/) e. x /\ A. y e. x suc y e. x ) $=
      ( c0 cv wcel csuc wral wa wex wi wal ax-iinf df-ral anbi2i exbii mpbir )
      CADZEZBDZFQEZBQGZHZAIRSQETJBKZHZAIABLUBUDAUAUCRTBQMNOP $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        The natural numbers (i.e. finite ordinals)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new symbol. $)
  $c _om $. $( Greek letter omega $)

  $( Extend class notation to include the class of natural numbers. $)
  com $a class _om $.

  ${
    $d x y z $.
    $( Define the class of natural numbers as the smallest inductive set, which
       is valid provided we assume the Axiom of Infinity.  Definition 6.3 of
       [Eisenberg] p. 82.

       _Note_: the natural numbers ` _om ` are a subset of the ordinal numbers
       ~ df-on .  Later, when we define complex numbers, we will be able to
       also define a subset of the complex numbers with analogous properties
       and operations, but they will be different sets.  (Contributed by NM,
       6-Aug-1994.)  Use its alias ~ dfom3 instead for naming consistency with
       set.mm.  (New usage is discouraged.) $)
    df-iom $a |- _om = |^| { x | ( (/) e. x /\ A. y e. x suc y e. x ) } $.
  $}

  ${
    $d x y z $.
    $( Alias for ~ df-iom .  Use it instead of ~ df-iom for naming consistency
       with set.mm.  (Contributed by NM, 6-Aug-1994.) $)
    dfom3 $p |- _om = |^| { x | ( (/) e. x /\ A. y e. x suc y e. x ) } $=
      ( df-iom ) ABC $.
  $}

  ${
    $d x y $.
    $( The existence of omega (the class of natural numbers).  Axiom 7 of
       [TakeutiZaring] p. 43.  (Contributed by NM, 6-Aug-1994.) $)
    omex $p |- _om e. _V $=
      ( vy vx com cvv wcel c0 cv csuc wral wa cint zfinf2 intexabim ax-mp dfom3
      cab wex eleq1i mpbir ) CDEFAGZEBGHTEBTIJZAPKZDEZUAAQUCABLUAAMNCUBDABORS
      $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Peano's postulates
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Zero is a natural number.  One of Peano's five postulates for
       arithmetic.  Proposition 7.30(1) of [TakeutiZaring] p. 42.  (Contributed
       by NM, 15-May-1994.) $)
    peano1 $p |- (/) e. _om $=
      ( vy vx vz c0 cv wcel csuc wral wa cab com wi 0ex elint wsb df-clab simpl
      cint sbimi clelsb4 sylib sylbi mpgbir dfom3 eleqtrri ) DDAEZFZBEGUFFBUFHZ
      IZAJZRZKDUKFCEZUJFZDULFZLCCDUJMNUMUIACOZUNUICAPUOUGACOUNUIUGACUGUHQSCADTU
      AUBUCABUDUE $.
  $}

  ${
    $d x y z A $.
    $( The successor of any natural number is a natural number.  One of Peano's
       five postulates for arithmetic.  Proposition 7.30(2) of [TakeutiZaring]
       p. 42.  (Contributed by NM, 3-Sep-2003.) $)
    peano2 $p |- ( A e. _om -> suc A e. _om ) $=
      ( vy vx vz cvv wcel com csuc cv wa wi wb imbi12d adantl wsb wal sylib nfv
      wral nfan elex c0 cint simpl wceq eleq1 suceq eleq1d df-clab simpr df-ral
      cab sbimi sbim elsb4 clelsb4 imbi12i bitri sbalv sylbi 19.21bi nfra1 nfvd
      nfsab nfcvd vtocldf ralrimiva ralim elintg sucexg syl syl5ibr mpd 3imtr4g
      dfom3 eleq2i mpcom ) AEFZAGFZAHZGFZAGUAVRAUBBIZFZCIZHZWBFZCWBSZJZBULZUCZF
      ZVTWJFZVSWAVRADIZFZVTWMFZKZDWISZWKWLKZVRWPDWIVRWMWIFZJZWDWMFZWEWMFZKZWPCA
      EVRWSUDWDAUEZXCWPLWTXDXAWNXBWOWDAWMUFXDWEVTWMWDAUGUHMNWSXCVRWSXCCWSWHBDOZ
      XCCPZWHDBUIXEWDWBFZWFKZCPZBDOXFWHXIBDWHWGXIWCWGUJWFCWBUKQUMXHXCBDCXHBDOXG
      BDOZWFBDOZKXCXGWFBDUNXJXAXKXBDBCUODBWEUPUQURUSQUTVANVRWSCVRCRWHCBDWCWGCWC
      CRWFCWBVBTVDTWTCAVEWTWPCVCVFVGWQWRVRWNDWISZWODWISZKWNWODWIVHVRWKXLWLXMDAW
      IEVIVRVTEFWLXMLAEVJDVTWIEVIVKMVLVMGWJABCVOZVPGWJVTXNVPVNVQ $.
  $}

  $( The successor of any natural number is not zero.  One of Peano's five
     postulates for arithmetic.  Proposition 7.30(3) of [TakeutiZaring] p. 42.
     (Contributed by NM, 3-Sep-2003.) $)
  peano3 $p |- ( A e. _om -> suc A =/= (/) ) $=
    ( com nsuceq0g ) ABC $.

  $( Two natural numbers are equal iff their successors are equal, i.e. the
     successor function is one-to-one.  One of Peano's five postulates for
     arithmetic.  Proposition 7.30(4) of [TakeutiZaring] p. 43.  (Contributed
     by NM, 3-Sep-2003.) $)
  peano4 $p |- ( ( A e. _om /\ B e. _om ) -> ( suc A = suc B <-> A = B ) ) $=
    ( com suc11g ) ABCCD $.

  ${
    $d x y A $.
    $( The induction postulate: any class containing zero and closed under the
       successor operation contains all natural numbers.  One of Peano's five
       postulates for arithmetic.  Proposition 7.30(5) of [TakeutiZaring]
       p. 43.  The more traditional statement of mathematical induction as a
       theorem schema, with a basis and an induction step, is derived from this
       theorem as theorem ~ findes .  (Contributed by NM, 18-Feb-2004.) $)
    peano5 $p |- ( ( (/) e. A /\
                 A. x e. _om ( x e. A -> suc x e. A ) ) -> _om C_ A ) $=
      ( vy c0 wcel cv csuc wi com wral wa cin wss cint elin df-ral sylibr eleq2
      cab wal dfom3 peano1 mpbiran biimpri peano2 adantr a1i jcad alimi imbi12i
      pm3.31 albii 3imtr4i anim12i omex wceq raleqbi1dv anbi12d elab intss1 syl
      inex1 syl5eqss ssid biantrur ssin bitri ) DBEZAFZBEZVIGZBEZHZAIJZKZIIBLZM
      ZIBMZVOIDCFZEZVKVSEZAVSJZKZCSZNZVPCAUAVOVPWDEZWEVPMVODVPEZVKVPEZAVPJZKZWF
      VHWGVNWIWGVHWGDIEVHUBDIBOUCUDVNVIVPEZWHHZATZWIVIIEZVMHZATWNVJKZVKIEZVLKZH
      ZATVNWMWOWSAWOWPWQVLWPWQHWOWNWQVJVIUEUFUGWNVJVLUKUHUIVMAIPWLWSAWKWPWHWRVI
      IBOVKIBOUJULUMWHAVPPQUNWCWJCVPIBUOVBVSVPUPVTWGWBWIVSVPDRWAWHAVSVPVSVPVKRU
      QURUSQVPWDUTVAVCVRIIMZVRKVQWTVRIVDVEIIBVFVGQ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
              Finite induction (for finite ordinals)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    find.1 $e |- ( A C_ _om /\ (/) e. A /\ A. x e. A suc x e. A ) $.
    $( The Principle of Finite Induction (mathematical induction).  Corollary
       7.31 of [TakeutiZaring] p. 43.  The simpler hypothesis shown here was
       suggested in an email from "Colin" on 1-Oct-2001.  The hypothesis states
       that ` A ` is a set of natural numbers, zero belongs to ` A ` , and
       given any member of ` A ` the member's successor also belongs to
       ` A ` .  The conclusion is that every natural number is in ` A ` .
       (Contributed by NM, 22-Feb-2004.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    find $p |- A = _om $=
      ( com wss c0 wcel cv csuc wral simp1i wi wa w3a 3simpc ax-mp df-ral alral
      wal sylbi anim2i peano5 eqssi ) BDBDEZFBGZAHZIBGZABJZCKUEUFBGUGLZADJZMZDB
      EUEUHMZUKUDUEUHNULCUDUEUHOPUHUJUEUHUIASUJUGABQUIADRTUAPABUBPUC $.
  $}

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Substitutions. $)
    finds.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    finds.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    finds.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    finds.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    finds.5 $e |- ps $.
    $( Induction step. $)
    finds.6 $e |- ( y e. _om -> ( ch -> th ) ) $.
    $( Principle of Finite Induction (inference schema), using implicit
       substitutions.  The first four hypotheses establish the substitutions we
       need.  The last two are the basis and the induction step.  Theorem
       Schema 22 of [Suppes] p. 136.  This is Metamath 100 proof #74.
       (Contributed by NM, 14-Apr-1995.) $)
    finds $p |- ( A e. _om -> ta ) $=
      ( com wcel cab c0 cv elab csuc wi wral wss 0ex mpbir sucex 3imtr4g peano5
      vex rgen mp2an sseli elabg mpbid ) HOPHAFQZPEOUPHRUPPZGSZUPPZURUAZUPPZUBZ
      GOUCOUPUDUQBMABFRUEITUFVBGOUROPCDUSVANACFURGUJZJTADFUTURVCUGKTUHUKGUPUIUL
      UMAEFHOLUNUO $.
  $}

  ${
    $d x y ta $.  $d x ps $.  $d x ch $.  $d x th $.  $d y ph $.
    $( Substitutions. $)
    finds2.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    finds2.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    finds2.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    $( Basis. $)
    finds2.4 $e |- ( ta -> ps ) $.
    $( Induction step. $)
    finds2.5 $e |- ( y e. _om -> ( ta -> ( ch -> th ) ) ) $.
    $( Principle of Finite Induction (inference schema), using implicit
       substitutions.  The first three hypotheses establish the substitutions
       we need.  The last two are the basis and the induction step.  Theorem
       Schema 22 of [Suppes] p. 136.  (Contributed by NM, 29-Nov-2002.) $)
    finds2 $p |- ( x e. _om -> ( ta -> ph ) ) $=
      ( cv com wcel wi c0 wceq imbi2d elab cab csuc wss 0ex mpbir a2d vex sucex
      wral 3imtr4g rgen peano5 mp2an sseli abid sylib ) FMZNOUQEAPZFUAZOURNUSUQ
      QUSOZGMZUSOZVAUBZUSOZPZGNUINUSUCUTEBPZKURVFFQUDUQQRABEHSTUEVEGNVANOZECPZE
      DPZVBVDVGECDLUFURVHFVAGUGZUQVARACEISTURVIFVCVAVJUHUQVCRADEJSTUJUKGUSULUMU
      NURFUOUP $.
  $}

  ${
    $d x y $.  $d x ps $.  $d x ch $.  $d x th $.  $d y ph $.
    $( Substitutions. $)
    finds1.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    finds1.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    finds1.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    $( Basis. $)
    finds1.4 $e |- ps $.
    $( Induction step. $)
    finds1.5 $e |- ( y e. _om -> ( ch -> th ) ) $.
    $( Principle of Finite Induction (inference schema), using implicit
       substitutions.  The first three hypotheses establish the substitutions
       we need.  The last two are the basis and the induction step.  Theorem
       Schema 22 of [Suppes] p. 136.  (Contributed by NM, 22-Mar-2006.) $)
    finds1 $p |- ( x e. _om -> ph ) $=
      ( cv com wcel c0 wceq eqid a1i wi a1d finds2 mpi ) ELMNOOPZAOQABCDUCEFGHI
      BUCJRFLMNCDSUCKTUAUB $.
  $}

  ${
    $d x y z $.  $d y z ph $.
    findes.1 $e |- [. (/) / x ]. ph $.
    findes.2 $e |- ( x e. _om -> ( ph -> [. suc x / x ]. ph ) ) $.
    $( Finite induction with explicit substitution.  The first hypothesis is
       the basis and the second is the induction step.  Theorem Schema 22 of
       [Suppes] p. 136.  This is an alternative for Metamath 100 proof #74.
       (Contributed by Raph Levien, 9-Jul-2003.) $)
    findes $p |- ( x e. _om -> ph ) $=
      ( vz vy wsb c0 wsbc csuc dfsbcq2 sbequ sbequ12r com wcel nfv nfim imbi12d
      cv wi nfs1v nfsbc1v weq eleq1 sbequ12 wceq suceq dfsbcq syl chvar finds
      wb ) ABEGABHIABFGZABFSZJZIZAEFBSZABEHKAEFBLABEUOKAEBMCUQNOZAABUQJZIZTZTUN
      NOZUMUPTZTBFVBVCBVBBPUMUPBABFUAABUOUBQQBFUCZURVBVAVCUQUNNUDVDAUMUTUPABFUE
      VDUSUOUFUTUPULUQUNUGABUSUOUHUIRRDUJUK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                  The Natural Numbers (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z A $.
    $( A natural number is either 0 or a successor.  Similar theorems for
       arbitrary sets or real numbers will not be provable (without the law of
       the excluded middle), but equality of natural numbers is decidable.
       (Contributed by NM, 27-May-1998.) $)
    nn0suc $p |- ( A e. _om -> ( A = (/) \/ E. x e. _om A = suc x ) ) $=
      ( vy vz cv c0 wceq csuc com wrex wo eqeq1 rexbidv orbi12d eqid orci suceq
      wcel eqeq2d rspcev mpan2 olcd a1d finds ) CEZFGZUEAEZHZGZAIJZKFFGZFUHGZAI
      JZKDEZFGZUNUHGZAIJZKZUNHZFGZUSUHGZAIJZKZBFGZBUHGZAIJZKCDBUFUFUKUJUMUEFFLU
      FUIULAIUEFUHLMNUEUNGZUFUOUJUQUEUNFLVGUIUPAIUEUNUHLMNUEUSGZUFUTUJVBUEUSFLV
      HUIVAAIUEUSUHLMNUEBGZUFVDUJVFUEBFLVIUIVEAIUEBUHLMNUKUMFOPUNIRZVCURVJVBUTV
      JUSUSGZVBUSOVAVKAUNIUGUNGUHUSUSUGUNQSTUAUBUCUD $.
  $}

  ${
    $d x y B $.
    $( A member of a natural number is a natural number.  (Contributed by NM,
       21-Jun-1998.) $)
    elnn $p |- ( ( A e. B /\ B e. _om ) -> A e. _om ) $=
      ( vy vx com wcel wss cv c0 csuc sseq1 0ss wa csn cun unss vex snss anbi2i
      df-suc sseq1i 3bitr4i biimpi expcom finds ssel2 ancoms sylan2 ) BEFABFZBE
      GZAEFZCHZEGIEGDHZEGZUMJZEGZUJCDBULIEKULUMEKULUOEKULBEKELUNUMEFZUPUNUQMZUP
      UNUMNZEGZMUMUSOZEGURUPUMUSEPUQUTUNUMEDQRSUOVAEUMTUAUBUCUDUEUJUIUKBEAUFUGU
      H $.
  $}

  ${
    $d x y $.
    $( Omega is ordinal.  Theorem 7.32 of [TakeutiZaring] p. 43.  (Contributed
       by NM, 18-Oct-1995.) $)
    ordom $p |- Ord _om $=
      ( vx vy com word wtr cv wral wcel wa wi wal elnn gen2 dftr2 mpbir c0 csuc
      treq tr0 suctr a1i finds rgen dford3 mpbir2an ) CDCEZAFZEZACGUFUGBFZHUICH
      IUGCHZJZBKAKUKABUGUILMABCNOUHACUIEPEUHUGQZEZUHBAUGUIPRUIUGRZUIULRUNSUHUMJ
      UJUGTUAUBUCACUDUE $.
  $}

  ${
    $( Omega is an ordinal number.  (Contributed by Mario Carneiro,
       30-Jan-2013.) $)
    omelon2 $p |- ( _om e. _V -> _om e. On ) $=
      ( com cvv wcel con0 word ordom elong mpbiri ) ABCADCAEFABGH $.
  $}

  $( Omega is an ordinal number.  (Contributed by NM, 10-May-1998.)  (Revised
     by Mario Carneiro, 30-Jan-2013.) $)
  omelon $p |- _om e. On $=
    ( com cvv wcel con0 omex omelon2 ax-mp ) ABCADCEFG $.

  $( A natural number is an ordinal number.  (Contributed by NM,
     27-Jun-1994.) $)
  nnon $p |- ( A e. _om -> A e. On ) $=
    ( com omelon oneli ) BACD $.

  ${
    nnoni.1 $e |- A e. _om $.
    $( A natural number is an ordinal number.  (Contributed by NM,
       27-Jun-1994.) $)
    nnoni $p |- A e. On $=
      ( com wcel con0 nnon ax-mp ) ACDAEDBAFG $.
  $}

  $( A natural number is ordinal.  (Contributed by NM, 17-Oct-1995.) $)
  nnord $p |- ( A e. _om -> Ord A ) $=
    ( com wcel con0 word nnon eloni syl ) ABCADCAEAFAGH $.

  ${
    $d x y $.
    $( Omega is a subset of ` On ` .  (Contributed by NM, 13-Jun-1994.) $)
    omsson $p |- _om C_ On $=
      ( vx com con0 cv nnon ssriv ) ABCADEF $.
  $}

  ${
    $d x z $.
    $( Omega is a limit ordinal.  Theorem 2.8 of [BellMachover] p. 473.
       (Contributed by NM, 26-Mar-1995.)  (Proof rewritten by Jim Kingdon,
       5-Jan-2019.) $)
    limom $p |- Lim _om $=
      ( vx vz com wlim word c0 wcel cuni wceq ordom peano1 cv wa wex csuc sucex
      wi vex isseti peano2 sucid jctil eleq2 eleq1 anbi12d syl5ibr eximii eluni
      19.37aiv sylibr ssriv wss orduniss ax-mp eqssi dflim2 mpbir3an ) CDCEZFCG
      CCHZIJKCUSACUSALZCGZUTBLZGZVBCGZMZBNUTUSGVAVEBVBUTOZIZVAVEQBBVFUTARZPSVAV
      EVGUTVFGZVFCGZMVAVJVIUTTUTVHUAUBVGVCVIVDVJVBVFUTUCVBVFCUDUEUFUGUIBUTCUHUJ
      UKURUSCULJCUMUNUOCUPUQ $.
  $}

  $( A class belongs to omega iff its successor does.  (Contributed by NM,
     3-Dec-1995.) $)
  peano2b $p |- ( A e. _om <-> suc A e. _om ) $=
    ( com wcel csuc peano2 cvv elex sucexb sylibr sucidg elnn mpancom impbii
    syl ) ABCZADZBCZAEAPCZQOQAFCZRQPFCSPBGAHIAFJNAPKLM $.

  ${
    $d x A $.
    $( A nonzero natural number is a successor.  (Contributed by NM,
       18-Feb-2004.) $)
    nnsuc $p |- ( ( A e. _om /\ A =/= (/) ) -> E. x e. _om A = suc x ) $=
      ( c0 wne com wcel wceq wn cv csuc wrex df-ne nn0suc ord imp sylan2b ) BCD
      BEFZBCGZHZBAIJGAEKZBCLQSTQRTABMNOP $.
  $}

  ${
    $d x y A $.
    $( A natural number is either zero or nonzero.  Decidable equality for
       natural numbers is a special case of the law of the excluded middle
       which holds in most constructive set theories including ours.
       (Contributed by Jim Kingdon, 5-Jan-2019.) $)
    nndceq0 $p |- ( A e. _om -> DECID A = (/) ) $=
      ( vx vy com wcel c0 wceq wn wo wdc cv csuc eqeq1 notbid orbi12d eqid orci
      peano3 neneqd olcd a1d finds df-dc sylibr ) ADEAFGZUEHZIZUEJBKZFGZUIHZIFF
      GZUKHZICKZFGZUNHZIZUMLZFGZURHZIZUGBCAUIUIUKUJULUHFFMZUIUIUKVANOUHUMGZUIUN
      UJUOUHUMFMZVBUIUNVCNOUHUQGZUIURUJUSUHUQFMZVDUIURVENOUHAGZUIUEUJUFUHAFMZVF
      UIUEVGNOUKULFPQUMDEZUTUPVHUSURVHUQFUMRSTUAUBUEUCUD $.

    $( A natural number is either the empty set or has the empty set as an
       element.  (Contributed by Jim Kingdon, 23-Aug-2019.) $)
    0elnn $p |- ( A e. _om -> ( A = (/) \/ (/) e. A ) ) $=
      ( vx vy cv c0 wceq wcel wo csuc eqeq1 eleq2 orbi12d eqid com wi 0ex sucid
      orci suceq a1i syl5eleqr wss sssucid sseld jaod olc syl6 finds ) BDZEFZEU
      IGZHEEFZEEGZHCDZEFZEUNGZHZUNIZEFZEURGZHZAEFZEAGZHBCAUJUJULUKUMUIEEJUIEEKL
      UIUNFUJUOUKUPUIUNEJUIUNEKLUIURFUJUSUKUTUIUREJUIUREKLUIAFUJVBUKVCUIAEJUIAE
      KLULUMEMRUNNGZUQUTVAVDUOUTUPUOUTOVDUOEEIUREPQUNESUATVDUNUREUNURUBVDUNUCTU
      DUEUTUSUFUGUH $.
  $}

  $( A natural number is nonempty iff it contains the empty set.  Although in
     constructive mathematics it is generally more natural to work with
     inhabited sets and ignore the whole concept of nonempty sets, in the
     specific case of natural numbers this theorem may be helpful in converting
     proofs which were written assuming excluded middle.  (Contributed by Jim
     Kingdon, 28-Aug-2019.) $)
  nn0eln0 $p |- ( A e. _om -> ( (/) e. A <-> A =/= (/) ) ) $=
    ( com wcel c0 wceq wo wne wb 0elnn noel eleq2 mtbiri nner 2falsed ne0i 2thd
    id jaoi syl ) ABCADEZDACZFUAADGZHZAITUCUATUAUBTUADDCDJADDKLADMNUAUAUBUAQADO
    PRS $.

  ${
    $d ph w x y z $.
    nnregexmid.1 $e |- ( ( x C_ _om /\ E. y y e. x ) ->
        E. y ( y e. x /\ A. z ( z e. y -> -. z e. x ) ) ) $.
    $( If inhabited sets of natural numbers always have minimal elements,
       excluded middle follows.  The argument is essentially the same as
       ~ regexmid and the larger lesson is that although natural numbers may
       behave "non-constructively" even in a constructive set theory (for
       example see ~ nndceq or ~ nntri3or ), sets of natural numbers are a
       different animal.  (Contributed by Jim Kingdon, 6-Sep-2019.) $)
    nnregexmid $p |- ( ph \/ -. ph ) $=
      ( vw cv c0 wceq wa wo wcel wel wn wi wal wex com wss peano1 csn crab csuc
      cpr ssrab2 suc0 peano2 ax-mp eqeltrri prssi mp2an sstri eqid regexmidlemm
      pp0ex rabex sseq1 eleq2 exbidv anbi12d notbid imbi2d albidv imbi12d vtocl
      regexmidlem1 ) CGZFGZHUAZIVHHIAJKZFHVIUDZUBZLZDCMZDGZVLLZNZOZDPZJZCQZAANK
      VLRSZVMCQZWAVLVKRVJFVKUEHRLZVIRLVKRSTHUCZVIRUFWDWERLTHUGUHUIHVIRUJUKULAFC
      VLVLUMZUNBGZRSZCBMZCQZJZWIVNDBMZNZOZDPZJZCQZOWBWCJZWAOBVLVJFVKUOUPWGVLIZW
      KWRWQWAWSWHWBWJWCWGVLRUQWSWIVMCWGVLVGURZUSUTWSWPVTCWSWIVMWOVSWTWSWNVRDWSW
      MVQVNWSWLVPWGVLVOURVAVBVCUTUSVDEVEUKAFCDVLWFVFUH $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                              Relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c X. $. $( Times symbol (cross product symbol) (read: 'cross') $)
  $c `' $. $( Small elevated smiley (converse operation) $)
  $c dom $. $( Domain $)
  $c ran $. $( Range $)
  $c |` $. $( Right hook (restriction symbol) $)
  $c " $. $( Left quote (image symbol) $)
  $c o. $. $( Small circle (composition symbol) $)
  $c Rel $. $( Relation predicate $)

  $( Extend the definition of a class to include the cross product. $)
  cxp $a class ( A X. B ) $.

  $( Extend the definition of a class to include the converse of a class. $)
  ccnv $a class `' A $.

  $( Extend the definition of a class to include the domain of a class. $)
  cdm $a class dom A $.

  $( Extend the definition of a class to include the range of a class. $)
  crn $a class ran A $.

  $( Extend the definition of a class to include the restriction of a class.
     (Read:  The restriction of ` A ` to ` B ` .) $)
  cres $a class ( A |` B ) $.

  $( Extend the definition of a class to include the image of a class.  (Read:
     The image of ` B ` under ` A ` .) $)
  cima $a class ( A " B ) $.

  $( Extend the definition of a class to include the composition of two
     classes.  (Read:  The composition of ` A ` and ` B ` .) $)
  ccom $a class ( A o. B ) $.

  $( Extend the definition of a wff to include the relation predicate.  (Read:
     ` A ` is a relation.) $)
  wrel $a wff Rel A $.

  ${
    $d x y z A $.  $d x y z B $.
    $( Define the cross product of two classes.  Definition 9.11 of [Quine]
       p. 64.  For example, ( { 1 , 5 } ` X. ` { 2 , 7 } ) = ( { ` <. ` 1 , 2
       ` >. ` , ` <. ` 1 , 7 ` >. ` } ` u. ` { ` <. ` 5 , 2 ` >. ` , ` <. ` 5 ,
       7 ` >. ` } ) .  Another example is that the set of rational numbers are
       defined in using the cross-product ( Z ` X. ` N ) ; the left- and
       right-hand sides of the cross-product represent the top (integer) and
       bottom (natural) numbers of a fraction.  (Contributed by NM,
       4-Jul-1994.) $)
    df-xp $a |- ( A X. B ) = { <. x , y >. | ( x e. A /\ y e. B ) } $.

    $( Define the relation predicate.  Definition 6.4(1) of [TakeutiZaring]
       p. 23.  For alternate definitions, see ~ dfrel2 and ~ dfrel3 .
       (Contributed by NM, 1-Aug-1994.) $)
    df-rel $a |- ( Rel A <-> A C_ ( _V X. _V ) ) $.

    $( Define the converse of a class.  Definition 9.12 of [Quine] p. 64.  The
       converse of a binary relation swaps its arguments, i.e., if ` A e. _V `
       and ` B e. _V ` then ` ( A ``' R B <-> B R A ) ` , as proven in ~ brcnv
       (see ~ df-br and ~ df-rel for more on relations).  For example, ` ``' `
       { ` <. ` 2 , 6 ` >. ` , ` <. ` 3 , 9 ` >. ` } = { ` <. ` 6 , 2 ` >. ` ,
       ` <. ` 9 , 3 ` >. ` } .  We use Quine's breve accent (smile) notation.
       Like Quine, we use it as a prefix, which eliminates the need for
       parentheses.  Many authors use the postfix superscript "to the minus
       one."  "Converse" is Quine's terminology; some authors call it
       "inverse," especially when the argument is a function.  (Contributed by
       NM, 4-Jul-1994.) $)
    df-cnv $a |- `' A = { <. x , y >. | y A x } $.

    $( Define the composition of two classes.  Definition 6.6(3) of
       [TakeutiZaring] p. 24.  Note that Definition 7 of [Suppes] p. 63
       reverses ` A ` and ` B ` , uses a slash instead of ` o. ` , and calls
       the operation "relative product."  (Contributed by NM, 4-Jul-1994.) $)
    df-co $a |- ( A o. B ) = { <. x , y >. | E. z ( x B z /\ z A y ) } $.

    $( Define the domain of a class.  Definition 3 of [Suppes] p. 59.  For
       example, F = { ` <. ` 2 , 6 ` >. ` , ` <. ` 3 , 9 ` >. ` } ` -> ` dom F
       = { 2 , 3 } .  Contrast with range (defined in ~ df-rn ).  For alternate
       definitions see ~ dfdm2 , ~ dfdm3 , and ~ dfdm4 .  The
       notation " ` dom ` " is used by Enderton; other authors sometimes use
       script D. (Contributed by NM, 1-Aug-1994.) $)
    df-dm $a |- dom A = { x | E. y x A y } $.

    $( Define the range of a class.  For example, F = { ` <. ` 2 , 6 ` >. ` ,
       ` <. ` 3 , 9 ` >. ` } -> ran F = { 6 , 9 } .  Contrast with domain
       (defined in ~ df-dm ).  For alternate definitions, see ~ dfrn2 ,
       ~ dfrn3 , and ~ dfrn4 .  The notation " ` ran ` " is used by Enderton;
       other authors sometimes use script R or script W. (Contributed by NM,
       1-Aug-1994.) $)
    df-rn $a |- ran A = dom `' A $.

    $( Define the restriction of a class.  Definition 6.6(1) of [TakeutiZaring]
       p. 24.  For example ( F = { ` <. ` 2 , 6 ` >. ` , ` <. ` 3 , 9 ` >. ` }
       ` /\ ` B = { 1 , 2 } ) -> ( F ` |`` ` B ) = { ` <. ` 2 , 6 ` >. ` } .
       (Contributed by NM, 2-Aug-1994.) $)
    df-res $a |- ( A |` B ) = ( A i^i ( B X. _V ) ) $.

    $( Define the image of a class (as restricted by another class).
       Definition 6.6(2) of [TakeutiZaring] p. 24.  For example, ( F = { ` <. `
       2 , 6 ` >. ` , ` <. ` 3 , 9 ` >. ` } /\ B = { 1 , 2 } ) -> ( F ` " ` B )
       = { 6 } .  Contrast with restriction ( ~ df-res ) and range
       ( ~ df-rn ).  For an alternate definition, see ~ dfima2 .  (Contributed
       by NM, 2-Aug-1994.) $)
    df-ima $a |- ( A " B ) = ran ( A |` B ) $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Equality theorem for cross product.  (Contributed by NM, 4-Jul-1994.) $)
    xpeq1 $p |- ( A = B -> ( A X. C ) = ( B X. C ) ) $=
      ( vx vy wceq cv wcel wa copab cxp eleq2 anbi1d opabbidv df-xp 3eqtr4g ) A
      BFZDGZAHZEGCHZIZDEJRBHZTIZDEJACKBCKQUAUCDEQSUBTABRLMNDEACODEBCOP $.

    $( Equality theorem for cross product.  (Contributed by NM, 5-Jul-1994.) $)
    xpeq2 $p |- ( A = B -> ( C X. A ) = ( C X. B ) ) $=
      ( vx vy wceq cv wcel wa copab cxp eleq2 anbi2d opabbidv df-xp 3eqtr4g ) A
      BFZDGCHZEGZAHZIZDEJRSBHZIZDEJCAKCBKQUAUCDEQTUBRABSLMNDECAODECBOP $.

    $( Membership in a cross product.  Uses fewer axioms than ~ elxp .
       (Contributed by NM, 4-Jul-1994.) $)
    elxpi $p |- ( A e. ( B X. C ) -> E. x E. y ( A = <. x , y >. /\
               ( x e. B /\ y e. C ) ) ) $=
      ( vz cv cop wceq wcel wa wex cab cxp eqeq1 anbi1d 2exbidv elabg ibi copab
      df-xp df-opab eqtri eleq2s ) CAGZBGZHZIZUEDJUFEJKZKZBLALZCFGZUGIZUIKZBLAL
      ZFMZDENZCUPJUKUOUKFCUPULCIZUNUJABURUMUHUIULCUGOPQRSUQUIABTUPABDEUAUIABFUB
      UCUD $.

    $( Membership in a cross product.  (Contributed by NM, 4-Jul-1994.) $)
    elxp $p |- ( A e. ( B X. C ) <-> E. x E. y ( A = <. x , y >. /\
               ( x e. B /\ y e. C ) ) ) $=
      ( cxp wcel cv wa copab cop wceq wex df-xp eleq2i elopab bitri ) CDEFZGCAH
      ZDGBHZEGIZABJZGCSTKLUAIBMAMRUBCABDENOUAABCPQ $.

    $( Membership in a cross product.  (Contributed by NM, 23-Feb-2004.) $)
    elxp2 $p |- ( A e. ( B X. C ) <-> E. x e. B E. y e. C A = <. x , y >. ) $=
      ( cv wcel cop wceq wrex wa wex cxp df-rex r19.42v an13 exbii 3bitr3i elxp
      3bitr4ri ) AFZDGZCUABFZHIZBEJZKZALUDUBUCEGZKKZBLZALUEADJCDEMGUFUIAUBUDKZB
      EJUGUJKZBLUFUIUJBENUBUDBEOUKUHBUGUBUDPQRQUEADNABCDEST $.
  $}

  $( Equality theorem for cross product.  (Contributed by FL, 31-Aug-2009.) $)
  xpeq12 $p |- ( ( A = B /\ C = D ) -> ( A X. C ) = ( B X. D ) ) $=
    ( wceq cxp xpeq1 xpeq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    xpeq1i.1 $e |- A = B $.
    $( Equality inference for cross product.  (Contributed by NM,
       21-Dec-2008.) $)
    xpeq1i $p |- ( A X. C ) = ( B X. C ) $=
      ( wceq cxp xpeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for cross product.  (Contributed by NM,
       21-Dec-2008.) $)
    xpeq2i $p |- ( C X. A ) = ( C X. B ) $=
      ( wceq cxp xpeq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    xpeq12i.1 $e |- A = B $.
    xpeq12i.2 $e |- C = D $.
    $( Equality inference for cross product.  (Contributed by FL,
       31-Aug-2009.) $)
    xpeq12i $p |- ( A X. C ) = ( B X. D ) $=
      ( wceq cxp xpeq12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
  $}

  ${
    xpeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for cross product.  (Contributed by Jeff Madsen,
       17-Jun-2010.) $)
    xpeq1d $p |- ( ph -> ( A X. C ) = ( B X. C ) ) $=
      ( wceq cxp xpeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for cross product.  (Contributed by Jeff Madsen,
       17-Jun-2010.) $)
    xpeq2d $p |- ( ph -> ( C X. A ) = ( C X. B ) ) $=
      ( wceq cxp xpeq2 syl ) ABCFDBGDCGFEBCDHI $.

    xpeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for cross product.  (Contributed by NM,
       8-Dec-2013.) $)
    xpeq12d $p |- ( ph -> ( A X. C ) = ( B X. D ) ) $=
      ( wceq cxp xpeq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d x y z $.
    nfxp.1 $e |- F/_ x A $.
    nfxp.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for cross product.  (Contributed by
       NM, 15-Sep-2003.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfxp $p |- F/_ x ( A X. B ) $=
      ( vy vz cxp cv wcel wa copab df-xp nfcri nfan nfopab nfcxfr ) ABCHFIBJZGI
      CJZKZFGLFGBCMTFGARSAAFBDNAGCENOPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( The empty set is not a member of a cross product.  (Contributed by NM,
       2-May-1996.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    0nelxp $p |- -. (/) e. ( A X. B ) $=
      ( vx vy c0 cxp wcel cv cop wceq wa wex wne wn opnzi simpl eqcomd necon3ai
      vex nex ax-mp elxp mtbir ) EABFGECHZDHZIZJZUDAGUEBGKZKZDLZCLUJCUIDUFEMUIN
      UDUECSDSOUIUFEUIEUFUGUHPQRUATTCDEABUBUC $.

    $( A member of a cross product (ordered pair) doesn't contain the empty
       set.  (Contributed by NM, 15-Dec-2008.) $)
    0nelelxp $p |- ( C e. ( A X. B ) -> -. (/) e. C ) $=
      ( vx vy cxp wcel cv cop wceq wa wex c0 wn elxp 0nelop simpl eleq2d mtbiri
      exlimivv sylbi ) CABFGCDHZEHZIZJZUBAGUCBGKZKZELDLMCGZNZDECABOUGUIDEUGUHMU
      DGUBUCPUGCUDMUEUFQRSTUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    $( Ordered pair membership in a cross product.  (Contributed by NM,
       15-Nov-1994.)  (Proof shortened by Andrew Salmon, 12-Aug-2011.)
       (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opelxp $p |- ( <. A , B >. e. ( C X. D ) <-> ( A e. C /\ B e. D ) ) $=
      ( vx vy cop cxp wcel cv wceq wrex wa elxp2 wb opth2 eleq1 bi2anan9 eqeq2d
      vex sylbi biimprcd rexlimivv eqid opeq1 opeq2 rspc2ev mp3an3 impbii bitri
      ) ABGZCDHIUKEJZFJZGZKZFDLECLZACIZBDIZMZEFUKCDNUPUSUOUSEFCDUOUSULCIZUMDIZM
      ZUOAULKZBUMKZMUSVBOABULUMETFTPVCUQUTVDURVAAULCQBUMDQRUAUBUCUQURUKUKKZUPUK
      UDUOVEUKAUMGZKEFABCDULAKUNVFUKULAUMUESUMBKVFUKUKUMBAUFSUGUHUIUJ $.

    $( Binary relation on a cross product.  (Contributed by NM,
       22-Apr-2004.) $)
    brxp $p |- ( A ( C X. D ) B <-> ( A e. C /\ B e. D ) ) $=
      ( cxp wbr cop wcel wa df-br opelxp bitri ) ABCDEZFABGMHACHBDHIABMJABCDKL
      $.
  $}

  $( Ordered pair membership in a cross product (implication).  (Contributed by
     NM, 28-May-1995.) $)
  opelxpi $p |- ( ( A e. C /\ B e. D ) -> <. A , B >. e. ( C X. D ) ) $=
    ( cop cxp wcel wa opelxp biimpri ) ABECDFGACGBDGHABCDIJ $.

  $( The first member of an ordered pair of classes in a cross product belongs
     to first cross product argument.  (Contributed by NM, 28-May-2008.)
     (Revised by Mario Carneiro, 26-Apr-2015.) $)
  opelxp1 $p |- ( <. A , B >. e. ( C X. D ) -> A e. C ) $=
    ( cop cxp wcel opelxp simplbi ) ABECDFGACGBDGABCDHI $.

  $( The second member of an ordered pair of classes in a cross product belongs
     to second cross product argument.  (Contributed by Mario Carneiro,
     26-Apr-2015.) $)
  opelxp2 $p |- ( <. A , B >. e. ( C X. D ) -> B e. D ) $=
    ( cop cxp wcel opelxp simprbi ) ABECDFGACGBDGABCDHI $.

  $( The first member of an ordered triple of classes in a cross product
     belongs to first cross product argument.  (Contributed by NM,
     28-May-2008.) $)
  otelxp1 $p |- ( <. <. A , B >. , C >. e. ( ( R X. S ) X. T )
          -> A e. R ) $=
    ( cop cxp wcel opelxp1 syl ) ABGZCGDEHZFHILMIADILCMFJABDEJK $.

  ${
    $d x y z A $.  $d x y z B $.  $d y z ph $.  $d x ps $.
    rabxp.1 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Membership in a class builder restricted to a cross product.
       (Contributed by NM, 20-Feb-2014.) $)
    rabxp $p |- { x e. ( A X. B ) | ph }
             = { <. y , z >. | ( y e. A /\ z e. B /\ ps ) } $=
      ( cv cxp wcel wa cab cop wceq w3a wex crab copab elxp anbi1i anass anbi2d
      19.41vv df-3an syl6bbr pm5.32i bitri 2exbii 3bitr2i abbii df-opab 3eqtr4i
      df-rab ) CIZFGJZKZALZCMUODIZEIZNOZUSFKZUTGKZBPZLZEQDQZCMACUPRVDDESURVFCUR
      VAVBVCLZLZEQDQZALVHALZEQDQVFUQVIADEUOFGTUAVHADEUDVJVEDEVJVAVGALZLVEVAVGAU
      BVAVKVDVAVKVGBLVDVAABVGHUCVBVCBUEUFUGUHUIUJUKACUPUNVDDECULUM $.
  $}

  $( A true binary relation on a relation implies the arguments are sets.
     (This is a property of our ordered pair definition.)  (Contributed by
     Mario Carneiro, 26-Apr-2015.) $)
  brrelex12 $p |- ( ( Rel R /\ A R B ) -> ( A e. _V /\ B e. _V ) ) $=
    ( wrel wbr wa cvv cxp wcel wss df-rel biimpi ssbrd imp brxp sylib ) CDZABCE
    ZFABGGHZEZAGIBGIFQRTQCSABQCSJCKLMNABGGOP $.

  $( A true binary relation on a relation implies the first argument is a set.
     (This is a property of our ordered pair definition.)  (Contributed by NM,
     18-May-2004.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  brrelex $p |- ( ( Rel R /\ A R B ) -> A e. _V ) $=
    ( wrel wbr wa cvv wcel brrelex12 simpld ) CDABCEFAGHBGHABCIJ $.

  $( A true binary relation on a relation implies the second argument is a
     set.  (This is a property of our ordered pair definition.)  (Contributed
     by Mario Carneiro, 26-Apr-2015.) $)
  brrelex2 $p |- ( ( Rel R /\ A R B ) -> B e. _V ) $=
    ( wrel wbr wa cvv wcel brrelex12 simprd ) CDABCEFAGHBGHABCIJ $.

  ${
    brrelexi.1 $e |- Rel R $.
    $( The first argument of a binary relation exists.  (An artifact of our
       ordered pair definition.)  (Contributed by NM, 4-Jun-1998.) $)
    brrelexi $p |- ( A R B -> A e. _V ) $=
      ( wrel wbr cvv wcel brrelex mpan ) CEABCFAGHDABCIJ $.

    $( The second argument of a binary relation exists.  (An artifact of our
       ordered pair definition.)  (Contributed by Mario Carneiro,
       26-Apr-2015.) $)
    brrelex2i $p |- ( A R B -> B e. _V ) $=
      ( wrel wbr cvv wcel brrelex2 mpan ) CEABCFBGHDABCIJ $.
  $}

  ${
    nprrel.1 $e |- Rel R $.
    nprrel.2 $e |- -. A e. _V $.
    $( No proper class is related to anything via any relation.  (Contributed
       by Roy F. Longton, 30-Jul-2005.) $)
    nprrel $p |- -. A R B $=
      ( wbr cvv wcel brrelexi mto ) ABCFAGHEABCDIJ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Representation of a constant function using the mapping operation.
       (Note that ` x ` cannot appear free in ` B ` .)  (Contributed by NM,
       12-Oct-1999.)  (Revised by Mario Carneiro, 16-Nov-2013.) $)
    fconstmpt $p |- ( A X. { B } ) = ( x e. A |-> B ) $=
      ( vy cv wcel csn wa copab wceq cxp cmpt elsn anbi2i opabbii df-xp 3eqtr4i
      df-mpt ) AEBFZDEZCGZFZHZADISTCJZHZADIBUAKABCLUCUEADUBUDSDCMNOADBUAPADBCRQ
      $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y z C $.  $d x y z R $.
    vtoclr.1 $e |- Rel R $.
    vtoclr.2 $e |- ( ( x R y /\ y R z ) -> x R z ) $.
    $( Variable to class conversion of transitive relation.  (Contributed by
       NM, 9-Jun-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    vtoclr $p |- ( ( A R B /\ B R C ) -> A R C ) $=
      ( wbr wa wi cvv wcel brrelex2i cv wceq breq1 imbi12d breq2 anbi1d anbi12d
      brrelexi jca imbi2d imbi1d anbi2d vtoclg vtocl2g syl2im imp pm2.43i ) DEG
      JZEFGJZKZDFGJZUMUNUOUPLZUMDMNZEMNZKUNFMNZUQUMURUSDEGHUCDEGHOUDEFGHOUTAPZB
      PZGJZVBFGJZKZVAFGJZLZLUTDVBGJZVDKZUPLZLUTUQLABDEMMVADQZVGVJUTVKVEVIVFUPVK
      VCVHVDVADVBGRUAVADFGRSUEVBEQZVJUQUTVLVIUOUPVLVHUMVDUNVBEDGTVBEFGRUBUFUEVC
      VBCPZGJZKZVAVMGJZLVGCFMVMFQZVOVEVPVFVQVNVDVCVMFVBGTUGVMFVAGTSIUHUIUJUKUL
      $.
  $}

  $( Ordered pair membership in the universal class of ordered pairs.
     (Contributed by Mario Carneiro, 3-May-2015.) $)
  opelvvg $p |- ( ( A e. V /\ B e. W ) -> <. A , B >. e. ( _V X. _V ) ) $=
    ( wcel cvv cop cxp elex opelxpi syl2an ) ACEAFEBFEABGFFHEBDEACIBDIABFFJK $.

  ${
    opelvv.1 $e |- A e. _V $.
    opelvv.2 $e |- B e. _V $.
    $( Ordered pair membership in the universal class of ordered pairs.
       (Contributed by NM, 22-Aug-2013.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    opelvv $p |- <. A , B >. e. ( _V X. _V ) $=
      ( cvv wcel cop cxp opelxpi mp2an ) AEFBEFABGEEHFCDABEEIJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( Justification theorem for an ordered pair definition that works for any
       classes, including proper classes.  This is a possible definition
       implied by the footnote in [Jech] p. 78, which says, "The sophisticated
       reader will not object to our use of a pair of classes."  (Contributed
       by NM, 28-Sep-2003.) $)
    opthprc $p |- ( ( ( A X. { (/) } ) u. ( B X. { { (/) } } ) ) =
                    ( ( C X. { (/) } ) u. ( D X. { { (/) } } ) )
                  <-> ( A = C /\ B = D ) ) $=
      ( vx c0 csn cxp cun wceq wa wcel wo opelxp mpbiran2 bianfi bitr4i orbi12i
      elun 3bitr4ri cop eleq2 0ex snid 0nep0 elsnc nemtbir biorfi 3bitr4g eqrdv
      cv p0ex eqcom bitri wn wb biorf ax-mp jca xpeq1 uneq12 syl2an impbii ) AF
      GZHZBVDGZHZIZCVDHZDVFHZIZJZACJZBDJZKVLVMVNVLEACVLEUKZFUAZVHLZVPVKLZVOALZV
      OCLZVHVKVPUBVPVELZVPVGLZMVSFVFLZMVQVSWAVSWBWCWAVSFVDLZFUCUDZVOFAVDNOWBVOB
      LZWCKWCVOFBVFNWCWFWCFVDUEFVDUCUFUGZPQRVPVEVGSWCVSWGUHTVPVILZVPVJLZMVTWCMV
      RVTWHVTWIWCWHVTWDWEVOFCVDNOWIVODLZWCKWCVOFDVFNWCWJWGPQRVPVIVJSWCVTWGUHTUI
      UJVLEBDVLVOVDUAZVHLZWKVKLZWFWJVHVKWKUBWKVELZWKVGLZMVDVDLZWFMZWLWFWNWPWOWF
      WNVSWPKWPVOVDAVDNWPVSWPFVDUEWPVDFJFVDJVDFULUFVDFUMUNUGZPQWOWFVDVFLZVDULUD
      ZVOVDBVFNORWKVEVGSWPUOZWFWQUPWRWPWFUQURTWKVILZWKVJLZMWPWJMZWMWJXBWPXCWJXB
      VTWPKWPVOVDCVDNWPVTWRPQXCWJWSWTVOVDDVFNORWKVIVJSXAWJXDUPWRWPWJUQURTUIUJUS
      VMVEVIJVGVJJVLVNACVDUTBDVFUTVEVIVGVJVAVBVC $.
  $}

  ${
    brel.1 $e |- R C_ ( C X. D ) $.
    $( Two things in a binary relation belong to the relation's domain.
       (Contributed by NM, 17-May-1996.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    brel $p |- ( A R B -> ( A e. C /\ B e. D ) ) $=
      ( wbr cxp wcel wa ssbri brxp sylib ) ABEGABCDHZGACIBDIJENABFKABCDLM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y ps $.
    brab2a.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    brab2a.2 $e |- R = { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } $.
    $( Ordered pair membership in an ordered pair class abstraction.
       (Contributed by Mario Carneiro, 9-Nov-2015.) $)
    brab2a $p |- ( A R B <-> ( ( A e. C /\ B e. D ) /\ ps ) ) $=
      ( wbr wcel wa cv copab cxp simpl ssopab2i df-xp 3sstr4i brel df-br eleq2i
      cop bitri opelopab2a syl5bb biadan2 ) EFILZEGMFHMNZBEFGHICOGMDOHMNZANZCDP
      ZULCDPIGHQUMULCDULARSKCDGHTUAUBUJEFUEZUNMZUKBUJUOIMUPEFIUCIUNUOKUDUFABCDE
      FGHJUGUHUI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in a cross product.  (Contributed by NM, 5-Mar-1995.) $)
    elxp3 $p |- ( A e. ( B X. C ) <->
            E. x E. y ( <. x , y >. = A /\ <. x , y >. e. ( B X. C ) ) ) $=
      ( cxp wcel cv cop wceq wa wex elxp eqcom opelxp anbi12i 2exbii bitr4i ) C
      DEFZGCAHZBHZIZJZTDGUAEGKZKZBLALUBCJZUBSGZKZBLALABCDEMUHUEABUFUCUGUDUBCNTU
      ADEOPQR $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d x y z $.
    $( Membership in a union of cross products.  (Contributed by Mario
       Carneiro, 29-Dec-2014.)  (Revised by Mario Carneiro, 1-Jan-2017.) $)
    opeliunxp $p |- ( <. x , C >. e. U_ x e. A ( { x } X. B ) <->
                     ( x e. A /\ C e. B ) ) $=
      ( vz vy cv cop csn cxp ciun wcel cvv elex wex wceq eleq2d anbi12d bitri
      wa vex adantl opexgOLD sylancr wsb csb wrex df-rex nfv nfs1v nfcv nfcsb1v
      nfxp nfcri nfan sbequ12 csbeq1a xpeq12d cbvex anbi2d exbidv syl5bb df-iun
      sneq elab2g opelxp anbi2i an12 elsn equcom anbi1i 3bitri sbequ12r equcoms
      eleq1 exbii eqcomd ceqsexv syl6bb pm5.21nii ) AGZDHZABWAIZCJZKZLZWBMLZWAB
      LZDCLZTZWBWENWJWAMLDMLZWGAUAZWIWKWHDCNUBWADUCUDWGWFWHAEUEZWBEGZIZAWNCUFZJ
      ZLZTZEOZWJFGZWDLZABUGZWTFWBWEMXCWMXAWQLZTZEOZXAWBPZWTXCWHXBTZAOXFXBABUHXH
      XEAEXHEUIWMXDAWHAEUJAFWQAWOWPAWOUKAWNCULUMUNUOWAWNPZWHWMXBXDWHAEUPXIWDWQX
      AXIWCWOCWPWAWNVDAWNCUQZURQRUSSXGXEWSEXGXDWRWMXAWBWQVOUTVAVBAFBWDVCVEWTWNW
      APZWMDWPLZTZTZEOWJWSXNEWSWMWAWOLZXLTZTXOXMTXNWRXPWMWADWOWPVFVGWMXOXLVHXOX
      KXMXOXIXKAWNVIAEVJSVKVLVPXMWJEWAWLXKWMWHXLWIWHEAVMXKWPCDXKCWPCWPPAEXJVNVQ
      QRVRSVSVT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Distributive law for cross product over union.  Theorem 103 of [Suppes]
       p. 52.  (Contributed by NM, 12-Aug-2004.) $)
    xpundi $p |- ( A X. ( B u. C ) ) = ( ( A X. B ) u. ( A X. C ) ) $=
      ( vx vy cun cxp cv wcel wa copab df-xp uneq12i wo elun andi bitri opabbii
      anbi2i eqtr4i unopab ) ABCFZGDHAIZEHZUBIZJZDEKZABGZACGZFZDEAUBLUJUCUDBIZJ
      ZDEKZUCUDCIZJZDEKZFZUGUHUMUIUPDEABLDEACLMUGULUONZDEKUQUFURDEUFUCUKUNNZJUR
      UEUSUCUDBCOSUCUKUNPQRULUODEUATTT $.

    $( Distributive law for cross product over union.  Similar to Theorem 103
       of [Suppes] p. 52.  (Contributed by NM, 30-Sep-2002.) $)
    xpundir $p |- ( ( A u. B ) X. C ) = ( ( A X. C ) u. ( B X. C ) ) $=
      ( vx vy cun cxp cv wcel wa copab df-xp uneq12i wo elun anbi1i andir bitri
      opabbii eqtr4i unopab ) ABFZCGDHZUBIZEHCIZJZDEKZACGZBCGZFZDEUBCLUJUCAIZUE
      JZDEKZUCBIZUEJZDEKZFZUGUHUMUIUPDEACLDEBCLMUGULUONZDEKUQUFURDEUFUKUNNZUEJU
      RUDUSUEUCABOPUKUNUEQRSULUODEUATTT $.
  $}

  ${
    $d w y z A $.  $d w y z B $.  $d w x y z C $.  $d x F $.
    $( Distributive law for cross product over indexed union.  (Contributed by
       Mario Carneiro, 27-Apr-2014.) $)
    xpiundi $p |- ( C X. U_ x e. A B ) = U_ x e. A ( C X. B ) $=
      ( vz vw vy ciun cxp cv wrex wcel wa wex eliun exbii df-rex rexbii 3bitr4i
      elxp2 cop wceq rexcom anbi1i rexcom4 r19.41v 3bitri eqriv ) EDABCHZIZABDC
      IZHZEJZFJGJZUAUBZGUIKZFDKZUMUKLZABKZUMUJLUMULLUOGCKZABKZFDKUTFDKZABKUQUSU
      TFADBUCUPVAFDUNUILZUOMZGNUNCLZABKZUOMZGNZUPVAVDVGGVCVFUOAUNBCOUDPUOGUIQVA
      VEUOMZGNZABKVIABKZGNVHUTVJABUOGCQRVIAGBUEVKVGGVEUOABUFPUGSRURVBABFGUMDCTR
      SFGUMDUITAUMBUKOSUH $.

    $( Distributive law for cross product over indexed union.  (Contributed by
       Mario Carneiro, 27-Apr-2014.) $)
    xpiundir $p |- ( U_ x e. A B X. C ) = U_ x e. A ( B X. C ) $=
      ( vz vy vw ciun cxp cv cop wrex wcel wa df-rex rexbii eliun elxp2 3bitr4i
      wex wceq rexcom4 anbi1i r19.41v bitr4i exbii 3bitr4ri eqriv ) EABCHZDIZAB
      CDIZHZEJZFJZGJKUAGDLZFUILZUMUKMZABLZUMUJMUMULMUNUIMZUONZFTZUOFCLZABLZUPUR
      UNCMZUONZFTZABLVEABLZFTVCVAVEAFBUBVBVFABUOFCOPUTVGFUTVDABLZUONVGUSVHUOAUN
      BCQUCVDUOABUDUEUFUGUOFUIOUQVBABFGUMCDRPSFGUMUIDRAUMBUKQSUH $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Membership in a union of cross products when the second factor is
       constant.  (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    iunxpconst $p |- U_ x e. A ( { x } X. B ) = ( A X. B ) $=
      ( cv csn ciun cxp xpiundir iunid xpeq1i eqtr3i ) ABADEZFZCGABLCGFBCGABLCH
      MBCABIJK $.
  $}

  $( The cross product of two unions.  (Contributed by NM, 12-Aug-2004.) $)
  xpun $p |- ( ( A u. B ) X. ( C u. D ) ) =
            ( ( ( A X. C ) u. ( A X. D ) ) u. ( ( B X. C ) u. ( B X. D ) ) ) $=
    ( cun cxp xpundi xpundir uneq12i un4 3eqtri ) ABEZCDEFLCFZLDFZEACFZBCFZEZAD
    FZBDFZEZEOREPSEELCDGMQNTABCHABDHIOPRSJK $.

  ${
    $d w x y z A $.
    $( Membership in universal class of ordered pairs.  (Contributed by NM,
       4-Jul-1994.) $)
    elvv $p |- ( A e. ( _V X. _V ) <-> E. x E. y A = <. x , y >. ) $=
      ( cvv cxp wcel cv cop wceq wa wex elxp vex pm3.2i biantru 2exbii bitr4i )
      CDDEFCAGZBGZHIZRDFZSDFZJZJZBKAKTBKAKABCDDLTUDABUCTUAUBAMBMNOPQ $.

    $( Membership in universal class of ordered triples.  (Contributed by NM,
       17-Dec-2008.) $)
    elvvv $p |- ( A e. ( ( _V X. _V ) X. _V )
                 <-> E. x E. y E. z A = <. <. x , y >. , z >. ) $=
      ( vw cvv cxp wcel cv cop wceq wa wex elxp anass 19.42vv 2exbii vex bitr3i
      bitri ancom biantru elvv anbi2i 3bitr4ri exrot4 excom opex eqeq2d ceqsexv
      opeq1 exbii ) DFFGZFGHDEIZCIZJZKZUNUMHZUOFHZLLZCMEMZDAIZBIZJZUOJZKZCMZBMA
      MZECDUMFNVAUNVDKZUQLZBMAMZCMEMZVHUTVKECUTUQURLZUSLZVKUQURUSOUQVILZBMAMUQV
      IBMAMZLZVKVNUQVIABPVJVOABVIUQUAQVNVMVQUSVMCRUBURVPUQABUNUCUDSUESQVLVJCMEM
      ZBMAMVHVJABECUFVRVGABVRVJEMZCMVGVJECUGVSVFCUQVFEVDVBVCARBRUHVIUPVEDUNVDUO
      UKUIUJULTQSTT $.

    $( An ordered pair contains its union.  (Contributed by NM,
       16-Sep-2006.) $)
    elvvuni $p |- ( A e. ( _V X. _V ) -> U. A e. A ) $=
      ( vx vy cvv cxp wcel cv cop wceq wex cuni elvv cpr vex uniop opi2 eqeltri
      unieq id eleq12d mpbiri exlimivv sylbi ) ADDEFABGZCGZHZIZCJBJAKZAFZBCALUG
      UIBCUGUIUFKZUFFUJUDUEMUFUDUEBNZCNZOUDUEUKULPQUGUHUJAUFAUFRUGSTUAUBUC $.
  $}

  ${
    $d x y z A $.
    $( "At most one" remains true inside ordered pair quantification.
       (Contributed by NM, 28-Aug-2007.) $)
    mosubopt $p |- ( A. y A. z E* x ph ->
                 E* x E. y E. z ( A = <. y , z >. /\ ph ) ) $=
      ( wmo wal cv cop wceq wex wa wi nfa1 nfe1 nfmo nfex copsexg sps exlimd
      mobidv biimpcd moanimv simpl 2eximi ancri moimi sylbir syl ) ABFZDGZCGZEC
      HDHIJZDKZCKZUMALZDKZCKZBFZMZUSULUNUSCUKCNURCBUQCOPUKUNUSMCUKUMUSDUJDNURDB
      UQDCUPDOQPUJUMUSMDUMUJUSUMAURBACDERUAUBSTSTUTUOURLZBFUSUOURBUCURVABURUOUP
      UMCDUMAUDUEUFUGUHUI $.
  $}

  ${
    $d x y z A $.
    mosubop.1 $e |- E* x ph $.
    $( "At most one" remains true inside ordered pair quantification.
       (Contributed by NM, 28-May-1995.) $)
    mosubop $p |- E* x E. y E. z ( A = <. y , z >. /\ ph ) $=
      ( wmo wal cv cop wceq wa wex gen2 mosubopt ax-mp ) ABGZDHCHECIDIJKALDMCMB
      GQCDFNABCDEOP $.
  $}

  $( Intersection of binary relation with cross product.  (Contributed by NM,
     3-Mar-2007.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  brinxp2 $p |- ( A ( R i^i ( C X. D ) ) B <->
                ( A e. C /\ B e. D /\ A R B ) ) $=
    ( cxp cin wbr wa wcel w3a brin ancom brxp anbi1i df-3an bitr4i 3bitri ) ABE
    CDFZGHABEHZABSHZIUATIZACJZBDJZTKZABESLTUAMUBUCUDIZTIUEUAUFTABCDNOUCUDTPQR
    $.

  $( Intersection of binary relation with cross product.  (Contributed by NM,
     9-Mar-1997.) $)
  brinxp $p |- ( ( A e. C /\ B e. D ) ->
               ( A R B <-> A ( R i^i ( C X. D ) ) B ) ) $=
    ( cxp cin wbr wcel wa w3a brinxp2 df-3an bitri baibr ) ABECDFGHZACIZBDIZJZA
    BEHZPQRTKSTJABCDELQRTMNO $.

  ${
    $d x y z A $.  $d x y z R $.
    $( Intersection of partial order with cross product of its field.
       (Contributed by Mario Carneiro, 10-Jul-2014.) $)
    poinxp $p |- ( R Po A <-> ( R i^i ( A X. A ) ) Po A ) $=
      ( vx vy vz cv wbr wn wa wi wral cxp cin wpo wcel wb brinxp ralbidva df-po
      anbi12d simpll syl2anc notbid adantll adantlr imbi12d ralbiia 3bitr4i
      adantr ) CFZUJBGZHZUJDFZBGZUMEFZBGZIZUJUOBGZJZIZEAKZDAKZCAKUJUJBAALMZGZHZ
      UJUMVCGZUMUOVCGZIZUJUOVCGZJZIZEAKZDAKZCAKABNAVCNVBVMCAUJAOZVAVLDAVNUMAOZI
      ZUTVKEAVPUOAOZIZULVEUSVJVRUKVDVRVNVNUKVDPVNVOVQUAZVSUJUJAABQUBUCVRUQVHURV
      IVRUNVFUPVGVPUNVFPVQUJUMAABQUIVOVQUPVGPVNUMUOAABQUDTVNVQURVIPVOUJUOAABQUE
      UFTRRUGCDEABSCDEAVCSUH $.

    $( Intersection of linear order with cross product of its field.
       (Contributed by Mario Carneiro, 10-Jul-2014.) $)
    soinxp $p |- ( R Or A <-> ( R i^i ( A X. A ) ) Or A ) $=
      ( vx vy vz wpo cv wbr wo wi wral wa cxp cin wor poinxp wcel brinxp df-iso
      wb 3adant3 3adant2 ancoms 3adant1 orbi12d imbi12d 3expb 2ralbidva ralbiia
      w3a anbi12i 3bitr4i ) ABFZCGZDGZBHZUNEGZBHZUQUOBHZIZJZEAKDAKZCAKZLABAAMNZ
      FZUNUOVDHZUNUQVDHZUQUOVDHZIZJZEAKDAKZCAKZLABOAVDOUMVEVCVLABPVBVKCAUNAQZVA
      VJDEAAVMUOAQZUQAQZVAVJTVMVNVOUJZUPVFUTVIVMVNUPVFTVOUNUOAABRUAVPURVGUSVHVM
      VOURVGTVNUNUQAABRUBVNVOUSVHTZVMVOVNVQUQUOAABRUCUDUEUFUGUHUIUKCDEABSCDEAVD
      SUL $.

    $( Intersection of set-like relation with cross product of its field.
       (Contributed by Mario Carneiro, 22-Jun-2015.) $)
    seinxp $p |- ( R Se A <-> ( R i^i ( A X. A ) ) Se A ) $=
      ( vy vx cv wbr crab cvv wcel cxp cin wse wb brinxp ancoms rabbidva eleq1d
      wral ralbiia df-se 3bitr4i ) CEZDEZBFZCAGZHIZDARUBUCBAAJKZFZCAGZHIZDARABL
      AUGLUFUJDAUCAIZUEUIHUKUDUHCAUBAIUKUDUHMUBUCAABNOPQSDCABTDCAUGTUA $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    $( Partial ordering of a singleton.  (Contributed by Jim Kingdon,
       5-Dec-2018.) $)
    posng $p |- ( ( Rel R /\ A e. _V ) -> ( R Po { A } <-> -. A R A ) ) $=
      ( vz vy vx csn cv wbr wn wa wi wral cvv wb wceq breq2 anbi2d ralsng bitrd
      ralbidv wpo wrel df-po imbi12d simpl syl5ib biantrud bicomd breq12 anidms
      wcel notbid adantl syl5bb ) AFZBUACGZUPBHZIZUPDGZBHZUSEGZBHZJZUPVABHZKZJZ
      EUOLZDUOLZCUOLZBUBZAMUKZJAABHZIZCDEUOBUCVKVIVMNVJVKVIURCUOLVMVKVHURCUOVKV
      HURUTUSABHZJZUPABHZKZJZDUOLURVKVGVRDUOVFVREAMVAAOZVEVQURVSVCVOVDVPVSVBVNU
      TVAAUSBPQVAAUPBPUDQRTVRURDAMUSAOZURVRVTVQURVOUTVTVPUTVNUEUSAUPBPUFUGUHRST
      URVMCAMUPAOZUQVLWAUQVLNUPAUPABUIUJULRSUMUN $.

    $( Strict linear ordering on a singleton.  (Contributed by Jim Kingdon,
       5-Dec-2018.) $)
    sosng $p |- ( ( Rel R /\ A e. _V ) -> ( R Or { A } <-> -. A R A ) ) $=
      ( vx vy vz wrel cvv wcel wa csn wor wbr wn wpo sopo cv wral elsni adantl
      wi posng syl5ib wo ax-in2 adantr wb breqan12d imbi1d ralrimivw ralrimivva
      biimpar mpbird df-iso sylanbrc ex impbid ) BFAGHIZAJZBKZAABLZMZUSURBNZUQV
      AURBOABUAZUBUQVAUSUQVAIVBCPZDPZBLZVDEPZBLVGVEBLUCZTZEURQZDURQCURQZUSUQVBV
      AVCUKVAVKUQVAVJCDURURVAVDURHZVEURHZIZIZVIEURVOVIUTVHTZVAVPVNUTVHUDUEVNVIV
      PUFVAVNVFUTVHVLVMVDAVEABVDARVEARUGUHSULUIUJSCDEURBUMUNUOUP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( An abstraction relation is a subset of a related cross product.
       (Contributed by NM, 16-Jul-1995.) $)
    opabssxp $p |- { <. x , y >. | ( ( x e. A /\ y e. B ) /\ ph ) }
                   C_ ( A X. B ) $=
      ( cv wcel wa copab cxp simpl ssopab2i df-xp sseqtr4i ) BFDGCFEGHZAHZBCIOB
      CIDEJPOBCOAKLBCDEMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y ps $.
    brab2ga.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    brab2ga.2 $e |- R = { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } $.
    $( The law of concretion for a binary relation.  See ~ brab2a for alternate
       proof.  TODO: should one of them be deleted?  (Contributed by Mario
       Carneiro, 28-Apr-2015.)  (Proof modification is discouraged.) $)
    brab2ga $p |- ( A R B <-> ( ( A e. C /\ B e. D ) /\ ps ) ) $=
      ( wbr wcel wa cv copab cxp opabssxp eqsstri brel eleq2i opelopab2a syl5bb
      cop df-br bitri biadan2 ) EFILZEGMFHMNZBEFGHIICOGMDOHMNANCDPZGHQKACDGHRST
      UHEFUDZUJMZUIBUHUKIMULEFIUEIUJUKKUAUFABCDEFGHJUBUCUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y ps $.
    optocl.1 $e |- D = ( B X. C ) $.
    optocl.2 $e |- ( <. x , y >. = A -> ( ph <-> ps ) ) $.
    optocl.3 $e |- ( ( x e. B /\ y e. C ) -> ph ) $.
    $( Implicit substitution of class for ordered pair.  (Contributed by NM,
       5-Mar-1995.) $)
    optocl $p |- ( A e. D -> ps ) $=
      ( cxp wcel cv cop wceq wa wex elxp3 sylbi opelxp syl5ib exlimivv eleq2s
      imp ) BEFGLZHEUFMCNZDNZOZEPZUIUFMZQZDRCRBCDEFGSULBCDUJUKBUKAUJBUKUGFMUHGM
      QAUGUHFGUAKTJUBUEUCTIUD $.
  $}

  ${
    $d x y z w A $.  $d z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x y ps $.  $d z w ch $.  $d z w R $.
    2optocl.1 $e |- R = ( C X. D ) $.
    2optocl.2 $e |- ( <. x , y >. = A -> ( ph <-> ps ) ) $.
    2optocl.3 $e |- ( <. z , w >. = B -> ( ps <-> ch ) ) $.
    2optocl.4 $e |- ( ( ( x e. C /\ y e. D ) /\ ( z e. C /\ w e. D ) ) ->
                   ph ) $.
    $( Implicit substitution of classes for ordered pairs.  (Contributed by NM,
       12-Mar-1995.) $)
    2optocl $p |- ( ( A e. R /\ B e. R ) -> ch ) $=
      ( wcel wi cv cop wceq imbi2d wa ex optocl com12 impcom ) ILQHLQZCUHBRUHCR
      FGIJKLMFSZGSZTIUABCUHOUBUHUIJQUJKQUCZBUKARUKBRDEHJKLMDSZESZTHUAABUKNUBULJ
      QUMKQUCUKAPUDUEUFUEUG $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d v u C $.  $d x y z w v u D $.
    $d x y z w v u F $.  $d z w v u R $.  $d x y ps $.  $d z w ch $.
    $d v u th $.
    3optocl.1 $e |- R = ( D X. F ) $.
    3optocl.2 $e |- ( <. x , y >. = A -> ( ph <-> ps ) ) $.
    3optocl.3 $e |- ( <. z , w >. = B -> ( ps <-> ch ) ) $.
    3optocl.4 $e |- ( <. v , u >. = C -> ( ch <-> th ) ) $.
    3optocl.5 $e |- ( ( ( x e. D /\ y e. F ) /\ ( z e. D /\ w e. F )
                    /\ ( v e. D /\ u e. F ) ) -> ph ) $.
    $( Implicit substitution of classes for ordered pairs.  (Contributed by NM,
       12-Mar-1995.) $)
    3optocl $p |- ( ( A e. R /\ B e. R /\ C e. R ) -> th ) $=
      ( wcel wa wi cv cop wceq imbi2d 3expia 2optocl com12 optocl impcom 3impa
      ) KOUBZLOUBZMOUBZDUQUOUPUCZDURCUDURDUDIJMNPOQIUEZJUEZUFMUGCDURTUHURUSNUBU
      TPUBUCZCVAAUDVABUDVACUDEFGHKLNPOQEUEZFUEZUFKUGABVARUHGUEZHUEZUFLUGBCVASUH
      VBNUBVCPUBUCVDNUBVEPUBUCVAAUAUIUJUKULUMUN $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.  $d x y z w v u S $.  $d x y ph $.  $d z w v u ps $.
    opbrop.1 $e |- ( ( ( z = A /\ w = B ) /\ ( v = C /\ u = D ) ) ->
                     ( ph <-> ps ) ) $.
    opbrop.2 $e |- R = { <. x , y >. | ( ( x e. ( S X. S ) /\
                      y e. ( S X. S ) ) /\
                      E. z E. w E. v E. u ( ( x = <. z , w >. /\
                      y = <. v , u >. ) /\ ph ) ) } $.
    $( Ordered pair membership in a relation.  Special case.  (Contributed by
       NM, 5-Aug-1995.) $)
    opbrop $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
                   ( <. A , B >. R <. C , D >. <-> ps ) ) $=
      ( wcel wa wex cvv cop cxp cv wceq copsex4g anbi2d wb elex opexgOLD syl2an
      wbr eleq1 anbi1d eqeq1 4exbidv anbi12d opelxpi anim12i biantrurd 3bitr4d
      brabg ) INQZJNQZRZKNQZLNQZRZRZIJUAZNNUBZQZKLUAZVJQZRZVIEUCFUCUAZUDZVLGUCH
      UCUAZUDZRZARZHSGSFSESZRZVNBRVIVLMUKZBVHWABVNABEFGHIJKLNNOUEUFVDVITQZVLTQZ
      WCWBUGVGVBITQJTQWDVCINUHJNUHIJUIUJVEKTQLTQWEVFKNUHLNUHKLUIUJCUCZVJQZDUCZV
      JQZRZWFVOUDZWHVQUDZRZARZHSGSFSESZRVKWIRZVPWLRZARZHSGSFSESZRWBCDVIVLTTMWFV
      IUDZWJWPWOWSWTWGVKWIWFVIVJULUMWTWNWREFGHWTWMWQAWTWKVPWLWFVIVOUNUMUMUOUPWH
      VLUDZWPVNWSWAXAWIVMVKWHVLVJULUFXAWRVTEFGHXAWQVSAXAWLVRVPWHVLVQUNUFUMUOUPP
      VAUJVHVNBVDVKVGVMIJNNUQKLNNUQURUSUT $.
  $}

  ${
    $d x y z A $.
    $( The cross product with the empty set is empty.  Part of Theorem 3.13(ii)
       of [Monk1] p. 37.  (Contributed by NM, 4-Jul-1994.) $)
    0xp $p |- ( (/) X. A ) = (/) $=
      ( vz vx vy c0 cxp cv wcel cop wceq wa wex elxp noel simprl mto nex 2false
      bitri eqriv ) BEAFZEBGZUAHUBCGZDGZIJZUCEHZUDAHZKKZDLZCLZUBEHZCDUBEAMUJUKU
      ICUHDUHUFUCNUEUFUGOPQQUBNRST $.
  $}

  ${
    $d A w y z $.  $d B w y z $.  $d C w y z $.  $d D w y z $.  $d w x y z $.
    $( Distribute proper substitution through the cross product of two
       classes.  (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbxpg $p |- ( A e. D -> [_ A / x ]_ ( B X. C ) =
                ( [_ A / x ]_ B X. [_ A / x ]_ C ) ) $=
      ( vz vw vy wcel cv wa wex cab csb cxp wsbc sbcexg sbcang sbcel2g bitrd
      wceq csbabg anbi12d exbidv abbidv eqtrd copab df-xp df-opab eqtri csbeq2i
      cop sbcg 3eqtr4g ) BEIZABFJGJZHJZULUAZUPCIZUQDIZKZKZHLZGLZFMZNZURUPABCNZI
      ZUQABDNZIZKZKZHLZGLZFMZABCDOZNVGVIOZUOVFVDABPZFMVOVDAFBEUBUOVRVNFUOVRVCAB
      PZGLVNVCGABEQUOVSVMGUOVSVBABPZHLVMVBHABEQUOVTVLHUOVTURABPZVAABPZKVLURVAAB
      ERUOWAURWBVKURABEUMUOWBUSABPZUTABPZKVKUSUTABERUOWCVHWDVJABUPCESABUQDESUCT
      UCTUDTUDTUEUFABVPVEVPVAGHUGVEGHCDUHVAGHFUIUJUKVQVKGHUGVOGHVGVIUHVKGHFUIUJ
      UN $.
  $}

  $( Equality theorem for the relation predicate.  (Contributed by NM,
     1-Aug-1994.) $)
  releq $p |- ( A = B -> ( Rel A <-> Rel B ) ) $=
    ( wceq cvv cxp wss wrel sseq1 df-rel 3bitr4g ) ABCADDEZFBKFAGBGABKHAIBIJ $.

  ${
    releqi.1 $e |- A = B $.
    $( Equality inference for the relation predicate.  (Contributed by NM,
       8-Dec-2006.) $)
    releqi $p |- ( Rel A <-> Rel B ) $=
      ( wceq wrel wb releq ax-mp ) ABDAEBEFCABGH $.
  $}

  ${
    releqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for the relation predicate.  (Contributed by NM,
       8-Mar-2014.) $)
    releqd $p |- ( ph -> ( Rel A <-> Rel B ) ) $=
      ( wceq wrel wb releq syl ) ABCEBFCFGDBCHI $.
  $}

  ${
    $d y A $.  $d x y $.
    nfrel.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for a relation.  (Contributed by NM,
       31-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfrel $p |- F/ x Rel A $=
      ( wrel cvv cxp wss df-rel nfcv nfss nfxfr ) BDBEEFZGABHABLCALIJK $.
  $}

  $( Distribute proper substitution through a relation predicate.  (Contributed
     by Alexander van der Vekens, 23-Jul-2017.) $)
  sbcrel $p |- ( A e. V -> ( [. A / x ]. Rel R <-> Rel [_ A / x ]_ R ) ) $=
    ( wcel cvv cxp wss wsbc sbcssg csbconstg sseq2d bitrd df-rel sbcbii 3bitr4g
    csb wrel ) BDEZCFFGZHZABIZABCQZTHZCRZABIUCRSUBUCABTQZHUDABCTDJSUFTUCABTDKLM
    UEUAABCNOUCNP $.

  $( Subclass theorem for relation predicate.  Theorem 2 of [Suppes] p. 58.
     (Contributed by NM, 15-Aug-1994.) $)
  relss $p |- ( A C_ B -> ( Rel B -> Rel A ) ) $=
    ( wss cvv cxp wrel sstr2 df-rel 3imtr4g ) ABCBDDEZCAJCBFAFABJGBHAHI $.

  ${
    $d x y z A $.  $d x y z B $.
    $( A subclass relationship depends only on a relation's ordered pairs.
       Theorem 3.2(i) of [Monk1] p. 33.  (Contributed by NM, 2-Aug-1994.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    ssrel $p |- ( Rel A -> ( A C_ B <->
                A. x A. y ( <. x , y >. e. A -> <. x , y >. e. B ) ) ) $=
      ( vz wrel wss cv cop wcel wi wal ssel alrimivv wceq wex eleq1 imbi12d cvv
      dfss2 biimprcd 2alimi 19.23vv sylib com23 alimdv df-rel elvv imbi2i albii
      a2d cxp 3bitri 3imtr4g com12 impbid2 ) CFZCDGZAHBHIZCJZUSDJZKZBLALZURVBAB
      CDUSMNVCUQURVCEHZCJZVDUSOZBPAPZKZELZVEVDDJZKZELUQURVCVHVKEVCVEVGVJVCVGVEV
      JVCVFVKKZBLALVGVKKVBVLABVFVKVBVFVEUTVJVAVDUSCQVDUSDQRUAUBVFVKABUCUDUEUKUF
      UQCSSULZGVEVDVMJZKZELVICUGECVMTVOVHEVNVGVEABVDUHUIUJUMECDTUNUOUP $.

    $( Extensionality principle for relations.  Theorem 3.2(ii) of [Monk1]
       p. 33.  (Contributed by NM, 2-Aug-1994.) $)
    eqrel $p |- ( ( Rel A /\ Rel B ) -> ( A = B <->
                A. x A. y ( <. x , y >. e. A <-> <. x , y >. e. B ) ) ) $=
      ( wrel wa wss cv cop wcel wi wal wceq ssrel bi2anan9 eqss 2albiim 3bitr4g
      wb ) CEZDEZFCDGZDCGZFAHBHIZCJZUDDJZKBLALZUFUEKBLALZFCDMUEUFSBLALTUBUGUAUC
      UHABCDNABDCNOCDPUEUFABQR $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y z S $.
    $( A subclass relationship depends only on a relation's ordered pairs.
       This version of ~ ssrel is restricted to the relation's domain.
       (Contributed by Thierry Arnoux, 25-Jan-2018.) $)
    ssrel2 $p |- ( R C_ ( A X. B ) -> ( R C_ S <-> A. x e. A A. y e. B
      ( <. x , y >. e. R -> <. x , y >. e. S ) ) ) $=
      ( vz cxp wss cv wcel wi wral wrex wal eleq1 ralimi r19.23v bitri dfss2 wa
      cop ssel a1d ralrimivv wceq imbi12d biimprcd ralbii sylib com23 a2d elxp2
      alimdv imbi2i albii 3imtr4g com12 impbid2 ) ECDHZIZEFIZAJZBJZUBZEKZVEFKZL
      ZBDMZACMZVBVHABCDVBVHVCCKVDDKUAEFVEUCUDUEVJVAVBVJGJZEKZVKVEUFZBDNZACNZLZG
      OZVLVKFKZLZGOVAVBVJVPVSGVJVLVOVRVJVOVLVRVJVMVSLZBDMZACMZVOVSLZVIWAACVHVTB
      DVMVSVHVMVLVFVRVGVKVEEPVKVEFPUGUHQQWBVNVSLZACMWCWAWDACVMVSBDRUIVNVSACRSUJ
      UKULUNVAVLVKUTKZLZGOVQGEUTTWFVPGWEVOVLABVKCDUMUOUPSGEFTUQURUS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    relssi.1 $e |- Rel A $.
    relssi.2 $e |- ( <. x , y >. e. A -> <. x , y >. e. B ) $.
    $( Inference from subclass principle for relations.  (Contributed by NM,
       31-Mar-1998.) $)
    relssi $p |- A C_ B $=
      ( wss cv cop wcel wi wal wrel wb ssrel ax-mp ax-gen mpgbir ) CDGZAHBHIZCJ
      TDJKZBLZACMSUBALNEABCDOPUABFQR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ph $.
    relssdv.1 $e |- ( ph -> Rel A ) $.
    relssdv.2 $e |- ( ph -> ( <. x , y >. e. A -> <. x , y >. e. B ) ) $.
    $( Deduction from subclass principle for relations.  (Contributed by NM,
       11-Sep-2004.) $)
    relssdv $p |- ( ph -> A C_ B ) $=
      ( wss cv cop wcel wi wal alrimivv wrel wb ssrel syl mpbird ) ADEHZBICIJZD
      KUAEKLZCMBMZAUBBCGNADOTUCPFBCDEQRS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    eqrelriv.1 $e |- ( <. x , y >. e. A <-> <. x , y >. e. B ) $.
    $( Inference from extensionality principle for relations.  (Contributed by
       FL, 15-Oct-2012.) $)
    eqrelriv $p |- ( ( Rel A /\ Rel B ) -> A = B ) $=
      ( wrel wa wceq cv cop wcel wb wal gen2 eqrel mpbiri ) CFDFGCDHAIBIJZCKQDK
      LZBMAMRABENABCDOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    eqreliiv.1 $e |- Rel A $.
    eqreliiv.2 $e |- Rel B $.
    eqreliiv.3 $e |- ( <. x , y >. e. A <-> <. x , y >. e. B ) $.
    $( Inference from extensionality principle for relations.  (Contributed by
       NM, 17-Mar-1995.) $)
    eqrelriiv $p |- A = B $=
      ( wrel wceq eqrelriv mp2an ) CHDHCDIEFABCDGJK $.
  $}

  ${
    $d x y A $.  $d x y B $.
    eqbrriv.1 $e |- Rel A $.
    eqbrriv.2 $e |- Rel B $.
    eqbrriv.3 $e |- ( x A y <-> x B y ) $.
    $( Inference from extensionality principle for relations.  (Contributed by
       NM, 12-Dec-2006.) $)
    eqbrriv $p |- A = B $=
      ( cv wbr cop wcel df-br 3bitr3i eqrelriiv ) ABCDEFAHZBHZCIOPDIOPJZCKQDKGO
      PCLOPDLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqrelrdv.1 $e |- Rel A $.
    eqrelrdv.2 $e |- Rel B $.
    eqrelrdv.3 $e |- ( ph -> ( <. x , y >. e. A <-> <. x , y >. e. B ) ) $.
    $( Deduce equality of relations from equivalence of membership.
       (Contributed by Rodolfo Medina, 10-Oct-2010.) $)
    eqrelrdv $p |- ( ph -> A = B ) $=
      ( cv cop wcel wb wal wceq alrimivv wrel eqrel mp2an sylibr ) ABICIJZDKTEK
      LZCMBMZDENZAUABCHODPEPUCUBLFGBCDEQRS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqbrrdv.1 $e |- ( ph -> Rel A ) $.
    eqbrrdv.2 $e |- ( ph -> Rel B ) $.
    eqbrrdv.3 $e |- ( ph -> ( x A y <-> x B y ) ) $.
    $( Deduction from extensionality principle for relations.  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    eqbrrdv $p |- ( ph -> A = B ) $=
      ( wceq cv cop wcel wb wal wbr df-br 3bitr3g alrimivv wrel eqrel syl2anc
      mpbird ) ADEIZBJZCJZKZDLZUFELZMZCNBNZAUIBCAUDUEDOUDUEEOUGUHHUDUEDPUDUEEPQ
      RADSESUCUJMFGBCDETUAUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqbrrdiv.1 $e |- Rel A $.
    eqbrrdiv.2 $e |- Rel B $.
    eqbrrdiv.3 $e |- ( ph -> ( x A y <-> x B y ) ) $.
    $( Deduction from extensionality principle for relations.  (Contributed by
       Rodolfo Medina, 10-Oct-2010.) $)
    eqbrrdiv $p |- ( ph -> A = B ) $=
      ( cv wbr cop wcel df-br 3bitr3g eqrelrdv ) ABCDEFGABIZCIZDJPQEJPQKZDLRELH
      PQDMPQEMNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqrelrdv2.1 $e |- ( ph
       -> ( <. x , y >. e. A <-> <. x , y >. e. B ) ) $.
    $( A version of ~ eqrelrdv .  (Contributed by Rodolfo Medina,
       10-Oct-2010.) $)
    eqrelrdv2 $p |- ( ( ( Rel A /\ Rel B ) /\ ph ) -> A = B ) $=
      ( wrel wa wceq cv cop wcel wb wal alrimivv adantl eqrel adantr mpbird ) D
      GEGHZAHDEIZBJCJKZDLUBELMZCNBNZAUDTAUCBCFOPTUAUDMABCDEQRS $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.
    $( A subclass relationship determined by ordered triples.  Use ~ relrelss
       to express the antecedent in terms of the relation predicate.
       (Contributed by NM, 17-Dec-2008.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    ssrelrel $p |- ( A C_ ( ( _V X. _V ) X. _V ) -> ( A C_ B <->
                   A. x A. y A. z ( <. <. x , y >. , z >. e. A
                       -> <. <. x , y >. , z >. e. B ) ) ) $=
      ( vw cvv cxp wss cv cop wcel wi wal ssel alrimiv wex eleq1 sylib dfss2
      alrimivv wceq elvvv imbi12d biimprcd alimi 19.23v 2alimi syl5bi com23 a2d
      19.23vv alimdv 3imtr4g com12 impbid2 ) DGGHGHZIZDEIZAJBJKCJKZDLZUTELZMZCN
      ZBNANZUSVDABUSVCCDEUTOPUAVEURUSVEFJZDLZVFUQLZMZFNVGVFELZMZFNURUSVEVIVKFVE
      VGVHVJVEVHVGVJVHVFUTUBZCQZBQAQZVEVKABCVFUCVEVMVKMZBNANVNVKMVDVOABVDVLVKMZ
      CNVOVCVPCVLVKVCVLVGVAVJVBVFUTDRVFUTERUDUEUFVLVKCUGSUHVMVKABULSUIUJUKUMFDU
      QTFDETUNUOUP $.

    $( Extensionality principle for ordered triples, analogous to ~ eqrel .
       Use ~ relrelss to express the antecedent in terms of the relation
       predicate.  (Contributed by NM, 17-Dec-2008.) $)
    eqrelrel $p |- ( ( A u. B ) C_ ( ( _V X. _V ) X. _V ) -> ( A = B <->
                   A. x A. y A. z ( <. <. x , y >. , z >. e. A
                       <-> <. <. x , y >. , z >. e. B ) ) ) $=
      ( cun cvv cxp wss wa wceq cv cop wcel wb wal unss wi ssrelrel bi2anan9
      eqss 2albiim albii 19.26 bitri 3bitr4g sylbir ) DEFGGHGHZIDUHIZEUHIZJZDEK
      ZALBLMCLMZDNZUMENZOCPBPZAPZODEUHQUKDEIZEDIZJUNUORCPBPZAPZUOUNRCPBPZAPZJZU
      LUQUIURVAUJUSVCABCDESABCEDSTDEUAUQUTVBJZAPVDUPVEAUNUOBCUBUCUTVBAUDUEUFUG
      $.
  $}

  ${
    $d x y A $.
    $( A member of a relation is an ordered pair.  (Contributed by NM,
       17-Sep-2006.) $)
    elrel $p |- ( ( Rel R /\ A e. R ) -> E. x E. y A = <. x , y >. ) $=
      ( wrel wcel wa cvv cxp cop wceq wex wss df-rel biimpi sselda elvv sylib
      cv ) DEZCDFGCHHIZFCASBSJKBLALTDUACTDUAMDNOPABCQR $.
  $}

  ${
    relsn.1 $e |- A e. _V $.
    $( A singleton is a relation iff it is an ordered pair.  (Contributed by
       NM, 24-Sep-2013.) $)
    relsn $p |- ( Rel { A } <-> A e. ( _V X. _V ) ) $=
      ( csn wrel cvv cxp wss wcel df-rel snss bitr4i ) ACZDLEEFZGAMHLIAMBJK $.

    relsnop.2 $e |- B e. _V $.
    $( A singleton of an ordered pair is a relation.  (Contributed by NM,
       17-May-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    relsnop $p |- Rel { <. A , B >. } $=
      ( cop csn wrel cvv cxp wcel opelvv opexgOLD mp2an relsn mpbir ) ABEZFGPHH
      IJABCDKPAHJBHJPHJCDABLMNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    $( Subset theorem for cross product.  Generalization of Theorem 101 of
       [Suppes] p. 52.  (Contributed by NM, 26-Aug-1995.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    xpss12 $p |- ( ( A C_ B /\ C C_ D ) -> ( A X. C ) C_ ( B X. D ) ) $=
      ( vx vy wss wa cv wcel copab cxp ssel im2anan9 ssopab2dv df-xp 3sstr4g )
      ABGZCDGZHZEIZAJZFIZCJZHZEFKUABJZUCDJZHZEFKACLBDLTUEUHEFRUBUFSUDUGABUAMCDU
      CMNOEFACPEFBDPQ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( A cross product is included in the ordered pair universe.  Exercise 3 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 2-Aug-1994.) $)
    xpss $p |- ( A X. B ) C_ ( _V X. _V ) $=
      ( cvv wss cxp ssv xpss12 mp2an ) ACDBCDABECCEDAFBFACBCGH $.
  $}

  $( A cross product is a relation.  Theorem 3.13(i) of [Monk1] p. 37.
     (Contributed by NM, 2-Aug-1994.) $)
  relxp $p |- Rel ( A X. B ) $=
    ( cxp wrel cvv wss xpss df-rel mpbir ) ABCZDJEECFABGJHI $.

  $( Subset relation for cross product.  (Contributed by Jeff Hankins,
     30-Aug-2009.) $)
  xpss1 $p |- ( A C_ B -> ( A X. C ) C_ ( B X. C ) ) $=
    ( wss cxp ssid xpss12 mpan2 ) ABDCCDACEBCEDCFABCCGH $.

  $( Subset relation for cross product.  (Contributed by Jeff Hankins,
     30-Aug-2009.) $)
  xpss2 $p |- ( A C_ B -> ( C X. A ) C_ ( C X. B ) ) $=
    ( wss cxp ssid xpss12 mpan ) CCDABDCAECBEDCFCCABGH $.

  ${
    $d A x y z $.  $d B x y z $.
    $( A cross product is included in the power of the power of the union of
       its arguments.  (Contributed by NM, 13-Sep-2006.) $)
    xpsspw $p |- ( A X. B ) C_ ~P ~P ( A u. B ) $=
      ( vz vx vy cun cpw cv wcel wss wceq wa wex csn cpr snssi sseq1 syl5ibrcom
      vex syl cxp cop elxpi dfop wo ssun3 adantr df-pr ssun4 anim12i unss sylib
      syl5eqss jaod elpr 3imtr4g ssrdv biimpar sylan2 exlimivv sylibr ssriv
      elpw ) CABUAZABFZGZGZCHZVDIZVHVFJZVHVGIVIVHDHZEHZUBZKZVKAIZVLBIZLZLZEMDMV
      JDEVHABUCVRVJDEVQVNVMVFJZVJVQVMVKNZVKVLOZOZVFVKVLDSESUDVQCWBVFVQVHVTKZVHW
      AKZUEVHVEJZVHWBIVHVFIVQWCWEWDVQWEWCVTVEJZVOWFVPVOVTAJWFVKAPVTABUFTZUGVHVT
      VEQRVQWEWDWAVEJVQWAVTVLNZFZVEVKVLUHVQWFWHVEJZLWIVEJVOWFVPWJWGVPWHBJWJVLBP
      WHBAUITUJVTWHVEUKULUMVHWAVEQRUNVHVTWACSZUOVHVEWKVCUPUQUMVNVJVSVHVMVFQURUS
      UTTVHVFWKVCVAVB $.
  $}

  $( The double class union of a cross product is included in the union of its
     arguments.  (Contributed by NM, 16-Sep-2006.) $)
  unixpss $p |- U. U. ( A X. B ) C_ ( A u. B ) $=
    ( cxp cuni cun cpw xpsspw unissi unipw sseqtri ) ABCZDZDABEZFZDMLNLNFZDNKOA
    BGHNIJHMIJ $.

  $( The cross product of two sets is a set.  Proposition 6.2 of
     [TakeutiZaring] p. 23.  (Contributed by NM, 14-Aug-1994.) $)
  xpexg $p |- ( ( A e. V /\ B e. W ) -> ( A X. B ) e. _V ) $=
    ( wcel wa cxp cun cpw wss cvv xpsspw unexg pwexg 3syl ssexg sylancr ) ACEBD
    EFZABGZABHZIZIZJUBKEZSKEABLRTKEUAKEUCABCDMTKNUAKNOSUBKPQ $.

  ${
    xpex.1 $e |- A e. _V $.
    xpex.2 $e |- B e. _V $.
    $( The cross product of two sets is a set.  Proposition 6.2 of
       [TakeutiZaring] p. 23.  (Contributed by NM, 14-Aug-1994.) $)
    xpex $p |- ( A X. B ) e. _V $=
      ( cvv wcel cxp xpexg mp2an ) AEFBEFABGEFCDABEEHI $.
  $}

  $( The union of two relations is a relation.  Compare Exercise 5 of
     [TakeutiZaring] p. 25.  (Contributed by NM, 12-Aug-1994.) $)
  relun $p |- ( Rel ( A u. B ) <-> ( Rel A /\ Rel B ) ) $=
    ( cvv cxp wss wa cun wrel unss df-rel anbi12i 3bitr4ri ) ACCDZEZBMEZFABGZME
    AHZBHZFPHABMIQNROAJBJKPJL $.

  $( The intersection with a relation is a relation.  (Contributed by NM,
     16-Aug-1994.) $)
  relin1 $p |- ( Rel A -> Rel ( A i^i B ) ) $=
    ( cin wss wrel wi inss1 relss ax-mp ) ABCZADAEJEFABGJAHI $.

  $( The intersection with a relation is a relation.  (Contributed by NM,
     17-Jan-2006.) $)
  relin2 $p |- ( Rel B -> Rel ( A i^i B ) ) $=
    ( cin wss wrel wi inss2 relss ax-mp ) ABCZBDBEJEFABGJBHI $.

  $( A difference cutting down a relation is a relation.  (Contributed by NM,
     31-Mar-1998.) $)
  reldif $p |- ( Rel A -> Rel ( A \ B ) ) $=
    ( cdif wss wrel wi difss relss ax-mp ) ABCZADAEJEFABGJAHI $.

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( An indexed union is a relation iff each member of its indexed family is
       a relation.  (Contributed by NM, 19-Dec-2008.) $)
    reliun $p |- ( Rel U_ x e. A B <-> A. x e. A Rel B ) $=
      ( vy ciun wrel cv wcel wrex cab cvv cxp wss wral df-iun releqi df-rel wal
      wi 3bitri abss dfss2 bitri ralbii ralcom4 r19.23v albii bitr4i ) ABCEZFDG
      ZCHZABIZDJZFUMKKLZMZCFZABNZUIUMADBCOPUMQUOULUJUNHZSZDRZUQULDUNUAUQUKURSZD
      RZABNVAABNZDRUTUPVBABUPCUNMVBCQDCUNUBUCUDVAADBUEVCUSDUKURABUFUGTUHT $.
  $}

  $( An indexed intersection is a relation if at least one of the member of the
     indexed family is a relation.  (Contributed by NM, 8-Mar-2014.) $)
  reliin $p |- ( E. x e. A Rel B -> Rel |^|_ x e. A B ) $=
    ( cvv cxp wss wrex ciin wrel iinss df-rel rexbii 3imtr4i ) CDDEZFZABGABCHZN
    FCIZABGPIABCNJQOABCKLPKM $.

  ${
    $d x A $.
    $( The union of a class is a relation iff any member is a relation.
       Exercise 6 of [TakeutiZaring] p. 25 and its converse.  (Contributed by
       NM, 13-Aug-2004.) $)
    reluni $p |- ( Rel U. A <-> A. x e. A Rel x ) $=
      ( cuni wrel cv ciun wral uniiun releqi reliun bitri ) BCZDABAEZFZDMDABGLN
      ABHIABMJK $.

    $( The intersection of a class is a relation if at least one member is a
       relation.  (Contributed by NM, 8-Mar-2014.) $)
    relint $p |- ( E. x e. A Rel x -> Rel |^| A ) $=
      ( cv wrel wrex ciin cint reliin intiin releqi sylibr ) ACZDABEABLFZDBGZDA
      BLHNMABIJK $.
  $}

  $( The empty set is a relation.  (Contributed by NM, 26-Apr-1998.) $)
  rel0 $p |- Rel (/) $=
    ( c0 wrel cvv cxp wss 0ss df-rel mpbir ) ABACCDZEIFAGH $.

  ${
    $d ph z $.  $d u v x z $.  $d u v y z $.
    relopabi.1 $e |- A = { <. x , y >. | ph } $.
    $( A class of ordered pairs is a relation.  (Contributed by Mario Carneiro,
       21-Dec-2013.) $)
    relopabi $p |- Rel A $=
      ( vz wrel cvv cxp wss cv cop wceq wa wex cab copab df-opab wcel vex eqtri
      opelvv eleq1 mpbiri adantr exlimivv abssi eqsstri df-rel mpbir ) DGDHHIZJ
      DFKZBKZCKZLZMZANZCOBOZFPZUKDABCQUSEABCFRUAURFUKUQULUKSZBCUPUTAUPUTUOUKSUM
      UNBTCTUBULUOUKUCUDUEUFUGUHDUIUJ $.
  $}

  $( A class of ordered pairs is a relation.  (Contributed by NM, 8-Mar-1995.)
     (Unnecessary distinct variable restrictions were removed by Alan Sare,
     9-Jul-2013.)  (Proof shortened by Mario Carneiro, 21-Dec-2013.) $)
  relopab $p |- Rel { <. x , y >. | ph } $=
    ( copab eqid relopabi ) ABCABCDZGEF $.

  ${
    $d w x y z A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d ph z w $.
    $d ps z w $.
    $( The identity relation is a relation.  Part of Exercise 4.12(p) of
       [Mendelson] p. 235.  (Contributed by NM, 26-Apr-1998.)  (Revised by
       Mario Carneiro, 21-Dec-2013.) $)
    reli $p |- Rel _I $=
      ( vx vy cv wceq cid df-id relopabi ) ACBCDABEABFG $.

    $( The membership relation is a relation.  (Contributed by NM,
       26-Apr-1998.)  (Revised by Mario Carneiro, 21-Dec-2013.) $)
    rele $p |- Rel _E $=
      ( vx vy wel cep df-eprel relopabi ) ABCABDABEF $.

    $( A relation expressed as an ordered pair abstraction.  (Contributed by
       NM, 11-Dec-2006.) $)
    opabid2 $p |- ( Rel A -> { <. x , y >. | <. x , y >. e. A } = A ) $=
      ( vz vw wrel cv cop wcel copab wceq wb wal vex opeq1 eleq1d opelopab gen2
      opeq2 relopab eqrel mpan mpbiri ) CFZAGZBGZHZCIZABJZCKZDGZEGZHZUIIUMCIZLZ
      EMDMZUODEUHUKUFHZCIUNABUKULDNENUEUKKUGUQCUEUKUFOPUFULKUQUMCUFULUKSPQRUIFU
      DUJUPLUHABTDEUICUAUBUC $.

    $( Intersection of two ordered pair class abstractions.  (Contributed by
       NM, 30-Sep-2002.) $)
    inopab $p |- ( { <. x , y >. | ph } i^i { <. x , y >. | ps } ) =
               { <. x , y >. | ( ph /\ ps ) } $=
      ( vz vw copab cin wa wrel relopab relin1 ax-mp cv cop wcel wsb sban sbbii
      opelopabsbALT anbi12i 3bitr4ri elin 3bitr4i eqrelriiv ) EFACDGZBCDGZHZABI
      ZCDGZUFJUHJACDKUFUGLMUICDKENFNOZUFPZUKUGPZIZUICEQZDFQZUKUHPUKUJPACEQZBCEQ
      ZIZDFQUQDFQZURDFQZIUPUNUQURDFRUOUSDFABCERSULUTUMVAACDEFTBCDEFTUAUBUKUFUGU
      CUICDEFTUDUE $.

    $( The difference of two ordered-pair abstractions.  (Contributed by Stefan
       O'Rear, 17-Jan-2015.) $)
    difopab $p |- ( { <. x , y >. | ph } \ { <. x , y >. | ps } ) =
        { <. x , y >. | ( ph /\ -. ps ) } $=
      ( vz vw copab wn wa wrel relopab ax-mp cv wcel wsbc sbcbii opelopabsb cvv
      sbcan wb cdif reldif cop vex sbcng notbii anbi12i eldif 3bitr4i eqrelriiv
      3bitr4ri ) EFACDGZBCDGZUAZABHZIZCDGZULJUNJACDKULUMUBLUPCDKEMZFMZUCZULNZUT
      UMNZHZIZUPDUSOZCUROZUTUNNUTUQNADUSOZUODUSOZIZCUROVGCUROZVHCUROZIVFVDVGVHC
      URSVEVICURAUODUSSPVAVJVCVKACDURUSQBDUSOZHZCUROZVLCUROZHZVKVCURRNVNVPTEUDV
      LCURRUELVHVMCURUSRNVHVMTFUDBDUSRUELPVBVOBCDURUSQUFUKUGUKUTULUMUHUPCDURUSQ
      UIUJ $.

    $( The intersection of two cross products.  Exercise 9 of [TakeutiZaring]
       p. 25.  (Contributed by NM, 3-Aug-1994.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    inxp $p |- ( ( A X. B ) i^i ( C X. D ) ) =
                   ( ( A i^i C ) X. ( B i^i D ) ) $=
      ( vx vy cv wcel wa copab cin cxp inopab elin anbi12i bitr4i opabbii eqtri
      an4 df-xp ineq12i 3eqtr4i ) EGZAHZFGZBHZIZEFJZUCCHZUEDHZIZEFJZKZUCACKZHZU
      EBDKZHZIZEFJZABLZCDLZKUNUPLUMUGUKIZEFJUSUGUKEFMVBUREFVBUDUIIZUFUJIZIURUDU
      FUIUJSUOVCUQVDUCACNUEBDNOPQRUTUHVAULEFABTEFCDTUAEFUNUPTUB $.

    $( Distributive law for cross product over intersection.  Theorem 102 of
       [Suppes] p. 52.  (Contributed by NM, 26-Sep-2004.) $)
    xpindi $p |- ( A X. ( B i^i C ) ) = ( ( A X. B ) i^i ( A X. C ) ) $=
      ( cxp cin inxp inidm xpeq1i eqtr2i ) ABDACDEAAEZBCEZDAKDABACFJAKAGHI $.

    $( Distributive law for cross product over intersection.  Similar to
       Theorem 102 of [Suppes] p. 52.  (Contributed by NM, 26-Sep-2004.) $)
    xpindir $p |- ( ( A i^i B ) X. C ) = ( ( A X. C ) i^i ( B X. C ) ) $=
      ( cxp cin inxp inidm xpeq2i eqtr2i ) ACDBCDEABEZCCEZDJCDACBCFKCJCGHI $.
  $}

  ${
    $d x y z w A $.  $d x y z w C $.  $d z w B $.
    $( Distributive law for cross product over indexed intersection.
       (Contributed by Jim Kingdon, 7-Dec-2018.) $)
    xpiindim $p |- ( E. y y e. A ->
      ( C X. |^|_ x e. A B ) = |^|_ x e. A ( C X. B ) ) $=
      ( vw vz ciin cxp wrel wa cv wcel wex wral relxp wb cvv vex eliin wceq syl
      wrex rgenw eleq1 cbvexv r19.2m sylanbr mpan2 reliin jctil r19.28mv sylbir
      cop bicomd ax-mp anbi2i opelxp ralbii 3bitr4g opex eqrelrdv2 mpancom ) EA
      CDHZIZJZACEDIZHZJZKBLZCMZBNZVEVHUAVLVIVFVLVGJZACUCZVIVLVMACOZVNVMACEDPUDV
      LALZCMZANZVOVNVQVKABVPVJCUEUFZVMACUGUHUIACVGUJUBEVDPUKVLFGVEVHVLFLZEMZGLZ
      VDMZKZVTWBUNZVGMZACOZWEVEMWEVHMZVLWAWBDMZACOZKZWAWIKZACOZWDWGVLWMWKVLVRWM
      WKQVSWAWIACULUMUOWCWJWAWBRMWCWJQGSZAWBCDRTUPUQWFWLACVTWBEDURUSUTVTWBEVDUR
      WERMWHWGQVTWBFSWNVAAWECVGRTUPUTVBVC $.

    $( Distributive law for cross product over relativized indexed
       intersection.  (Contributed by Jim Kingdon, 7-Dec-2018.) $)
    xpriindim $p |- ( E. y y e. A ->
        ( C X. ( D i^i |^|_ x e. A B ) ) =
        ( ( C X. D ) i^i |^|_ x e. A ( C X. B ) ) ) $=
      ( cv wcel wex ciin cin cxp xpindi xpiindim ineq2d syl5eq ) BGCHBIZEFACDJZ
      KLEFLZERLZKSACEDLJZKEFRMQTUASABCDENOP $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d x E $.  $d x V $.
    $( Membership in a union of cross products.  Analogue of ~ elxp for
       nonconstant ` B ( x ) ` .  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    eliunxp $p |- ( C e. U_ x e. A ( { x } X. B ) <->
      E. x E. y ( C = <. x , y >. /\ ( x e. A /\ y e. B ) ) ) $=
      ( cv csn cxp ciun wcel cop wceq wex wa wrel wral relxp rgenw reliun exbii
      mpbir elrel mpan pm4.71ri nfiu1 nfel2 19.41 19.41v eleq1 opeliunxp syl6bb
      pm5.32i bitr3i 3bitr2i ) EACAFZGZDHZIZJZEUOBFZKZLZBMZAMZUSNVCUSNZAMVBUOCJ
      UTDJNZNZBMZAMUSVDUROZUSVDVIUQOZACPVJACUPDQRACUQSUAABEURUBUCUDVCUSAAEURACU
      QUEUFUGVEVHAVEVBUSNZBMVHVBUSBUHVKVGBVBUSVFVBUSVAURJVFEVAURUIACDUTUJUKULTU
      MTUN $.

    $d x A $.
    opeliunxp2.1 $e |- ( x = C -> B = E ) $.
    $( Membership in a union of cross products.  (Contributed by Mario
       Carneiro, 14-Feb-2015.) $)
    opeliunxp2 $p |- ( <. C , D >. e. U_ x e. A ( { x } X. B ) <->
      ( C e. A /\ D e. E ) ) $=
      ( cop cv csn cxp ciun wcel cvv wa wbr df-br wrel wral wb relxp rgenw elex
      reliun mpbir brrelexi sylbir adantr nfcv nfiu1 nfel2 nfv nfbi wceq eleq1d
      opeq1 eleq1 eleq2d anbi12d bibi12d opeliunxp vtoclgf pm5.21nii ) DEHZABAI
      ZJZCKZLZMZDNMZDBMZEFMZOZVIDEVHPVJDEVHQDEVHVHRVGRZABSVNABVFCUAUBABVGUDUEUF
      UGVKVJVLDBUCUHVEEHZVHMZVEBMZECMZOZTVIVMTADNADUIVIVMAAVDVHABVGUJUKVMAULUMV
      EDUNZVPVIVSVMVTVOVDVHVEDEUPUOVTVQVKVRVLVEDBUQVTCFEGURUSUTABCEVAVBVC $.
  $}

  ${
    $d x y z A $.  $d x z B $.  $d y z ph $.  $d x ps $.
    ralxp.1 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Write a double restricted quantification as one universal quantifier.
       In this version of ~ ralxp , ` B ( y ) ` is not assumed to be constant.
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    raliunxp $p |- ( A. x e. U_ y e. A ( { y } X. B ) ph <->
      A. y e. A A. z e. B ps ) $=
      ( cv csn cxp wcel wi wal wa wral wex albii vex bitri ciun cop wceq imbi1i
      eliunxp 19.23vv bitr4i alrot3 impexp imbi2d ceqsalv 2albii df-ral 3bitr4i
      opex r2al ) CIZDFDIZJGKUAZLZAMZCNZURFLEIZGLOZBMZENDNZACUSPBEGPDFPVBUQURVC
      UBZUCZVDOZAMZENDNZCNZVFVAVKCVAVIEQDQZAMVKUTVMADEFGUQUEUDVIADEUFUGRVLVJCNZ
      ENDNVFVJCDEUHVNVEDEVNVHVDAMZMZCNVEVJVPCVHVDAUIRVOVECVGURVCDSESUOVHABVDHUJ
      UKTULTTACUSUMBDEFGUPUN $.

    $( Write a double restricted quantification as one universal quantifier.
       In this version of ~ rexxp , ` B ( y ) ` is not assumed to be constant.
       (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    rexiunxp $p |- ( E. x e. U_ y e. A ( { y } X. B ) ph <->
      E. y e. A E. z e. B ps ) $=
      ( cv csn cxp ciun wcel wa wex wrex cop exbii vex bitri wceq anbi1i bitr4i
      eliunxp 19.41vv exrot3 anass opex anbi2d ceqsexv 2exbii df-rex 3bitr4i
      r2ex ) CIZDFDIZJGKLZMZANZCOZUPFMEIZGMNZBNZEODOZACUQPBEGPDFPUTUOUPVAQZUAZV
      BNZANZEODOZCOZVDUSVICUSVGEODOZANVIURVKADEFGUOUDUBVGADEUEUCRVJVHCOZEODOVDV
      HCDEUFVLVCDEVLVFVBANZNZCOVCVHVNCVFVBAUGRVMVCCVEUPVADSESUHVFABVBHUIUJTUKTT
      ACUQULBDEFGUNUM $.

    $d y B $.
    $( Universal quantification restricted to a cross product is equivalent to
       a double restricted quantification.  The hypothesis specifies an
       implicit substitution.  (Contributed by NM, 7-Feb-2004.)  (Revised by
       Mario Carneiro, 29-Dec-2014.) $)
    ralxp $p |- ( A. x e. ( A X. B ) ph <-> A. y e. A A. z e. B ps ) $=
      ( cxp wral cv csn ciun iunxpconst raleqi raliunxp bitr3i ) ACFGIZJACDFDKL
      GIMZJBEGJDFJACSRDFGNOABCDEFGHPQ $.

    $( Existential quantification restricted to a cross product is equivalent
       to a double restricted quantification.  (Contributed by NM,
       11-Nov-1995.)  (Revised by Mario Carneiro, 14-Feb-2015.) $)
    rexxp $p |- ( E. x e. ( A X. B ) ph <-> E. y e. A E. z e. B ps ) $=
      ( cxp wrex cv csn ciun iunxpconst rexeqi rexiunxp bitr3i ) ACFGIZJACDFDKL
      GIMZJBEGJDFJACSRDFGNOABCDEFGHPQ $.
  $}

  ${
    $d x A $.
    $( Disjoint union is a subset of a cross product.  (Contributed by Stefan
       O'Rear, 21-Nov-2014.) $)
    djussxp $p |- U_ x e. A ( { x } X. B ) C_ ( A X. _V ) $=
      ( cv csn cxp ciun cvv wss iunss wcel snssi ssv xpss12 sylancl mprgbir ) A
      BADZEZCFZGBHFZISTIZABABSTJQBKRBICHIUAQBLCMRBCHNOP $.
  $}

  ${
    $d u v w x y A $.  $d u v w x y z B $.  $d u v w ph $.  $d u v w ps $.
    ralxpf.1 $e |- F/ y ph $.
    ralxpf.2 $e |- F/ z ph $.
    ralxpf.3 $e |- F/ x ps $.
    ralxpf.4 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Version of ~ ralxp with bound-variable hypotheses.  (Contributed by NM,
       18-Aug-2006.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    ralxpf $p |- ( A. x e. ( A X. B ) ph <-> A. y e. A A. z e. B ps ) $=
      ( vv vw vu wral wsb cv wceq vex nfsb cxp cbvralsv ralbii nfv nfcv nfralxy
      nfs1v sbequ12 ralbidv cbvral cop wa wex eqvinop nfbi sbhypf opth sylan9bb
      wb sylbi exlimi ralxp 3bitr4ri bitri ) ACFGUAZOACLPZLVEOZBEGOZDFOZACLVEUB
      BDMPZEGOZMFOVJENPZNGOZMFOVIVGVKVMMFVJENGUBUCVHVKDMFVHMUDVJDEGDGUEBDMUGZUF
      DQZMQZRZBVJEGBDMUHZUIUJVFVLLMNFGLQZVPNQZUKZRVSVOEQZUKZRZWCWARZULZEUMZDUMV
      FVLUSZDEVSVPVTMSNSUNWGWHDVFVLDACLDHTVJENDVNTUOWFWHEVFVLEACLEITVJENUGUOWDV
      FBWEVLABCLWCJKUPWEVQWBVTRZULBVLUSVOWBVPVTDSESUQVQBVJWIVLVRVJENUHURUTURVAV
      AUTVBVCVD $.

    $( Version of ~ rexxp with bound-variable hypotheses.  (Contributed by NM,
       19-Dec-2008.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    rexxpf $p |- ( E. x e. ( A X. B ) ph <-> E. y e. A E. z e. B ps ) $=
      ( vv vw vu wrex wsb cv wceq vex nfsb cxp cbvrexsv rexbii nfv nfcv nfrexxy
      nfs1v sbequ12 rexbidv cbvrex cop wa wex eqvinop nfbi sbhypf opth sylan9bb
      wb sylbi exlimi rexxp 3bitr4ri bitri ) ACFGUAZOACLPZLVEOZBEGOZDFOZACLVEUB
      BDMPZEGOZMFOVJENPZNGOZMFOVIVGVKVMMFVJENGUBUCVHVKDMFVHMUDVJDEGDGUEBDMUGZUF
      DQZMQZRZBVJEGBDMUHZUIUJVFVLLMNFGLQZVPNQZUKZRVSVOEQZUKZRZWCWARZULZEUMZDUMV
      FVLUSZDEVSVPVTMSNSUNWGWHDVFVLDACLDHTVJENDVNTUOWFWHEVFVLEACLEITVJENUGUOWDV
      FBWEVLABCLWCJKUPWEVQWBVTRZULBVLUSVOWBVPVTDSESUQVQBVJWIVLVRVJENUHURUTURVAV
      AUTVBVCVD $.
  $}

  ${
    $d w x y A $.  $d w x y z B $.  $d w C $.  $d w D $.
    iunxpf.1 $e |- F/_ y C $.
    iunxpf.2 $e |- F/_ z C $.
    iunxpf.3 $e |- F/_ x D $.
    iunxpf.4 $e |- ( x = <. y , z >. -> C = D ) $.
    $( Indexed union on a cross product is equals a double indexed union.  The
       hypothesis specifies an implicit substitution.  (Contributed by NM,
       19-Dec-2008.) $)
    iunxpf $p |- U_ x e. ( A X. B ) C = U_ y e. A U_ z e. B D $=
      ( vw cxp ciun cv wcel wrex nfcri cop eliun wceq eleq2d rexxpf bitri eqriv
      rexbii 3bitr4i ) LADEMZFNZBDCEGNZNZLOZFPZAUHQULGPZCEQZBDQZULUIPULUKPZUMUN
      ABCDEBLFHRCLFIRALGJRAOBOCOSUAFGULKUBUCAULUHFTUQULUJPZBDQUPBULDUJTURUOBDCU
      LEGTUFUDUGUE $.
  $}

  ${
    $d x y A $.  $d x y ph $.
    opabbi2dv.1 $e |- Rel A $.
    opabbi2dv.3 $e |- ( ph -> ( <. x , y >. e. A <-> ps ) ) $.
    $( Deduce equality of a relation and an ordered-pair class builder.
       Compare ~ abbi2dv .  (Contributed by NM, 24-Feb-2014.) $)
    opabbi2dv $p |- ( ph -> A = { <. x , y >. | ps } ) $=
      ( cv cop wcel copab wrel wceq opabid2 ax-mp opabbidv syl5eqr ) AECHDHIEJZ
      CDKZBCDKELSEMFCDENOARBCDGPQ $.
  $}

  ${
    $d v w x y z A $.  $d v w x y z B $.
    relop.1 $e |- A e. _V $.
    relop.2 $e |- B e. _V $.
    $( A necessary and sufficient condition for a Kuratowski ordered pair to be
       a relation.  (Contributed by NM, 3-Jun-2008.)  (Avoid depending on this
       detail.) $)
    relop $p |- ( Rel <. A , B >.
             <-> E. x E. y ( A = { x } /\ B = { x , y } ) ) $=
      ( vz vw vv cop cvv cv wceq wa wex wi wcel bitri weq eqeq2d cxp wss df-rel
      wrel csn cpr wal dfss2 wo vex elop elvv imbi12i jaob albii 19.26 snexgOLD
      ax-mp eqeq1 eqcom opeqsn syl6bb 2exbidv spcv sneq cbvexv a9ev equcom mpbi
      imbi12d exbii 19.41v mpbiran eqid a1bi 3bitr2ri sylib prexgOLD mpi opeqpr
      mp2an idd eqtr2 preqsn simplbi syl dfsn2 preq2 syl5req syl5eq biimpd expd
      anbi12d com12 adantr expcom impd jaod syl5bi 2eximdv exlimiv syl2an sylbi
      mpd imp simpr jctl sylibr eqtr4d opeq12 spc2ev adantlr preq12 biimpa dfop
      equid syl6eqr jaodan ex 3imtr4g ssrdv exlimivv impbii ) CDJZUDYDKKUAZUBZC
      ALZUEZMZDYGBLZUFZMZNZBOAOZYDUCYFYNYFGLZCUEZMZYOYGYJJZMZBOAOZPZGUGZYOCDUFZ
      MZYTPZGUGZNZYNYFYOYDQZYOYEQZPZGUGZUUGGYDYEUHUUKUUAUUENZGUGUUGUUJUULGUUJYQ
      UUDUIZYTPUULUUHUUMUUIYTYOCDGUJEFUKZABYOULUMYQYTUUDUNRUOUUAUUEGUPRRUUBCHLZ
      UEZMZHOZUUCYRMZBOAOZYNUUFUUBYPYPMZABSZYINZBOZAOZPZUURUUAUVFGYPCKQZYPKQECU
      QURYQYQUVAYTUVEYOYPYPUSYQYSUVCABYQYSYPYRMZUVCYOYPYRUSUVHYRYPMUVCYPYRUTYGY
      JCAUJZBUJZEVARVBVCVJVDUURYIAOUVEUVFUUQYIHAHASZUUPYHCUUOYGVETVFUVDYIAUVDUV
      BBOZYIBASZBOUVLBAVGUVMUVBBBAVHVKVIUVBYIBVLVMVKUVAUVEYPVNVOVPVQUUFUUCUUCMZ
      UUTUUCVNUUEUVNUUTPGUUCUVGDKQUUCKQEFCDVRWAUUDUUDUVNYTUUTYOUUCUUCUSUUDYSUUS
      ABYOUUCYRUSVCVJVDVSUURUUTYNUUQUUTYNPHUUQUUSYMABUUSYMCYKMZDYHMZNZUIZUUQYMU
      USYRUUCMUVRUUCYRUTYGYJCDUVIUVJEFVTRUUQYMYMUVQUUQYMWBUUQUVOUVPYMUVOUUQUVPY
      MPZUVOUUQNZUVBUVSUVTYKUUPMZUVBCYKUUPWCUWAUVBBHSYGYJUUOUVIUVJHUJWDWEWFUVOU
      VBUVSPUUQUVBUVOUVSUVBUVOUVPYMUVBUVQYMUVBUVOYIUVPYLUVBYKYHCUVBYHYGYGUFZYKY
      GWGZYGYJYGWHZWITUVBYHYKDUVBYHUWBYKUWCUWDWJTWMWKWLWNWOXDWPWQWRWSWTXAXEXBXC
      YMYFABYMGYDYEYMUUMYOUUOILZJZMZIOHOZUUHUUIYMUUMUWHYMYQUWHUUDYIYQUWHYLYIYQN
      ZYOYGYGJZMZUWHUWIYOYPUWJYIYQXFYIUWJYPMZYQYIAASZYINUWLYIUWMAXPXGYGYGCUVIUV
      IEVAXHWOXIUWGUWKHIYGYGUVIUVIUVKIASNUWFUWJYOUUOUWEYGYGXJTXKWFXLYMUUDNZYSUW
      HUWNYOYHYKUFZYRYMUUDYOUWOMYMUUCUWOYOCDYHYKXMTXNYGYJUVIUVJXOXQUWGYSHIYGYJU
      VIUVJUVKIBSNUWFYRYOUUOUWEYGYJXJTXKWFXRXSUUNHIYOULXTYAYBYCR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( For sets, the identity relation is the same as equality.  (Contributed
       by NM, 30-Apr-2004.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    ideqg $p |- ( B e. V -> ( A _I B <-> A = B ) ) $=
      ( vx vy wcel cid wbr wceq cvv wa brrelexi adantl simpl jca eleq1 biimparc
      reli elex cv syl eqeq1 eqeq2 df-id brabg pm5.21nd ) BCFZABGHZABIZAJFZUGKU
      GUHKUJUGUHUJUGABGRLMUGUHNOUGUIKZUJUGUKACFZUJUIULUGABCPQACSUAUGUINODTZETZI
      AUNIUIDEABJCGUMAUNUBUNBAUCDEUDUEUF $.
  $}

  ${
    ideq.1 $e |- B e. _V $.
    $( For sets, the identity relation is the same as equality.  (Contributed
       by NM, 13-Aug-1995.) $)
    ideq $p |- ( A _I B <-> A = B ) $=
      ( cvv wcel cid wbr wceq wb ideqg ax-mp ) BDEABFGABHICABDJK $.
  $}

  ${
    $d x A $.
    $( A set is identical to itself.  (Contributed by NM, 28-May-2008.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    ididg $p |- ( A e. V -> A _I A ) $=
      ( wcel cid wbr wceq eqid ideqg mpbiri ) ABCAADEAAFAGAABHI $.
  $}

  $( Two ways of expressing set existence.  (Contributed by NM, 16-Feb-2008.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  issetid $p |- ( A e. _V <-> A _I A ) $=
    ( cvv wcel cid wbr ididg reli brrelexi impbii ) ABCAADEABFAADGHI $.

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Subclass theorem for composition.  (Contributed by FL, 30-Dec-2010.) $)
    coss1 $p |- ( A C_ B -> ( A o. C ) C_ ( B o. C ) ) $=
      ( vx vy vz wss cv wbr wa wex copab id ssbrd anim2d eximdv ssopab2dv df-co
      ccom 3sstr4g ) ABGZDHEHZCIZUBFHZAIZJZEKZDFLUCUBUDBIZJZEKZDFLACSBCSUAUGUJD
      FUAUFUIEUAUEUHUCUAABUBUDUAMNOPQDFEACRDFEBCRT $.

    $( Subclass theorem for composition.  (Contributed by NM, 5-Apr-2013.) $)
    coss2 $p |- ( A C_ B -> ( C o. A ) C_ ( C o. B ) ) $=
      ( vx vy vz wss cv wbr wa wex copab id ssbrd anim1d eximdv ssopab2dv df-co
      ccom 3sstr4g ) ABGZDHZEHZAIZUCFHCIZJZEKZDFLUBUCBIZUEJZEKZDFLCASCBSUAUGUJD
      FUAUFUIEUAUDUHUEUAABUBUCUAMNOPQDFECARDFECBRT $.
  $}

  $( Equality theorem for composition of two classes.  (Contributed by NM,
     3-Jan-1997.) $)
  coeq1 $p |- ( A = B -> ( A o. C ) = ( B o. C ) ) $=
    ( wss wa ccom wceq coss1 anim12i eqss 3imtr4i ) ABDZBADZEACFZBCFZDZONDZEABG
    NOGLPMQABCHBACHIABJNOJK $.

  $( Equality theorem for composition of two classes.  (Contributed by NM,
     3-Jan-1997.) $)
  coeq2 $p |- ( A = B -> ( C o. A ) = ( C o. B ) ) $=
    ( wss wa ccom wceq coss2 anim12i eqss 3imtr4i ) ABDZBADZECAFZCBFZDZONDZEABG
    NOGLPMQABCHBACHIABJNOJK $.

  ${
    coeq1i.1 $e |- A = B $.
    $( Equality inference for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq1i $p |- ( A o. C ) = ( B o. C ) $=
      ( wceq ccom coeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq2i $p |- ( C o. A ) = ( C o. B ) $=
      ( wceq ccom coeq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    coeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq1d $p |- ( ph -> ( A o. C ) = ( B o. C ) ) $=
      ( wceq ccom coeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq2d $p |- ( ph -> ( C o. A ) = ( C o. B ) ) $=
      ( wceq ccom coeq2 syl ) ABCFDBGDCGFEBCDHI $.
  $}

  ${
    coeq12i.1 $e |- A = B $.
    coeq12i.2 $e |- C = D $.
    $( Equality inference for composition of two classes.  (Contributed by FL,
       7-Jun-2012.) $)
    coeq12i $p |- ( A o. C ) = ( B o. D ) $=
      ( ccom coeq1i coeq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
  $}

  ${
    coeq12d.1 $e |- ( ph -> A = B ) $.
    coeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for composition of two classes.  (Contributed by FL,
       7-Jun-2012.) $)
    coeq12d $p |- ( ph -> ( A o. C ) = ( B o. D ) ) $=
      ( ccom coeq1d coeq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    $d w x y z $.  $d y z w A $.  $d y z w B $.
    nfco.1 $e |- F/_ x A $.
    nfco.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for function value.  (Contributed by
       NM, 1-Sep-1999.) $)
    nfco $p |- F/_ x ( A o. B ) $=
      ( vy vw vz ccom cv wbr wa wex copab df-co nfcv nfbr nfan nfex nfopab
      nfcxfr ) ABCIFJZGJZCKZUCHJZBKZLZGMZFHNFHGBCOUHFHAUGAGUDUFAAUBUCCAUBPEAUCP
      ZQAUCUEBUIDAUEPQRSTUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    $( Ordered pair membership in a composition.  (Contributed by NM,
       24-Feb-2015.) $)
    brcog $p |- ( ( A e. V /\ B e. W ) -> ( A ( C o. D ) B <->
                   E. x ( A D x /\ x C B ) ) ) $=
      ( vy vz cv wbr wa wex ccom wceq breq1 breq2 bi2anan9 exbidv df-co brabga
      ) HJZAJZEKZUCIJZDKZLZAMBUCEKZUCCDKZLZAMHIBCDENFGUBBOZUECOZLUGUJAUKUDUHULU
      FUIUBBUCEPUECUCDQRSHIADETUA $.

    $( Ordered pair membership in a composition.  (Contributed by NM,
       27-Jan-1997.)  (Revised by Mario Carneiro, 24-Feb-2015.) $)
    opelco2g $p |- ( ( A e. V /\ B e. W ) -> ( <. A , B >. e. ( C o. D ) <->
                   E. x ( <. A , x >. e. D /\ <. x , B >. e. C ) ) ) $=
      ( wcel wa ccom wbr cv wex cop brcog df-br anbi12i exbii 3bitr3g ) BFHCGHI
      BCDEJZKBALZEKZUACDKZIZAMBCNTHBUANEHZUACNDHZIZAMABCDEFGOBCTPUDUGAUBUEUCUFB
      UAEPUACDPQRS $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x X $.
    $( Ordered pair membership in a composition.  (Contributed by Thierry
       Arnoux, 14-Jan-2018.) $)
    brcogw $p |- ( ( ( A e. V /\ B e. W /\ X e. Z ) /\ ( A D X /\ X C B ) )
      -> A ( C o. D ) B ) $=
      ( vx wcel w3a wbr wa cv wex ccom simpl1 simpl2 wceq breq2 breq1 3ad2antl3
      anbi12d spcegv imp brcog biimpar syl21anc ) AEJZBFJZGHJZKAGDLZGBCLZMZMUIU
      JAINZDLZUOBCLZMZIOZABCDPLZUIUJUKUNQUIUJUKUNRUKUIUNUSUJUKUNUSURUNIGHUOGSUP
      ULUQUMUOGADTUOGBCUAUCUDUEUBUIUJMUTUSIABCDEFUFUGUH $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqbrrdva.1 $e |- ( ph -> A C_ ( C X. D ) ) $.
    eqbrrdva.2 $e |- ( ph -> B C_ ( C X. D ) ) $.
    eqbrrdva.3 $e |- ( ( ph /\ x e. C /\ y e. D ) -> ( x A y <-> x B y ) ) $.
    $( Deduction from extensionality principle for relations, given an
       equivalence only on the relation's domain and range.  (Contributed by
       Thierry Arnoux, 28-Nov-2017.) $)
    eqbrrdva $p |- ( ph -> A = B ) $=
      ( cvv cxp wss wrel syl6ss df-rel sylibr cv wcel wbr xpss wa ssbrd brxp wb
      syl6ib 3expib pm5.21ndd eqbrrdv ) ABCDEADKKLZMDNADFGLZUJHFGUAZODPQAEUJMEN
      AEUKUJIULOEPQABRZFSZCRZGSZUBZUMUODTZUMUOETZAURUMUOUKTZUQADUKUMUOHUCUMUOFG
      UDZUFAUSUTUQAEUKUMUOIUCVAUFAUNUPURUSUEJUGUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    opelco.1 $e |- A e. _V $.
    opelco.2 $e |- B e. _V $.
    $( Binary relation on a composition.  (Contributed by NM, 21-Sep-2004.)
       (Revised by Mario Carneiro, 24-Feb-2015.) $)
    brco $p |- ( A ( C o. D ) B <-> E. x ( A D x /\ x C B ) ) $=
      ( cvv wcel ccom wbr cv wa wex wb brcog mp2an ) BHICHIBCDEJKBALZEKRCDKMANO
      FGABCDEHHPQ $.

    $( Ordered pair membership in a composition.  (Contributed by NM,
       27-Dec-1996.)  (Revised by Mario Carneiro, 24-Feb-2015.) $)
    opelco $p |- ( <. A , B >. e. ( C o. D ) <-> E. x ( A D x /\ x C B ) ) $=
      ( cop ccom wcel wbr cv wa wex df-br brco bitr3i ) BCHDEIZJBCRKBALZEKSCDKM
      ANBCROABCDEFGPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Subset theorem for converse.  (Contributed by NM, 22-Mar-1998.) $)
    cnvss $p |- ( A C_ B -> `' A C_ `' B ) $=
      ( vy vx wss wbr copab ccnv cop wcel ssel 3imtr4g ssopab2dv df-cnv 3sstr4g
      cv df-br ) ABEZCPZDPZAFZDCGSTBFZDCGAHBHRUAUBDCRSTIZAJUCBJUAUBABUCKSTAQSTB
      QLMDCANDCBNO $.
  $}

  $( Equality theorem for converse.  (Contributed by NM, 13-Aug-1995.) $)
  cnveq $p |- ( A = B -> `' A = `' B ) $=
    ( wss wa ccnv wceq cnvss anim12i eqss 3imtr4i ) ABCZBACZDAEZBEZCZNMCZDABFMN
    FKOLPABGBAGHABIMNIJ $.

  ${
    cnveqi.1 $e |- A = B $.
    $( Equality inference for converse.  (Contributed by NM, 23-Dec-2008.) $)
    cnveqi $p |- `' A = `' B $=
      ( wceq ccnv cnveq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    cnveqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for converse.  (Contributed by NM, 6-Dec-2013.) $)
    cnveqd $p |- ( ph -> `' A = `' B ) $=
      ( wceq ccnv cnveq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( Membership in a converse.  Equation 5 of [Suppes] p. 62.  (Contributed
       by NM, 24-Mar-1998.) $)
    elcnv $p |- ( A e. `' R <-> E. x E. y ( A = <. x , y >. /\ y R x ) ) $=
      ( ccnv wcel cv wbr copab cop wceq wa wex df-cnv eleq2i elopab bitri ) CDE
      ZFCBGZAGZDHZABIZFCTSJKUALBMAMRUBCABDNOUAABCPQ $.

    $( Membership in a converse.  Equation 5 of [Suppes] p. 62.  (Contributed
       by NM, 11-Aug-2004.) $)
    elcnv2 $p |- ( A e. `' R <->
                 E. x E. y ( A = <. x , y >. /\ <. y , x >. e. R ) ) $=
      ( ccnv wcel cv cop wceq wbr wa wex elcnv df-br anbi2i 2exbii bitri ) CDEF
      CAGZBGZHIZSRDJZKZBLALTSRHDFZKZBLALABCDMUBUDABUAUCTSRDNOPQ $.
  $}

  ${
    $d y z A $.  $d x y z $.
    nfcnv.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for converse.  (Contributed by NM,
       31-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfcnv $p |- F/_ x `' A $=
      ( vz vy ccnv cv wbr copab df-cnv nfcv nfbr nfopab nfcxfr ) ABFDGZEGZBHZED
      IEDBJQEDAAOPBAOKCAPKLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( Ordered-pair membership in converse.  (Contributed by NM, 13-May-1999.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    opelcnvg $p |- ( ( A e. C /\ B e. D ) ->
                     ( <. A , B >. e. `' R <-> <. B , A >. e. R ) ) $=
      ( vy vx wcel wa ccnv wbr cop cv breq2 breq1 df-cnv brabg df-br 3bitr3g )
      ACHBDHIABEJZKBAEKZABLTHBALEHFMZGMZEKUBAEKUAGFABCDTUCAUBENUBBAEOGFEPQABTRB
      AERS $.
  $}

  $( The converse of a binary relation swaps arguments.  Theorem 11 of [Suppes]
     p. 61.  (Contributed by NM, 10-Oct-2005.) $)
  brcnvg $p |- ( ( A e. C /\ B e. D ) -> ( A `' R B <-> B R A ) ) $=
    ( wcel wa cop ccnv wbr opelcnvg df-br 3bitr4g ) ACFBDFGABHEIZFBAHEFABNJBAEJ
    ABCDEKABNLBAELM $.

  ${
    opelcnv.1 $e |- A e. _V $.
    opelcnv.2 $e |- B e. _V $.
    $( Ordered-pair membership in converse.  (Contributed by NM,
       13-Aug-1995.) $)
    opelcnv $p |- ( <. A , B >. e. `' R <-> <. B , A >. e. R ) $=
      ( cvv wcel cop ccnv wb opelcnvg mp2an ) AFGBFGABHCIGBAHCGJDEABFFCKL $.

    $( The converse of a binary relation swaps arguments.  Theorem 11 of
       [Suppes] p. 61.  (Contributed by NM, 13-Aug-1995.) $)
    brcnv $p |- ( A `' R B <-> B R A ) $=
      ( cvv wcel ccnv wbr wb brcnvg mp2an ) AFGBFGABCHIBACIJDEABFFCKL $.
  $}

  ${
    $d y z A $.  $d y z F $.  $d y z V $.  $d x y z $.
    $( Move class substitution in and out of the converse of a function.
       (Contributed by Thierry Arnoux, 8-Feb-2017.) $)
    csbcnvg $p |- ( A e. V -> `' [_ A / x ]_ F = [_ A / x ]_ `' F ) $=
      ( vz vy wcel csb ccnv cv wbr copab wsbc sbcbrg csbconstg breq12d opabbidv
      bitrd csbopabg df-cnv wceq a1i 3eqtr4rd csbeq2i syl6eqr ) BDGZABCHZIZABEJ
      ZFJZCKZFELZHZABCIZHUFUKABMZFELUIUJUGKZFELZUMUHUFUOUPFEUFUOABUIHZABUJHZUGK
      UPABUIUJDCNUFURUIUSUJUGABUIDOABUJDOPRQUKAFEBDSUHUQUAUFFEUGTUBUCABUNULFECT
      UDUE $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( Distributive law of converse over class composition.  Theorem 26 of
       [Suppes] p. 64.  (Contributed by NM, 19-Mar-1998.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    cnvco $p |- `' ( A o. B ) = ( `' B o. `' A ) $=
      ( vx vy vz cv ccom wbr copab ccnv wa wex exancom brco brcnv anbi12i exbii
      vex 3bitr4i opabbii df-cnv df-co 3eqtr4i ) CFZDFZABGZHZDCIUEEFZAJZHZUHUDB
      JZHZKZELZDCIUFJUKUIGUGUNDCUDUHBHZUHUEAHZKELUPUOKZELUGUNUOUPEMEUDUEABCRZDR
      ZNUMUQEUJUPULUOUEUHAUSERZOUHUDBUTUROPQSTDCUFUADCEUKUIUBUC $.
  $}

  ${
    $d x y z w A $.
    $( The converse of a class union is the (indexed) union of the converses of
       its members.  (Contributed by NM, 11-Aug-2004.) $)
    cnvuni $p |- `' U. A = U_ x e. A `' x $=
      ( vy vz vw cuni ccnv cv ciun wcel wrex cop wa elcnv2 eluni2 anbi2i bitr4i
      wceq wex rexcom4 r19.42v 2exbii rexbii exbii 3bitrri 3bitri eliun eqriv )
      CBFZGZABAHZGZIZCHZUJJZUNULJZABKZUNUMJUOUNDHZEHZLRZUSURLZUIJZMZESDSUTVAUKJ
      ZMZABKZESZDSZUQDEUNUINVCVFDEVCUTVDABKZMVFVBVIUTAVABOPUTVDABUAQUBUQVEESZDS
      ZABKVJABKZDSVHUPVKABDEUNUKNUCVJADBTVLVGDVEAEBTUDUEUFAUNBULUGQUH $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of domain.  Definition 6.5(1) of [TakeutiZaring]
       p. 24.  (Contributed by NM, 28-Dec-1996.) $)
    dfdm3 $p |- dom A = { x | E. y <. x , y >. e. A } $=
      ( cdm cv wbr wex cab cop wcel df-dm df-br exbii abbii eqtri ) CDAEZBEZCFZ
      BGZAHPQICJZBGZAHABCKSUAARTBPQCLMNO $.

    $( Alternate definition of range.  Definition 4 of [Suppes] p. 60.
       (Contributed by NM, 27-Dec-1996.) $)
    dfrn2 $p |- ran A = { y | E. x x A y } $=
      ( crn ccnv cdm cv wbr wex cab df-rn df-dm vex brcnv exbii abbii 3eqtri )
      CDCEZFBGZAGZRHZAIZBJTSCHZAIZBJCKBARLUBUDBUAUCASTCBMAMNOPQ $.

    $( Alternate definition of range.  Definition 6.5(2) of [TakeutiZaring]
       p. 24.  (Contributed by NM, 28-Dec-1996.) $)
    dfrn3 $p |- ran A = { y | E. x <. x , y >. e. A } $=
      ( crn cv wbr wex cab cop wcel dfrn2 df-br exbii abbii eqtri ) CDAEZBEZCFZ
      AGZBHPQICJZAGZBHABCKSUABRTAPQCLMNO $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Membership in a range.  (Contributed by Scott Fenton, 2-Feb-2011.) $)
    elrn2g $p |- ( A e. V -> ( A e. ran B <-> E. x <. x , A >. e. B ) ) $=
      ( vy cv cop wcel wex crn wceq opeq2 eleq1d exbidv dfrn3 elab2g ) AFZEFZGZ
      CHZAIQBGZCHZAIEBCJDRBKZTUBAUCSUACRBQLMNAECOP $.

    $( Membership in a range.  (Contributed by Scott Fenton, 2-Feb-2011.) $)
    elrng $p |- ( A e. V -> ( A e. ran B <-> E. x x B A ) ) $=
      ( wcel crn cv cop wex wbr elrn2g df-br exbii syl6bbr ) BDEBCFEAGZBHCEZAIO
      BCJZAIABCDKQPAOBCLMN $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of domain.  (Contributed by NM, 28-Dec-1996.) $)
    dfdm4 $p |- dom A = ran `' A $=
      ( vy vx cv wbr wex cab crn cdm vex brcnv exbii abbii dfrn2 df-dm 3eqtr4ri
      ccnv ) BDZCDZAQZEZBFZCGSRAEZBFZCGTHAIUBUDCUAUCBRSABJCJKLMBCTNCBAOP $.
  $}

  ${
    $d x y w v $.  $d w v A $.
    dfdmf.1 $e |- F/_ x A $.
    dfdmf.2 $e |- F/_ y A $.
    $( Definition of domain, using bound-variable hypotheses instead of
       distinct variable conditions.  (Contributed by NM, 8-Mar-1995.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    dfdmf $p |- dom A = { x | E. y x A y } $=
      ( vw vv cdm cv wbr wex cab df-dm nfcv nfbr nfv breq2 cbvex abbii nfex weq
      breq1 exbidv cbvab 3eqtri ) CHFIZGIZCJZGKZFLUFBIZCJZBKZFLAIZUJCJZBKZALFGC
      MUIULFUHUKGBBUFUGCBUFNEBUGNOUKGPUGUJUFCQRSULUOFAUKABAUFUJCAUFNDAUJNOTUOFP
      FAUAUKUNBUFUMUJCUBUCUDUE $.
  $}

  ${
    $d A w y $.  $d B w y $.  $d V w y $.  $d x w y $.
    $( Distribute proper substitution through the domain of a class.
       (Contributed by Jim Kingdon, 8-Dec-2018.) $)
    csbdmg $p |- ( A e. V -> [_ A / x ]_ dom B = dom [_ A / x ]_ B ) $=
      ( vy vw wcel cop wex cab csb cdm wsbc csbabg sbcex2 sbcel2g exbidv syl5bb
      cv dfdm3 abbidv eqtrd csbeq2i 3eqtr4g ) BDGZABESFSHZCGZFIZEJZKZUFABCKZGZF
      IZEJZABCLZKUKLUEUJUHABMZEJUNUHAEBDNUEUPUMEUPUGABMZFIUEUMUGFABOUEUQULFABUF
      CDPQRUAUBABUOUIEFCTUCEFUKTUD $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Domain membership.  Theorem 4 of [Suppes] p. 59.  (Contributed by Mario
       Carneiro, 9-Jul-2014.) $)
    eldmg $p |- ( A e. V -> ( A e. dom B <-> E. y A B y ) ) $=
      ( vx cv wbr wex cdm wceq breq1 exbidv df-dm elab2g ) EFZAFZCGZAHBPCGZAHEB
      CIDOBJQRAOBPCKLEACMN $.

    $( Domain membership.  Theorem 4 of [Suppes] p. 59.  (Contributed by NM,
       27-Jan-1997.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    eldm2g $p |- ( A e. V -> ( A e. dom B <-> E. y <. A , y >. e. B ) ) $=
      ( wcel cdm cv wbr wex cop eldmg df-br exbii syl6bb ) BDEBCFEBAGZCHZAIBOJC
      EZAIABCDKPQABOCLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.
    eldm.1 $e |- A e. _V $.
    $( Membership in a domain.  Theorem 4 of [Suppes] p. 59.  (Contributed by
       NM, 2-Apr-2004.) $)
    eldm $p |- ( A e. dom B <-> E. y A B y ) $=
      ( cvv wcel cdm cv wbr wex wb eldmg ax-mp ) BEFBCGFBAHCIAJKDABCELM $.

    $( Membership in a domain.  Theorem 4 of [Suppes] p. 59.  (Contributed by
       NM, 1-Aug-1994.) $)
    eldm2 $p |- ( A e. dom B <-> E. y <. A , y >. e. B ) $=
      ( cvv wcel cdm cv cop wex wb eldm2g ax-mp ) BEFBCGFBAHICFAJKDABCELM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Subset theorem for domain.  (Contributed by NM, 11-Aug-1994.) $)
    dmss $p |- ( A C_ B -> dom A C_ dom B ) $=
      ( vx vy wss cdm cv cop wcel wex ssel eximdv vex eldm2 3imtr4g ssrdv ) ABE
      ZCAFZBFZQCGZDGHZAIZDJUABIZDJTRITSIQUBUCDABUAKLDTACMZNDTBUDNOP $.
  $}

  $( Equality theorem for domain.  (Contributed by NM, 11-Aug-1994.) $)
  dmeq $p |- ( A = B -> dom A = dom B ) $=
    ( wss wa cdm wceq dmss anim12i eqss 3imtr4i ) ABCZBACZDAEZBEZCZNMCZDABFMNFK
    OLPABGBAGHABIMNIJ $.

  ${
    dmeqi.1 $e |- A = B $.
    $( Equality inference for domain.  (Contributed by NM, 4-Mar-2004.) $)
    dmeqi $p |- dom A = dom B $=
      ( wceq cdm dmeq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    dmeqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for domain.  (Contributed by NM, 4-Mar-2004.) $)
    dmeqd $p |- ( ph -> dom A = dom B ) $=
      ( wceq cdm dmeq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.
    opeldm.1 $e |- A e. _V $.
    opeldm.2 $e |- B e. _V $.
    $( Membership of first of an ordered pair in a domain.  (Contributed by NM,
       30-Jul-1995.) $)
    opeldm $p |- ( <. A , B >. e. C -> A e. dom C ) $=
      ( vy cop wcel cv wex cdm wceq opeq2 eleq1d spcev eldm2 sylibr ) ABGZCHZAF
      IZGZCHZFJACKHUBSFBETBLUARCTBAMNOFACDPQ $.

    $( Membership of first of a binary relation in a domain.  (Contributed by
       NM, 30-Jul-1995.) $)
    breldm $p |- ( A R B -> A e. dom R ) $=
      ( wbr cop wcel cdm df-br opeldm sylbi ) ABCFABGCHACIHABCJABCDEKL $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.
    $( Membership of first of an ordered pair in a domain.  (Contributed by Jim
       Kingdon, 9-Jul-2019.) $)
    opeldmg $p |- ( ( A e. V /\ B e. W ) ->
        ( <. A , B >. e. C -> A e. dom C ) ) $=
      ( vy wcel wa cop cv wex cdm wi wceq opeq2 eleq1d spcegv adantl wb eldm2g
      adantr sylibrd ) ADGZBEGZHABIZCGZAFJZIZCGZFKZACLGZUDUFUJMUCUIUFFBEUGBNUHU
      ECUGBAOPQRUCUKUJSUDFACDTUAUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x R $.
    $( Membership of first of a binary relation in a domain.  (Contributed by
       NM, 21-Mar-2007.) $)
    breldmg $p |- ( ( A e. C /\ B e. D /\ A R B ) -> A e. dom R ) $=
      ( vx wbr w3a cdm cv wex breq2 spcegv imp 3adant1 wb eldmg 3ad2ant1 mpbird
      wcel ) ACTZBDTZABEGZHAEITZAFJZEGZFKZUBUCUGUAUBUCUGUFUCFBDUEBAELMNOUAUBUDU
      GPUCFAECQRS $.

    $( The domain of a union is the union of domains.  Exercise 56(a) of
       [Enderton] p. 65.  (Contributed by NM, 12-Aug-1994.)  (Proof shortened
       by Andrew Salmon, 27-Aug-2011.) $)
    dmun $p |- dom ( A u. B ) = ( dom A u. dom B ) $=
      ( vy vx cv wbr wex cab cun cdm wo unab brun exbii 19.43 abbii eqtri df-dm
      bitr2i uneq12i 3eqtr4ri ) CEZDEZAFZDGZCHZUBUCBFZDGZCHZIZUBUCABIZFZDGZCHZA
      JZBJZIUKJUJUEUHKZCHUNUEUHCLUQUMCUMUDUGKZDGUQULURDUBUCABMNUDUGDOSPQUOUFUPU
      ICDARCDBRTCDUKRUA $.

    $( The domain of an intersection belong to the intersection of domains.
       Theorem 6 of [Suppes] p. 60.  (Contributed by NM, 15-Sep-2004.) $)
    dmin $p |- dom ( A i^i B ) C_ ( dom A i^i dom B ) $=
      ( vx vy cin cdm cv cop wcel wa wex 19.40 eldm2 elin exbii anbi12i 3imtr4i
      vex bitri ssriv ) CABEZFZAFZBFZEZCGZDGHZAIZUGBIZJZDKZUHDKZUIDKZJZUFUBIZUF
      UEIZUHUIDLUOUGUAIZDKUKDUFUACRZMUQUJDUGABNOSUPUFUCIZUFUDIZJUNUFUCUDNUSULUT
      UMDUFAURMDUFBURMPSQT $.

  $}

  ${
    $d x y z $.  $d y z A $.  $d y z B $.
    $( The domain of an indexed union.  (Contributed by Mario Carneiro,
       26-Apr-2016.) $)
    dmiun $p |- dom U_ x e. A B = U_ x e. A dom B $=
      ( vy vz ciun cdm cv cop wcel wex wrex rexcom4 eldm2 rexbii eliun 3bitr4ri
      vex exbii 3bitr4i eqriv ) DABCFZGZABCGZFZDHZEHIZUBJZEKZUFUDJZABLZUFUCJUFU
      EJUGCJZEKZABLULABLZEKUKUIULAEBMUJUMABEUFCDRZNOUHUNEAUGBCPSQEUFUBUONAUFBUD
      PTUA $.

    $d x A $.
    $( The domain of a union.  Part of Exercise 8 of [Enderton] p. 41.
       (Contributed by NM, 3-Feb-2004.) $)
    dmuni $p |- dom U. A = U_ x e. A dom x $=
      ( vy vz cuni cdm cv ciun cop wcel wex wrex excom ancom 19.41v vex 3bitr4i
      wa eldm2 exbii anbi2i bitri eluni df-rex eliun eqriv ) CBEZFZABAGZFZHZCGZ
      DGIZUGJZDKZULUJJZABLZULUHJULUKJUMUIJZUIBJZRZAKZDKZUSUPRZAKZUOUQVBUTDKZAKV
      DUTDAMVEVCAURDKZUSRUSVFRVEVCVFUSNURUSDOUPVFUSDULUICPZSUAQTUBUNVADAUMBUCTU
      PABUDQDULUGVGSAULBUJUEQUF $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( The domain of a class of ordered pairs.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 4-Dec-2016.) $)
    dmopab $p |- dom { <. x , y >. | ph } = { x | E. y ph } $=
      ( copab cdm wbr wex cab nfopab1 nfopab2 dfdmf cop wcel df-br opabid bitri
      cv exbii abbii eqtri ) ABCDZEBQZCQZUAFZCGZBHACGZBHBCUAABCIABCJKUEUFBUDACU
      DUBUCLUAMAUBUCUANABCOPRST $.
  $}

  ${
    $d x y A $.
    $( Upper bound for the domain of a restricted class of ordered pairs.
       (Contributed by NM, 31-Jan-2004.) $)
    dmopabss $p |- dom { <. x , y >. | ( x e. A /\ ph ) } C_ A $=
      ( cv wcel wa copab cdm wex cab dmopab 19.42v abbii ssab2 eqsstri ) BEDFZA
      GZBCHIRCJZBKZDRBCLTQACJZGZBKDSUBBQACMNUABDOPP $.
  $}

  ${
    $d x y A $.
    $( The domain of a restricted class of ordered pairs.  (Contributed by NM,
       31-Jan-2004.) $)
    dmopab3 $p |- ( A. x e. A E. y ph <->
               dom { <. x , y >. | ( x e. A /\ ph ) } = A ) $=
      ( wex wral cv wcel wi wal wa wb copab cdm wceq df-ral pm4.71 albii dmopab
      cab 19.42v abbii eqtri eqeq1i eqcom abeq2 3bitr2ri 3bitri ) ACEZBDFBGDHZU
      IIZBJUJUJUIKZLZBJZUJAKZBCMNZDOZUIBDPUKUMBUJUIQRUQULBTZDODUROUNUPURDUPUOCE
      ZBTURUOBCSUSULBUJACUAUBUCUDDURUEULBDUFUGUH $.
  $}

  ${
    $d x y $.
    $( The domain of the empty set is empty.  Part of Theorem 3.8(v) of [Monk1]
       p. 36.  (Contributed by NM, 4-Jul-1994.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dm0 $p |- dom (/) = (/) $=
      ( vx vy c0 cdm wceq cv wcel eq0 cop wex noel nex vex eldm2 mtbir mpgbir
      wn ) CDZCEAFZRGZQAARHTSBFIZCGZBJUBBUAKLBSCAMNOP $.

    $( The domain of the identity relation is the universe.  (Contributed by
       NM, 30-Apr-1998.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    dmi $p |- dom _I = _V $=
      ( vx vy cid cdm cvv wceq cv wcel eqv wbr wex a9ev ideq equcom bitri exbii
      vex mpbir eldm mpgbir ) CDZEFAGZUAHZAAUAIUCUBBGZCJZBKZUFUDUBFZBKBALUEUGBU
      EUBUDFUGUBUDBQMABNOPRBUBCAQSRT $.

    $( The domain of the universe is the universe.  (Contributed by NM,
       8-Aug-2003.) $)
    dmv $p |- dom _V = _V $=
      ( cvv cdm ssv cid dmi wss dmss ax-mp eqsstr3i eqssi ) ABZAKCADBZKEDAFLKFD
      CDAGHIJ $.
  $}

  ${
    $d x y A $.
    $( An empty domain implies an empty range.  (Contributed by NM,
       21-May-1998.) $)
    dm0rn0 $p |- ( dom A = (/) <-> ran A = (/) ) $=
      ( vx vy cv wbr wex cab c0 wceq wcel wb wal alnex noel albii abeq1 3bitr4i
      wn nbn eqeq1i cdm crn excom xchbinx bitr4i 3bitr3i df-dm dfrn2 ) BDZCDZAE
      ZCFZBGZHIZUKBFZCGZHIZAUAZHIAUBZHIULUIHJZKZBLZUOUJHJZKZCLZUNUQULRZBLZUORZC
      LZVBVEVGUOCFZRVIVGULBFVJULBMUKBCUCUDUOCMUEVFVABUTULUINSOVHVDCVCUOUJNSOUFU
      LBHPUOCHPQURUMHBCAUGTUSUPHBCAUHTQ $.

    $( A relation is empty iff its domain is empty.  (Contributed by NM,
       15-Sep-2004.) $)
    reldm0 $p |- ( Rel A -> ( A = (/) <-> dom A = (/) ) ) $=
      ( vx vy wrel c0 wceq cv cop wcel wb wal cdm rel0 eqrel mpan2 wn eq0 alnex
      wex albii vex eldm2 xchbinxr noel nbn bitr3i bitr2i syl6bb ) ADZAEFZBGZCG
      HZAIZULEIZJZCKZBKZALZEFZUIEDUJUQJMBCAENOUSUKURIZPZBKUQBURQVAUPBVAUMPZCKZU
      PVCUMCSUTUMCRCUKABUAUBUCVBUOCUNUMULUDUETUFTUGUH $.
  $}

  ${
    $d y z A $.  $d x z A $.
    $( A domain is inhabited if and only if the range is inhabited.
       (Contributed by Jim Kingdon, 15-Dec-2018.) $)
    dmmrnm $p |- ( E. x x e. dom A <-> E. y y e. ran A ) $=
      ( vz cv cdm wcel wex wbr crn cab df-dm exbii abid bitri dfrn2 excom eleq1
      eleq2i cbvexv 3bitr2i ) AEZCFZGZAHZUBDEZCIZDHZAHZUFCJZGZDHZBEZUJGZBHUEUBU
      HAKZGZAHUIUDUPAUCUOUBADCLSMUPUHAUHANMOULUFUGAHZDKZGZDHZUIUKUSDUJURUFADCPS
      MUTUQDHUIUSUQDUQDNMUGDAQOOUKUNDBUFUMUJRTUA $.
  $}

  ${
    $d y z A $.  $d x y z B $.
    $( The domain of a cross product.  Part of Theorem 3.13(x) of [Monk1]
       p. 37.  (Contributed by NM, 28-Jul-1995.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dmxpm $p |- ( E. x x e. B -> dom ( A X. B ) = A ) $=
      ( vz vy cv wcel wex cxp cdm wceq eleq1 cbvexv copab df-xp dmeqi ralrimivw
      wa wral id dmopab3 sylib syl5eq sylbi ) AFZCGZAHDFZCGZDHZBCIZJZBKUFUHADUE
      UGCLMUIUKEFBGUHREDNZJZBUJULEDBCOPUIUIEBSUMBKUIUIEBUITQUHEDBUAUBUCUD $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The domain of the intersection of two square cross products.  Unlike
       ~ dmin , equality holds.  (Contributed by NM, 29-Jan-2008.) $)
    dmxpinm $p |- ( E. x x e. ( A i^i B ) ->
        dom ( ( A X. A ) i^i ( B X. B ) ) = ( A i^i B ) ) $=
      ( cv cin wcel wex cxp cdm wceq inxp dmeqi a1i dmxpm eqtrd ) ADBCEZFAGZBBH
      CCHEZIZPPHZIZPSUAJQRTBBCCKLMAPPNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The cross product of a class with itself is one-to-one.  (Contributed by
       Jim Kingdon, 8-Dec-2018.) $)
    xpid11m $p |- ( ( E. x x e. A /\ E. x x e. B ) ->
        ( ( A X. A ) = ( B X. B ) <-> A = B ) ) $=
      ( cv wcel wex wa cxp wceq cdm dmxpm adantr dmeq sylan9req ad2antlr xpeq12
      eqtrd ex anidms impbid1 ) ADZBEAFZUACEAFZGZBBHZCCHZIZBCIZUDUGUHUDUGGBUFJZ
      CUDUGBUEJZUIUBUJBIUCABBKLUEUFMNUCUICIUBUGACCKOQRUHUGBCBCPST $.
  $}

  $( The domain of the double converse of a class (which doesn't have to be a
     relation as in ~ dfrel2 ).  (Contributed by NM, 8-Apr-2007.) $)
  dmcnvcnv $p |- dom `' `' A = dom A $=
    ( cdm ccnv crn dfdm4 df-rn eqtr2i ) ABACZDHCBAEHFG $.

  $( The range of the double converse of a class.  (Contributed by NM,
     8-Apr-2007.) $)
  rncnvcnv $p |- ran `' `' A = ran A $=
    ( crn ccnv cdm df-rn dfdm4 eqtr2i ) ABACZDHCBAEHFG $.

  ${
    $d x y A $.  $d x y B $.
    $( The first member of an ordered pair in a relation belongs to the domain
       of the relation.  (Contributed by NM, 28-Jul-2004.) $)
    elreldm $p |- ( ( Rel A /\ B e. A ) -> |^| |^| B e. dom A ) $=
      ( vx vy wrel wcel cint cdm cv cop wceq wex cvv cxp wss wi df-rel ssel vex
      sylbi elvv syl6ib eleq1 opeldm syl6bi inteqd op1stb syl6eq eleq1d sylibrd
      inteq exlimivv syli imp ) AEZBAFZBGZGZAHZFZUPUOBCIZDIZJZKZDLCLZUTUOUPBMMN
      ZFZVEUOAVFOUPVGPAQAVFBRTCDBUAUBVDUPUTPCDVDUPVAUSFZUTVDUPVCAFVHBVCAUCVAVBA
      CSZDSZUDUEVDURVAUSVDURVCGZGVAVDUQVKBVCUKUFVAVBVIVJUGUHUIUJULUMUN $.
  $}

  $( Equality theorem for range.  (Contributed by NM, 29-Dec-1996.) $)
  rneq $p |- ( A = B -> ran A = ran B ) $=
    ( wceq ccnv cdm crn cnveq dmeqd df-rn 3eqtr4g ) ABCZADZEBDZEAFBFKLMABGHAIBI
    J $.

  ${
    rneqi.1 $e |- A = B $.
    $( Equality inference for range.  (Contributed by NM, 4-Mar-2004.) $)
    rneqi $p |- ran A = ran B $=
      ( wceq crn rneq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    rneqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for range.  (Contributed by NM, 4-Mar-2004.) $)
    rneqd $p |- ( ph -> ran A = ran B ) $=
      ( wceq crn rneq syl ) ABCEBFCFEDBCGH $.
  $}

  $( Subset theorem for range.  (Contributed by NM, 22-Mar-1998.) $)
  rnss $p |- ( A C_ B -> ran A C_ ran B ) $=
    ( wss ccnv cdm crn cnvss dmss syl df-rn 3sstr4g ) ABCZADZEZBDZEZAFBFLMOCNPC
    ABGMOHIAJBJK $.

  $( The second argument of a binary relation belongs to its range.
     (Contributed by NM, 29-Jun-2008.) $)
  brelrng $p |- ( ( A e. F /\ B e. G /\ A C B ) -> B e. ran C ) $=
    ( wcel wbr w3a ccnv cdm crn wb brcnvg ancoms biimp3ar 3com12 syld3an3 df-rn
    breldmg syl6eleqr ) ADFZBEFZABCGZHBCIZJZCKUAUBUCBAUDGZBUEFZUAUBUFUCUBUAUFUC
    LBAEDCMNOUBUAUFUGBAEDUDSPQCRT $.

  $( Membership of second member of an ordered pair in a range.  (Contributed
     by Jim Kingdon, 26-Jan-2019.) $)
  opelrng $p |- ( ( A e. F /\ B e. G /\ <. A , B >. e. C ) -> B e. ran C ) $=
    ( cop wcel wbr crn df-br brelrng syl3an3br ) ABFCGADGBEGABCHBCIGABCJABCDEKL
    $.

  ${
    brelrn.1 $e |- A e. _V $.
    brelrn.2 $e |- B e. _V $.
    $( The second argument of a binary relation belongs to its range.
       (Contributed by NM, 13-Aug-2004.) $)
    brelrn $p |- ( A C B -> B e. ran C ) $=
      ( cvv wcel wbr crn brelrng mp3an12 ) AFGBFGABCHBCIGDEABCFFJK $.

    $( Membership of second member of an ordered pair in a range.  (Contributed
       by NM, 23-Feb-1997.) $)
    opelrn $p |- ( <. A , B >. e. C -> B e. ran C ) $=
      ( cop wcel wbr crn df-br brelrn sylbir ) ABFCGABCHBCIGABCJABCDEKL $.
  $}

  $( The first argument of a binary relation belongs to its domain.
     (Contributed by NM, 2-Jul-2008.) $)
  releldm $p |- ( ( Rel R /\ A R B ) -> A e. dom R ) $=
    ( wrel wbr wa cvv wcel cdm brrelex brrelex2 simpr breldmg syl3anc ) CDZABCE
    ZFAGHBGHPACIHABCJABCKOPLABGGCMN $.

  $( The second argument of a binary relation belongs to its range.
     (Contributed by NM, 2-Jul-2008.) $)
  relelrn $p |- ( ( Rel R /\ A R B ) -> B e. ran R ) $=
    ( wrel wbr wa cvv wcel crn brrelex brrelex2 simpr brelrng syl3anc ) CDZABCE
    ZFAGHBGHPBCIHABCJABCKOPLABCGGMN $.

  ${
    $d x A $.  $d x R $.
    $( Membership in a domain.  (Contributed by Mario Carneiro, 5-Nov-2015.) $)
    releldmb $p |- ( Rel R -> ( A e. dom R <-> E. x A R x ) ) $=
      ( wrel cdm wcel cv wbr wex eldmg ibi releldm ex exlimdv impbid2 ) CDZBCEZ
      FZBAGZCHZAIZRUAABCQJKPTRAPTRBSCLMNO $.

    $( Membership in a range.  (Contributed by Mario Carneiro, 5-Nov-2015.) $)
    relelrnb $p |- ( Rel R -> ( A e. ran R <-> E. x x R A ) ) $=
      ( wrel crn wcel cv wbr wex elrng ibi relelrn ex exlimdv impbid2 ) CDZBCEZ
      FZAGZBCHZAIZRUAABCQJKPTRAPTRSBCLMNO $.
  $}

  ${
    releldm.1 $e |- Rel R $.
    $( The first argument of a binary relation belongs to its domain.
       (Contributed by NM, 28-Apr-2015.) $)
    releldmi $p |- ( A R B -> A e. dom R ) $=
      ( wrel wbr cdm wcel releldm mpan ) CEABCFACGHDABCIJ $.

    $( The second argument of a binary relation belongs to its range.
       (Contributed by NM, 28-Apr-2015.) $)
    relelrni $p |- ( A R B -> B e. ran R ) $=
      ( wrel wbr crn wcel relelrn mpan ) CEABCFBCGHDABCIJ $.
  $}

  ${
    $d x y w v $.  $d w v A $.
    dfrnf.1 $e |- F/_ x A $.
    dfrnf.2 $e |- F/_ y A $.
    $( Definition of range, using bound-variable hypotheses instead of distinct
       variable conditions.  (Contributed by NM, 14-Aug-1995.)  (Revised by
       Mario Carneiro, 15-Oct-2016.) $)
    dfrnf $p |- ran A = { y | E. x x A y } $=
      ( vv vw crn cv wbr wex cab dfrn2 nfcv nfbr nfv breq1 cbvex abbii nfex weq
      breq2 exbidv cbvab 3eqtri ) CHFIZGIZCJZFKZGLAIZUGCJZAKZGLUJBIZCJZAKZBLFGC
      MUIULGUHUKFAAUFUGCAUFNDAUGNOUKFPUFUJUGCQRSULUOGBUKBABUJUGCBUJNEBUGNOTUOGP
      GBUAUKUNAUGUMUJCUBUCUDUE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    elrn.1 $e |- A e. _V $.
    $( Membership in a range.  (Contributed by NM, 10-Jul-1994.) $)
    elrn2 $p |- ( A e. ran B <-> E. x <. x , A >. e. B ) $=
      ( vy cv cop wcel wex crn wceq opeq2 eleq1d exbidv dfrn3 elab2 ) AFZEFZGZC
      HZAIQBGZCHZAIEBCJDRBKZTUBAUCSUACRBQLMNAECOP $.

    $( Membership in a range.  (Contributed by NM, 2-Apr-2004.) $)
    elrn $p |- ( A e. ran B <-> E. x x B A ) $=
      ( crn wcel cv cop wex wbr elrn2 df-br exbii bitr4i ) BCEFAGZBHCFZAIOBCJZA
      IABCDKQPAOBCLMN $.
  $}

  ${
    $d x y z $.  $d y z A $.
    nfrn.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for domain.  (Contributed by NM,
       30-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfdm $p |- F/_ x dom A $=
      ( vy vz cdm cv wbr wex cab df-dm nfcv nfbr nfex nfab nfcxfr ) ABFDGZEGZBH
      ZEIZDJDEBKTADSAEAQRBAQLCARLMNOP $.

    $( Bound-variable hypothesis builder for range.  (Contributed by NM,
       1-Sep-1999.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfrn $p |- F/_ x ran A $=
      ( crn ccnv cdm df-rn nfcnv nfdm nfcxfr ) ABDBEZFBGAKABCHIJ $.
  $}

  ${
    $d A z $.  $d B z $.  $d x z $.
    $( Domain of an intersection.  (Contributed by FL, 15-Oct-2012.) $)
    dmiin $p |- dom |^|_ x e. A B C_ |^|_ x e. A dom B $=
      ( ciin cdm wss nfii1 nfdm ssiinf cv wcel iinss2 dmss syl mprgbir ) ABCDZE
      ZABCEZDFQRFZABABRQAPABCGHIAJBKPCFSABCLPCMNO $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( The range of a class of ordered pairs.  (Contributed by NM,
       14-Aug-1995.)  (Revised by Mario Carneiro, 4-Dec-2016.) $)
    rnopab $p |- ran { <. x , y >. | ph } = { y | E. x ph } $=
      ( copab crn wbr wex cab nfopab1 nfopab2 dfrnf cop wcel df-br opabid bitri
      cv exbii abbii eqtri ) ABCDZEBQZCQZUAFZBGZCHABGZCHBCUAABCIABCJKUEUFCUDABU
      DUBUCLUAMAUBUCUANABCOPRST $.
  $}

  ${
    $d w y z A $.  $d w y z B $.  $d w x y z C $.
    rnmpt.1 $e |- F = ( x e. A |-> B ) $.
    $( The range of a function in maps-to notation.  (Contributed by Scott
       Fenton, 21-Mar-2011.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    rnmpt $p |- ran F = { y | E. x e. A y = B } $=
      ( cv wcel wceq wa copab crn wex cab wrex rnopab cmpt df-mpt eqtri rneqi
      df-rex abbii 3eqtr4i ) AGCHBGDIZJZABKZLUEAMZBNELUDACOZBNUEABPEUFEACDQUFFA
      BCDRSTUHUGBUDACUAUBUC $.

    $( The range of a function in maps-to notation.  (Contributed by Mario
       Carneiro, 20-Feb-2015.) $)
    elrnmpt $p |- ( C e. V -> ( C e. ran F <-> E. x e. A C = B ) ) $=
      ( vy cv wceq wrex crn eqeq1 rexbidv rnmpt elab2g ) HIZCJZABKDCJZABKHDELFQ
      DJRSABQDCMNAHBCEGOP $.

    ${
      $d x A $.  $d x D $.
      elrnmpt1s.1 $e |- ( x = D -> B = C ) $.
      $( Elementhood in an image set.  (Contributed by Mario Carneiro,
         12-Sep-2015.) $)
      elrnmpt1s $p |- ( ( D e. A /\ C e. V ) -> C e. ran F ) $=
        ( wcel wceq wrex crn eqid cv eqeq2d rspcev mpan2 elrnmpt biimparc sylan
        ) EBJZDCKZABLZDGJZDFMJZUBDDKZUDDNUCUGAEBAOEKCDDIPQRUEUFUDABCDFGHSTUA $.
    $}

    $( Elementhood in an image set.  (Contributed by Mario Carneiro,
       31-Aug-2015.) $)
    elrnmpt1 $p |- ( ( x e. A /\ B e. V ) -> B e. ran F ) $=
      ( vz vy wcel cv crn csb wceq wa wex vex wb id csbeq1a nfcsb1v bitr2d wrex
      eleq12d biantrud equcoms spcev df-rex nfv nfcri nfeq2 nfan eqeq2d anbi12d
      cbvex bitri eqeq1 anbi2d exbidv syl5bb rnmpt elab2g syl5ibr impcom ) CEIZ
      AJZBIZCDKZIZVFVHVDGJZAVIBLZIZCAVICLZMZNZGOZVNVFGVEAPVNVFQAGVEVIMZVFVKVNVP
      VEVIBVJVPRAVIBSUCZVPVMVKAVICSZUDUAUEUFHJZCMZABUBZVOHCVGEWAVKVSVLMZNZGOZVT
      VOWAVFVTNZAOWDVTABUGWEWCAGWEGUHVKWBAAGVJAVIBTUIAVSVLAVICTUJUKVPVFVKVTWBVQ
      VPCVLVSVRULUMUNUOVTWCVNGVTWBVMVKVSCVLUPUQURUSAHBCDFUTVAVBVC $.

    $( Membership in the range of a function.  (Contributed by NM,
       27-Aug-2007.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    elrnmptg $p |- ( A. x e. A B e. V ->
      ( C e. ran F <-> E. x e. A C = B ) ) $=
      ( vy crn wcel cv wceq wrex cab wral rnmpt eleq2i cvv wa syl wi eleq1 elex
      wb r19.29 biimparc rexlimivw ex eqeq1 rexbidv elab3g syl5bb ) DEIZJDHKZCL
      ZABMZHNZJZCFJZABOZDCLZABMZUMUQDAHBCEGPQUTVBDRJZUAURVBUDUTVBVCUTVBSUSVASZA
      BMVCUSVAABUEVDVCABVDDFJZVCVAVEUSDCFUBUFDFUCTUGTUHUPVBHDRUNDLUOVAABUNDCUIU
      JUKTUL $.

    elrnmpti.2 $e |- B e. _V $.
    $( Membership in the range of a function.  (Contributed by NM,
       30-Aug-2004.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    elrnmpti $p |- ( C e. ran F <-> E. x e. A C = B ) $=
      ( cvv wcel wral crn wceq wrex wb rgenw elrnmptg ax-mp ) CHIZABJDEKIDCLABM
      NRABGOABCDEHFPQ $.
  $}

  $( The range of the empty set is empty.  Part of Theorem 3.8(v) of [Monk1]
     p. 36.  (Contributed by NM, 4-Jul-1994.) $)
  rn0 $p |- ran (/) = (/) $=
    ( c0 cdm wceq crn dm0 dm0rn0 mpbi ) ABACADACEAFG $.

  ${
    $d y z w A $.  $d y z w B $.  $d w C z $.  $d w x y z $.
    $( Alternate definition of indexed union when ` B ` is a set.  (Contributed
       by Mario Carneiro, 31-Aug-2015.) $)
    dfiun3g $p |- ( A. x e. A B e. C ->
                  U_ x e. A B = U. ran ( x e. A |-> B ) ) $=
      ( vy wcel wral ciun wceq wrex cab cuni cmpt crn dfiun2g eqid rnmpt unieqi
      cv syl6eqr ) CDFABGABCHESCIABJEKZLABCMZNZLAEBCDOUCUAAEBCUBUBPQRT $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    dfiin3g $p |- ( A. x e. A B e. C
               -> |^|_ x e. A B = |^| ran ( x e. A |-> B ) ) $=
      ( vy wcel wral ciin wceq wrex cab cint cmpt crn dfiin2g eqid rnmpt inteqi
      cv syl6eqr ) CDFABGABCHESCIABJEKZLABCMZNZLAEBCDOUCUAAEBCUBUBPQRT $.
  $}

  ${
    dfiun3.1 $e |- B e. _V $.
    $( Alternate definition of indexed union when ` B ` is a set.  (Contributed
       by Mario Carneiro, 31-Aug-2015.) $)
    dfiun3 $p |- U_ x e. A B = U. ran ( x e. A |-> B ) $=
      ( cvv wcel ciun cmpt crn cuni wceq dfiun3g cv a1i mprg ) CEFZABCGABCHIJKA
      BABCELPAMBFDNO $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    dfiin3 $p |- |^|_ x e. A B = |^| ran ( x e. A |-> B ) $=
      ( cvv wcel ciin cmpt crn cint wceq dfiin3g cv a1i mprg ) CEFZABCGABCHIJKA
      BABCELPAMBFDNO $.
  $}

  ${
    $d I x $.  $d S x $.  $d V k $.  $d X k $.  $d k x $.
    $( Express a relative indexed intersection as an intersection.
       (Contributed by Stefan O'Rear, 22-Feb-2015.) $)
    riinint $p |- ( ( X e. V /\ A. k e. I S C_ X ) ->
        ( X i^i |^|_ k e. I S ) = |^| ( { X } u. ran ( k e. I |-> S ) ) ) $=
      ( wcel wss wral wa ciin cin cmpt crn cint csn cun cvv wceq ssexg expcom
      ralimdv imp dfiin3g syl ineq2d intun intsng adantr ineq1d syl5eq eqtr4d )
      EDFZAEGZBCHZIZEBCAJZKEBCALMZNZKZEOZUQPNZUOUPUREUOAQFZBCHZUPURRULUNVCULUMV
      BBCUMULVBAEDSTUAUBBCAQUCUDUEUOVAUTNZURKUSUTUQUFUOVDEURULVDERUNEDUGUHUIUJU
      K $.
  $}

  ${
    $d x y A $.
    $( A relation is empty iff its range is empty.  (Contributed by NM,
       15-Sep-2004.) $)
    relrn0 $p |- ( Rel A -> ( A = (/) <-> ran A = (/) ) ) $=
      ( wrel c0 wceq cdm crn reldm0 dm0rn0 syl6bb ) ABACDAECDAFCDAGAHI $.

    $( The domain and range of a class are included in its double union.
       (Contributed by NM, 13-May-2008.) $)
    dmrnssfld $p |- ( dom A u. ran A ) C_ U. U. A $=
      ( vx vy cdm crn cuni cv cop wex vex eldm2 cpr prid1 wss sseld mpi exlimiv
      wcel sylbi ssriv uniop uniopel syl5eqelr elssuni syl elrn2 prid2 unssi )
      ADZAEZAFZFZBUIULBGZUIRUMCGZHZARZCIUMULRZCUMABJZKUPUQCUPUMUMUNLZRUQUMUNURM
      UPUSULUMUPUSUKRUSULNUPUSUOFUKUMUNURCJZUAUMUNAURUTUBUCUSUKUDUEZOPQSTCUJULU
      NUJRUPBIUNULRZBUNAUTUFUPVBBUPUNUSRVBUMUNUTUGUPUSULUNVAOPQSTUH $.
  $}

  $( The domain of a set is a set.  Corollary 6.8(2) of [TakeutiZaring] p. 26.
     (Contributed by NM, 7-Apr-1995.) $)
  dmexg $p |- ( A e. V -> dom A e. _V ) $=
    ( wcel cuni cvv cdm uniexg wss crn ssun1 dmrnssfld sstri ssexg mpan 3syl
    cun ) ABCADZECQDZECZAFZECZABGQEGTRHSUATTAIZPRTUBJAKLTREMNO $.

  $( The range of a set is a set.  Corollary 6.8(3) of [TakeutiZaring] p. 26.
     Similar to Lemma 3D of [Enderton] p. 41.  (Contributed by NM,
     31-Mar-1995.) $)
  rnexg $p |- ( A e. V -> ran A e. _V ) $=
    ( wcel cuni cvv crn uniexg wss cdm ssun2 dmrnssfld sstri ssexg mpan 3syl
    cun ) ABCADZECQDZECZAFZECZABGQEGTRHSUATAIZTPRTUBJAKLTREMNO $.

  ${
    dmex.1 $e |- A e. _V $.
    $( The domain of a set is a set.  Corollary 6.8(2) of [TakeutiZaring]
       p. 26.  (Contributed by NM, 7-Jul-2008.) $)
    dmex $p |- dom A e. _V $=
      ( cvv wcel cdm dmexg ax-mp ) ACDAECDBACFG $.

    $( The range of a set is a set.  Corollary 6.8(3) of [TakeutiZaring]
       p. 26.  Similar to Lemma 3D of [Enderton] p. 41.  (Contributed by NM,
       7-Jul-2008.) $)
    rnex $p |- ran A e. _V $=
      ( cvv wcel crn rnexg ax-mp ) ACDAECDBACFG $.
  $}

  $( The identity function is a proper class.  This means, for example, that we
     cannot use it as a member of the class of continuous functions unless it
     is restricted to a set.  (Contributed by NM, 1-Jan-2007.) $)
  iprc $p |- -. _I e. _V $=
    ( cid cvv wcel cdm vprc dmi eleq1i mtbir dmexg mto ) ABCADZBCZLBBCEKBBFGHAB
    IJ $.

  ${
    $d x y z A $.  $d x y z B $.
    $( Domain of a composition.  Theorem 21 of [Suppes] p. 63.  (Contributed by
       NM, 19-Mar-1998.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    dmcoss $p |- dom ( A o. B ) C_ dom B $=
      ( vx vy vz ccom cdm cv cop wcel wex wbr nfe1 wa exsimpl vex opelco cbvexv
      breq2 3imtr4i exlimi eldm2 eldm ssriv ) CABFZGZBGZCHZDHZIUEJZDKUHUIBLZDKZ
      UHUFJUHUGJUJULDUKDMUHEHZBLZUMUIALZNEKUNEKUJULUNUOEOEUHUIABCPZDPQUKUNDEUIU
      MUHBSRTUADUHUEUPUBDUHBUPUCTUD $.
  $}

  $( Range of a composition.  (Contributed by NM, 19-Mar-1998.) $)
  rncoss $p |- ran ( A o. B ) C_ ran A $=
    ( ccnv ccom cdm crn dmcoss df-rn cnvco dmeqi eqtri 3sstr4i ) BCZACZDZEZNEAB
    DZFZAFMNGRQCZEPQHSOABIJKAHL $.

  ${
    $d x y z A $.  $d x y z B $.
    $( Domain of a composition.  (Contributed by NM, 28-May-1998.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    dmcosseq $p |- ( ran B C_ dom A -> dom ( A o. B ) = dom B ) $=
      ( vx vy vz crn cdm wss ccom dmcoss a1i cv wbr wex wcel wi vex eldm eximdv
      syl6ibr wa ssel elrn imbi12i 19.8a imim1i pm3.2 sylcom sylbi excom opelco
      cop syl exbii eldm2 3imtr4g ssrdv eqssd ) BFZAGZHZABIZGZBGZVCVDHVAABJKVAC
      VDVCVACLZDLZBMZDNZVEELZULVBOZENZVEVDOVEVCOVAVHVGVFVIAMZUAZDNZENZVKVAVHVME
      NZDNVOVAVGVPDVAVFUSOZVFUTOZPZVGVPPZUSUTVFUBVSVGCNZVLENZPZVTVQWAVRWBCVFBDQ
      ZUCEVFAWDRUDWCVGWBVPVGWAWBVGCUEUFVGVLVMEVGVLUGSUHUIUMSVMEDUJTVJVNEDVEVIAB
      CQZEQUKUNTDVEBWEREVEVBWEUOUPUQUR $.

    $( Domain of a composition.  (Contributed by NM, 19-Mar-1998.) $)
    dmcoeq $p |- ( dom A = ran B -> dom ( A o. B ) = dom B ) $=
      ( cdm crn wceq wss ccom eqimss2 dmcosseq syl ) ACZBDZELKFABGCBCELKHABIJ
      $.
  $}

  $( Range of a composition.  (Contributed by NM, 19-Mar-1998.) $)
  rncoeq $p |- ( dom A = ran B -> ran ( A o. B ) = ran A ) $=
    ( ccnv cdm crn wceq ccom dmcoeq eqcom df-rn dfdm4 eqeq12i bitri cnvco dmeqi
    eqtri 3imtr4i ) BCZDZACZEZFZRTGZDZTDZFADZBEZFZABGZEZAEZFRTHUHUGUFFUBUFUGIUG
    SUFUABJAKLMUJUDUKUEUJUICZDUDUIJULUCABNOPAJLQ $.

  $( Equality theorem for restrictions.  (Contributed by NM, 7-Aug-1994.) $)
  reseq1 $p |- ( A = B -> ( A |` C ) = ( B |` C ) ) $=
    ( wceq cvv cxp cin cres ineq1 df-res 3eqtr4g ) ABDACEFZGBLGACHBCHABLIACJBCJ
    K $.

  $( Equality theorem for restrictions.  (Contributed by NM, 8-Aug-1994.) $)
  reseq2 $p |- ( A = B -> ( C |` A ) = ( C |` B ) ) $=
    ( wceq cvv cxp cin cres xpeq1 ineq2d df-res 3eqtr4g ) ABDZCAEFZGCBEFZGCAHCB
    HMNOCABEIJCAKCBKL $.

  ${
    reseqi.1 $e |- A = B $.
    $( Equality inference for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq1i $p |- ( A |` C ) = ( B |` C ) $=
      ( wceq cres reseq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for restrictions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    reseq2i $p |- ( C |` A ) = ( C |` B ) $=
      ( wceq cres reseq2 ax-mp ) ABECAFCBFEDABCGH $.

    reseqi.2 $e |- C = D $.
    $( Equality inference for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq12i $p |- ( A |` C ) = ( B |` D ) $=
      ( cres reseq1i reseq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
  $}

  ${
    reseqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq1d $p |- ( ph -> ( A |` C ) = ( B |` C ) ) $=
      ( wceq cres reseq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for restrictions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    reseq2d $p |- ( ph -> ( C |` A ) = ( C |` B ) ) $=
      ( wceq cres reseq2 syl ) ABCFDBGDCGFEBCDHI $.

    reseqd.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq12d $p |- ( ph -> ( A |` C ) = ( B |` D ) ) $=
      ( cres reseq1d reseq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    $d y B $.  $d x y $.
    nfres.1 $e |- F/_ x A $.
    nfres.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for restriction.  (Contributed by NM,
       15-Sep-2003.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    nfres $p |- F/_ x ( A |` B ) $=
      ( cres cvv cxp cin df-res nfcv nfxp nfin nfcxfr ) ABCFBCGHZIBCJABODACGEAG
      KLMN $.
  $}

  $( Distribute proper substitution through the restriction of a class.
     (Contributed by Alan Sare, 10-Nov-2012.) $)
  csbresg $p |- ( A e. V -> [_ A / x ]_ ( B |` C ) =
                 ( [_ A / x ]_ B |` [_ A / x ]_ C ) ) $=
    ( wcel cvv cxp cin cres csbing csbxpg csbconstg xpeq2d eqtrd ineq2d csbeq2i
    csb df-res 3eqtr4g ) BEFZABCDGHZIZRZABCRZABDRZGHZIZABCDJZRUEUFJUAUDUEABUBRZ
    IUHABECUBKUAUJUGUEUAUJUFABGRZHUGABDGELUAUKGUFABGEMNOPOABUIUCCDSQUEUFST $.

  $( A restriction to the empty set is empty.  (Contributed by NM,
     12-Nov-1994.) $)
  res0 $p |- ( A |` (/) ) = (/) $=
    ( c0 cres cvv cxp cin df-res 0xp ineq2i in0 3eqtri ) ABCABDEZFABFBABGLBADHI
    AJK $.

  ${
    opelres.1 $e |- B e. _V $.
    $( Ordered pair membership in a restriction.  Exercise 13 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 13-Nov-1995.) $)
    opelres $p |- ( <. A , B >. e. ( C |` D ) <->
                    ( <. A , B >. e. C /\ A e. D ) ) $=
      ( cop cres wcel cvv cxp cin wa df-res eleq2i elin opelxp mpbiran2 anbi2i
      3bitri ) ABFZCDGZHTCDIJZKZHTCHZTUBHZLUDADHZLUAUCTCDMNTCUBOUEUFUDUEUFBIHEA
      BDIPQRS $.

    $( Binary relation on a restriction.  (Contributed by NM, 12-Dec-2006.) $)
    brres $p |- ( A ( C |` D ) B <-> ( A C B /\ A e. D ) ) $=
      ( cop cres wcel wa wbr opelres df-br anbi1i 3bitr4i ) ABFZCDGZHOCHZADHZIA
      BPJABCJZRIABCDEKABPLSQRABCLMN $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y D $.
    $( Ordered pair membership in a restriction.  Exercise 13 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 14-Oct-2005.) $)
    opelresg $p |- ( B e. V -> ( <. A , B >. e. ( C |` D ) <->
                    ( <. A , B >. e. C /\ A e. D ) ) ) $=
      ( vy cv cop cres wcel wa wceq opeq2 eleq1d anbi1d vex opelres vtoclbg ) A
      FGZHZCDIZJTCJZADJZKABHZUAJUDCJZUCKFBESBLZTUDUASBAMZNUFUBUEUCUFTUDCUGNOASC
      DFPQR $.

    $( Binary relation on a restriction.  (Contributed by Mario Carneiro,
       4-Nov-2015.) $)
    brresg $p |- ( B e. V -> ( A ( C |` D ) B <-> ( A C B /\ A e. D ) ) ) $=
      ( wcel cop cres wa wbr opelresg df-br anbi1i 3bitr4g ) BEFABGZCDHZFOCFZAD
      FZIABPJABCJZRIABCDEKABPLSQRABCLMN $.
  $}

  ${
    opres.1 $e |- B e. _V $.
    $( Ordered pair membership in a restriction when the first member belongs
       to the restricting class.  (Contributed by NM, 30-Apr-2004.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    opres $p |- ( A e. D ->
                    ( <. A , B >. e. ( C |` D ) <-> <. A , B >. e. C ) ) $=
      ( cop cres wcel opelres rbaib ) ABFZCDGHKCHADHABCDEIJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( A restricted identity relation is equivalent to equality in its domain.
       (Contributed by NM, 30-Apr-2004.) $)
    resieq $p |- ( ( B e. A /\ C e. A ) -> ( B ( _I |` A ) C <-> B = C ) ) $=
      ( vx wcel cid cres wbr wceq wb cv wi breq2 eqeq2 bibi12d imbi2d cop opres
      vex df-br ideq bitr3i 3bitr4g vtoclg impcom ) CAEBAEZBCFAGZHZBCIZJZUFBDKZ
      UGHZBUKIZJZLUFUJLDCAUKCIZUNUJUFUOULUHUMUIUKCBUGMUKCBNOPUFBUKQZUGEUPFEZULU
      MBUKFADSZRBUKUGTUMBUKFHUQBUKURUABUKFTUBUCUDUE $.
  $}

  $( ` <. A , A >. ` belongs to a restriction of the identity class iff ` A `
     belongs to the restricting class.  (Contributed by FL, 27-Oct-2008.)
     (Revised by NM, 30-Mar-2016.) $)
  opelresi $p |- ( A e. V -> ( <. A , A >. e. ( _I |` B ) <-> A e. B ) ) $=
    ( wcel cop cid cres wa opelresg wbr ididg df-br sylib biantrurd bitr4d ) AC
    DZAAEZFBGDQFDZABDZHSAAFBCIPRSPAAFJRACKAAFLMNO $.

  $( The restriction of a restriction.  (Contributed by NM, 27-Mar-2008.) $)
  resres $p |- ( ( A |` B ) |` C ) = ( A |` ( B i^i C ) ) $=
    ( cres cvv cxp cin df-res ineq1i xpindir ineq2i inass 3eqtr4ri 3eqtri ) ABD
    ZCDOCEFZGABEFZGZPGZABCGZDZOCHORPABHIATEFZGAQPGZGUASUBUCABCEJKATHAQPLMN $.

  $( Distributive law for restriction over union.  Theorem 31 of [Suppes]
     p. 65.  (Contributed by NM, 30-Sep-2002.) $)
  resundi $p |- ( A |` ( B u. C ) ) = ( ( A |` B ) u. ( A |` C ) ) $=
    ( cun cvv cxp cin cres xpundir ineq2i indi eqtri df-res uneq12i 3eqtr4i ) A
    BCDZEFZGZABEFZGZACEFZGZDZAPHABHZACHZDRASUADZGUCQUFABCEIJASUAKLAPMUDTUEUBABM
    ACMNO $.

  $( Distributive law for restriction over union.  (Contributed by NM,
     23-Sep-2004.) $)
  resundir $p |- ( ( A u. B ) |` C ) = ( ( A |` C ) u. ( B |` C ) ) $=
    ( cun cvv cxp cin cres indir df-res uneq12i 3eqtr4i ) ABDZCEFZGANGZBNGZDMCH
    ACHZBCHZDABNIMCJQORPACJBCJKL $.

  $( Class restriction distributes over intersection.  (Contributed by FL,
     6-Oct-2008.) $)
  resindi $p |- ( A |` ( B i^i C ) ) = ( ( A |` B ) i^i ( A |` C ) ) $=
    ( cin cvv cxp cres xpindir ineq2i inindi eqtri df-res ineq12i 3eqtr4i ) ABC
    DZEFZDZABEFZDZACEFZDZDZAOGABGZACGZDQARTDZDUBPUEABCEHIARTJKAOLUCSUDUAABLACLM
    N $.

  $( Class restriction distributes over intersection.  (Contributed by NM,
     18-Dec-2008.) $)
  resindir $p |- ( ( A i^i B ) |` C ) = ( ( A |` C ) i^i ( B |` C ) ) $=
    ( cin cvv cxp cres inindir df-res ineq12i 3eqtr4i ) ABDZCEFZDAMDZBMDZDLCGAC
    GZBCGZDABMHLCIPNQOACIBCIJK $.

  $( Move intersection into class restriction.  (Contributed by NM,
     18-Dec-2008.) $)
  inres $p |- ( A i^i ( B |` C ) ) = ( ( A i^i B ) |` C ) $=
    ( cin cvv cxp cres inass df-res ineq2i 3eqtr4ri ) ABDZCEFZDABMDZDLCGABCGZDA
    BMHLCIONABCIJK $.

  ${
    $d x C $.
    $( Distribution of restriction over indexed union.  (Contributed by Mario
       Carneiro, 29-May-2015.) $)
    resiun1 $p |- ( U_ x e. A B |` C ) = U_ x e. A ( B |` C ) $=
      ( cvv cxp cin ciun cres iunin2 wceq cv wcel df-res incom iuneq2i 3eqtr4ri
      eqtri a1i ) ABDEFZCGZHTABCHZGZABCDIZHUBDIZABTCJABUDUAUDUAKALBMUDCTGUACDNC
      TORSPUEUBTGUCUBDNUBTORQ $.

    $( Distribution of restriction over indexed union.  (Contributed by Mario
       Carneiro, 29-May-2015.) $)
    resiun2 $p |- ( C |` U_ x e. A B ) = U_ x e. A ( C |` B ) $=
      ( ciun cres cvv cxp cin df-res wceq cv a1i iuneq2i xpiundir ineq2i iunin2
      wcel eqtr4i ) DABCEZFDTGHZIZABDCFZEZDTJUDABDCGHZIZEZUBABUCUFUCUFKALBRDCJM
      NUBDABUEEZIUGUAUHDABCGOPABDUEQSSS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The domain of a restriction.  Exercise 14 of [TakeutiZaring] p. 25.
       (Contributed by NM, 1-Aug-1994.) $)
    dmres $p |- dom ( A |` B ) = ( B i^i dom A ) $=
      ( vx vy cdm cin cres cv wcel cop wex wa eldm2 19.41v opelres exbii anbi1i
      vex 3bitr4i bitr2i ineqri incom eqtr3i ) AEZBFABGZEZBUDFCUDBUFCHZUFIUGDHZ
      JZUEIZDKZUGUDIZUGBIZLZDUGUECRZMUIAIZUMLZDKUPDKZUMLUKUNUPUMDNUJUQDUGUHABDR
      OPULURUMDUGAUOMQSTUAUDBUBUC $.
  $}

  $( A domain restricted to a subclass equals the subclass.  (Contributed by
     NM, 2-Mar-1997.) $)
  ssdmres $p |- ( A C_ dom B <-> dom ( B |` A ) = A ) $=
    ( cdm wss cin wceq cres df-ss dmres eqeq1i bitr4i ) ABCZDALEZAFBAGCZAFALHNM
    ABAIJK $.

  $( The domain of a restriction to a set exists.  (Contributed by NM,
     7-Apr-1995.) $)
  dmresexg $p |- ( B e. V -> dom ( A |` B ) e. _V ) $=
    ( wcel cres cdm cin cvv dmres inex1g syl5eqel ) BCDABEFBAFZGHABIBLCJK $.

  $( A class includes its restriction.  Exercise 15 of [TakeutiZaring] p. 25.
     (Contributed by NM, 2-Aug-1994.) $)
  resss $p |- ( A |` B ) C_ A $=
    ( cres cvv cxp cin df-res inss1 eqsstri ) ABCABDEZFAABGAJHI $.

  $( Commutative law for restriction.  (Contributed by NM, 27-Mar-1998.) $)
  rescom $p |- ( ( A |` B ) |` C ) = ( ( A |` C ) |` B ) $=
    ( cin cres incom reseq2i resres 3eqtr4i ) ABCDZEACBDZEABECEACEBEJKABCFGABCH
    ACBHI $.

  $( Subclass theorem for restriction.  (Contributed by NM, 16-Aug-1994.) $)
  ssres $p |- ( A C_ B -> ( A |` C ) C_ ( B |` C ) ) $=
    ( wss cvv cxp cin cres ssrin df-res 3sstr4g ) ABDACEFZGBLGACHBCHABLIACJBCJK
    $.

  $( Subclass theorem for restriction.  (Contributed by NM, 22-Mar-1998.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  ssres2 $p |- ( A C_ B -> ( C |` A ) C_ ( C |` B ) ) $=
    ( wss cvv cxp cin cres xpss1 sslin syl df-res 3sstr4g ) ABDZCAEFZGZCBEFZGZC
    AHCBHNOQDPRDABEIOQCJKCALCBLM $.

  $( A restriction is a relation.  Exercise 12 of [TakeutiZaring] p. 25.
     (Contributed by NM, 2-Aug-1994.)  (Proof shortened by Andrew Salmon,
     27-Aug-2011.) $)
  relres $p |- Rel ( A |` B ) $=
    ( cres cvv cxp wss wrel cin df-res inss2 eqsstri relxp relss mp2 ) ABCZBDEZ
    FPGOGOAPHPABIAPJKBDLOPMN $.

  $( Absorption law for restriction.  Exercise 17 of [TakeutiZaring] p. 25.
     (Contributed by NM, 9-Aug-1994.) $)
  resabs1 $p |- ( B C_ C -> ( ( A |` C ) |` B ) = ( A |` B ) ) $=
    ( wss cres cin resres wceq sseqin2 reseq2 sylbi syl5eq ) BCDZACEBEACBFZEZAB
    EZACBGMNBHOPHBCINBAJKL $.

  $( Absorption law for restriction.  (Contributed by NM, 27-Mar-1998.) $)
  resabs2 $p |- ( B C_ C -> ( ( A |` B ) |` C ) = ( A |` B ) ) $=
    ( wss cres rescom resabs1 syl5eq ) BCDABEZCEACEBEIABCFABCGH $.

  $( Idempotent law for restriction.  (Contributed by NM, 27-Mar-1998.) $)
  residm $p |- ( ( A |` B ) |` B ) = ( A |` B ) $=
    ( wss cres wceq ssid resabs2 ax-mp ) BBCABDZBDIEBFABBGH $.

  $( A restriction to an image.  (Contributed by NM, 29-Sep-2004.) $)
  resima $p |- ( ( A |` B ) " B ) = ( A " B ) $=
    ( cres crn cima residm rneqi df-ima 3eqtr4i ) ABCZBCZDJDJBEABEKJABFGJBHABHI
    $.

  $( Image under a restricted class.  (Contributed by FL, 31-Aug-2009.) $)
  resima2 $p |- ( B C_ C -> ( ( A |` C ) " B ) = ( A " B ) ) $=
    ( wss cres cima crn df-ima cin resres rneqi wceq df-ss incom reseq2d reseq2
    a1i rneqd syl6eqr syl5eq eqtrd sylbi ) BCDZACEZBFUDBEZGZABFZUDBHUCUFACBIZEZ
    GZUGUEUIACBJKUCBCIZBLZUJUGLBCMULUJAUKEZGZUGULUIUMULUHUKAUHUKLULCBNQORULUNAB
    EZGUGULUMUOUKBAPRABHSUAUBTT $.

  $( Restriction of a constant function (or other cross product).  (Contributed
     by Stefan O'Rear, 24-Jan-2015.) $)
  xpssres $p |- ( C C_ A -> ( ( A X. B ) |` C ) = ( C X. B ) ) $=
    ( wss cxp cres cin df-res inxp incom inv1 xpeq12i 3eqtri wceq biimpi xpeq1d
    cvv df-ss syl5eq ) CADZABEZCFZCAGZBEZCBEUBUACQEGACGZBQGZEUDUACHABCQIUEUCUFB
    ACJBKLMTUCCBTUCCNCAROPS $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in a restriction.  (Contributed by Scott Fenton,
       17-Mar-2011.) $)
    elres $p |- ( A e. ( B |` C )
          <-> E. x e. C E. y ( A = <. x , y >. /\ <. x , y >. e. B ) ) $=
      ( cres wcel cv cop wceq wex wrex wrel relres elrel mpan eleq1 biimpd vex
      wa opelres biimpi ancomd syl6com ancld an12 syl6ib 2eximdv rexcom4 df-rex
      mpd exbii excom 3bitri sylibr simplbi2com biimprd exlimdv rexlimiv impbii
      syl9 impd ) CDEFZGZCAHZBHZIZJZVGDGZTZBKZAELZVDVEEGZVJTZBKAKZVLVDVHBKAKZVO
      VCMVDVPDENABCVCOPVDVHVNABVDVHVHVMVITZTVNVDVHVQVHVDVGVCGZVQVHVDVRCVGVCQZRV
      RVIVMVRVIVMTVEVFDEBSUAZUBUCUDUEVHVMVIUFUGUHUKVLVJAELZBKVNAKZBKVOVJABEUIWA
      WBBVJAEUJULVNBAUMUNUOVKVDAEVMVJVDBVMVHVIVDVMVIVRVHVDVRVIVMVTUPVHVDVRVSUQV
      AVBURUSUT $.

    ${
      elsnres.1 $e |- C e. _V $.
      $( Memebership in restriction to a singleton.  (Contributed by Scott
         Fenton, 17-Mar-2011.) $)
      elsnres $p |- ( A e. ( B |` { C } )
            <-> E. y ( A = <. C , y >. /\ <. C , y >. e. B ) ) $=
        ( vx csn cres wcel cv cop wceq wa wex elres rexcom4 opeq1 eqeq2d eleq1d
        wrex anbi12d rexsn exbii 3bitri ) BCDGZHIBFJZAJZKZLZUHCIZMZANFUETUKFUET
        ZANBDUGKZLZUMCIZMZANFABCUEOUKFAUEPULUPAUKUPFDEUFDLZUIUNUJUOUQUHUMBUFDUG
        QZRUQUHUMCURSUAUBUCUD $.
    $}

    $( Simplification law for restriction.  (Contributed by NM,
       16-Aug-1994.) $)
    relssres $p |- ( ( Rel A /\ dom A C_ B ) -> ( A |` B ) = A ) $=
      ( vx vy wrel cdm wss wa cres wceq simpl cv cop wcel vex opeldm ssel ancld
      wi syl5 opelres syl6ibr adantl relssdv resss jctil eqss sylibr ) AEZAFZBG
      ZHZABIZAGZAUMGZHUMAJULUOUNULCDAUMUIUKKUKCLZDLZMZANZURUMNZSUIUKUSUSUPBNZHU
      TUKUSVAUSUPUJNUKVAUPUQACODOZPUJBUPQTRUPUQABVBUAUBUCUDABUEUFUMAUGUH $.
  $}

  $( A relation restricted to its domain equals itself.  (Contributed by NM,
     12-Dec-2006.) $)
  resdm $p |- ( Rel A -> ( A |` dom A ) = A ) $=
    ( wrel cdm wss cres wceq ssid relssres mpan2 ) ABACZJDAJEAFJGAJHI $.

  $( The restriction of a set is a set.  (Contributed by NM, 28-Mar-1998.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  resexg $p |- ( A e. V -> ( A |` B ) e. _V ) $=
    ( cres wss wcel cvv resss ssexg mpan ) ABDZAEACFKGFABHKACIJ $.

  ${
    resex.1 $e |- A e. _V $.
    $( The restriction of a set is a set.  (Contributed by Jeff Madsen,
       19-Jun-2011.) $)
    resex $p |- ( A |` B ) e. _V $=
      ( cvv wcel cres resexg ax-mp ) ADEABFDECABDGH $.
  $}

  ${
    $d x y A $.
    $( Restriction of a class abstraction of ordered pairs.  (Contributed by
       NM, 5-Nov-2002.) $)
    resopab $p |- ( { <. x , y >. | ph } |` A ) =
                  { <. x , y >. | ( x e. A /\ ph ) } $=
      ( copab cres cvv cxp cin cv wa df-res df-xp biantru opabbii eqtr4i ineq2i
      wcel vex eqtri incom inopab ) ABCEZDFUCDGHZIZBJDRZAKBCEZUCDLUEUFBCEZUCIZU
      GUEUCUHIUIUDUHUCUDUFCJGRZKZBCEUHBCDGMUFUKBCUJUFCSNOPQUCUHUATUFABCUBTT $.

    $( The existence of a restricted identity function, proved without using
       the Axiom of Replacement.  (Contributed by NM, 13-Jan-2007.) $)
    resiexg $p |- ( A e. V -> ( _I |` A ) e. _V ) $=
      ( vx vy wcel cid cres cxp wss cvv relres weq cv wa cop simpr eleq1 biimpa
      jca vex opelres wbr df-br bitr3i anbi1i bitri opelxp 3imtr4i relssi xpexg
      ideq anidms ssexg sylancr ) ABEZFAGZAAHZIUQJEZUPJECDUPUQFAKCDLZCMZAEZNZVA
      DMZAEZNUTVCOZUPEZVEUQEVBVAVDUSVAPUSVAVDUTVCAQRSVFVEFEZVANVBUTVCFADTZUAVGU
      SVAVGUTVCFUBUSUTVCFUCUTVCVHUKUDUEUFUTVCAAUGUHUIUOURAABBUJULUPUQJUMUN $.

    $( A subclass of the identity function is the identity function restricted
       to its domain.  (Contributed by NM, 13-Dec-2003.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    iss $p |- ( A C_ _I <-> A = ( _I |` dom A ) ) $=
      ( vx vy cid wss cdm cres wceq cv cop wcel wb wal wa ssel wi opeldm syl5bi
      vex wrel a1i jcad wbr df-br bitr3i wex eldm2 opeq2 eleq1d biimprcd sylcom
      ideq exlimdv imbi2d syl5ibcom impd impbid opelres alrimivv reli relss mpi
      syl6bbr relres eqrel sylancl mpbird resss sseq1 mpbiri impbii ) ADEZADAFZ
      GZHZVLVOBIZCIZJZAKZVRVNKZLZCMBMZVLWABCVLVSVRDKZVPVMKZNZVTVLVSWEVLVSWCWDAD
      VROZVSWDPVLVPVQABSZCSZQUAUBVLWCWDVSWCVPVQHZVLWDVSPZWCVPVQDUCWIVPVQDUDVPVQ
      WHULUEZVLWDVPVPJZAKZPWIWJWDVSCUFVLWMCVPAWGUGVLVSWMCVLVSWCWMWFWCWIVSWMWKWI
      WMVSWIWLVRAVPVQVPUHUIZUJRUKUMRWIWMVSWDWNUNUORUPUQVPVQDVMWHURVCUSVLATZVNTV
      OWBLVLDTWOUTADVAVBDVMVDBCAVNVEVFVGVOVLVNDEDVMVHAVNDVIVJVK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Restriction of a class abstraction of ordered pairs.  (Contributed by
       NM, 24-Aug-2007.) $)
    resopab2 $p |- ( A C_ B -> ( { <. x , y >. | ( x e. B /\ ph ) } |` A ) =
                  { <. x , y >. | ( x e. A /\ ph ) } ) $=
      ( wss cv wcel wa copab cres resopab pm4.71d anbi1d anass syl6rbb opabbidv
      ssel syl5eq ) DEFZBGZEHZAIZBCJDKUADHZUCIZBCJUDAIZBCJUCBCDLTUEUFBCTUFUDUBI
      ZAIUETUDUGATUDUBDEUARMNUDUBAOPQS $.

    $( Restriction of the mapping operation.  (Contributed by Mario Carneiro,
       15-Jul-2013.) $)
    resmpt $p |- ( B C_ A -> ( ( x e. A |-> C ) |` B ) = ( x e. B |-> C ) ) $=
      ( vy wss cv wcel wceq wa copab cres cmpt resopab2 df-mpt reseq1i 3eqtr4g
      ) CBFAGZBHEGDIZJAEKZCLRCHSJAEKABDMZCLACDMSAECBNUATCAEBDOPAECDOQ $.

    $( Unconditional restriction of the mapping operation.  (Contributed by
       Stefan O'Rear, 24-Jan-2015.)  (Proof shortened by Mario Carneiro,
       22-Mar-2015.) $)
    resmpt3 $p |- ( ( x e. A |-> C ) |` B ) = ( x e. ( A i^i B ) |-> C ) $=
      ( cmpt cres cin resres wss wceq ssid resmpt ax-mp reseq1i inss1 3eqtr3i )
      ABDEZBFZCFQBCGZFZQCFASDEZQBCHRQCBBIRQJBKABBDLMNSBITUAJBCOABSDLMP $.
  $}

  ${
    $d w x y z A $.  $d w x y z R $.
    $( Alternate definition of the restriction operation.  (Contributed by
       Mario Carneiro, 5-Nov-2013.) $)
    dfres2 $p |- ( R |` A ) = { <. x , y >. | ( x e. A /\ x R y ) } $=
      ( vz vw cres cv wbr wa copab relres relopab cop vex brres df-br ancom weq
      wcel 3bitr3i eleq1 breq1 anbi12d breq2 anbi2d opelopab bitr4i eqrelriiv )
      EFDCGZAHZCTZUKBHZDIZJZABKZDCLUOABMEHZFHZNZUJTZUQCTZUQURDIZJZUSUPTUQURUJIV
      BVAJUTVCUQURDCFOZPUQURUJQVBVARUAUOVAUQUMDIZJVCABUQUREOVDAESULVAUNVEUKUQCU
      BUKUQUMDUCUDBFSVEVBVAUMURUQDUEUFUGUHUI $.
  $}

  ${
    $d A x y $.
    $( The restricted identity expressed with the class builder.  (Contributed
       by FL, 25-Apr-2012.) $)
    opabresid $p |- { <. x , y >. | ( x e. A /\ y = x ) } = ( _I |` A ) $=
      ( weq copab cres cv wcel cid resopab equcom opabbii eqtr4i reseq1i eqtr3i
      wa df-id ) BADZABEZCFAGCHRPABEICFRABCJSICSABDZABEIRTABBAKLABQMNO $.
  $}

  ${
    $d A x y $.
    $( The restricted identity expressed with the "maps to" notation.
       (Contributed by FL, 25-Apr-2012.) $)
    mptresid $p |- ( x e. A |-> x ) = ( _I |` A ) $=
      ( vy cv cmpt wcel weq wa copab cid cres df-mpt opabresid eqtri ) ABADZEOB
      FCAGHACIJBKACBOLACBMN $.
  $}

  $( The domain of a restricted identity function.  (Contributed by NM,
     27-Aug-2004.) $)
  dmresi $p |- dom ( _I |` A ) = A $=
    ( cid cdm wss cres wceq cvv ssv dmi sseqtr4i ssdmres mpbi ) ABCZDBAECAFAGMA
    HIJABKL $.

  $( TODO - delete this and replace w/ dfres3 (in FL's mathbox) $)
  $( Any relation restricted to the universe is itself.  (Contributed by NM,
     16-Mar-2004.) $)
  resid $p |- ( Rel A -> ( A |` _V ) = A ) $=
    ( wrel cdm cvv wss cres wceq ssv relssres mpan2 ) ABACZDEADFAGKHADIJ $.

  $( Equality theorem for image.  (Contributed by NM, 14-Aug-1994.) $)
  imaeq1 $p |- ( A = B -> ( A " C ) = ( B " C ) ) $=
    ( wceq cres crn cima reseq1 rneqd df-ima 3eqtr4g ) ABDZACEZFBCEZFACGBCGLMNA
    BCHIACJBCJK $.

  $( Equality theorem for image.  (Contributed by NM, 14-Aug-1994.) $)
  imaeq2 $p |- ( A = B -> ( C " A ) = ( C " B ) ) $=
    ( wceq cres crn cima reseq2 rneqd df-ima 3eqtr4g ) ABDZCAEZFCBEZFCAGCBGLMNA
    BCHICAJCBJK $.

  ${
    imaeq1i.1 $e |- A = B $.
    $( Equality theorem for image.  (Contributed by NM, 21-Dec-2008.) $)
    imaeq1i $p |- ( A " C ) = ( B " C ) $=
      ( wceq cima imaeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality theorem for image.  (Contributed by NM, 21-Dec-2008.) $)
    imaeq2i $p |- ( C " A ) = ( C " B ) $=
      ( wceq cima imaeq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    imaeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for image.  (Contributed by FL, 15-Dec-2006.) $)
    imaeq1d $p |- ( ph -> ( A " C ) = ( B " C ) ) $=
      ( wceq cima imaeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality theorem for image.  (Contributed by FL, 15-Dec-2006.) $)
    imaeq2d $p |- ( ph -> ( C " A ) = ( C " B ) ) $=
      ( wceq cima imaeq2 syl ) ABCFDBGDCGFEBCDHI $.

    imaeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality theorem for image.  (Contributed by Mario Carneiro,
       4-Dec-2016.) $)
    imaeq12d $p |- ( ph -> ( A " C ) = ( B " D ) ) $=
      ( cima imaeq1d imaeq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Alternate definition of image.  Compare definition (d) of [Enderton]
       p. 44.  (Contributed by NM, 19-Apr-2004.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dfima2 $p |- ( A " B ) = { y | E. x e. B x A y } $=
      ( cima cres crn cv wbr wex cab wrex df-ima dfrn2 wa vex brres ancom bitri
      wcel exbii df-rex bitr4i abbii 3eqtri ) CDECDFZGAHZBHZUFIZAJZBKUGUHCIZADL
      ZBKCDMABUFNUJULBUJUGDTZUKOZAJULUIUNAUIUKUMOUNUGUHCDBPQUKUMRSUAUKADUBUCUDU
      E $.

    $( Alternate definition of image.  Compare definition (d) of [Enderton]
       p. 44.  (Contributed by NM, 14-Aug-1994.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dfima3 $p |- ( A " B ) = { y | E. x ( x e. B /\ <. x , y >. e. A ) } $=
      ( cima cv wbr wrex cab wcel cop wa dfima2 df-br rexbii df-rex bitri abbii
      wex eqtri ) CDEAFZBFZCGZADHZBIUADJUAUBKCJZLASZBIABCDMUDUFBUDUEADHUFUCUEAD
      UAUBCNOUEADPQRT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 20-Jan-2007.) $)
    elimag $p |- ( A e. V -> ( A e. ( B " C ) <-> E. x e. C x B A ) ) $=
      ( vy cv wbr wrex cima wceq breq2 rexbidv dfima2 elab2g ) AGZFGZCHZADIPBCH
      ZADIFBCDJEQBKRSADQBPCLMAFCDNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    elima.1 $e |- A e. _V $.
    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 19-Apr-2004.) $)
    elima $p |- ( A e. ( B " C ) <-> E. x e. C x B A ) $=
      ( cvv wcel cima cv wbr wrex wb elimag ax-mp ) BFGBCDHGAIBCJADKLEABCDFMN
      $.

    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 11-Aug-2004.) $)
    elima2 $p |- ( A e. ( B " C ) <-> E. x ( x e. C /\ x B A ) ) $=
      ( cima wcel cv wbr wrex wa wex elima df-rex bitri ) BCDFGAHZBCIZADJPDGQKA
      LABCDEMQADNO $.

    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 14-Aug-1994.) $)
    elima3 $p |- ( A e. ( B " C ) <-> E. x ( x e. C /\ <. x , A >. e. B ) ) $=
      ( cima wcel cv wbr wa wex cop elima2 df-br anbi2i exbii bitri ) BCDFGAHZD
      GZRBCIZJZAKSRBLCGZJZAKABCDEMUAUCATUBSRBCNOPQ $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d x y z w $.
    nfima.1 $e |- F/_ x A $.
    nfima.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for image.  (Contributed by NM,
       30-Dec-1996.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    nfima $p |- F/_ x ( A " B ) $=
      ( cima cres crn df-ima nfres nfrn nfcxfr ) ABCFBCGZHBCIAMABCDEJKL $.
  $}

  ${
    $d x y z $.  $d B y z $.  $d A y z $.  $d ph y $.
    nfimad.2 $e |- ( ph -> F/_ x A ) $.
    nfimad.3 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfima .
       (Contributed by FL, 15-Dec-2006.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfimad $p |- ( ph -> F/_ x ( A " B ) ) $=
      ( vz cv wcel wal cab cima wnfc nfaba1 nfima wb wa nfnfc1 nfan abidnf
      imaeq1d imaeq2d sylan9eq nfceqdf syl2anc mpbii ) ABGHZCIZBJGKZUGDIZBJGKZL
      ZMZBCDLZMZBUIUKUHBGNUJBGNOABCMZBDMZUMUOPEFUPUQQBULUNUPUQBBCRBDRSUPUQULCUK
      LUNUPUICUKBGCTUAUQUKDCBGDTUBUCUDUEUF $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The image of the domain of a class is the range of the class.
       (Contributed by NM, 14-Aug-1994.) $)
    imadmrn $p |- ( A " dom A ) = ran A $=
      ( vx vy cv cdm wcel cop wa wex cab cima crn vex opeldm ancom bitr2i exbii
      pm4.71i abbii dfima3 dfrn3 3eqtr4i ) BDZAEZFZUCCDZGAFZHZBIZCJUGBIZCJAUDKA
      LUIUJCUHUGBUGUGUEHUHUGUEUCUFABMCMNRUGUEOPQSBCAUDTBCAUAUB $.

    $( The image of a class is a subset of its range.  Theorem 3.16(xi) of
       [Monk1] p. 39.  (Contributed by NM, 31-Mar-1995.) $)
    imassrn $p |- ( A " B ) C_ ran A $=
      ( vx vy cv wcel cop wex cab cima crn exsimpr ss2abi dfima3 dfrn3 3sstr4i
      wa ) CEZBFZRDEGAFZQCHZDITCHZDIABJAKUAUBDSTCLMCDABNCDAOP $.
  $}

  $( The image of a set is a set.  Theorem 3.17 of [Monk1] p. 39.  (Contributed
     by NM, 24-Jul-1995.) $)
  imaexg $p |- ( A e. V -> ( A " B ) e. _V ) $=
    ( wcel cima crn wss cvv imassrn rnexg ssexg sylancr ) ACDABEZAFZGNHDMHDABIA
    CJMNHKL $.

  ${
    $d x y A $.
    $( Image under the identity relation.  Theorem 3.16(viii) of [Monk1]
       p. 38.  (Contributed by NM, 30-Apr-1998.) $)
    imai $p |- ( _I " A ) = A $=
      ( vx vy cid cima cv wcel cop wex cab dfima3 weq wbr df-br vex ideq bitr3i
      wa anbi2i bitri ancom exbii eleq1 ceqsexv abbii abid2 3eqtri ) DAEBFZAGZU
      HCFZHDGZRZBIZCJUJAGZCJABCDAKUMUNCUMBCLZUIRZBIUNULUPBULUIUORUPUKUOUIUKUHUJ
      DMUOUHUJDNUHUJCOZPQSUIUOUATUBUIUNBUJUQUHUJAUCUDTUECAUFUG $.
  $}

  $( The range of the restricted identity function.  (Contributed by NM,
     27-Aug-2004.) $)
  rnresi $p |- ran ( _I |` A ) = A $=
    ( cid cima cres crn df-ima imai eqtr3i ) BACBADEABAFAGH $.

  $( The image of a restriction of the identity function.  (Contributed by FL,
     31-Dec-2006.) $)
  resiima $p |- ( B C_ A -> ( ( _I |` A ) " B ) = B ) $=
    ( wss cid cres cima crn wceq df-ima a1i resabs1 rneqd rnresi 3eqtrd ) BACZD
    AEZBFZPBEZGZDBEZGZBQSHOPBIJORTDBAKLUABHOBMJN $.

  $( Image of the empty set.  Theorem 3.16(ii) of [Monk1] p. 38.  (Contributed
     by NM, 20-May-1998.) $)
  ima0 $p |- ( A " (/) ) = (/) $=
    ( c0 cima cres crn df-ima res0 rneqi rn0 3eqtri ) ABCABDZEBEBABFKBAGHIJ $.

  $( Image under the empty relation.  (Contributed by FL, 11-Jan-2007.) $)
  0ima $p |- ( (/) " A ) = (/) $=
    ( c0 cima crn imassrn rn0 sseqtri 0ss eqssi ) BACZBJBDBBAEFGJHI $.

  ${
    $d A y z $.  $d B y z $.  $d C y z $.  $d x y z $.  $d F y z $.
    $( Move class substitution in and out of the image of a function.
       (Contributed by FL, 15-Dec-2006.)  (Proof shortened by Mario Carneiro,
       4-Dec-2016.) $)
    csbima12g $p |- ( A e. C -> [_ A / x ]_ ( F " B ) =
                 ( [_ A / x ]_ F " [_ A / x ]_ B ) ) $=
      ( vy cv cima csb csbeq1 imaeq12d eqeq12d vex nfcsb1v nfima csbeq1a csbief
      wceq vtoclg ) AFGZECHZIZATEIZATCIZHZRABUAIZABEIZABCIZHZRFBDTBRZUBUFUEUIAT
      BUAJUJUCUGUDUHATBEJATBCJKLATUAUEFMAUCUDATENATCNOAGTREUCCUDATEPATCPKQS $.
  $}

  $( A class whose image under another is empty is disjoint with the other's
     domain.  (Contributed by FL, 24-Jan-2007.) $)
  imadisj $p |- ( ( A " B ) = (/) <-> ( dom A i^i B ) = (/) ) $=
    ( cima wceq cres crn cdm cin df-ima eqeq1i dm0rn0 dmres incom eqtri 3bitr2i
    c0 ) ABCZPDABEZFZPDRGZPDAGZBHZPDQSPABIJRKTUBPTBUAHUBABLBUAMNJO $.

  $( A preimage under any class is included in the domain of the class.
     (Contributed by FL, 29-Jan-2007.) $)
  cnvimass $p |- ( `' A " B ) C_ dom A $=
    ( ccnv cima crn cdm imassrn dfdm4 sseqtr4i ) ACZBDJEAFJBGAHI $.

  $( The preimage of the range of a class is the domain of the class.
     (Contributed by Jeff Hankins, 15-Jul-2009.) $)
  cnvimarndm $p |- ( `' A " ran A ) = dom A $=
    ( ccnv cdm cima crn imadmrn df-rn imaeq2i dfdm4 3eqtr4i ) ABZKCZDKEKAEZDACK
    FMLKAGHAIJ $.

  ${
    $d x y A $.  $d x B $.  $d x y R $.
    $( The image of a singleton.  (Contributed by NM, 8-May-2005.) $)
    imasng $p |- ( A e. B -> ( R " { A } ) = { y | A R y } ) $=
      ( vx wcel cvv csn cima wbr cab wceq elex wrex dfima2 rexsng abbidv syl5eq
      cv breq1 syl ) BCFBGFZDBHZIZBASZDJZAKZLBCMUBUDESZUEDJZEUCNZAKUGEADUCOUBUJ
      UFAUIUFEBGUHBUEDTPQRUA $.

    $( Elementhood in the image of a singleton.  (Contributed by Jim Kingdon,
       10-Dec-2018.) $)
    elreimasng $p |- ( ( Rel R /\ A e. V ) -> ( B e. ( R " { A } ) <->
        A R B ) ) $=
      ( vx wcel csn cima cv wbr cab wrel imasng eleq2d cvv wi wb brrelex2 breq2
      ex elab3g syl sylan9bbr ) ADFZBCAGHZFBAEIZCJZEKZFZCLZABCJZUDUEUHBEADCMNUJ
      UKBOFZPUIUKQUJUKULABCRTUGUKEBOUFBACSUAUBUC $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    elimasn.1 $e |- B e. _V $.
    elimasn.2 $e |- C e. _V $.
    $( Membership in an image of a singleton.  (Contributed by NM,
       15-Mar-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    elimasn $p |- ( C e. ( A " { B } ) <-> <. B , C >. e. A ) $=
      ( vx csn cima wcel wbr cop cv breq2 cvv cab wceq imasng ax-mp elab2 df-br
      bitri ) CABGHZIBCAJZBCKAIBFLZAJZUCFCUBEUDCBAMBNIUBUEFOPDFBNAQRSBCATUA $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d C y z $.
    $( Membership in an image of a singleton.  (Contributed by Raph Levien,
       21-Oct-2006.) $)
    elimasng $p |- ( ( B e. V /\ C e. W ) ->
                   ( C e. ( A " { B } ) <-> <. B , C >. e. A ) ) $=
      ( vz vy cv csn cima wcel cop wceq sneq imaeq2d eleq2d eleq1d bibi12d vex
      wb opeq1 eleq1 opeq2 elimasn vtocl2g ) FHZAGHZIZJZKZUGUFLZAKZTUFABIZJZKZB
      UFLZAKZTCUNKZBCLZAKZTGFBCDEUGBMZUJUOULUQVAUIUNUFVAUHUMAUGBNOPVAUKUPAUGBUF
      UAQRUFCMZUOURUQUTUFCUNUBVBUPUSAUFCBUCQRAUGUFGSFSUDUE $.
  $}

  ${
    $d y F $.  $d x y $.
    $( Two ways to express the class of unique-valued arguments of ` F ` ,
       which is the same as the domain of ` F ` whenever ` F ` is a function.
       The left-hand side of the equality is from Definition 10.2 of [Quine]
       p. 65.  Quine uses the notation "arg ` F ` " for this class (for which
       we have no separate notation).  (Contributed by NM, 8-May-2005.) $)
    args $p |- { x | E. y ( F " { x } ) = { y } } = { x | E! y x F y } $=
      ( cv csn cima wceq wex wbr weu cab cvv wcel vex imasng ax-mp eqeq1i exbii
      euabsn bitr4i abbii ) CADZEFZBDZEZGZBHZUBUDCIZBJZAUGUHBKZUEGZBHUIUFUKBUCU
      JUEUBLMUCUJGANBUBLCOPQRUHBSTUA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    eliniseg.1 $e |- C e. _V $.
    $( Membership in an initial segment.  The idiom ` ( ``' A " { B } ) ` ,
       meaning ` { x | x A B } ` , is used to specify an initial segment in
       (for example) Definition 6.21 of [TakeutiZaring] p. 30.  (Contributed by
       NM, 28-Apr-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    eliniseg $p |- ( B e. V -> ( C e. ( `' A " { B } ) <-> C A B ) ) $=
      ( wcel cvv ccnv csn cima wbr wb wa cop elimasng df-br syl6bbr bitrd mpan2
      brcnvg ) BDFZCGFZCAHZBIJFZCBAKZLEUAUBMZUDBCUCKZUEUFUDBCNUCFUGUCBCDGOBCUCP
      QBCDGATRS $.
  $}

  ${
    $d A x y $.
    epini.1 $e |- A e. _V $.
    $( Any set is equal to its preimage under the converse epsilon relation.
       (Contributed by Mario Carneiro, 9-Mar-2013.) $)
    epini $p |- ( `' _E " { A } ) = A $=
      ( vx cep ccnv csn cima cv wbr cvv wb vex eliniseg ax-mp epelc bitri eqriv
      wcel ) CDEAFGZACHZSRZTADIZTARAJRUAUBKBDATJCLMNTABOPQ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An idiom that signifies an initial segment of an ordering, used, for
       example, in Definition 6.21 of [TakeutiZaring] p. 30.  (Contributed by
       NM, 28-Apr-2004.) $)
    iniseg $p |- ( B e. V -> ( `' A " { B } ) = { x | x A B } ) $=
      ( wcel cvv ccnv csn cima cv wbr cab wceq elex vex eliniseg abbi2dv syl )
      CDECFEZBGCHIZAJZCBKZALMCDNSUBATBCUAFAOPQR $.
  $}

  ${
    $d x y A $.  $d x y R $.  $d x V $.
    $( Alternate definition of set-like relation.  (Contributed by Mario
       Carneiro, 23-Jun-2015.) $)
    dfse2 $p |- ( R Se A <-> A. x e. A ( A i^i ( `' R " { x } ) ) e. _V ) $=
      ( vy wse cv wbr crab cvv wcel wral ccnv csn cima cin df-se cab dfrab3 vex
      wceq iniseg ax-mp ineq2i eqtr4i eleq1i ralbii bitri ) BCEDFAFZCGZDBHZIJZA
      BKBCLUHMNZOZIJZABKADBCPUKUNABUJUMIUJBUIDQZOUMUIDBRULUOBUHIJULUOTASDCUHIUA
      UBUCUDUEUFUG $.

    $( Any set relation is set-like.  (Contributed by Mario Carneiro,
       22-Jun-2015.) $)
    exse2 $p |- ( R e. V -> R Se A ) $=
      ( vy vx wcel cv wbr crab cvv wral wse cdm wss wa cab df-rab breldm adantl
      vex abssi eqsstri dmexg ssexg sylancr ralrimivw df-se sylibr ) BCFZDGZEGZ
      BHZDAIZJFZEAKABLUIUNEAUIUMBMZNUOJFUNUMUJAFZULOZDPUOULDAQUQDUOULUJUOFUPUJU
      KBDTETRSUAUBBCUCUMUOJUDUEUFEDABUGUH $.
  $}

  $( Subset theorem for image.  (Contributed by NM, 16-Mar-2004.) $)
  imass1 $p |- ( A C_ B -> ( A " C ) C_ ( B " C ) ) $=
    ( wss cres crn cima ssres rnss syl df-ima 3sstr4g ) ABDZACEZFZBCEZFZACGBCGM
    NPDOQDABCHNPIJACKBCKL $.

  $( Subset theorem for image.  Exercise 22(a) of [Enderton] p. 53.
     (Contributed by NM, 22-Mar-1998.) $)
  imass2 $p |- ( A C_ B -> ( C " A ) C_ ( C " B ) ) $=
    ( wss cres crn cima ssres2 rnss syl df-ima 3sstr4g ) ABDZCAEZFZCBEZFZCAGCBG
    MNPDOQDABCHNPIJCAKCBKL $.

  $( The image of a singleton outside the domain is empty.  (Contributed by NM,
     22-May-1998.) $)
  ndmima $p |- ( -. A e. dom B -> ( B " { A } ) = (/) ) $=
    ( cdm wcel wn csn cima cres crn c0 df-ima wceq cin dmres incom eqtri disjsn
    biimpri syl5eq dm0rn0 sylib ) ABCZDEZBAFZGBUDHZIZJBUDKUCUECZJLUFJLUCUGUBUDM
    ZJUGUDUBMUHBUDNUDUBOPUHJLUCUBAQRSUETUAS $.

  ${
    $d x y A $.
    $( A converse is a relation.  Theorem 12 of [Suppes] p. 62.  (Contributed
       by NM, 29-Oct-1996.) $)
    relcnv $p |- Rel `' A $=
      ( vy vx cv wbr ccnv df-cnv relopabi ) BDCDAECBAFCBAGH $.
  $}

  ${
    $( When ` R ` is a relation, the sethood assumptions on ~ brcnv can be
       omitted.  (Contributed by Mario Carneiro, 28-Apr-2015.) $)
    relbrcnvg $p |- ( Rel R -> ( A `' R B <-> B R A ) ) $=
      ( wrel cvv wcel wa ccnv wbr wi relcnv brrelex12 mpan a1i ancomd ex brcnvg
      wb pm5.21ndd ) CDZAEFZBEFZGZABCHZIZBACIZUEUCJTUDDUEUCCKABUDLMNTUFUCTUFGUB
      UABACLOPUCUEUFRJTABEECQNS $.

    relbrcnv.1 $e |- Rel R $.
    $( When ` R ` is a relation, the sethood assumptions on ~ brcnv can be
       omitted.  (Contributed by Mario Carneiro, 28-Apr-2015.) $)
    relbrcnv $p |- ( A `' R B <-> B R A ) $=
      ( wrel ccnv wbr wb relbrcnvg ax-mp ) CEABCFGBACGHDABCIJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y z R $.
    $( Two ways of saying a relation is transitive.  Definition of transitivity
       in [Schechter] p. 51.  (Contributed by NM, 27-Dec-1996.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    cotr $p |- ( ( R o. R ) C_ R <->
             A. x A. y A. z ( ( x R y /\ y R z ) -> x R z ) ) $=
      ( ccom wss cv cop wcel wi wal wbr wa wrel wb wex df-co vex albii bitri
      relopabi ssrel ax-mp opelco df-br bicomi imbi12i 19.23v bitr4i alcom ) DD
      EZDFZAGZCGZHZUKIZUODIZJZCKZAKZUMBGZDLVAUNDLMZUMUNDLZJZCKBKZAKUKNULUTOVBBP
      ZACUKACBDDQUAACUKDUBUCUSVEAUSVDBKZCKVEURVGCURVFVCJVGUPVFUQVCBUMUNDDARCRUD
      VCUQUMUNDUEUFUGVBVCBUHUISVDCBUJTST $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y z S $.  $d z V $.
    $d z W $.
    $( Two ways to state a relation is reflexive.  Adapted from Tarski.
       (Contributed by FL, 15-Jan-2012.)  (Revised by NM, 30-Mar-2016.) $)
    issref $p |- ( ( _I |` A ) C_ R <-> A. x e. A x R x ) $=
      ( vy vz cv wbr wral wcel wi wal cop cid wss df-ral cvv vex opelresi ax-mp
      sylbi cres wb df-br bicomi imbi12i albii ralidm bitri cxp pm2.27 opelresg
      ralv wa weq ideq opeq2 eleq1d biimpcd syl6bir pm2.43i com3r sylbir syl6bi
      syl6 imp ralrimiv sps ralimi wceq eleq1 imbi12d sylibr wrel relres df-rel
      ralxp mpbi sseli ancri pm3.31 syl5 alimi syl ssel alrimiv impbii 3bitr2ri
      dfss2 ) AFZWICGZABHWIBIZWJJZAKWIWILZMBUAZIZWMCIZJZAKZWNCNZWJABOWQWLAWOWKW
      PWJWIPIZWOWKUBAQZWIBPRSWJWPWIWICUCUDUEUFWRWSWRDFZWNIZXBCIZJZDKZWSWRWQAPHZ
      APHZXFXHXGWRWQAPUGWQAULUHXHXEDPPUIZHZXFXHWIEFZLZWNIZXLCIZJZEPHZAPHXJXGXPA
      PXGWTWQJZAKXPWQAPOXQXPAWTXQXPJXAWTXQWQXPWTWQUJWQXOEPXKPIZXMWQXNXRXMXLMIZW
      KUMWQXNJZWIXKMBPUKXSWKXTXSWIXKMGZWKXTJZWIXKMUCYAAEUNZYBWIXKEQUOWKWQYCXNWK
      WQYCXNJZJZWKWKWOYEWIBBRWOWQWPYDWOWPUJYCWPXNYCWMXLCWIXKWIUPUQURVDUSUTVATVB
      VEVCVAVFVDSVGTVHXEXODAEPPXBXLVIXCXMXDXNXBXLWNVJXBXLCVJVKVPVLXJXBXIIZXEJZD
      KXFXEDXIOYGXEDXCYFXCUMYGXDXCYFWNXIXBWNVMWNXINMBVNWNVOVQVRVSYFXCXDVTWAWBTW
      CVBDWNCWHVLWSWQAWNCWMWDWEWFWG $.

    $( Two ways of saying a relation is symmetric.  Similar to definition of
       symmetry in [Schechter] p. 51.  (Contributed by NM, 28-Dec-1996.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    cnvsym $p |- ( `' R C_ R <-> A. x A. y ( x R y -> y R x ) ) $=
      ( cv cop ccnv wcel wi wal wss wbr alcom wrel relcnv ssrel ax-mp vex brcnv
      wb df-br bitr3i imbi12i 2albii 3bitr4i ) BDZADZEZCFZGZUGCGZHZAIBIZUKBIAIU
      HCJZUFUECKZUEUFCKZHZBIAIUKBALUHMUMULSCNBAUHCOPUPUKABUNUIUOUJUNUEUFUHKUIUE
      UFCBQAQRUEUFUHTUAUEUFCTUBUCUD $.

    $( Two ways of saying a relation is antisymmetric.  Definition of
       antisymmetry in [Schechter] p. 51.  (Contributed by NM, 9-Sep-2004.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    intasym $p |- ( ( R i^i `' R ) C_ _I <->
                  A. x A. y ( ( x R y /\ y R x ) -> x = y ) ) $=
      ( ccnv cin cid wss cv cop wcel wi wal wbr wa weq wrel wb df-br vex bitr3i
      relcnv relin2 ssrel mp2b elin brcnv anbi12i bitr4i imbi12i 2albii bitri
      ideq ) CCDZEZFGZAHZBHZIZUNJZURFJZKZBLALZUPUQCMZUQUPCMZNZABOZKZBLALUMPUNPU
      OVBQCUACUMUBABUNFUCUDVAVGABUSVEUTVFUSURCJZURUMJZNVEURCUMUEVCVHVDVIUPUQCRV
      DUPUQUMMVIUPUQCASBSZUFUPUQUMRTUGUHUTUPUQFMVFUPUQFRUPUQVJULTUIUJUK $.

    $( Two ways of saying a relation is antisymmetric and reflexive.
       ` U. U. R ` is the field of a relation by ~ relfld .  (Contributed by
       NM, 6-May-2008.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    asymref $p |- ( ( R i^i `' R ) = ( _I |` U. U. R ) <->
       A. x e. U. U. R A. y ( ( x R y /\ y R x ) <-> x = y ) ) $=
      ( cv wcel cid cuni wb wal wbr wa wceq wi df-br bitr3i bitri 3bitr4i albii
      vex wrel cop ccnv cin cres wral opeluu simpld adantr pm4.71ri bibi1i elin
      sylbi brcnv anbi12i bitr4i opelres ideq pm5.32 19.21v relcnv relin2 ax-mp
      anbi2ci bibi12i relres eqrel mp2an df-ral ) ADZBDZUAZCCUBZUCZEZVKFCGGZUDZ
      EZHZBIZAIZVIVOEZVIVJCJZVJVICJZKZVIVJLZHZBIZMZAIVMVPLZWGAVOUEVSWHAVSWAWFMZ
      BIWHVRWJBWDWAWEKZHWAWDKZWKHVRWJWDWLWKWDWAWBWAWCWBWAVJVOEZWBVKCEZWAWMKVIVJ
      CNZVIVJCASZBSZUFULUGUHUIUJVNWDVQWKVNWNVKVLEZKWDVKCVLUKWBWNWCWRWOWCVIVJVLJ
      WRVIVJCWPWQUMVIVJVLNOUNUOVQVKFEZWAKWKVIVJFVOWQUPWSWEWAWSVIVJFJWEVIVJFNVIV
      JWQUQOVCPVDWAWDWEURQRWAWFBUSPRVMTZVPTWIVTHVLTWTCUTCVLVAVBFVOVEABVMVPVFVGW
      GAVOVHQ $.

    $( Two ways of saying a relation is irreflexive.  Definition of
       irreflexivity in [Schechter] p. 51.  (Contributed by NM, 9-Sep-2004.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    intirr $p |- ( ( R i^i _I ) = (/) <-> A. x -. x R x ) $=
      ( vy cid cin c0 wceq cv cop wcel cvv cdif wi wal wbr wn wss df-br 3bitr2i
      vex incom eqeq1i disj2 wrel wb reli ssrel ax-mp 3bitri equcom wa biantrur
      ideq opex eldif bitr4i xchnxbir imbi12i 2albii breq2 notbid equsal albii
      nfv ) BDEZFGZAHZCHZIZDJZVIKBLZJZMZCNANZVHVGGZVGVHBOZPZMZCNZANVGVGBOZPZANV
      FDBEZFGDVKQZVNVEWBFBDUAUBDBUCDUDWCVNUEUFACDVKUGUHUIVRVMACVOVJVQVLVOVGVHGV
      GVHDOVJCAUJVGVHCTZUMVGVHDRSVIBJZVLVPWEPZVIKJZWFUKVLWGWFVGVHATWDUNULVIKBUO
      UPVGVHBRUQURUSVSWAAVQWACAWACVDVOVPVTVHVGVGBUTVAVBVCS $.

    $( Two ways of saying that two elements have an upper bound.  (Contributed
       by Mario Carneiro, 3-Nov-2015.) $)
    brcodir $p |- ( ( A e. V /\ B e. W ) ->
      ( A ( `' R o. R ) B <-> E. z ( A R z /\ B R z ) ) ) $=
      ( wcel wa ccnv ccom wbr cv wex brcog wb cvv vex brcnvg mpan anbi2d adantl
      exbidv bitrd ) BEGZCFGZHZBCDIZDJKBALZDKZUHCUGKZHZAMUICUHDKZHZAMABCUGDEFNU
      FUKUMAUEUKUMOUDUEUJULUIUHPGUEUJULOAQUHCPFDRSTUAUBUC $.

    $( Two ways of saying a relation is directed.  (Contributed by Mario
       Carneiro, 22-Nov-2013.) $)
    codir $p |- ( ( A X. B ) C_ ( `' R o. R ) <-> A. x e. A A. y e. B
      E. z ( x R z /\ y R z ) ) $=
      ( cv cop cxp wcel ccnv ccom wi wal wa wbr wral cvv wb vex wex wss brcodir
      opelxp df-br mp2an bitr3i imbi12i 2albii wrel relxp ssrel ax-mp 3bitr4i
      r2al ) AGZBGZHZDEIZJZURFKFLZJZMZBNANZUPDJUQEJOZUPCGZFPUQVFFPOCUAZMZBNANUS
      VAUBZVGBEQADQVCVHABUTVEVBVGUPUQDEUDVBUPUQVAPZVGUPUQVAUEUPRJUQRJVJVGSATBTC
      UPUQFRRUCUFUGUHUIUSUJVIVDSDEUKABUSVAULUMVGABDEUOUN $.

    $( A quantifier-free way of expressing the total order predicate.
       (Contributed by Mario Carneiro, 22-Nov-2013.) $)
    qfto $p |- ( ( A X. B ) C_ ( R u. `' R ) <->
                 A. x e. A A. y e. B ( x R y \/ y R x ) ) $=
      ( cv cop cxp wcel ccnv cun wi wal wa wbr wo wss wral opelxp vex brun wrel
      df-br brcnv orbi2i 3bitr3i imbi12i 2albii relxp ssrel ax-mp r2al 3bitr4i
      wb ) AFZBFZGZCDHZIZUQEEJZKZIZLZBMAMZUOCIUPDINZUOUPEOZUPUOEOZPZLZBMAMURVAQ
      ZVHBDRACRVCVIABUSVEVBVHUOUPCDSUOUPVAOVFUOUPUTOZPVBVHUOUPEUTUAUOUPVAUCVKVG
      VFUOUPEATBTUDUEUFUGUHURUBVJVDUNCDUIABURVAUJUKVHABCDULUM $.

    $( A square cross product ` ( A X. A ) ` is a transitive relation.
       (Contributed by FL, 31-Jul-2009.) $)
    xpidtr $p |- ( ( A X. A ) o. ( A X. A ) ) C_ ( A X. A ) $=
      ( vx vy vz cxp ccom wss cv wbr wa wal wcel simplbi2com adantl sylbi com12
      wi brxp adantr imp ax-gen gen2 cotr mpbir ) AAEZUEFUEGBHZCHZUEIZUGDHZUEIZ
      JUFUIUEIZQZDKZCKBKUMBCULDUHUJUKUHUFALZUGALZJUJUKQZUFUGAARUNUPUOUJUNUKUJUO
      UIALZJUNUKQZUGUIAARUQURUOUKUNUQUFUIAARMNOPSOTUAUBBCDUEUCUD $.

    $( The intersection of two transitive classes is transitive.  (Contributed
       by FL, 31-Jul-2009.) $)
    trin2 $p |- ( ( ( R o. R ) C_ R /\ ( S o. S ) C_ S )
      -> ( ( R i^i S ) o. ( R i^i S ) ) C_ ( R i^i S ) ) $=
      ( vx vy vz ccom wss wa cv cin wbr wal cotr brin simpr simpl com12 alanimi
      wi sylbi anim12d an4s syl2anb syl6ibr ex imp sylibr ) AAFAGZBBFBGZHCIZDIZ
      ABJZKZUKEIZULKZHZUJUNULKZSZELZDLZCLZULULFULGUHUIVAUHUJUKAKZUKUNAKZHZUJUNA
      KZSZELZDLZCLZUIVASCDEAMUIVIVAUIUJUKBKZUKUNBKZHZUJUNBKZSZELZDLZCLZVIVASCDE
      BMVQVIVAVPVHUTCVOVGUSDVNVFUREVNVFHZUPVEVMHZUQUPVRVSUMVBVJHVCVKHVRVSSZUOUJ
      UKABNUKUNABNVBVCVJVKVTVRVDVLHVSVRVDVEVLVMVNVFOVNVFPUAQUBUCQUJUNABNUDRRRUE
      TQTUFCDEULMUG $.

    $( A partial order relation is irreflexive.  (Contributed by Mario
       Carneiro, 2-Nov-2015.) $)
    poirr2 $p |- ( R Po A -> ( R i^i ( _I |` A ) ) = (/) ) $=
      ( vx vy wpo cid cres cin c0 wss wceq wrel relres relin2 cv wcel wbr wa wn
      syl5bi mp1i cop df-br brin bitr3i wi vex brres poirr wb ideq breq2 notbid
      sylbi syl5ibcom expimpd ancomsd con2d imnan sylib pm2.21d relssdv ss0 syl
      ) ABEZBFAGZHZIJVGIKVECDVGIVFLVGLVEFAMBVFNUACOZDOZUBZVGPZVHVIBQZVHVIVFQZRZ
      VEVJIPZVKVHVIVGQVNVHVIVGUCVHVIBVFUDUEVEVNVOVEVLVMSUFVNSVEVMVLVMVHVIFQZVHA
      PZRVEVLSZVHVIFADUGZUHVEVQVPVRVEVQVPVRVEVQRVHVHBQZSVPVRAVHBUIVPVTVLVPVHVIK
      VTVLUJVHVIVSUKVHVIVHBULUNUMUOUPUQTURVLVMUSUTVATVBVGVCVD $.
  $}

  $( The relation induced by a transitive relation on a part of its field is
     transitive.  (Taking the intersection of a relation with a square cross
     product is a way to restrict it to a subset of its field.)  (Contributed
     by FL, 31-Jul-2009.) $)
  trinxp $p |- ( ( R o. R ) C_ R ->
  ( ( R i^i ( A X. A ) ) o. ( R i^i ( A X. A ) ) ) C_ ( R i^i ( A X. A ) ) ) $=
    ( ccom wss cxp cin xpidtr trin2 mpan2 ) BBCBDAAEZJCJDBJFZKCKDAGBJHI $.

  ${
    soi.1 $e |- R Or S $.
    soi.2 $e |- R C_ ( S X. S ) $.
    $( A strict order relation is irreflexive.  (Contributed by NM,
       10-Feb-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    soirri $p |- -. A R A $=
      ( wbr id wor wcel wn brel simpld sonr sylancr pm2.65i ) AABFZPPGPCBHACIZP
      JDPQQAACCBEKLCABMNO $.

    ${
      $d A x $.  $d B x $.  $d R x $.
      $( A strict order relation is a transitive relation.  (Contributed by NM,
         10-Feb-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
      sotri $p |- ( ( A R B /\ B R C ) -> A R C ) $=
        ( wcel wa wbr brel simpld anim12i wi wor w3a sotr mpan 3expb mpcom ) AE
        HZBEHZCEHZIZIABDJZBCDJZIZACDJZUEUAUFUDUEUAUBABEEDGKLBCEEDGKMUAUBUCUGUHN
        ZEDOUAUBUCPUIFEABCDQRST $.

      $( A strict order relation has no 2-cycle loops.  (Contributed by NM,
         10-Feb-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
      son2lpi $p |- -. ( A R B /\ B R A ) $=
        ( wbr wa soirri sotri mto ) ABCGBACGHAACGACDEFIABACDEFJK $.

      $( A transitivity relation.  (Read ` -. ` B < A and B < C implies A <
         C .)  (Contributed by Mario Carneiro, 10-May-2013.) $)
      sotri2 $p |- ( ( A e. S /\ -. B R A /\ B R C ) -> A R C ) $=
        ( wcel wbr wn w3a simp2 wo wa brel 3ad2ant3 simp1 df-3an sylanbrc simp3
        wor wi sowlin mpan sylc ord mpd ) AEHZBADIZJZBCDIZKZUJACDIZUHUJUKLULUIU
        MULBEHZCEHZUHKZUKUIUMMZULUNUONZUHUPUKUHURUJBCEEDGOPUHUJUKQUNUOUHRSUHUJU
        KTEDUAUPUKUQUBFEBCADUCUDUEUFUG $.

      $( A transitivity relation.  (Read A < B and ` -. ` C < B implies A <
         C .)  (Contributed by Mario Carneiro, 10-May-2013.) $)
      sotri3 $p |- ( ( C e. S /\ A R B /\ -. C R B ) -> A R C ) $=
        ( wcel wbr wn w3a simp3 wo wa brel 3ad2ant2 simp1 df-3an sylanbrc simp2
        wor wi sowlin mpan sylc ecased ) CEHZABDIZCBDIZJZKZACDIZUIUGUHUJLUKAEHZ
        BEHZUGKZUHULUIMZUKUMUNNZUGUOUHUGUQUJABEEDGOPUGUHUJQUMUNUGRSUGUHUJTEDUAU
        OUHUPUBFEABCDUCUDUEUF $.
    $}
  $}

  $( Express "less than or equals" for general strict orders.  (Contributed by
     Stefan O'Rear, 17-Jan-2015.) $)
  poleloe $p |- ( B e. V -> ( A ( R u. _I ) B <-> ( A R B \/ A = B ) ) ) $=
    ( cid cun wbr wo wcel wceq brun ideqg orbi2d syl5bb ) ABCEFGABCGZABEGZHBDIZ
    OABJZHABCEKQPROABDLMN $.

  $( Transitive law for general strict orders.  (Contributed by Stefan O'Rear,
     17-Jan-2015.) $)
  poltletr $p |- ( ( R Po X /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( A R B /\ B ( R u. _I ) C ) -> A R C ) ) $=
    ( wpo wcel w3a wa wbr cid cun wceq wo poleloe 3ad2ant3 adantl anbi2d com12
    wb wi potr breq2 biimpac a1d jaodan sylbid ) EDFZAEGZBEGZCEGZHZIZABDJZBCDKL
    JZIUNBCDJZBCMZNZIZACDJZUMUOURUNULUOURTZUHUKUIVAUJBCDEOPQRUSUMUTUNUPUMUTUAUQ
    UMUNUPIUTEABCDUBSUNUQIUTUMUQUNUTBCADUCUDUEUFSUG $.

  ${
    $d x y z w $.  $d z w ph $.
    $( The converse of a class abstraction of ordered pairs.  (Contributed by
       NM, 11-Dec-2003.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    cnvopab $p |- `' { <. x , y >. | ph } = { <. y , x >. | ph } $=
      ( vz vw copab ccnv relcnv relopab cop wcel wsb opelopabsbALT sbcom2 bitri
      cv vex opelcnv 3bitr4i eqrelriiv ) DEABCFZGZACBFZUAHACBIEPZDPZJUAKZACDLBE
      LZUEUDJZUBKUHUCKUFABELCDLUGABCEDMABECDNOUEUDUADQEQRACBDEMST $.
  $}

  ${
    $d x y $.
    $( The converse of the empty set.  (Contributed by NM, 6-Apr-1998.) $)
    cnv0 $p |- `' (/) = (/) $=
      ( vx vy c0 ccnv relcnv rel0 cv cop wcel vex opelcnv noel 2false eqrelriiv
      bitr4i ) ABCDZCCEFAGZBGZHZPIRQHZCIZSCIZQRCAJBJKUBUASLTLMON $.

    $( The converse of the identity relation.  Theorem 3.7(ii) of [Monk1]
       p. 36.  (Contributed by NM, 26-Apr-1998.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    cnvi $p |- `' _I = _I $=
      ( vy vx cid wbr copab weq ccnv vex ideq equcom bitri opabbii df-cnv df-id
      cv 3eqtr4i ) AOZBOZCDZBAEBAFZBAECGCSTBASABFTQRBHIABJKLBACMBANP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The converse of a union is the union of converses.  Theorem 16 of
       [Suppes] p. 62.  (Contributed by NM, 25-Mar-1998.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    cnvun $p |- `' ( A u. B ) = ( `' A u. `' B ) $=
      ( vy vx cun ccnv cv wbr copab df-cnv unopab brun opabbii eqtr4i uneq12i
      wo ) ABEZFZCGZDGZAHZDCIZSTBHZDCIZEZAFZBFZERSTQHZDCIZUEDCQJUEUAUCPZDCIUIUA
      UCDCKUHUJDCSTABLMNNUFUBUGUDDCAJDCBJON $.

    $( Distributive law for converse over set difference.  (Contributed by
       Mario Carneiro, 26-Jun-2014.) $)
    cnvdif $p |- `' ( A \ B ) = ( `' A \ `' B ) $=
      ( vx vy cdif ccnv relcnv wss wrel difss relss mp2 cv cop wcel wn wa eldif
      vex opelcnv notbii anbi12i bitri 3bitr4i eqrelriiv ) CDABEZFZAFZBFZEZUFGU
      JUHHUHIUJIUHUIJAGUJUHKLDMZCMZNZUFOUMAOZUMBOZPZQZULUKNZUGOURUJOZUMABRULUKU
      FCSZDSZTUSURUHOZURUIOZPZQUQURUHUIRVBUNVDUPULUKAUTVATVCUOULUKBUTVATUAUBUCU
      DUE $.

    $( Distributive law for converse over intersection.  Theorem 15 of [Suppes]
       p. 62.  (Contributed by NM, 25-Mar-1998.)  (Revised by Mario Carneiro,
       26-Jun-2014.) $)
    cnvin $p |- `' ( A i^i B ) = ( `' A i^i `' B ) $=
      ( vy vx cin ccnv cv wbr copab df-cnv inopab brin opabbii eqtr4i ineq12i
      wa ) ABEZFZCGZDGZAHZDCIZSTBHZDCIZEZAFZBFZERSTQHZDCIZUEDCQJUEUAUCPZDCIUIUA
      UCDCKUHUJDCSTABLMNNUFUBUGUDDCAJDCBJON $.
  $}

  $( Distributive law for range over union.  Theorem 8 of [Suppes] p. 60.
     (Contributed by NM, 24-Mar-1998.) $)
  rnun $p |- ran ( A u. B ) = ( ran A u. ran B ) $=
    ( cun ccnv cdm crn cnvun dmeqi dmun eqtri df-rn uneq12i 3eqtr4i ) ABCZDZEZA
    DZEZBDZEZCZNFAFZBFZCPQSCZEUAOUDABGHQSIJNKUBRUCTAKBKLM $.

  $( The range of an intersection belongs the intersection of ranges.  Theorem
     9 of [Suppes] p. 60.  (Contributed by NM, 15-Sep-2004.) $)
  rnin $p |- ran ( A i^i B ) C_ ( ran A i^i ran B ) $=
    ( cin ccnv cdm crn cnvin dmeqi dmin eqsstri df-rn ineq12i 3sstr4i ) ABCZDZE
    ZADZEZBDZEZCZNFAFZBFZCPQSCZEUAOUDABGHQSIJNKUBRUCTAKBKLM $.

  ${
    $d x y z $.  $d y z A $.  $d y z B $.
    $( The range of an indexed union.  (Contributed by Mario Carneiro,
       29-May-2015.) $)
    rniun $p |- ran U_ x e. A B = U_ x e. A ran B $=
      ( vz vy ciun crn cv cop wcel wex wrex rexcom4 elrn2 rexbii eliun 3bitr4ri
      vex exbii 3bitr4i eqriv ) DABCFZGZABCGZFZEHDHZIZUBJZEKZUFUDJZABLZUFUCJUFU
      EJUGCJZEKZABLULABLZEKUKUIULAEBMUJUMABEUFCDRZNOUHUNEAUGBCPSQEUFUBUONAUFBUD
      PTUA $.

    $d x A $.
    $( The range of a union.  Part of Exercise 8 of [Enderton] p. 41.
       (Contributed by NM, 17-Mar-2004.)  (Revised by Mario Carneiro,
       29-May-2015.) $)
    rnuni $p |- ran U. A = U_ x e. A ran x $=
      ( cuni crn cv ciun uniiun rneqi rniun eqtri ) BCZDABAEZFZDABLDFKMABGHABLI
      J $.
  $}

  $( Distributive law for image over union.  Theorem 35 of [Suppes] p. 65.
     (Contributed by NM, 30-Sep-2002.) $)
  imaundi $p |- ( A " ( B u. C ) ) = ( ( A " B ) u. ( A " C ) ) $=
    ( cun cres crn cima resundi rneqi rnun eqtri df-ima uneq12i 3eqtr4i ) ABCDZ
    EZFZABEZFZACEZFZDZAOGABGZACGZDQRTDZFUBPUEABCHIRTJKAOLUCSUDUAABLACLMN $.

  $( The image of a union.  (Contributed by Jeff Hoffman, 17-Feb-2008.) $)
  imaundir $p |- ( ( A u. B ) " C ) = ( ( A " C ) u. ( B " C ) ) $=
    ( cun cima cres crn df-ima resundir rneqi rnun 3eqtri uneq12i eqtr4i ) ABDZ
    CEZACFZGZBCFZGZDZACEZBCEZDPOCFZGQSDZGUAOCHUDUEABCIJQSKLUBRUCTACHBCHMN $.

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( An upper bound for intersection with a domain.  Theorem 40 of [Suppes]
       p. 66, who calls it "somewhat surprising."  (Contributed by NM,
       11-Aug-2004.) $)
    dminss $p |- ( dom R i^i A ) C_ ( `' R " ( R " A ) ) $=
      ( vx vy cdm cin ccnv cima cv wbr wcel wa 19.8a ancoms elima2 sylibr simpl
      wex vex brcnv jca eximi eldm anbi1i elin 19.41v 3bitr4i 3imtr4i ssriv ) C
      BEZAFZBGZBAHZHZCIZDIZBJZUOAKZLZDRZUPUMKZUPUOULJZLZDRUOUKKZUOUNKUSVCDUSVAV
      BUSURUQLZCRZVAURUQVFVECMNCUPBADSZOPUSUQVBUQURQUPUOBVGCSZTPUAUBUOUJKZURLUQ
      DRZURLVDUTVIVJURDUOBVHUCUDUOUJAUEUQURDUFUGDUOULUMVHOUHUI $.

    $( An upper bound for intersection with an image.  Theorem 41 of [Suppes]
       p. 66.  (Contributed by NM, 11-Aug-2004.) $)
    imainss $p |- ( ( R " A ) i^i B ) C_ ( R " ( A i^i ( `' R " B ) ) ) $=
      ( vy vx cima cin ccnv cv wcel wbr wa wex brcnv 19.8a sylan2br elin elima2
      vex anbi1i ancoms anim2i simprl anassrs anbi2i bitri sylibr eximi 3bitr4i
      jca 19.41v 3imtr4i ssriv ) DCAFZBGZCACHZBFZGZFZEIZAJZUTDIZCKZLZVBBJZLZEMZ
      UTURJZVCLZEMVBUOJZVBUSJVFVIEVFVAVEVBUTUPKZLZDMZLZVCLZVIVAVCVEVOVAVCVELZLV
      NVCVPVMVAVEVCVMVCVEVKVMVBUTCDSZESZNVLDOPUAUBVAVCVEUCUJUDVHVNVCVHVAUTUQJZL
      VNUTAUQQVSVMVADUTUPBVRRUEUFTUGUHVBUNJZVELVDEMZVELVJVGVTWAVEEVBCAVQRTVBUNB
      QVDVEEUKUIEVBCURVQRULUM $.
  $}

  $( The image of an intersection (Contributed by Thierry Arnoux,
     16-Dec-2017.) $)
  inimass $p |- ( ( A i^i B ) " C ) C_ ( ( A " C ) i^i ( B " C ) ) $=
    ( cres cin crn cima rnin df-ima resindir rneqi eqtri ineq12i 3sstr4i ) ACDZ
    BCDZEZFZOFZPFZEABEZCGZACGZBCGZEOPHUBUACDZFRUACIUEQABCJKLUCSUDTACIBCIMN $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x V $.
    $( The intersection of the image of singleton (Contributed by Thierry
       Arnoux, 16-Dec-2017.) $)
    inimasn $p |- ( C e. V
      -> ( ( A i^i B ) " { C } ) = ( ( A " { C } ) i^i ( B " { C } ) ) ) $=
      ( vx wcel cin csn cima cv wa elin cop a1i cvv vex elimasng mpan2 anbi12d
      wb 3bitr4rd syl5rbb eqrdv ) CDFZEABGZCHZIZAUFIZBUFIZGZEJZUJFUKUHFZUKUIFZK
      ZUDUKUGFZUKUHUILUDCUKMZUEFZUPAFZUPBFZKZUOUNUQUTTUDUPABLNUDUKOFZUOUQTEPZUE
      CUKDOQRUDULURUMUSUDVAULURTVBACUKDOQRUDVAUMUSTVBBCUKDOQRSUAUBUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The converse of a cross product.  Exercise 11 of [Suppes] p. 67.
       (Contributed by NM, 14-Aug-1999.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    cnvxp $p |- `' ( A X. B ) = ( B X. A ) $=
      ( vy vx cv wcel copab ccnv cxp cnvopab ancom opabbii eqtri cnveqi 3eqtr4i
      wa df-xp ) CEAFZDEBFZPZCDGZHZSRPZDCGZABIZHBAIUBTDCGUDTCDJTUCDCRSKLMUEUACD
      ABQNDCBAQO $.
  $}

  $( The cross product with the empty set is empty.  Part of Theorem 3.13(ii)
     of [Monk1] p. 37.  (Contributed by NM, 12-Apr-2004.) $)
  xp0 $p |- ( A X. (/) ) = (/) $=
    ( c0 cxp ccnv 0xp cnveqi cnvxp cnv0 3eqtr3i ) BACZDBDABCBJBAEFBAGHI $.

  ${
    $d x y z A $.  $d x y z B $.
    $( The cross product of inhabited classes is inhabited.  (Contributed by
       Jim Kingdon, 11-Dec-2018.) $)
    xpmlem $p |- ( ( E. x x e. A /\ E. y y e. B ) <-> E. z z e. ( A X. B ) ) $=
      ( cv wcel wex wa cxp eeanv cop vex opex wceq eleq1 opelxp syl6bb exlimivv
      spcev sylbir elxp simpr 2eximi sylbi exlimiv sylib impbii ) AFZDGZAHBFZEG
      ZBHIZCFZDEJZGZCHZUMUJULIZBHAHZUQUJULABKZURUQABUPURCUIUKLZUIUKAMBMNUNVAOZU
      PVAUOGURUNVAUOPUIUKDEQRTSUAUQUSUMUPUSCUPVBURIZBHAHUSABUNDEUBVCURABVBURUCU
      DUEUFUTUGUH $.
  $}

  ${
    $d x A $.  $d y B $.  $d z A $.  $d z B $.  $d a b w A $.  $d a b w B $.
    $d a x $.  $d b y $.  $d z w $.
    $( The cross product of inhabited classes is inhabited.  (Contributed by
       Jim Kingdon, 13-Dec-2018.) $)
    xpm $p |- ( ( E. x x e. A /\ E. y y e. B ) <-> E. z z e. ( A X. B ) ) $=
      ( va vb vw cv wcel wex wa cxp xpmlem eleq1 cbvexv anbi12i 3bitr3i ) FIZDJ
      ZFKZGIZEJZGKZLHIZDEMZJZHKAIZDJZAKZBIZEJZBKZLCIZUFJZCKFGHDENUAUJUDUMTUIFAS
      UHDOPUCULGBUBUKEOPQUGUOHCUEUNUFOPR $.
  $}

  $( A cross product is empty if at least one member is empty.  (Contributed by
     Jim Kingdon, 12-Dec-2018.) $)
  xpeq0r $p |- ( ( A = (/) \/ B = (/) ) -> ( A X. B ) = (/) ) $=
    ( c0 wceq cxp xpeq1 0xp syl6eq xpeq2 xp0 jaoi ) ACDZABEZCDBCDZLMCBECACBFBGH
    NMACECBCAIAJHK $.

  $( Cross products with disjoint sets are disjoint.  (Contributed by NM,
     13-Sep-2004.) $)
  xpdisj1 $p |- ( ( A i^i B ) = (/) -> ( ( A X. C ) i^i ( B X. D ) ) = (/) ) $=
    ( cin c0 wceq cxp inxp xpeq1 0xp syl6eq syl5eq ) ABEZFGZACHBDHENCDEZHZFACBD
    IOQFPHFNFPJPKLM $.

  $( Cross products with disjoint sets are disjoint.  (Contributed by NM,
     13-Sep-2004.) $)
  xpdisj2 $p |- ( ( A i^i B ) = (/) -> ( ( C X. A ) i^i ( D X. B ) ) = (/) ) $=
    ( cin c0 wceq cxp inxp xpeq2 xp0 syl6eq syl5eq ) ABEZFGZCAHDBHECDEZNHZFCADB
    IOQPFHFNFPJPKLM $.

  $( Cross products with two different singletons are disjoint.  (Contributed
     by NM, 28-Jul-2004.) $)
  xpsndisj $p |- ( B =/= D -> ( ( A X. { B } ) i^i ( C X. { D } ) ) = (/) ) $=
    ( wne csn cin c0 wceq cxp disjsn2 xpdisj2 syl ) BDEBFZDFZGHIANJCOJGHIBDKNOA
    CLM $.

  ${
    $d x A $.  $d y B $.
    $( Disjoint unions with disjoint index sets are disjoint.  (Contributed by
       Stefan O'Rear, 21-Nov-2014.) $)
    djudisj $p |- ( ( A i^i B ) = (/) -> ( U_ x e. A ( { x } X. C ) i^i
            U_ y e. B ( { y } X. D ) ) = (/) ) $=
      ( cin c0 wceq cv csn cxp ciun cvv wss djussxp incom syl5eq ssdisj sylancr
      xpdisj1 ) CDGHIZACAJKELMZCNLZOUDBDBJKFLMZGZHIUCUEGHIACEPUBUFUEUDGZHUDUEQU
      BUEDNLZOUHUDGZHIUGHIBDFPUBUIUDUHGHUHUDQCDNNUARUEUHUDSTRUCUDUEST $.
  $}

  $( A double restriction to disjoint classes is the empty set.  (Contributed
     by NM, 7-Oct-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  resdisj $p |- ( ( A i^i B ) = (/) -> ( ( C |` A ) |` B ) = (/) ) $=
    ( cin c0 wceq cres resres reseq2 res0 syl6eq syl5eq ) ABDZEFZCAGBGCMGZECABH
    NOCEGEMECICJKL $.

  ${
    $d x A $.
    $( The range of a cross product.  Part of Theorem 3.13(x) of [Monk1] p. 37,
       with non-empty changed to inhabited.  (Contributed by Jim Kingdon,
       12-Dec-2018.) $)
    rnxpm $p |- ( E. x x e. A -> ran ( A X. B ) = B ) $=
      ( cv wcel wex cxp crn cdm ccnv df-rn cnvxp dmeqi eqtri dmxpm syl5eq ) ADB
      EAFBCGZHZCBGZIZCRQJZITQKUASBCLMNACBOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The domain of a cross product is a subclass of the first factor.
       (Contributed by NM, 19-Mar-2007.) $)
    dmxpss $p |- dom ( A X. B ) C_ A $=
      ( vx vy cxp cdm cv wcel cop wex vex eldm2 opelxp1 exlimiv sylbi ssriv ) C
      ABEZFZACGZRHSDGZIQHZDJSAHZDSQCKLUAUBDSTABMNOP $.
  $}

  $( The range of a cross product is a subclass of the second factor.
     (Contributed by NM, 16-Jan-2006.)  (Proof shortened by Andrew Salmon,
     27-Aug-2011.) $)
  rnxpss $p |- ran ( A X. B ) C_ B $=
    ( cxp crn ccnv cdm df-rn cnvxp dmeqi dmxpss eqsstri ) ABCZDLEZFZBLGNBACZFBM
    OABHIBAJKK $.

  ${
    $d x y A $.
    $( The range of a square cross product.  (Contributed by FL,
       17-May-2010.) $)
    rnxpid $p |- ran ( A X. A ) = A $=
      ( vx vy cxp crn rnxpss cv wcel cop wex wa opelxp anidm bitri weq wb opeq1
      eleq1d equcoms biimpd spimev sylbir vex elrn2 sylibr ssriv eqssi ) AADZEZ
      AAAFBAUIBGZAHZCGZUJIZUHHZCJZUJUIHUKUJUJIZUHHZUOUQUKUKKUKUJUJAALUKMNUQUNCB
      CBOUQUNUQUNPBCBCOUPUMUHUJULUJQRSTUAUBCUJUHBUCUDUEUFUG $.
  $}

  ${
    $d x a b A $.  $d x a b B $.
    $( A cross-product subclass relationship is equivalent to the relationship
       for its components.  (Contributed by Jim Kingdon, 12-Dec-2018.) $)
    ssxpbm $p |- ( E. x x e. ( A X. B ) -> ( ( A X. B ) C_ ( C X. D ) <->
                ( A C_ C /\ B C_ D ) ) ) $=
      ( va vb cv cxp wcel wex wss cdm wceq adantl sylbir adantr eqsstr3d syl6ss
      wa xpm dmxpm dmss dmxpss crn rnxpm rnss rnxpss jca ex xpss12 impbid1 ) AH
      BCIZJAKZUMDEIZLZBDLZCELZTZUNUPUSUNUPTZUQURUTBUOMZDUTBUMMZVAUNVBBNZUPUNFHB
      JFKZGHCJGKZTZVCFGABCUAZVEVCVDGBCUBOPQUPVBVALUNUMUOUCORDEUDSUTCUOUEZEUTCUM
      UEZVHUNVICNZUPUNVFVJVGVDVJVEFBCUFQPQUPVIVHLUNUMUOUGORDEUHSUIUJBDCEUKUL $.
  $}

  ${
    $d x C $.
    $( Cross product subset cancellation.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    ssxp1 $p |- ( E. x x e. C ->
        ( ( A X. C ) C_ ( B X. C ) <-> A C_ B ) ) $=
      ( cv wcel wex cxp wss cdm wceq dmxpm adantr adantl eqsstr3d dmxpss syl6ss
      wa dmss ex xpss1 impbid1 ) AEDFAGZBDHZCDHZIZBCIZUCUFUGUCUFRZBUEJZCUHBUDJZ
      UIUCUJBKUFABDLMUFUJUIIUCUDUESNOCDPQTBCDUAUB $.
  $}

  ${
    $d x C $.
    $( Cross product subset cancellation.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    ssxp2 $p |- ( E. x x e. C ->
        ( ( C X. A ) C_ ( C X. B ) <-> A C_ B ) ) $=
      ( cv wcel wex cxp wss crn wceq rnxpm adantr adantl eqsstr3d rnxpss syl6ss
      wa rnss ex xpss2 impbid1 ) AEDFAGZDBHZDCHZIZBCIZUCUFUGUCUFRZBUEJZCUHBUDJZ
      UIUCUJBKUFADBLMUFUJUIIUCUDUESNODCPQTBCDUAUB $.
  $}

  ${
    $d x A $.  $d y B $.  $d A z $.  $d B z $.  $d C z $.  $d D z $.
    $( The cross product of inhabited classes is one-to-one.  (Contributed by
       Jim Kingdon, 13-Dec-2018.) $)
    xp11m $p |- ( ( E. x x e. A /\ E. y y e. B )
        -> ( ( A X. B ) = ( C X. D ) <-> ( A = C /\ B = D ) ) ) $=
      ( vz cv wcel wex wa cxp wceq wi xpm anidm wss ssxpbm syl5ibcom eqss eleq2
      exbidv anbi2d syl5bbr eqimss eqimss2 anim12d anbi12i bitr4i syl6ib sylbid
      an4 com12 sylbi xpeq12 impbid1 ) AHCIAJBHDIBJKZCDLZEFLZMZCEMZDFMZKZUQGHZU
      RIZGJZUTVCNABGCDOUTVFVCUTVFVFVDUSIZGJZKZVCVFVFVFKUTVIVFPUTVFVHVFUTVEVGGUR
      USVDUAUBUCUDUTVICEQZDFQZKZECQZFDQZKZKZVCUTVFVLVHVOUTURUSQVFVLURUSUEGCDEFR
      SUTUSURQVHVOUSURUFGEFCDRSUGVPVJVMKZVKVNKZKVCVJVKVMVNULVAVQVBVRCETDFTUHUIU
      JUKUMUNCEDFUOUP $.
  $}

  ${
    $d x C $.
    $( Cancellation law for cross-product.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    xpcanm $p |- ( E. x x e. C -> ( ( C X. A ) = ( C X. B ) <-> A = B ) ) $=
      ( cv wcel wex cxp wss wa wceq ssxp2 anbi12d eqss 3bitr4g ) AEDFAGZDBHZDCH
      ZIZRQIZJBCIZCBIZJQRKBCKPSUATUBABCDLACBDLMQRNBCNO $.

    $( Cancellation law for cross-product.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    xpcan2m $p |- ( E. x x e. C -> ( ( A X. C ) = ( B X. C ) <-> A = B ) ) $=
      ( cv wcel wex cxp wss wa wceq ssxp1 anbi12d eqss 3bitr4g ) AEDFAGZBDHZCDH
      ZIZRQIZJBCIZCBIZJQRKBCKPSUATUBABCDLACBDLMQRNBCNO $.
  $}

  ${
    $d x a A $.  $d x b B $.
    $( If a nonempty cross product is a set, so are both of its components.
       (Contributed by Jim Kingdon, 14-Dec-2018.) $)
    xpexr2m $p |- ( ( ( A X. B ) e. C /\ E. x x e. ( A X. B ) ) ->
                 ( A e. _V /\ B e. _V ) ) $=
      ( va vb cv cxp wcel wex wa cvv xpm cdm dmxpm adantl dmexg adantr eqeltrrd
      wceq crn rnxpm rnexg anim12dan ancom2s sylan2br ) AGBCHZIAJUGDIZEGBIEJZFG
      CIFJZKBLIZCLIZKZEFABCMUHUJUIUMUHUJUKUIULUHUJKUGNZBLUJUNBTUHFBCOPUHUNLIUJU
      GDQRSUHUIKUGUAZCLUIUOCTUHEBCUBPUHUOLIUIUGDUCRSUDUEUF $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Subset of the range of a restriction.  (Contributed by NM,
       16-Jan-2006.) $)
    ssrnres $p |- ( B C_ ran ( C |` A ) <-> ran ( C i^i ( A X. B ) ) = B ) $=
      ( vy vx cxp cin crn wceq wss rnss ax-mp cvv cv wex wa elrn2 bitr2i 3bitri
      wcel cres inss2 rnxpss sstri eqss mpbiran ssv xpss12 mp2an sslin sseqtr4i
      ssid df-res sstr mpan2 cop ssel syl6ib ancrd opelxp anbi2i opelres anbi1i
      vex elin anass exbii 19.41v syl6ibr ssrdv impbii ) CABFZGZHZBIZBVNJZBCAUA
      ZHZJZVOVNBJVPVNVLHZBVMVLJVNVTJCVLUBVMVLKLABUCUDVNBUEUFVPVSVPVNVRJZVSVMVQJ
      WAVMCAMFZGZVQVLWBJZVMWCJAAJBMJWDAULBUGAABMUHUIVLWBCUJLCAUMUKVMVQKLBVNVRUN
      UOVSDBVNVSDNZBTZENZWEUPZVQTZEOZWFPZWEVNTZVSWFWJVSWFWEVRTWJBVRWEUQEWEVQDVD
      ZQURUSWLWHVMTZEOWIWFPZEOWKEWEVMWMQWNWOEWNWHCTZWHVLTZPWPWGATZWFPZPZWOWHCVL
      VEWQWSWPWGWEABUTVAWOWPWRPZWFPWTWIXAWFWGWECAWMVBVCWPWRWFVFRSVGWIWFEVHSVIVJ
      VKR $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.
    $( Range of the intersection with a cross product.  (Contributed by NM,
       17-Jan-2006.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    rninxp $p |- ( ran ( C i^i ( A X. B ) ) = B <->
                 A. y e. B E. x e. A x C y ) $=
      ( cres crn wss wcel wral cxp cin wceq wbr wrex dfss3 ssrnres cima df-ima
      cv eleq2i vex elima bitr3i ralbii 3bitr3i ) DECFGZHBTZUGIZBDJECDKLGDMATUH
      ENACOZBDJBDUGPCDEQUIUJBDUIUHECRZIUJUKUGUHECSUAAUHECBUBUCUDUEUF $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y C $.
    $( Domain of the intersection with a cross product.  (Contributed by NM,
       17-Jan-2006.) $)
    dminxp $p |- ( dom ( C i^i ( A X. B ) ) = A <->
                 A. x e. A E. y e. B x C y ) $=
      ( cxp cin cdm wceq ccnv crn cv wbr wrex wral dfdm4 cnvin cnvxp eqtri vex
      ineq2i rneqi eqeq1i rninxp brcnv rexbii ralbii 3bitri ) ECDFZGZHZCIEJZDCF
      ZGZKZCIBLZALZULMZBDNZACOUQUPEMZBDNZACOUKUOCUKUJJZKUOUJPVBUNVBULUIJZGUNEUI
      QVCUMULCDRUASUBSUCBADCULUDUSVAACURUTBDUPUQEBTATUEUFUGUH $.
  $}

  $( Image of a relation restricted to a rectangular region.  (Contributed by
     Stefan O'Rear, 19-Feb-2015.) $)
  imainrect $p |- ( ( G i^i ( A X. B ) ) " Y ) =
      ( ( G " ( Y i^i A ) ) i^i B ) $=
    ( cxp cin cres crn cima df-res rneqi df-ima eqtri ineq1i ccnv ineq2i eqtr4i
    cvv cdm 3eqtr4ri cnvin inxp inv1 incom xpeq12i eqtr2i xpindir inass 3eqtr4i
    in32 cnveqi cnvxp dmeqi dmres df-rn ) CABEZFZDGZHUQDREZFZHZUQDICDAFZIZBFZUR
    UTUQDJKUQDLVDCVBREZFZHZBFZVAVCVGBVCCVBGZHVGCVBLVIVFCVBJKMNVFOZBGZSZUTOZSVHV
    AVKVMVFRBEZFZOVJVNOZFZVMVKVFVNUAUTVOCUSFZUPFVRAREZVNFZFZUTVOUPVTVRVTARFZRBF
    ZEUPARRBUBWBAWCBAUCWCBRFBRBUDBUCMUEUFPCUPUSUJVOVRVSFZVNFWAVFWDVNVFCUSVSFZFW
    DVEWECDARUGPCUSVSUHQNVRVSVNUHMUIUKVKVJBREZFVQVJBJVPWFVJRBULPQTUMBVJSZFWGBFV
    LVHBWGUDVJBUNVGWGBVFUONTUTUOTQUI $.

  $( The image by a cross product.  (Contributed by Thierry Arnoux,
     16-Dec-2017.) $)
  xpima1 $p |- ( ( A i^i C ) = (/) -> ( ( A X. B ) " C ) = (/) ) $=
    ( cin c0 wceq cxp cima cvv crn cres df-ima df-res rneqi 3eqtri xpeq1 syl6eq
    inxp 0xp rneq rn0 syl syl5eq ) ACDZEFZABGZCHZUDBIDZGZJZEUGUFCKZJUFCIGDZJUJU
    FCLUKULUFCMNULUIABCIRNOUEUIEFZUJEFUEUIEUHGEUDEUHPUHSQUMUJEJEUIETUAQUBUC $.

  ${
    $d x A $.  $d x C $.
    $( The image by a cross product.  (Contributed by Thierry Arnoux,
       16-Dec-2017.) $)
    xpima2m $p |- ( E. x x e. ( A i^i C ) -> ( ( A X. B ) " C ) = B ) $=
      ( cv cin wcel wex cxp cima cvv cres df-ima df-res rneqi inxp 3eqtri rnxpm
      crn syl5eq inv1 syl6eq ) AEBDFZGAHZBCIZDJZCKFZCUDUFUCUGIZSZUGUFUEDLZSUEDK
      IFZSUIUEDMUJUKUEDNOUKUHBCDKPOQAUCUGRTCUAUB $.
  $}

  ${
    $d A x $.  $d X x $.
    $( The image of a singleton by a cross product.  (Contributed by Thierry
       Arnoux, 14-Jan-2018.) $)
    xpimasn $p |- ( X e. A -> ( ( A X. B ) " { X } ) = B ) $=
      ( vx wcel cv csn cin wex cxp cima wceq snmg wss snssi dfss1 eleq2d exbidv
      sylib mpbird xpima2m syl ) CAEZDFZACGZHZEZDIZABJUEKBLUCUHUDUEEZDIDCAMUCUG
      UIDUCUFUEUDUCUEANUFUELCAOUEAPSQRTDABUEUAUB $.
  $}

  ${
    $d x y R $.
    $( The set of all ordered pairs in a class is the same as the double
       converse.  (Contributed by Mario Carneiro, 16-Aug-2015.) $)
    cnvcnv3 $p |- `' `' R = { <. x , y >. | x R y } $=
      ( ccnv cv wbr copab df-cnv vex brcnv opabbii eqtri ) CDZDBEZAEZMFZABGONCF
      ZABGABMHPQABNOCBIAIJKL $.

    $( Alternate definition of relation.  Exercise 2 of [TakeutiZaring] p. 25.
       (Contributed by NM, 29-Dec-1996.) $)
    dfrel2 $p |- ( Rel R <-> `' `' R = R ) $=
      ( vx vy wrel ccnv wceq relcnv cv cop wcel vex opelcnv bitri eqrelriv mpan
      releq mpbii impbii ) ADZAEZEZAFZUADZSUBTGZBCUAABHZCHZIZUAJUFUEITJUGAJUEUF
      TBKZCKZLUFUEAUIUHLMNOUBUCSUDUAAPQR $.

    $( A relation can be expressed as the set of ordered pairs in it.
       (Contributed by Mario Carneiro, 16-Aug-2015.) $)
    dfrel4v $p |- ( Rel R <-> R = { <. x , y >. | x R y } ) $=
      ( wrel ccnv wceq cv wbr copab dfrel2 eqcom cnvcnv3 eqeq2i 3bitri ) CDCEEZ
      CFCOFCAGBGCHABIZFCJOCKOPCABCLMN $.
  $}

  $( The double converse of a class strips out all elements that are not
     ordered pairs.  (Contributed by NM, 8-Dec-2003.) $)
  cnvcnv $p |- `' `' A = ( A i^i ( _V X. _V ) ) $=
    ( ccnv cvv cxp cin wceq wrel relcnv df-rel mpbi relxp dfrel2 sseqtr4i cnvin
    wss dfss cnveqi inss2 mpbir eqtr3i 3eqtr2i ) ABZBZUCCCDZBZBZEZUBUEEZBZAUDEZ
    UCUFOUCUGFUCUDUFUCGUCUDOUBHUCIJUDGUFUDFCCKUDLJMUCUFPJUBUENUJBZBZUIUJUKUHAUD
    NQUJGZULUJFUMUJUDOAUDRUJISUJLJTUA $.

  $( The double converse of a class equals its restriction to the universe.
     (Contributed by NM, 8-Oct-2007.) $)
  cnvcnv2 $p |- `' `' A = ( A |` _V ) $=
    ( ccnv cvv cxp cin cres cnvcnv df-res eqtr4i ) ABBACCDEACFAGACHI $.

  $( The double converse of a class is a subclass.  Exercise 2 of
     [TakeutiZaring] p. 25.  (Contributed by NM, 23-Jul-2004.) $)
  cnvcnvss $p |- `' `' A C_ A $=
    ( ccnv cvv cxp cin cnvcnv inss1 eqsstri ) ABBACCDZEAAFAIGH $.

  $( Equality theorem for converse.  (Contributed by FL, 19-Sep-2011.) $)
  cnveqb $p |- ( ( Rel A /\ Rel B ) -> ( A = B <-> `' A = `' B ) ) $=
    ( wrel wa wceq ccnv cnveq wi dfrel2 eqeq2 syl5ibr eqcoms sylbi eqeq1 imbi2d
    imp impbid2 ) ACZBCZDABEZAFZBFZEZABGRSUCTHZRUAFZAESUDHZAIUFAUESUDAUEEZUCUEB
    EZHZSUBFZBEUIBIUIBUJUCUHBUJEUEUJEUAUBGBUJUEJKLMUGTUHUCAUEBNOKLMPQ $.

  $( A relation empty iff its converse is empty.  (Contributed by FL,
     19-Sep-2011.) $)
  cnveq0 $p |- ( Rel A -> ( A = (/) <-> `' A = (/) ) ) $=
    ( c0 ccnv wceq wrel wb wi cnv0 rel0 cnveqb mpan2 eqeq2 bibi2d syl5ibr ax-mp
    eqcoms ) BCZBDAEZABDZACZBDZFZGZHUCBQRUBBQDZSTQDZFZRBEUFIABJKUDUAUESBQTLMNPO
    $.

  $( Alternate definition of relation.  (Contributed by NM, 14-May-2008.) $)
  dfrel3 $p |- ( Rel R <-> ( R |` _V ) = R ) $=
    ( wrel ccnv wceq cvv cres dfrel2 cnvcnv2 eqeq1i bitri ) ABACCZADAEFZADAGKLA
    AHIJ $.

  $( The domain of a universal restriction.  (Contributed by NM,
     14-May-2008.) $)
  dmresv $p |- dom ( A |` _V ) = dom A $=
    ( cvv cres cdm cin dmres incom inv1 3eqtri ) ABCDBADZEJBEJABFBJGJHI $.

  $( The range of a universal restriction.  (Contributed by NM,
     14-May-2008.) $)
  rnresv $p |- ran ( A |` _V ) = ran A $=
    ( ccnv crn cvv cres cnvcnv2 rneqi rncnvcnv eqtr3i ) ABBZCADEZCACJKAFGAHI $.

  $( Range defined in terms of image.  (Contributed by NM, 14-May-2008.) $)
  dfrn4 $p |- ran A = ( A " _V ) $=
    ( cvv cima cres crn df-ima rnresv eqtr2i ) ABCABDEAEABFAGH $.

  ${
    $d A w y $.  $d B w y $.  $d V w y $.  $d x w y $.
    $( Distribute proper substitution through the range of a class.
       (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbrng $p |- ( A e. V -> [_ A / x ]_ ran B = ran [_ A / x ]_ B ) $=
      ( vw vy wcel cv cop wex cab csb crn wsbc csbabg sbcexg exbidv bitrd dfrn3
      sbcel2g abbidv eqtrd csbeq2i 3eqtr4g ) BDGZABEHFHIZCGZEJZFKZLZUFABCLZGZEJ
      ZFKZABCMZLUKMUEUJUHABNZFKUNUHAFBDOUEUPUMFUEUPUGABNZEJUMUGEABDPUEUQULEABUF
      CDTQRUAUBABUOUIEFCSUCEFUKSUD $.
  $}

  $( The restriction of the double converse of a class.  (Contributed by NM,
     8-Apr-2007.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  rescnvcnv $p |- ( `' `' A |` B ) = ( A |` B ) $=
    ( ccnv cres cvv cin cnvcnv2 reseq1i resres wss wceq ssv sseqin2 mpbi 3eqtri
    reseq2i ) ACCZBDAEDZBDAEBFZDABDQRBAGHAEBISBABEJSBKBLBEMNPO $.

  $( The double converse of the restriction of a class.  (Contributed by NM,
     3-Jun-2007.) $)
  cnvcnvres $p |- `' `' ( A |` B ) = ( `' `' A |` B ) $=
    ( cres ccnv wrel wceq relres dfrel2 mpbi rescnvcnv eqtr4i ) ABCZDDZLADDBCLE
    MLFABGLHIABJK $.

  $( The image of the double converse of a class.  (Contributed by NM,
     8-Apr-2007.) $)
  imacnvcnv $p |- ( `' `' A " B ) = ( A " B ) $=
    ( ccnv cres crn cima rescnvcnv rneqi df-ima 3eqtr4i ) ACCZBDZEABDZEKBFABFLM
    ABGHKBIABIJ $.

  ${
    $d x y A $.
    $( The domain of a singleton is inhabited iff the singleton argument is an
       ordered pair.  (Contributed by Jim Kingdon, 15-Dec-2018.) $)
    dmsnm $p |- ( A e. ( _V X. _V ) <-> E. x x e. dom { A } ) $=
      ( vy cvv cxp wcel cop wceq wex csn cdm elvv wbr vex eldm df-br opex elsnc
      cv exbii eqcom 3bitri bitr2i bitri ) BDDEFBASZCSZGZHZCIZAIUEBJZKFZAIACBLU
      IUKAUKUEUFUJMZCIUICUEUJANZOULUHCULUGUJFUGBHUHUEUFUJPUGBUEUFUMCNQRUGBUAUBT
      UCTUD $.
  $}

  ${
    $d x A $.
    $( The range of a singleton is inhabited iff the singleton argument is an
       ordered pair.  (Contributed by Jim Kingdon, 15-Dec-2018.) $)
    rnsnm $p |- ( A e. ( _V X. _V ) <-> E. x x e. ran { A } ) $=
      ( cvv cxp wcel cv csn cdm wex crn dmsnm dmmrnm bitri ) BCCDEAFZBGZHEAINOJ
      EAIABKAAOLM $.
  $}

  $( The domain of the singleton of the empty set is empty.  (Contributed by
     NM, 30-Jan-2004.) $)
  dmsn0 $p |- dom { (/) } = (/) $=
    ( vx c0 csn cdm wceq cv wcel wn wal wex cvv cxp 0nelxp dmsnm mtbi alnex eq0
    mpbir ) BCDZBEAFSGZHAIZUATAJZHBKKLGUBKKMABNOTAPRASQR $.

  $( The converse of the singleton of the empty set is empty.  (Contributed by
     Mario Carneiro, 30-Aug-2015.) $)
  cnvsn0 $p |- `' { (/) } = (/) $=
    ( c0 csn ccnv wceq crn dfdm4 dmsn0 eqtr3i wrel wb relcnv relrn0 ax-mp mpbir
    cdm ) ABZCZADZQEZADZPOSAPFGHQIRTJPKQLMN $.

  ${
    $d x A $.
    $( The domain of a singleton is empty if the singleton's argument contains
       the empty set.  (Contributed by NM, 15-Dec-2008.) $)
    dmsn0el $p |- ( (/) e. A -> dom { A } = (/) ) $=
      ( vx c0 wcel cv csn cdm wn wal wceq wex 0nelelxp con2i dmsnm sylnib alnex
      cvv cxp sylibr eq0 ) CADZBEAFGZDZHBIZUBCJUAUCBKZHUDUAAQQRDZUEUFUAQQALMBAN
      OUCBPSBUBTS $.
  $}

  ${
    $d x A $.
    relsn2m.1 $e |- A e. _V $.
    $( A singleton is a relation iff it has an inhabited domain.  (Contributed
       by Jim Kingdon, 16-Dec-2018.) $)
    relsn2m $p |- ( Rel { A } <-> E. x x e. dom { A } ) $=
      ( csn wrel cvv cxp wcel cv cdm wex relsn dmsnm bitri ) BDZEBFFGHAIOJHAKBC
      LABMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x V $.
    $( The domain of a singleton of an ordered pair is the singleton of the
       first member.  (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    dmsnopg $p |- ( B e. V -> dom { <. A , B >. } = { A } ) $=
      ( vx vy wcel cop csn cdm cv wceq wex vex opth1 exlimiv opeq1 opeq2 eqeq1d
      spcegv syl5 impbid2 eldm2 opex elsnc exbii bitri elsn 3bitr4g eqrdv ) BCF
      ZDABGZHZIZAHZUJDJZEJZGZUKKZELZUOAKZUOUMFZUOUNFUJUSUTURUTEUOUPABDMZEMZNOUT
      UOBGZUKKZUJUSUOABPURVEEBCUPBKUQVDUKUPBUOQRSTUAVAUQULFZELUSEUOULVBUBVFUREU
      QUKUOUPVBVCUCUDUEUFDAUGUHUI $.

    $( The domain of an unordered pair of ordered pairs.  (Contributed by Mario
       Carneiro, 26-Apr-2015.) $)
    dmpropg $p |- ( ( B e. V /\ D e. W ) ->
        dom { <. A , B >. , <. C , D >. } = { A , C } ) $=
      ( wcel wa cop csn cdm cun cpr wceq dmsnopg uneq12 syl2an df-pr dmeqi dmun
      eqtri 3eqtr4g ) BEGZDFGZHABIZJZKZCDIZJZKZLZAJZCJZLZUEUHMZKZACMUCUGULNUJUM
      NUKUNNUDABEOCDFOUGULUJUMPQUPUFUILZKUKUOUQUEUHRSUFUITUAACRUB $.
  $}

  ${
    $d x y A $.  $d x y B $.
    dmsnop.1 $e |- B e. _V $.
    $( The domain of a singleton of an ordered pair is the singleton of the
       first member.  (Contributed by NM, 30-Jan-2004.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    dmsnop $p |- dom { <. A , B >. } = { A } $=
      ( cvv wcel cop csn cdm wceq dmsnopg ax-mp ) BDEABFGHAGICABDJK $.

    dmprop.1 $e |- D e. _V $.
    $( The domain of an unordered pair of ordered pairs.  (Contributed by NM,
       13-Sep-2011.) $)
    dmprop $p |- dom { <. A , B >. , <. C , D >. } = { A , C } $=
      ( cvv wcel cop cpr cdm wceq dmpropg mp2an ) BGHDGHABICDIJKACJLEFABCDGGMN
      $.

    dmtpop.1 $e |- F e. _V $.
    $( The domain of an unordered triple of ordered pairs.  (Contributed by NM,
       14-Sep-2011.) $)
    dmtpop $p |- dom { <. A , B >. , <. C , D >. , <. E , F >. }
                        = { A , C , E } $=
      ( cop ctp cdm cpr csn cun df-tp dmeqi dmun dmprop dmsnop uneq12i 3eqtri
      eqtr4i ) ABJZCDJZEFJZKZLZACMZENZOZACEKUHUDUEMZUFNZOZLULLZUMLZOUKUGUNUDUEU
      FPQULUMRUOUIUPUJABCDGHSEFITUAUBACEPUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Double converse of a singleton of an ordered pair.  (Unlike ~ cnvsn ,
       this does not need any sethood assumptions on ` A ` and ` B ` .)
       (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    cnvcnvsn $p |- `' `' { <. A , B >. } = `' { <. B , A >. } $=
      ( vy vx cop csn ccnv relcnv cv wcel vex opelcnv wceq wa opth 3bitr4i opex
      ancom elsnc bitri eqrelriiv ) CDABEZFZGZGZBAEZFZGZUDHUGHCIZDIZEZUEJUJUIEZ
      UDJZUKUHJZUIUJUDCKZDKZLUKUCJZULUGJZUMUNUKUBMZULUFMZUQURUIAMZUJBMZNVBVANUS
      UTVAVBRUIUJABUOUPOUJUIBAUPUOOPUKUBUIUJUOUPQSULUFUJUIUPUOQSPUJUIUCUPUOLUIU
      JUGUOUPLPTUA $.

    $( The domain of the singleton of the singleton of a singleton.
       (Contributed by Jim Kingdon, 16-Dec-2018.) $)
    dmsnsnsng $p |- ( A e. _V -> dom { { { A } } } = { A } ) $=
      ( vx cop csn cdm wceq cvv vex opid sneq sneqd syl5eq dmeqd eqeq12d dmsnop
      cv vtoclg ) BPZRCZDZEZRDZFADZDZDZEZUCFBAGRAFZUAUFUBUCUGTUEUGSUDUGSUBDUDRB
      HZIUGUBUCRAJZKLKMUINRRUHOQ $.
  $}

  $( The range of a singleton of an ordered pair is the singleton of the second
     member.  (Contributed by NM, 24-Jul-2004.)  (Revised by Mario Carneiro,
     30-Apr-2015.) $)
  rnsnopg $p |- ( A e. V -> ran { <. A , B >. } = { B } ) $=
    ( wcel cop csn crn cdm ccnv df-rn dfdm4 cnvcnvsn dmeqi 3eqtri eqtr4i syl5eq
    dmsnopg ) ACDABEFZGZBAEFZHZBFSRIZHZUARJUATIZGUDIZHUCTKUDJUEUBBALMNOBACQP $.

  $( The range of a pair of ordered pairs is the pair of second members.
     (Contributed by Thierry Arnoux, 3-Jan-2017.) $)
  rnpropg $p |- ( ( A e. V /\ B e. W )
    -> ran { <. A , C >. , <. B , D >. } = { C , D } ) $=
    ( wcel cop cpr crn csn cun df-pr rneqi wceq rnsnopg adantr adantl uneq12d
    wa rnun 3eqtr4g syl5eq ) AEGZBFGZTZACHZBDHZIZJUGKZUHKZLZJZCDIZUIULUGUHMNUFU
    JJZUKJZLCKZDKZLUMUNUFUOUQUPURUDUOUQOUEACEPQUEUPUROUDBDFPRSUJUKUACDMUBUC $.

  ${
    $d x y A $.  $d x y B $.
    cnvsn.1 $e |- A e. _V $.
    $( The range of a singleton of an ordered pair is the singleton of the
       second member.  (Contributed by NM, 24-Jul-2004.)  (Revised by Mario
       Carneiro, 26-Apr-2015.) $)
    rnsnop $p |- ran { <. A , B >. } = { B } $=
      ( cvv wcel cop csn crn wceq rnsnopg ax-mp ) ADEABFGHBGICABDJK $.

    cnvsn.2 $e |- B e. _V $.
    $( Extract the first member of an ordered pair.  (See ~ op2nda to extract
       the second member and ~ op1stb for an alternate version.)  (Contributed
       by Raph Levien, 4-Dec-2003.) $)
    op1sta $p |- U. dom { <. A , B >. } = A $=
      ( cop csn cdm cuni dmsnop unieqi unisn eqtri ) ABEFGZHAFZHAMNABDIJACKL $.

    $( Converse of a singleton of an ordered pair.  (Contributed by NM,
       11-May-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    cnvsn $p |- `' { <. A , B >. } = { <. B , A >. } $=
      ( cop csn ccnv cnvcnvsn wrel wceq relsnop dfrel2 mpbi eqtr3i ) BAEFZGGZAB
      EFGOBAHOIPOJBADCKOLMN $.

    $( Extract the second member of an ordered pair.  Theorem 5.12(ii) of
       [Monk1] p. 52.  (See ~ op1stb to extract the first member and ~ op2nda
       for an alternate version.)  (Contributed by NM, 25-Nov-2003.) $)
    op2ndb $p |- |^| |^| |^| `' { <. A , B >. } = B $=
      ( cop csn ccnv cint cnvsn inteqi wcel opexgOLD mp2an intsn eqtri op1stb
      cvv ) ABEFGZHZHZHBAEZHZHBTUBSUASUAFZHUARUCABCDIJUABQKAQKUAQKDCBALMNOJJBAD
      CPO $.

    $( Extract the second member of an ordered pair.  (See ~ op1sta to extract
       the first member and ~ op2ndb for an alternate version.)  (Contributed
       by NM, 17-Feb-2004.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    op2nda $p |- U. ran { <. A , B >. } = B $=
      ( cop csn crn cuni rnsnop unieqi unisn eqtri ) ABEFGZHBFZHBMNABCIJBDKL $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Converse of a singleton of an ordered pair.  (Contributed by NM,
       23-Jan-2015.) $)
    cnvsng $p |- ( ( A e. V /\ B e. W ) ->
      `' { <. A , B >. } = { <. B , A >. } ) $=
      ( vx vy cv cop csn ccnv wceq opeq1 sneqd cnveqd opeq2 eqeq12d vex vtocl2g
      cnvsn ) EGZFGZHZIZJZUATHZIZKAUAHZIZJZUAAHZIZKABHZIZJZBAHZIZKEFABCDTAKZUDU
      IUFUKUQUCUHUQUBUGTAUALMNUQUEUJTAUAOMPUABKZUIUNUKUPURUHUMURUGULUABAOMNURUJ
      UOUABALMPTUAEQFQSR $.

    $( Swap the members of an ordered pair.  (Contributed by Jim Kingdon,
       16-Dec-2018.) $)
    opswapg $p |- ( ( A e. V /\ B e. W ) ->
        U. `' { <. A , B >. } = <. B , A >. ) $=
      ( wcel cop csn ccnv cuni cnvsng unieqd cvv wceq elex opexgOLD syl2anr syl
      wa unisng eqtrd ) ACEZBDEZRZABFGHZIBAFZGZIZUEUCUDUFABCDJKUCUELEZUGUEMUBBL
      EALEUHUABDNACNBAOPUELSQT $.

    $( Membership in a cross product.  This version requires no quantifiers or
       dummy variables.  See also ~ elxp5 .  (Contributed by NM,
       17-Feb-2004.) $)
    elxp4 $p |- ( A e. ( B X. C ) <-> ( A = <. U. dom { A } , U. ran { A } >.
                 /\ ( U. dom { A } e. B /\ U. ran { A } e. C ) ) ) $=
      ( vx vy wcel cvv csn cdm cuni crn cop wceq wa elex eleq1 wex unieqd syl
      wb cxp anim12i opexgOLD adantl adantr mpbird sylan2 cv elxp a1i rneqd vex
      sneq op2nda pm4.71ri anbi1i anass bitri exbii snexgOLD rnexg uniexg opeq2
      syl6req eqeq2d anbi2d anbi12d ceqsexgv syl5bb dmeqd dmsnopg syl6eq eqtr2d
      unisn ex pm4.71rd anbi1d 3bitrd exbidv dmexg opeq1 pm5.21nii ) ABCUAZFZAG
      FZAAHZIZJZWFKZJZLZMZWHBFZWJCFZNZNZAWCOWOWLWHGFZWJGFZNZWEWMWQWNWRWHBOWJCOU
      BWLWSNWEWKGFZWSWTWLWHWJUCUDWLWEWTTWSAWKGPUEUFUGWEWDADUHZEUHZLZMZXABFZXBCF
      ZNZNZEQZDQZXAWHMZAXAWJLZMZXEWNNZNZNZDQZWPWDXJTWEDEABCUIUJWEXIXPDWEXIXOXKX
      MNZXNNZXPXIXBWJMZXHNZEQZWEXOXHYAEXHXTXDNZXGNYAXDYCXGXDXTXDWJXCHZKZJXBXDWI
      YEXDWFYDAXCUMUKRXAXBDULZEULUNVDUOUPXTXDXGUQURUSWEWRYBXOTWEWIGFZWRWEWFGFZY
      GAUTZWFGVASWIGVBSZXHXOEWJGXTXDXMXGXNXTXCXLAXBWJXAVCVEXTXFWNXEXBWJCPVFVGVH
      SVIWEXMXRXNWEXMXKWEXMXKWEXMNWHXLHZIZJZXAXMWHYMMWEXMWGYLXMWFYKAXLUMVJRUDWE
      YMXAMXMWEYMXAHZJXAWEYLYNWEWRYLYNMYJXAWJGVKSRXAYFVNVLUEVMVOVPVQXSXPTWEXKXM
      XNUQUJVRVSWEWQXQWPTWEWGGFZWQWEYHYOYIWFGVTSWGGVBSXOWPDWHGXKXMWLXNWOXKXLWKA
      XAWHWJWAVEXKXEWMWNXAWHBPVQVGVHSVRWB $.

    $( Membership in a cross product requiring no quantifiers or dummy
       variables.  Provides a slightly shorter version of ~ elxp4 when the
       double intersection does not create class existence problems (caused by
       ~ int0 ).  (Contributed by NM, 1-Aug-2004.) $)
    elxp5 $p |- ( A e. ( B X. C ) <-> ( A = <. |^| |^| A , U. ran { A } >.
                 /\ ( |^| |^| A e. B /\ U. ran { A } e. C ) ) ) $=
      ( vx vy wcel cvv cint csn crn cuni cop wceq wa elex eleq1 adantr wex syl
      wb anim12i opexgOLD adantl mpbird sylan2 cv elxp sneq rneqd unieqd op2nda
      cxp syl6req pm4.71ri anbi1i anass bitri exbii snexgOLD rnexg uniexg opeq2
      eqeq2d anbi2d anbi12d ceqsexgv syl5bb inteq inteqd op1stbg sylancr eqtr2d
      vex ex pm4.71rd anbi1d a1i 3bitrd exbidv mpbii exlimiv ad2antrl pm5.21nii
      opeq1 syl6bb ) ABCULZFZAGFZAAHZHZAIZJZKZLZMZWJBFZWMCFZNZNZAWFOWRWOWJGFZWM
      GFZNZWHWPWTWQXAWJBOZWMCOUAWOXBNWHWNGFZXBXDWOWJWMUBUCWOWHXDTXBAWNGPQUDUEWH
      WGDUFZWJMZAXEWMLZMZXEBFZWQNZNZNZDRZWSWGAXEEUFZLZMZXIXNCFZNZNZERZDRWHXMDEA
      BCUGWHXTXLDWHXTXKXFXHNZXJNZXLXTXNWMMZXSNZERZWHXKXSYDEXSYCXPNZXRNYDXPYFXRX
      PYCXPWMXOIZJZKXNXPWLYHXPWKYGAXOUHUIUJXEXNDVMZEVMUKUMUNUOYCXPXRUPUQURWHXAY
      EXKTWHWLGFZXAWHWKGFYJAUSWKGUTSWLGVASZXSXKEWMGYCXPXHXRXJYCXOXGAXNWMXEVBVCY
      CXQWQXIXNWMCPVDVEVFSVGWHXHYAXJWHXHXFWHXHXFWHXHNWJXGHZHZXEXHWJYMMWHXHWIYLA
      XGVHVIUCWHYMXEMZXHWHXEGFZXAYNYIYKXEWMGGVJVKQVLVNVOVPYBXLTWHXFXHXJUPVQVRVS
      VGXMWTWSXLWTDXFWTXKXFYOWTYIXEWJGPVTQWAWPWTWOWQXCWBXKWSDWJGXFXHWOXJWRXFXGW
      NAXEWJWMWDVCXFXIWPWQXEWJBPVPVEVFWCWEWC $.
  $}

  ${
    $d s t A $.  $d s t B $.  $d s t F $.
    $( An image under the converse of a restriction.  (Contributed by Jeff
       Hankins, 12-Jul-2009.) $)
    cnvresima $p |- ( `' ( F |` A ) " B ) = ( ( `' F " B ) i^i A ) $=
      ( vt vs cres ccnv cima cin cv cop wa wex vex elima3 anbi1i opelcnv bitr4i
      wcel bitri elin opelres anbi2i anass exbii 19.41v 3bitr4ri eqriv ) DCAFZG
      ZBHZCGZBHZAIZDJZUKSEJZBSZUPUOKZUJSZLZEMZUOUNSZEUOUJBDNZOUOUMSZUOASZLUQURU
      LSZLZEMZVELZVBVAVDVHVEEUOULBVCOPUOUMAUAVAVGVELZEMVIUTVJEUTUQVFVELZLVJUSVK
      UQUSUOUPKZUISZVKUPUOUIENZVCQVMVLCSZVELVKUOUPCAVNUBVFVOVEUPUOCVNVCQPRTUCUQ
      VFVEUDRUEVGVEEUFTUGTUH $.
  $}

  $( A class restricted to its domain equals its double converse.  (Contributed
     by NM, 8-Apr-2007.) $)
  resdm2 $p |- ( A |` dom A ) = `' `' A $=
    ( ccnv cdm cres rescnvcnv wrel relcnv resdm ax-mp dmcnvcnv reseq2i 3eqtr3ri
    wceq ) ABZBZOCZDZAPDOAACZDAPEOFQOMNGOHIPRAAJKL $.

  $( Restriction to the domain of a restriction.  (Contributed by NM,
     8-Apr-2007.) $)
  resdmres $p |- ( A |` dom ( A |` B ) ) = ( A |` B ) $=
    ( cres cdm ccnv cvv cxp in12 df-res resdm2 eqtr3i ineq2i incom 3eqtri dmres
    cin xpeq1i xpindir eqtri 3eqtr4i rescnvcnv ) AABCZDZCZAEEZBCZUBABFGZADZFGZP
    ZPZUEUGPZUDUFUKUGAUIPZPUGUEPULAUGUIHUMUEUGAUHCUMUEAUHIAJKLUGUEMNUDAUCFGZPUK
    AUCIUNUJAUNBUHPZFGUJUCUOFABOQBUHFRSLSUEBITABUAS $.

  $( The image of the domain of a restriction.  (Contributed by NM,
     8-Apr-2007.) $)
  imadmres $p |- ( A " dom ( A |` B ) ) = ( A " B ) $=
    ( cres cdm crn cima resdmres rneqi df-ima 3eqtr4i ) AABCZDZCZEKEALFABFMKABG
    HALIABIJ $.

  ${
    $d x y C $.  $d y A $.  $d y B $.  $d y F $.  $d x V $.
    dmmpt2.1 $e |- F = ( x e. A |-> B ) $.
    $( The preimage of a function in maps-to notation.  (Contributed by Stefan
       O'Rear, 25-Jan-2015.) $)
    mptpreima $p |- ( `' F " C ) = { x e. A | B e. C } $=
      ( vy ccnv cima cv wcel wceq wa copab crab eqtri crn wex cab bitri cnvopab
      cmpt df-mpt cnveqi imaeq1i df-ima resopab rneqi ancom anass exbii df-clel
      cres 19.42v bicomi anbi2i abbii rnopab df-rab 3eqtr4i ) EHZDIAJBKZGJZCLZM
      ZGANZDIZCDKZABOZVAVFDVAVEAGNZHVFEVJEABCUBVJFAGBCUCPUDVEAGUAPUEVGVFDUMZQZV
      IVFDUFVLVCDKZVEMZGANZQZVIVKVOVEGADUGUHVNGRZASVBVHMZASVPVIVQVRAVQVBVDVMMZM
      ZGRZVRVNVTGVNVEVMMVTVMVEUIVBVDVMUJTUKWAVBVSGRZMVRVBVSGUNWBVHVBVHWBGCDULUO
      UPTTUQVNGAURVHABUSUTPPP $.

    $( Converse singleton image of a function defined by maps-to.  (Contributed
       by Stefan O'Rear, 25-Jan-2015.) $)
    mptiniseg $p |- ( C e. V -> ( `' F " { C } ) = { x e. A | B = C } ) $=
      ( wcel ccnv csn cima crab wceq mptpreima elsnc2g rabbidv syl5eq ) DFHZEID
      JZKCSHZABLCDMZABLABCSEGNRTUAABCDFOPQ $.

    $( The domain of the mapping operation in general.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 22-Mar-2015.) $)
    dmmpt $p |- dom F = { x e. A | B e. _V } $=
      ( cdm ccnv crn cvv cima wcel crab dfdm4 dfrn4 mptpreima 3eqtri ) DFDGZHQI
      JCIKABLDMQNABCIDEOP $.

    $d x A $.
    $( The domain of a mapping is a subset of its base class.  (Contributed by
       Scott Fenton, 17-Jun-2013.) $)
    dmmptss $p |- dom F C_ A $=
      ( cdm cvv wcel crab dmmpt ssrab2 eqsstri ) DFCGHZABIBABCDEJMABKL $.
  $}

  ${
    $d A x y $.  $d B y $.
    $( The domain of the mapping operation is the stated domain, if the
       function value is always a set.  (Contributed by Mario Carneiro,
       9-Feb-2013.)  (Revised by Mario Carneiro, 14-Sep-2013.) $)
    dmmptg $p |- ( A. x e. A B e. V -> dom ( x e. A |-> B ) = A ) $=
      ( wcel wral cvv crab cmpt cdm wceq elex ralimi rabid2 eqid dmmpt syl6reqr
      sylibr ) CDEZABFZBCGEZABHZABCIZJTUAABFBUBKSUAABCDLMUAABNRABCUCUCOPQ $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.
    $( A composition is a relation.  Exercise 24 of [TakeutiZaring] p. 25.
       (Contributed by NM, 26-Jan-1997.) $)
    relco $p |- Rel ( A o. B ) $=
      ( vx vz vy cv wbr wa wex ccom df-co relopabi ) CFDFZBGMEFAGHDICEABJCEDABK
      L $.

    $( Alternate definition of a class composition, using only one bound
       variable.  (Contributed by NM, 19-Dec-2008.) $)
    dfco2 $p |- ( A o. B )
                = U_ x e. _V ( ( `' B " { x } ) X. ( A " { x } ) ) $=
      ( vy vz ccom cvv ccnv cv csn cima cxp wrel wcel cop wex vex elimasn bitri
      wa ciun relco reliun relxp a1i mprgbir wb opelco2g mp2an wrex rexv opelxp
      eliun opelcnv anbi12i exbii 3bitrri eqrelriiv ) DEBCFZAGCHZAIZJZKZBVBKZLZ
      UAZBCUBVFMVEMZAGAGVEUCVGVAGNVCVDUDUEUFDIZEIZOZUSNZVHVAOCNZVAVIOBNZTZAPZVJ
      VFNZVHGNVIGNVKVOUGDQZEQZAVHVIBCGGUHUIVPVJVENZAGUJVSAPVOAVJGVEUMVSAUKVSVNA
      VSVHVCNZVIVDNZTVNVHVIVCVDULVTVLWAVMVTVAVHOUTNVLUTVAVHAQZVQRVAVHCWBVQUNSBV
      AVIWBVRRUOSUPUQSUR $.

    $( Generalization of ~ dfco2 , where ` C ` can have any value between
       ` dom A i^i ran B ` and ` _V ` .  (Contributed by NM, 21-Dec-2008.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    dfco2a $p |- ( ( dom A i^i ran B ) C_ C -> ( A o. B )
         = U_ x e. C ( ( `' B " { x } ) X. ( A " { x } ) ) ) $=
      ( vy vz vw cvv cv cima ciun wcel wrex wex wa cop vex sylbi 3bitr4g eliun
      cdm crn cin wss ccom ccnv csn cxp dfco2 wceq wbr wb eliniseg ax-mp brelrn
      elimasn opeldm anim12ci adantl exlimivv elxp elin 3imtr4i pm4.71rd exbidv
      ssel syl5 rexv df-rex eqrdv syl5eq ) BUAZCUBZUCZDUDZBCUEAHCUFAIZUGZJZBVQJ
      ZUHZKZADVTKZABCUIVOEWAWBVOEIZVTLZAHMZWDADMZWCWALWCWBLVOWDANVPDLZWDOZANWEW
      FVOWDWHAVOWDWGWDVPVNLZVOWGWCFIZGIZPUJZWJVRLZWKVSLZOZOZGNFNVPVLLZVPVMLZOZW
      DWIWPWSFGWOWSWLWMWRWNWQWMWJVPCUKZWRVPHLWMWTULAQZCVPWJHFQZUMUNWJVPCXBXAUOR
      WNVPWKPBLWQBVPWKXAGQZUPVPWKBXAXCUQRURUSUTFGWCVRVSVAVPVLVMVBVCVNDVPVFVGVDV
      EWDAVHWDADVISAWCHVTTAWCDVTTSVJVK $.

    $( Class composition distributes over union.  (Contributed by NM,
       21-Dec-2008.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    coundi $p |- ( A o. ( B u. C ) ) = ( ( A o. B ) u. ( A o. C ) ) $=
      ( vx vz vy cv wbr wa wex copab cun ccom wo unopab brun anbi1i andir bitri
      df-co exbii 19.43 bitr2i opabbii eqtri uneq12i 3eqtr4ri ) DGZEGZBHZUIFGAH
      ZIZEJZDFKZUHUICHZUKIZEJZDFKZLZUHUIBCLZHZUKIZEJZDFKZABMZACMZLAUTMUSUMUQNZD
      FKVDUMUQDFOVGVCDFVCULUPNZEJVGVBVHEVBUJUONZUKIVHVAVIUKUHUIBCPQUJUOUKRSUAUL
      UPEUBUCUDUEVEUNVFURDFEABTDFEACTUFDFEAUTTUG $.

    $( Class composition distributes over union.  (Contributed by NM,
       21-Dec-2008.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    coundir $p |- ( ( A u. B ) o. C ) = ( ( A o. C ) u. ( B o. C ) ) $=
      ( vx vy vz cv wbr wa wex copab cun ccom wo unopab brun anbi2i bitri df-co
      andi exbii 19.43 bitr2i opabbii eqtri uneq12i 3eqtr4ri ) DGEGZCHZUHFGZAHZ
      IZEJZDFKZUIUHUJBHZIZEJZDFKZLZUIUHUJABLZHZIZEJZDFKZACMZBCMZLUTCMUSUMUQNZDF
      KVDUMUQDFOVGVCDFVCULUPNZEJVGVBVHEVBUIUKUONZIVHVAVIUIUHUJABPQUIUKUOTRUAULU
      PEUBUCUDUEVEUNVFURDFEACSDFEBCSUFDFEUTCSUG $.

    $( Restricted first member of a class composition.  (Contributed by NM,
       12-Oct-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    cores $p |- ( ran B C_ C -> ( ( A |` C ) o. B ) = ( A o. B ) ) $=
      ( vz vy vx crn wss cv wbr cres wa wex copab ccom wcel wb vex brelrn df-co
      ssel brres rbaib syl56 pm5.32d exbidv opabbidv 3eqtr4g ) BGZCHZDIZEIZBJZU
      LFIZACKZJZLZEMZDFNUMULUNAJZLZEMZDFNUOBOABOUJURVADFUJUQUTEUJUMUPUSUMULUIPU
      JULCPZUPUSQUKULBDRERSUICULUAUPUSVBULUNACFRUBUCUDUEUFUGDFEUOBTDFEABTUH $.

    $( Associative law for the restriction of a composition.  (Contributed by
       NM, 12-Dec-2006.) $)
    resco $p |- ( ( A o. B ) |` C ) = ( A o. ( B |` C ) ) $=
      ( vx vy vz ccom cres relres relco cv wbr wcel wex vex anbi1i 19.41v brres
      wa brco an32 bitr4i exbii 3bitr2i 3bitr4i eqbrriv ) DEABGZCHZABCHZGZUGCIA
      UIJDKZEKZUGLZUKCMZSZUKFKZUILZUPULALZSZFNZUKULUHLUKULUJLUOUKUPBLZURSZFNZUN
      SVBUNSZFNUTUMVCUNFUKULABDOZEOZTPVBUNFQVDUSFVDVAUNSZURSUSVAURUNUAUQVGURUKU
      PBCFORPUBUCUDUKULUGCVFRFUKULAUIVEVFTUEUF $.

    $( Image of the composition of two classes.  (Contributed by Jason
       Orendorff, 12-Dec-2006.) $)
    imaco $p |- ( ( A o. B ) " C ) = ( A " ( B " C ) ) $=
      ( vx vy vz ccom cima cv wbr wrex wcel wa wex df-rex vex elima exbii bitri
      rexcom4 r19.41v brco rexbii anbi1i 3bitr4i 3bitr4ri eqriv ) DABGZCHZABCHZ
      HZEIZDIZAJZEUJKULUJLZUNMZENZUMUKLUMUILZUNEUJOEUMAUJDPZQFIZULBJZUNMZENZFCK
      ZVAFCKZUNMZENZURUQVDVBFCKZENVGVBFECTVHVFEVAUNFCUARSURUTUMUHJZFCKVDFUMUHCU
      SQVIVCFCEUTUMABFPUSUBUCSUPVFEUOVEUNFULBCEPQUDRUEUFUG $.

    $( The range of the composition of two classes.  (Contributed by NM,
       12-Dec-2006.) $)
    rnco $p |- ran ( A o. B ) = ran ( A |` ran B ) $=
      ( vy vx vz ccom crn cres cv wbr wex wcel wa vex exbii excom ancom 3bitr4i
      brco elrn 19.41v anbi2i brres bitr4i 3bitri eqriv ) CABFZGZABGZHZGZDIZCIZ
      UGJZDKZEIZUMUJJZEKZUMUHLUMUKLUOULUPBJZUPUMAJZMZEKZDKVADKZEKURUNVBDEULUMAB
      DNCNZSOVADEPVCUQEVCUTUPUILZMZUQUSDKZUTMUTVGMVCVFVGUTQUSUTDUAVEVGUTDUPBENT
      UBRUPUMAUIVDUCUDOUEDUMUGVDTEUMUJVDTRUF $.
  $}

  $( The range of the composition of two classes.  (Contributed by NM,
     27-Mar-2008.) $)
  rnco2 $p |- ran ( A o. B ) = ( A " ran B ) $=
    ( ccom crn cres cima rnco df-ima eqtr4i ) ABCDABDZEDAJFABGAJHI $.

  $( The domain of a composition.  Exercise 27 of [Enderton] p. 53.
     (Contributed by NM, 4-Feb-2004.) $)
  dmco $p |- dom ( A o. B ) = ( `' B " dom A ) $=
    ( ccom cdm ccnv crn cima dfdm4 cnvco rneqi rnco2 imaeq2i eqtr4i 3eqtri ) AB
    CZDOEZFBEZAEZCZFZQADZGZOHPSABIJTQRFZGUBQRKUAUCQAHLMN $.

  ${
    $d w x y z A $.  $d w y z B $.  $d w y z C $.
    $( Composition with an indexed union.  (Contributed by NM, 21-Dec-2008.) $)
    coiun $p |- ( A o. U_ x e. C B ) = U_ x e. C ( A o. B ) $=
      ( vy vz vw ciun ccom relco wrel cv wcel wbr wa wex wrex cop eliun df-br
      reliun a1i mprgbir rexbii 3bitr4i anbi1i r19.41v bitr4i exbii rexcom4 vex
      opelco bitri eqrelriiv ) EFBADCHZIZADBCIZHZBUOJURKUQKZADADUQUAUSALDMBCJUB
      UCELZGLZUONZVAFLZBNZOZGPZUTVACNZVDOZGPZADQZUTVCRZUPMVKURMZVFVHADQZGPVJVEV
      MGVEVGADQZVDOVMVBVNVDUTVARZUOMVOCMZADQVBVNAVODCSUTVAUOTVGVPADUTVACTUDUEUF
      VGVDADUGUHUIVHAGDUJUHGUTVCBUOEUKZFUKZULVLVKUQMZADQVJAVKDUQSVSVIADGUTVCBCV
      QVRULUDUMUEUN $.
  $}

  $( A composition is not affected by a double converse of its first argument.
     (Contributed by NM, 8-Oct-2007.) $)
  cocnvcnv1 $p |- ( `' `' A o. B ) = ( A o. B ) $=
    ( ccnv ccom cvv cres cnvcnv2 coeq1i crn wss wceq ssv cores ax-mp eqtri ) AC
    CZBDAEFZBDZABDZPQBAGHBIZEJRSKTLABEMNO $.

  $( A composition is not affected by a double converse of its second
     argument.  (Contributed by NM, 8-Oct-2007.) $)
  cocnvcnv2 $p |- ( A o. `' `' B ) = ( A o. B ) $=
    ( ccnv ccom cres cnvcnv2 coeq2i resco wrel wceq relco dfrel3 mpbi 3eqtr2i
    cvv ) ABCCZDABOEZDABDZOEZRPQABFGABOHRISRJABKRLMN $.

  $( Absorption of a reverse (preimage) restriction of the second member of a
     class composition.  (Contributed by NM, 11-Dec-2006.) $)
  cores2 $p |- ( dom A C_ C -> ( A o. `' ( `' B |` C ) ) = ( A o. B ) ) $=
    ( cdm wss ccnv cres ccom wceq dfdm4 sseq1i cores sylbi cnvco cocnvcnv1 wrel
    crn relco dfrel2 mpbi eqtri 3eqtr4g cnveqd 3eqtr3g ) ADZCEZABFZCGZFZHZFZFZA
    BHZFZFZUJUMUFUKUNUFUHAFZHZUGUPHZUKUNUFUPQZCEUQURIUEUSCAJKUGUPCLMUKUIFUPHUQA
    UINUHUPOUAABNUBUCUJPULUJIAUIRUJSTUMPUOUMIABRUMSTUD $.

  ${
    $d x y z A $.
    $( Composition with the empty set.  Theorem 20 of [Suppes] p. 63.
       (Contributed by NM, 24-Apr-2004.) $)
    co02 $p |- ( A o. (/) ) = (/) $=
      ( vx vy vz c0 ccom relco rel0 cv cop wcel wbr wa noel df-br mtbir intnanr
      wex nex vex opelco 2false eqrelriiv ) BCAEFZEAEGHBIZCIZJZUDKZUGEKUHUEDIZE
      LZUIUFALZMZDRULDUJUKUJUEUIJZEKUMNUEUIEOPQSDUEUFAEBTCTUAPUGNUBUC $.

    $( Composition with the empty set.  (Contributed by NM, 24-Apr-2004.) $)
    co01 $p |- ( (/) o. A ) = (/) $=
      ( c0 ccnv ccom cnv0 cnvco coeq2i co02 3eqtri eqtr4i cnveqi wrel wceq rel0
      dfrel2 mpbi relco 3eqtr3ri ) BCZCZBADZCZCZBUASUBSBUBEUBACZSDUDBDBBAFSBUDE
      GUDHIJKBLTBMNBOPUALUCUAMBAQUAOPR $.

    $( Composition with the identity relation.  Part of Theorem 3.7(i) of
       [Monk1] p. 36.  (Contributed by NM, 22-Apr-2004.) $)
    coi1 $p |- ( Rel A -> ( A o. _I ) = A ) $=
      ( vx vy vz cid ccom wrel wceq relco cv cop wcel wbr wex vex opelco equcom
      wa ideq bitri anbi1i exbii breq1 ceqsexv df-br eqrelriv mpan ) AEFZGAGUHA
      HAEIBCUHABJZCJZKZUHLZUIUJAMZUKALULUIDJZEMZUNUJAMZRZDNZUMDUIUJAEBOZCOPURUN
      UIHZUPRZDNUMUQVADUOUTUPUOUIUNHUTUIUNDOSBDQTUAUBUPUMDUIUSUNUIUJAUCUDTTUIUJ
      AUETUFUG $.

    $( Composition with the identity relation.  Part of Theorem 3.7(i) of
       [Monk1] p. 36.  (Contributed by NM, 22-Apr-2004.) $)
    coi2 $p |- ( Rel A -> ( _I o. A ) = A ) $=
      ( wrel ccnv ccom cnvco wceq relcnv ax-mp cnveqi eqtr3i dfrel2 coeq2 coeq1
      cid coi1 cnvi sylan9eq mpan2 sylbi biimpi 3eqtr3a ) ABZNCZACZCZDZUENADZAU
      DNDZCUFUEUDNEUHUDUDBUHUDFAGUDOHIJUBUEAFZUFUGFZAKZUIUCNFZUJPUIULUFUCADUGUE
      AUCLUCNAMQRSUBUIUKTUA $.
  $}

  $( Composition with a restricted identity relation.  (Contributed by FL,
     19-Jun-2011.)  (Revised by Stefan O'Rear, 7-Mar-2015.) $)
  coires1 $p |- ( A o. ( _I |` B ) ) = ( A |` B ) $=
    ( ccnv cres ccom cocnvcnv1 wrel wceq relcnv coi1 ax-mp eqtr3i reseq1i resco
    cid rescnvcnv ) ACZCZBDZAOBDEZABDAOEZBDSTUARBROEZUARAOFRGUBRHQIRJKLMAOBNLAB
    PL $.

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.
    $( Associative law for class composition.  Theorem 27 of [Suppes] p. 64.
       Also Exercise 21 of [Enderton] p. 53.  Interestingly, this law holds for
       any classes whatsoever, not just functions or even relations.
       (Contributed by NM, 27-Jan-1997.) $)
    coass $p |- ( ( A o. B ) o. C ) = ( A o. ( B o. C ) ) $=
      ( vx vy vz vw ccom relco cv wbr wa wex cop wcel brco exbii opelco 3bitr4i
      vex excom anass 2exbii bitr4i anbi2i exdistr anbi1i 19.41v eqrelriiv ) DE
      ABHZCHZABCHZHZUJCIAULIDJZFJZCKZUOGJZBKZUQEJZAKZLZLZGMFMZUPURLZUTLZFMZGMZU
      NUSNZUKOZVHUMOZVCVBFMGMVGVBFGUAVEVBGFUPURUTUBUCUDUPUOUSUJKZLZFMUPVAGMZLZF
      MVIVCVLVNFVKVMUPGUOUSABFTETZPUEQFUNUSUJCDTZVORUPVAFGUFSUNUQULKZUTLZGMVDFM
      ZUTLZGMVJVGVRVTGVQVSUTFUNUQBCVPGTPUGQGUNUSAULVPVORVFVTGVDUTFUHQSSUI $.
  $}

  $( A relation is transitive iff its converse is transitive.  (Contributed by
     FL, 19-Sep-2011.) $)
  relcnvtr $p |- ( Rel R ->
     ( ( R o. R ) C_ R <-> ( `' R o. `' R ) C_ `' R ) ) $=
    ( wrel ccom wss ccnv cnvco cnvss syl5eqssr wceq wi sseq1 dfrel2 coeq1 coeq2
    eqtrd id sseq12d biimpd sylbi com12 syl6bi mpsyl impbid2 ) ABZAACZADZAEZUGC
    ZUGDZUFUHUEEUGAAFUEAGHUIUDUFUHEZUGEZUKCZIZUIUJUKDZUDUFJZUGUGFUHUGGUMUNULUKD
    ZUOUJULUKKUDUPUFUDUKAIZUPUFJALUQUPUFUQULUEUKAUQULAUKCUEUKAUKMUKAANOUQPQRSTU
    AUBTUC $.

  ${
    $d x y A $.
    $( A relation is included in the cross product of its domain and range.
       Exercise 4.12(t) of [Mendelson] p. 235.  (Contributed by NM,
       3-Aug-1994.) $)
    relssdmrn $p |- ( Rel A -> A C_ ( dom A X. ran A ) ) $=
      ( vx vy wrel cdm crn cxp id cv cop wi wex 19.8a wa opelxp vex eldm2 elrn2
      wcel anbi12i bitri sylanbrc a1i relssdv ) ADZBCAAEZAFZGZUEHBIZCIZJZASZUKU
      HSZKUEULULCLZULBLZUMULCMULBMUMUIUFSZUJUGSZNUNUONUIUJUFUGOUPUNUQUOCUIABPQB
      UJACPRTUAUBUCUD $.
  $}

  $( The converse is a subset of the cartesian product of range and domain.
     (Contributed by Mario Carneiro, 2-Jan-2017.) $)
  cnvssrndm $p |- `' A C_ ( ran A X. dom A ) $=
    ( ccnv cdm crn cxp wrel relcnv relssdmrn ax-mp df-rn dfdm4 xpeq12i sseqtr4i
    wss ) ABZOCZODZEZADZACZEOFORNAGOHISPTQAJAKLM $.

  $( Composition as a subset of the cross product of factors.  (Contributed by
     Mario Carneiro, 12-Jan-2017.) $)
  cossxp $p |- ( A o. B ) C_ ( dom B X. ran A ) $=
    ( ccom cdm crn cxp wrel wss relco relssdmrn ax-mp dmcoss rncoss mp2an sstri
    xpss12 ) ABCZQDZQEZFZBDZAEZFZQGQTHABIQJKRUAHSUBHTUCHABLABMRUASUBPNO $.

  $( Two ways to describe the structure of a two-place operation.  (Contributed
     by NM, 17-Dec-2008.) $)
  relrelss $p |- ( ( Rel A /\ Rel dom A ) <-> A C_ ( ( _V X. _V ) X. _V ) ) $=
    ( vx wrel cdm wa cvv cxp wss df-rel anbi2i crn relssdmrn ssv mpan2 sylan9ss
    xpss12 xpss sstr sylibr dmss cv wcel wex wceq vn0m dmxpm ax-mp syl6sseq jca
    impbii bitri ) ACZADZCZEULUMFFGZHZEZAUOFGZHZUNUPULUMIJUQUSULUPAUMAKZGZURALU
    PUTFHVAURHUTMUMUOUTFPNOUSULUPUSAUOHZULUSURUOHVBUOFQAURUORNAISUSUMURDZUOAURT
    BUAFUBBUCVCUOUDBUEBUOFUFUGUHUIUJUK $.

  ${
    $d x y A $.  $d x y R $.
    $( The membership relation for a relation is inherited by class union.
       (Contributed by NM, 17-Sep-2006.) $)
    unielrel $p |- ( ( Rel R /\ A e. R ) -> U. A e. U. R ) $=
      ( vx vy wrel wcel wa cv cop wceq wex elrel simpr wi vex uniopel a1i eleq1
      cuni unieq eleq1d 3imtr4d exlimivv sylc ) BEZABFZGACHZDHZIZJZDKCKUFASZBSZ
      FZCDABLUEUFMUJUFUMNCDUJUIBFZUISZULFZUFUMUNUPNUJUGUHBCODOPQAUIBRUJUKUOULAU
      ITUAUBUCUD $.
  $}

  $( The double union of a relation is its field.  (Contributed by NM,
     17-Sep-2006.) $)
  relfld $p |- ( Rel R -> U. U. R = ( dom R u. ran R ) ) $=
    ( wrel cuni cdm crn cun cxp wss relssdmrn 3syl unixpss syl6ss dmrnssfld a1i
    uniss eqssd ) ABZACZCZADZAEZFZQSTUAGZCZCZUBQAUCHRUDHSUEHAIAUCORUDOJTUAKLUBS
    HQAMNP $.

  $( Restriction of a relation to its field.  (Contributed by FL,
     15-Apr-2012.) $)
  relresfld $p |- ( Rel R -> ( R |` U. U. R ) = R ) $=
    ( wrel cuni cres wceq cdm crn wi relfld reseq2d resundi wa eqtr resss resdm
    cun wss ssequn2 uneq1 eqeq2d ex syl6bi com3r sylbi syl5com sylancl pm2.43i
    mpsyl ) ABZAACCZDZAEZUIUKAAFZAGZPZDZEZUPAUMDZAUNDZPZEZUIULHUIUJUOAAIJAUMUNK
    UQVALUKUTEZUIULUKUPUTMUSAQZUIURAEZVBULHZAUNNAOVCAUSPZAEZVDVEHUSARVDVBVGULVD
    VBUKVFEZVGULHVDUTVFUKURAUSSTVHVGULUKVFAMUAUBUCUDUHUEUFUG $.

  $( Composition with the identity relation restricted to a relation's field.
     (Contributed by FL, 2-May-2011.) $)
  relcoi2 $p |- ( Rel R -> ( ( _I |` U. U. R ) o. R ) = R ) $=
    ( wrel cid cuni cres ccom crn wss wceq cdm cun dmrnssfld simpr sylbir ax-mp
    wa unss cores mp1i coi2 eqtrd ) ABZCADDZEAFZCAFZAAGZUCHZUDUEIUBAJZUFKUCHZUG
    ALUIUHUCHZUGPUGUHUFUCQUJUGMNOCAUCRSATUA $.

  $( Composition with the identity relation restricted to a relation's field.
     (Contributed by FL, 8-May-2011.) $)
  relcoi1 $p |- ( Rel R -> ( R o. ( _I |` U. U. R ) ) = R ) $=
    ( wrel cid cuni cres ccom cun wceq wi resco reseq1 wa eqtr eqeq1 syl5ibr ex
    syl com3l eqcoms mpcom cdm crn relfld resundi coeq2 coundi coi1 resdm uneq1
    uneq2d wss resss ssequn2 mpbi syl6reqr mpsyl syl5com mpi syl5eq mp2b reseq2
    coeq2d eqeq1d eqtrd ) ABZACADDZEZFZACFZAVFAUAZAUBZGZHZVEVHVIHZAUCVEVNVMACVL
    EZFZVIHZVOCVJEZCVKEZGZHVPAVTFZHZVEVQICVJVKUDVOVTAUEVEVQWBWAVIHVEWAAVRFZAVSF
    ZGZVIAVRVSUFVEVIVJEZWCHZWEVIHZACVJJVIAHZVEWGWHIZAUGZWIWFAVJEZHZVEWJVIAVJKWL
    AHZVEWMWJIAUHWMWNVEWJWMWNVEWJIZWMWNLWFAHZWOWFWLAMWGWPVEWHWPVEWHIZIWCWFWCWFH
    ZWPWQWRWPLWCAHZWQWCWFAMVIVKEZWDHZWSWEAWDGZHZWQACVKJWCAWDUIVEXAXCWHWIVEXAXCW
    HIZIZWKWIWTAVKEZHZVEXEIVIAVKKXAXGVEXDXGVEXDIZIWDWTWDWTHZXGXHXIXGLZXBAXFGZHZ
    XHXJWDXFAWDWTXFMUJXCXLVEWHXCXLWQXCXLLWEXKHZWQWEXBXKMVEWHXMXKVIHVEVIAXKWKXFA
    UKXKAHAVKULXFAUMUNUOWEXKVINOQPRQPSRQTRUPQPSRQPRTUQTURUSVPWAVINOUTVMVHVPVIVM
    VGVOAVFVLCVAVBVCOTWKVD $.

  $( The double union of the converse of a class is its field.  (Contributed by
     NM, 4-Jun-2008.) $)
  unidmrn $p |- U. U. `' A = ( dom A u. ran A ) $=
    ( ccnv cuni crn cdm cun wrel wceq relcnv ax-mp equncomi dfdm4 df-rn uneq12i
    relfld eqtr4i ) ABZCCZQDZQEZFAEZADZFRTSQGRTSFHAIQOJKUASUBTALAMNP $.

  $( if ` R ` is a relation, its double union equals the double union of its
     converse.  (Contributed by FL, 5-Jan-2009.) $)
  relcnvfld $p |- ( Rel R -> U. U. R = U. U. `' R ) $=
    ( wrel cuni cdm crn cun ccnv relfld unidmrn syl6eqr ) ABACCADAEFAGCCAHAIJ
    $.

  $( Alternate definition of domain ~ df-dm that doesn't require dummy
     variables.  (Contributed by NM, 2-Aug-2010.) $)
  dfdm2 $p |- dom A = U. U. ( `' A o. A ) $=
    ( ccnv ccom cuni cdm crn cun cnvco cocnvcnv2 eqtri unieqi eqtr3i wceq df-rn
    unidmrn eqcomi dmcoeq ax-mp rncoeq dfdm4 eqtr4i uneq12i unidm 3eqtrri ) ABZ
    ACZDZDZUFEZUFFZGZAEZULGULUFBZDZDUHUKUNUGUMUFUMUEUEBCUFUEAHUEAIJKKUFOLUIULUJ
    ULUEEZAFZMZUIULMUPUOANPZUEAQRUJUEFZULUQUJUSMURUEASRATUAUBULUCUD $.

  ${
    $d x a A $.  $d x b B $.
    $( The double class union of an inhabited cross product is the union of its
       members.  (Contributed by Jim Kingdon, 18-Dec-2018.) $)
    unixpm $p |- ( E. x x e. ( A X. B ) -> U. U. ( A X. B ) = ( A u. B ) ) $=
      ( vb va cv cxp wcel wex cuni cdm crn cun wrel relxp relfld ax-mp wa ancom
      wceq xpm bitri dmxpm rnxpm uneq12 syl2an sylbir syl5eq ) AFBCGZHAIZUIJJZU
      IKZUILZMZBCMZUINUKUNTBCOUIPQUJDFCHDIZEFBHEIZRZUNUOTZURUQUPRUJUPUQSEDABCUA
      UBUPULBTUMCTUSUQDBCUCEBCUDULBUMCUEUFUGUH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( The union of an empty cross product is empty.  (Contributed by Jim
       Kingdon, 18-Dec-2018.) $)
    unixp0im $p |- ( ( A X. B ) = (/) -> U. ( A X. B ) = (/) ) $=
      ( cxp c0 wceq cuni unieq uni0 syl6eq ) ABCZDEJFDFDJDGHI $.
  $}

  $( The converse of a set is a set.  Corollary 6.8(1) of [TakeutiZaring]
     p. 26.  (Contributed by NM, 17-Mar-1998.) $)
  cnvexg $p |- ( A e. V -> `' A e. _V ) $=
    ( wcel ccnv cdm crn cxp wss cvv wrel relcnv relssdmrn ax-mp df-rn syl5eqelr
    rnexg dfdm4 dmexg xpexg syl2anc ssexg sylancr ) ABCZADZUDEZUDFZGZHZUGICZUDI
    CUDJUHAKUDLMUCUEICUFICUIUCUEAFIANABPOUCUFAEIAQABROUEUFIISTUDUGIUAUB $.

  ${
    cnvex.1 $e |- A e. _V $.
    $( The converse of a set is a set.  Corollary 6.8(1) of [TakeutiZaring]
       p. 26.  (Contributed by NM, 19-Dec-2003.) $)
    cnvex $p |- `' A e. _V $=
      ( cvv wcel ccnv cnvexg ax-mp ) ACDAECDBACFG $.
  $}

  $( A relation is a set iff its converse is a set.  (Contributed by FL,
     3-Mar-2007.) $)
  relcnvexb $p |- ( Rel R -> ( R e. _V <-> `' R e. _V ) ) $=
    ( wrel cvv wcel ccnv cnvexg wceq wi dfrel2 eleq1 syl5ib sylbi impbid2 ) ABZ
    ACDZAEZCDZACFNPEZAGZQOHAIQRCDSOPCFRACJKLM $.

  ${
    $d x y A $.  $d x y B $.
    $( Restriction of a class to a singleton.  (Contributed by Mario Carneiro,
       28-Dec-2014.) $)
    ressn $p |- ( A |` { B } ) = ( { B } X. ( A " { B } ) ) $=
      ( vx vy csn cres cima cxp relres relxp cv cop wcel wa ancom elimasn elsni
      vex sneqd imaeq2d eleq2d syl5bbr pm5.32i opelres opelxp 3bitr4i eqrelriiv
      bitri ) CDABEZFZUIAUIGZHZAUIIUIUKJCKZDKZLZAMZUMUIMZNZUQUNUKMZNZUOUJMUOULM
      URUQUPNUTUPUQOUQUPUSUPUNAUMEZGZMUQUSAUMUNCRDRZPUQVBUKUNUQVAUIAUQUMBUMBQST
      UAUBUCUHUMUNAUIVCUDUMUNUIUKUEUFUG $.
  $}

  ${
    $d A a b x $.  $d B a b $.  $d A a b y $.
    $( The converse of an intersection is the intersection of the converse.
       (Contributed by Jim Kingdon, 18-Dec-2018.) $)
    cnviinm $p |- ( E. y y e. A -> `' |^|_ x e. A B = |^|_ x e. A `' B ) $=
      ( va vb cv wcel wex ciin ccnv eleq1 cbvexv wrel relcnv cvv wss df-rel cop
      wral wceq cxp wrex wi r19.2m expcom mpbi a1i mprg iinss syl sylibr wb vex
      eliin ax-mp opelcnv ralbii bitri 3bitr4i eqrelriv sylancr sylbir sylbi
      opex ) BGZCHZBIEGZCHZEIZACDJZKZACDKZJZUAZVGVIBEVFVHCLMVJAGZCHZAIZVOVQVIAE
      VPVHCLMVRVLNVNNZVOVKOVRVNPPUBZQZVSVRVMVTQZACUCZWAWBVRWCUDACVRWBACTWCWBACU
      EUFWBVQVMNWBDOVMRUGUHUIACVMVTUJUKVNRULEFVLVNFGZVHSZVKHZWEDHZACTZVHWDSZVLH
      WIVNHZWEPHWFWHUMWDVHFUNZEUNZVEAWECDPUOUPVHWDVKWLWKUQWJWIVMHZACTZWHWIPHWJW
      NUMVHWDWLWKVEAWICVMPUOUPWMWGACVHWDDWLWKUQURUSUTVAVBVCVD $.
  $}

  ${
    $d x y z w A $.  $d x y z w R $.
    $( The converse of a partial order relation is a partial order relation.
       (Contributed by NM, 15-Jun-2005.) $)
    cnvpom $p |- ( E. x x e. A -> ( R Po A <-> `' R Po A ) ) $=
      ( vw vy vz cv wbr wn wa wral wpo r19.26 ralbidv ralbii 3bitr4g vex ralcom
      wi brcnv wcel wex ralidm r19.3rmv syl5rbb anbi1d syl5bb id breq12d notbid
      ccnv weq cbvralv anbi12ci imbi12i anbi12i bitr2i bitri syl6bb df-po ) AGB
      UAAUBZDGZVBCHZIZVBEGZCHZVEFGZCHZJZVBVGCHZSZJFBKZEBKDBKZVGVGCUKZHZIZVGVEVN
      HZVEVBVNHZJZVGVBVNHZSZJZDBKZEBKFBKZBCLBVNLVAVLDBKZEBKWCFBKZEBKVMWDVAWEWFE
      BVAWEVDDBKZVKFBKZJZDBKZWFVAVDFBKZWHJZDBKZWGDBKZWHDBKZJZWEWJWMWKDBKZWOJVAW
      PWKWHDBMVAWQWNWOWNWGVAWQVDDBUCVAVDWKDBVDFABUDNUEUFUGVLWLDBVDVKFBMOWGWHDBM
      PWJWBFBKZDBKWFWIWRDBWRVPFBKZWAFBKZJWIVPWAFBMWSWGWTWHVPVDFDBFDULZVOVCVOVGV
      GCHXAVCVGVGCFQZXBTXAVGVBVGVBCXAUHZXCUIUGUJUMWAVKFBVSVIVTVJVQVHVRVFVGVECXB
      EQZTVEVBCXDDQZTUNVGVBCXBXETUOOUPUQOWBDFBBRURUSNVLDEBBRWCFEBBRPDEFBCUTFEDB
      VNUTP $.

    $( The converse of a strict order relation is a strict order relation.
       (Contributed by Jim Kingdon, 19-Dec-2018.) $)
    cnvsom $p |- ( E. x x e. A -> ( R Or A <-> `' R Or A ) ) $=
      ( vy vz cv wcel wex wpo wbr wo wi wral ccnv wor cnvpom vex brcnv df-iso
      wa orbi12i orcom imbi12i ralbii 2ralbii ralcom bitr3i a1i anbi12d 3bitr4g
      wb bitri ) AFZBGAHZBCIZUMDFZCJZUMEFZCJZURUPCJZKZLZEBMZDBMABMZTBCNZIZUPUMV
      EJZUPURVEJZURUMVEJZKZLZEBMZABMDBMZTBCOBVEOUNUOVFVDVMABCPVDVMUKUNVDVLDBMAB
      MVMVLVCADBBVKVBEBVGUQVJVAUPUMCDQZAQZRVJUTUSKVAVHUTVIUSUPURCVNEQZRURUMCVPV
      ORUAUTUSUBULUCUDUEVLADBBUFUGUHUIADEBCSDAEBVESUJ $.
  $}

  $( The composition of two sets is a set.  (Contributed by NM,
     19-Mar-1998.) $)
  coexg $p |- ( ( A e. V /\ B e. W ) -> ( A o. B ) e. _V ) $=
    ( wcel wa ccom cdm crn cxp wss cvv cossxp dmexg rnexg xpexg syl2anr sylancr
    ssexg ) ACEZBDEZFABGZBHZAIZJZKUELEZUBLEABMUAUCLEUDLEUFTBDNACOUCUDLLPQUBUELS
    R $.

  ${
    coex.1 $e |- A e. _V $.
    coex.2 $e |- B e. _V $.
    $( The composition of two sets is a set.  (Contributed by NM,
       15-Dec-2003.) $)
    coex $p |- ( A o. B ) e. _V $=
      ( cvv wcel ccom coexg mp2an ) AEFBEFABGEFCDABEEHI $.
  $}

  ${
    $d x a c A $.  $d x a c B $.  $d x a c C $.
    $( Composition of two cross products.  (Contributed by Jim Kingdon,
       20-Dec-2018.) $)
    xpcom $p |- ( E. x x e. B -> ( ( B X. C ) o. ( A X. B ) ) = ( A X. C ) ) $=
      ( va vc cv wcel wex cxp wbr wa copab ccom ibar anbi1i brxp anbi12i anandi
      ancom 3bitr4i exbii 19.41v bitr2i syl6rbb opabbidv df-co df-xp 3eqtr4g )
      AGZCHZAIZEGZUJBCJZKZUJFGZCDJZKZLZAIZEFMUMBHZUPDHZLZEFMUQUNNBDJULUTVCEFULV
      CULVCLZUTULVCOUTUKVCLZAIVDUSVEAVAUKLZUKVBLZLUKVALZVGLUSVEVFVHVGVAUKTPUOVF
      URVGUMUJBCQUJUPCDQRUKVAVBSUAUBUKVCAUCUDUEUFEFAUQUNUGEFBDUHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Definite description binder (inverted iota)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c iota $.
  $( Extend class notation with Russell's definition description binder
     (inverted iota). $)
  cio $a class ( iota x ph ) $.

  ${
    $d w x z $.  $d ph w z $.  $d ph w y $.  $d x y $.
    $( Soundness justification theorem for ~ df-iota .  (Contributed by Andrew
       Salmon, 29-Jun-2011.) $)
    iotajust $p |- U. { y | { x | ph } = { y } } =
       U. { z | { x | ph } = { z } } $=
      ( vw cab cv csn wceq sneq eqeq2d cbvabv eqtri unieqi ) ABFZCGZHZIZCFZODGZ
      HZIZDFZSOEGZHZIZEFUCRUFCEPUDIQUEOPUDJKLUFUBEDUDTIUEUAOUDTJKLMN $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( Define Russell's definition description binder, which can be read as
       "the unique ` x ` such that ` ph ` ," where ` ph ` ordinarily contains
       ` x ` as a free variable.  Our definition is meaningful only when there
       is exactly one ` x ` such that ` ph ` is true (see ~ iotaval );
       otherwise, it evaluates to the empty set (see ~ iotanul ).  Russell used
       the inverted iota symbol ` iota ` to represent the binder.

       Sometimes proofs need to expand an iota-based definition.  That is,
       given "X = the x for which ... x ... x ..." holds, the proof needs to
       get to "...  X ...  X ...".  A general strategy to do this is to use
       ~ iotacl (for unbounded iota).  This can be easier than applying a
       version that applies an explicit substitution, because substituting an
       iota into its own property always has a bound variable clash which must
       be first renamed or else guarded with NF.

       (Contributed by Andrew Salmon, 30-Jun-2011.) $)
    df-iota $a |- ( iota x ph ) = U. { y | { x | ph } = { y } } $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( Alternate definition for descriptions.  Definition 8.18 in [Quine]
       p. 56.  (Contributed by Andrew Salmon, 30-Jun-2011.) $)
    dfiota2 $p |- ( iota x ph ) = U. { y | A. x ( ph <-> x = y ) } $=
      ( cio cab cv csn wceq cuni wb wal df-iota df-sn eqeq2i abbi bitr4i unieqi
      abbii eqtri ) ABDABEZCFZGZHZCEZIABFUAHZJBKZCEZIABCLUDUGUCUFCUCTUEBEZHUFUB
      UHTBUAMNAUEBOPRQS $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Bound-variable hypothesis builder for the ` iota ` class.  (Contributed
       by Andrew Salmon, 11-Jul-2011.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfiota1 $p |- F/_ x ( iota x ph ) $=
      ( vy cio weq wb wal cab cuni dfiota2 nfaba1 nfuni nfcxfr ) BABDABCEFZBGCH
      ZIABCJBONBCKLM $.
  $}

  ${
    $d z ps $.  $d z ph $.  $d x y z $.
    nfiotadxy.1 $e |- F/ y ph $.
    nfiotadxy.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfiotaxy .  (Contributed by Jim Kingdon,
       21-Dec-2018.) $)
    nfiotadxy $p |- ( ph -> F/_ x ( iota y ps ) ) $=
      ( vz cio cv wceq wb wal cab cuni dfiota2 nfv wnf nfcv nfeq a1i nfcxfrd
      nfbid nfald nfabd nfunid ) ACBDHBDIZGIZJZKZDLZGMZNBDGOACUKAUJCGAGPAUICDEA
      BUHCFUHCQACUFUGCUFRCUGRSTUBUCUDUEUA $.
  $}

  ${
    $d w z ph $.  $d w x y z $.
    nfiota.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for the ` iota ` class.  (Contributed
       by NM, 23-Aug-2011.) $)
    nfiotaxy $p |- F/_ x ( iota y ph ) $=
      ( cio wnfc wtru nftru wnf a1i nfiotadxy trud ) BACEFGABCCHABIGDJKL $.
  $}

  ${
    $d z w x $.  $d z w y $.  $d z w ph $.  $d z w ps $.
    cbviota.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    cbviota.2 $e |- F/ y ph $.
    cbviota.3 $e |- F/ x ps $.
    $( Change bound variables in a description binder.  (Contributed by Andrew
       Salmon, 1-Aug-2011.) $)
    cbviota $p |- ( iota x ph ) = ( iota y ps ) $=
      ( vw vz weq wb wal cab cuni cio wsb nfv nfbi equequ1 bibi12d sbequ12 nfsb
      nfs1v cbval sbequ sbie syl6bb bitri abbii unieqi dfiota2 3eqtr4i ) ACHJZK
      ZCLZHMZNBDHJZKZDLZHMZNACOBDOUPUTUOUSHUOACIPZIHJZKZILUSUNVCCIUNIQVAVBCACIU
      CVBCQRCIJAVAUMVBACIUACIHSTUDVCURIDVAVBDACIDFUBVBDQRURIQIDJZVABVBUQVDVAACD
      PBAIDCUEABCDGEUFUGIDHSTUDUHUIUJACHUKBDHUKUL $.
  $}

  ${
    $d ph y $.  $d ps x $.
    cbviotav.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variables in a description binder.  (Contributed by Andrew
       Salmon, 1-Aug-2011.) $)
    cbviotav $p |- ( iota x ph ) = ( iota y ps ) $=
      ( nfv cbviota ) ABCDEADFBCFG $.
  $}

  ${
    $d w z ph $.  $d w z x $.  $d w z y $.
    sb8iota.1 $e |- F/ y ph $.
    $( Variable substitution in description binder.  Compare ~ sb8eu .
       (Contributed by NM, 18-Mar-2013.) $)
    sb8iota $p |- ( iota x ph ) = ( iota y [ y / x ] ph ) $=
      ( vz vw weq wal cab cuni wsb cio nfv sb8 sbbi nfsb equsb3 nfxfr dfiota2
      wb nfbi sbequ cbval sblbis albii 3bitri abbii unieqi 3eqtr4i ) ABEGZTZBHZ
      EIZJABCKZCEGZTZCHZEIZJABLUNCLUMURULUQEULUKBFKZFHUKBCKZCHUQUKBFUKFMNUSUTFC
      USABFKZUJBFKZTCAUJBFOVAVBCABFCDPVBFEGZCFBEQVCCMRUARUTFMUKFCBUBUCUTUPCUJUO
      ABCCBEQUDUEUFUGUHABESUNCESUI $.
  $}

  ${
    $d y z $.  $d x z $.  $d ph z $.
    $( Equality theorem for descriptions.  (Contributed by Andrew Salmon,
       30-Jun-2011.) $)
    iotaeq $p |- ( A. x x = y -> ( iota x ph ) = ( iota y ph ) ) $=
      ( vz cv wceq wal cab csn cuni cio wcel drsb1 df-clab 3bitr4g eqrdv eqeq1d
      wsb abbidv df-iota unieqd 3eqtr4g ) BECEFBGZABHZDEZIZFZDHZJACHZUFFZDHZJAB
      KACKUCUHUKUCUGUJDUCUDUIUFUCDUDUIUCABDRACDRUEUDLUEUILABCDMADBNADCNOPQSUAAB
      DTACDTUB $.
  $}

  ${
    $d ph z $.  $d ps z $.  $d x y z $.
    $( Equivalence theorem for descriptions.  (Contributed by Andrew Salmon,
       30-Jun-2011.) $)
    iotabi $p |- ( A. x ( ph <-> ps ) -> ( iota x ph ) = ( iota x ps ) ) $=
      ( vz wb wal cab cv csn wceq cuni abbi biimpi eqeq1d abbidv unieqd df-iota
      cio 3eqtr4g ) ABECFZACGZDHIZJZDGZKBCGZUBJZDGZKACRBCRTUDUGTUCUFDTUAUEUBTUA
      UEJABCLMNOPACDQBCDQS $.

    $( Part of Theorem 8.17 in [Quine] p. 56.  This theorem serves as a lemma
       for the fundamental property of iota.  (Contributed by Andrew Salmon,
       11-Jul-2011.) $)
    uniabio $p |- ( A. x ( ph <-> x = y ) -> U. { x | ph } = y ) $=
      ( cv wceq wb wal cab cuni csn abbi biimpi df-sn syl6eqr unieqd vex syl6eq
      unisn ) ABDCDZEZFBGZABHZISJZISUAUBUCUAUBTBHZUCUAUBUDEATBKLBSMNOSCPRQ $.

    $( Theorem 8.19 in [Quine] p. 57.  This theorem is the fundamental property
       of iota.  (Contributed by Andrew Salmon, 11-Jul-2011.) $)
    iotaval $p |- ( A. x ( ph <-> x = y ) -> ( iota x ph ) = y ) $=
      ( vz weq wb wal cio cab cuni cv dfiota2 wceq cvv wcel vex sbeqalb equcomi
      wa wi ax-mp ex equequ2 equcoms bibi2d biimpd alimdv com12 alrimiv uniabio
      syl6 impbid syl syl5eq ) ABCEZFZBGZABHABDEZFZBGZDIJZCKZABDLUQUTDCEZFZDGVA
      VBMUQVDDUQUTVCUQUTVCVBNOZUQUTSZVCTCPVEVFCDEVCABVBDKNQCDRUKUAUBVCUQUTVCUPU
      SBVCUPUSVCUOURAUOURFCDCDBUCUDUEUFUGUHULUIUTDCUJUMUN $.

    $( Equivalence between two different forms of ` iota ` .  (Contributed by
       Andrew Salmon, 12-Jul-2011.) $)
    iotauni $p |- ( E! x ph -> ( iota x ph ) = U. { x | ph } ) $=
      ( vz weu cv wceq wb wal wex cio cuni df-eu iotaval uniabio eqtr4d exlimiv
      cab sylbi ) ABDABECEZFGBHZCIABJZABQKZFZABCLTUCCTUASUBABCMABCNOPR $.

    $( Equivalence between two different forms of ` iota ` .  (Contributed by
       Mario Carneiro, 24-Dec-2016.) $)
    iotaint $p |- ( E! x ph -> ( iota x ph ) = |^| { x | ph } ) $=
      ( weu cio cab cuni cint iotauni uniintabim eqtrd ) ABCABDABEZFKGABHABIJ
      $.

    $( Property of iota.  (Contributed by NM, 23-Aug-2011.)  (Revised by Mario
       Carneiro, 23-Dec-2016.) $)
    iota1 $p |- ( E! x ph -> ( ph <-> ( iota x ph ) = x ) ) $=
      ( vz weu cv wceq wb wal wex cio df-eu iotaval eqeq2d bitr4d eqcom exlimiv
      sp syl6bb sylbi ) ABDABEZCEZFZGZBHZCIAABJZTFZGZABCKUDUGCUDATUEFZUFUDAUBUH
      UCBQUDUEUATABCLMNTUEORPS $.

    $( Theorem 8.22 in [Quine] p. 57.  This theorem is the result if there
       isn't exactly one ` x ` that satisfies ` ph ` .  (Contributed by Andrew
       Salmon, 11-Jul-2011.) $)
    iotanul $p |- ( -. E! x ph -> ( iota x ph ) = (/) ) $=
      ( vz weu wn cio c0 wss wceq weq wb wal wex df-eu cab dfiota2 alnex ax-in2
      cuni wi alimi ss2ab sylibr dfnul2 syl6sseqr sylbir uni0 syl6sseq syl5eqss
      unissd sylnbi ss0 syl ) ABDZEABFZGHZUOGIUNABCJKBLZCMZUPABCNUREZUOUQCOZSZG
      ABCPUSVAGSGUSUTGUSUQEZCLZUTGHUQCQVCUTCCJEZCOZGVCUQVDTZCLUTVEHVBVFCUQVDRUA
      UQVDCUBUCCUDUEUFUJUGUHUIUKUOULUM $.
  $}

  ${
    $d ph y $.  $d x y $.
    $( Theorem 8.23 in [Quine] p. 58, with existential uniqueness condition
       added.  This theorem proves the existence of the ` iota ` class under
       our definition.  (Contributed by Jim Kingdon, 21-Dec-2018.) $)
    euiotaex $p |- ( E! x ph -> ( iota x ph ) e. _V ) $=
      ( vy cv wceq wb wal wex cio weu cvv wcel iotaval eqcomd eximi df-eu isset
      3imtr4i ) ABDCDZEFBGZCHSABIZEZCHABJUAKLTUBCTUASABCMNOABCPCUAQR $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Value of iota based on a proposition which holds only for values which
       are subsets of a given class.  (Contributed by Mario Carneiro and Jim
       Kingdon, 21-Dec-2018.) $)
    iotass $p |- ( A. x ( ph -> x C_ A ) -> ( iota x ph ) C_ A ) $=
      ( vy cv wss wal cio cab csn wceq cuni df-iota cpw unieq vex df-pw sspwuni
      wi sylib unisn syl6eq sseq2i ss2ab bitri biimpri sseq1 syl2anr ex ss2abdv
      biimpa syl6sseqr syl5eqss ) ABECFZSBGZABHABIZDEZJZKZDIZLZCABDMUOUTCNZFVAC
      FUOUTUQCFZDIVBUOUSVCDUOUSVCUSUPLZUQKZVDCFZVCUOUSVDURLUQUPUROUQDPUAUBUOUPV
      BFZVFVGUOVGUPUNBIZFUOVBVHUPBCQUCAUNBUDUEUFUPCRTVEVFVCVDUQCUGUKUHUIUJDCQUL
      UTCRTUM $.
  $}

  ${
    $d ph z $.  $d ps z $.  $d x y z $.
    $( Theorem *14.22 in [WhiteheadRussell] p. 190.  (Contributed by Andrew
       Salmon, 12-Jul-2011.) $)
    iota4 $p |- ( E! x ph -> [. ( iota x ph ) / x ]. ph ) $=
      ( vz weu weq wb wal wex cio wsbc df-eu wsb bi2 alimi sb2 syl wceq iotaval
      wi cv eqcomd dfsbcq2 mpbid exlimiv sylbi ) ABDABCEZFZBGZCHABABIZJZABCKUHU
      JCUHABCLZUJUHUFASZBGUKUGULBAUFMNABCOPUHCTZUIQUKUJFUHUIUMABCRUAABCUIUBPUCU
      DUE $.
  $}

  $( Theorem *14.23 in [WhiteheadRussell] p. 191.  (Contributed by Andrew
     Salmon, 12-Jul-2011.) $)
  iota4an $p |- ( E! x ( ph /\ ps )
            -> [. ( iota x ( ph /\ ps ) ) / x ]. ph ) $=
    ( wa weu cio wsbc iota4 wi cvv euiotaex simpl sbcth syl wb sbcimg mpbid mpd
    wcel ) ABDZCEZTCTCFZGZACUBGZTCHUATAIZCUBGZUCUDIZUAUBJSZUFTCKZUECUBJABLMNUAU
    HUFUGOUITACUBJPNQR $.

  ${
    $d x y A $.  $d x V $.  $d x ph $.  $d y ps $.
    iota5.1 $e |- ( ( ph /\ A e. V ) -> ( ps <-> x = A ) ) $.
    $( A method for computing iota.  (Contributed by NM, 17-Sep-2013.) $)
    iota5 $p |- ( ( ph /\ A e. V ) -> ( iota x ps ) = A ) $=
      ( vy wcel wa cv wceq wb wal cio alrimiv wi eqeq2 bibi2d albidv imbi12d
      iotaval vtoclg adantl mpd ) ADEHZIZBCJZDKZLZCMZBCNZDKZUFUICFOUEUJULPZABUG
      GJZKZLZCMZUKUNKZPUMGDEUNDKZUQUJURULUSUPUICUSUOUHBUNDUGQRSUNDUKQTBCGUAUBUC
      UD $.
  $}

  ${
    $d x ph $.
    iotabidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for iota.  (Contributed by NM,
       20-Aug-2011.) $)
    iotabidv $p |- ( ph -> ( iota x ps ) = ( iota x ch ) ) $=
      ( wb wal cio wceq alrimiv iotabi syl ) ABCFZDGBDHCDHIAMDEJBCDKL $.
  $}

  ${
    iotabii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building deduction rule for iota.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    iotabii $p |- ( iota x ph ) = ( iota x ps ) $=
      ( wb cio wceq iotabi mpg ) ABEACFBCFGCABCHDI $.
  $}

  $( Membership law for descriptions.

     This can useful for expanding an unbounded iota-based definition (see
     ~ df-iota ).

     (Contributed by Andrew Salmon, 1-Aug-2011.) $)
  iotacl $p |- ( E! x ph -> ( iota x ph ) e. { x | ph } ) $=
    ( weu cio wsbc cab wcel iota4 df-sbc sylib ) ABCABABDZEKABFGABHABKIJ $.

  ${
    $d x y $.  $d y B $.  $d y ps $.
    iota2df.1 $e |- ( ph -> B e. V ) $.
    iota2df.2 $e |- ( ph -> E! x ps ) $.
    iota2df.3 $e |- ( ( ph /\ x = B ) -> ( ps <-> ch ) ) $.
    ${
      iota2df.4 $e |- F/ x ph $.
      iota2df.5 $e |- ( ph -> F/ x ch ) $.
      iota2df.6 $e |- ( ph -> F/_ x B ) $.
      $( A condition that allows us to represent "the unique element such that
         ` ph ` " with a class expression ` A ` .  (Contributed by NM,
         30-Dec-2014.) $)
      iota2df $p |- ( ph -> ( ch <-> ( iota x ps ) = B ) ) $=
        ( cio cv wceq wb wa simpr eqeq2d bibi12d weu iota1 syl wnfc nfiota1 a1i
        nfeqd nfbid vtocldf ) ABBDMZDNZOZPZCUJEOZPDEFGAUKEOZQZBCULUNIUPUKEUJAUO
        RSTABDUAUMHBDUBUCJLACUNDKADUJEDUJUDABDUEUFLUGUHUI $.
    $}

    $d x B $.  $d x ph $.  $d x ch $.
    $( A condition that allows us to represent "the unique element such that
       ` ph ` " with a class expression ` A ` .  (Contributed by NM,
       30-Dec-2014.) $)
    iota2d $p |- ( ph -> ( ch <-> ( iota x ps ) = B ) ) $=
      ( nfv nfvd nfcvd iota2df ) ABCDEFGHIADJACDKADELM $.
  $}

  ${
    $d A x $.  $d ps x $.
    iota2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( The unique element such that ` ph ` .  (Contributed by Jeff Madsen,
       1-Jun-2011.)  (Revised by Mario Carneiro, 23-Dec-2016.) $)
    iota2 $p |- ( ( A e. B /\ E! x ph ) -> ( ps <-> ( iota x ph ) = A ) ) $=
      ( wcel cvv weu cio wceq wb elex wa simpl simpr cv adantl nfv nfeu1 nfcvd
      nfan nfvd iota2df sylan ) DEGDHGZACIZBACJDKLDEMUFUGNZABCDHUFUGOUFUGPCQDKA
      BLUHFRUFUGCUFCSACTUBUHBCUCUHCDUAUDUE $.
  $}

  $( A class abstraction with a unique member can be expressed as a singleton.
     (Contributed by Mario Carneiro, 23-Dec-2016.) $)
  sniota $p |- ( E! x ph -> { x | ph } = { ( iota x ph ) } ) $=
    ( weu cv cab wcel cio csn wb wal wceq nfeu1 iota1 eqcom syl6bb abid 3bitr4g
    vex elsnc alrimi nfab1 nfiota1 nfsn cleqf sylibr ) ABCZBDZABEZFZUGABGZHZFZI
    ZBJUHUKKUFUMBABLUFAUGUJKZUIULUFAUJUGKUNABMUJUGNOABPUGUJBRSQTBUHUKABUABUJABU
    BUCUDUE $.

  ${
    $d A y z $.  $d x y z $.  $d ph z $.
    $( Class substitution within a description binder.  (Contributed by Scott
       Fenton, 6-Oct-2017.) $)
    csbiotag $p |- ( A e. V ->
        [_ A / x ]_ ( iota y ph ) = ( iota y [. A / x ]. ph ) ) $=
      ( vz cio csb wsb wceq wsbc csbeq1 dfsbcq2 iotabidv eqeq12d nfs1v nfiotaxy
      cv vex weq sbequ12 csbief vtoclg ) BFRZACGZHZABFIZCGZJBDUEHZABDKZCGZJFDEU
      DDJZUFUIUHUKBUDDUELULUGUJCABFDMNOBUDUEUHFSUGBCABFPQBFTAUGCABFUANUBUC $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                                 Functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c : $. $( Colon $)
  $c Fun $. $( Function predicate $)
  $c Fn $. $( Function connective $)
  $c --> $. $( Domain-codomain connective $)
  $c -1-1-> $. $( 'One-to-one' domain-codomain connective $)
  $c -onto-> $. $( 'Onto' domain-codomain connective $)
  $c -1-1-onto-> $. $( 'One-to-one' and 'onto' domain-codomain connective $)
  $c ` $. $( Left apostrophe (function value symbol) $)
  $c Isom $. $( Isomorphism $)

  $( Extend the definition of a wff to include the function predicate.  (Read:
     ` A ` is a function.) $)
  wfun $a wff Fun A $.

  $( Extend the definition of a wff to include the function predicate with a
     domain.  (Read: ` A ` is a function on ` B ` .) $)
  wfn $a wff A Fn B $.

  $( Extend the definition of a wff to include the function predicate with
     domain and codomain.  (Read: ` F ` maps ` A ` into ` B ` .) $)
  wf $a wff F : A --> B $.

  $( Extend the definition of a wff to include one-to-one functions.  (Read:
     ` F ` maps ` A ` one-to-one into ` B ` .)  The notation ("1-1" above the
     arrow) is from Definition 6.15(5) of [TakeutiZaring] p. 27. $)
  wf1 $a wff F : A -1-1-> B $.

  $( Extend the definition of a wff to include onto functions.  (Read: ` F `
     maps ` A ` onto ` B ` .)  The notation ("onto" below the arrow) is from
     Definition 6.15(4) of [TakeutiZaring] p. 27. $)
  wfo $a wff F : A -onto-> B $.

  $( Extend the definition of a wff to include one-to-one onto functions.
     (Read: ` F ` maps ` A ` one-to-one onto ` B ` .)  The notation ("1-1"
     above the arrow and "onto" below the arrow) is from Definition 6.15(6) of
     [TakeutiZaring] p. 27. $)
  wf1o $a wff F : A -1-1-onto-> B $.

  $( Extend the definition of a class to include the value of a function.
     (Read:  The value of ` F ` at ` A ` , or " ` F ` of ` A ` .") $)
  cfv $a class ( F ` A ) $.

  $( Extend the definition of a wff to include the isomorphism property.
     (Read: ` H ` is an ` R ` , ` S ` isomorphism of ` A ` onto ` B ` .) $)
  wiso $a wff H Isom R , S ( A , B ) $.

  ${
    $d x A $.  $d x F $.
    $( Define predicate that determines if some class ` A ` is a function.
       Definition 10.1 of [Quine] p. 65.  For example, the expression
       ` Fun _I ` is true ( ~ funi ).  This is not the same as defining a
       specific function's mapping, which is typically done using the format of
       ~ cmpt with the maps-to notation (see ~ df-mpt ).  Contrast this
       predicate with the predicates to determine if some class is a function
       with a given domain ( ~ df-fn ), a function with a given domain and
       codomain ( ~ df-f ), a one-to-one function ( ~ df-f1 ), an onto function
       ( ~ df-fo ), or a one-to-one onto function ( ~ df-f1o ).  For alternate
       definitions, see ~ dffun2 , ~ dffun4 , ~ dffun6 , ~ dffun7 , ~ dffun8 ,
       and ~ dffun9 .  (Contributed by NM, 1-Aug-1994.) $)
    df-fun $a |- ( Fun A <-> ( Rel A /\ ( A o. `' A ) C_ _I ) ) $.

    $( Define a function with domain.  Definition 6.15(1) of [TakeutiZaring]
       p. 27.  (Contributed by NM, 1-Aug-1994.) $)
    df-fn $a |- ( A Fn B <-> ( Fun A /\ dom A = B ) ) $.

    $( Define a function (mapping) with domain and codomain.  Definition
       6.15(3) of [TakeutiZaring] p. 27.  (Contributed by NM, 1-Aug-1994.) $)
    df-f $a |- ( F : A --> B <-> ( F Fn A /\ ran F C_ B ) ) $.

    $( Define a one-to-one function.  Compare Definition 6.15(5) of
       [TakeutiZaring] p. 27.  We use their notation ("1-1" above the arrow).
       (Contributed by NM, 1-Aug-1994.) $)
    df-f1 $a |- ( F : A -1-1-> B <-> ( F : A --> B /\ Fun `' F ) ) $.

    $( Define an onto function.  Definition 6.15(4) of [TakeutiZaring] p. 27.
       We use their notation ("onto" under the arrow).  (Contributed by NM,
       1-Aug-1994.) $)
    df-fo $a |- ( F : A -onto-> B <-> ( F Fn A /\ ran F = B ) ) $.

    $( Define a one-to-one onto function.  Compare Definition 6.15(6) of
       [TakeutiZaring] p. 27.  We use their notation ("1-1" above the arrow and
       "onto" below the arrow).  (Contributed by NM, 1-Aug-1994.) $)
    df-f1o $a |- ( F : A -1-1-onto-> B <->
                ( F : A -1-1-> B /\ F : A -onto-> B ) ) $.

    $( Define the value of a function, ` ( F `` A ) ` , also known as function
       application.  For example, ` ( _I `` (/) ) = (/) ` .  Typically,
       function ` F ` is defined using maps-to notation (see ~ df-mpt ), but
       this is not required.  For example, F = { ` <. ` 2 , 6 ` >. ` , ` <. `
       3 , 9 ` >. ` } -> ( F ` `` ` 3 ) = 9 .  We will later define
       two-argument functions using ordered pairs as
       ` ( A F B ) = ( F `` <. A , B >. ) ` .  This particular definition is
       quite convenient: it can be applied to any class and evaluates to the
       empty set when it is not meaningful.  The left apostrophe notation
       originated with Peano and was adopted in Definition *30.01 of
       [WhiteheadRussell] p. 235, Definition 10.11 of [Quine] p. 68, and
       Definition 6.11 of [TakeutiZaring] p. 26.  It means the same thing as
       the more familiar ` F ( A ) ` notation for a function's value at ` A ` ,
       i.e.  " ` F ` of ` A ` ," but without context-dependent notational
       ambiguity.  (Contributed by NM, 1-Aug-1994.)  Revised to use ` iota ` .
       (Revised by Scott Fenton, 6-Oct-2017.) $)
    df-fv $a |- ( F ` A ) = ( iota x A F x ) $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $( Define the isomorphism predicate.  We read this as " ` H ` is an ` R ` ,
       ` S ` isomorphism of ` A ` onto ` B ` ."  Normally, ` R ` and ` S ` are
       ordering relations on ` A ` and ` B ` respectively.  Definition 6.28 of
       [TakeutiZaring] p. 32, whose notation is the same as ours except that
       ` R ` and ` S ` are subscripts.  (Contributed by NM, 4-Mar-1997.) $)
    df-isom $a |- ( H Isom R , S ( A , B ) <-> ( H : A -1-1-onto-> B /\
                 A. x e. A A. y e. A ( x R y <-> ( H ` x ) S ( H ` y ) ) ) ) $.
  $}

  ${
    $d x y z A $.
    $( Alternate definition of a function.  (Contributed by NM,
       29-Dec-1996.) $)
    dffun2 $p |- ( Fun A <-> ( Rel A /\
                 A. x A. y A. z ( ( x A y /\ x A z ) -> y = z ) ) ) $=
      ( wfun wrel cid wss wa cv wbr wal wex copab 3bitri vex albii alcom bitri
      wi ccnv ccom df-fun df-id sseq2i df-co sseq1i ssopab2b brcnv anbi1i exbii
      weq imbi1i 19.23v bitr4i anbi2i ) DEDFZDDUAZUBZGHZIUQAJZBJZDKZVACJDKZIZBC
      ULZTZCLZBLALZIDUCUTVIUQUTVBVAURKZVDIZAMZVFTZCLZBLZVHALZBLVIUTUSVFBCNZHVLB
      CNZVQHVOGVQUSBCUDUEUSVRVQBCADURUFUGVLVFBCUHOVNVPBVNVGALZCLVPVMVSCVMVEAMZV
      FTVSVLVTVFVKVEAVJVCVDVBVADBPAPUIUJUKUMVEVFAUNUOQVGCARSQVHBAROUPS $.

    $( Alternate definition of a function.  Definition 6.4(4) of
       [TakeutiZaring] p. 24.  (Contributed by NM, 29-Dec-1996.) $)
    dffun4 $p |- ( Fun A <-> ( Rel A /\
                 A. x A. y A. z ( ( <. x , y >. e. A /\ <. x , z >. e. A )
                 -> y = z ) ) ) $=
      ( wfun wrel cv wbr wa weq wal cop wcel dffun2 df-br anbi12i imbi1i 2albii
      wi albii anbi2i bitri ) DEDFZAGZBGZDHZUDCGZDHZIZBCJZSZCKZBKAKZIUCUDUELDMZ
      UDUGLDMZIZUJSZCKZBKAKZIABCDNUMUSUCULURABUKUQCUIUPUJUFUNUHUOUDUEDOUDUGDOPQ
      TRUAUB $.

    $( A way of proving a relation is a function, analogous to ~ mo2r .
       (Contributed by Jim Kingdon, 27-May-2020.) $)
    dffun5r $p |- ( ( Rel A /\
        A. x E. z A. y ( <. x , y >. e. A -> y = z ) ) -> Fun A ) $=
      ( wrel cv cop wcel weq wi wal wex wa wfun wmo nfv mo2r opeq2 eleq1d mo4
      sylib alimi anim2i dffun4 sylibr ) DEZAFZBFZGZDHZBCIZJBKCLZAKZMUFUJUGCFZG
      ZDHZMUKJCKBKZAKZMDNUMURUFULUQAULUJBOUQUJBCUJCPQUJUPBCUKUIUODUHUNUGRSTUAUB
      UCABCDUDUE $.
  $}

  ${
    $d x y w v u $.  $d A w v u $.
    dffun6f.1 $e |- F/_ x A $.
    dffun6f.2 $e |- F/_ y A $.
    $( Definition of function, using bound-variable hypotheses instead of
       distinct variable conditions.  (Contributed by NM, 9-Mar-1995.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    dffun6f $p |- ( Fun A <-> ( Rel A /\ A. x E* y x A y ) ) $=
      ( vw vv vu wfun cv wbr wa weq wal wmo nfcv nfbr nfv breq2 albii wi dffun2
      wrel cbvmo mo4 nfmo breq1 mobidv cbval 3bitr3ri anbi2i bitr4i ) CICUCZFJZ
      GJZCKZUNHJZCKZLGHMUAHNGNZFNZLUMAJZBJZCKZBOZANZLFGHCUBVEUTUMUPGOZFNUNVBCKZ
      BOZFNUTVEVFVHFUPVGGBBUNUOCBUNPEBUOPQVGGRUOVBUNCSUDTVFUSFUPURGHUOUQUNCSUET
      VHVDFAVGABAUNVBCAUNPDAVBPQUFVDFRFAMVGVCBUNVAVBCUGUHUIUJUKUL $.
  $}

  ${
    $d x y A $.  $d x y z F $.
    $( Alternate definition of a function using "at most one" notation.
       (Contributed by NM, 9-Mar-1995.) $)
    dffun6 $p |- ( Fun F <-> ( Rel F /\ A. x E* y x F y ) ) $=
      ( nfcv dffun6f ) ABCACDBCDE $.

    $( A function has at most one value for each argument.  (Contributed by NM,
       24-May-1998.) $)
    funmo $p |- ( Fun F -> E* y A F y ) $=
      ( vx wfun cv wbr cvv wcel wa wi wal wmo wrel dffun6 simplbi brrelex ancrd
      ex syl alrimiv wceq breq1 mobidv imbi2d simprbi 19.21bi vtoclg com12 moim
      moanimv sylibr sylc ) CEZBAFZCGZBHIZUPJZKZALURAMZUPAMZUNUSAUNUPUQUNCNZUPU
      QKUNVBDFZUOCGZAMZDLZDACOZPVBUPUQBUOCQSTRUAUNUQVAKUTUQUNVAUNVEKUNVAKDBHVCB
      UBZVEVAUNVHVDUPAVCBUOCUCUDUEUNVEDUNVBVFVGUFUGUHUIUQUPAUKULUPURAUJUM $.
  $}

  ${
    $d x y z w v u $.  $d A w v u $.
    dffun4f.1 $e |- F/_ x A $.
    dffun4f.2 $e |- F/_ y A $.
    dffun4f.3 $e |- F/_ z A $.
    $( Definition of function like ~ dffun4 but using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by Jim Kingdon,
       17-Mar-2019.) $)
    dffun4f $p |- ( Fun A <-> ( Rel A /\
                 A. x A. y A. z ( ( <. x , y >. e. A /\ <. x , z >. e. A )
                 -> y = z ) ) ) $=
      ( vw cv wbr wal wa weq wi cop wcel nfcv nfbr breq2 albii wfun wmo dffun6f
      wrel mo4f nfv nfan nfim anbi2d equequ2 imbi12d cbval bitr4i df-br anbi12i
      anbi2i imbi1i 2albii 3bitri ) DUADUDZAIZBIZDJZBUBZAKZLUTVCVACIZDJZLZBCMZN
      ZCKZBKZAKZLUTVAVBODPZVAVFODPZLZVINZCKBKZAKZLABDEFUCVEVMUTVDVLAVDVCVAHIZDJ
      ZLZBHMZNZHKZBKVLVCWABHBVAVTDBVAQFBVTQRVBVTVADSUEVKWEBVJWDCHVJHUFWBWCCVCWA
      CCVAVBDCVAQZGCVBQRCVAVTDWFGCVTQRUGWCCUFUHCHMZVHWBVIWCWGVGWAVCVFVTVADSUICH
      BUJUKULTUMTUPVMVSUTVLVRAVJVQBCVHVPVIVCVNVGVOVAVBDUNVAVFDUNUOUQURTUPUS $.
  $}

  $( A function is a relation.  (Contributed by NM, 1-Aug-1994.) $)
  funrel $p |- ( Fun A -> Rel A ) $=
    ( wfun wrel ccnv ccom cid wss df-fun simplbi ) ABACAADEFGAHI $.

  ${
    $d x y z A $.  $d x y z B $.
    $( Subclass theorem for function predicate.  (Contributed by NM,
       16-Aug-1994.)  (Proof shortened by Mario Carneiro, 24-Jun-2014.) $)
    funss $p |- ( A C_ B -> ( Fun B -> Fun A ) ) $=
      ( wss wrel ccnv ccom cid wa wfun relss wi coss1 cnvss coss2 sstrd anim12d
      syl sstr2 df-fun 3imtr4g ) ABCZBDZBBEZFZGCZHADZAAEZFZGCZHBIAIUAUBUFUEUIAB
      JUAUHUDCUEUIKUAUHBUGFZUDABUGLUAUGUCCUJUDCABMUGUCBNQOUHUDGRQPBSAST $.
  $}

  $( Equality theorem for function predicate.  (Contributed by NM,
     16-Aug-1994.) $)
  funeq $p |- ( A = B -> ( Fun A <-> Fun B ) ) $=
    ( wceq wfun wss wi eqimss2 funss syl eqimss impbid ) ABCZADZBDZLBAEMNFBAGBA
    HILABENMFABJABHIK $.

  ${
    funeqi.1 $e |- A = B $.
    $( Equality inference for the function predicate.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    funeqi $p |- ( Fun A <-> Fun B ) $=
      ( wceq wfun wb funeq ax-mp ) ABDAEBEFCABGH $.
  $}

  ${
    funeqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for the function predicate.  (Contributed by NM,
       23-Feb-2013.) $)
    funeqd $p |- ( ph -> ( Fun A <-> Fun B ) ) $=
      ( wceq wfun wb funeq syl ) ABCEBFCFGDBCHI $.
  $}

  ${
    nffun.1 $e |- F/_ x F $.
    $( Bound-variable hypothesis builder for a function.  (Contributed by NM,
       30-Jan-2004.) $)
    nffun $p |- F/ x Fun F $=
      ( wfun wrel ccnv ccom cid wa df-fun nfrel nfcnv nfco nfcv nfss nfan nfxfr
      wss ) BDBEZBBFZGZHRZIABJSUBAABCKAUAHABTCABCLMAHNOPQ $.
  $}

  ${
    $d A w y z $.  $d F w y z $.  $d V w y z $.  $d x w y z $.
    $( Distribute proper substitution through the function predicate.
       (Contributed by Alexander van der Vekens, 23-Jul-2017.) $)
    sbcfung $p |- ( A e. V -> ( [. A / x ]. Fun F <-> Fun [_ A / x ]_ F ) ) $=
      ( vw vy vz wrel cv wbr wa wi wal wsbc sbcal csbconstg bitrd syl5bb albidv
      csb wcel weq wfun sbcan sbcrel sbcimg sbcbrg breq12d anbi12d sbcg imbi12d
      dffun2 sbcbii 3bitr4g ) BDUAZCHZEIZFIZCJZUQGIZCJZKZFGUBZLZGMZFMZEMZKZABNZ
      ABCTZHZUQURVJJZUQUTVJJZKZVCLZGMZFMZEMZKZCUCZABNVJUCVIUPABNZVGABNZKUOVSUPV
      GABUDUOWAVKWBVRABCDUEWBVFABNZEMUOVRVFEABOUOWCVQEWCVEABNZFMUOVQVEFABOUOWDV
      PFWDVDABNZGMUOVPVDGABOUOWEVOGUOWEVBABNZVCABNZLVOVBVCABDUFUOWFVNWGVCWFUSAB
      NZVAABNZKUOVNUSVAABUDUOWHVLWIVMUOWHABUQTZABURTZVJJVLABUQURDCUGUOWJUQWKURV
      JABUQDPZABURDPUHQUOWIWJABUTTZVJJVMABUQUTDCUGUOWJUQWMUTVJWLABUTDPUHQUIRVCA
      BDUJUKQSRSRSRUIRVTVHABEFGCULUMEFGVJULUN $.
  $}

  ${
    $d y A $.  $d y F $.
    $( There is exactly one value of a function.  (Contributed by NM,
       22-Apr-2004.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    funeu $p |- ( ( Fun F /\ A F B ) -> E! y A F y ) $=
      ( wfun wbr wa cv wex weu cdm wcel wrel funrel releldm sylan eldmg ibi syl
      wmo wi funmo adantr df-mo sylib mpd ) DEZBCDFZGZBAHDFZAIZUJAJZUIBDKZLZUKU
      GDMUHUNDNBCDOPUNUKABDUMQRSUIUJATZUKULUAUGUOUHABDUBUCUJAUDUEUF $.

    $( There is exactly one value of a function.  (Contributed by NM,
       3-Aug-1994.) $)
    funeu2 $p |- ( ( Fun F /\ <. A , B >. e. F ) -> E! y <. A , y >. e. F ) $=
      ( cop wcel wfun wbr cv weu df-br wa funeu eubii sylib sylan2br ) BCEDFDGZ
      BCDHZBAIZEDFZAJZBCDKQRLBSDHZAJUAABCDMUBTABSDKNOP $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of a function.  One possibility for the definition
       of a function in [Enderton] p. 42.  (Enderton's definition is ambiguous
       because "there is only one" could mean either "there is at most one" or
       "there is exactly one."  However, ~ dffun8 shows that it doesn't matter
       which meaning we pick.)  (Contributed by NM, 4-Nov-2002.) $)
    dffun7 $p |- ( Fun A <-> ( Rel A /\ A. x e. dom A E* y x A y ) ) $=
      ( wfun wrel cv wbr wmo wal wa cdm wral dffun6 wcel wi wex vex eldm bitr4i
      moabs imbi1i albii df-ral anbi2i bitri ) CDCEZAFZBFCGZBHZAIZJUFUIACKZLZJA
      BCMUJULUFUJUGUKNZUIOZAIULUIUNAUIUHBPZUIOUNUHBTUMUOUIBUGCAQRUASUBUIAUKUCSU
      DUE $.

    $( Alternate definition of a function.  One possibility for the definition
       of a function in [Enderton] p. 42.  Compare ~ dffun7 .  (Contributed by
       NM, 4-Nov-2002.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    dffun8 $p |- ( Fun A <-> ( Rel A /\ A. x e. dom A E! y x A y ) ) $=
      ( wfun wrel cv wbr wmo cdm wral wa weu dffun7 wex wi wcel df-mo vex eldm
      wb pm5.5 sylbi syl5bb ralbiia anbi2i bitri ) CDCEZAFZBFCGZBHZACIZJZKUGUIB
      LZAUKJZKABCMULUNUGUJUMAUKUJUIBNZUMOZUHUKPZUMUIBQUQUOUPUMTBUHCARSUOUMUAUBU
      CUDUEUF $.

    $( Alternate definition of a function.  (Contributed by NM, 28-Mar-2007.)
       (Revised by NM, 16-Jun-2017.) $)
    dffun9 $p |- ( Fun A <->
                 ( Rel A /\ A. x e. dom A E* y e. ran A x A y ) ) $=
      ( wfun wrel cv wbr wmo cdm wral wa wrmo dffun7 wcel brelrn pm4.71ri mobii
      crn vex df-rmo bitr4i ralbii anbi2i bitri ) CDCEZAFZBFZCGZBHZACIZJZKUEUHB
      CRZLZAUJJZKABCMUKUNUEUIUMAUJUIUGULNZUHKZBHUMUHUPBUHUOUFUGCASBSOPQUHBULTUA
      UBUCUD $.
  $}

  $( An equivalence for the function predicate.  (Contributed by NM,
     13-Aug-2004.) $)
  funfn $p |- ( Fun A <-> A Fn dom A ) $=
    ( wfun cdm wceq wa wfn eqid biantru df-fn bitr4i ) ABZKACZLDZEALFMKLGHALIJ
    $.

  $( The identity relation is a function.  Part of Theorem 10.4 of [Quine]
     p. 65.  (Contributed by NM, 30-Apr-1998.) $)
  funi $p |- Fun _I $=
    ( cid wfun wrel ccnv ccom wss reli wceq relcnv coi2 ax-mp cnvi eqtri df-fun
    eqimssi mpbir2an ) ABACAADZEZAFGRARQAQCRQHAIQJKLMOANP $.

  $( The universe is not a function.  (Contributed by Raph Levien,
     27-Jan-2004.) $)
  nfunv $p |- -. Fun _V $=
    ( cvv wfun wrel cxp wcel 0nelxp 0ex wss df-rel biimpi sseld mpi mto funrel
    c0 ) ABACZPOAADZEZAAFPOAERGPAQOPAQHAIJKLMANM $.

  ${
    $d t u v w x y z A $.  $d t u v w x y z B $.
    $( A Kuratowski ordered pair is a function only if its components are
       equal.  (Contributed by NM, 5-Jun-2008.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    funopg $p |- ( ( A e. V /\ B e. W /\ Fun <. A , B >. ) -> A = B ) $=
      ( vu vt vx vy vz vw vv wcel cop wfun wceq cv wi cpr vex cvv opeq1 imbi12d
      funeqd eqeq1 opeq2 eqeq2 csn wex wrel funrel relop sylib opth opid preq1i
      wa dfop preq2i snexgOLD zfpair2 3eqtr4ri eqeq2i bitr3i wal dffun4 simprbi
      ax-mp opex prid1 eleq2 mpbiri prid2 jca w3a opeq12 3adant3 eleq1d 3adant2
      anbi12d wb eqeq12 3adant1 spc3gv mp3an syl2im syl5bi dfsn2 syl5req eqeq2d
      preq2 eqtr3 expcom syl6bi com13 imp sylcom exlimdvv mpd vtocl2g 3impia )
      ACLBDLABMZNZABOZEPZFPZMZNZXDXEOZQAXEMZNZAXEOZQXBXCQEFABCDXDAOZXGXJXHXKXLX
      FXIXDAXEUAUCXDAXEUDUBXEBOZXJXBXKXCXMXIXAXEBAUEUCXEBAUFUBXGXDGPZUGZOZXEXNH
      PZRZOZUPZHUHGUHZXHXGXFUIZYAXFUJGHXDXEESZFSZUKULXGXTXHGHXGXTXNXQOZXHXTXFXN
      XNMZXNXQMZRZOZXGYEXTXFXOXRMZOYIXDXEXOXRYCYDUMYJYHXFYFXOXRRZRXOUGZYKRYHYJY
      FYLYKXNGSZUNUOYGYKYFXNXQYMHSZUQURXOXRXNTLZXOTLYMXNUSVGGHUTUQVAVBVCXGIPZJP
      ZMZXFLZYPKPZMZXFLZUPZYQYTOZQZKVDJVDIVDZYIYFXFLZYGXFLZUPZYEXGYBUUFIJKXFVEV
      FYIUUGUUHYIUUGYFYHLYFYGXNXNYMYMVHVIXFYHYFVJVKYIUUHYGYHLYFYGXNXQYMYNVHVLXF
      YHYGVJVKVMYOYOXQTLUUFUUIYEQZQYMYMYNUUEUUJIJKXNXNXQTTTYPXNOZYQXNOZYTXQOZVN
      ZUUCUUIUUDYEUUNYSUUGUUBUUHUUNYRYFXFUUKUULYRYFOUUMYPYQXNXNVOVPVQUUNUUAYGXF
      UUKUUMUUAYGOUULYPYTXNXQVOVRVQVSUULUUMUUDYEVTUUKYQXNYTXQWAWBUBWCWDWEWFXPXS
      YEXHQYEXSXPXHYEXSXEXOOZXPXHQYEXRXOXEYEXOXNXNRXRXNWGXNXQXNWJWHWIXPUUOXHXDX
      EXOWKWLWMWNWOWPWQWRWSWT $.
  $}


  ${
    $d x y z $.  $d z ph $.
    $( A class of ordered pairs is a function when there is at most one second
       member for each pair.  (Contributed by NM, 16-May-1995.) $)
    funopab $p |- ( Fun { <. x , y >. | ph } <-> A. x E* y ph ) $=
      ( copab wfun wbr wmo wal wrel relopab nfopab1 nfopab2 dffun6f mpbiran cop
      cv wcel df-br opabid bitri mobii albii ) ABCDZEZBPZCPZUCFZCGZBHZACGZBHUDU
      CIUIABCJBCUCABCKABCLMNUHUJBUGACUGUEUFOUCQAUEUFUCRABCSTUAUBT $.
  $}

  ${
    $d x y $.  $d y A $.
    $( A class of ordered pairs of values is a function.  (Contributed by NM,
       14-Nov-1995.) $)
    funopabeq $p |- Fun { <. x , y >. | y = A } $=
      ( cv wceq copab wfun wmo funopab moeq mpgbir ) BDCEZABFGLBHALABIBCJK $.

    $( A class of ordered pairs of values in the form used by ~ df-mpt is a
       function.  (Contributed by NM, 17-Feb-2013.) $)
    funopab4 $p |- Fun { <. x , y >. | ( ph /\ y = A ) } $=
      ( cv wceq wa copab wss wfun simpr ssopab2i funopabeq funss mp2 ) ACEDFZGZ
      BCHZPBCHZISJRJQPBCAPKLBCDMRSNO $.
  $}

  ${
    $d A y $.  $d B y $.  $d x y $.
    $( A function in maps-to notation is a function.  (Contributed by Mario
       Carneiro, 13-Jan-2013.) $)
    funmpt $p |- Fun ( x e. A |-> B ) $=
      ( vy cmpt wfun cv wcel wceq wa copab funopab4 df-mpt funeqi mpbir ) ABCEZ
      FAGBHZDGCIJADKZFQADCLPRADBCMNO $.
  $}

  ${
    funmpt2.1 $e |- F = ( x e. A |-> B ) $.
    $( Functionality of a class given by a "maps to" notation.  (Contributed by
       FL, 17-Feb-2008.)  (Revised by Mario Carneiro, 31-May-2014.) $)
    funmpt2 $p |- Fun F $=
      ( wfun cmpt funmpt funeqi mpbir ) DFABCGZFABCHDKEIJ $.
  $}

  ${
    $d x y z F $.  $d x y z G $.
    $( The composition of two functions is a function.  Exercise 29 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 26-Jan-1997.)  (Proof
       shortened by Andrew Salmon, 17-Sep-2011.) $)
    funco $p |- ( ( Fun F /\ Fun G ) -> Fun ( F o. G ) ) $=
      ( vx vy vz wfun ccom wrel wbr wmo cdm wral wex wss dmcoss weu sylibr wcel
      wa cv wal funmo alrimiv ralrimivw dffun8 simprbi r19.26 nfv euexex ralimi
      anim12ci ssralv mpsyl copab df-br df-co eleq2i opabid 3bitri mobii ralbii
      syl cop relco jctil dffun7 ) AFZBFZSZABGZHZCTZDTZVJIZDJZCVJKZLZSVJFVIVQVK
      VIVLETZBIZVRVMAIZSEMZDJZCVPLZVQVPBKZNVIWBCWDLZWCABOVIVSEPZVTDJZEUAZSZCWDL
      ZWEVIWFCWDLZWHCWDLZSWJVGWLVHWKVGWHCWDVGWGEDVRAUBUCUDVHBHWKCEBUEUFUKWFWHCW
      DUGQWIWBCWDVSVTEDVSDUHUIUJVBWBCVPWDULUMVOWBCVPVNWADVNVLVMVCZVJRWMWACDUNZR
      WAVLVMVJUOVJWNWMCDEABUPUQWACDURUSUTVAQABVDVECDVJVFQ $.
  $}

  $( A restriction of a function is a function.  Compare Exercise 18 of
     [TakeutiZaring] p. 25.  (Contributed by NM, 16-Aug-1994.) $)
  funres $p |- ( Fun F -> Fun ( F |` A ) ) $=
    ( cres wss wfun wi resss funss ax-mp ) BACZBDBEJEFBAGJBHI $.

  ${
    $d x y F $.  $d x y G $.  $d x y A $.
    $( The restriction of a function to the domain of a subclass equals the
       subclass.  (Contributed by NM, 15-Aug-1994.) $)
    funssres $p |- ( ( Fun F /\ G C_ F ) -> ( F |` dom G ) = G ) $=
      ( vx vy wfun wss wa cdm cres wceq cv cop wcel wb wal wi vex wex imp wrel
      ssel opeldm a1i adantl weu funeu2 eldm2 ancrd eximdv syl5bi eupick syl2an
      jcad exp43 com23 com34 pm2.43d impd impbid opelres syl6rbbr relres funrel
      alrimivv relss mpan9 eqrel sylancr mpbird ) AEZBAFZGZABHZIZBJZCKZDKZLZVNM
      ZVRBMZNZDOCOZVLWACDVLVTVRAMZVPVMMZGZVSVLVTWEVKVTWEPVJVKVTWCWDBAVRUAZVTWDP
      VKVPVQBCQZDQZUBUCUMUDVLWCWDVTVLWCWDVTPVLWCWDWCVTVJVKWCWDWCVTPZPZPVJWCVKWJ
      VJWCVKWDWIVJWCGWCDUEWCVTGZDRZWIVKWDGDVPVQAUFVKWDWLWDVTDRVKWLDVPBWGUGVKVTW
      KDVKVTWCWFUHUIUJSWCVTDUKULUNUOSUPUQURUSVPVQAVMWHUTVAVDVLVNTBTZVOWBNAVMVBV
      JATVKWMAVCBAVEVFCDVNBVGVHVI $.
  $}

  $( Equality of restrictions of a function and a subclass.  (Contributed by
     NM, 16-Aug-1994.) $)
  fun2ssres $p |- ( ( Fun F /\ G C_ F /\ A C_ dom G ) ->
                  ( F |` A ) = ( G |` A ) ) $=
    ( wfun wss cdm cres wceq wa resabs1 eqcomd funssres reseq1d sylan9eqr 3impa
    ) BDZCBEZACFZEZBAGZCAGZHSPQIZTBRGZAGZUASUDTBARJKUBUCCABCLMNO $.

  ${
    $d x y z F $.  $d x y z G $.
    $( The union of functions with disjoint domains is a function.  Theorem 4.6
       of [Monk1] p. 43.  (Contributed by NM, 12-Aug-1994.) $)
    funun $p |- ( ( ( Fun F /\ Fun G ) /\ ( dom F i^i dom G ) = (/) ) ->
                Fun ( F u. G ) ) $=
      ( vx vy vz wfun wa cdm wrel cv wi wal anim12i wo wn 19.21bi opeldm dffun4
      wcel vex cin c0 wceq cun cop funrel relun sylibr elun anbi12i anddi bitri
      adantr disj1 biimpi imnan sylib nsyl orel2 syl con2d orel1 orim12d adantl
      syl5bi simprbi 19.21bbi jaao syld alrimiv alrimivv sylanbrc ) AFZBFZGZAHZ
      BHZUAUBUCZGZABUDZIZCJZDJZUEZVTSZWBEJZUEZVTSZGZWCWFUCZKZELZDLCLVTFVOWAVRVO
      AIZBIZGWAVMWMVNWNAUFBUFMABUGUHUMVSWLCDVSWKEVSWIWDASZWGASZGZWDBSZWGBSZGZNZ
      WJWIWQWOWSGZNZWRWPGZWTNZNZVSXAWIWOWRNZWPWSNZGXFWEXGWHXHWDABUIWGABUIUJWOWR
      WPWSUKULVRXFXAKVOVRXCWQXEWTVRXBOXCWQKVRWBVPSZWBVQSZGZXBVRXIXJOKZXKOVRXLCV
      RXLCLCVPVQUNUOPZXIXJUPUQWOXIWSXJWBWCACTZDTZQWBWFBXNETZQMURXBWQUSUTVRXDOXE
      WTKVRXJXIGZXDVRXJXIOKXQOVRXIXJXMVAXJXIUPUQWRXJWPXIWBWCBXNXOQWBWFAXNXPQMUR
      XDWTVBUTVCVDVEVOXAWJKVRVMWQWJVNWTVMWQWJKZDEVMXRELDLZCVMWMXSCLCDEARVFPVGVN
      WTWJKZDEVNXTELDLZCVNWNYACLCDEBRVFPVGVHUMVIVJVKCDEVTRVL $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The converse singleton of an ordered pair is a function.  This is
       equivalent to ~ funsn via ~ cnvsn , but stating it this way allows us to
       skip the sethood assumptions on ` A ` and ` B ` .  (Contributed by NM,
       30-Apr-2015.) $)
    funcnvsn $p |- Fun `' { <. A , B >. } $=
      ( vx vy cop csn ccnv wfun wrel cv wbr wmo wal relcnv wceq moeq wcel brcnv
      vex df-br bitri elsni opth1 syl sylbi moimi ax-mp ax-gen dffun6 mpbir2an
      ) ABEZFZGZHUMICJZDJZUMKZDLZCMULNUQCUOAOZDLUQDAPUPURDUPUOUNEZULQZURUPUOUNU
      LKUTUNUOULCSZDSZRUOUNULTUAUTUSUKOURUSUKUBUOUNABVBVAUCUDUEUFUGUHCDUMUIUJ
      $.

    $( A singleton of an ordered pair is a function.  Theorem 10.5 of [Quine]
       p. 65.  (Contributed by NM, 28-Jun-2011.) $)
    funsng $p |- ( ( A e. V /\ B e. W ) -> Fun { <. A , B >. } ) $=
      ( wcel wa cop csn ccnv wfun funcnvsn wceq cnvsng ancoms funeqd mpbii ) AC
      EZBDEZFZBAGHIZJABGHZJBAKSTUARQTUALBADCMNOP $.

    $( Functionality and domain of the singleton of an ordered pair.
       (Contributed by Mario Carneiro, 30-Apr-2015.) $)
    fnsng $p |- ( ( A e. V /\ B e. W ) -> { <. A , B >. } Fn { A } ) $=
      ( wcel wa cop csn wfun cdm wceq wfn funsng dmsnopg adantl df-fn sylanbrc
      ) ACEZBDEZFABGHZITJAHZKZTUALABCDMSUBRABDNOTUAPQ $.

    funsn.1 $e |- A e. _V $.
    funsn.2 $e |- B e. _V $.
    $( A singleton of an ordered pair is a function.  Theorem 10.5 of [Quine]
       p. 65.  (Contributed by NM, 12-Aug-1994.) $)
    funsn $p |- Fun { <. A , B >. } $=
      ( cvv wcel cop csn wfun funsng mp2an ) AEFBEFABGHICDABEEJK $.
  $}

  $( A set of two pairs is a function if their first members are different.
     (Contributed by FL, 26-Jun-2011.) $)
  funprg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) /\ A =/= B )
     -> Fun { <. A , C >. , <. B , D >. } ) $=
    ( wcel wa cop csn wfun cdm cin c0 wceq funsng syl2anc dmsnopg simp1l simp2l
    wne w3a cun cpr simp1r simp2r ineq12d disjsn2 3ad2ant3 eqtrd funun syl21anc
    syl df-pr funeqi sylibr ) AEIZBFIZJZCGIZDHIZJZABUCZUDZACKZLZBDKZLZUEZMZVGVI
    UFZMVFVHMZVJMZVHNZVJNZOZPQVLVFUSVBVNUSUTVDVEUAVAVBVCVEUBZACEGRSVFUTVCVOUSUT
    VDVEUGVAVBVCVEUHZBDFHRSVFVRALZBLZOZPVFVPWAVQWBVFVBVPWAQVSACGTUOVFVCVQWBQVTB
    DHTUOUIVEVAWCPQVDABUJUKULVHVJUMUNVMVKVGVIUPUQUR $.

  $( A set of three pairs is a function if their first members are different.
     (Contributed by Alexander van der Vekens, 5-Dec-2017.) $)
  funtpg $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                   /\ ( A e. F /\ B e. G /\ C e. H )
                   /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
                 -> Fun { <. X , A >. , <. Y , B >. , <. Z , C >. } ) $=
    ( wcel w3a wne cop wfun wceq syl wn cpr csn cun ctp cdm cin c0 3simpa simp1
    funprg syl3an simp13 simp23 funsng syl2anc 3ad2ant2 dmpropg dmsnopg ineq12d
    wa wo elpri w3o nner eqcoms 3mix2 3mix3 jaoi 3ianorr disjsn sylibr 3ad2ant3
    con2i eqtrd funun syl21anc df-tp funeqi ) JDMZKHMZLIMZNZAEMZBFMZCGMZNZJKOZJ
    LOZKLOZNZNZJAPZKBPZUAZLCPZUBZUCZQZWLWMWOUDZQWKWNQZWPQZWNUEZWPUEZUFZUGRWRWBV
    SVTUTWFWCWDUTZWJWGWTVSVTWAUHWCWDWEUHZWGWHWIUIJKABDHEFUJUKWKWAWEXAVSVTWAWFWJ
    ULWBWCWDWEWJUMZLCIGUNUOWKXDJKUAZLUBZUFZUGWKXBXHXCXIWKXEXBXHRWFWBXEWJXFUPJAK
    BEFUQSWKWEXCXIRXGLCGURSUSWJWBXJUGRZWFWJLXHMZTXKXLWJXLLJRZLKRZVAZWJTZLJKVBXO
    WGTZWHTZWITZVCZXPXMXTXNXMXRXTXRJLJLVDVEXRXQXSVFSXNXSXTXSKLKLVDVEXSXQXRVGSVH
    WGWHWIVISSVMXHLVJVKVLVNWNWPVOVPWSWQWLWMWOVQVRVK $.

  ${
    funpr.1 $e |- A e. _V $.
    funpr.2 $e |- B e. _V $.
    funpr.3 $e |- C e. _V $.
    funpr.4 $e |- D e. _V $.
    $( A function with a domain of two elements.  (Contributed by Jeff Madsen,
       20-Jun-2010.) $)
    funpr $p |- ( A =/= B -> Fun { <. A , C >. , <. B , D >. } ) $=
      ( cvv wcel wa wne cop cpr wfun pm3.2i funprg mp3an12 ) AIJZBIJZKCIJZDIJZK
      ABLACMBDMNOSTEFPUAUBGHPABCDIIIIQR $.
  $}

  ${
    funtp.1 $e |- A e. _V $.
    funtp.2 $e |- B e. _V $.
    funtp.3 $e |- C e. _V $.
    funtp.4 $e |- D e. _V $.
    funtp.5 $e |- E e. _V $.
    funtp.6 $e |- F e. _V $.
    $( A function with a domain of three elements.  (Contributed by NM,
       14-Sep-2011.) $)
    funtp $p |- ( ( A =/= B /\ A =/= C /\ B =/= C )
                    -> Fun { <. A , D >. , <. B , E >. , <. C , F >. } ) $=
      ( wne cop csn wfun wa cin c0 wceq w3a cpr cun ctp funpr funsn jctir df-pr
      cdm dmprop eqtri dmsnop ineq12i disjsn2 anim12i sylib syl5eq funun syl2an
      undisj1 3impb df-tp funeqi sylibr ) ABMZACMZBCMZUAADNZBENZUBZCFNZOZUCZPZV
      HVIVKUDZPVEVFVGVNVEVJPZVLPZQVJUIZVLUIZRZSTVNVFVGQZVEVPVQABDEGHJKUECFILUFU
      GWAVTAOZBOZUCZCOZRZSVRWDVSWEVRABUBWDADBEJKUJABUHUKCFLULUMWAWBWERSTZWCWERS
      TZQWFSTVFWGVGWHACUNBCUNUOWBWCWEUTUPUQVJVLURUSVAVOVMVHVIVKVBVCVD $.
  $}

  ${
    fnsn.1 $e |- A e. _V $.
    fnsn.2 $e |- B e. _V $.
    $( Functionality and domain of the singleton of an ordered pair.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    fnsn $p |- { <. A , B >. } Fn { A } $=
      ( cvv wcel cop csn wfn fnsng mp2an ) AEFBEFABGHAHICDABEEJK $.
  $}

  $( Function with a domain of two different values.  (Contributed by FL,
     26-Jun-2011.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  fnprg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) /\ A =/= B )
         -> { <. A , C >. , <. B , D >. } Fn { A , B } ) $=
    ( wcel wa wne w3a cop cpr wfun cdm wceq wfn funprg dmpropg 3ad2ant2 df-fn
    sylanbrc ) AEIBFIJZCGIDHIJZABKZLACMBDMNZOUGPABNZQZUGUHRABCDEFGHSUEUDUIUFACB
    DGHTUAUGUHUBUC $.

  $( Function with a domain of three different values.  (Contributed by
     Alexander van der Vekens, 5-Dec-2017.) $)
  fntpg $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                  /\ ( A e. F /\ B e. G /\ C e. H )
                  /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
           -> { <. X , A >. , <. Y , B >. , <. Z , C >. } Fn { X , Y , Z } ) $=
    ( wcel w3a wne cop cdm wceq csn cun ctp wfun wfn funtpg wa dmsnopg 3ad2ant1
    cpr 3ad2ant2 jca uneq12 syl df-pr syl6eqr dmeqi eqeq1i dmun sylibr 3ad2ant3
    bitri uneq12d df-tp eqtri 3eqtr4g df-fn sylanbrc ) JDMKHMLIMNZAEMZBFMZCGMZN
    ZJKOJLOKLONZNZJAPZKBPZLCPZUAZUBVQQZJKLUAZRVQVSUCABCDEFGHIJKLUDVMVNVOUHZQZVP
    SZQZTZJKUHZLSZTVRVSVMWAWEWCWFVMVNSZQZVOSZQZTZWERZWAWERZVMWKJSZKSZTZWEVMWHWN
    RZWJWORZUEZWKWPRVKVGWSVLVKWQWRVHVIWQVJJAEUFUGVIVHWRVJKBFUFUIUJUIWHWNWJWOUKU
    LJKUMUNWMWGWITZQZWERWLWAXAWEVTWTVNVOUMUOUPXAWKWEWGWIUQUPUTURVKVGWCWFRZVLVJV
    HXBVILCGUFUSUIVAVRVTWBTZQWDVQXCVNVOVPVBUOVTWBUQVCJKLVBVDVQVSVEVF $.

  ${
    fntp.1 $e |- A e. _V $.
    fntp.2 $e |- B e. _V $.
    fntp.3 $e |- C e. _V $.
    fntp.4 $e |- D e. _V $.
    fntp.5 $e |- E e. _V $.
    fntp.6 $e |- F e. _V $.
    $( A function with a domain of three elements.  (Contributed by NM,
       14-Sep-2011.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    fntp $p |- ( ( A =/= B /\ A =/= C /\ B =/= C )
          -> { <. A , D >. , <. B , E >. , <. C , F >. } Fn { A , B , C } ) $=
      ( wne w3a cop ctp wfun cdm wceq wfn funtp dmtpop a1i df-fn sylanbrc ) ABM
      ACMBCMNZADOBEOCFOPZQUGRABCPZSZUGUHTABCDEFGHIJKLUAUIUFADBECFJKLUBUCUGUHUDU
      E $.
  $}

  $( The empty set is a function.  Theorem 10.3 of [Quine] p. 65.  (Contributed
     by NM, 7-Apr-1998.) $)
  fun0 $p |- Fun (/) $=
    ( c0 cop csn wss wfun 0ss 0ex funsn funss mp2 ) AAABCZDKEAEKFAAGGHAKIJ $.

  $( The double converse of a function is a function.  (Contributed by NM,
     21-Sep-2004.) $)
  funcnvcnv $p |- ( Fun A -> Fun `' `' A ) $=
    ( ccnv wss wfun wi cnvcnvss funss ax-mp ) ABBZACADIDEAFIAGH $.

  ${
    $d f g x y z w v A $.  $d x y B $.  $d x y R $.
    $( A simpler equivalence for single-rooted (see ~ funcnv ).  (Contributed
       by NM, 9-Aug-2004.) $)
    funcnv2 $p |- ( Fun `' A <-> A. y E* x x A y ) $=
      ( ccnv wfun cv wbr wmo wrel relcnv dffun6 mpbiran brcnv mobii albii bitri
      wal vex ) CDZEZBFZAFZSGZAHZBQZUBUACGZAHZBQTSIUECJBASKLUDUGBUCUFAUAUBCBRAR
      MNOP $.

    $( The converse of a class is a function iff the class is single-rooted,
       which means that for any ` y ` in the range of ` A ` there is at most
       one ` x ` such that ` x A y ` .  Definition of single-rooted in
       [Enderton] p. 43.  See ~ funcnv2 for a simpler version.  (Contributed by
       NM, 13-Aug-2004.) $)
    funcnv $p |- ( Fun `' A <-> A. y e. ran A E* x x A y ) $=
      ( cv wbr wmo wal crn wcel wi ccnv wfun wral wa vex pm4.71ri mobii moanimv
      brelrn bitri albii funcnv2 df-ral 3bitr4i ) ADZBDZCEZAFZBGUFCHZIZUHJZBGCK
      LUHBUIMUHUKBUHUJUGNZAFUKUGULAUGUJUEUFCAOBOSPQUJUGARTUAABCUBUHBUIUCUD $.

    $( A condition showing a class is single-rooted.  (See ~ funcnv ).
       (Contributed by NM, 26-May-2006.) $)
    funcnv3 $p |- ( Fun `' A <-> A. y e. ran A E! x e. dom A x A y ) $=
      ( cv wbr wmo crn wral wex ccnv wfun cdm wreu wcel dfrn2 abeq2i biimpi weu
      wa vex biantrurd ralbiia funcnv df-reu breldm pm4.71ri eu5 3bitr2i ralbii
      eubii 3bitr4i ) ADZBDZCEZAFZBCGZHUNAIZUOSZBUPHCJKUNACLZMZBUPHUOURBUPUMUPN
      ZUQUOVAUQUQBUPABCOPQUAUBABCUCUTURBUPUTULUSNZUNSZARUNARURUNAUSUDUNVCAUNVBU
      LUMCATBTUEUFUJUNAUGUHUIUK $.
  $}

  ${
    $d x y z A $.
    $( Another way of expressing that a class is single-rooted.  Counterpart to
       ~ dffun2 .  (Contributed by Jim Kingdon, 24-Dec-2018.) $)
    funcnveq $p |- ( Fun `' A <->
        A. x A. y A. z ( ( x A y /\ z A y ) -> x = z ) ) $=
      ( ccnv wfun cv wbr wa weq wi wal wrel relcnv dffun2 mpbiran alcom anbi12i
      vex brcnv imbi1i 2albii albii 3bitri ) DEZFZBGZAGZUEHZUGCGZUEHZIZACJZKZCL
      ZALBLZUOBLZALUHUGDHZUJUGDHZIZUMKZCLBLZALUFUEMUPDNBACUEOPUOBAQUQVBAUNVABCU
      LUTUMUIURUKUSUGUHDBSZASTUGUJDVCCSTRUAUBUCUD $.
  $}

  ${
    $d f g x y z w v A $.  $d x y B $.  $d x y R $.
    $( The double converse of a class is a function iff the class is
       single-valued.  Each side is equivalent to Definition 6.4(2) of
       [TakeutiZaring] p. 23, who use the notation "Un(A)" for single-valued.
       Note that ` A ` is not necessarily a function.  (Contributed by NM,
       13-Aug-2004.) $)
    fun2cnv $p |- ( Fun `' `' A <-> A. x E* y x A y ) $=
      ( ccnv wfun cv wbr wmo wal funcnv2 vex brcnv mobii albii bitri ) CDZDEBFZ
      AFZPGZBHZAIRQCGZBHZAIBAPJTUBASUABQRCBKAKLMNO $.

    $( A single-valued relation is a function.  (See ~ fun2cnv for
       "single-valued.") Definition 6.4(4) of [TakeutiZaring] p. 24.
       (Contributed by NM, 17-Jan-2006.) $)
    svrelfun $p |- ( Fun A <-> ( Rel A /\ Fun `' `' A ) ) $=
      ( vx vy wfun wrel cv wbr wmo wal wa ccnv dffun6 fun2cnv anbi2i bitr4i ) A
      DAEZBFCFAGCHBIZJPAKKDZJBCALRQPBCAMNO $.

    $( Single-rootedness (see ~ funcnv ) of a class cut down by a cross
       product.  (Contributed by NM, 5-Mar-2007.) $)
    fncnv $p |- ( `' ( R i^i ( A X. B ) ) Fn B <->
                  A. y e. B E! x e. A x R y ) $=
      ( cxp cin ccnv wfn wfun cdm wceq wa cv wbr wral wmo wcel wi 3bitr4i df-fn
      crn wreu df-rn eqeq1i anbi2i wrex wrmo rninxp anbi1i funcnv raleq moanimv
      biimt w3a brinxp2 3anan12 bitri mobii df-rmo imbi2i ralbiia syl6bb syl5bb
      syl6rbbr pm5.32i r19.26 ancom reu5 ralbii 3bitr2i ) ECDFGZHZDIVMJZVMKZDLZ
      MVNVLUBZDLZMZANZBNZEOZACUCZBDPZVMDUAVRVPVNVQVODVLUDUEUFVRVNMZWBACUGZWBACU
      HZMZBDPZVSWDVRWGBDPZMWFBDPZWJMWEWIVRWKWJABCDEUIUJVRVNWJVNVTWAVLOZAQZBVQPZ
      VRWJABVLUKVRWNWMBDPWJWMBVQDULWMWGBDWADRZWGWOWGSZWMWOWGUNWOVTCRZWBMZMZAQWO
      WRAQZSWMWPWOWRAUMWLWSAWLWQWOWBUOWSVTWACDEUPWQWOWBUQURUSWGWTWOWBACUTVATVEV
      BVCVDVFWFWGBDVGTVNVRVHWCWHBDWBACVIVJTVK $.

    $( Two ways of stating that ` A ` is one-to-one (but not necessarily a
       function).  Each side is equivalent to Definition 6.4(3) of
       [TakeutiZaring] p. 24, who use the notation "Un_2 (A)" for one-to-one
       (but not necessarily a function).  (Contributed by NM, 17-Jan-2006.) $)
    fun11 $p |- ( ( Fun `' `' A /\ Fun `' A ) <->
         A. x A. y A. z A. w ( ( x A y /\ z A w ) -> ( x = z <-> y = w ) ) ) $=
      ( cv wbr wa weq wi wal ccnv wfun bi2.04 anbi12i 2albii alcom albii 3bitri
      19.26-2 wb dfbi2 imbi2i pm4.76 nfv breq1 anbi1d imbi1d equsal bitri breq2
      3bitr2i bitr2i wmo fun2cnv mo4 funcnv2 alrot4 3bitr4i ) CFZBFZEGZUTDFZEGZ
      HZBDIZJZBKZDKZCKZAFZVCEGZVDHZACIZJZAKZDKCKZHZVKVAEGZVDHZVNVFUAZJZBKAKZDKC
      KZELZLMZWEMZHWBDKCKBKAKWDVHVPHZDKCKVRWCWHCDWCVNVTVFJZJZVFVTVNJZJZHZBKAKWJ
      BKAKZWLBKZAKZHWHWBWMABWBVTVNVFJZVFVNJZHZJVTWQJZVTWRJZHWMWAWSVTVNVFUBUCVTW
      QWRUDWTWJXAWLVTVNVFNVTVFVNNOULPWJWLABTWNVHWPVPWNWJAKZBKVHWJABQXBVGBWIVGAC
      VGAUEVNVTVEVFVNVSVBVDVKUTVAEUFUGUHUIRUJWOVOAWKVOBDVOBUEVFVTVMVNVFVSVLVDVA
      VCVKEUKUGUHUIROSPVHVPCDTUMWFVJWGVQWFVBBUNZCKVGDKBKZCKVJCBEUOXCXDCVBVDBDVA
      VCUTEUKUPRXDVICVGBDQRSWGVLAUNZDKVOCKAKZDKZVQADEUQXEXFDVLVDACVKUTVCEUFUPRX
      GVPCKZDKVQXFXHDVOACQRVPDCQUJSOWBABCDURUS $.

    $( The union of a chain (with respect to inclusion) of functions is a
       function.  (Contributed by NM, 10-Aug-2004.) $)
    fununi $p |- ( A. f e. A ( Fun f /\ A. g e. A ( f C_ g \/ g C_ f ) ) ->
                 Fun U. A ) $=
      ( vx vy vz vw vv cv wfun wss wo wral wa wrel wcel weq wi wal wex cuni cop
      funrel adantr ralimi reluni sylibr r19.28av anim1d dffun4 simprbi 19.21bi
      ssel 19.21bbi syl9r adantl anim2d jaod funeq sseq1 orbi12d anbi12d anbi2d
      sseq2 cbvral2v ralcom orcom syl5bb bitri anbi12i anandir 2ralbii r19.26-2
      imp anidm bitr2i 3bitr3i eluni eeanv an4 ancom 2exbii 3bitr2i imbi1i r2al
      19.23v impexp 2albii albii 3bitr2ri 3imtr4i alrimiv alrimivv syl sylanbrc
      ) BIZJZWPCIZKZWRWPKZLZCAMZNZBAMZAUAZOZDIZEIUBZXEPZXGFIUBZXEPZNZEFQZRZFSZE
      SDSZXEJXDWPOZBAMXFXCXQBAWQXQXBWPUCUDUEBAUFUGXDWQXANZCAMZBAMZXPXCXSBAWQXAC
      AUHUEXTXODEXTXNFGIZJZHIZJZNZYAYCKZYCYAKZLZNZHAMZGAMZXHYAPZXJYCPZNZXMRZHAM
      ZGAMZXTXNYJYPGAYIYOHAYEYHYOYEYFYOYGYDYFYORYBYFYNXHYCPZYMNZYDXMYFYLYRYMYAY
      CXHUMUIYDYSXMRZFYDYTFSZDEYDYCOUUAESDSDEFYCUJUKUNULUOUPYBYGYORYDYGYNYLXJYA
      PZNZYBXMYGYMUUBYLYCYAXJUMUQYBUUCXMRZFYBUUDFSZDEYBYAOUUEESDSDEFYAUJUKUNULU
      OUDURVNUEUEXTXTNYBYHNZHAMGAMZYDYHNZHAMGAMZNZXTYKXTUUGXTUUIXRUUFYBYAWRKZWR
      YAKZLZNBCGHAABGQZWQYBXAUUMWPYAUSUUNWSUUKWTUULWPYAWRUTWPYAWRVDVAVBCHQZUUMY
      HYBUUOUUKYFUULYGWRYCYAVDWRYCYAUTVAVCVEXTXRBAMCAMUUIXRBCAAVFXRUUHWQYAWPKZW
      PYAKZLZNCBGHAACGQZXAUURWQXAWTWSLUUSUURWSWTVGUUSWTUUPWSUUQWRYAWPUTWRYAWPVD
      VAVHVCBHQZWQYDUURYHWPYCUSUUTUUPYFUUQYGWPYCYAVDWPYCYAUTVAVBVEVIVJXTVOYKUUF
      UUHNZHAMGAMUUJYIUVAGHAAYBYDYHVKVLUUFUUHGHAAVMVPVQXNYAAPZYCAPZNZYNNZHTZGTZ
      XMRUVFXMRZGSZYQXLUVGXMXLYLUVBNZGTZYMUVCNZHTZNUVJUVLNZHTGTUVGXIUVKXKUVMGXH
      AVRHXJAVRVJUVJUVLGHVSUVNUVEGHUVNYNUVDNUVEYLUVBYMUVCVTYNUVDWAVIWBWCWDUVFXM
      GWFYQUVDYORZHSGSUVEXMRZHSZGSUVIYOGHAAWEUVPUVOGHUVDYNXMWGWHUVQUVHGUVEXMHWF
      WIWJWCWKWLWMWNDEFXEUJWO $.

    $( The union of a chain (with respect to inclusion) of single-rooted sets
       is single-rooted.  (See ~ funcnv for "single-rooted" definition.)
       (Contributed by NM, 11-Aug-2004.) $)
    funcnvuni $p |- ( A. f e. A ( Fun `' f /\ A. g e. A ( f C_ g \/ g C_ f ) )
                    -> Fun `' U. A ) $=
      ( vy vx vz vw vv cv ccnv wfun wss wo wral wa wceq wrex wi wal weq cbvrexv
      cab cuni cnveq eqeq2d wcel funeqd sseq1 sseq2 orbi12d ralbidv rspcv funeq
      anbi12d biimprcd cnvss orim12i wb sseq12 syl5ibrcom expd syl6com rexlimdv
      ancoms com23 alrimdv anim12ii syl5bi alrimiv vex eqeq1 rexbidv elab ralab
      df-ral anbi2i imbi12i albii bitr2i sylib fununi cnvuni cnvex dfiun2 eqtri
      syl ciun funeqi sylibr ) BIZJZKZWJCIZLZWMWJLZMZCANZOZBANZDIZEIZJZPZEAQZDU
      BZUCZKZAUCJZKWSFIZKZXIGIZLZXKXILZMZGXENZOZFXENZXGWSXIXBPZEAQZXJXKXBPZEAQZ
      XNRZGSZOZRZFSZXQWSYEFXSXIHIZJZPZHAQWSYDXRYIEHAEHTXBYHXIXAYGUDUEUAWSYIYDHA
      YGAUFWSYHKZYGWMLZWMYGLZMZCANZOZYIYDRWRYOBYGABHTZWLYJWQYNYPWKYHWJYGUDUGYPW
      PYMCAYPWNYKWOYLWJYGWMUHWJYGWMUIUJUKUNULYJYIXJYNYCYIXJYJXIYHUMUOYNYIYBGYNY
      AYIXNYNXTYIXNRZEAXAAUFYNYGXALZXAYGLZMZXTYQRYMYTCXAACETYKYRYLYSWMXAYGUIWMX
      AYGUHUJULYTXTYIXNYTXNXTYIOZYHXBLZXBYHLZMYRUUBYSUUCYGXAUPXAYGUPUQUUAXLUUBX
      MUUCYIXTXLUUBURXIYHXKXBUSVDXKXBXIYHUSUJUTVAVBVCVEVFVGVBVCVHVIXQXIXEUFZXPR
      ZFSYFXPFXEVOUUEYEFUUDXSXPYDXDXSDXIFVJDFTXCXREAWTXIXBVKVLVMXOYCXJXDYAXNGDD
      GTXCXTEAWTXKXBVKVLVNVPVQVRVSVTXEFGWAWFXHXFXHEAXBWGXFEAWBEDAXBXAEVJWCWDWEW
      HWI $.

    $( The union of a chain (with respect to inclusion) of one-to-one functions
       is a one-to-one function.  (Contributed by NM, 11-Aug-2004.) $)
    fun11uni $p |- ( A. f e. A ( ( Fun f /\ Fun `' f ) /\
                   A. g e. A ( f C_ g \/ g C_ f ) ) ->
                   ( Fun U. A /\ Fun `' U. A ) ) $=
      ( cv wfun ccnv wa wo wral cuni simpl anim1i ralimi fununi simpr funcnvuni
      wss syl jca ) BDZEZTFEZGZTCDZQUDTQHCAIZGZBAIZAJZEZUHFEZUGUAUEGZBAIUIUFUKB
      AUCUAUEUAUBKLMABCNRUGUBUEGZBAIUJUFULBAUCUBUEUAUBOLMABCPRS $.
  $}

  ${
    $d x y F $.  $d x y G $.
    $( The intersection with a function is a function.  Exercise 14(a) of
       [Enderton] p. 53.  (Contributed by NM, 19-Mar-2004.)  (Proof shortened
       by Andrew Salmon, 17-Sep-2011.) $)
    funin $p |- ( Fun F -> Fun ( F i^i G ) ) $=
      ( cin wss wfun wi inss1 funss ax-mp ) ABCZADAEJEFABGJAHI $.
  $}

  $( The restriction of a one-to-one function is one-to-one.  (Contributed by
     NM, 25-Mar-1998.) $)
  funres11 $p |- ( Fun `' F -> Fun `' ( F |` A ) ) $=
    ( cres wss ccnv wfun wi resss cnvss funss mp2b ) BACZBDLEZBEZDNFMFGBAHLBIMN
    JK $.

  $( The converse of a restricted function.  (Contributed by NM,
     27-Mar-1998.) $)
  funcnvres $p |- ( Fun `' F -> `' ( F |` A ) = ( `' F |` ( F " A ) ) ) $=
    ( ccnv wfun cima cres cdm df-ima df-rn eqtri reseq2i wceq resss cnvss ax-mp
    crn wss funssres mpan2 syl5req ) BCZDZUABAEZFUABAFZCZGZFZUEUCUFUAUCUDPUFBAH
    UDIJKUBUEUAQZUGUELUDBQUHBAMUDBNOUAUERST $.

  $( Converse of a restricted identity function.  (Contributed by FL,
     4-Mar-2007.) $)
  cnvresid $p |- `' ( _I |` A ) = ( _I |` A ) $=
    ( cid ccnv wceq wfun cres cnvi eqcomi funi funeq cima funcnvres imai syl6eq
    mpbii reseq12i mp2b ) BBCZDZREZBAFZCZUADRBGHSBETIBRJOTUBRBAKZFUAABLRBUCAGAM
    PNQ $.

  $( The converse of a restriction of the converse of a function equals the
     function restricted to the image of its converse.  (Contributed by NM,
     4-May-2005.) $)
  funcnvres2 $p |- ( Fun F -> `' ( `' F |` A ) = ( F |` ( `' F " A ) ) ) $=
    ( wfun ccnv cres cima wceq funcnvcnv funcnvres syl wrel funrel dfrel2 sylib
    reseq1d eqtrd ) BCZBDZAEDZRDZRAFZEZBUAEQTCSUBGBHARIJQTBUAQBKTBGBLBMNOP $.

  $( The image of the preimage of a function.  (Contributed by NM,
     25-May-2004.) $)
  funimacnv $p |- ( Fun F -> ( F " ( `' F " A ) ) = ( A i^i ran F ) ) $=
    ( wfun ccnv cima cres crn cin funcnvres2 rneqd df-ima syl6reqr df-rn ineq2i
    cdm dmres dfdm4 3eqtr2ri syl6eq ) BCZBBDZAEZEZUAAFZDZGZABGZHZTUFBUBFZGUCTUE
    UIABIJBUBKLUHAUAOZHUDOUFUGUJABMNUAAPUDQRS $.

  $( A kind of contraposition law that infers a subclass of an image from a
     preimage subclass.  (Contributed by NM, 25-May-2004.) $)
  funimass1 $p |- ( ( Fun F /\ A C_ ran F ) ->
                 ( ( `' F " A ) C_ B -> A C_ ( F " B ) ) ) $=
    ( ccnv cima wss wfun crn wa imass2 funimacnv wceq dfss biimpi eqcomd sseq1d
    cin sylan9eq syl5ib ) CDAEZBFCTEZCBEZFCGZACHZFZIZAUBFTBCJUFUAAUBUCUEUAAUDQZ
    AACKUEAUGUEAUGLAUDMNORPS $.

  $( A kind of contraposition law that infers an image subclass from a subclass
     of a preimage.  (Contributed by NM, 25-May-2004.) $)
  funimass2 $p |- ( ( Fun F /\ A C_ ( `' F " B ) ) -> ( F " A ) C_ B ) $=
    ( ccnv cima wss wfun imass2 crn cin funimacnv sseq2d inss1 sstr2 mpi syl6bi
    imp sylan2 ) ACDBEZFCGZCAEZCSEZFZUABFZASCHTUCUDTUCUABCIZJZFZUDTUBUFUABCKLUG
    UFBFUDBUEMUAUFBNOPQR $.

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( One direction of ~ imadif .  This direction does not require
       ` Fun ``' F ` .  (Contributed by Jim Kingdon, 25-Dec-2018.) $)
    imadiflem $p |- ( ( F " A ) \ ( F " B ) ) C_ ( F " ( A \ B ) ) $=
      ( vx vy cv wbr wrex wn wa cab cdif cima wcel wex df-rex notbii wal sylibr
      dfima2 alnex 19.29r sylan2br simpl simplr wi simpr ancom imnan bitr4i mpd
      sylib jca32 eldif anbi1i anandir bitri eximi syl2anb difeq12i difab eqtri
      syl ss2abi 3sstr4i ) DFZEFCGZDAHZVGDBHZIZJZEKZVGDABLZHZEKCAMZCBMZLZCVMMVK
      VNEVHVFANZVGJZDOZVFBNZVGJZDOZIZVNVJVGDAPVIWCVGDBPQVTWDJZVFVMNZVGJZDOZVNWE
      VSWBIZJZDOZWHWDVTWIDRWKWBDUAVSWIDUBUCWJWGDWJVSWAIZVGJJZWGWJVSWLVGVSWIUDWJ
      VGWLVRVGWIUEZWJWIVGWLUFZVSWIUGWIVGWAJZIWOWBWPWAVGUHQVGWAUIUJULUKWNUMWGVRW
      LJZVGJWMWFWQVGVFABUNUOVRWLVGUPUQSURVCVGDVMPSUSVDVQVHEKZVIEKZLVLVOWRVPWSDE
      CATDECBTUTVHVIEVAVBDECVMTVE $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( The image of a difference is the difference of images.  (Contributed by
       NM, 24-May-1998.) $)
    imadif $p |- ( Fun `' F ->
                 ( F " ( A \ B ) ) = ( ( F " A ) \ ( F " B ) ) ) $=
      ( vx vy cdif cima cv wbr wrex cab wn wa wcel wex exbii wmo df-rex dfima2
      wi ccnv wfun anandir 19.40 sylbi wal nfv nfe1 funmo vex brcnv mobii sylib
      nfan mopick sylan con2d imnan alrimi ex exancom alnex 3imtr3g anim2d syl5
      eldif anbi1i bitri notbii anbi12i 3imtr4g ss2abdv difab eqtri 3sstr4g wss
      difeq12i imadiflem a1i eqssd ) CUAZUBZCABFZGZCAGZCBGZFZWBDHZEHZCIZDWCJZEK
      WJDAJZWJDBJZLZMZEKZWDWGWBWKWOEWBWHANZWHBNZLZMZWJMZDOZWQWJMZDOZWRWJMZDOZLZ
      MZWKWOXBXDWSWJMZDOZMZWBXHXBXCXIMZDOXKXAXLDWQWSWJUCPXCXIDUDUEWBXJXGXDWBWJW
      SMZDOZXELZDUFZXJXGWBXNXPWBXNMZXODWBXNDWBDUGXMDUHUNXQWRWJLTXOXQWJWRWBWJDQZ
      XNWJWSTWBWIWHWAIZDQXRDWIWAUIXSWJDWIWHCEUJDUJUKULUMWJWSDUOUPUQWRWJURUMUSUT
      WJWSDVAXEDVBVCVDVEWKWHWCNZWJMZDOXBWJDWCRYAXADXTWTWJWHABVFVGPVHWLXDWNXGWJD
      ARWMXFWJDBRVIVJVKVLDECWCSWGWLEKZWMEKZFWPWEYBWFYCDECASDECBSVQWLWMEVMVNVOWG
      WDVPWBABCVRVSVT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( One direction of ~ imain .  This direction does not require
       ` Fun ``' F ` .  (Contributed by Jim Kingdon, 25-Dec-2018.) $)
    imainlem $p |- ( F " ( A i^i B ) ) C_ ( ( F " A ) i^i ( F " B ) ) $=
      ( vx vy cv wbr cin wrex cab wa cima wcel df-rex elin anbi1i anandir sylbi
      wex dfima2 bitri exbii 19.40 anbi12i sylibr ss2abi ineq12i eqtri 3sstr4i
      inab ) DFZEFCGZDABHZIZEJULDAIZULDBIZKZEJZCUMLCALZCBLZHZUNUQEUNUKAMZULKZDS
      ZUKBMZULKZDSZKZUQUNUKUMMZULKZDSZVHULDUMNVKVCVFKZDSVHVJVLDVJVBVEKZULKVLVIV
      MULUKABOPVBVEULQUAUBVCVFDUCRRUOVDUPVGULDANULDBNUDUEUFDECUMTVAUOEJZUPEJZHU
      RUSVNUTVODECATDECBTUGUOUPEUJUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.
    $( The image of an intersection is the intersection of images.
       (Contributed by Paul Chapman, 11-Apr-2009.) $)
    imain $p |- ( Fun `' F ->
                  ( F " ( A i^i B ) ) = ( ( F " A ) i^i ( F " B ) ) ) $=
      ( vx vy vz ccnv cin cima cv wbr wrex cab wcel wex simpr wal df-rex dfima2
      wa wfun wss imainlem a1i eeanv simprll anim12i wi funcnveq biimpi 19.21bi
      weq 19.21bbi imp sylan2 simprrl eqeltrd elin sylanbrc simprlr jca exlimdv
      eximdv syl5bir anbi12i 3imtr4g ss2abdv ineq12i inab eqtri 3sstr4g eqssd
      ex ) CGUAZCABHZIZCAIZCBIZHZVPVSUBVNABCUCUDVNDJZEJZCKZDALZFJZWACKZFBLZTZEM
      ZWBDVOLZEMVSVPVNWGWIEVNVTANZWBTZDOZWDBNZWETZFOZTZVTVONZWBTZDOZWGWIWPWKWNT
      ZFOZDOVNWSWKWNDFUEVNXAWRDVNWTWRFVNWTWRVNWTTZWQWBXBWJVTBNWQVNWJWBWNUFXBVTW
      DBWTVNWBWETZDFULZWKWBWNWEWJWBPWMWEPUGVNXCXDVNXCXDUHZEFVNXEFQEQZDVNXFDQDEF
      CUIUJUKUMUNUOVNWKWMWEUPUQVTABURUSVNWJWBWNUTVAVMVBVCVDWCWLWFWOWBDARWEFBRVE
      WBDVORVFVGVSWCEMZWFEMZHWHVQXGVRXHDECASFECBSVHWCWFEVIVJDECVOSVKVL $.
  $}

  ${
    $d A b x y z $.  $d B b x y z $.  $d C z $.
    $( Lemma for ~ funimaexg .  It constitutes the interesting part of
       ~ funimaexg , in which ` B C_ dom A ` .  (Contributed by Jim Kingdon,
       27-Dec-2018.) $)
    funimaexglem $p |- ( ( Fun A /\ B e. C /\ B C_ dom A ) ->
        ( A " B ) e. _V ) $=
      ( vz vx vy vb wcel wss w3a cv wex wrex wel wi wal wral wa simprbi exbii
      wfun cdm cima cvv wbr cab wmo dffun7 3ad2ant1 ssralv 3ad2ant3 mpd alrimiv
      wrel wceq weu sseq1 biimpar 3adant1 jca dffun8 adantl ssel adantr sylsyld
      simp1 rsp ralrimiv zfrep6 3syl raleq exbidv 3ad2ant2 mpbid 3com12 vtocleg
      wb 3expib 3impib df-rex exancom bitri sylib 19.29 nfcv nfmo1 nfralxy nfe1
      ralbii r19.26 mopick ralimi sylbir alrimi eximi syl syl2anc r19.23v albii
      nfan abss sylibr dfima2 sseq1i vex ssex exlimiv ) AUAZBCHZBAUBZIZJZABUCZD
      KZIZDLZXMUDHZXLEKZFKAUEZEBMZFUFZXNIZDLZXPXLXTFDNZOZFPZDLZYCXLXSYDOZEBQZFP
      ZDLZYGXLXSFUGZEBQZDPZXSYDRZFLZEBQZDLZYKXLYMDXLYLEXJQZYMXHXIYSXKXHAUNZYSEF
      AUHSUIXKXHYSYMOXIYLEBXJUJUKULUMXLXSFXNMZEBQZDLZYRXIXHXKUUCXIXHXKUUCXHXKRU
      UCOGBCGKZBUOZXHXKUUCXHUUEXKUUCXHUUEXKJZUUAEUUDQZDLZUUCUUFUUDXJIZXHRZXSFUP
      ZEUUDQUUHUUFUUIXHUUEXKUUIXHUUEUUIXKUUDBXJUQURUSXHUUEXKVFUTUUJUUKEUUDUUJUU
      KEXJQZEGNZXRXJHZUUKXHUULUUIXHYTUULEFAVASVBUUIUUMUUNOXHUUDXJXRVCVDUUKEXJVG
      VEVHXSEFGDVIVJUUEXHUUHUUCVQXKUUEUUGUUBDUUAEUUDBVKVLVMVNVOVRVPVSVOUUBYQDUU
      AYPEBUUAYDXSRFLYPXSFXNVTYDXSFWAWBWITWCYNYRRYMYQRZDLYKYMYQDWDUUOYJDUUOYIFY
      MYQFYLFEBFBWEZXSFWFWGYPFEBUUPYOFWHWGWTUUOYLYPRZEBQYIYLYPEBWJUUQYHEBXSYDFW
      KWLWMWNWOWPWQYJYFDYIYEFXSYDEBWRWSTWCYBYFDXTFXNXATXBXOYBDXMYAXNEFABXCXDTXB
      XOXQDXMXNDXEXFXGWP $.
  $}

  $( Axiom of Replacement using abbreviations.  Axiom 39(vi) of [Quine]
     p. 284.  Compare Exercise 9 of [TakeutiZaring] p. 29.  (Contributed by NM,
     10-Sep-2006.) $)
  funimaexg $p |- ( ( Fun A /\ B e. C ) -> ( A " B ) e. _V ) $=
    ( wfun wcel cdm cin cima cvv wrel wceq simpl funrel cres crn resres reseq2i
    wa incom df-ima eqtr4i resdm reseq1d syl5eqr rneqd 3eqtr4g inex1g wss inss2
    3syl funimaexglem mp3an3 sylan2 eqeltrrd ) ADZBCEZRZABAFZGZHZABHZIUQUOAJZUT
    VAKUOUPLAMVBAUSNZOABNZOUTVAVBVCVDVBVCAURNZBNZVDVFAURBGZNVCAURBPUSVGABURSQUA
    VBVEABAUBUCUDUEAUSTABTUFUJUPUOUSIEZUTIEZBURCUGUOVHUSURUHVIBURUIAUSIUKULUMUN
    $.

  ${
    zfrep5.1 $e |- B e. _V $.
    $( The image of a set under any function is also a set.  Equivalent of
       Axiom of Replacement.  Axiom 39(vi) of [Quine] p. 284.  Compare Exercise
       9 of [TakeutiZaring] p. 29.  (Contributed by NM, 17-Nov-2002.) $)
    funimaex $p |- ( Fun A -> ( A " B ) e. _V ) $=
      ( wfun cvv wcel cima funimaexg mpan2 ) ADBEFABGEFCABEHI $.
  $}

  ${
    $d x z A $.  $d b x y z $.  $d z ph $.
    $( Part of a study of the Axiom of Replacement used by the Isabelle
       prover.  The object PrimReplace is apparently the image of the function
       encoded by ` ph ( x , y ) ` i.e. the class
       ` ( { <. x , y >. | ph } " A ) ` .  If so, we can prove Isabelle's
       "Axiom of Replacement" conclusion without using the Axiom of
       Replacement, for which I (N. Megill) currently have no explanation.
       (Contributed by NM, 26-Oct-2006.)  (Proof shortened by Mario Carneiro,
       4-Dec-2016.) $)
    isarep1 $p |- ( b e. ( { <. x , y >. | ph } " A ) <->
                 E. x e. A [ b / y ] ph ) $=
      ( vz copab cima wcel wbr wrex wsb vex elima cop wsbc df-br sbsbc 3bitri
      cv opelopabsb sbbii bitr2i rexbii nfs1v nfv sbequ12r cbvrex ) ETZABCGZDHI
      FTZUIUJJZFDKACELZBFLZFDKUMBDKFUIUJDEMNULUNFDULUKUIOUJIACUIPZBUKPZUNUKUIUJ
      QABCUKUIUAUNUOBFLUPUMUOBFACERUBUOBFRUCSUDUNUMFBDUMBFUEUMFUFUMFBUGUHS $.
  $}

  ${
    $d w x y A $.  $d b x y $.  $d y z $.  $d w ph $.  $d z ph $.
    isarep2.1 $e |- A e. _V $.
    isarep2.2 $e |- A. x e. A A. y A. z ( ( ph /\ [ z / y ] ph ) -> y = z ) $.
    $( Part of a study of the Axiom of Replacement used by the Isabelle
       prover.  In Isabelle, the sethood of PrimReplace is apparently
       postulated implicitly by its type signature " ` [ ` i, ` [ ` i, i ` ] `
       => o ` ] ` => i", which automatically asserts that it is a set without
       using any axioms.  To prove that it is a set in Metamath, we need the
       hypotheses of Isabelle's "Axiom of Replacement" as well as the Axiom of
       Replacement in the form ~ funimaex .  (Contributed by NM,
       26-Oct-2006.) $)
    isarep2 $p |- E. w w = ( { <. x , y >. | ph } " A ) $=
      ( copab cima cv wcel wa cvv cres resima resopab wmo wi wal imaeq1i eqtr3i
      wfun funopab wsb weq rspec nfv sylibr moanimv mpbir mpgbir funimaex ax-mp
      mo3 eqeltri isseti ) EABCIZFJZUSBKFLZAMZBCIZFJZNURFOZFJUSVCURFPVDVBFABCFQ
      UAUBVBUCZVCNLVEVACRZBVABCUDVFUTACRZSUTAACDUEMCDUFSDTCTZVGVHBFHUGACDADUHUO
      UIUTACUJUKULVBFGUMUNUPUQ $.
  $}

  $( Equality theorem for function predicate with domain.  (Contributed by NM,
     1-Aug-1994.) $)
  fneq1 $p |- ( F = G -> ( F Fn A <-> G Fn A ) ) $=
    ( wceq wfun cdm wa wfn funeq dmeq eqeq1d anbi12d df-fn 3bitr4g ) BCDZBEZBFZ
    ADZGCEZCFZADZGBAHCAHOPSRUABCIOQTABCJKLBAMCAMN $.

  $( Equality theorem for function predicate with domain.  (Contributed by NM,
     1-Aug-1994.) $)
  fneq2 $p |- ( A = B -> ( F Fn A <-> F Fn B ) ) $=
    ( wceq wfun cdm wa wfn eqeq2 anbi2d df-fn 3bitr4g ) ABDZCEZCFZADZGNOBDZGCAH
    CBHMPQNABOIJCAKCBKL $.

  ${
    fneq1d.1 $e |- ( ph -> F = G ) $.
    $( Equality deduction for function predicate with domain.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    fneq1d $p |- ( ph -> ( F Fn A <-> G Fn A ) ) $=
      ( wceq wfn wb fneq1 syl ) ACDFCBGDBGHEBCDIJ $.
  $}

  ${
    fneq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function predicate with domain.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    fneq2d $p |- ( ph -> ( F Fn A <-> F Fn B ) ) $=
      ( wceq wfn wb fneq2 syl ) ABCFDBGDCGHEBCDIJ $.
  $}

  ${
    fneq12d.1 $e |- ( ph -> F = G ) $.
    fneq12d.2 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function predicate with domain.  (Contributed by
       NM, 26-Jun-2011.) $)
    fneq12d $p |- ( ph -> ( F Fn A <-> G Fn B ) ) $=
      ( wfn fneq1d fneq2d bitrd ) ADBHEBHECHABDEFIABCEGJK $.
  $}

  $( Equality theorem for function predicate with domain.  (Contributed by
     Thierry Arnoux, 31-Jan-2017.) $)
  fneq12 $p |- ( ( F = G /\ A = B ) -> ( F Fn A <-> G Fn B ) ) $=
    ( wceq wa simpl simpr fneq12d ) CDEZABEZFABCDJKGJKHI $.

  ${
    fneq1i.1 $e |- F = G $.
    $( Equality inference for function predicate with domain.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    fneq1i $p |- ( F Fn A <-> G Fn A ) $=
      ( wceq wfn wb fneq1 ax-mp ) BCEBAFCAFGDABCHI $.
  $}

  ${
    fneq2i.1 $e |- A = B $.
    $( Equality inference for function predicate with domain.  (Contributed by
       NM, 4-Sep-2011.) $)
    fneq2i $p |- ( F Fn A <-> F Fn B ) $=
      ( wceq wfn wb fneq2 ax-mp ) ABECAFCBFGDABCHI $.
  $}

  ${
    nffn.1 $e |- F/_ x F $.
    nffn.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for a function with domain.
       (Contributed by NM, 30-Jan-2004.) $)
    nffn $p |- F/ x F Fn A $=
      ( wfn wfun cdm wceq wa df-fn nffun nfdm nfeq nfan nfxfr ) CBFCGZCHZBIZJAC
      BKQSAACDLARBACDMENOP $.
  $}

  $( A function with domain is a function.  (Contributed by NM, 1-Aug-1994.) $)
  fnfun $p |- ( F Fn A -> Fun F ) $=
    ( wfn wfun cdm wceq df-fn simplbi ) BACBDBEAFBAGH $.

  $( A function with domain is a relation.  (Contributed by NM, 1-Aug-1994.) $)
  fnrel $p |- ( F Fn A -> Rel F ) $=
    ( wfn wfun wrel fnfun funrel syl ) BACBDBEABFBGH $.

  $( The domain of a function.  (Contributed by NM, 2-Aug-1994.) $)
  fndm $p |- ( F Fn A -> dom F = A ) $=
    ( wfn wfun cdm wceq df-fn simprbi ) BACBDBEAFBAGH $.

  ${
    funfni.1 $e |- ( ( Fun F /\ B e. dom F ) -> ph ) $.
    $( Inference to convert a function and domain antecedent.  (Contributed by
       NM, 22-Apr-2004.) $)
    funfni $p |- ( ( F Fn A /\ B e. A ) -> ph ) $=
      ( wfn wcel wa wfun cdm fnfun adantr fndm eleq2d biimpar syl2anc ) DBFZCBG
      ZHDIZCDJZGZAQSRBDKLQUARQTBCBDMNOEP $.
  $}

  $( A function has a unique domain.  (Contributed by NM, 11-Aug-1994.) $)
  fndmu $p |- ( ( F Fn A /\ F Fn B ) -> A = B ) $=
    ( wfn cdm fndm sylan9req ) CADCBDACEBACFBCFG $.

  $( The first argument of binary relation on a function belongs to the
     function's domain.  (Contributed by NM, 7-May-2004.) $)
  fnbr $p |- ( ( F Fn A /\ B F C ) -> B e. A ) $=
    ( wfn wbr cdm wcel wrel fnrel releldm sylan fndm eleq2d biimpa syldan ) DAE
    ZBCDFZBDGZHZBAHZQDIRTADJBCDKLQTUAQSABADMNOP $.

  $( The first argument of an ordered pair in a function belongs to the
     function's domain.  (Contributed by NM, 8-Aug-1994.) $)
  fnop $p |- ( ( F Fn A /\ <. B , C >. e. F ) -> B e. A ) $=
    ( cop wcel wfn wbr df-br fnbr sylan2br ) BCEDFDAGBCDHBAFBCDIABCDJK $.

  ${
    $d x y F $.  $d x y B $.  $d x A $.
    $( There is exactly one value of a function.  (Contributed by NM,
       22-Apr-2004.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    fneu $p |- ( ( F Fn A /\ B e. A ) -> E! y B F y ) $=
      ( cv wbr weu wfun cdm wa wmo funmo adantr wex wb eldmg ibi adantl exmoeu2
      wcel syl mpbid funfni ) CAEDFZAGZBCDDHZCDIZTZJZUDAKZUEUFUJUHACDLMUIUDANZU
      JUEOUHUKUFUHUKACDUGPQRUDASUAUBUC $.

    $( There is exactly one value of a function.  (Contributed by NM,
       7-Nov-1995.) $)
    fneu2 $p |- ( ( F Fn A /\ B e. A ) -> E! y <. B , y >. e. F ) $=
      ( wfn wcel wa cv wbr weu cop fneu df-br eubii sylib ) DBECBFGCAHZDIZAJCPK
      DFZAJABCDLQRACPDMNO $.
  $}

  $( The union of two functions with disjoint domains.  (Contributed by NM,
     22-Sep-2004.) $)
  fnun $p |- ( ( ( F Fn A /\ G Fn B ) /\ ( A i^i B ) = (/) ) ->
             ( F u. G ) Fn ( A u. B ) ) $=
    ( wfn wa cin c0 wceq cun wfun cdm wi df-fn ineq12 eqeq1d funun syl6bir dmun
    anbi2d uneq12 syl5eq jctird syl6ibr expd impcom an4s syl2anb imp ) CAEZDBEZ
    FABGZHIZCDJZABJZEZUJCKZCLZAIZFDKZDLZBIZFUMUPMZUKCANDBNUQUTUSVBVCUSVBFZUQUTF
    ZVCVDVEUMUPVDVEUMFZUNKZUNLZUOIZFUPVDVFVGVIVDVFVEURVAGZHIZFVGVDVKUMVEVDVJULH
    URAVABOPTCDQRVDVHURVAJUOCDSURAVABUAUBUCUNUONUDUEUFUGUHUI $.

  ${
    fnunop.x $e |- ( ph -> X e. _V ) $.
    fnunop.y $e |- ( ph -> Y e. _V ) $.
    fnunop.f $e |- ( ph -> F Fn D ) $.
    fnunop.g $e |- G = ( F u. { <. X , Y >. } ) $.
    fnunop.e $e |- E = ( D u. { X } ) $.
    fnunop.d $e |- ( ph -> -. X e. D ) $.
    $( Extension of a function with a new ordered pair.  (Contributed by NM,
       28-Sep-2013.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    fnunsn $p |- ( ph -> G Fn E ) $=
      ( cop csn cun wfn cvv wcel sylibr cin c0 fnsng syl2anc wn disjsn syl21anc
      wceq fnun fneq1i fneq2i bitri ) ADFGNOZPZBFOZPZQZECQZADBQUMUOQZBUOUAUBUHZ
      UQJAFRSGRSUSHIFGRRUCUDAFBSUEUTMBFUFTBUODUMUIUGURUNCQUQCEUNKUJCUPUNLUKULT
      $.
  $}

  $( Composition of two functions.  (Contributed by NM, 22-May-2006.) $)
  fnco $p |- ( ( F Fn A /\ G Fn B /\ ran G C_ A ) -> ( F o. G ) Fn B ) $=
    ( wfn crn wss w3a ccom wfun cdm wceq fnfun funco syl2an 3adant3 fndm sseq2d
    wa biimpar dmcosseq syl 3adant2 3ad2ant2 eqtrd df-fn sylanbrc ) CAEZDBEZDFZ
    AGZHZCDIZJZUMKZBLUMBEUHUIUNUKUHCJDJUNUIACMBDMCDNOPULUODKZBUHUKUOUPLZUIUHUKS
    UJCKZGZUQUHUSUKUHURAUJACQRTCDUAUBUCUIUHUPBLUKBDQUDUEUMBUFUG $.

  $( A function does not change when restricted to its domain.  (Contributed by
     NM, 5-Sep-2004.) $)
  fnresdm $p |- ( F Fn A -> ( F |` A ) = F ) $=
    ( wfn wrel cdm wss cres wceq fnrel fndm eqimss syl relssres syl2anc ) BACZB
    DBEZAFZBAGBHABIOPAHQABJPAKLBAMN $.

  $( A function restricted to a class disjoint with its domain is empty.
     (Contributed by NM, 23-Sep-2004.) $)
  fnresdisj $p |- ( F Fn A -> ( ( A i^i B ) = (/) <-> ( F |` B ) = (/) ) ) $=
    ( cres c0 wceq cdm wfn wrel wb relres reldm0 ax-mp dmres incom eqtri ineq1d
    cin fndm syl5eq eqeq1d syl5rbb ) CBDZEFZUCGZEFZCAHZABRZEFUCIUDUFJCBKUCLMUGU
    EUHEUGUECGZBRZUHUEBUIRUJCBNBUIOPUGUIABACSQTUAUB $.

  $( Membership in two functions restricted by each other's domain.
     (Contributed by NM, 8-Aug-1994.) $)
  2elresin $p |- ( ( F Fn A /\ G Fn B ) ->
                 ( ( <. x , y >. e. F /\ <. x , z >. e. G ) <->
                   ( <. x , y >. e. ( F |` ( A i^i B ) ) /\
                     <. x , z >. e. ( G |` ( A i^i B ) ) ) ) ) $=
    ( wfn wa cv cop wcel cin cres fnop anim12i vex opres resss sseli wi anbi12d
    an4s elin sylibr biimprd syl ex pm2.43d impbid1 ) FDHZGEHZIZAJZBJZKZFLZUNCJ
    ZKZGLZIZUPFDEMZNZLZUSGVBNZLZIZUMVAVGUMVAVAVGUAZUMVAIZUNVBLZVHVIUNDLZUNELZIZ
    VJUKUQULUTVMUKUQIVKULUTIVLDUNUOFOEUNURGOPUCUNDEUDUEVJVGVAVJVDUQVFUTUNUOFVBB
    QRUNURGVBCQRUBUFUGUHUIVDUQVFUTVCFUPFVBSTVEGUSGVBSTPUJ $.

  $( Restriction of a function with a subclass of its domain.  (Contributed by
     NM, 10-Oct-2007.) $)
  fnssresb $p |- ( F Fn A -> ( ( F |` B ) Fn B <-> B C_ A ) ) $=
    ( cres wfn wfun cdm wceq wa wss df-fn fnfun funres biantrurd ssdmres sseq2d
    syl fndm syl5bbr bitr3d syl5bb ) CBDZBEUBFZUBGBHZIZCAEZBAJZUBBKUFUDUEUGUFUC
    UDUFCFUCACLBCMQNUDBCGZJUFUGBCOUFUHABACRPSTUA $.

  $( Restriction of a function with a subclass of its domain.  (Contributed by
     NM, 2-Aug-1994.) $)
  fnssres $p |- ( ( F Fn A /\ B C_ A ) -> ( F |` B ) Fn B ) $=
    ( wfn cres wss fnssresb biimpar ) CADCBEBDBAFABCGH $.

  $( Restriction of a function's domain with an intersection.  (Contributed by
     NM, 9-Aug-1994.) $)
  fnresin1 $p |- ( F Fn A -> ( F |` ( A i^i B ) ) Fn ( A i^i B ) ) $=
    ( wfn cin wss cres inss1 fnssres mpan2 ) CADABEZAFCKGKDABHAKCIJ $.

  $( Restriction of a function's domain with an intersection.  (Contributed by
     NM, 9-Aug-1994.) $)
  fnresin2 $p |- ( F Fn A -> ( F |` ( B i^i A ) ) Fn ( B i^i A ) ) $=
    ( wfn cin wss cres inss2 fnssres mpan2 ) CADBAEZAFCKGKDBAHAKCIJ $.

  ${
    $d x y A $.  $d x y F $.
    $( An equivalence for functionality of a restriction.  Compare ~ dffun8 .
       (Contributed by Mario Carneiro, 20-May-2015.) $)
    fnres $p |- ( ( F |` A ) Fn A <-> A. x e. A E! y x F y ) $=
      ( cres wfun cdm wa cv wbr wmo wral ancom wal wcel vex mpbiran 3bitr4i wss
      bitri wceq wex wfn wi brres mobii moanimv albii wrel relres dffun6 df-ral
      weu dmres inss1 eqsstri eqss dfss3 elin2 baib eldm syl6bb ralbiia anbi12i
      cin r19.26 df-fn eu5 ralbii ) DCEZFZVJGZCUAZHZAIZBIZDJZBUBZVQBKZHZACLZVJC
      UCVQBUMZACLVSACLZVRACLZHWDWCHVNWAWCWDMVKWCVMWDVOVPVJJZBKZANZVOCOZVSUDZANV
      KWCWFWIAWFWHVQHZBKWIWEWJBWEVQWHHWJVOVPDCBPUEVQWHMTUFWHVQBUGTUHVKVJUIWGDCU
      JABVJUKQVSACULRVMCVLSZWDVMVLCSWKVLCDGZVECDCUNZCWLUOUPVLCUQQWKVOVLOZACLWDA
      CVLURWNVRACWHWNVOWLOZVRWNWHWOVOCWLVLWMUSUTBVODAPVAVBVCTTVDVRVSACVFRVJCVGW
      BVTACVQBVHVIR $.
  $}

  $( Functionality and domain of restricted identity.  (Contributed by NM,
     27-Aug-2004.) $)
  fnresi $p |- ( _I |` A ) Fn A $=
    ( cid cres wfn wfun cdm wceq funi funres ax-mp dmresi df-fn mpbir2an ) BACZ
    ADNEZNFAGBEOHABIJAKNALM $.

  $( The image of a function's domain is its range.  (Contributed by NM,
     4-Nov-2004.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fnima $p |- ( F Fn A -> ( F " A ) = ran F ) $=
    ( wfn cima cres crn df-ima fnresdm rneqd syl5eq ) BACZBADBAEZFBFBAGKLBABHIJ
    $.

  ${
    $d x y F $.
    $( A function with empty domain is empty.  (Contributed by NM,
       15-Apr-1998.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    fn0 $p |- ( F Fn (/) <-> F = (/) ) $=
      ( wfn wceq wrel cdm fnrel fndm reldm0 biimpar syl2anc wfun fun0 dm0 df-fn
      c0 mpbir2an fneq1 mpbiri impbii ) AOBZAOCZTADZAEOCZUAOAFOAGUBUAUCAHIJUATO
      OBZUDOKOEOCLMOONPOAOQRS $.
  $}

  $( A class that is disjoint with the domain of a function has an empty image
     under the function.  (Contributed by FL, 24-Jan-2007.) $)
  fnimadisj $p |- ( ( F Fn A /\ ( A i^i C ) = (/) ) -> ( F " C ) = (/) ) $=
    ( wfn cin c0 wceq wa cdm cima fndm ineq1d eqeq1d biimpar imadisj sylibr ) C
    ADZABEZFGZHCIZBEZFGZCBJFGQUBSQUARFQTABACKLMNCBOP $.

  $( Images under a function never map nonempty sets to empty sets.
     (Contributed by Stefan O'Rear, 21-Jan-2015.) $)
  fnimaeq0 $p |- ( ( F Fn A /\ B C_ A ) ->
      ( ( F " B ) = (/) <-> B = (/) ) ) $=
    ( cima c0 wceq cdm cin wfn wa imadisj incom fndm sseq2d biimpar df-ss sylib
    wss syl5eq eqeq1d syl5bb ) CBDEFCGZBHZEFCAIZBARZJZBEFCBKUFUCBEUFUCBUBHZBUBB
    LUFBUBRZUGBFUDUHUEUDUBABACMNOBUBPQSTUA $.

  ${
    $d y z A $.  $d y z B $.  $d x y z $.
    $( Alternate definition for the "maps to" notation ~ df-mpt .  (Contributed
       by Mario Carneiro, 30-Dec-2016.) $)
    dfmpt3 $p |- ( x e. A |-> B ) = U_ x e. A ( { x } X. { B } ) $=
      ( vy vz cmpt cv wcel wceq copab csn cxp ciun df-mpt cop wex anbi2i 2exbii
      wa elsn eliunxp elopab 3bitr4i eqriv eqtr4i ) ABCFAGZBHZDGZCIZSZADJZABUFK
      CKZLMZADBCNEUMUKEGZUFUHOIZUGUHULHZSZSZDPAPUOUJSZDPAPUNUMHUNUKHURUSADUQUJU
      OUPUIUGDCTQQRADBULUNUAUJADUNUBUCUDUE $.
  $}

  ${
    $d x y z A $.  $d z F $.  $d x y z w $.
    fnopabg.1 $e |- F = { <. x , y >. | ( x e. A /\ ph ) } $.
    $( Functionality and domain of an ordered-pair class abstraction.
       (Contributed by NM, 30-Jan-2004.)  (Proof shortened by Mario Carneiro,
       4-Dec-2016.) $)
    fnopabg $p |- ( A. x e. A E! y ph <-> F Fn A ) $=
      ( wmo wex wa wral cv wcel copab wfn weu wfun cdm wceq wal 3bitr4i moanimv
      wi albii funopab df-ral 3bitr4ri dmopab3 anbi12i r19.26 df-fn ancom bitri
      eu5 ralbii fneq1i ) ACGZACHZIZBDJZBKDLZAIZBCMZDNZACOZBDJEDNUPBDJZUQBDJZIV
      BPZVBQDRZIUSVCVEVGVFVHVACGZBSUTUPUBZBSVGVEVIVJBUTACUAUCVABCUDUPBDUEUFABCD
      UGUHUPUQBDUIVBDUJTVDURBDVDUQUPIURACUMUQUPUKULUNDEVBFUOT $.
  $}

  ${
    $d x y A $.
    fnopab.1 $e |- ( x e. A -> E! y ph ) $.
    fnopab.2 $e |- F = { <. x , y >. | ( x e. A /\ ph ) } $.
    $( Functionality and domain of an ordered-pair class abstraction.
       (Contributed by NM, 5-Mar-1996.) $)
    fnopab $p |- F Fn A $=
      ( weu wral wfn rgen fnopabg mpbi ) ACHZBDIEDJNBDFKABCDEGLM $.
  $}

  ${
    $d x y A $.  $d y B $.
    mptfng.1 $e |- F = ( x e. A |-> B ) $.
    $( The maps-to notation defines a function with domain.  (Contributed by
       Scott Fenton, 21-Mar-2011.) $)
    mptfng $p |- ( A. x e. A B e. _V <-> F Fn A ) $=
      ( vy cvv wcel wral cv wceq weu wfn eueq ralbii cmpt wa copab df-mpt eqtri
      fnopabg bitri ) CGHZABIFJCKZFLZABIDBMUCUEABFCNOUDAFBDDABCPAJBHUDQAFREAFBC
      STUAUB $.

    $( The maps-to notation defines a function with domain.  (Contributed by
       NM, 9-Apr-2013.) $)
    fnmpt $p |- ( A. x e. A B e. V -> F Fn A ) $=
      ( wcel wral cvv wfn elex ralimi mptfng sylib ) CEGZABHCIGZABHDBJOPABCEKLA
      BCDFMN $.
  $}

  $( A mapping operation with empty domain.  (Contributed by Mario Carneiro,
     28-Dec-2014.) $)
  mpt0 $p |- ( x e. (/) |-> A ) = (/) $=
    ( c0 cmpt wfn wceq cvv wcel wral ral0 eqid fnmpt ax-mp fn0 mpbi ) ACBDZCEZP
    CFBGHZACIQRAJACBPGPKLMPNO $.

  ${
    $d x y A $.  $d y B $.
    fnmpti.1 $e |- B e. _V $.
    fnmpti.2 $e |- F = ( x e. A |-> B ) $.
    $( Functionality and domain of an ordered-pair class abstraction.
       (Contributed by NM, 29-Jan-2004.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    fnmpti $p |- F Fn A $=
      ( cvv wcel wral wfn rgenw mptfng mpbi ) CGHZABIDBJNABEKABCDFLM $.

    $( Domain of an ordered-pair class abstraction that specifies a function.
       (Contributed by NM, 6-Sep-2005.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    dmmpti $p |- dom F = A $=
      ( wfn cdm wceq fnmpti fndm ax-mp ) DBGDHBIABCDEFJBDKL $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Union of mappings which are mutually compatible.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    mptun $p |- ( x e. ( A u. B ) |-> C ) =
        ( ( x e. A |-> C ) u. ( x e. B |-> C ) ) $=
      ( vy cmpt cv wcel wceq wa copab df-mpt uneq12i wo elun anbi1i andir bitri
      cun eqtr4i opabbii unopab ) ABCSZDFAGZUCHZEGDIZJZAEKZABDFZACDFZSZAEUCDLUK
      UDBHZUFJZAEKZUDCHZUFJZAEKZSZUHUIUNUJUQAEBDLAECDLMUHUMUPNZAEKURUGUSAEUGULU
      ONZUFJUSUEUTUFUDBCOPULUOUFQRUAUMUPAEUBTTT $.
  $}

  $( Equality theorem for functions.  (Contributed by NM, 1-Aug-1994.) $)
  feq1 $p |- ( F = G -> ( F : A --> B <-> G : A --> B ) ) $=
    ( wceq wfn crn wss wa wf fneq1 rneq sseq1d anbi12d df-f 3bitr4g ) CDEZCAFZC
    GZBHZIDAFZDGZBHZIABCJABDJQRUATUCACDKQSUBBCDLMNABCOABDOP $.

  $( Equality theorem for functions.  (Contributed by NM, 1-Aug-1994.) $)
  feq2 $p |- ( A = B -> ( F : A --> C <-> F : B --> C ) ) $=
    ( wceq wfn crn wss wa wf fneq2 anbi1d df-f 3bitr4g ) ABEZDAFZDGCHZIDBFZQIAC
    DJBCDJOPRQABDKLACDMBCDMN $.

  $( Equality theorem for functions.  (Contributed by NM, 1-Aug-1994.) $)
  feq3 $p |- ( A = B -> ( F : C --> A <-> F : C --> B ) ) $=
    ( wceq wfn crn wss wa wf sseq2 anbi2d df-f 3bitr4g ) ABEZDCFZDGZAHZIPQBHZIC
    ADJCBDJORSPABQKLCADMCBDMN $.

  $( Equality theorem for functions.  (Contributed by FL, 14-Jul-2007.)  (Proof
     shortened by Andrew Salmon, 17-Sep-2011.) $)
  feq23 $p |- ( ( A = C /\ B = D ) -> ( F : A --> B <-> F : C --> D ) ) $=
    ( wceq wf feq2 feq3 sylan9bb ) ACFABEGCBEGBDFCDEGACBEHBDCEIJ $.

  ${
    feq1d.1 $e |- ( ph -> F = G ) $.
    $( Equality deduction for functions.  (Contributed by NM, 19-Feb-2008.) $)
    feq1d $p |- ( ph -> ( F : A --> B <-> G : A --> B ) ) $=
      ( wceq wf wb feq1 syl ) ADEGBCDHBCEHIFBCDEJK $.
  $}

  ${
    feq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq2d $p |- ( ph -> ( F : A --> C <-> F : B --> C ) ) $=
      ( wceq wf wb feq2 syl ) ABCGBDEHCDEHIFBCDEJK $.
  $}

  ${
    feq12d.1 $e |- ( ph -> F = G ) $.
    feq12d.2 $e |- ( ph -> A = B ) $.
    $( Equality deduction for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq12d $p |- ( ph -> ( F : A --> C <-> G : B --> C ) ) $=
      ( wf feq1d feq2d bitrd ) ABDEIBDFICDFIABDEFGJABCDFHKL $.

    feq123d.3 $e |- ( ph -> C = D ) $.
    $( Equality deduction for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq123d $p |- ( ph -> ( F : A --> C <-> G : B --> D ) ) $=
      ( wf feq12d wceq wb feq3 syl bitrd ) ABDFKCDGKZCEGKZABCDFGHILADEMRSNJDECG
      OPQ $.
  $}

  $( Equality theorem for functions.  (Contributed by FL, 16-Nov-2008.) $)
  feq123 $p |- ( ( F = G /\ A = C /\ B = D ) ->
    ( F : A --> B <-> G : C --> D ) ) $=
    ( wceq w3a simp1 simp2 simp3 feq123d ) EFGZACGZBDGZHACBDEFMNOIMNOJMNOKL $.

  ${
    feq1i.1 $e |- F = G $.
    $( Equality inference for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq1i $p |- ( F : A --> B <-> G : A --> B ) $=
      ( wceq wf wb feq1 ax-mp ) CDFABCGABDGHEABCDIJ $.
  $}

  ${
    feq2i.1 $e |- A = B $.
    $( Equality inference for functions.  (Contributed by NM, 5-Sep-2011.) $)
    feq2i $p |- ( F : A --> C <-> F : B --> C ) $=
      ( wceq wf wb feq2 ax-mp ) ABFACDGBCDGHEABCDIJ $.
  $}

  ${
    feq23i.1 $e |- A = C $.
    feq23i.2 $e |- B = D $.
    $( Equality inference for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq23i $p |- ( F : A --> B <-> F : C --> D ) $=
      ( wceq wf wb feq23 mp2an ) ACHBDHABEICDEIJFGABCDEKL $.
  $}

  ${
    feq23d.1 $e |- ( ph -> A = C ) $.
    feq23d.2 $e |- ( ph -> B = D ) $.
    $( Equality deduction for functions.  (Contributed by NM, 8-Jun-2013.) $)
    feq23d $p |- ( ph -> ( F : A --> B <-> F : C --> D ) ) $=
      ( eqidd feq123d ) ABDCEFFAFIGHJ $.
  $}

  ${
    $d y F $.  $d y A $.  $d y B $.  $d x y $.
    nff.1 $e |- F/_ x F $.
    nff.2 $e |- F/_ x A $.
    nff.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a mapping.  (Contributed by NM,
       29-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nff $p |- F/ x F : A --> B $=
      ( wf wfn crn wss wa df-f nffn nfrn nfss nfan nfxfr ) BCDHDBIZDJZCKZLABCDM
      SUAAABDEFNATCADEOGPQR $.
  $}

  ${
    $d V x $.  $d X x $.
    $( Distribute proper substitution through the function predicate with a
       domain.  (Contributed by Alexander van der Vekens, 15-Jul-2018.) $)
    sbcfng $p |- ( X e. V -> ( [. X / x ]. F Fn A
                              <-> [_ X / x ]_ F Fn [_ X / x ]_ A ) ) $=
      ( wcel wfn wsbc wfun cdm wa csb wb df-fn a1i sbcbidv sbcfung sbceqg bitrd
      wceq csbdmg eqeq1d anbi12d sbcan 3bitr4g ) EDFZCBGZAEHCIZCJZBTZKZAEHZAECL
      ZAEBLZGZUFUGUKAEUGUKMUFCBNOPUFUHAEHZUJAEHZKUMIZUMJZUNTZKULUOUFUPURUQUTAEC
      DQUFUQAEUILZUNTUTAEUIBDRUFVAUSUNAECDUAUBSUCUHUJAEUDUMUNNUES $.

    $( Distribute proper substitution through the function predicate with
       domain and codomain.  (Contributed by Alexander van der Vekens,
       15-Jul-2018.) $)
    sbcfg $p |- ( X e. V -> ( [. X / x ]. F : A --> B
                 <-> [_ X / x ]_ F : [_ X / x ]_ A --> [_ X / x ]_ B ) ) $=
      ( wcel wf wsbc wfn crn wss wa csb wb df-f a1i sbcbidv sbcfng bitrd sbcssg
      csbrng sseq1d anbi12d sbcan 3bitr4g ) FEGZBCDHZAFIDBJZDKZCLZMZAFIZAFBNZAF
      CNZAFDNZHZUGUHULAFUHULOUGBCDPQRUGUIAFIZUKAFIZMUPUNJZUPKZUOLZMUMUQUGURUTUS
      VBABDEFSUGUSAFUJNZUOLVBAFUJCEUAUGVCVAUOAFDEUBUCTUDUIUKAFUEUNUOUPPUFT $.
  $}

  $( A mapping is a function.  (Contributed by NM, 2-Aug-1994.) $)
  ffn $p |- ( F : A --> B -> F Fn A ) $=
    ( wf wfn crn wss df-f simplbi ) ABCDCAECFBGABCHI $.

  $( Any function is a mapping into ` _V ` .  (Contributed by NM,
     31-Oct-1995.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  dffn2 $p |- ( F Fn A <-> F : A --> _V ) $=
    ( wfn crn cvv wss wa wf ssv biantru df-f bitr4i ) BACZMBDZEFZGAEBHOMNIJAEBK
    L $.

  $( A mapping is a function.  (Contributed by NM, 3-Aug-1994.) $)
  ffun $p |- ( F : A --> B -> Fun F ) $=
    ( wf wfn wfun ffn fnfun syl ) ABCDCAECFABCGACHI $.

  $( A mapping is a relation.  (Contributed by NM, 3-Aug-1994.) $)
  frel $p |- ( F : A --> B -> Rel F ) $=
    ( wf wfn wrel ffn fnrel syl ) ABCDCAECFABCGACHI $.

  $( The domain of a mapping.  (Contributed by NM, 2-Aug-1994.) $)
  fdm $p |- ( F : A --> B -> dom F = A ) $=
    ( wf wfn cdm wceq ffn fndm syl ) ABCDCAECFAGABCHACIJ $.

  ${
    fdmi.1 $e |- F : A --> B $.
    $( The domain of a mapping.  (Contributed by NM, 28-Jul-2008.) $)
    fdmi $p |- dom F = A $=
      ( wf cdm wceq fdm ax-mp ) ABCECFAGDABCHI $.
  $}

  $( The range of a mapping.  (Contributed by NM, 3-Aug-1994.) $)
  frn $p |- ( F : A --> B -> ran F C_ B ) $=
    ( wf wfn crn wss df-f simprbi ) ABCDCAECFBGABCHI $.

  $( A function maps to its range.  (Contributed by NM, 1-Sep-1999.) $)
  dffn3 $p |- ( F Fn A <-> F : A --> ran F ) $=
    ( wfn crn wss wa wf ssid biantru df-f bitr4i ) BACZLBDZMEZFAMBGNLMHIAMBJK
    $.

  $( Expanding the codomain of a mapping.  (Contributed by NM, 10-May-1998.)
     (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fss $p |- ( ( F : A --> B /\ B C_ C ) -> F : A --> C ) $=
    ( wss wf wfn crn wa sstr2 com12 anim2d df-f 3imtr4g impcom ) BCEZABDFZACDFZ
    PDAGZDHZBEZISTCEZIQRPUAUBSUAPUBTBCJKLABDMACDMNO $.

  ${
    fssd.f $e |- ( ph -> F : A --> B ) $.
    fssd.b $e |- ( ph -> B C_ C ) $.
    $( Expanding the codomain of a mapping, deduction form.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.) $)
    fssd $p |- ( ph -> F : A --> C ) $=
      ( wf wss fss syl2anc ) ABCEHCDIBDEHFGBCDEJK $.
  $}

  $( Composition of two mappings.  (Contributed by NM, 29-Aug-1999.)  (Proof
     shortened by Andrew Salmon, 17-Sep-2011.) $)
  fco $p |- ( ( F : B --> C /\ G : A --> B ) -> ( F o. G ) : A --> C ) $=
    ( wf wa ccom wfn crn wss df-f wi fnco 3expib adantr rncoss sstr mpan adantl
    jctird imp syl2anb sylibr ) BCDFZABEFZGDEHZAIZUGJZCKZGZACUGFUEDBIZDJZCKZGZE
    AIZEJBKZGZUKUFBCDLABELUOURUKUOURUHUJULURUHMUNULUPUQUHBADENOPUNUJULUIUMKUNUJ
    DEQUIUMCRSTUAUBUCACUGLUD $.

  $( Functionality of a composition with weakened out of domain condition on
     the first argument.  (Contributed by Stefan O'Rear, 11-Mar-2015.) $)
  fco2 $p |- ( ( ( F |` B ) : B --> C /\ G : A --> B ) ->
      ( F o. G ) : A --> C ) $=
    ( cres wf wa ccom fco wceq crn wss frn cores syl adantl feq1d mpbid ) BCDBF
    ZGZABEGZHZACTEIZGACDEIZGABCTEJUCACUDUEUBUDUEKZUAUBELBMUFABENDEBOPQRS $.

  $( A mapping is a class of ordered pairs.  (Contributed by NM, 3-Aug-1994.)
     (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fssxp $p |- ( F : A --> B -> F C_ ( A X. B ) ) $=
    ( wf cdm crn cxp wrel wss frel relssdmrn syl wceq fdm eqimss xpss12 syl2anc
    frn sstrd ) ABCDZCCEZCFZGZABGZTCHCUCIABCJCKLTUAAIZUBBIUCUDITUAAMUEABCNUAAOL
    ABCRUAAUBBPQS $.

  $( A function with bounded domain and range is a set.  This version is proven
     without the Axiom of Replacement.  (Contributed by Mario Carneiro,
     24-Jun-2015.) $)
  fex2 $p |- ( ( F : A --> B /\ A e. V /\ B e. W ) -> F e. _V ) $=
    ( wf wcel w3a cxp cvv xpexg 3adant1 wss fssxp 3ad2ant1 ssexd ) ABCFZADGZBEG
    ZHCABIZJRSTJGQABDEKLQRCTMSABCNOP $.

  $( Two ways of specifying a partial function from ` A ` to ` B ` .
     (Contributed by NM, 13-Nov-2007.) $)
  funssxp $p |- ( ( Fun F /\ F C_ ( A X. B ) ) <->
             ( F : dom F --> B /\ dom F C_ A ) ) $=
    ( wfun cxp wss wa cdm wf wfn funfn biimpi rnss rnxpss syl6ss anim12i sylibr
    crn df-f jca dmss dmxpss adantl ffun adantr fssxp xpss1 sylan9ss impbii ) C
    DZCABEZFZGZCHZBCIZUNAFZGZUMUOUPUMCUNJZCRZBFZGUOUJURULUTUJURCKLULUSUKRBCUKMA
    BNOPUNBCSQULUPUJULUNUKHACUKUAABUBOUCTUQUJULUOUJUPUNBCUDUEUOUPCUNBEUKUNBCUFU
    NABUGUHTUI $.

  $( A mapping is a partial function.  (Contributed by NM, 25-Nov-2007.) $)
  ffdm $p |- ( F : A --> B -> ( F : dom F --> B /\ dom F C_ A ) ) $=
    ( wf cdm wss fdm feq2d ibir wceq eqimss syl jca ) ABCDZCEZBCDZOAFZNPNOABCAB
    CGZHINOAJQROAKLM $.

  $( The members of an ordered pair element of a mapping belong to the
     mapping's domain and codomain.  (Contributed by NM, 10-Dec-2003.)
     (Revised by Mario Carneiro, 26-Apr-2015.) $)
  opelf $p |- ( ( F : A --> B /\ <. C , D >. e. F ) ->
              ( C e. A /\ D e. B ) ) $=
    ( wf cop wcel wa cxp fssxp sseld opelxp syl6ib imp ) ABEFZCDGZEHZCAHDBHIZPR
    QABJZHSPETQABEKLCDABMNO $.

  $( The union of two functions with disjoint domains.  (Contributed by NM,
     22-Sep-2004.) $)
  fun $p |- ( ( ( F : A --> C /\ G : B --> D ) /\ ( A i^i B ) = (/) ) ->
             ( F u. G ) : ( A u. B ) --> ( C u. D ) ) $=
    ( cin c0 wceq wf wa cun wfn crn wss fnun expcom wi rnun df-f unss12 anim12d
    syl5eqss a1i anbi12i an4 bitri 3imtr4g impcom ) ABGHIZACEJZBDFJZKZABLZCDLZE
    FLZJZUJEAMZFBMZKZENZCOZFNZDOZKZKZUPUNMZUPNZUOOZKUMUQUJUTVGVEVIUTUJVGABEFPQV
    EVIRUJVEVHVAVCLUOEFSVACVCDUAUCUDUBUMURVBKZUSVDKZKVFUKVJULVKACETBDFTUEURVBUS
    VDUFUGUNUOUPTUHUI $.

  $( The union of two functions with disjoint domains.  (Contributed by Mario
     Carneiro, 12-Mar-2015.) $)
  fun2 $p |- ( ( ( F : A --> C /\ G : B --> C ) /\ ( A i^i B ) = (/) ) ->
             ( F u. G ) : ( A u. B ) --> C ) $=
    ( wf wa cin c0 wceq cun fun wb unidm feq3 ax-mp sylib ) ACDFBCEFGABHIJGABKZ
    CCKZDEKZFZRCTFZABCCDELSCJUAUBMCNSCRTOPQ $.

  $( Composition of two functions.  (Contributed by NM, 22-May-2006.) $)
  fnfco $p |- ( ( F Fn A /\ G : B --> A ) -> ( F o. G ) Fn B ) $=
    ( wf wfn crn wss wa ccom df-f fnco 3expb sylan2b ) BADECAFZDBFZDGAHZICDJBFZ
    BADKOPQRABCDLMN $.

  $( Restriction of a function with a subclass of its domain.  (Contributed by
     NM, 23-Sep-2004.) $)
  fssres $p |- ( ( F : A --> B /\ C C_ A ) -> ( F |` C ) : C --> B ) $=
    ( wf wss cres wfn crn df-f fnssres resss rnss ax-mp sstr mpan anim12i an32s
    wa sylanb sylibr ) ABDEZCAFZSDCGZCHZUDIZBFZSZCBUDEUBDAHZDIZBFZSUCUHABDJUIUC
    UKUHUIUCSUEUKUGACDKUFUJFZUKUGUDDFULDCLUDDMNUFUJBOPQRTCBUDJUA $.

  $( Restriction of a restricted function with a subclass of its domain.
     (Contributed by NM, 21-Jul-2005.) $)
  fssres2 $p |- ( ( ( F |` A ) : A --> B /\ C C_ A ) ->
                ( F |` C ) : C --> B ) $=
    ( cres wf wss wa fssres wb resabs1 feq1d adantl mpbid ) ABDAEZFZCAGZHCBOCEZ
    FZCBDCEZFZABCOIQSUAJPQCBRTDCAKLMN $.

  $( An identity for the mapping relationship under restriction.  (Contributed
     by Scott Fenton, 4-Sep-2011.)  (Proof shortened by Mario Carneiro,
     26-May-2016.) $)
  fresin $p |- ( F : A --> B -> ( F |` X ) : ( A i^i X ) --> B ) $=
    ( wf cin cres wss inss1 fssres mpan2 resres wfn ffn fnresdm reseq1d syl5eqr
    wceq syl feq1d mpbid ) ABCEZADFZBCUCGZEZUCBCDGZEUBUCAHUEADIABUCCJKUBUCBUDUF
    UBUDCAGZDGUFCADLUBUGCDUBCAMUGCRABCNACOSPQTUA $.

  $( If two functions agree on their common domain, their union contains a
     union of three functions with pairwise disjoint domains.  If we assumed
     the law of the excluded middle, this would be equality rather than
     subset.  (Contributed by Jim Kingdon, 28-Dec-2018.) $)
  resasplitss $p |- ( ( F Fn A /\ G Fn B /\
      ( F |` ( A i^i B ) ) = ( G |` ( A i^i B ) ) ) ->
        ( ( F |` ( A i^i B ) ) u.
          ( ( F |` ( A \ B ) ) u. ( G |` ( B \ A ) ) ) )
        C_ ( F u. G )
      ) $=
    ( wfn cin cres wceq w3a cdif cun uneq1i wss inundifss ssres2 ax-mp eqsstr3i
    resundi syl5eqssr fnresdm unidm un4 simp3 uneq1d uneq2d incom eqsstri mp2an
    unss12 syl6eqss uneq12 syl2an 3adant3 sseqtrd ) CAEZDBEZCABFZGZDUQGZHZIZURC
    ABJZGZDBAJZGZKZKZCAGZDBGZKZCDKZVAVGURURKZVFKZVJVLURVFURUALVAVMURVCKZURVEKZK
    ZVJURVCURVEUBVAVPVNUSVEKZKZVJVAVOVQVNVAURUSVEUOUPUTUCUDUEVNVHMVQVIMVRVJMVNC
    UQVBKZGZVHCUQVBRVSAMVTVHMABNVSACOPQVQDUQVDKZGZVIDUQVDRWABMWBVIMWABAFZVDKBUQ
    WCVDABUFLBANUGWABDOPQVNVHVQVIUIUHUJSSUOUPVJVKHZUTUOVHCHVIDHWDUPACTBDTVHCVID
    UKULUMUN $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.
    $( Composition of a mapping and restricted identity.  (Contributed by NM,
       13-Dec-2003.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    fcoi1 $p |- ( F : A --> B -> ( F o. ( _I |` A ) ) = F ) $=
      ( wf wfn cid cres ccom wceq ffn wfun cdm wa df-fn wss eqimss ccnv reseq1i
      cnvi syl cnveqi cnvresid eqtr2i coeq2i cores2 syl5eq wrel sylan9eqr sylbi
      funrel coi1 ) ABCDCAEZCFAGZHZCIZABCJULCKZCLZAIZMUOCANURUPUNCFHZCURUQAOZUN
      USIUQAPUTUNCFQZAGZQZHUSUMVCCVCUMQUMVBUMVAFASRUAAUBUCUDCFAUEUFTUPCUGUSCICU
      JCUKTUHUIT $.

    $( Composition of restricted identity and a mapping.  (Contributed by NM,
       13-Dec-2003.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    fcoi2 $p |- ( F : A --> B -> ( ( _I |` B ) o. F ) = F ) $=
      ( wf wfn crn wss wa cid cres ccom wceq df-f cores wrel coi2 syl sylan9eqr
      fnrel sylbi ) ABCDCAEZCFBGZHIBJCKZCLABCMUBUAUCICKZCICBNUACOUDCLACSCPQRT
      $.
  $}

  ${
    $d y F $.  $d y A $.  $d y B $.  $d y C $.
    $( There is exactly one value of a function in its codomain.  (Contributed
       by NM, 10-Dec-2003.) $)
    feu $p |- ( ( F : A --> B /\ C e. A ) -> E! y e. B <. C , y >. e. F ) $=
      ( wf wcel wa cv cop weu wreu wfn ffn fneu2 sylan wb opelf simprd ex mpbid
      pm4.71rd eubidv adantr df-reu sylibr ) BCEFZDBGZHZAIZCGZDUJJEGZHZAKZULACL
      UIULAKZUNUGEBMUHUOBCENABDEOPUGUOUNQUHUGULUMAUGULUKUGULUKUGULHUHUKBCDUJERS
      TUBUCUDUAULACUEUF $.
  $}

  ${
    $d x y F $.  $d x y A $.  $d x y B $.
    $( The converse of a restriction of a function.  (Contributed by NM,
       26-Mar-1998.) $)
    fcnvres $p |- ( F : A --> B -> `' ( F |` A ) = ( `' F |` B ) ) $=
      ( vy vx wf cres ccnv relcnv cv cop wcel wa ex pm4.71d vex opelcnv opelres
      bitri syl6bbr relres opelf simpld simprd anbi1i bitr3d eqrelrdv ) ABCFZDE
      CAGZHZCHZBGZUIIUKBUAUHEJZDJZKZCLZUNUMKZUJLZUQULLZUHUPUPUMALZMZURUHUPUTUHU
      PUTUHUPMZUTUNBLZABUMUNCUBZUCNOURUOUILVAUNUMUIDPZEPZQUMUNCAVERSTUHUPUPVCMZ
      USUHUPVCUHUPVCVBUTVCVDUDNOUSUQUKLZVCMVGUNUMUKBVFRVHUPVCUNUMCVEVFQUESTUFUG
      $.
  $}

  $( The preimage of a class disjoint with a mapping's codomain is empty.
     (Contributed by FL, 24-Jan-2007.) $)
  fimacnvdisj $p |- ( ( F : A --> B /\ ( B i^i C ) = (/) ) ->
    ( `' F " C ) = (/) ) $=
    ( wf cin c0 wceq wa ccnv cdm cima wss crn df-rn frn adantr syl5eqssr ssdisj
    sylancom imadisj sylibr ) ABDEZBCFGHZIZDJZKZCFGHZUFCLGHUCUDUGBMUHUEUGDNZBDO
    UCUIBMUDABDPQRUGBCSTUFCUAUB $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    fintm.1 $e |- E. x x e. B $.
    $( Function into an intersection.  (Contributed by Jim Kingdon,
       28-Dec-2018.) $)
    fintm $p |- ( F : A --> |^| B <-> A. x e. B F : A --> x ) $=
      ( wfn crn cint wss wa cv wral wf ssint anbi2i wcel wex wb r19.28mv df-f
      ax-mp bitr4i ralbii 3bitr4i ) DBFZDGZCHZIZJZUEUFAKZIZJZACLZBUGDMBUJDMZACL
      UIUEUKACLZJZUMUHUOUEAUFCNOUJCPAQUMUPREUEUKACSUAUBBUGDTUNULACBUJDTUCUD $.
  $}

  $( Mapping into an intersection.  (Contributed by NM, 14-Sep-1999.)  (Proof
     shortened by Andrew Salmon, 17-Sep-2011.) $)
  fin $p |- ( F : A --> ( B i^i C ) <-> ( F : A --> B /\ F : A --> C ) ) $=
    ( wfn crn cin wss wa wf ssin anbi2i anandi bitr3i df-f anbi12i 3bitr4i ) DA
    EZDFZBCGZHZIZRSBHZIZRSCHZIZIZATDJABDJZACDJZIUBRUCUEIZIUGUJUARSBCKLRUCUEMNAT
    DOUHUDUIUFABDOACDOPQ $.

  ${
    $d A x $.  $d B x $.
    fabexg.1 $e |- F = { x | ( x : A --> B /\ ph ) } $.
    $( Existence of a set of functions.  (Contributed by Paul Chapman,
       25-Feb-2008.) $)
    fabexg $p |- ( ( A e. C /\ B e. D ) -> F e. _V ) $=
      ( wcel wa cxp cvv cpw xpexg pwexg wss cv cab wf fssxp selpw sylibr anim1i
      ss2abi eqsstri ssab2 sstri ssexg mpan 3syl ) CEIDFIJCDKZLIUKMZLIZGLIZCDEF
      NUKLOGULPUMUNGBQZULIZAJZBRZULGCDUOSZAJZBRURHUTUQBUSUPAUSUOUKPUPCDUOTBUKUA
      UBUCUDUEABULUFUGGULLUHUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.
    fabex.1 $e |- A e. _V $.
    fabex.2 $e |- B e. _V $.
    fabex.3 $e |- F = { x | ( x : A --> B /\ ph ) } $.
    $( Existence of a set of functions.  (Contributed by NM, 3-Dec-2007.) $)
    fabex $p |- F e. _V $=
      ( cvv wcel fabexg mp2an ) CIJDIJEIJFGABCDIIEHKL $.
  $}

  $( If a mapping is a set, its domain is a set.  (Contributed by NM,
     27-Aug-2006.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  dmfex $p |- ( ( F e. C /\ F : A --> B ) -> A e. _V ) $=
    ( wf wcel cvv cdm wceq wi fdm dmexg eleq1 syl5ib syl impcom ) ABDEZDCFZAGFZ
    QDHZAIZRSJABDKRTGFUASDCLTAGMNOP $.

  $( The empty function.  (Contributed by NM, 14-Aug-1999.) $)
  f0 $p |- (/) : (/) --> A $=
    ( c0 wf wfn crn wss wceq eqid fn0 mpbir rn0 0ss eqsstri df-f mpbir2an ) BAB
    CBBDZBEZAFPBBGBHBIJQBAKALMBABNO $.

  $( A class is a function with empty codomain iff it and its domain are
     empty.  (Contributed by NM, 10-Dec-2003.) $)
  f00 $p |- ( F : A --> (/) <-> ( F = (/) /\ A = (/) ) ) $=
    ( c0 wf wceq wa wfn wfun cdm ffun crn wss frn ss0 syl dm0rn0 df-fn sylanbrc
    sylibr fn0 sylib fdm eqtr3d jca f0 feq1 feq2 sylan9bb mpbiri impbii ) ACBDZ
    BCEZACEZFZUKULUMUKBCGZULUKBHBIZCEZUOACBJUKBKZCEZUQUKURCLUSACBMURNOBPSZBCQRB
    TUAUKUPACACBUBUTUCUDUNUKCCCDZCUEULUKACCDUMVAACBCUFACCCUGUHUIUJ $.

  ${
    $d x y A $.  $d x y B $.
    fconst.1 $e |- B e. _V $.
    $( A cross product with a singleton is a constant function.  (Contributed
       by NM, 14-Aug-1999.)  (Proof shortened by Andrew Salmon,
       17-Sep-2011.) $)
    fconst $p |- ( A X. { B } ) : A --> { B } $=
      ( vx csn cxp wf wfn crn wss fconstmpt fnmpti rnxpss df-f mpbir2an ) ABEZA
      PFZGQAHQIPJDABQCDABKLAPMAPQNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A cross product with a singleton is a constant function.  (Contributed
       by NM, 19-Oct-2004.) $)
    fconstg $p |- ( B e. V -> ( A X. { B } ) : A --> { B } ) $=
      ( vx cv csn cxp wf wceq sneq xpeq2d feq1 feq3 sylan9bb syl2anc vex fconst
      wb vtoclg ) ADEZFZAUAGZHZABFZAUDGZHZDBCTBIZUBUEIZUAUDIZUCUFRUGUAUDATBJZKU
      JUHUCAUAUEHUIUFAUAUBUELUAUDAUEMNOATDPQS $.
  $}

  $( A cross product with a singleton is a constant function.  (Contributed by
     NM, 24-Jul-2014.) $)
  fnconstg $p |- ( B e. V -> ( A X. { B } ) Fn A ) $=
    ( wcel csn cxp wf wfn fconstg ffn syl ) BCDABEZALFZGMAHABCIALMJK $.

  $( Constant function with loose range.  (Contributed by Stefan O'Rear,
     1-Feb-2015.) $)
  fconst6g $p |- ( B e. C -> ( A X. { B } ) : A --> C ) $=
    ( wcel csn cxp wf wss fconstg snssi fss syl2anc ) BCDABEZAMFZGMCHACNGABCIBC
    JAMCNKL $.

  ${
    fconst6.1 $e |- B e. C $.
    $( A constant function as a mapping.  (Contributed by Jeff Madsen,
       30-Nov-2009.)  (Revised by Mario Carneiro, 22-Apr-2015.) $)
    fconst6 $p |- ( A X. { B } ) : A --> C $=
      ( wcel csn cxp wf fconst6g ax-mp ) BCEACABFGHDABCIJ $.
  $}

  $( Equality theorem for one-to-one functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1eq1 $p |- ( F = G -> ( F : A -1-1-> B <-> G : A -1-1-> B ) ) $=
    ( wceq wf ccnv wfun wa wf1 feq1 cnveq funeqd anbi12d df-f1 3bitr4g ) CDEZAB
    CFZCGZHZIABDFZDGZHZIABCJABDJQRUATUCABCDKQSUBCDLMNABCOABDOP $.

  $( Equality theorem for one-to-one functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1eq2 $p |- ( A = B -> ( F : A -1-1-> C <-> F : B -1-1-> C ) ) $=
    ( wceq wf ccnv wfun wa wf1 feq2 anbi1d df-f1 3bitr4g ) ABEZACDFZDGHZIBCDFZQ
    IACDJBCDJOPRQABCDKLACDMBCDMN $.

  $( Equality theorem for one-to-one functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1eq3 $p |- ( A = B -> ( F : C -1-1-> A <-> F : C -1-1-> B ) ) $=
    ( wceq wf ccnv wfun wa wf1 feq3 anbi1d df-f1 3bitr4g ) ABEZCADFZDGHZICBDFZQ
    ICADJCBDJOPRQABCDKLCADMCBDMN $.

  ${
    $d y F $.  $d y A $.  $d y B $.  $d x y $.
    nff1.1 $e |- F/_ x F $.
    nff1.2 $e |- F/_ x A $.
    nff1.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a one-to-one function.
       (Contributed by NM, 16-May-2004.) $)
    nff1 $p |- F/ x F : A -1-1-> B $=
      ( wf1 wf ccnv wfun wa df-f1 nff nfcnv nffun nfan nfxfr ) BCDHBCDIZDJZKZLA
      BCDMSUAAABCDEFGNATADEOPQR $.
  $}

  ${
    $d x y F $.
    $( Alternate definition of a one-to-one function.  (Contributed by NM,
       31-Dec-1996.) $)
    dff12 $p |- ( F : A -1-1-> B <-> ( F : A --> B /\ A. y E* x x F y ) ) $=
      ( wf1 wf ccnv wfun wa cv wbr wmo wal df-f1 funcnv2 anbi2i bitri ) CDEFCDE
      GZEHIZJSAKBKELAMBNZJCDEOTUASABEPQR $.
  $}

  $( A one-to-one mapping is a mapping.  (Contributed by NM, 31-Dec-1996.) $)
  f1f $p |- ( F : A -1-1-> B -> F : A --> B ) $=
    ( wf1 wf ccnv wfun df-f1 simplbi ) ABCDABCECFGABCHI $.

  $( A one-to-one mapping is a function on its domain.  (Contributed by NM,
     8-Mar-2014.) $)
  f1fn $p |- ( F : A -1-1-> B -> F Fn A ) $=
    ( wf1 wf wfn f1f ffn syl ) ABCDABCECAFABCGABCHI $.

  $( A one-to-one mapping is a function.  (Contributed by NM, 8-Mar-2014.) $)
  f1fun $p |- ( F : A -1-1-> B -> Fun F ) $=
    ( wf1 wfn wfun f1fn fnfun syl ) ABCDCAECFABCGACHI $.

  $( A one-to-one onto mapping is a relation.  (Contributed by NM,
     8-Mar-2014.) $)
  f1rel $p |- ( F : A -1-1-> B -> Rel F ) $=
    ( wf1 wfn wrel f1fn fnrel syl ) ABCDCAECFABCGACHI $.

  $( The domain of a one-to-one mapping.  (Contributed by NM, 8-Mar-2014.) $)
  f1dm $p |- ( F : A -1-1-> B -> dom F = A ) $=
    ( wf1 wfn cdm wceq f1fn fndm syl ) ABCDCAECFAGABCHACIJ $.

  $( A function that is one-to-one is also one-to-one on some superset of its
     range.  (Contributed by Mario Carneiro, 12-Jan-2013.) $)
  f1ss $p |- ( ( F : A -1-1-> B /\ B C_ C ) -> F : A -1-1-> C ) $=
    ( wf1 wss wa wf ccnv wfun f1f fss sylan df-f1 simprbi adantr sylanbrc ) ABD
    EZBCFZGACDHZDIJZACDERABDHZSTABDKABCDLMRUASRUBUAABDNOPACDNQ $.

  $( Combine a one-to-one function with a restriction on the domain.
     (Contributed by Stefan O'Rear, 20-Feb-2015.) $)
  f1ssr $p |- ( ( F : A -1-1-> B /\ ran F C_ C ) -> F : A -1-1-> C ) $=
    ( wf1 crn wss wa wf ccnv wfun f1fn adantr simpr df-f sylanbrc df-f1 simprbi
    wfn ) ABDEZDFCGZHZACDIZDJKZACDEUBDASZUAUCTUEUAABDLMTUANACDOPTUDUATABDIUDABD
    QRMACDQP $.

  $( A function that is one-to-one is also one-to-one on some aubset of its
     domain.  (Contributed by Mario Carneiro, 17-Jan-2015.) $)
  f1ssres $p |- ( ( F : A -1-1-> B /\ C C_ A ) -> ( F |` C ) : C -1-1-> B ) $=
    ( wf1 wss wa cres wf ccnv wfun f1f fssres sylan simprbi funres11 syl adantr
    df-f1 sylanbrc ) ABDEZCAFZGCBDCHZIZUCJKZCBUCEUAABDIZUBUDABDLABCDMNUAUEUBUAD
    JKZUEUAUFUGABDSOCDPQRCBUCST $.

  $( Two ways to express that a set ` A ` (not necessarily a function) is
     one-to-one.  Each side is equivalent to Definition 6.4(3) of
     [TakeutiZaring] p. 24, who use the notation "Un_2 (A)" for one-to-one.  We
     do not introduce a separate notation since we rarely use it.  (Contributed
     by NM, 13-Aug-2004.) $)
  f1cnvcnv $p |- ( `' `' A : dom A -1-1-> _V
             <-> ( Fun `' A /\ Fun `' `' A ) ) $=
    ( cdm cvv ccnv wf1 wf wfun wa df-f1 wfn dffn2 wceq dmcnvcnv mpbiran2 bitr3i
    df-fn wrel relcnv dfrel2 mpbi funeqi anbi12ci bitri ) ABZCADZDZEUDCUFFZUFDZ
    GZHUEGZUFGZHUDCUFIUGUKUIUJUGUFUDJZUKUDUFKULUKUFBUDLAMUFUDPNOUHUEUEQUHUELARU
    ESTUAUBUC $.

  $( Composition of one-to-one functions.  Exercise 30 of [TakeutiZaring]
     p. 25.  (Contributed by NM, 28-May-1998.) $)
  f1co $p |- ( ( F : B -1-1-> C /\ G : A -1-1-> B ) ->
              ( F o. G ) : A -1-1-> C ) $=
    ( wf1 wa ccom wf ccnv wfun df-f1 fco funco cnvco funeqi sylibr anim12i an4s
    ancoms syl2anb ) BCDFZABEFZGACDEHZIZUDJZKZGZACUDFUBBCDIZDJZKZGABEIZEJZKZGUH
    UCBCDLABELUIULUKUNUHUIULGUEUKUNGUGABCDEMUNUKUGUNUKGUMUJHZKUGUMUJNUFUODEOPQT
    RSUAACUDLQ $.

  $( Equality theorem for onto functions.  (Contributed by NM, 1-Aug-1994.) $)
  foeq1 $p |- ( F = G -> ( F : A -onto-> B <-> G : A -onto-> B ) ) $=
    ( wceq wfn crn wa wfo fneq1 rneq eqeq1d anbi12d df-fo 3bitr4g ) CDEZCAFZCGZ
    BEZHDAFZDGZBEZHABCIABDIPQTSUBACDJPRUABCDKLMABCNABDNO $.

  $( Equality theorem for onto functions.  (Contributed by NM, 1-Aug-1994.) $)
  foeq2 $p |- ( A = B -> ( F : A -onto-> C <-> F : B -onto-> C ) ) $=
    ( wceq wfn crn wa wfo fneq2 anbi1d df-fo 3bitr4g ) ABEZDAFZDGCEZHDBFZPHACDI
    BCDINOQPABDJKACDLBCDLM $.

  $( Equality theorem for onto functions.  (Contributed by NM, 1-Aug-1994.) $)
  foeq3 $p |- ( A = B -> ( F : C -onto-> A <-> F : C -onto-> B ) ) $=
    ( wceq wfn crn wa wfo eqeq2 anbi2d df-fo 3bitr4g ) ABEZDCFZDGZAEZHOPBEZHCAD
    ICBDINQROABPJKCADLCBDLM $.

  ${
    $d y F $.  $d y A $.  $d y B $.  $d x y $.
    nffo.1 $e |- F/_ x F $.
    nffo.2 $e |- F/_ x A $.
    nffo.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for an onto function.  (Contributed by
       NM, 16-May-2004.) $)
    nffo $p |- F/ x F : A -onto-> B $=
      ( wfo wfn crn wceq wa df-fo nffn nfrn nfeq nfan nfxfr ) BCDHDBIZDJZCKZLAB
      CDMSUAAABDEFNATCADEOGPQR $.
  $}

  $( An onto mapping is a mapping.  (Contributed by NM, 3-Aug-1994.) $)
  fof $p |- ( F : A -onto-> B -> F : A --> B ) $=
    ( wfn crn wceq wa wss wfo wf eqimss anim2i df-fo df-f 3imtr4i ) CADZCEZBFZG
    PQBHZGABCIABCJRSPQBKLABCMABCNO $.

  $( An onto mapping is a function.  (Contributed by NM, 29-Mar-2008.) $)
  fofun $p |- ( F : A -onto-> B -> Fun F ) $=
    ( wfo wf wfun fof ffun syl ) ABCDABCECFABCGABCHI $.

  $( An onto mapping is a function on its domain.  (Contributed by NM,
     16-Dec-2008.) $)
  fofn $p |- ( F : A -onto-> B -> F Fn A ) $=
    ( wfo wf wfn fof ffn syl ) ABCDABCECAFABCGABCHI $.

  $( The codomain of an onto function is its range.  (Contributed by NM,
     3-Aug-1994.) $)
  forn $p |- ( F : A -onto-> B -> ran F = B ) $=
    ( wfo wfn crn wceq df-fo simprbi ) ABCDCAECFBGABCHI $.

  $( Alternate definition of an onto function.  (Contributed by NM,
     22-Mar-2006.) $)
  dffo2 $p |- ( F : A -onto-> B <-> ( F : A --> B /\ ran F = B ) ) $=
    ( wfo wf crn wceq wa fof forn jca wfn ffn df-fo biimpri sylan impbii ) ABCD
    ZABCEZCFBGZHRSTABCIABCJKSCALZTRABCMRUATHABCNOPQ $.

  $( The image of the domain of an onto function.  (Contributed by NM,
     29-Nov-2002.) $)
  foima $p |- ( F : A -onto-> B -> ( F " A ) = B ) $=
    ( wfo cdm cima crn imadmrn wf wceq fof fdm syl imaeq2d forn 3eqtr3a ) ABCDZ
    CCEZFCGCAFBCHQRACQABCIRAJABCKABCLMNABCOP $.

  $( A function maps onto its range.  (Contributed by NM, 10-May-1998.) $)
  dffn4 $p |- ( F Fn A <-> F : A -onto-> ran F ) $=
    ( wfn crn wceq wa wfo eqid biantru df-fo bitr4i ) BACZLBDZMEZFAMBGNLMHIAMBJ
    K $.

  $( A function maps its domain onto its range.  (Contributed by NM,
     23-Jul-2004.) $)
  funforn $p |- ( Fun A <-> A : dom A -onto-> ran A ) $=
    ( wfun cdm wfn crn wfo funfn dffn4 bitri ) ABAACZDJAEAFAGJAHI $.

  $( An onto function has unique domain and range.  (Contributed by NM,
     5-Nov-2006.) $)
  fodmrnu $p |- ( ( F : A -onto-> B /\ F : C -onto-> D ) ->
                ( A = C /\ B = D ) ) $=
    ( wfo wa wceq wfn fofn fndmu syl2an crn forn sylan9req jca ) ABEFZCDEFZGACH
    ZBDHQEAIECISRABEJCDEJACEKLQRBEMDABENCDENOP $.

  $( Restriction of a function.  (Contributed by NM, 4-Mar-1997.) $)
  fores $p |- ( ( Fun F /\ A C_ dom F ) ->
              ( F |` A ) : A -onto-> ( F " A ) ) $=
    ( wfun cdm wss cres cima wfo funres anim1i wfn wceq df-fn crn df-ima eqcomi
    wa df-fo mpbiran2 ssdmres anbi2i 3bitr4i sylibr ) BCZABDEZQBAFZCZUEQZABAGZU
    FHZUDUGUEABIJUFAKZUGUFDALZQUJUHUFAMUJUKUFNZUILUIUMBAOPAUIUFRSUEULUGABTUAUBU
    C $.

  $( Composition of onto functions.  (Contributed by NM, 22-Mar-2006.) $)
  foco $p |- ( ( F : B -onto-> C /\ G : A -onto-> B ) ->
             ( F o. G ) : A -onto-> C ) $=
    ( wfo wa ccom crn wceq dffo2 fco ad2ant2r cdm fdm eqtr3 sylan rncoeq eqeq1d
    wf biimpar an32s adantrl jca syl2anb sylibr ) BCDFZABEFZGACDEHZTZUIIZCJZGZA
    CUIFUGBCDTZDIZCJZGZABETZEIZBJZGZUMUHBCDKABEKUQVAGUJULUNURUJUPUTABCDELMUQUTU
    LURUNUTUPULUNUTGDNZUSJZUPULUNVBBJUTVCBCDOVBUSBPQVCULUPVCUKUOCDERSUAQUBUCUDU
    EACUIKUF $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1oeq1 $p |- ( F = G -> ( F : A -1-1-onto-> B <-> G : A -1-1-onto-> B ) ) $=
    ( wceq wf1 wfo wa wf1o f1eq1 foeq1 anbi12d df-f1o 3bitr4g ) CDEZABCFZABCGZH
    ABDFZABDGZHABCIABDIOPRQSABCDJABCDKLABCMABDMN $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1oeq2 $p |- ( A = B -> ( F : A -1-1-onto-> C <-> F : B -1-1-onto-> C ) ) $=
    ( wceq wf1 wfo wa wf1o f1eq2 foeq2 anbi12d df-f1o 3bitr4g ) ABEZACDFZACDGZH
    BCDFZBCDGZHACDIBCDIOPRQSABCDJABCDKLACDMBCDMN $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1oeq3 $p |- ( A = B -> ( F : C -1-1-onto-> A <-> F : C -1-1-onto-> B ) ) $=
    ( wceq wf1 wfo wa wf1o f1eq3 foeq3 anbi12d df-f1o 3bitr4g ) ABEZCADFZCADGZH
    CBDFZCBDGZHCADICBDIOPRQSABCDJABCDKLCADMCBDMN $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by FL,
     14-Jul-2012.) $)
  f1oeq23 $p |- ( ( A = B /\ C = D ) ->
   ( F : A -1-1-onto-> C <-> F : B -1-1-onto-> D ) ) $=
    ( wceq wf1o f1oeq2 f1oeq3 sylan9bb ) ABFACEGBCEGCDFBDEGABCEHCDBEIJ $.

  ${
    f1eq123d.1 $e |- ( ph -> F = G ) $.
    f1eq123d.2 $e |- ( ph -> A = B ) $.
    f1eq123d.3 $e |- ( ph -> C = D ) $.
    $( Equality deduction for one-to-one functions.  (Contributed by Mario
       Carneiro, 27-Jan-2017.) $)
    f1eq123d $p |- ( ph -> ( F : A -1-1-> C <-> G : B -1-1-> D ) ) $=
      ( wf1 wceq wb f1eq1 syl f1eq2 f1eq3 3bitrd ) ABDFKZBDGKZCDGKZCEGKZAFGLSTM
      HBDFGNOABCLTUAMIBCDGPOADELUAUBMJDECGQOR $.

    $( Equality deduction for onto functions.  (Contributed by Mario Carneiro,
       27-Jan-2017.) $)
    foeq123d $p |- ( ph -> ( F : A -onto-> C <-> G : B -onto-> D ) ) $=
      ( wfo wceq wb foeq1 syl foeq2 foeq3 3bitrd ) ABDFKZBDGKZCDGKZCEGKZAFGLSTM
      HBDFGNOABCLTUAMIBCDGPOADELUAUBMJDECGQOR $.

    $( Equality deduction for one-to-one onto functions.  (Contributed by Mario
       Carneiro, 27-Jan-2017.) $)
    f1oeq123d $p |- ( ph ->
      ( F : A -1-1-onto-> C <-> G : B -1-1-onto-> D ) ) $=
      ( wf1o wceq wb f1oeq1 syl f1oeq2 f1oeq3 3bitrd ) ABDFKZBDGKZCDGKZCEGKZAFG
      LSTMHBDFGNOABCLTUAMIBCDGPOADELUAUBMJDECGQOR $.
  $}

  ${
    $d y F $.  $d y A $.  $d y B $.  $d x y $.
    nff1o.1 $e |- F/_ x F $.
    nff1o.2 $e |- F/_ x A $.
    nff1o.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a one-to-one onto function.
       (Contributed by NM, 16-May-2004.) $)
    nff1o $p |- F/ x F : A -1-1-onto-> B $=
      ( wf1o wf1 wfo wa df-f1o nff1 nffo nfan nfxfr ) BCDHBCDIZBCDJZKABCDLQRAAB
      CDEFGMABCDEFGNOP $.
  $}

  $( A one-to-one onto mapping is a one-to-one mapping.  (Contributed by NM,
     12-Dec-2003.) $)
  f1of1 $p |- ( F : A -1-1-onto-> B -> F : A -1-1-> B ) $=
    ( wf1o wf1 wfo df-f1o simplbi ) ABCDABCEABCFABCGH $.

  $( A one-to-one onto mapping is a mapping.  (Contributed by NM,
     12-Dec-2003.) $)
  f1of $p |- ( F : A -1-1-onto-> B -> F : A --> B ) $=
    ( wf1o wf1 wf f1of1 f1f syl ) ABCDABCEABCFABCGABCHI $.

  $( A one-to-one onto mapping is function on its domain.  (Contributed by NM,
     12-Dec-2003.) $)
  f1ofn $p |- ( F : A -1-1-onto-> B -> F Fn A ) $=
    ( wf1o wf wfn f1of ffn syl ) ABCDABCECAFABCGABCHI $.

  $( A one-to-one onto mapping is a function.  (Contributed by NM,
     12-Dec-2003.) $)
  f1ofun $p |- ( F : A -1-1-onto-> B -> Fun F ) $=
    ( wf1o wfn wfun f1ofn fnfun syl ) ABCDCAECFABCGACHI $.

  $( A one-to-one onto mapping is a relation.  (Contributed by NM,
     13-Dec-2003.) $)
  f1orel $p |- ( F : A -1-1-onto-> B -> Rel F ) $=
    ( wf1o wfun wrel f1ofun funrel syl ) ABCDCECFABCGCHI $.

  $( The domain of a one-to-one onto mapping.  (Contributed by NM,
     8-Mar-2014.) $)
  f1odm $p |- ( F : A -1-1-onto-> B -> dom F = A ) $=
    ( wf1o wfn cdm wceq f1ofn fndm syl ) ABCDCAECFAGABCHACIJ $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     10-Feb-1997.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o2 $p |- ( F : A -1-1-onto-> B
        <-> ( F Fn A /\ Fun `' F /\ ran F = B ) ) $=
    ( wf1o wf1 wfo wa wfn ccnv wfun crn w3a df-f1o wf df-f1 df-fo anbi12i anass
    wceq bitri 3anan12 anbi1i eqimss df-f biimpri sylan2 3adant2 ancom 3bitr4ri
    wss pm4.71i ) ABCDABCEZABCFZGZCAHZCIJZCKZBSZLZABCMUNABCNZUPGZUOURGZGZUSULVA
    UMVBABCOABCPQVCUTUPVBGZGZUSUTUPVBRUSUTGVDUTGUSVEUSVDUTUOUPURUAUBUSUTUOURUTU
    PURUOUQBUJZUTUQBUCUTUOVFGABCUDUEUFUGUKUTVDUHUITTT $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     25-Mar-1998.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o3 $p |- ( F : A -1-1-onto-> B <-> ( F : A -onto-> B /\ Fun `' F ) ) $=
    ( wfn ccnv wfun crn wceq w3a wf1o wfo 3anan32 dff1o2 df-fo anbi1i 3bitr4i
    wa ) CADZCEFZCGBHZIRTQZSQABCJABCKZSQRSTLABCMUBUASABCNOP $.

  $( A one-to-one onto function is an onto function.  (Contributed by NM,
     28-Apr-2004.) $)
  f1ofo $p |- ( F : A -1-1-onto-> B -> F : A -onto-> B ) $=
    ( wf1o wfo ccnv wfun dff1o3 simplbi ) ABCDABCECFGABCHI $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     25-Mar-1998.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o4 $p |- ( F : A -1-1-onto-> B <-> ( F Fn A /\ `' F Fn B ) ) $=
    ( wf1o wfn ccnv wfun crn w3a wa dff1o2 3anass cdm df-rn eqeq1i anbi2i df-fn
    wceq bitr4i 3bitri ) ABCDCAEZCFZGZCHZBRZIUAUCUEJZJUAUBBEZJABCKUAUCUELUFUGUA
    UFUCUBMZBRZJUGUEUIUCUDUHBCNOPUBBQSPT $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     10-Dec-2003.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o5 $p |- ( F : A -1-1-onto-> B <-> ( F : A -1-1-> B /\ ran F = B ) ) $=
    ( wf1o wf1 wfo wa crn wceq df-f1o wf biantrurd dffo2 syl6rbbr pm5.32i bitri
    f1f ) ABCDABCEZABCFZGRCHBIZGABCJRSTRTABCKZTGSRUATABCQLABCMNOP $.

  $( A one-to-one function maps onto its range.  (Contributed by NM,
     13-Aug-2004.) $)
  f1orn $p |- ( F : A -1-1-onto-> ran F <-> ( F Fn A /\ Fun `' F ) ) $=
    ( crn wf1o wfn ccnv wfun wceq w3a wa dff1o2 eqid df-3an mpbiran2 bitri ) AB
    CZBDBAEZBFGZPPHZIZQRJZAPBKTUASPLQRSMNO $.

  $( A one-to-one function maps one-to-one onto its range.  (Contributed by NM,
     4-Sep-2004.) $)
  f1f1orn $p |- ( F : A -1-1-> B -> F : A -1-1-onto-> ran F ) $=
    ( wf1 wfn ccnv wfun crn wf1o f1fn wf df-f1 simprbi f1orn sylanbrc ) ABCDZCA
    ECFGZACHCIABCJPABCKQABCLMACNO $.

  ${
    $d A f $.  $d B f $.
    f1oabexg.1 $e |- F = { f | ( f : A -1-1-onto-> B /\ ph ) } $.
    $( The class of all 1-1-onto functions mapping one set to another is a
       set.  (Contributed by Paul Chapman, 25-Feb-2008.) $)
    f1oabexg $p |- ( ( A e. C /\ B e. D ) -> F e. _V ) $=
      ( wcel wa cv wf1o cab cvv wf wss f1of anim1i ss2abi eqid sylancr syl5eqel
      fabexg ssexg ) BDICEIJZGBCFKZLZAJZFMZNHUEUIBCUFOZAJZFMZPULNIUINIUHUKFUGUJ
      ABCUFQRSAFBCDEULULTUCUIULNUDUAUB $.
  $}

  $( The converse of a one-to-one onto function is also one-to-one onto.
     (Contributed by NM, 11-Feb-1997.)  (Proof shortened by Andrew Salmon,
     22-Oct-2011.) $)
  f1ocnv $p |- ( F : A -1-1-onto-> B -> `' F : B -1-1-onto-> A ) $=
    ( wfn ccnv wa wf1o wrel fnrel wceq dfrel2 fneq1 biimprd sylbi anim2i ancoms
    wi mpcom dff1o4 3imtr4i ) CADZCEZBDZFUCUBEZADZFZABCGBAUBGUCUAUFUAUEUCCHZUAU
    EACIUGUDCJZUAUEQCKUHUEUAAUDCLMNROPABCSBAUBST $.

  $( A relation is a one-to-one onto function iff its converse is a one-to-one
     onto function with domain and range interchanged.  (Contributed by NM,
     8-Dec-2003.) $)
  f1ocnvb $p |- ( Rel F ->
                ( F : A -1-1-onto-> B <-> `' F : B -1-1-onto-> A ) ) $=
    ( wrel wf1o ccnv f1ocnv wceq wb dfrel2 f1oeq1 sylbi syl5ib impbid2 ) CDZABC
    EZBACFZEZABCGRABQFZEZOPBAQGOSCHTPICJABSCKLMN $.

  $( The restriction of a one-to-one function maps one-to-one onto the image.
     (Contributed by NM, 25-Mar-1998.) $)
  f1ores $p |- ( ( F : A -1-1-> B /\ C C_ A ) -> ( F |` C ) : C -1-1-onto->
            ( F " C ) ) $=
    ( wf1 wss wa cres crn wf1o cima f1ssres f1f1orn wceq wb df-ima f1oeq3 ax-mp
    syl sylibr ) ABDECAFGZCDCHZIZUBJZCDCKZUBJZUACBUBEUDABCDLCBUBMSUEUCNUFUDODCP
    UEUCCUBQRT $.

  $( The converse of a one-to-one-onto restricted function.  (Contributed by
     Paul Chapman, 21-Apr-2008.) $)
  f1orescnv $p |- ( ( Fun `' F /\ ( F |` R ) : R -1-1-onto-> P ) ->
                    ( `' F |` P ) : P -1-1-onto-> R ) $=
    ( ccnv wfun cres wf1o wa f1ocnv adantl wceq wb cima funcnvres df-ima dff1o5
    crn wf1 simprbi syl5eq reseq2d sylan9eq f1oeq1 syl mpbid ) CDZEZBACBFZGZHZA
    BUHDZGZABUFAFZGZUIULUGBAUHIJUJUKUMKULUNLUGUIUKUFCBMZFUMBCNUIUOAUFUIUOUHQZAC
    BOUIBAUHRUPAKBAUHPSTUAUBABUKUMUCUDUE $.

  $( Preimage of an image.  (Contributed by NM, 30-Sep-2004.) $)
  f1imacnv $p |- ( ( F : A -1-1-> B /\ C C_ A )
                 -> ( `' F " ( F " C ) ) = C ) $=
    ( wf1 wss wa ccnv cima cres resima wfun wceq df-f1 simprbi adantr funcnvres
    wf syl wf1o imaeq1d f1ores f1ocnv cdm crn imadmrn f1odm imaeq2d wfo 3eqtr3a
    f1ofo forn eqtr3d syl5eqr ) ABDEZCAFZGZDHZDCIZIURUSJZUSIZCURUSKUQDCJZHZUSIZ
    VACUQVCUTUSUQURLZVCUTMUOVEUPUOABDRVEABDNOPCDQSUAUQUSCVCTZVDCMUQCUSVBTVFABCD
    UBCUSVBUCSVFVCVCUDZIVCUEZVDCVCUFVFVGUSVCUSCVCUGUHVFUSCVCUIVHCMUSCVCUKUSCVCU
    LSUJSUMUN $.

  $( A reverse version of ~ f1imacnv .  (Contributed by Jeff Hankins,
     16-Jul-2009.) $)
  foimacnv $p |- ( ( F : A -onto-> B /\ C C_ B )
                 -> ( F " ( `' F " C ) ) = C ) $=
    ( wfo wss wa ccnv cima cres resima wfun wceq fofun adantr syl crn cdm df-rn
    syl5eqr funcnvres2 imaeq1d wfn resss cnvss ax-mp cnvcnvss sstri funss mpsyl
    df-ima eqtr2i jctir df-fn sylibr dfdm4 forn sseq2d biimpar syl6sseq ssdmres
    sylib df-fo sylanbrc foima eqtr3d ) ABDEZCBFZGZDDHZCIZIDVKJZVKIZCDVKKVIVJCJ
    ZHZVKIZVMCVIVOVLVKVIDLZVOVLMVGVQVHABDNZOCDUAPUBVIVKCVOEZVPCMVIVOVKUCZVOQZCM
    VSVIVOLZVORZVKMZGVTVIWBWDVGWBVHVODFVGVQWBVOVJHZDVNVJFVOWEFVJCUDVNVJUEUFDUGU
    HVRVODUIUJOVKVNQWCVJCUKVNSULUMVOVKUNUOVIWAVNRZCVNUPVICVJRZFWFCMVICDQZWGVGCW
    HFVHVGWHBCABDUQURUSDSUTCVJVAVBTVKCVOVCVDVKCVOVEPVFT $.

  $( The union of two onto functions with disjoint domains is an onto
     function.  (Contributed by Mario Carneiro, 22-Jun-2016.) $)
  foun $p |- ( ( ( F : A -onto-> B /\ G : C -onto-> D )
            /\ ( A i^i C ) = (/) )
           -> ( F u. G ) : ( A u. C ) -onto-> ( B u. D ) ) $=
    ( wfo wa cin c0 wceq cun wfn crn fofn anim12i fnun sylan rnun forn ad2antrr
    ad2antlr uneq12d syl5eq df-fo sylanbrc ) ABEGZCDFGZHZACIJKZHZEFLZACLZMZULNZ
    BDLZKUMUPULGUIEAMZFCMZHUJUNUGUQUHURABEOCDFOPACEFQRUKUOENZFNZLUPEFSUKUSBUTDU
    GUSBKUHUJABETUAUHUTDKUGUJCDFTUBUCUDUMUPULUEUF $.

  $( The union of two one-to-one onto functions with disjoint domains and
     ranges.  (Contributed by NM, 26-Mar-1998.) $)
  f1oun $p |- ( ( ( F : A -1-1-onto-> B /\ G : C -1-1-onto-> D )
            /\ ( ( A i^i C ) = (/) /\ ( B i^i D ) = (/) ) )
           -> ( F u. G ) : ( A u. C ) -1-1-onto-> ( B u. D ) ) $=
    ( wf1o wa cin c0 wceq cun wfn ccnv wi dff1o4 fnun ex cnvun fneq1i im2anan9
    sylibr an4s syl2anb syl6ibr imp ) ABEGZCDFGZHZACIJKZBDIJKZHZACLZBDLZEFLZGZU
    IULUOUMMZUONZUNMZHZUPUGEAMZENZBMZHFCMZFNZDMZHULUTOZUHABEPCDFPVAVDVCVFVGVAVD
    HZUJUQVCVFHZUKUSVHUJUQACEFQRVIUKUSVIUKHVBVELZUNMUSBDVBVEQUNURVJEFSTUBRUAUCU
    DUMUNUOPUEUF $.

  ${
    $d A u v x z $.  $d A u v y $.  $d B u v y $.  $d B u v z $.  $d C u v x $.
    $d D u v $.  $d S u v x $.
    fun11iun.1 $e |- ( x = y -> B = C ) $.
    fun11iun.2 $e |- B e. _V $.
    $( The union of a chain (with respect to inclusion) of one-to-one functions
       is a one-to-one function.  (Contributed by Mario Carneiro,
       20-May-2013.)  (Revised by Mario Carneiro, 24-Jun-2015.) $)
    fun11iun $p |- ( A. x e. A ( B : D -1-1-> S /\
                       A. y e. A ( B C_ C \/ C C_ B ) ) ->
                     U_ x e. A B : U_ x e. A D -1-1-> S ) $=
      ( vz vu vv wss wral wa wfun wceq cv wrex wcel wf1 wo ciun wf ccnv wfn crn
      cdm cab cuni vex eqeq1 rexbidv elab r19.29 nfv nfre1 nfab nfralxy nfan wi
      f1eq1 biimparc df-f1 ffun anim1i syl adantlr eqeq2d cbvrexv sseq12 ancoms
      sylbi orbi12d biimprcd expdimp rexlimivw imp sylan an32s adantlll sylan2b
      wb ralrimiva jca a1i rexlimi fun11uni simpld dfiun2 funeqi sylibr cop wex
      nfra1 eldm2 f1dm eleq2d syl5bbr adantr syl6 rexbida eliun rexcom4 3bitr4i
      rsp exbii 3bitr4g eqrdv df-fn sylanbrc rniun f1f frn ralimi syl5eqss df-f
      iunss simprd cnveqi ) FGDUAZDEMZEDMZUBZBCNZOZACNZACFUCZGACDUCZUDZYIUEZPZY
      HGYIUAYGYIYHUFZYIUGZGMYJYGYIPZYIUHZYHQYMYGJRZDQZACSZJUIZUJZPZYOYGUUBUUAUE
      ZPZYGKRZPZUUEUEPZOZUUELRZMZUUIUUEMZUBZLYTNZOZKYTNUUBUUDOYGUUNKYTUUEYTTYGU
      UEDQZACSZUUNYSUUPJUUEKUKZYQUUEQYRUUOACYQUUEDULUMUNYGUUPOYFUUOOZACSUUNYFUU
      OACUOUURUUNACUUHUUMAUUHAUPUULALYTYSAJYRACUQURUULAUPUSUTUURUUNVAARZCTZUURU
      UHUUMYAUUOUUHYEYAUUOOFGUUEUAZUUHUUOUVAYAFGUUEDVBVCUVAFGUUEUDZUUGOUUHFGUUE
      VDUVBUUFUUGFGUUEVEVFVMVGVHUURUULLYTUUIYTTUURUUIDQZACSZUULYSUVDJUUILUKYQUU
      IQYRUVCACYQUUIDULUMUNUVDUURUUIEQZBCSZUULUVCUVEABCUUSBRQDEUUIHVIVJYEUUOUVF
      UULYAYEUVFUUOUULYEUVFOYDUVEOZBCSZUUOUULYDUVEBCUOUVHUUOUULUVGUUOUULVABCYDU
      VEUUOUULUVEUUOOZUULYDUVIUUJYBUUKYCUUOUVEUUJYBWCUUEDUUIEVKVLUUIEUUEDVKVNVO
      VPVQVRVSVTWAWBWBWDWEWFWGVGWBWDYTKLWHVGZWIYIUUAAJCDIWJZWKWLYGKYPYHYGUUEUUI
      WMZDTZLWNZACSZUUEFTZACSUUEYPTZUUEYHTYGUVNUVPACYFACWOYGUUTUVNUVPWCZYGUUTYF
      UVRYFACXFYAUVRYEUVNUUEDUHZTYAUVPLUUEDUUQWPYAUVSFUUEFGDWQWRWSWTXAVRXBUVLYI
      TZLWNUVMACSZLWNUVQUVOUVTUWALAUVLCDXCXGLUUEYIUUQWPUVMALCXDXEAUUECFXCXHXIYI
      YHXJXKYGYNACDUGZUCZGACDXLYGUWBGMZACNUWCGMYFUWDACYAUWDYEYAFGDUDUWDFGDXMFGD
      XNVGWTXOACUWBGXRWLXPYHGYIXQXKYGUUDYLYGUUBUUDUVJXSYKUUCYIUUAUVKXTWKWLYHGYI
      VDXK $.
  $}

  $( The restriction of a one-to-one onto function to a difference maps onto
     the difference of the images.  (Contributed by Paul Chapman,
     11-Apr-2009.) $)
  resdif $p |- ( ( Fun `' F /\ ( F |` A ) : A -onto-> C /\
                               ( F |` B ) : B -onto-> D ) ->
                 ( F |` ( A \ B ) ) : ( A \ B ) -1-1-onto-> ( C \ D ) ) $=
    ( ccnv wfun cres wfo cdif cima wf1o wceq syl wb ax-mp crn df-ima wa forn wf
    w3a cdm wss fofun difss fof fdm syl5sseqr fores syl2anc indif reseq2i eqtri
    cin resres foeq1 rneqi 3eqtr4i foeq3 bitri funres11 biimpri syl2anr 3adant3
    sylib dff1o3 syl5eq anim12i imadif difeq12 sylan9eq sylan2 3impb f1oeq3
    mpbid ) EFGZACEAHZIZBDEBHZIZUBZABJZEWCKZEWCHZLZWCCDJZWELZVQVSWFWAVSWCWDWEIZ
    WEFGZWFVQVSWCVRWCKZVRWCHZIZWIVSVRGWCVRUCZUDWMACVRUEVSAWCWNABUFVSACVRUAWNAMA
    CVRUGACVRUHNUIWCVRUJUKWMWCWKWEIZWIWLWEMWMWOOWLEAWCUOZHWEEAWCUPWPWCEABULUMUN
    ZWCWKWLWEUQPWKWDMWOWIOWLQWEQWKWDWLWEWQURVRWCREWCRUSWKWDWCWEUTPVAVFWCEVBWFWI
    WJSWCWDWEVGVCVDVEWBWDWGMZWFWHOVQVSWAWRVSWASVQEAKZCMZEBKZDMZSZWRVSWTWAXBVSWS
    VRQCEARACVRTVHWAXAVTQDEBRBDVTTVHVIVQXCWDWSXAJWGABEVJWSCXADVKVLVMVNWDWGWCWEV
    ONVP $.

  $( Composition of one-to-one onto functions.  (Contributed by NM,
     19-Mar-1998.) $)
  f1oco $p |- ( ( F : B -1-1-onto-> C /\ G : A -1-1-onto-> B ) ->
              ( F o. G ) : A -1-1-onto-> C ) $=
    ( wf1o wa ccom wf1 wfo df-f1o f1co foco anim12i an4s syl2anb sylibr ) BCDFZ
    ABEFZGACDEHZIZACTJZGZACTFRBCDIZBCDJZGABEIZABEJZGUCSBCDKABEKUDUFUEUGUCUDUFGU
    AUEUGGUBABCDELABCDEMNOPACTKQ $.

  $( The converse of an injective function is bijective.  (Contributed by FL,
     11-Nov-2011.) $)
  f1cnv $p |- ( F : A -1-1-> B -> `' F : ran F -1-1-onto-> A ) $=
    ( wf1 crn wf1o ccnv f1f1orn f1ocnv syl ) ABCDACEZCFKACGFABCHAKCIJ $.

  $( Composition with the converse.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  funcocnv2 $p |- ( Fun F -> ( F o. `' F ) = ( _I |` ran F ) ) $=
    ( wfun ccnv ccom cid wss crn cres wceq wrel df-fun simprbi cdm dfdm4 dmcoeq
    iss ax-mp df-rn eqtr4i a1i reseq2d eqeq2d syl5bb mpbid ) ABZAACZDZEFZUGEAGZ
    HZIZUEAJUHAKLUHUGEUGMZHZIUEUKUGPUEUMUJUGUEULUIEULUIIUEULUFMZUIAMUFGIULUNIAN
    AUFOQARSTUAUBUCUD $.

  $( The composition of an onto function and its converse.  (Contributed by
     Stefan O'Rear, 12-Feb-2015.) $)
  fococnv2 $p |- ( F : A -onto-> B -> ( F o. `' F ) = ( _I |` B ) ) $=
    ( wfo ccnv ccom cid crn cres wfun wceq fofun funcocnv2 forn reseq2d eqtrd
    syl ) ABCDZCCEFZGCHZIZGBIRCJSUAKABCLCMQRTBGABCNOP $.

  $( The composition of a one-to-one onto function and its converse equals the
     identity relation restricted to the function's range.  (Contributed by NM,
     13-Dec-2003.)  (Proof shortened by Stefan O'Rear, 12-Feb-2015.) $)
  f1ococnv2 $p |- ( F : A -1-1-onto-> B -> ( F o. `' F ) = ( _I |` B ) ) $=
    ( wf1o wfo ccnv ccom cid cres wceq f1ofo fococnv2 syl ) ABCDABCECCFGHBIJABC
    KABCLM $.

  $( Composition of an injective function with its converse.  (Contributed by
     FL, 11-Nov-2011.) $)
  f1cocnv2 $p |- ( F : A -1-1-> B -> ( F o. `' F ) = ( _I |` ran F ) ) $=
    ( wf1 wfun ccnv ccom cid crn cres wceq f1fun funcocnv2 syl ) ABCDCECCFGHCIJ
    KABCLCMN $.

  $( The composition of a one-to-one onto function's converse and itself equals
     the identity relation restricted to the function's domain.  (Contributed
     by NM, 13-Dec-2003.) $)
  f1ococnv1 $p |- ( F : A -1-1-onto-> B -> ( `' F o. F ) = ( _I |` A ) ) $=
    ( wf1o ccnv ccom cres wrel wceq f1orel dfrel2 sylib coeq2d f1ocnv f1ococnv2
    cid syl eqtr3d ) ABCDZCEZTEZFZTCFPAGZSUACTSCHUACIABCJCKLMSBATDUBUCIABCNBATO
    QR $.

  $( Composition of an injective function with its converse.  (Contributed by
     FL, 11-Nov-2011.) $)
  f1cocnv1 $p |- ( F : A -1-1-> B -> ( `' F o. F ) = ( _I |` A ) ) $=
    ( wf1 crn wf1o ccnv ccom cid cres wceq f1f1orn f1ococnv1 syl ) ABCDACEZCFCG
    CHIAJKABCLAOCMN $.

  $( Re-express a constraint on a composition as a constraint on the
     composand.  (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
  funcoeqres $p |- ( ( Fun G /\ ( F o. G ) = H ) ->
      ( F |` ran G ) = ( H o. `' G ) ) $=
    ( wfun ccom wceq crn cres cid funcocnv2 coeq2d coass eqcomi coires1 3eqtr3g
    ccnv coeq1 sylan9req ) BDZABEZCFABGZHZTBPZEZCUCESABUCEZEZAIUAHZEUDUBSUEUGAB
    JKUDUFABUCLMAUANOTCUCQR $.

  ${
    $d x F $.  $d x A $.  $d x B $.
    f11o.1 $e |- F e. _V $.
    $( Relationship between a mapping and an onto mapping.  Figure 38 of
       [Enderton] p. 145.  (Contributed by NM, 10-May-1998.) $)
    ffoss $p |- ( F : A --> B <-> E. x ( F : A -onto-> x /\ x C_ B ) ) $=
      ( wf cv wfo wss wa wex crn wfn df-f dffn4 anbi1i bitri rnex wceq foeq3
      sseq1 anbi12d spcev sylbi fof fss sylan exlimiv impbii ) BCDFZBAGZDHZUKCI
      ZJZAKZUJBDLZDHZUPCIZJZUOUJDBMZURJUSBCDNUTUQURBDOPQUNUSAUPDERUKUPSULUQUMUR
      UKUPBDTUKUPCUAUBUCUDUNUJAULBUKDFUMUJBUKDUEBUKCDUFUGUHUI $.

    $( Relationship between one-to-one and one-to-one onto function.
       (Contributed by NM, 4-Apr-1998.) $)
    f11o $p |- ( F : A -1-1-> B <-> E. x ( F : A -1-1-onto-> x /\ x C_ B ) ) $=
      ( wf ccnv wfun wa cv wfo wss wex wf1 wf1o ffoss anbi1i df-f1 dff1o3 bitri
      an32 exbii 19.41v 3bitr4i ) BCDFZDGHZIBAJZDKZUGCLZIZAMZUFIZBCDNBUGDOZUIIZ
      AMZUEUKUFABCDEPQBCDRUOUJUFIZAMULUNUPAUNUHUFIZUIIUPUMUQUIBUGDSQUHUFUIUATUB
      UJUFAUCTUD $.
  $}

  $( The empty set maps one-to-one into any class.  (Contributed by NM,
     7-Apr-1998.) $)
  f10 $p |- (/) : (/) -1-1-> A $=
    ( c0 wf1 wf ccnv wfun f0 fun0 cnv0 funeqi mpbir df-f1 mpbir2an ) BABCBABDBE
    ZFZAGOBFHNBIJKBABLM $.

  $( One-to-one onto mapping of the empty set.  (Contributed by NM,
     15-Apr-1998.) $)
  f1o00 $p |- ( F : (/) -1-1-onto-> A <-> ( F = (/) /\ A = (/) ) ) $=
    ( c0 wf1o wfn ccnv wceq dff1o4 fn0 biimpi adantr cdm dm0 cnveq syl6eq sylbi
    wa cnv0 fneq1d jca biimpa fndm syl syl5reqr biimpri eqid mpbir fneq2 mpbiri
    sylan9bb impbii bitri ) CABDBCEZBFZAEZQZBCGZACGZQZCABHUPUSUPUQURUMUQUOUMUQB
    IZJKUPCCLZAMUPCAEZVAAGUMUOVBUMAUNCUMUQUNCGUTUQUNCFCBCNROZPSUAACUBUCUDTUSUMU
    OUQUMURUMUQUTUEKUSUOCCEZVDCCGCUFCIUGUQUOVBURVDUQAUNCVCSACCUHUJUITUKUL $.

  $( Onto mapping of the empty set.  (Contributed by NM, 22-Mar-2006.) $)
  fo00 $p |- ( F : (/) -onto-> A <-> ( F = (/) /\ A = (/) ) ) $=
    ( c0 wfo wf1o wceq wf1 wfn fofn fn0 f10 f1eq1 mpbiri sylbi syl ancri df-f1o
    wa sylibr f1ofo impbii f1o00 bitri ) CABDZCABEZBCFZACFRUDUEUDCABGZUDRUEUDUG
    UDBCHZUGCABIUHUFUGBJUFUGCACGAKCABCLMNOPCABQSCABTUAABUBUC $.

  $( One-to-one onto mapping of the empty set.  (Contributed by NM,
     10-Sep-2004.) $)
  f1o0 $p |- (/) : (/) -1-1-onto-> (/) $=
    ( c0 wf1o wceq eqid f1o00 mpbir2an ) AAABAACZGADZHAAEF $.

  $( A restriction of the identity relation is a one-to-one onto function.
     (Contributed by NM, 30-Apr-1998.)  (Proof shortened by Andrew Salmon,
     22-Oct-2011.) $)
  f1oi $p |- ( _I |` A ) : A -1-1-onto-> A $=
    ( cid cres wf1o wfn ccnv fnresi cnvresid fneq1i mpbir dff1o4 mpbir2an ) AAB
    ACZDMAEZMFZAEZAGZPNQAOMAHIJAAMKL $.

  $( The identity relation is a one-to-one onto function on the universe.
     (Contributed by NM, 16-May-2004.) $)
  f1ovi $p |- _I : _V -1-1-onto-> _V $=
    ( cvv cid cres wf1o f1oi wceq wb wrel reli dfrel3 mpbi f1oeq1 ax-mp ) AABAC
    ZDZAABDZAENBFZOPGBHQIBJKAANBLMK $.

  ${
    f1osn.1 $e |- A e. _V $.
    f1osn.2 $e |- B e. _V $.
    $( A singleton of an ordered pair is one-to-one onto function.
       (Contributed by NM, 18-May-1998.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    f1osn $p |- { <. A , B >. } : { A } -1-1-onto-> { B } $=
      ( csn cop wf1o wfn ccnv fnsn cnvsn fneq1i mpbir dff1o4 mpbir2an ) AEZBEZA
      BFEZGRPHRIZQHZABCDJTBAFEZQHBADCJQSUAABCDKLMPQRNO $.
  $}

  ${
    $d A a b $.  $d B b $.
    $( A singleton of an ordered pair is one-to-one onto function.
       (Contributed by Mario Carneiro, 12-Jan-2013.) $)
    f1osng $p |- ( ( A e. V /\ B e. W ) ->
                   { <. A , B >. } : { A } -1-1-onto-> { B } ) $=
      ( va vb cv csn cop wf1o wceq sneq f1oeq2 syl opeq1 sneqd f1oeq1 bitrd vex
      wb f1oeq3 opeq2 f1osn vtocl2g ) EGZHZFGZHZUEUGIZHZJZAHZUHAUGIZHZJZULBHZAB
      IZHZJZEFABCDUEAKZUKULUHUJJZUOUTUFULKUKVATUEALUFULUHUJMNUTUJUNKVAUOTUTUIUM
      UEAUGOPULUHUJUNQNRUGBKZUOULUPUNJZUSVBUHUPKUOVCTUGBLUHUPULUNUANVBUNURKVCUS
      TVBUMUQUGBAUBPULUPUNURQNRUEUGESFSUCUD $.
  $}

  $( An unordered pair of ordered pairs with different elements is a one-to-one
     onto function.  (Contributed by Alexander van der Vekens, 14-Aug-2017.) $)
  f1oprg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) )
      -> ( ( A =/= C /\ B =/= D )
      -> { <. A , B >. , <. C , D >. } : { A , C } -1-1-onto-> { B , D } ) ) $=
    ( wcel wa wne cpr cop wf1o csn cun wceq df-pr eqcomi a1i c0 f1osng ad2antrr
    cin ad2antlr disjsn2 ad2antrl ad2antll f1oun syl22anc f1oeq123d mpbid ex )
    AEIBFIJZCGIDHIJZJZACKZBDKZJZACLZBDLZABMZCDMZLZNZUPUSJZAOZCOZPZBOZDOZPZVBOZV
    COZPZNZVEVFVGVJVMNZVHVKVNNZVGVHUDUAQZVJVKUDUAQZVPUNVQUOUSABEFUBUCUOVRUNUSCD
    GHUBUEUQVSUPURACUFUGURVTUPUQBDUFUHVGVJVHVKVMVNUIUJVFVIUTVLVAVOVDVOVDQVFVDVO
    VBVCRSTVIUTQVFUTVIACRSTVLVAQVFVAVLBDRSTUKULUM $.

  ${
    $d x F $.  $d x A $.
    $( Function value when ` F ` is not a function.  Theorem 6.12(2) of
       [TakeutiZaring] p. 27.  (Contributed by NM, 30-Apr-2004.)  (Proof
       shortened by Mario Carneiro, 31-Aug-2015.) $)
    tz6.12-2 $p |- ( -. E! x A F x -> ( F ` A ) = (/) ) $=
      ( cv wbr weu wn cfv cio c0 df-fv iotanul syl5eq ) BADCEZAFGBCHNAIJABCKNAL
      M $.

    $( The value of a function at a unique point.  (Contributed by Scott
       Fenton, 6-Oct-2017.) $)
    fveu $p |- ( E! x A F x -> ( F ` A ) = U. { x | A F x } ) $=
      ( cv wbr weu cfv cio cab cuni df-fv iotauni syl5eq ) BADCEZAFBCGNAHNAIJAB
      CKNALM $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( If ` A ` is a proper class, then there is no unique binary relationship
       with ` A ` as the first element.  (Contributed by Scott Fenton,
       7-Oct-2017.) $)
    brprcneu $p |- ( -. A e. _V -> -. E! x A F x ) $=
      ( vy wcel wn cv wbr wex wi wa weq cop c0 notbii exbii sylibr opprc1 df-br
      eleq1d cvv wmo weu dtruex equcom mpbir 19.42v anbi12d anidm syl6bb anbi1d
      exbidv imbi12d mpbiri anbi12i anbi1i 3imtr4g eximdv wal exanaliim exnalim
      jctr eximi syl breq2 mo4 syl6 eu5 imnan bitr4i ) BUAEFZBAGZCHZAIZVMAUBZFZ
      JZVMAUCZFZVKVNVMBDGZCHZKZADLZFZKZDIZAIZVPVKVMWFAVKBVLMZCEZWIBVTMZCEZKZWDK
      ZDIZVMWFVKWIWNJNCEZWOWDKZDIZJWOWOWDDIZKWQWOWRWRDALZFZDIDAUDWDWTDWCWSADUEO
      PUFVBWOWDDUGQVKWIWOWNWQVKWHNCBVLRTZVKWMWPDVKWLWOWDVKWLWOWOKWOVKWIWOWKWOXA
      VKWJNCBVTRTUHWOUIUJUKULUMUNBVLCSZWEWMDWBWLWDVMWIWAWKXBBVTCSUOUPPUQURWGWBW
      CJDUSZAUSZFZVPWGXCFZAIXEWFXFAWBWCDUTVCXCAVAVDVOXDVMWAADVLVTBCVEVFOQVGVSVN
      VOKZFVQVRXGVMAVHOVNVOVIVJQ $.
  $}


  ${
    $d x y A $.  $d x y F $.
    $( A function's value at a proper class is the empty set.  (Contributed by
       NM, 20-May-1998.) $)
    fvprc $p |- ( -. A e. _V -> ( F ` A ) = (/) ) $=
      ( vx cvv wcel wn cv wbr weu cfv c0 wceq brprcneu tz6.12-2 syl ) ADEFACGBH
      CIFABJKLCABMCABNO $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( Alternate definition of function value.  Definition 10.11 of [Quine]
       p. 68.  (Contributed by NM, 30-Apr-2004.)  (Proof shortened by Andrew
       Salmon, 17-Sep-2011.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fv2 $p |- ( F ` A ) = U. { x | A. y ( A F y <-> y = x ) } $=
      ( cfv cv wbr cio weq wb wal cab cuni df-fv dfiota2 eqtri ) CDECBFDGZBHQBA
      IJBKALMBCDNQBAOP $.
  $}

  ${
    $d F x y $.  $d A x y $.  $d V x $.
    $( A definition of function value in terms of iota.  (Contributed by Jim
       Kingdon, 29-Dec-2018.) $)
    dffv3g $p |- ( A e. V -> ( F ` A ) = ( iota x x e. ( F " { A } ) ) ) $=
      ( wcel cv csn cima cio wbr cfv cvv wb vex wa elimasng df-br syl6bbr mpan2
      cop iotabidv df-fv syl6reqr ) BDEZAFZCBGHEZAIBUECJZAIBCKUDUFUGAUDUELEZUFU
      GMANUDUHOUFBUETCEUGCBUEDLPBUECQRSUAABCUBUC $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y V $.
    $( The previous definition of function value, from before the ` iota `
       operator was introduced.  Although based on the idea embodied by
       Definition 10.2 of [Quine] p. 65 (see ~ args ), this definition
       apparently does not appear in the literature.  (Contributed by NM,
       1-Aug-1994.) $)
    dffv4g $p |- ( A e. V -> ( F ` A ) = U. { x | ( F " { A } ) = { x } } ) $=
      ( vy wcel cfv cv csn cima cio wceq cuni dffv3g df-iota abid2 eqeq1i abbii
      cab unieqi eqtri syl6eq ) BDFBCGEHCBIJZFZEKZUCAHIZLZASZMZEBCDNUEUDESZUFLZ
      ASZMUIUDEAOULUHUKUGAUJUCUFEUCPQRTUAUB $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y F $.
    $( Membership in a function value.  (Contributed by NM, 30-Apr-2004.) $)
    elfv $p |- ( A e. ( F ` B ) <->
               E. x ( A e. x /\ A. y ( B F y <-> y = x ) ) ) $=
      ( cfv wcel cv wbr weq wb wal cab cuni wa wex fv2 eleq2i eluniab bitri ) C
      DEFZGCDBHEIBAJKBLZAMNZGCAHGUBOAPUAUCCABDEQRUBACST $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.  $d x G $.
    $( Equality theorem for function value.  (Contributed by NM,
       29-Dec-1996.) $)
    fveq1 $p |- ( F = G -> ( F ` A ) = ( G ` A ) ) $=
      ( vx wceq cv wbr cio cfv breq iotabidv df-fv 3eqtr4g ) BCEZADFZBGZDHAOCGZ
      DHABIACINPQDAOBCJKDABLDACLM $.

    $( Equality theorem for function value.  (Contributed by NM,
       29-Dec-1996.) $)
    fveq2 $p |- ( A = B -> ( F ` A ) = ( F ` B ) ) $=
      ( vx wceq cv wbr cio cfv breq1 iotabidv df-fv 3eqtr4g ) ABEZADFZCGZDHBOCG
      ZDHACIBCINPQDABOCJKDACLDBCLM $.
  $}

  ${
    fveq1i.1 $e |- F = G $.
    $( Equality inference for function value.  (Contributed by NM,
       2-Sep-2003.) $)
    fveq1i $p |- ( F ` A ) = ( G ` A ) $=
      ( wceq cfv fveq1 ax-mp ) BCEABFACFEDABCGH $.
  $}

  ${
    fveq1d.1 $e |- ( ph -> F = G ) $.
    $( Equality deduction for function value.  (Contributed by NM,
       2-Sep-2003.) $)
    fveq1d $p |- ( ph -> ( F ` A ) = ( G ` A ) ) $=
      ( wceq cfv fveq1 syl ) ACDFBCGBDGFEBCDHI $.
  $}

  ${
    fveq2i.1 $e |- A = B $.
    $( Equality inference for function value.  (Contributed by NM,
       28-Jul-1999.) $)
    fveq2i $p |- ( F ` A ) = ( F ` B ) $=
      ( wceq cfv fveq2 ax-mp ) ABEACFBCFEDABCGH $.
  $}

  ${
    fveq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function value.  (Contributed by NM,
       29-May-1999.) $)
    fveq2d $p |- ( ph -> ( F ` A ) = ( F ` B ) ) $=
      ( wceq cfv fveq2 syl ) ABCFBDGCDGFEBCDHI $.
  $}

  ${
    fveq12i.1 $e |- F = G $.
    fveq12i.2 $e |- A = B $.
    $( Equality deduction for function value.  (Contributed by FL,
       27-Jun-2014.) $)
    fveq12i $p |- ( F ` A ) = ( G ` B ) $=
      ( cfv fveq1i fveq2i eqtri ) ACGADGBDGACDEHABDFIJ $.
  $}

  ${
    fveq12d.1 $e |- ( ph -> F = G ) $.
    fveq12d.2 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function value.  (Contributed by FL,
       22-Dec-2008.) $)
    fveq12d $p |- ( ph -> ( F ` A ) = ( G ` B ) ) $=
      ( cfv fveq1d fveq2d eqtrd ) ABDHBEHCEHABDEFIABCEGJK $.
  $}

  ${
    $d y z F $.  $d y z A $.  $d x y z $.
    nffv.1 $e |- F/_ x F $.
    nffv.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for function value.  (Contributed by
       NM, 14-Nov-1995.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nffv $p |- F/_ x ( F ` A ) $=
      ( vy cfv cv wbr cio df-fv nfcv nfbr nfiotaxy nfcxfr ) ABCGBFHZCIZFJFBCKQA
      FABPCEDAPLMNO $.
  $}

  ${
    $d x C $.
    $( Bound-variable hypothesis builder for mapping, special case.
       (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    nffvmpt1 $p |- F/_ x ( ( x e. A |-> B ) ` C ) $=
      ( cmpt nfmpt1 nfcv nffv ) ADABCEABCFADGH $.
  $}

  ${
    $d y z A $.  $d y z F $.  $d y ph $.  $d x y z $.
    nffvd.2 $e |- ( ph -> F/_ x F ) $.
    nffvd.3 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nffv .
       (Contributed by NM, 10-Nov-2005.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nffvd $p |- ( ph -> F/_ x ( F ` A ) ) $=
      ( vz cv wcel wal cab cfv wnfc nfaba1 nffv wb wa nfnfc1 wceq abidnf adantr
      nfan adantl fveq12d nfceqdf syl2anc mpbii ) ABGHZCIZBJGKZUHDIZBJGKZLZMZBC
      DLZMZBUJULUKBGNUIBGNOABDMZBCMZUNUPPEFUQURQZBUMUOUQURBBDRBCRUBUSUJCULDUQUL
      DSURBGDTUAURUJCSUQBGCTUCUDUEUFUG $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( A function has one value given an argument in its domain.  (Contributed
       by Jim Kingdon, 29-Dec-2018.) $)
    funfveu $p |- ( ( Fun F /\ A e. dom F ) -> E! y A F y ) $=
      ( vx wfun cdm wcel cv wbr weu wa wi wceq eleq1 anbi2d eubidv imbi12d wrel
      breq1 wral dffun8 simprbi r19.21bi vtoclg anabsi7 ) CEZBCFZGZBAHZCIZAJZUF
      DHZUGGZKZULUICIZAJZLUFUHKZUKLDBUGULBMZUNUQUPUKURUMUHUFULBUGNOURUOUJAULBUI
      CSPQUFUPDUGUFCRUPDUGTDACUAUBUCUDUE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( The value of a function is a subset of ` B ` if every element that could
       be a candidate for the value is a subset of ` B ` .  (Contributed by
       Mario Carneiro, 24-May-2019.) $)
    fvss $p |- ( A. x ( A F x -> x C_ B ) -> ( F ` A ) C_ B ) $=
      ( cv wbr wss wi wal cfv cio df-fv iotass syl5eqss ) BAEZDFZOCGHAIBDJPAKCA
      BDLPACMN $.

    $( The result of a function value is always a subset of the union of the
       range, if the input is a set.  (Contributed by Stefan O'Rear,
       2-Nov-2014.)  (Revised by Mario Carneiro, 24-May-2019.) $)
    fvssunirng $p |- ( A e. _V -> ( F ` A ) C_ U. ran F ) $=
      ( vx cvv wcel cv wbr crn cuni wss wi wal cfv vex brelrng 3exp mpi elssuni
      syl6 alrimiv fvss syl ) ADEZACFZBGZUDBHZIZJZKZCLABMUGJUCUICUCUEUDUFEZUHUC
      UDDEZUEUJKCNUCUKUEUJAUDBDDOPQUDUFRSTCAUGBUAUB $.

    $( The result of a function value is always a subset of the union of the
       range, even if it is invalid and thus empty.  (Contributed by Stefan
       O'Rear, 2-Nov-2014.)  (Revised by Mario Carneiro, 24-May-2019.) $)
    relfvssunirn $p |- ( Rel F -> ( F ` A ) C_ U. ran F ) $=
      ( vx wrel cv wbr crn cuni wss wi wal wcel relelrn ex elssuni syl6 alrimiv
      cfv fvss syl ) BDZACEZBFZUBBGZHZIZJZCKABRUEIUAUGCUAUCUBUDLZUFUAUCUHAUBBMN
      UBUDOPQCAUEBST $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( The value of a function exists.  A special case of Corollary 6.13 of
       [TakeutiZaring] p. 27.  (Contributed by Jim Kingdon, 29-Dec-2018.) $)
    funfvex $p |- ( ( Fun F /\ A e. dom F ) -> ( F ` A ) e. _V ) $=
      ( vy wfun cdm wcel wa cfv wbr cio cvv df-fv weu funfveu euiotaex syl5eqel
      cv syl ) BDABEFGZABHACQBIZCJZKCABLSTCMUAKFCABNTCORP $.

    $( If a function has a set range, then the function value exists
       unconditional on the domain.  (Contributed by Mario Carneiro,
       24-May-2019.) $)
    relrnfvex $p |- ( ( Rel F /\ ran F e. _V ) -> ( F ` A ) e. _V ) $=
      ( wrel cfv crn cuni wss cvv wcel relfvssunirn uniexg ssexg syl2an ) BCABD
      ZBEZFZGPHINHIOHIABJOHKNPHLM $.

    $( Evaluating a set function at a set exists.  (Contributed by Mario
       Carneiro and Jim Kingdon, 28-May-2019.) $)
    fvexg $p |- ( ( F e. V /\ A e. W ) -> ( F ` A ) e. _V ) $=
      ( wcel cfv crn cuni wss cvv elex fvssunirng rnexg uniexg ssexg syl2anr
      syl ) ADEZABFZBGZHZIZUAJEZSJEBCEZRAJEUBADKABLQUDTJEUCBCMTJNQSUAJOP $.

    ${
      fvex.1 $e |- F e. V $.
      fvex.2 $e |- A e. W $.
      $( Evaluating a set function at a set exists.  (Contributed by Mario
         Carneiro and Jim Kingdon, 28-May-2019.) $)
      fvex $p |- ( F ` A ) e. _V $=
        ( wcel cfv cvv fvexg mp2an ) BCGADGABHIGEFABCDJK $.
    $}

    $( If a function is set-like, then the function value exists if the input
       does.  (Contributed by Mario Carneiro, 24-May-2019.) $)
    sefvex $p |- ( ( `' F Se _V /\ A e. _V ) -> ( F ` A ) e. _V ) $=
      ( vy vx cvv ccnv wse wcel wa cfv cv wbr crab cuni wss wi wal w3a vex syl
      a1i simp3 simp2 brcnvg sylancr mpbird breq1 elrab sylanbrc elssuni 3expia
      wb alrimiv fvss seex uniexg ssexg syl2anc ) EBFZGZAEHZIZABJZCKZAUSLZCEMZN
      ZOZVGEHZVCEHVBADKZBLZVJVGOZPZDQVHVBVMDUTVAVKVLUTVAVKRZVJVFHZVLVNVJEHZVJAU
      SLZVOVPVNDSZUAVNVQVKUTVAVKUBVNVPVAVQVKULVRUTVAVKUCVJAEEBUDUEUFVEVQCVJEVDV
      JAUSUGUHUIVJVFUJTUKUMDAVGBUNTVBVFEHVICEAUSUOVFEUPTVCVGEUQUR $.
  $}

  ${
    $d x y z F $.  $d x y z A $.
    $( Alternate definition of the value of a function.  Definition 6.11 of
       [TakeutiZaring] p. 26.  (Contributed by NM, 30-Apr-2004.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    fv3 $p |- ( F ` A ) = { x | ( E. y ( x e. y /\ A F y ) /\
              E! y A F y ) } $=
      ( vz cv wcel wbr wa wex weu cfv weq wb wal elfv wi bi2 breq2 sylib anim2i
      alimi vex ceqsalv eximi elequ2 anbi12d cbvexv exsimpr df-eu jca nfeu1 nfv
      sylibr nfa1 nfan nfex nfim bi1 ax-14 syl6 com23 impd anc2ri eximdv syl5bi
      sps com12 exlimi imp impbii bitri abbi2i ) AFZBFZGZCVODHZIZBJZVQBKZIZACDL
      ZVNWBGVNEFZGZVQBEMZNZBOZIZEJZWAEBVNCDPWIWAWIVSVTWIWDCWCDHZIZEJVSWHWKEWGWJ
      WDWGWEVQQZBOWJWFWLBVQWERUBVQWJBWCEUCVOWCCDSUDTUAUEWKVREBEBMWDVPWJVQEBAUFW
      CVOCDSUGUHTWIWGEJZVTWDWGEUIVQBEUJZUNUKVSVTWIVRVTWIQBVTWIBVQBULWHBEWDWGBWD
      BUMWFBUOUPUQURVTWMVRWIWNVRWGWHEWGVRWHWGVRWDWFVRWDQBWFVPVQWDWFVQVPWDWFVQWE
      VPWDQVQWEUSBEAUTVAVBVCVGVDVHVEVFVIVJVKVLVM $.
  $}

  ${
    $d x F $.  $d x A $.  $d x B $.
    $( The value of a restricted function.  (Contributed by NM, 2-Aug-1994.) $)
    fvres $p |- ( A e. B -> ( ( F |` B ) ` A ) = ( F ` A ) ) $=
      ( vx wcel cv cres wbr cio cfv vex brres rbaib iotabidv df-fv 3eqtr4g ) AB
      EZADFZCBGZHZDIARCHZDIASJACJQTUADTUAQARCBDKLMNDASODACOP $.
  $}

  $( The value of a member of the domain of a subclass of a function.
     (Contributed by NM, 15-Aug-1994.) $)
  funssfv $p |- ( ( Fun F /\ G C_ F /\ A e. dom G ) ->
                ( F ` A ) = ( G ` A ) ) $=
    ( wfun wss cdm wcel cfv wceq wa cres fvres eqcomd funssres fveq1d sylan9eqr
    3impa ) BDZCBEZACFZGZABHZACHZIUARSJZUBABTKZHZUCUAUFUBATBLMUDAUECBCNOPQ $.

  ${
    $d y z F $.  $d y z A $.
    $( Function value.  Theorem 6.12(1) of [TakeutiZaring] p. 27.  (Contributed
       by NM, 30-Apr-2004.) $)
    tz6.12-1 $p |- ( ( A F y /\ E! y A F y ) -> ( F ` A ) = y ) $=
      ( cv wbr weu wa cfv cio df-fv wceq iota1 biimpac syl5eq ) BADZCEZPAFZGBCH
      PAIZOABCJQPROKPALMN $.

    $( Function value.  Theorem 6.12(1) of [TakeutiZaring] p. 27.  (Contributed
       by NM, 10-Jul-1994.) $)
    tz6.12 $p |- ( ( <. A , y >. e. F /\ E! y <. A , y >. e. F ) ->
                 ( F ` A ) = y ) $=
      ( cv cop wcel wbr weu cfv wceq df-br eubii tz6.12-1 syl2anbr ) BADZECFZBO
      CGZQAHBCIOJPAHBOCKZQPARLABCMN $.
  $}

  ${
    $d A y z w $.  $d z w v F $.
    tz6.12f.1 $e |- F/_ y F $.
    $( Function value, using bound-variable hypotheses instead of distinct
       variable conditions.  (Contributed by NM, 30-Aug-1999.) $)
    tz6.12f $p |- ( ( <. A , y >. e. F /\ E! y <. A , y >. e. F ) ->
                 ( F ` A ) = y ) $=
      ( vz cv cop wcel weu wa cfv wceq wi opeq2 eleq1d wb nfel2 nfv cbveu a1i
      anbi12d eqeq2 imbi12d tz6.12 chvarv ) BEFZGZCHZUHEIZJZBCKZUFLZMBAFZGZCHZU
      OAIZJZUKUMLZMEAUFUMLZUJUQULURUSUHUOUIUPUSUGUNCUFUMBNOZUIUPPUSUHUOEAAUGCDQ
      UOERUTSTUAUFUMUKUBUCEBCUDUE $.
  $}

  ${
    $d y F $.  $d y A $.
    $( Corollary of Theorem 6.12(1) of [TakeutiZaring] p. 27.  (Contributed by
       NM, 30-Apr-2004.) $)
    tz6.12c $p |- ( E! y A F y -> ( ( F ` A ) = y <-> A F y ) ) $=
      ( cv wbr weu cfv wceq wex euex wi nfeu1 nfv tz6.12-1 expcom breq2 biimprd
      nfim syli com12 exlimi mpcom syl5ibcom impbid ) BADZCEZAFZBCGZUEHZUFUGBUH
      CEZUIUFUFAIUGUJUFAJUFUGUJKAUGUJAUFALUJAMRUGUFUJUFUGUIUJUFUGUIABCNOZUIUJUF
      UHUEBCPZQSTUAUBULUCUKUD $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( The value of a class outside its domain is the empty set.  (Contributed
       by Jim Kingdon, 15-Jan-2019.) $)
    ndmfvg $p |- ( ( A e. _V /\ -. A e. dom F ) -> ( F ` A ) = (/) ) $=
      ( vx cvv wcel cdm wn cfv c0 wceq cv wbr weu wex euex eldmg con3d tz6.12-2
      syl5ibr syl6 imp ) ADEZABFEZGZABHIJZUBUDACKBLZCMZGUEUBUGUCUGUCUBUFCNUFCOC
      ABDPSQCABRTUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( If a function value has a member, the argument belongs to the domain.
       (Contributed by Jim Kingdon, 22-Jan-2019.) $)
    relelfvdm $p |- ( ( Rel F /\ A e. ( F ` B ) ) -> B e. dom F ) $=
      ( vx vy wrel cfv wcel wa cv wbr wex cdm weq wb wal elfv exsimpr wsb syl
      sylbi equsb1 spsbbi mpbiri breq2 sylib eximi anim2i 19.42v sylibr releldm
      nfv sbie exlimiv ) CFZABCGHZIZUOBDJZCKZIZDLZBCMHZUQUOUSDLZIVAUPVCUOUPBEJZ
      CKZEDNZOEPZDLZVCUPAURHZVGIDLVHDEABCQVIVGDRUAVGUSDVGVEEDSZUSVGVJVFEDSEDUBV
      EVFEDUCUDVEUSEDUSEULVDURBCUEUMUFUGTUHUOUSDUIUJUTVBDBURCUKUNT $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w F $.
    $( The value of a non-member of a restriction is the empty set.
       (Contributed by NM, 13-Nov-1995.) $)
    nfvres $p |- ( -. A e. B -> ( ( F |` B ) ` A ) = (/) ) $=
      ( vz vx vw vy wcel wn cres cfv cv wex cab csn wceq eleq2i bitri sylbi cvv
      wbr weu cuni cio df-fv df-iota eqtri eluni exsimpr wsb df-clab nfv eqeq2d
      wa sneq sbie exbii sylib euabsn2 sylibr euex cop cxp df-br df-res simprbi
      cin elin opelxp1 syl exlimiv 3syl con3i eq0rdv ) ABHZIDACBJZKZDLZVQHZVOVS
      AELZVPUAZEUBZWAEMVOVSWAENZFLZOZPZFMZWBVSWDWCGLZOZPZGNZHZFMZWGVSVRWDHZWLUN
      FMZWMVSVRWKUCZHWOVQWPVRVQWAEUDWPEAVPUEWAEGUFUGQFVRWKUHRWNWLFUISWLWFFWLWJG
      FUJWFWJFGUKWJWFGFWFGULWHWDPWIWEWCWHWDUOUMUPRUQURWAEFUSUTWAEVAWAVOEWAAVTVB
      ZBTVCZHZVOWAWQCWRVGZHZWSWAWQVPHXAAVTVPVDVPWTWQCBVEQRXAWQCHWSWQCWRVHVFSAVT
      BTVIVJVKVLVMVN $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( If the restriction of a class to a singleton is not a function, its
       value is the empty set.  (Contributed by NM, 8-Aug-2010.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    nfunsn $p |- ( -. Fun ( F |` { A } ) -> ( F ` A ) = (/) ) $=
      ( vy vx csn cres wfun wn cv wbr weu cfv c0 wceq wrel wmo wal wa sylbi syl
      eumo wcel vex brres elsn breq1 biimpac moimi alrimiv relres dffun6 sylibr
      wb jctil con3i tz6.12-2 ) BAEZFZGZHACIZBJZCKZHABLMNVBUSVBUROZDIZUTURJZCPZ
      DQZRUSVBVGVCVBVFDVBVACPVFVACUAVEVACVEVDUTBJZVDUQUBZRVAVDUTBUQCUCUDVIVHVAV
      IVDANVHVAUMDAUEVDAUTBUFSUGSUHTUIBUQUJUNDCURUKULUOCABUPT $.
  $}

  ${
    $d x A $.
    $( Function value of the empty set.  (Contributed by Stefan O'Rear,
       26-Nov-2014.) $)
    0fv $p |- ( (/) ` A ) = (/) $=
      ( vx c0 cfv cv wbr cio df-fv weu wn wceq wex cop wcel noel df-br nex euex
      mtbir mto iotanul ax-mp eqtri ) ACDABEZCFZBGZCBACHUEBIZJUFCKUGUEBLUEBUEAU
      DMZCNUHOAUDCPSQUEBRTUEBUAUBUC $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d y z F $.  $d x y z $.
    $( Move class substitution in and out of a function value.  (Contributed by
       NM, 11-Nov-2005.) $)
    csbfv12g $p |- ( A e. C ->
                 [_ A / x ]_ ( F ` B ) = ( [_ A / x ]_ F ` [_ A / x ]_ B ) ) $=
      ( vy wcel wbr cio csb cfv csbiotag sbcbrg csbconstg breq2d bitrd iotabidv
      cv wsbc df-fv eqtrd csbeq2i 3eqtr4g ) BDGZABCFRZEHZFIZJZABCJZUEABEJZHZFIZ
      ABCEKZJUIUJKUDUHUFABSZFIULUFAFBDLUDUNUKFUDUNUIABUEJZUJHUKABCUEDEMUDUOUEUI
      UJABUEDNOPQUAABUMUGFCETUBFUIUJTUC $.
  $}

  ${
    $d y A $.  $d y C $.  $d x y F $.
    $( Move class substitution in and out of a function value.  (Contributed by
       NM, 10-Nov-2005.) $)
    csbfv2g $p |- ( A e. C -> [_ A / x ]_ ( F ` B ) =
                  ( F ` [_ A / x ]_ B ) ) $=
      ( wcel cfv csb csbfv12g csbconstg fveq1d eqtrd ) BDFZABCEGHABCHZABEHZGNEG
      ABCDEIMNOEABEDJKL $.

    $( Substitution for a function value.  (Contributed by NM, 1-Jan-2006.) $)
    csbfvg $p |- ( A e. C -> [_ A / x ]_ ( F ` x ) = ( F ` A ) ) $=
      ( wcel cv cfv csb csbfv2g csbvarg fveq2d eqtrd ) BCEZABAFZDGHABNHZDGBDGAB
      NCDIMOBDABCJKL $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y B $.
    $( The second argument of a binary relation on a function is the function's
       value.  (Contributed by NM, 30-Apr-2004.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    funbrfv $p |- ( Fun F -> ( A F B -> ( F ` A ) = B ) ) $=
      ( vy wfun wbr cfv wceq cvv wcel wa wrel funrel brrelex2 sylan cv wi breq2
      anbi2d eqeq2 imbi12d weu funeu tz6.12-1 sylan2 anabss7 vtoclg mpcom ex )
      CEZABCFZACGZBHZBIJZUJUKKZUMUJCLUKUNCMABCNOUJADPZCFZKZULUPHZQUOUMQDBIUPBHZ
      URUOUSUMUTUQUKUJUPBACRSUPBULTUAUJUQUSURUQUQDUBUSDAUPCUCDACUDUEUFUGUHUI $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y B $.
    $( The second element in an ordered pair member of a function is the
       function's value.  (Contributed by NM, 19-Jul-1996.) $)
    funopfv $p |- ( Fun F -> ( <. A , B >. e. F -> ( F ` A ) = B ) ) $=
      ( cop wcel wbr wfun cfv wceq df-br funbrfv syl5bir ) ABDCEABCFCGACHBIABCJ
      ABCKL $.
  $}

  ${
    $d x y F $.  $d x A $.  $d x y B $.  $d x C $.
    $( Equivalence of function value and binary relation.  (Contributed by NM,
       19-Apr-2004.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
    fnbrfvb $p |- ( ( F Fn A /\ B e. A ) ->
                   ( ( F ` B ) = C <-> B F C ) ) $=
      ( vx wfn wcel wa cfv wceq wbr eqid cvv wb funfvex funfni cv wi breq2 syl
      eqeq2 bibi12d imbi2d fneu tz6.12c vtoclg mpcom mpbii syl5ibcom wfun fnfun
      weu funbrfv adantr impbid ) DAFZBAGZHZBDIZCJZBCDKZURBUSDKZUTVAURUSUSJZVBU
      SLUSMGZURVCVBNZVDABDBDOPURUSEQZJZBVFDKZNZRURVEREUSMVFUSJZVIVEURVJVGVCVHVB
      VFUSUSUAVFUSBDSUBUCURVHEULVIEABDUDEBDUETUFUGUHUSCBDSUIUPVAUTRZUQUPDUJVKAD
      UKBCDUMTUNUO $.

    $( Equivalence of function value and ordered pair membership.  (Contributed
       by NM, 7-Nov-1995.) $)
    fnopfvb $p |- ( ( F Fn A /\ B e. A ) ->
                   ( ( F ` B ) = C <-> <. B , C >. e. F ) ) $=
      ( wfn wcel wa cfv wceq wbr cop fnbrfvb df-br syl6bb ) DAEBAFGBDHCIBCDJBCK
      DFABCDLBCDMN $.
  $}

  ${
    $( Equivalence of function value and binary relation.  (Contributed by NM,
       26-Mar-2006.) $)
    funbrfvb $p |- ( ( Fun F /\ A e. dom F ) ->
                   ( ( F ` A ) = B <-> A F B ) ) $=
      ( wfun cdm wfn wcel cfv wceq wbr wb funfn fnbrfvb sylanb ) CDCCEZFAOGACHB
      IABCJKCLOABCMN $.

    $( Equivalence of function value and ordered pair membership.  Theorem
       4.3(ii) of [Monk1] p. 42.  (Contributed by NM, 26-Jan-1997.) $)
    funopfvb $p |- ( ( Fun F /\ A e. dom F ) ->
                   ( ( F ` A ) = B <-> <. A , B >. e. F ) ) $=
      ( wfun cdm wfn wcel cfv wceq cop wb funfn fnopfvb sylanb ) CDCCEZFAOGACHB
      IABJCGKCLOABCMN $.
  $}

  ${
    $d x y z w A $.  $d x y B $.  $d x y z w F $.  $d x y C $.
    $( Function value in terms of a binary relation.  (Contributed by Mario
       Carneiro, 19-Mar-2014.) $)
    funbrfv2b $p |- ( Fun F ->
                       ( A F B <-> ( A e. dom F /\ ( F ` A ) = B ) ) ) $=
      ( wfun wbr cdm wcel wa cfv wceq wrel funrel releldm syl pm4.71rd funbrfvb
      wi ex pm5.32da bitr4d ) CDZABCEZACFGZUBHUCACIBJZHUAUBUCUACKZUBUCQCLUEUBUC
      ABCMRNOUAUCUDUBABCPST $.

    $( Representation of a function in terms of its values.  The converse holds
       given the law of the excluded middle; as it is we have most of the
       converse via ~ funmpt and ~ dmmptss .  (Contributed by Jim Kingdon,
       31-Dec-2018.) $)
    dffn5im $p |- ( F Fn A -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( vy wfn cv wcel cfv wceq wa copab cmpt wbr wrel fnrel dfrel4v sylib fnbr
      ex pm4.71rd eqcom fnbrfvb syl5bb pm5.32da bitr4d opabbidv df-mpt syl6eqr
      eqtrd ) CBEZCAFZBGZDFZUKCHZIZJZADKZABUNLUJCUKUMCMZADKZUQUJCNCUSIBCOADCPQU
      JURUPADUJURULURJUPUJURULUJURULBUKUMCRSTUJULUOURUOUNUMIUJULJURUMUNUABUKUMC
      UBUCUDUEUFUIADBUNUGUH $.

    $( The range of a function expressed as a collection of the function's
       values.  (Contributed by NM, 20-Oct-2005.)  (Proof shortened by Mario
       Carneiro, 31-Aug-2015.) $)
    fnrnfv $p |- ( F Fn A -> ran F = { y | E. x e. A y = ( F ` x ) } ) $=
      ( wfn crn cv cfv cmpt wceq wrex cab dffn5im rneqd eqid rnmpt syl6eq ) DCE
      ZDFACAGDHZIZFBGSJACKBLRDTACDMNABCSTTOPQ $.

    $( A member of a function's range is a value of the function.  (Contributed
       by NM, 31-Oct-1995.) $)
    fvelrnb $p |- ( F Fn A -> ( B e. ran F <-> E. x e. A ( F ` x ) = B ) ) $=
      ( vy cv cfv wceq wrex cvv wcel wi wfn crn wb wa wex df-rex 19.41v simpl
      anim1i ancomd funfvex funfni syl simpr eleq1d adantr mpbid exlimiv sylbir
      sylanb expcom cab fnrnfv eleq2d eqeq1 eqcom syl6bb rexbidv elab3g mpancom
      sylan9bbr ) AFZDGZCHZABIZCJKZLZDBMZCDNZKZVGOVGVJVHVGVDBKZVFPZAQZVJVHVFABR
      VOVJPVNVJPZAQVHVNVJASVPVHAVPVEJKZVHVPVJVMPVQVPVMVJVNVMVJVMVFTUAUBVQBVDDVD
      DUCUDUEVNVQVHOVJVNVECJVMVFUFUGUHUIUJUKULUMVJVLCEFZVEHZABIZEUNZKVIVGVJVKWA
      CAEBDUOUPVTVGECJVRCHZVSVFABWBVSCVEHVFVRCVEUQCVEURUSUTVAVCVB $.

    $( Alternate definition of the image of a function.  (Contributed by Raph
       Levien, 20-Nov-2006.) $)
    dfimafn $p |- ( ( Fun F /\ A C_ dom F ) ->
                  ( F " A ) = { y | E. x e. A ( F ` x ) = y } ) $=
      ( wfun cdm wss wa cv cfv wceq wrex cab wbr cima wcel wb ssel funbrfvb ex
      syl9r imp31 rexbidva abbidv dfima2 syl6reqr ) DEZCDFZGZHZAIZDJBIZKZACLZBM
      UKULDNZACLZBMDCOUJUNUPBUJUMUOACUGUIUKCPZUMUOQZUIUQUKUHPZUGURCUHUKRUGUSURU
      KULDSTUAUBUCUDABDCUEUF $.

    $( Alternate definition of the image of a function as an indexed union of
       singletons of function values.  (Contributed by Raph Levien,
       20-Nov-2006.) $)
    dfimafn2 $p |- ( ( Fun F /\ A C_ dom F ) ->
                   ( F " A ) = U_ x e. A { ( F ` x ) } ) $=
      ( vy wfun cdm wss wa cima cv cfv wceq cab ciun wrex dfimafn iunab syl6eqr
      csn wcel df-sn eqcom abbii eqtri a1i iuneq2i ) CEBCFGHZCBIZABAJZCKZDJZLZD
      MZNZABUJSZNUGUHULABODMUNADBCPULADBQRABUOUMUOUMLUIBTUOUKUJLZDMUMDUJUAUPULD
      UKUJUBUCUDUEUFR $.

    $( Membership relation for the values of a function whose image is a
       subclass.  (Contributed by Raph Levien, 20-Nov-2006.) $)
    funimass4 $p |- ( ( Fun F /\ A C_ dom F ) ->
                    ( ( F " A ) C_ B <-> A. x e. A ( F ` x ) e. B ) ) $=
      ( vy cima wss cv wcel wi wal wfun cdm wa wral wceq wb wrex syl5bb cvv cfv
      dfss2 wbr eqcom ssel funbrfvb ex imp31 rexbidva vex elima syl6rbbr imbi1d
      syl9 r19.23v syl6bbr albidv ancoms ralcom4 w3a ssel2 anim2i 3impb funfvex
      nfv eleq1 ceqsalg 3syl 3expa ralbidva syl5bbr bitrd ) DBFZCGEHZVMIZVNCIZJ
      ZEKZDLZBDMZGZNZAHZDUAZCIZABOZEVMCUBWBVRVNWDPZVPJZABOZEKZWFWAVSVRWJQWAVSNZ
      VQWIEWKVQWGABRZVPJWIWKVOWLVPWKWLWCVNDUCZABRVOWKWGWMABWGWDVNPZWKWCBIZNWMVN
      WDUDWAVSWOWNWMQZWAWOWCVTIZVSWPBVTWCUEVSWQWPWCVNDUFUGUNUHSUIAVNDBEUJUKULUM
      WGVPABUOUPUQURWJWHEKZABOWBWFWHAEBUSWBWRWEABVSWAWOWRWEQZVSWAWOUTVSWQNZWDTI
      WSVSWAWOWTWAWONWQVSBVTWCVAVBVCWCDVDVPWEEWDTWEEVEVNWDCVFVGVHVIVJVKVLS $.

    $( Function value in an image.  Part of Theorem 4.4(iii) of [Monk1] p. 42.
       (Contributed by NM, 29-Apr-2004.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    fvelima $p |- ( ( Fun F /\ A e. ( F " B ) ) ->
                  E. x e. B ( F ` x ) = A ) $=
      ( wfun cima wcel cv cfv wceq wrex wbr elimag ibi funbrfv reximdv syl5 imp
      ) DEZBDCFZGZAHZDIBJZACKZUAUBBDLZACKZSUDUAUFABDCTMNSUEUCACUBBDOPQR $.
  $}

  ${
    $d x y A $.  $d x C $.  $d x y F $.
    feqmptd.1 $e |- ( ph -> F : A --> B ) $.
    $( Deduction form of ~ dffn5im .  (Contributed by Mario Carneiro,
       8-Jan-2015.) $)
    feqmptd $p |- ( ph -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( wfn cv cfv cmpt wceq wf ffn syl dffn5im ) AECGZEBCBHEIJKACDELPFCDEMNBCE
      ON $.

    feqresmpt.2 $e |- ( ph -> C C_ A ) $.
    $( Express a restricted function as a mapping.  (Contributed by Mario
       Carneiro, 18-May-2016.) $)
    feqresmpt $p |- ( ph -> ( F |` C ) = ( x e. C |-> ( F ` x ) ) ) $=
      ( cres cv cfv cmpt wf wss fssres syl2anc feqmptd fvres mpteq2ia syl6eq )
      AFEIZBEBJZUAKZLBEUBFKZLABEDUAACDFMECNEDUAMGHCDEFOPQBEUCUDUBEFRST $.
  $}

  ${
    $d x z $.  $d x z A $.  $d z F $.
    dffn5imf.1 $e |- F/_ x F $.
    $( Representation of a function in terms of its values.  (Contributed by
       Jim Kingdon, 31-Dec-2018.) $)
    dffn5imf $p |- ( F Fn A -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( vz wfn cv cfv cmpt dffn5im nfcv nffv fveq2 cbvmpt syl6eq ) CBFCEBEGZCHZ
      IABAGZCHZIEBCJEABQSAPCDAPKLESKPRCMNO $.
  $}

  ${
    $d u v A $.  $d x u v B $.  $d x u v C $.  $d x u v F $.
    $( Function value in an image.  (Contributed by NM, 20-Jan-2007.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.)  (Revised by David Abernethy,
       17-Dec-2011.) $)
    fvelimab $p |- ( ( F Fn A /\ B C_ A ) -> ( C e. ( F " B ) <->
                  E. x e. B ( F ` x ) = C ) ) $=
      ( vu vv wfn wss wa cima wcel cv cfv wceq wrex cvv eleq1 wb wi elex anim2i
      ssel2 funfvex funfni sylan2 anassrs syl5ibcom rexlimdva imdistani rexbidv
      eqeq2 bibi12d imbi2d wfun cdm fnfun adantr sseq2d biimpar dfimafn syl2anc
      cab fndm abeq2d vtoclg impcom pm5.21nd fveq2 eqeq1d cbvrexv syl6bb ) EBHZ
      CBIZJZDECKZLZFMZENZDOZFCPZAMZENZDOZACPVOVQWAVODQLZJVQWEVODVPUAUBVOWAWEVOV
      TWEFCVOVRCLZJVSQLZVTWEVMVNWFWGVNWFJVMVRBLWGCBVRUCWGBVREVREUDUEUFUGVSDQRUH
      UIUJWEVOVQWASZVOGMZVPLZVSWIOZFCPZSZTVOWHTGDQWIDOZWMWHVOWNWJVQWLWAWIDVPRWN
      WKVTFCWIDVSULUKUMUNVOWLGVPVOEUOZCEUPZIZVPWLGVCOVMWOVNBEUQURVMWQVNVMWPBCBE
      VDUSUTFGCEVAVBVEVFVGVHVTWDFACVRWBOVSWCDVRWBEVIVJVKVL $.
  $}

  $( The value of the identity function.  (Contributed by NM, 1-May-2004.)
     (Revised by Mario Carneiro, 28-Apr-2015.) $)
  fvi $p |- ( A e. V -> ( _I ` A ) = A ) $=
    ( cid wfun wcel wbr cfv wceq funi ididg funbrfv mpsyl ) CDABEAACFACGAHIABJA
    ACKL $.

  ${
    $d x y A $.  $d y B $.  $d x y F $.
    $( The indexed intersection of a function's values is the intersection of
       its range.  (Contributed by NM, 20-Oct-2005.) $)
    fniinfv $p |- ( F Fn A -> |^|_ x e. A ( F ` x ) = |^| ran F ) $=
      ( vy wfn cv cfv ciin wceq wrex cab cint crn wcel funfvex funfni ralrimiva
      cvv wral dfiin2g syl fnrnfv inteqd eqtr4d ) CBEZABAFZCGZHZDFUGIABJDKZLZCM
      ZLUEUGRNZABSUHUJIUEULABULBUFCUFCOPQADBUGRTUAUEUKUIADBCUBUCUD $.

    $( Singleton of function value.  (Contributed by NM, 22-May-1998.) $)
    fnsnfv $p |- ( ( F Fn A /\ B e. A ) -> { ( F ` B ) } = ( F " { B } ) ) $=
      ( vy wfn wcel wa cv cfv wceq cab wbr csn cima eqcom fnbrfvb syl5bb abbidv
      df-sn a1i imasng adantl 3eqtr4d ) CAEZBAFZGZDHZBCIZJZDKZBUGCLZDKZUHMZCBMN
      ZUFUIUKDUIUHUGJUFUKUGUHOABUGCPQRUMUJJUFDUHSTUEUNULJUDDBACUAUBUC $.
  $}

  $( The image of a pair under a function.  (Contributed by Jeff Madsen,
     6-Jan-2011.) $)
  fnimapr $p |- ( ( F Fn A /\ B e. A /\ C e. A ) ->
                          ( F " { B , C } ) = { ( F ` B ) , ( F ` C ) } ) $=
    ( wfn wcel w3a csn cima cun cfv fnsnfv 3adant3 3adant2 uneq12d eqcomd df-pr
    cpr wceq imaeq2i imaundi eqtri 3eqtr4g ) DAEZBAFZCAFZGZDBHZIZDCHZIZJZBDKZHZ
    CDKZHZJZDBCRZIZUMUORUGUQULUGUNUIUPUKUDUEUNUISUFABDLMUDUFUPUKSUEACDLNOPUSDUH
    UJJZIULURUTDBCQTDUHUJUAUBUMUOQUC $.

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z F $.
    ssimaex.1 $e |- A e. _V $.
    $( The existence of a subimage.  (Contributed by NM, 8-Apr-2007.) $)
    ssimaex $p |- ( ( Fun F /\ B C_ ( F " A ) ) ->
                 E. x ( x C_ A /\ B = ( F " x ) ) ) $=
      ( vy vz vw cima wss cdm cv wceq wa wex cfv wcel wi ex adantr wfun imaeq2i
      cin cres dmres imadmres eqtr3i sseq2i ssrab2 ssel2 adantll fvelima eleq1a
      crab wrex anim2d fveq2 eleq1d elrab syl6ibr simpr jcad reximdv2 adantl wb
      a1i wfn funfn inss2 sstri fvelimab mpan2 sylbi sylibrd syld adantlr eleq1
      mpd biimpcd rexlimiv impbid eqrdv inex1 rabex sseq1 imaeq2 eqeq2d anbi12d
      syl6 spcev sylancr inss1 sstr anim1i eximi syl sylan2br ) CDBIZJDUAZCDBDK
      ZUCZIZJZALZBJZCDXDIZMZNZAOZXBWRCDDBUDKZIXBWRXJXADDBUEUBDBUFUGUHWSXCNZXDXA
      JZXGNZAOZXIXKFLZDPZCQZFXAUNZXAJZCDXRIZMZXNXQFXAUIZXKGCXTXKGLZCQZYCXTQZXKY
      DYEXKYDNYCXBQZYEXCYDYFWSCXBYCUJUKWSYDYFYERXCWSYDNZYFHLZDPZYCMZHXAUOZYEWSY
      FYKRYDWSYFYKHYCXADULSTYGYKYJHXRUOZYEYDYKYLRWSYDYJYJHXAXRYDYHXAQZYJNZYHXRQ
      ZYJYDYNYMYICQZNZYOYDYJYPYMYCCYIUMUPXQYPFYHXAXOYHMXPYICXOYHDUQURUSZUTYNYJR
      YDYMYJVAVFVBVCVDWSYEYLVEZYDWSDWTVGZYSDVHYTXRWTJYSXRXAWTYBBWTVIVJHWTXRYCDV
      KVLVMTVNVOVPVRSWSYEYDRXCWSYEYLYDWSYEYLHYCXRDULSYJYDHXRYOYQYJYDRZYRYPUUAYM
      YJYPYDYIYCCVQVSVDVMVTWITWAWBXMXSYANAXRXQFXABWTEWCWDXDXRMZXLXSXGYAXDXRXAWE
      UUBXFXTCXDXRDWFWGWHWJWKXMXHAXLXEXGXLXABJXEBWTWLXDXABWMVLWNWOWPWQ $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.
    $( The existence of a subimage.  (Contributed by FL, 15-Apr-2007.) $)
    ssimaexg $p |- ( ( A e. C /\ Fun F /\ B C_ ( F " A ) ) ->
                 E. x ( x C_ A /\ B = ( F " x ) ) ) $=
      ( vy wcel wfun cima wss cv wceq wa wex imaeq2 sseq2d anbi2d sseq2 anbi1d
      wi exbidv imbi12d vex ssimaex vtoclg 3impib ) BDGEHZCEBIZJZAKZBJZCEUJILZM
      ZANZUGCEFKZIZJZMZUJUOJZULMZANZTUGUIMZUNTFBDUOBLZURVBVAUNVCUQUIUGVCUPUHCUO
      BEOPQVCUTUMAVCUSUKULUOBUJRSUAUBAUOCEFUCUDUEUF $.
  $}

  $( A simplified expression for the value of a function when we know it's a
     function.  (Contributed by Jim Kingdon, 1-Jan-2019.) $)
  funfvdm $p |- ( ( Fun F /\ A e. dom F ) -> ( F ` A ) = U. ( F " { A } ) ) $=
    ( wfun cdm wcel wa cfv csn cuni cima cvv wceq funfvex unisng syl eqid df-fn
    wfn mpbiran2 fnsnfv sylanbr unieqd eqtr3d ) BCZABDZEZFZABGZHZIZUHBAHJZIUGUH
    KEUJUHLABMUHKNOUGUIUKUDBUERZUFUIUKLULUDUEUELUEPBUEQSUEABTUAUBUC $.

  ${
    $d y A $.  $d y F $.
    $( The value of a function.  Definition of function value in [Enderton]
       p. 43.  (Contributed by Jim Kingdon, 1-Jan-2019.) $)
    funfvdm2 $p |- ( ( Fun F /\ A e. dom F ) ->
        ( F ` A ) = U. { y | A F y } ) $=
      ( wfun cdm wcel wa cfv csn cima cuni wbr cab funfvdm imasng adantl unieqd
      cv wceq eqtrd ) CDZBCEZFZGZBCHCBIJZKBARCLAMZKBCNUDUEUFUCUEUFSUAABUBCOPQT
      $.
  $}

  ${
    $d w z A $.  $d w z F $.  $d w y z $.
    funfvdm2f.1 $e |- F/_ y A $.
    funfvdm2f.2 $e |- F/_ y F $.
    $( The value of a function.  Version of ~ funfvdm2 using a bound-variable
       hypotheses instead of distinct variable conditions.  (Contributed by Jim
       Kingdon, 1-Jan-2019.) $)
    funfvdm2f $p |- ( ( Fun F /\ A e. dom F ) ->
        ( F ` A ) = U. { y | A F y } ) $=
      ( vw wfun cdm wcel wa cfv cv wbr cab cuni funfvdm2 nfcv nfbr nfv breq2
      cbvab unieqi syl6eq ) CGBCHIJBCKBFLZCMZFNZOBALZCMZANZOFBCPUFUIUEUHFAABUDC
      DEAUDQRUHFSUDUGBCTUAUBUC $.
  $}

  ${
    $d A x $.  $d B x $.  $d X x $.
    $( The value of a union when the argument is in the first domain.
       (Contributed by Scott Fenton, 29-Jun-2013.) $)
    fvun1 $p |- ( ( F Fn A /\ G Fn B /\ ( ( A i^i B ) = (/) /\ X e. A ) ) ->
    ( ( F u. G ) ` X ) = ( F ` X ) ) $=
      ( wfn cin c0 wceq wcel wa w3a wfun cdm cun cfv fnfun 3ad2ant1 cima cuni
      3ad2ant2 ineqan12d eqeq1d biimprd adantrd 3impia simp3r eleq2d mpbird csn
      fndm wb funun wss ssun1 dmss ax-mp sseli anim12i anasss 3impa funfvdm syl
      imaundir a1i unieqd disjel ndmima 3ad2ant3 uneq2d un0 syl6eq eqtrd eqcomd
      wn adantrl 3adant2 3eqtrd syl112anc ) CAFZDBFZABGZHIZEAJZKZLZCMZDMZCNZDNZ
      GZHIZEWIJZECDOZPZECPZIVTWAWGWEACQRWAVTWHWEBDQUAVTWAWEWLVTWAKZWCWLWDWQWLWC
      WQWKWBHVTWAWIAWJBACUKZBDUKUBUCUDUEUFWFWMWDVTWAWCWDUGVTWAWMWDULWEVTWIAEWRU
      HRUIWGWHWLWMKZLZWOWNEUJZSZTZCXASZTZWPWTWNMZEWNNZJZKZWOXCIWGWHWSXIWGWHKZWL
      WMXIXJWLKXFWMXHCDUMWIXGECWNUNWIXGUNCDUOCWNUPUQURUSUTVAEWNVBVCWTXCXDDXASZO
      ZTXEWTXBXLXBXLIWTCDXAVDVEVFWTXLXDWTXLXDHOXDWTXKHXDWSWGXKHIZWHWSEWJJVOXMWI
      WJEVGEDVHVCVIVJXDVKVLVFVMWGWSXEWPIZWHWGWMXNWLWGWMKWPXEECVBVNVPVQVRVS $.
  $}

  $( The value of a union when the argument is in the second domain.
     (Contributed by Scott Fenton, 29-Jun-2013.) $)
  fvun2 $p |- ( ( F Fn A /\ G Fn B /\ ( ( A i^i B ) = (/) /\ X e. B ) ) ->
    ( ( F u. G ) ` X ) = ( G ` X ) ) $=
    ( wfn cin c0 wceq wcel w3a cun cfv uncom fveq1i incom eqeq1i anbi1i fvun1
    wa syl3an3b 3com12 syl5eq ) CAFZDBFZABGZHIZEBJZTZKECDLZMEDCLZMZEDMZEUJUKCDN
    OUEUDUIULUMIZUIUEUDBAGZHIZUHTUNUGUPUHUFUOHABPQRBADCESUAUBUC $.

  ${
    $d x y A $.  $d x y F $.  $d x y G $.  $d x X $.
    $( Domains of a function composition.  (Contributed by NM, 27-Jan-1997.) $)
    dmfco $p |- ( ( Fun G /\ A e. dom G ) ->
               ( A e. dom ( F o. G ) <-> ( G ` A ) e. dom F ) ) $=
      ( vy vx wfun cdm wcel wa cfv cv cop wex ccom wceq cvv syl exbidv eldm2g
      wb opeq1 eleq1d ceqsexgv eqcom funopfvb syl5bb anbi1d bitr3d vex opelco2g
      funfvex mpan2 bitrd adantl 3bitr4rd ) CFZACGZHZIZACJZDKZLZBHZDMZAEKZLCHZV
      EVALZBHZIZEMZDMZUTBGHZABCNZGHZUSVCVJDUSVEUTOZVHIZEMZVCVJUSUTPHZVQVCTACUKZ
      VHVCEUTPVOVGVBBVEUTVAUAUBUCQUSVPVIEUSVOVFVHVOUTVEOUSVFVEUTUDAVECUEUFUGRUH
      RUSVRVLVDTVSDUTBPSQURVNVKTUPURVNAVALVMHZDMVKDAVMUQSURVTVJDURVAPHVTVJTDUIE
      AVABCUQPUJULRUMUNUO $.

    $( Value of a function composition.  Similar to second part of Theorem 3H
       of [Enderton] p. 47.  (Contributed by NM, 9-Oct-2004.)  (Proof shortened
       by Andrew Salmon, 22-Oct-2011.)  (Revised by Stefan O'Rear,
       16-Oct-2014.) $)
    fvco2 $p |- ( ( G Fn A /\ X e. A ) -> ( ( F o. G ) ` X ) =
          ( F ` ( G ` X ) ) ) $=
      ( vx wfn wcel wa cv ccom csn cima cio cfv fnsnfv imaeq2d imaco dffv3g cvv
      wceq syl6reqr eleq2d iotabidv adantl funfvex funfni syl 3eqtr4d ) CAFZDAG
      ZHZEIZBCJZDKZLZGZEMZULBDCNZKZLZGZEMZDUMNZURBNZUKUPVAEUKUOUTULUKUTBCUNLZLU
      OUKUSVEBADCOPBCUNQUAUBUCUJVCUQTUIEDUMARUDUKURSGZVDVBTVFADCDCUEUFEURBSRUGU
      H $.
  $}

  $( Value of a function composition.  Similar to Exercise 5 of [TakeutiZaring]
     p. 28.  (Contributed by NM, 22-Apr-2006.)  (Proof shortened by Mario
     Carneiro, 26-Dec-2014.) $)
  fvco $p |- ( ( Fun G /\ A e. dom G ) ->
               ( ( F o. G ) ` A ) = ( F ` ( G ` A ) ) ) $=
    ( wfun cdm wfn wcel ccom cfv wceq funfn fvco2 sylanb ) CDCCEZFANGABCHIACIBI
    JCKNBCALM $.

  $( Value of a function composition.  (Contributed by NM, 3-Jan-2004.)
     (Revised by Mario Carneiro, 26-Dec-2014.) $)
  fvco3 $p |- ( ( G : A --> B /\ C e. A ) ->
             ( ( F o. G ) ` C ) = ( F ` ( G ` C ) ) ) $=
    ( wf wfn wcel ccom cfv wceq ffn fvco2 sylan ) ABEFEAGCAHCDEIJCEJDJKABELADEC
    MN $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y ch $.
    fvopab3g.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    fvopab3g.3 $e |- ( y = B -> ( ps <-> ch ) ) $.
    fvopab3g.4 $e |- ( x e. C -> E! y ph ) $.
    fvopab3g.5 $e |- F = { <. x , y >. | ( x e. C /\ ph ) } $.
    $( Value of a function given by ordered-pair class abstraction.
       (Contributed by NM, 6-Mar-1996.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    fvopab3g $p |- ( ( A e. C /\ B e. D ) -> ( ( F ` A ) = B <-> ch ) ) $=
      ( wcel wa cv wceq wb adantr cop copab cfv anbi12d anbi2d opelopabg fnopab
      eleq1 wfn fnopfvb mpan eleq2i syl6bb ibar 3bitr4d ) FHOZGIOZPFGUAZDQZHOZA
      PZDEUBZOZUPCPZFJUCGRZCVAUPBPVDDEFGHIUSFRUTUPABUSFHUHKUDEQGRBCUPLUEUFUPVEV
      CSUQUPVEURJOZVCJHUIUPVEVFSADEHJMNUGHFGJUJUKJVBURNULUMTUPCVDSUQUPCUNTUO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y ch $.
    fvopab3ig.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    fvopab3ig.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    fvopab3ig.3 $e |- ( x e. C -> E* y ph ) $.
    fvopab3ig.4 $e |- F = { <. x , y >. | ( x e. C /\ ph ) } $.
    $( Value of a function given by ordered-pair class abstraction.
       (Contributed by NM, 23-Oct-1999.) $)
    fvopab3ig $p |- ( ( A e. C /\ B e. D ) -> ( ch -> ( F ` A ) = B ) ) $=
      ( wcel wa cv cfv wceq wi cop copab eleq1 anbi12d anbi2d opelopabg biimpar
      exp43 pm2.43a imp fveq1i wfun funopab moanimv mpbir mpgbir funopfv syl5eq
      wmo ax-mp syl6 ) FHOZGIOZPZCFGUADQZHOZAPZDEUBZOZFJRZGSVBVCCVITZVCVBVKVBVC
      VBCVIVDVIVBCPZVGVBBPVLDEFGHIVEFSVFVBABVEFHUCKUDEQGSBCVBLUEUFUGUHUIUJVIVJF
      VHRZGFJVHNUKVHULZVIVMGSTVNVGEUSZDVGDEUMVOVFAEUSTMVFAEUNUOUPFGVHUQUTURVA
      $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d y F $.
    fvmptss2.1 $e |- ( x = D -> B = C ) $.
    fvmptss2.2 $e |- F = ( x e. A |-> B ) $.
    $( A mapping always evaluates to a subset of the substituted expression in
       the mapping, even if this is a proper class, or we are out of the
       domain.  (Contributed by Mario Carneiro, 13-Feb-2015.)  (Revised by
       Mario Carneiro, 3-Jul-2019.) $)
    fvmptss2 $p |- ( F ` D ) C_ C $=
      ( vy cv wbr wss wi cfv fvss cvv wcel nfcv wceq sylbi funmpt2 funrel ax-mp
      wfun wrel brrelexi cmpt nfmpt1 nfcxfr nfbr nfv breq1 sseq2d imbi12d df-br
      nfim cop copab opabid eqimss adantl df-mpt eqtri eleq2s vtoclgf mpcom mpg
      wa ) EIJZFKZVIDLZMZEFNDLIIEDFOEPQVJVKEVIFFUDFUEABCFHUAFUBUCUFAJZVIFKZVICL
      ZMVLAEPAERZVJVKAAEVIFVPAFABCUGZHABCUHUIAVIRUJVKAUKUPVMESZVNVJVOVKVMEVIFUL
      VRCDVIGUMUNVNVMVIUQZFQVOVMVIFUOVOVSVMBQZVICSZVHZAIURZFVSWCQWBVOWBAIUSWAVO
      VTVICUTVATFVQWCHAIBCVBVCVDTVEVFVG $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C y $.  $d x D y $.
    fvmptg.1 $e |- ( x = A -> B = C ) $.
    fvmptg.2 $e |- F = ( x e. D |-> B ) $.
    $( Value of a function given in maps-to notation.  (Contributed by NM,
       2-Oct-2007.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fvmptg $p |- ( ( A e. D /\ C e. R ) -> ( F ` A ) = C ) $=
      ( vy wcel wa wceq cfv eqid cv eqeq2d eqeq1 wmo moeq a1i cmpt copab df-mpt
      eqtri fvopab3ig mpi ) BEKDFKLDDMZBGNDMDOJPZCMZUIDMUHAJBDEFGAPZBMCDUIHQUID
      DRUJJSUKEKZJCTUAGAECUBULUJLAJUCIAJECUDUEUFUG $.

    ${
      fvmpt.3 $e |- C e. _V $.
      $( Value of a function given in maps-to notation.  (Contributed by NM,
         17-Aug-2011.) $)
      fvmpt $p |- ( A e. D -> ( F ` A ) = C ) $=
        ( wcel cvv cfv wceq fvmptg mpan2 ) BEJDKJBFLDMIABCDEKFGHNO $.
    $}
  $}

  ${
    $d y A $.  $d y z B $.  $d x y z C $.
    fvmpts.1 $e |- F = ( x e. C |-> B ) $.
    $( Value of a function given in maps-to notation, using explicit class
       substitution.  (Contributed by Scott Fenton, 17-Jul-2013.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    fvmpts $p |- ( ( A e. C /\ [_ A / x ]_ B e. V ) ->
        ( F ` A ) = [_ A / x ]_ B ) $=
      ( vy cv csb csbeq1 cmpt nfcv nfcsb1v csbeq1a cbvmpt eqtri fvmptg ) HBAHIZ
      CJZABCJDFEASBCKEADCLHDTLGAHDCTHCMASCNASCOPQR $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x V $.
    fvmpt3.a $e |- ( x = A -> B = C ) $.
    fvmpt3.b $e |- F = ( x e. D |-> B ) $.
    ${
      fvmpt3.c $e |- ( x e. D -> B e. V ) $.
      $( Value of a function given in maps-to notation, with a slightly
         different sethood condition.  (Contributed by Stefan O'Rear,
         30-Jan-2015.) $)
      fvmpt3 $p |- ( A e. D -> ( F ` A ) = C ) $=
        ( wcel cfv wceq cv eleq1d vtoclga fvmptg mpdan ) BEKDGKZBFLDMCGKSABEANB
        MCDGHOJPABCDEGFHIQR $.
    $}

    fvmpt3i.c $e |- B e. _V $.
    $( Value of a function given in maps-to notation, with a slightly different
       sethood condition.  (Contributed by Mario Carneiro, 11-Sep-2015.) $)
    fvmpt3i $p |- ( A e. D -> ( F ` A ) = C ) $=
      ( cvv wcel cv a1i fvmpt3 ) ABCDEFJGHCJKALEKIMN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x ph $.
    fvmptd.1 $e |- ( ph -> F = ( x e. D |-> B ) ) $.
    fvmptd.2 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    fvmptd.3 $e |- ( ph -> A e. D ) $.
    fvmptd.4 $e |- ( ph -> C e. V ) $.
    $( Deduction version of ~ fvmpt .  (Contributed by Scott Fenton,
       18-Feb-2013.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fvmptd $p |- ( ph -> ( F ` A ) = C ) $=
      ( cfv cmpt csb fveq1d wcel wceq csbied eqeltrd eqid fvmpts syl2anc 3eqtrd
      ) ACGMCBFDNZMZBCDOZEACGUEIPACFQUGHQUFUGRKAUGEHABCDEFKJSZLTBCDFUEHUEUAUBUC
      UHUD $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d y D $.  $d y z F $.  $d y V $.
    fvmpt2.1 $e |- F = ( x e. A |-> B ) $.
    $( Value of a function given by the "maps to" notation.  (Contributed by
       FL, 21-Jun-2010.) $)
    fvmpt2 $p |- ( ( x e. A /\ B e. C ) -> ( F ` x ) = B ) $=
      ( vy cv csb weq csbeq1 csbid syl6eq cmpt nfcv nfcsb1v cbvmpt eqtri fvmptg
      csbeq1a ) GAHZAGHZCIZCBDEGAJUCAUACICAUBUACKACLMEABCNGBUCNFAGBCUCGCOAUBCPA
      UBCTQRS $.

    $d x y z C $.
    $( If all the values of the mapping are subsets of a class ` C ` , then so
       is any evaluation of the mapping at a value in the domain of the
       mapping.  (Contributed by Jim Kingdon, 3-Jan-2018.) $)
    fvmptssdm $p |- ( ( D e. dom F /\ A. x e. A B C_ C ) -> ( F ` D ) C_ C ) $=
      ( vy wcel wss cfv wi cvv cv wceq fveq2 sseq1d imbi2d nfcv nfim cdm nfrab1
      wral crab nfcri nfra1 cmpt nfmpt1 nfcxfr nffv nfss eleq1 imbi12d dmmpt wa
      eleq2i rabeq2i fvmpt2 eqimss syl sylbi adantr dmmptss sseli rsp ex sylbir
      mpan9 sstrd chvar vtoclga eleq2s imp ) EFUAZICDJZABUCZEFKZDJZVPVRLZECMIZA
      BUDZVNVPHNZFKZDJZLZVSHEWAWBEOZWDVRVPWFWCVQDWBEFPQRANZWAIZVPWGFKZDJZLZLWBW
      AIZWELAHWLWEAAHWAVTABUBUEVPWDAVOABUFAWCDAWBFAFABCUGGABCUHUIAWBSUJADSUKTTW
      GWBOZWHWLWKWEWGWBWAULWMWJWDVPWMWIWCDWGWBFPQRUMWHWGVNIZWKVNWAWGABCFGUNZUPW
      NVPWJWNVPUOWICDWNWICJZVPWNWGBIZVTUOZWPVTAVNBWOUQWRWICOWPABCMFGURWICUSUTVA
      VBWNWQVPVOVNBWGABCFGVCVDVOABVEVHVIVFVGVJVKWOVLVM $.

    $( Sufficient condition for a maps-to notation to be set-like.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    mptfvex $p |- ( ( A. x B e. V /\ C e. W ) -> ( F ` C ) e. _V ) $=
      ( vy wcel wal wa cfv csb cvv cv cmpt nfel1 wceq eleq1d wss csbeq1 nfcsb1v
      nfcv cbvmpt eqtri fvmptss2 elex alimi cbval sylib spcgv syl5 impcom ssexg
      csbeq1a sylancr ) CFJZAKZDGJZLDEMZADCNZUAVBOJZVAOJIBAIPZCNZVBDEAVDDCUBZEA
      BCQIBVEQHAIBCVEICUDZAVDCUCZAVDCUPZUEUFUGUTUSVCUSVEOJZIKZUTVCUSCOJZAKVKURV
      LACFUHUIVLVJAIICOVGRAVEOVHRAPVDSCVEOVITUJUKVJVCIDGVDDSVEVBOVFTULUMUNVAVBO
      UOUQ $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d y D $.  $d y z F $.
    fvmpt2d.1 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    fvmpt2d.4 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( Deduction version of ~ fvmpt2 .  (Contributed by Thierry Arnoux,
       8-Dec-2016.) $)
    fvmpt2d $p   |- ( ( ph /\ x e. A ) -> ( F ` x ) = B ) $=
      ( cv wcel wa cfv cmpt wceq fveq1d adantr simpr eqid fvmpt2 syl2anc eqtrd
      ) ABIZCJZKZUBELZUBBCDMZLZDAUEUGNUCAUBEUFGOPUDUCDFJUGDNAUCQHBCDFUFUFRSTUA
      $.
  $}

  ${
    $d x A $.  $d x D $.  $d x ph $.
    fvmptdf.1 $e |- ( ph -> A e. D ) $.
    fvmptdf.2 $e |- ( ( ph /\ x = A ) -> B e. V ) $.
    fvmptdf.3 $e |- ( ( ph /\ x = A ) -> ( ( F ` A ) = B -> ps ) ) $.
    ${
      fvmptdf.4 $e |- F/_ x F $.
      fvmptdf.5 $e |- F/ x ps $.
      $( Alternate deduction version of ~ fvmpt , suitable for iteration.
         (Contributed by Mario Carneiro, 7-Jan-2017.) $)
      fvmptdf $p |- ( ph -> ( F = ( x e. D |-> B ) -> ps ) ) $=
        ( cv wceq cmpt wi nfv wcel cfv nfmpt1 nfeq nfim cvv wex syl isset sylib
        elex fveq1 simpr fveq2d adantr eqeltrd eqid fvmpt2 eqtr3d eqeq2d sylbid
        wa syl2anc syl5 exlimdd ) ACNZDOZGCFEPZOZBQCACRVGBCCGVFLCFEUAUBMUCADUDS
        ZVECUEADFSZVHIDFUIUFCDUGUHVGDGTZDVFTZOZAVEUTZBDGVFUJVMVLVJEOBVMVKEVJVMV
        DVFTZVKEVMVDDVFAVEUKZULVMVDFSEHSVNEOVMVDDFVOAVIVEIUMUNJCFEHVFVFUOUPVAUQ
        URKUSVBVC $.
    $}

    $d x F $.  $d x ps $.
    $( Alternate deduction version of ~ fvmpt , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    fvmptdv $p |- ( ph -> ( F = ( x e. D |-> B ) -> ps ) ) $=
      ( nfcv nfv fvmptdf ) ABCDEFGHIJKCGLBCMN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x ph $.
    fvmptdv2.1 $e |- ( ph -> A e. D ) $.
    fvmptdv2.2 $e |- ( ( ph /\ x = A ) -> B e. V ) $.
    fvmptdv2.3 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    $( Alternate deduction version of ~ fvmpt , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    fvmptdv2 $p |- ( ph -> ( F = ( x e. D |-> B ) -> ( F ` A ) = C ) ) $=
      ( cfv wceq cmpt cvv eqidd cv wcel elex syl wex isset wa eqeltrrd exlimddv
      sylib fvmptd fveq1 eqeq1d syl5ibrcom ) ACGLZEMGBFDNZMZCULLZEMABCDEFULOAUL
      PKIABQCMZEORBACORZUOBUAACFRUPICFSTBCUBUFAUOUCZDEOKUQDHRDORJDHSTUDUEUGUMUK
      UNECGULUHUIUJ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y C $.
    $( Bidirectional equality theorem for a mapping abstraction.  Equivalent to
       ~ eqfnfv .  (Contributed by Mario Carneiro, 14-Nov-2014.) $)
    mpteqb $p |- ( A. x e. A B e. V ->
      ( ( x e. A |-> B ) = ( x e. A |-> C ) <->
        A. x e. A B = C ) ) $=
      ( wcel wral cvv cmpt wceq wb wfn eqid mptfng wa wi nfmpt1 cfv fvmpt2 syl
      elex ralimi fneq1 3bitr4g biimpd r19.26 nfeq cv simpll ad2ant2lr ad2ant2l
      fveq1d 3eqtr3d exp31 ralrimi ralim syl5bir expd mpdd mpteq12 mpan impbid1
      com12 ) CEFZABGCHFZABGZABCIZABDIZJZCDJZABGZKVDVEABCEUAUBVFVIVKVIVFVKVIVFD
      HFZABGZVKVIVFVMVIVGBLVHBLVFVMBVGVHUCABCVGVGMZNABDVHVHMZNUDUEVIVFVMVKVFVMO
      VEVLOZABGZVIVKVEVLABUFVIVPVJPZABGVQVKPVIVRABAVGVHABCQABDQUGVIAUHZBFZVPVJV
      IVTOVPOZVSVGRZVSVHRZCDWAVSVGVHVIVTVPUIULVTVEWBCJVIVLABCHVGVNSUJVTVLWCDJVI
      VEABDHVHVOSUKUMUNUOVPVJABUPTUQURUSVCBBJVKVIBMABCBDUTVAVBT $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.
    $( Closed theorem form of ~ fvmpt .  (Contributed by Scott Fenton,
       21-Feb-2013.)  (Revised by Mario Carneiro, 11-Sep-2015.) $)
    fvmptt $p |- ( ( A. x ( x = A -> B = C ) /\
      F = ( x e. D |-> B ) /\ ( A e. D /\ C e. V ) ) -> ( F ` A ) = C ) $=
      ( cv wceq wi wal cmpt wcel wa w3a cfv simp2 fveq1d wrex cvv elex nfa1 nfv
      risset nfeq1 nfim simprl simplr simprr eqeltrd eqid fvmpt2 syl2anc simpll
      nffvmpt1 fveq2d 3eqtr3d exp43 a2i com23 rexlimd syl7 syl5bi imp32 3adant2
      sps eqtrd ) AHZBIZCDIZJZAKZFAECLZIZBEMZDGMZNZOZBFPBVMPZDVRBFVMVLVNVQQRVLV
      QVSDIZVNVLVOVPVTVOVIAESZVLVPVTJABEUDVPDTMZVLWAVTDGUAVLVIWBVTJZAEVKAUBWBVT
      AWBAUCAVSDAECBUOUEUFVKVHEMZVIWCJJAVKVIWDWCVIVJWDWCJVIVJWDWBVTVIVJNZWDWBNZ
      NZVHVMPZCVSDWGWDCTMWHCIWEWDWBUGWGCDTVIVJWFUHZWEWDWBUIUJAECTVMVMUKULUMWGVH
      BVMVIVJWFUNUPWIUQURUSUTVFVAVBVCVDVEVG $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d x y D $.  $d y F $.
    fvmptf.1 $e |- F/_ x A $.
    fvmptf.2 $e |- F/_ x C $.
    fvmptf.3 $e |- ( x = A -> B = C ) $.
    fvmptf.4 $e |- F = ( x e. D |-> B ) $.
    $( Value of a function given by an ordered-pair class abstraction.  This
       version of ~ fvmptg uses bound-variable hypotheses instead of distinct
       variable conditions.  (Contributed by NM, 8-Nov-2005.)  (Revised by
       Mario Carneiro, 15-Oct-2016.) $)
    fvmptf $p |- ( ( A e. D /\ C e. V ) -> ( F ` A ) = C ) $=
      ( wcel cfv wceq cvv elex cv wi nfel1 cmpt nfmpt1 nfcxfr nffv eleq1d fveq2
      nfeq nfim eqeq12d imbi12d fvmpt2 ex vtoclgaf syl5 imp ) BELZDGLZBFMZDNZUP
      DOLZUOURDGPCOLZAQZFMZCNZRUSURRABEHUSURAADOISAUQDABFAFAECTKAECUAUBHUCIUFUG
      VABNZUTUSVCURVDCDOJUDVDVBUQCDVABFUEJUHUIVAELUTVCAECOFKUJUKULUMUN $.
  $}

  ${
    $d A x y $.  $d ps x y $.  $d B y $.  $d C x y $.
    fvopab6.1 $e |- F = { <. x , y >. | ( ph /\ y = B ) } $.
    fvopab6.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    fvopab6.3 $e |- ( x = A -> B = C ) $.
    $( Value of a function given by ordered-pair class abstraction.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       11-Sep-2015.) $)
    fvopab6 $p |- ( ( A e. D /\ C e. R /\ ps ) -> ( F ` A ) = C ) $=
      ( wcel cfv wceq cvv cv wa copab elex eqeq2d anbi12d iba bicomd moeq moani
      wi wmo a1i vex biantrur opabbii eqtri fvopab3ig sylan 3impia ) EHNZGINZBE
      JOGPZUREQNUSBUTUHEHUAADRZFPZSZBVAGPZSZBCDEGQIJCRZEPZABVBVDLVGFGVAMUBUCVDB
      VEVDBUDUEVCDUIVFQNZVBADDFUFUGUJJVCCDTVHVCSZCDTKVCVICDVHVCCUKULUMUNUOUPUQ
      $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y F $.  $d x y G $.  $d x ph $.
    $( Equality of functions is determined by their values.  Special case of
       Exercise 4 of [TakeutiZaring] p. 28 (with domain equality omitted).
       (Contributed by NM, 3-Aug-1994.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.)  (Proof shortened by Mario Carneiro, 31-Aug-2015.) $)
    eqfnfv $p |- ( ( F Fn A /\ G Fn A ) -> ( F = G <->
                 A. x e. A ( F ` x ) = ( G ` x ) ) ) $=
      ( wfn wa wceq cv cfv cmpt wral dffn5im eqeqan12d wb cvv funfvex ralrimiva
      wcel funfni mpteqb syl adantr bitrd ) CBEZDBEZFCDGABAHZCIZJZABUFDIZJZGZUG
      UIGABKZUDUECUHDUJABCLABDLMUDUKULNZUEUDUGORZABKUMUDUNABUNBUFCUFCPSQABUGUIO
      TUAUBUC $.

    $( Equality of functions is determined by their values.  Exercise 4 of
       [TakeutiZaring] p. 28.  (Contributed by NM, 3-Aug-1994.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    eqfnfv2 $p |- ( ( F Fn A /\ G Fn B ) -> ( F = G <->
                 ( A = B /\ A. x e. A ( F ` x ) = ( G ` x ) ) ) ) $=
      ( wfn wa wceq cv cfv wral dmeq fndm eqeqan12d syl5ib pm4.71rd wb biimparc
      cdm fneq2 eqfnfv sylan2 anassrs pm5.32da bitrd ) DBFZECFZGZDEHZBCHZUIGUJA
      IZDJUKEJHABKZGUHUIUJUIDSZESZHUHUJDELUFUGUMBUNCBDMCEMNOPUHUJUIULUFUGUJUIUL
      QZUGUJGUFEBFZUOUJUPUGBCETRABDEUAUBUCUDUE $.

    $d x B $.
    $( Derive equality of functions from equality of their values.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    eqfnfv3 $p |- ( ( F Fn A /\ G Fn B ) -> ( F = G <-> ( B C_ A /\ A. x e. A
                                  ( x e. B /\ ( F ` x ) = ( G ` x ) ) ) ) ) $=
      ( wfn wa wceq cv cfv wral wss wcel eqfnfv2 ancom bitri anbi1i anass dfss3
      eqss r19.26 bitr4i anbi2i syl6bb ) DBFECFGDEHBCHZAIZDJUFEJHZABKZGZCBLZUFC
      MZUGGABKZGZABCDENUIUJBCLZGZUHGZUMUEUOUHUEUNUJGUOBCTUNUJOPQUPUJUNUHGZGUMUJ
      UNUHRUQULUJUQUKABKZUHGULUNURUHABCSQUKUGABUAUBUCPPUD $.

    eqfnfvd.1 $e |- ( ph -> F Fn A ) $.
    eqfnfvd.2 $e |- ( ph -> G Fn A ) $.
    eqfnfvd.3 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = ( G ` x ) ) $.
    $( Deduction for equality of functions.  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    eqfnfvd $p |- ( ph -> F = G ) $=
      ( wceq cv cfv wral ralrimiva wfn wb eqfnfv syl2anc mpbird ) ADEIZBJZDKTEK
      IZBCLZAUABCHMADCNECNSUBOFGBCDEPQR $.
  $}

  ${
    $d x z A $.  $d y z F $.  $d y z G $.  $d x y $.
    eqfnfv2f.1 $e |- F/_ x F $.
    eqfnfv2f.2 $e |- F/_ x G $.
    $( Equality of functions is determined by their values.  Special case of
       Exercise 4 of [TakeutiZaring] p. 28 (with domain equality omitted).
       This version of ~ eqfnfv uses bound-variable hypotheses instead of
       distinct variable conditions.  (Contributed by NM, 29-Jan-2004.) $)
    eqfnfv2f $p |- ( ( F Fn A /\ G Fn A ) -> ( F = G <->
                 A. x e. A ( F ` x ) = ( G ` x ) ) ) $=
      ( vz wfn wa wceq cv cfv wral eqfnfv nfcv nffv nfeq nfv fveq2 eqeq12d
      cbvral syl6bb ) CBHDBHICDJGKZCLZUCDLZJZGBMAKZCLZUGDLZJZABMGBCDNUFUJGABAUD
      UEAUCCEAUCOZPAUCDFUKPQUJGRUCUGJUDUHUEUIUCUGCSUCUGDSTUAUB $.
  $}

  ${
    $d F x $.  $d G x $.
    $( Equality of functions is determined by their values.  (Contributed by
       Scott Fenton, 19-Jun-2011.) $)
    eqfunfv $p |- ( ( Fun F /\ Fun G ) -> ( F = G <->
                    ( dom F = dom G /\
                      A. x e. dom F ( F ` x ) = ( G ` x ) ) ) ) $=
      ( wfun cdm wfn wceq cv cfv wral wa wb funfn eqfnfv2 syl2anb ) BDBBEZFCCEZ
      FBCGPQGAHZBIRCIGAPJKLCDBMCMAPQBCNO $.
  $}

  ${
    $d x B $.  $d x F $.  $d x G $.
    $( Equality of restricted functions is determined by their values.
       (Contributed by NM, 3-Aug-1994.) $)
    fvreseq $p |- ( ( ( F Fn A /\ G Fn A ) /\ B C_ A ) ->
         ( ( F |` B ) = ( G |` B ) <-> A. x e. B ( F ` x ) = ( G ` x ) ) ) $=
      ( wfn wa wss cres wceq cv cfv wral wb fnssres anim12i anandirs wcel fvres
      eqfnfv eqeq12d ralbiia syl6bb syl ) DBFZEBFZGCBHZGDCIZCFZECIZCFZGZUHUJJZA
      KZDLZUNELZJZACMZNUEUFUGULUEUGGUIUFUGGUKBCDOBCEOPQULUMUNUHLZUNUJLZJZACMURA
      CUHUJTVAUQACUNCRUSUOUTUPUNCDSUNCESUAUBUCUD $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d A x y $.
    $( Two ways to express the locus of differences between two functions.
       (Contributed by Stefan O'Rear, 17-Jan-2015.) $)
    fndmdif $p |- ( ( F Fn A /\ G Fn A ) -> dom ( F \ G ) =
          { x e. A | ( F ` x ) =/= ( G ` x ) } ) $=
      ( vy wfn wa cdm cv cfv wss wceq wcel wbr wex wn wb eqcom fnbrfvb syl5bb
      cdif cin wne crab difss dmss ax-mp fndm adantr syl5sseq dfss1 vex adantll
      sylib eldm necon3abid funfvex funfni adantlr breq2 notbid ceqsexgv anbi1d
      cvv syl brdif syl6bbr exbidv 3bitr2rd rabbi2dva eqtr3d ) CBFZDBFZGZBCDUAZ
      HZUBZVPAIZCJZVRDJZUCZABUDVNVPBKVQVPLVNCHZVPBVOCKVPWBKCDUEVOCUFUGVLWBBLVMB
      CUHUIUJVPBUKUNVNWAABVPVRVPMVREIZVONZEOZVNVRBMZGZWAEVRVOAULUOWGWAVRVSDNZPZ
      WCVSLZVRWCDNZPZGZEOZWEWGWHVSVTVMWFVSVTLZWHQVLWOVTVSLVMWFGWHVSVTRBVRVSDSTU
      MUPWGVSVDMZWNWIQVLWFWPVMWPBVRCVRCUQURUSWLWIEVSVDWJWKWHWCVSVRDUTVAVBVEWGWM
      WDEWGWMVRWCCNZWLGWDWGWJWQWLVLWFWJWQQVMWJVSWCLVLWFGWQWCVSRBVRWCCSTUSVCVRWC
      CDVFVGVHVITVJVK $.

    $( The difference set between two functions is commutative.  (Contributed
       by Stefan O'Rear, 17-Jan-2015.) $)
    fndmdifcom $p |- ( ( F Fn A /\ G Fn A ) ->
        dom ( F \ G ) = dom ( G \ F ) ) $=
      ( vx wfn wa cv cfv wne crab cdif cdm wb wcel necom rabbiia fndmdif ancoms
      a1i wceq 3eqtr4a ) BAEZCAEZFDGZBHZUDCHZIZDAJUFUEIZDAJZBCKLCBKLZUGUHDAUGUH
      MUDANUEUFOSPDABCQUCUBUJUITDACBQRUA $.

    $( Two ways to express the locus of equality between two functions.
       (Contributed by Stefan O'Rear, 17-Jan-2015.) $)
    fndmin $p |- ( ( F Fn A /\ G Fn A ) -> dom ( F i^i G ) =
          { x e. A | ( F ` x ) = ( G ` x ) } ) $=
      ( vy wfn wa cin cdm cv wcel cfv wceq copab cmpt dffn5im df-mpt syl6eq wex
      cab crab ineqan12d inopab dmeqd anandi exbii 19.42v bitr3i wb cvv funfvex
      wfun eqeq1 ceqsexgv syl funfni syl5bb abbidv dmopab df-rab 3eqtr4g adantr
      pm5.32da eqtrd ) CBFZDBFZGZCDHZIAJZBKZEJZVICLZMZGZVJVKVIDLZMZGZGZAENZIZVL
      VOMZABUAZVGVHVSVGVHVNAENZVQAENZHVSVEVFCWCDWDVECABVLOWCABCPAEBVLQRVFDABVOO
      WDABDPAEBVOQRUBVNVQAEUCRUDVEVTWBMVFVEVRESZATVJWAGZATVTWBVEWEWFAWEVJVMVPGZ
      ESZGZVEWFWEVJWGGZESWIWJVREVJVMVPUEUFVJWGEUGUHVEVJWHWAWHWAUIZBVICCULVICIKG
      VLUJKWKVICUKVPWAEVLUJVKVLVOUMUNUOUPVCUQURVRAEUSWAABUTVAVBVD $.
  $}

  ${
    $d F x $.  $d G x $.  $d A x $.
    $( Two functions are equal iff their equalizer is the whole domain.
       (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    fneqeql $p |- ( ( F Fn A /\ G Fn A ) ->
        ( F = G <-> dom ( F i^i G ) = A ) ) $=
      ( vx wfn wa wceq cfv crab cin cdm wral eqfnfv eqcom rabid2 syl6bbr fndmin
      cv bitri eqeq1d bitr4d ) BAECAEFZBCGZDRZBHUDCHGZDAIZAGZBCJKZAGUBUCUEDALZU
      GDABCMUGAUFGUIUFANUEDAOSPUBUHUFADABCQTUA $.

    $( Two functions are equal iff their equalizer contains the whole domain.
       (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    fneqeql2 $p |- ( ( F Fn A /\ G Fn A ) ->
        ( F = G <-> A C_ dom ( F i^i G ) ) ) $=
      ( wfn wceq cin cdm wss fneqeql inss1 dmss ax-mp adantr syl5sseq biantrurd
      wa fndm eqss syl6rbbr bitrd ) BADZCADZPZBCEBCFZGZAEZAUEHZABCIUCUGUEAHZUGP
      UFUCUHUGUCBGZUEAUDBHUEUIHBCJUDBKLUAUIAEUBABQMNOUEARST $.

    $( Two functions are equal on a subset iff their equalizer contains that
       subset.  (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    fnreseql $p |- ( ( F Fn A /\ G Fn A /\ X C_ A ) ->
        ( ( F |` X ) = ( G |` X ) <-> X C_ dom ( F i^i G ) ) ) $=
      ( wfn wss w3a cin cdm wb fnssres 3adant2 3adant1 fneqeql syl2anc resindir
      cres wceq dmeqi dmres eqtr3i eqeq1i df-ss bitr4i syl6bb ) BAEZCAEZDAFZGZB
      DQZCDQZRZUJUKHZIZDRZDBCHZIZFZUIUJDEZUKDEZULUOJUFUHUSUGADBKLUGUHUTUFADCKMD
      UJUKNOUODUQHZDRURUNVADUPDQZIUNVAVBUMBCDPSUPDTUAUBDUQUCUDUE $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( The range of a choice function (a function that chooses an element from
       each member of its domain) is included in the union of its domain.
       (Contributed by NM, 31-Aug-1999.) $)
    chfnrn $p |- ( ( F Fn A /\ A. x e. A ( F ` x ) e. x ) -> ran F C_ U. A ) $=
      ( vy wfn cv cfv wcel wral wa crn cuni wrex wceq fvelrnb biimpd wi biimpcd
      eleq1 ralimi rexim syl sylan9 eluni2 syl6ibr ssrdv ) CBEZAFZCGZUHHZABIZJZ
      DCKZBLZULDFZUMHZUOUHHZABMZUOUNHUGUPUIUONZABMZUKURUGUPUTABUOCOPUKUSUQQZABI
      UTURQUJVAABUSUJUQUIUOUHSRTUSUQABUAUBUCAUOBUDUEUF $.
  $}

  ${
    $d x F $.  $d x A $.
    $( Ordered pair with function value.  Part of Theorem 4.3(i) of [Monk1]
       p. 41.  (Contributed by NM, 14-Oct-1996.) $)
    funfvop $p |- ( ( Fun F /\ A e. dom F ) -> <. A , ( F ` A ) >. e. F ) $=
      ( wfun cdm wcel wa cfv wceq cop eqid funopfvb mpbii ) BCABDEFABGZMHAMIBEM
      JAMBKL $.
  $}

  $( Two ways to say that ` A ` is in the domain of ` F ` .  (Contributed by
     Mario Carneiro, 1-May-2014.) $)
  funfvbrb $p |- ( Fun F -> ( A e. dom F <-> A F ( F ` A ) ) ) $=
    ( wfun cdm wcel cfv wbr wa funfvop df-br sylibr wrel funrel releldm impbida
    cop sylan ) BCZABDEZAABFZBGZRSHATPBEUAABIATBJKRBLUASBMATBNQO $.

  $( A member of a preimage is a function value argument.  (Contributed by NM,
     4-May-2007.) $)
  fvimacnvi $p |- ( ( Fun F /\ A e. ( `' F " B ) ) -> ( F ` A ) e. B ) $=
    ( wfun ccnv cima wcel wa cfv csn wss snssi funimass2 sylan2 cdm wb cnvimass
    sseli cvv funfvex snssg syl wceq funfn fnsnfv sylanb sseq1d bitrd mpbird
    wfn ) CDZACEBFZGZHZACIZBGZCAJZFZBKZUMUKUQULKUSAULLUQBCMNUNUPUOJZBKZUSUMUKAC
    OZGZUPVAPZULVBACBQRZUKVCHUOSGVDACTUOBSUAUBNUNUTURBUMUKVCUTURUCZVEUKCVBUJVCV
    FCUDVBACUEUFNUGUHUI $.

  $( The argument of a function value belongs to the preimage of any class
     containing the function value.  Raph Levien remarks:  "This proof is
     unsatisfying, because it seems to me that ~ funimass2 could probably be
     strengthened to a biconditional."  (Contributed by Raph Levien,
     20-Nov-2006.) $)
  fvimacnv $p |- ( ( Fun F /\ A e. dom F ) ->
                 ( ( F ` A ) e. B <-> A e. ( `' F " B ) ) ) $=
    ( wfun cdm wcel wa cfv ccnv cima csn cop funfvop cvv wb sylancom mpbird wss
    wi ex funfvex opelcnvg elimasng snssg syl imass2 syl6bi imp sseld fvimacnvi
    mpid adantr impbid ) CDZACEZFZGZACHZBFZACIZBJZFZUQUSAUTURKZJZFZVBUQVEURALUT
    FZUQVFAURLCFZACMUNUPURNFZVFVGOACUAZURANUOCUBPQUNUPVHVEVFOVIUTURANUOUCPQUQUS
    VEVBSUQUSGVDVAAUQUSVDVARZUQUSVCBRZVJUQVHUSVKOVIURBNUDUEVCBUTUFUGUHUITUKUNVB
    USSUPUNVBUSABCUJTULUM $.

  ${
    $d F x $.  $d A x $.  $d B x $.
    $( A kind of contraposition law that infers an image subclass from a
       subclass of a preimage.  Raph Levien remarks:  "Likely this could be
       proved directly, and ~ fvimacnv would be the special case of ` A ` being
       a singleton, but it works this way round too."  (Contributed by Raph
       Levien, 20-Nov-2006.) $)
    funimass3 $p |- ( ( Fun F /\ A C_ dom F ) ->
                    ( ( F " A ) C_ B <-> A C_ ( `' F " B ) ) ) $=
      ( vx wfun cdm wss wa cima cv ccnv wcel wral funimass4 wb ssel fvimacnv ex
      cfv syl9r imp31 ralbidva bitrd dfss3 syl6bbr ) CEZACFZGZHZCAIBGZDJZCKBIZL
      ZDAMZAULGUIUJUKCSBLZDAMUNDABCNUIUOUMDAUFUHUKALZUOUMOZUHUPUKUGLZUFUQAUGUKP
      UFURUQUKBCQRTUAUBUCDAULUDUE $.

    $( A subclass of a preimage in terms of function values.  (Contributed by
       NM, 15-May-2007.) $)
    funimass5 $p |- ( ( Fun F /\ A C_ dom F ) ->
                    ( A C_ ( `' F " B ) <-> A. x e. A ( F ` x ) e. B ) ) $=
      ( wfun cdm wss wa cima ccnv cv cfv wcel wral funimass3 funimass4 bitr3d )
      DEBDFGHDBICGBDJCIGAKDLCMABNBCDOABCDPQ $.

    $( Two ways of specifying that a function is constant on a subdomain.
       (Contributed by NM, 8-Mar-2007.) $)
    funconstss $p |- ( ( Fun F /\ A C_ dom F ) ->
                     ( A. x e. A ( F ` x ) = B <-> A C_ ( `' F " { B } ) ) ) $=
      ( wfun cdm wss wa cima csn cv cfv wcel wral ccnv wceq funimass4 funimass3
      cvv wb ssel2 anim2i anassrs funfvex elsncg 3syl ralbidva 3bitr3rd ) DEZBD
      FZGZHZDBICJZGAKZDLZUMMZABNBDOUMIGUOCPZABNABUMDQBUMDRULUPUQABULUNBMZHUIUNU
      JMZHZUOSMUPUQTUIUKURUTUKURHUSUIBUJUNUAUBUCUNDUDUOCSUEUFUGUH $.
  $}

  $( Membership in the preimage of a set under a function.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  elpreima $p |- ( F Fn A -> ( B e. ( `' F " C )
                              <-> ( B e. A /\ ( F ` B ) e. C ) ) ) $=
    ( wfn ccnv cima wcel cfv wa cdm cnvimass sseli fndm eleq2d syl5ib fvimacnvi
    wfun fnfun sylan ex jcad wb fvimacnv funfni biimpd expimpd impbid ) DAEZBDF
    CGZHZBAHZBDICHZJUIUKULUMUKBDKZHUIULUJUNBDCLMUIUNABADNOPUIUKUMUIDRUKUMADSBCD
    QTUAUBUIULUMUKUIULJUMUKUMUKUCABDBCDUDUEUFUGUH $.

  ${
    $d x B $.  $d x C $.  $d x F $.  $d x V $.
    $( Membership in the preimage of a singleton, under a function.
       (Contributed by Mario Carneiro, 12-May-2014.)  (Proof shortened by Mario
       Carneiro, 28-Apr-2015.) $)
    fniniseg $p |- ( F Fn A -> ( C e. ( `' F " { B } ) <->
                     ( C e. A /\ ( F ` C ) = B ) ) ) $=
      ( wfn ccnv csn cima wcel cfv wa wceq elpreima wfun cdm cvv funfvex elsncg
      wb syl funfni pm5.32da bitrd ) DAEZCDFBGZHICAIZCDJZUEIZKUFUGBLZKACUEDMUDU
      FUHUIUHUISZACDDNCDOIKUGPIUJCDQUGBPRTUAUBUC $.
  $}

  ${
    $d x A $.  $d x F $.  $d x B $.
    $( Inverse images under functions expressed as abstractions.  (Contributed
       by Stefan O'Rear, 1-Feb-2015.) $)
    fncnvima2 $p |- ( F Fn A -> ( `' F " B ) = { x e. A | ( F ` x ) e. B } ) $=
      ( wfn ccnv cima cv wcel cfv wa cab crab elpreima abbi2dv df-rab syl6eqr )
      DBEZDFCGZAHZBITDJCIZKZALUAABMRUBASBTCDNOUAABPQ $.

    $( Inverse point images under functions expressed as abstractions.
       (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    fniniseg2 $p |- ( F Fn A -> ( `' F " { B } ) =
          { x e. A | ( F ` x ) = B } ) $=
      ( wfn ccnv csn cima cv cfv wcel crab wceq fncnvima2 wb cdm wa cvv funfvex
      wfun elsncg syl funfni rabbidva eqtrd ) DBEZDFCGZHAIZDJZUGKZABLUICMZABLAB
      UGDNUFUJUKABUJUKOZBUHDDTUHDPKQUIRKULUHDSUICRUAUBUCUDUE $.

    $( Support sets of functions expressed as abstractions.  (Contributed by
       Stefan O'Rear, 1-Feb-2015.) $)
    fnniniseg2 $p |- ( F Fn A -> ( `' F " ( _V \ { B } ) ) =
          { x e. A | ( F ` x ) =/= B } ) $=
      ( wfn ccnv cvv csn cdif cima cv cfv wcel crab fncnvima2 wa funfvex funfni
      wne biantrurd eldifsn syl6rbbr rabbidva eqtrd ) DBEZDFGCHIZJAKZDLZUFMZABN
      UHCSZABNABUFDOUEUIUJABUEUGBMPZUJUHGMZUJPUIUKULUJULBUGDUGDQRTUHGCUAUBUCUD
      $.
  $}

  ${
    $d F x $.  $d A x $.
    $( Existential quantification restricted to a support.  (Contributed by
       Stefan O'Rear, 23-Mar-2015.) $)
    rexsupp $p |- ( F Fn A -> ( E. x e. ( `' F " ( _V \ { Z } ) ) ph <->
          E. x e. A ( ( F ` x ) =/= Z /\ ph ) ) ) $=
      ( wfn cv cfv wne wa ccnv cvv csn cdif cima wcel elpreima funfni biantrurd
      funfvex eldifsn syl6rbbr pm5.32da bitrd anbi1d anass syl6bb rexbidv2 ) DC
      FZABGZDHZEIZAJZBDKLEMNZOZCUIUJUOPZAJUJCPZULJZAJUQUMJUIUPURAUIUPUQUKUNPZJU
      RCUJUNDQUIUQUSULUIUQJZULUKLPZULJUSUTVAULVACUJDUJDTRSUKLEUAUBUCUDUEUQULAUF
      UGUH $.
  $}

  ${
    $d x F $.  $d x A $.  $d x B $.
    $( Preimage of a union.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    unpreima $p |- ( Fun F -> ( `' F " ( A u. B ) )
                                  = ( ( `' F " A ) u. ( `' F " B ) ) ) $=
      ( vx wfun cdm wfn ccnv cun cima wceq funfn cv wcel wa elpreima wo orbi12d
      cfv elun syl5bb anbi2i andi bitri syl6rbbr bitrd eqrdv sylbi ) CECCFZGZCH
      ZABIZJZUKAJZUKBJZIZKCLUJDUMUPUJDMZUMNUQUINZUQCSZULNZOZUQUPNZUIUQULCPUJVBU
      RUSANZOZURUSBNZOZQZVAVBUQUNNZUQUONZQUJVGUQUNUOTUJVHVDVIVFUIUQACPUIUQBCPRU
      AVAURVCVEQZOVGUTVJURUSABTUBURVCVEUCUDUEUFUGUH $.

    $( Preimage of an intersection.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Proof shortened by Mario Carneiro, 14-Jun-2016.) $)
    inpreima $p |- ( Fun F -> ( `' F " ( A i^i B ) )
                                  = ( ( `' F " A ) i^i ( `' F " B ) ) ) $=
      ( wfun ccnv cin cima wceq funcnvcnv imain syl ) CDCEZEDLABFGLAGLBGFHCIABL
      JK $.

    $( Preimage of a difference.  (Contributed by Mario Carneiro,
       14-Jun-2016.) $)
    difpreima $p |- ( Fun F -> ( `' F " ( A \ B ) )
                                  = ( ( `' F " A ) \ ( `' F " B ) ) ) $=
      ( wfun ccnv cdif cima wceq funcnvcnv imadif syl ) CDCEZEDLABFGLAGLBGFHCIA
      BLJK $.

    $( The preimage of a restricted function.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    respreima $p |- ( Fun F -> ( `' ( F |` B ) " A )
                                    = ( ( `' F " A ) i^i B ) ) $=
      ( vx wfun cres ccnv cima cin cdm wfn cv wcel wb cfv wa bitri syl elpreima
      elin funfn ancom anbi1i fvres eleq1d adantl pm5.32i a1i an32 syl6bb fnfun
      wceq funres dmres jctir df-fn sylibr anbi1d syl5bb 3bitr4d sylbi eqrdv )
      CEZDCBFZGAHZCGAHZBIZVCCCJZKZDLZVEMZVJVGMZNCUAVIVJBVHIZMZVJVDOZAMZPZVJVHMZ
      VJCOZAMZPZVJBMZPZVKVLVIVQVRWBPZVTPZWCVQWENVIVQWDVPPWEVNWDVPVNWBVRPWDVJBVH
      TWBVRUBQUCWDVPVTWBVPVTNVRWBVOVSAVJBCUDUEUFUGQUHVRWBVTUIUJVIVDVMKZVKVQNVIV
      DEZVDJVMULZPWFVIWGWHVIVCWGVHCUKBCUMRCBUNUOVDVMUPUQVMVJAVDSRVLVJVFMZWBPVIW
      CVJVFBTVIWIWAWBVHVJACSURUSUTVAVB $.
  $}

  $( The preimage of the codomain of a mapping is the mapping's domain.
     (Contributed by FL, 25-Jan-2007.) $)
  fimacnv $p |- ( F : A --> B -> ( `' F " B ) = A ) $=
    ( wf ccnv cima crn imassrn cdm dfdm4 fdm ssid syl6eqss syl5eqssr syl5ss wss
    frn wfun wb ffun syl5sseqr funimass3 syl2anc mpbid eqssd ) ABCDZCEZBFZAUFUH
    UGGZAUGBHUFUICIZACJUFUJAAABCKZALZMNOUFCAFZBPZAUHPZUFUMCGBCAHABCQOUFCRAUJPUN
    UOSABCTUFAAUJULUKUAABCUBUCUDUE $.

  $( Ordered pair with function value.  Part of Theorem 4.3(i) of [Monk1]
     p. 41.  (Contributed by NM, 30-Sep-2004.) $)
  fnopfv $p |- ( ( F Fn A /\ B e. A ) -> <. B , ( F ` B ) >. e. F ) $=
    ( cfv cop wcel funfvop funfni ) BBCDECFABCBCGH $.

  ${
    $d x y F $.  $d x A $.
    $( A function's value belongs to its range.  (Contributed by NM,
       14-Oct-1996.) $)
    fvelrn $p |- ( ( Fun F /\ A e. dom F ) -> ( F ` A ) e. ran F ) $=
      ( vx vy wfun cdm wcel cfv crn cv wa wi wceq eleq1 anbi2d fveq2 eleq1d cop
      syl cvv imbi12d wex funfvop vex opeq1 spcev funfvex elrn2g mpbird anabsi7
      wb vtoclg ) BEZABFZGZABHZBIZGZUMCJZUNGZKZUSBHZUQGZLUMUOKZURLCAUNUSAMZVAVD
      VCURVEUTUOUMUSAUNNOVEVBUPUQUSABPQUAVAVCDJZVBRZBGZDUBZVAUSVBRZBGZVIUSBUCVH
      VKDUSCUDVFUSMVGVJBVFUSVBUEQUFSVAVBTGVCVIUKUSBUGDVBBTUHSUIULUJ $.
  $}

  $( A function's value belongs to its range.  (Contributed by NM,
     15-Oct-1996.) $)
  fnfvelrn $p |- ( ( F Fn A /\ B e. A ) -> ( F ` B ) e. ran F ) $=
    ( cfv crn wcel fvelrn funfni ) BCDCEFABCBCGH $.

  $( A function's value belongs to its codomain.  (Contributed by NM,
     12-Aug-1999.) $)
  ffvelrn $p |- ( ( F : A --> B /\ C e. A ) -> ( F ` C ) e. B ) $=
    ( wf wcel wa cfv crn wfn ffn fnfvelrn sylan wi frn sseld adantr mpd ) ABDEZ
    CAFZGCDHZDIZFZUABFZSDAJTUCABDKACDLMSUCUDNTSUBBUAABDOPQR $.

  ${
    ffvrni.1 $e |- F : A --> B $.
    $( A function's value belongs to its codomain.  (Contributed by NM,
       6-Apr-2005.) $)
    ffvelrni $p |- ( C e. A -> ( F ` C ) e. B ) $=
      ( wf wcel cfv ffvelrn mpan ) ABDFCAGCDHBGEABCDIJ $.
  $}

  ${
    ffvelrnd.1 $e |- ( ph -> F : A --> B ) $.
    $( A function's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    ffvelrnda $p |- ( ( ph /\ C e. A ) -> ( F ` C ) e. B ) $=
      ( wf wcel cfv ffvelrn sylan ) ABCEGDBHDEICHFBCDEJK $.

    ffvelrnd.2 $e |- ( ph -> C e. A ) $.
    $( A function's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    ffvelrnd $p |- ( ph -> ( F ` C ) e. B ) $=
      ( wcel cfv ffvelrnda mpdan ) ADBHDEICHGABCDEFJK $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x ps $.  $d y ph $.
    rexrn.1 $e |- ( x = ( F ` y ) -> ( ph <-> ps ) ) $.
    $( Restricted existential quantification over the range of a function.
       (Contributed by Mario Carneiro, 24-Dec-2013.)  (Revised by Mario
       Carneiro, 20-Aug-2014.) $)
    rexrn $p |- ( F Fn A -> ( E. x e. ran F ph <-> E. y e. A ps ) ) $=
      ( wfn cv cfv crn cvv wcel funfvex funfni wceq wrex fvelrnb eqcom rexbii
      syl6bb wb adantl rexxfr2d ) FEHZABCDDIZFJZFKZELUGLMEUFFUFFNOUECIZUHMUGUIP
      ZDEQUIUGPZDEQDEUIFRUJUKDEUGUISTUAUKABUBUEGUCUD $.

    $( Restricted universal quantification over the range of a function.
       (Contributed by Mario Carneiro, 24-Dec-2013.)  (Revised by Mario
       Carneiro, 20-Aug-2014.) $)
    ralrn $p |- ( F Fn A -> ( A. x e. ran F ph <-> A. y e. A ps ) ) $=
      ( wfn cv cfv crn cvv wcel funfvex funfni wceq wrex fvelrnb eqcom rexbii
      syl6bb wb adantl ralxfr2d ) FEHZABCDDIZFJZFKZELUGLMEUFFUFFNOUECIZUHMUGUIP
      ZDEQUIUGPZDEQDEUIFRUJUKDEUGUISTUAUKABUBUEGUCUD $.
  $}

  ${
    $d F x y $.  $d Y x y $.
    $( For any element in the range of a function there is an element in the
       domain of the function for which the function value is the element of
       the range.  (Contributed by Alexander van der Vekens, 8-Dec-2017.) $)
    elrnrexdm $p |- ( Fun F -> ( Y e. ran F
                                 -> E. x e. dom F Y = ( F ` x ) ) ) $=
      ( vy wfun crn wcel cv wceq cfv cdm wa eqidd ancli adantl eqeq2 rspcev syl
      wrex ex wfn wb funfn rexrn sylbi sylibd ) BEZCBFZGZCDHZIZDUHSZCAHBJZIZABK
      ZSZUGUIULUGUILUICCIZLZULUIURUGUIUQUICMNOUKUQDCUHUJCCPQRTUGBUOUAULUPUBBUCU
      KUNDAUOBUJUMCPUDUEUF $.

    $( For any element in the range of a function there is an element in the
       domain of the function for which the function value is the element of
       the range.  (Contributed by Alexander van der Vekens, 17-Dec-2017.) $)
    elrnrexdmb $p |- ( Fun F -> ( Y e. ran F
                                 <-> E. x e. dom F Y = ( F ` x ) ) ) $=
      ( wfun crn wcel cv cfv wceq cdm wrex wfn funfn fvelrnb sylbi eqcom rexbii
      wb syl6bbr ) BDZCBEFZAGBHZCIZABJZKZCUBIZAUDKTBUDLUAUERBMAUDCBNOUFUCAUDCUB
      PQS $.

    $( For any element in the domain of a function there is an element in the
       range of the function which is the function value for the element of the
       domain.  (Contributed by Alexander van der Vekens, 8-Dec-2017.) $)
    eldmrexrn $p |- ( Fun F -> ( Y e. dom F
                                 -> E. x e. ran F x = ( F ` Y ) ) ) $=
      ( wfun cdm wcel cv cfv wceq crn wrex wa fvelrn eqid eqeq1 rspcev sylancl
      ex ) BDZCBEFZAGZCBHZIZABJZKZSTLUBUDFUBUBIZUECBMUBNUCUFAUBUDUAUBUBOPQR $.
  $}

  ${
    $d w x z A $.  $d y B $.  $d y ch $.  $d w y z F $.  $d w x z ps $.
    ralrnmpt.1 $e |- F = ( x e. A |-> B ) $.
    ralrnmpt.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    ralrnmpt $p |- ( A. x e. A B e. V ->
      ( A. y e. ran F ps <-> A. x e. A ch ) ) $=
      ( vw vz wcel wral cv wsbc wb dfsbcq syl nfv crn cfv fnmpt nfsbc1v sbceq1a
      wfn ralrn cbvral bicomi cmpt nfmpt1 nfcxfr nfcv nffv nfsbc weq wceq fveq2
      3bitr3g wa fvmpt2 sbcieg adantl bitrd ralimiaa ralbi ) FHMZCENZADGUAZNZAD
      COZGUBZPZCENZBCENZVHADKOZPZKVINZADLOZGUBZPZLENZVJVNVHGEUFVRWBQCEFGHIUCVQW
      AKLEGADVPVTRUGSVJVRAVQDKVIAKTADVPUDADVPUEUHUIWAVMLCEACDVTCVSGCGCEFUJICEFU
      KULCVSUMUNACTUOVMLTLCUPVTVLUQWAVMQVSVKGURADVTVLRSUHUSVHVMBQZCENVNVOQVGWCC
      EVKEMZVGUTZVMADFPZBWEVLFUQVMWFQCEFHGIVAADVLFRSVGWFBQWDABDFHJVBVCVDVEVMBCE
      VFSVD $.

    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    rexrnmpt $p |- ( A. x e. A B e. V ->
      ( E. y e. ran F ps <-> E. x e. A ch ) ) $=
      ( vw vz wcel wral wrex cv wsbc wb nfv wa crn cfv wfn fnmpt dfsbcq nfsbc1v
      rexrn syl sbceq1a cbvrex bicomi cmpt nfmpt1 nfcxfr nfcv nfsbc weq sbceq1d
      fveq2 3bitr3g fvmpt2 sbcieg adantl bitrd ralimiaa wi wal wex pm5.32 albii
      nffv exbi sylbi df-ral df-rex bibi12i 3imtr4i ) FHMZCENZADGUAZOZADCPZGUBZ
      QZCEOZBCEOZVSADKPZQZKVTOZADLPZGUBZQZLEOZWAWEVSGEUCWIWMRCEFGHIUDWHWLKLEGAD
      WGWKUEUGUHWAWIAWHDKVTAKSADWGUFADWGUIUJUKWLWDLCEACDWKCWJGCGCEFULICEFUMUNCW
      JUOVKACSUPWDLSLCUQADWKWCWJWBGUSURUJUTVSWDBRZCENZWEWFRZVRWNCEWBEMZVRTZWDAD
      FQZBWRADWCFCEFHGIVAURVRWSBRWQABDFHJVBVCVDVEWQWNVFZCVGZWQWDTZCVHZWQBTZCVHZ
      RZWOWPXAXBXDRZCVGXFWTXGCWQWDBVIVJXBXDCVLVMWNCEVNWEXCWFXEWDCEVOBCEVOVPVQUH
      VD $.
  $}

  $( Alternate definition of a mapping.  (Contributed by NM, 14-Nov-2007.) $)
  dff2 $p |- ( F : A --> B <-> ( F Fn A /\ F C_ ( A X. B ) ) ) $=
    ( wf wfn cxp wss wa ffn fssxp jca crn rnss rnxpss syl6ss anim2i df-f sylibr
    impbii ) ABCDZCAEZCABFZGZHZTUAUCABCIABCJKUDUACLZBGZHTUCUFUAUCUEUBLBCUBMABNO
    PABCQRS $.

  ${
    $d f g x y z A $.  $d f g x y z B $.  $d x y z F $.
    $( Property of a mapping.  (Contributed by Jim Kingdon, 4-Jan-2019.) $)
    dff3im $p |- ( F : A --> B ->
        ( F C_ ( A X. B ) /\ A. x e. A E! y x F y ) ) $=
      ( wf cxp wss cv wbr weu wral fssxp wcel wa wex adantr syl2anc cvv syl wmo
      cfv cop wfun cdm fdm eleq2d biimpar funfvop df-br sylibr wi funfvex breq2
      ffun spcegv mpd funmo eu5 sylanbrc ralrimiva jca ) CDEFZECDGHAIZBIZEJZBKZ
      ACLCDEMVCVGACVCVDCNZOZVFBPZVFBUAZVGVIVDVDEUBZEJZVJVIVDVLUCENZVMVIEUDZVDEU
      EZNZVNVCVOVHCDEUOZQZVCVQVHVCVPCVDCDEUFUGUHZVDEUIRVDVLEUJUKVIVOVQVMVJULZVS
      VTVOVQOVLSNWAVDEUMVFVMBVLSVEVLVDEUNUPTRUQVCVKVHVCVOVKVRBVDEURTQVFBUSUTVAV
      B $.

    $( Property of a mapping.  (Contributed by Jim Kingdon, 4-Jan-2019.) $)
    dff4im $p |- ( F : A --> B ->
        ( F C_ ( A X. B ) /\ A. x e. A E! y e. B x F y ) ) $=
      ( wf cxp wss cv wbr weu wral wa wreu dff3im wcel cop df-br ssel opelxp2
      syl6 syl5bi pm4.71rd eubidv df-reu syl6bbr ralbidv pm5.32i sylib ) CDEFEC
      DGZHZAIZBIZEJZBKZACLZMUKUNBDNZACLZMABCDEOUKUPURUKUOUQACUKUOUMDPZUNMZBKUQU
      KUNUTBUKUNUSUNULUMQZEPZUKUSULUMERUKVBVAUJPUSEUJVASULUMCDTUAUBUCUDUNBDUEUF
      UGUHUI $.

    $( An onto mapping expressed in terms of function values.  (Contributed by
       NM, 29-Oct-2006.) $)
    dffo3 $p |- ( F : A -onto-> B <-> ( F : A --> B /\
                  A. y e. B E. x e. A y = ( F ` x ) ) ) $=
      ( wfo wf crn wceq wa cv cfv wrex wral dffo2 cab wb wcel wal wi wfn fnrnfv
      ffn eqeq1d simpr ffvelrn adantr eqeltrd exp31 rexlimdv biantrurd syl6rbbr
      syl dfbi2 albidv abeq1 df-ral 3bitr4g bitrd pm5.32i bitri ) CDEFCDEGZEHZD
      IZJVBBKZAKZELZIZACMZBDNZJCDEOVBVDVJVBVDVIBPZDIZVJVBECUAZVDVLQCDEUCVMVCVKD
      ABCEUBUDUMVBVIVEDRZQZBSVNVITZBSVLVJVBVOVPBVBVPVIVNTZVPJVOVBVQVPVBVHVNACVB
      VFCRZVHVNVBVRJZVHJVEVGDVSVHUEVSVGDRVHCDVFEUFUGUHUIUJUKVIVNUNULUOVIBDUPVIB
      DUQURUSUTVA $.

    $( Alternate definition of an onto mapping.  (Contributed by NM,
       20-Mar-2007.) $)
    dffo4 $p |- ( F : A -onto-> B <->
                ( F : A --> B /\ A. y e. B E. x e. A x F y ) ) $=
      ( wfo wf cv wbr wrex wral wa crn wceq dffo2 simpl wcel wex vex wi syl5bbr
      elrn eleq2 biimpar adantll wfn ffn fnbr syl ancrd eximdv syl6ibr ad2antrr
      ex df-rex mpd ralrimiva jca sylbi cfv fnbrfvb eqcom syl6ib sylan reximdva
      biimprd ralimdv imdistani dffo3 sylibr impbii ) CDEFZCDEGZAHZBHZEIZACJZBD
      KZLZVLVMEMZDNZLZVSCDEOWBVMVRVMWAPWBVQBDWBVODQZLVPARZVQWAWCWDVMWAWDWCWDVOV
      TQWAWCAVOEBSUBVTDVOUCUAUDUEVMWDVQTWAWCVMWDVNCQZVPLZARVQVMVPWFAVMVPWEVMECU
      FZVPWETCDEUGZWGVPWECVNVOEUHUNUIUJUKVPACUOULUMUPUQURUSVSVMVOVNEUTZNZACJZBD
      KZLVLVMVRWLVMVQWKBDVMVPWJACVMWGWEVPWJTWHWGWELZVPWIVONZWJWMWNVPCVNVOEVAVFW
      IVOVBVCVDVEVGVHABCDEVIVJVK $.

    $( Alternate definition of an onto mapping.  (Contributed by NM,
       20-Mar-2007.) $)
    dffo5 $p |- ( F : A -onto-> B <->
                ( F : A --> B /\ A. y e. B E. x x F y ) ) $=
      ( wfo wf cv wbr wrex wral wa wex dffo4 rexex ralimi anim2i wcel wfn wi ex
      ffn fnbr syl ancrd eximdv df-rex syl6ibr ralimdv imdistani impbii bitri )
      CDEFCDEGZAHZBHZEIZACJZBDKZLZUMUPAMZBDKZLZABCDENUSVBURVAUMUQUTBDUPACOPQUMV
      AURUMUTUQBDUMUTUNCRZUPLZAMUQUMUPVDAUMUPVCUMECSZUPVCTCDEUBVEUPVCCUNUOEUCUA
      UDUEUFUPACUGUHUIUJUKUL $.
  $}

  ${
    $d F x y $.  $d A x y $.  $d B x y $.  $d C x y $.
    $( Property of a surjective function.  (Contributed by Jeff Madsen,
       4-Jan-2011.) $)
    foelrn $p |- ( ( F : A -onto-> B /\ C e. B )
                                  -> E. x e. A C = ( F ` x ) ) $=
      ( vy wfo cv wceq wrex wral wcel dffo3 simprbi eqeq1 rexbidv rspccva sylan
      cfv wf ) BCEGZFHZAHESZIZABJZFCKZDCLDUCIZABJZUABCETUFAFBCEMNUEUHFDCUBDIUDU
      GABUBDUCOPQR $.
  $}

  ${
    $d F x y z $.  $d G x y z $.  $d A y z $.  $d B x y z $.  $d C x y z $.
    $( If a composition of two functions is surjective, then the function on
       the left is surjective.  (Contributed by Jeff Madsen, 16-Jun-2011.) $)
    foco2 $p |- ( ( F : B --> C /\ G : A --> B /\
                        ( F o. G ) : A -onto-> C ) -> F : B -onto-> C ) $=
      ( vy vx vz wf ccom wfo w3a cv cfv wceq wrex wral wa wcel adantll sylanbrc
      simp1 foelrn ffvelrn fvco3 fveq2 eqeq2d rspcev syl2anc rexbidv syl5ibrcom
      eqeq1 rexlimdva syl5 impl ralrimiva 3impa dffo3 ) BCDIZABEIZACDEJZKZLUSFM
      ZGMZDNZOZGBPZFCQZBCDKUSUTVBUBUSUTVBVHUSUTRZVBRVGFCVIVBVCCSZVGVBVJRVCHMZVA
      NZOZHAPVIVGHACVCVAUCVIVMVGHAVIVKASZRZVGVMVLVEOZGBPZVOVKENZBSZVLVRDNZOZVQU
      TVNVSUSABVKEUDTUTVNWAUSABVKDEUETVPWAGVRBVDVROVEVTVLVDVRDUFUGUHUIVMVFVPGBV
      CVLVEULUJUKUMUNUOUPUQGFBCDURUA $.
  $}

  ${
    $d w x y z A $.  $d x y z B $.  $d y z C $.  $d w y z F $.
    fmpt.1 $e |- F = ( x e. A |-> C ) $.
    $( Functionality of the mapping operation.  (Contributed by Mario Carneiro,
       26-Jul-2013.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fmpt $p |- ( A. x e. A C e. B <-> F : A --> B ) $=
      ( vy wcel wral wf wfn crn wss fnmpt cv wceq wrex cab rnmpt wa biimparc ex
      r19.29 rexlimivw syl abssdv syl5eqss df-f sylanbrc crab ccnv cima fimacnv
      eleq1 mptpreima syl5reqr rabid2 sylib impbii ) DCHZABIZBCEJZVAEBKELZCMVBA
      BDECFNVAVCGOZDPZABQZGRCAGBDEFSVAVFGCVAVFVDCHZVAVFTUTVETZABQVGUTVEABUCVHVG
      ABVEVGUTVDDCUNUAUDUEUBUFUGBCEUHUIVBBUTABUJZPVAVBVIEUKCULBABDCEFUOBCEUMUPU
      TABUQURUS $.

    $( Express bijection for a mapping operation.  (Contributed by Mario
       Carneiro, 30-May-2015.)  (Revised by Mario Carneiro, 4-Dec-2016.) $)
    f1ompt $p |- ( F : A -1-1-onto-> B <->
        ( A. x e. A C e. B /\ A. y e. B E! x e. A y = C ) ) $=
      ( vz wa cv wceq wral wcel wfn wbr weu nfcv bitri vex 3bitr4i wf wf1o wreu
      ccnv wb ffn dff1o4 baib syl cres fnres cmpt nfmpt1 nfcxfr nfv breq1 copab
      nfbr df-mpt eqtri breqi cop df-br opabid syl6bb cbveu brcnv df-reu ralbii
      eubii wrel cdm wss relcnv crn df-rn frn syl5eqssr relssres sylancr fneq1d
      syl5bbr bitr4d pm5.32i f1of pm4.71ri fmpt anbi1i ) CDFUAZCDFUBZIWIBJZEKZA
      CUCZBDLZIWJEDMACLZWNIWIWJWNWIWJFUDZDNZWNWIFCNZWJWQUECDFUFWJWRWQCDFUGUHUIW
      NWPDUJZDNZWIWQWTWKHJZWPOZHPZBDLWNBHDWPUKXCWMBDXAWKFOZHPAJZCMWLIZAPXCWMXDX
      FHAAXAWKFAXAQAFACEULZGACEUMUNAWKQURXFHUOXAXEKXDXEWKFOZXFXAXEWKFUPXHXEWKXF
      ABUQZOZXFXEWKFXIFXGXIGABCEUSUTVAXJXEWKVBXIMXFXEWKXIVCXFABVDRRVEVFXBXDHWKX
      AFBSHSVGVJWLACVHTVIRWIDWSWPWIWPVKWPVLZDVMWSWPKFVNWIXKFVODFVPCDFVQVRWPDVSV
      TWAWBWCWDWJWICDFWEWFWOWIWNACDEFGWGWHT $.

    fmpti.2 $e |- ( x e. A -> C e. B ) $.
    $( Functionality of the mapping operation.  (Contributed by NM,
       19-Mar-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    fmpti $p |- F : A --> B $=
      ( wcel wral wf rgen fmpt mpbi ) DCHZABIBCEJNABGKABCDEFLM $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x ph $.
    fmptd.1 $e |- ( ( ph /\ x e. A ) -> B e. C ) $.
    fmptd.2 $e |- F = ( x e. A |-> B ) $.
    $( Domain and codomain of the mapping operation; deduction form.
       (Contributed by Mario Carneiro, 13-Jan-2013.) $)
    fmptd $p |- ( ph -> F : A --> C ) $=
      ( wcel wral wf ralrimiva fmpt sylib ) ADEIZBCJCEFKAOBCGLBCEDFHMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( A function maps to a class to which all values belong.  (Contributed by
       NM, 3-Dec-2003.) $)
    ffnfv $p |- ( F : A --> B <-> ( F Fn A /\ A. x e. A ( F ` x ) e. B ) ) $=
      ( vy wf wfn cv cfv wcel wral ffn ffvelrn ralrimiva jca crn wss simpl wceq
      wa wrex fvelrnb biimpd nfra1 nfv wi rsp eleq1 biimpcd syl6 rexlimd sylan9
      ssrdv df-f sylanbrc impbii ) BCDFZDBGZAHZDIZCJZABKZTZUQURVBBCDLUQVAABBCUS
      DMNOVCURDPZCQUQURVBRVCEVDCUREHZVDJZUTVESZABUAZVBVECJZURVFVHABVEDUBUCVBVGV
      IABVAABUDVIAUEVBUSBJVAVGVIUFVAABUGVGVAVIUTVECUHUIUJUKULUMBCDUNUOUP $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z F $.  $d x y z $.
    ffnfvf.1 $e |- F/_ x A $.
    ffnfvf.2 $e |- F/_ x B $.
    ffnfvf.3 $e |- F/_ x F $.
    $( A function maps to a class to which all values belong.  This version of
       ~ ffnfv uses bound-variable hypotheses instead of distinct variable
       conditions.  (Contributed by NM, 28-Sep-2006.) $)
    ffnfvf $p |- ( F : A --> B <-> ( F Fn A /\ A. x e. A ( F ` x ) e. B ) ) $=
      ( vz wf wfn cv cfv wcel wral wa ffnfv nfcv nffv nfel nfv weq fveq2 eleq1d
      cbvralf anbi2i bitri ) BCDIDBJZHKZDLZCMZHBNZOUGAKZDLZCMZABNZOHBCDPUKUOUGU
      JUNHABHBQEAUICAUHDGAUHQRFSUNHTHAUAUIUMCUHULDUBUCUDUEUF $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x y F $.
    $( An upper bound for range determined by function values.  (Contributed by
       NM, 8-Oct-2004.) $)
    fnfvrnss $p |- ( ( F Fn A /\ A. x e. A ( F ` x ) e. B ) -> ran F C_ B ) $=
      ( wfn cv cfv wcel wral wa wf crn wss ffnfv frn sylbir ) DBEAFDGCHABIJBCDK
      DLCMABCDNBCDOP $.
  $}

  ${
    $d x A $.  $d x C $.
    rnmptss.1 $e |- F = ( x e. A |-> B ) $.
    $( The range of an operation given by the "maps to" notation as a subset.
       (Contributed by Thierry Arnoux, 24-Sep-2017.) $)
    rnmptss $p |- ( A. x e. A B e. C -> ran F C_ C ) $=
      ( wcel wral wf crn wss fmpt frn sylbi ) CDGABHBDEIEJDKABDCEFLBDEMN $.
  $}

  ${
    $d x A $.  $d y A $.  $d y C $.  $d y F $.  $d x ph $.  $d y ph $.
    fmpt2d.2 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    fmpt2d.1 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    fmpt2d.3 $e |- ( ( ph /\ y e. A ) -> ( F ` y ) e. C ) $.
    $( Domain and codomain of the mapping operation; deduction form.
       (Contributed by NM, 27-Dec-2014.) $)
    fmpt2d $p |- ( ph -> F : A --> C ) $=
      ( wfn cv cfv wcel wral wf cmpt ralrimiva eqid fnmpt fneq1d ffnfv sylanbrc
      syl mpbird ) AGDLZCMGNFOZCDPDFGQAUGBDERZDLZAEHOZBDPUJAUKBDISBDEUIHUITUAUE
      ADGUIJUBUFAUHCDKSCDFGUCUD $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( A necessary and sufficient condition for a restricted function.
       (Contributed by Mario Carneiro, 14-Nov-2013.) $)
    ffvresb $p |- ( Fun F -> ( ( F |` A ) : A --> B <->
        A. x e. A ( x e. dom F /\ ( F ` x ) e. B ) ) ) $=
      ( wfun cres wf cv cdm wcel cfv wa wral fdm cin dmres inss2 adantl wfn wss
      eqsstri syl6eqssr sselda wceq fvres ffvelrn eqeltrrd jca ralrimiva ralimi
      crn simpl dfss3 sylibr funfn fnssres sylanb sylan2 eleq1d syl5ibr ralimia
      simpr fnfvrnss syl2anc df-f sylanbrc ex impbid2 ) DEZBCDBFZGZAHZDIZJZVLDK
      ZCJZLZABMZVKVQABVKVLBJZLZVNVPVKBVMVLVKBVJIZVMBCVJNWABVMOVMDBPBVMQUAUBUCVT
      VLVJKZVOCVSWBVOUDVKVLBDUEZRBCVLVJUFUGUHUIVIVRVKVIVRLZVJBSZVJUKCTZVKVRVIBV
      MTZWEVRVNABMWGVQVNABVNVPULUJABVMUMUNVIDVMSWGWEDUOVMBDUPUQURZWDWEWBCJZABMZ
      WFWHVRWJVIVQWIABVQWIVSVPVNVPVBVSWBVOCWCUSUTVARABCVJVCVDBCVJVEVFVGVH $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x y ph $.  $d y ps $.  $d x ch $.
    f1oresrab.1 $e |- F = ( x e. A |-> C ) $.
    f1oresrab.2 $e |- ( ph -> F : A -1-1-onto-> B ) $.
    f1oresrab.3 $e |- ( ( ph /\ x e. A /\ y = C ) -> ( ch <-> ps ) ) $.
    $( Build a bijection between restricted abstract builders, given a
       bijection between the base classes, deduction version.  (Contributed by
       Thierry Arnoux, 17-Aug-2018.) $)
    f1oresrab $p |- ( ph -> ( F |` { x e. A | ps } ) :
                               { x e. A | ps } -1-1-onto-> { y e. B | ch } ) $=
      ( crab ccnv cres wf1o syl wceq wb wcel wfun f1ofun funcnvcnv 3syl wf1 wss
      cima f1ocnv f1of1 ssrab2 f1ores sylancl mptpreima cv wa wi 3expia alrimiv
      wal wral f1of fmpt sylibr r19.21bi elrab3t syl2anc rabbidva syl5eq f1oeq3
      wf mpbid f1orescnv rescnvcnv f1oeq1 ax-mp sylib ) ABDFMZCEGMZINZNZVQOZPZV
      QVRIVQOZPZAVTUAZVRVQVSVROZPZWBAFGIPZIUAWEKFGIUBIUCUDAVRVSVRUGZWFPZWGAGFVS
      UEZVRGUFWJAGFVSPZWKAWHWLKFGIUHQGFVSUIQCEGUJGFVRVSUKULAWIVQRWJWGSAWIHVRTZD
      FMVQDFHVRIJUMAWMBDFADUNFTZUOZEUNHRZCBSZUPZEUSHGTZWMBSWOWREAWNWPWQLUQURAWS
      DFAFGIVJZWSDFUTAWHWTKFGIVAQDFGHIJVBVCVDCBEHGVEVFVGVHWIVQVRWFVIQVKVQVRVSVL
      VFWAWCRWBWDSIVQVMVQVRWAWCVNVOVP $.
  $}

  ${
    $d u v w x z A $.  $d u x y B $.  $d u w z F $.  $d u w z G $.  $d u y R $.
    $d u w x z ph $.  $d u x S $.  $d u v w y z T $.
    fmptco.1 $e |- ( ( ph /\ x e. A ) -> R e. B ) $.
    fmptco.2 $e |- ( ph -> F = ( x e. A |-> R ) ) $.
    fmptco.3 $e |- ( ph -> G = ( y e. B |-> S ) ) $.
    fmptco.4 $e |- ( y = R -> S = T ) $.
    $( Composition of two functions expressed as ordered-pair class
       abstractions.  If ` F ` has the equation ( x + 2 ) and ` G ` the
       equation ( 3 * z ) then ` ( G o. F ) ` has the equation ( 3 * ( x +
       2 ) ) .  (Contributed by FL, 21-Jun-2012.)  (Revised by Mario Carneiro,
       24-Jul-2014.) $)
    fmptco $p |- ( ph -> ( G o. F ) = ( x e. A |-> T ) ) $=
      ( vu cv wbr wa wcel wceq vz vw vv ccom cmpt relco wfun wrel funmpt funrel
      ax-mp wex csb cop cfv eqid fmptd feq1d mpbird ffun syl funbrfv imp eqcomd
      wf sylan a1d expimpd pm4.71rd exbidv cvv wi exsimpl sylibr a1i cdm adantr
      isset eleq2d biimpar funfvex syl2anc adantrr ex wb breq2 anbi12d ceqsexgv
      fdm breq1 funfvbrb bitr3d fveq1d eqidd breq123d nfcv nfv nffvmpt1 nfcsb1v
      nfbr nfeq2 nfbi nfim fveq2 breq1d csbeq1a eqeq2d bibi12d imbi2d vex simpl
      eleq1d simpr eqeq12d df-mpt brabga sylancl fvmpt2 3bitr4d expcom vtoclgaf
      biantrurd impcom bitrd sylan9bbr pm5.21ndd opelco copab eleq2i nfan eleq1
      pm5.32da eqeq1 anbi2d opelopabf bitri 3bitr4g eqrelrdv ) AUAUBJIUDZBDHUEZ
      JIUFYTUGYTUHBDHUIYTUJUKAUAPZOPZIQZUUBUBPZJQZRZOULZUUADSZUUDBUUAHUMZTZRZUU
      AUUDUNZYSSUULYTSZAUUGUUBUUAIUOZTZUUFRZOULZUUKAUUFUUPOAUUFUUOAUUCUUEUUOAUU
      CRZUUOUUEUURUUNUUBAIUGZUUCUUNUUBTZADEIVEZUUSAUVADEBDFUEZVEABDFEUVBKUVBUPZ
      UQADEIUVBLURUSZDEIUTVAZUUSUUCUUTUUAUUBIVBVCVFVDVGVHVIVJAUUNVKSZUUQUUKUUQU
      VFVLAUUQUUOOULUVFUUOUUFOVMOUUNVRVNVOAUUKUVFAUUHUVFUUJAUUHRUUSUUAIVPZSZUVF
      AUUSUUHUVEVQAUVHUUHAUVGDUUAAUVAUVGDTUVDDEIWIVAVSZVTUUAIWAWBWCWDAUVFUUQUUK
      WEUVFUUQUUAUUNIQZUUNUUDJQZRZAUUKUUFUVLOUUNVKUUOUUCUVJUUEUVKUUBUUNUUAIWFUU
      BUUNUUDJWJWGWHAUVLUUHUUAUVBUOZUUDCEGUEZQZRUUKAUVJUUHUVKUVOAUVHUVJUUHAUUSU
      VHUVJWEUVEUUAIWKVAUVIWLAUUNUVMUUDUUDJUVNAUUAIUVBLWMMAUUDWNWOWGAUUHUVOUUJU
      UHAUVOUUJWEZABPZUVBUOZUUDUVNQZUUDHTZWEZVLAUVPVLBUUADBUUAWPAUVPBABWQUVOUUJ
      BBUVMUUDUVNBDFUUAWRBUVNWPBUUDWPWTBUUDUUIBUUAHWSZXAXBXCUVQUUATZUWAUVPAUWCU
      VSUVOUVTUUJUWCUVRUVMUUDUVNUVQUUAUVBXDXEUWCHUUIUUDBUUAHXFZXGXHXIAUVQDSZUWA
      AUWERZFUUDUVNQZFESZUVTRZUVSUVTUWFUWHUUDVKSUWGUWIWEKUBXJZCPZESZUUBGTZRUWIC
      OFUUDUVNEVKUWKFTZUUBUUDTZRZUWLUWHUWMUVTUWPUWKFEUWNUWOXKXLUWPUUBUUDGHUWNUW
      OXMUWNGHTUWONVQXNWGCOEGXOXPXQUWFUVRFUUDUVNUWFUWEUWHUVRFTAUWEXMKBDFEUVBUVC
      XRWBXEUWFUWHUVTKYBXSXTYAYCYLYDYEWDYFYDOUUAUUDJIUAXJZUWJYGUUMUULUWEUCPZHTZ
      RZBUCYHZSUUKYTUXAUULBUCDHXOYIUWTUUHUWRUUITZRUUKBUCUUAUUDUUHUXBBUUHBWQBUWR
      UUIUWBXAYJUUKUCWQUWQUWJUWCUWEUUHUWSUXBUVQUUADYKUWCHUUIUWRUWDXGWGUWRUUDTUX
      BUUJUUHUWRUUDUUIYMYNYOYPYQYR $.
  $}

  ${
    $d w x y z B $.  $d w y z R $.  $d w x z S $.  $d x z A $.  $d y z T $.
    $d z ph $.
    fmptcof.1 $e |- ( ph -> A. x e. A R e. B ) $.
    fmptcof.2 $e |- ( ph -> F = ( x e. A |-> R ) ) $.
    fmptcof.3 $e |- ( ph -> G = ( y e. B |-> S ) ) $.
    ${
      fmptcof.4 $e |- ( y = R -> S = T ) $.
      $( Version of ~ fmptco where ` ph ` needn't be distinct from ` x ` .
         (Contributed by NM, 27-Dec-2014.) $)
      fmptcof $p |- ( ph -> ( G o. F ) = ( x e. A |-> T ) ) $=
        ( vz vw csb cmpt wceq nfcv ccom cv wcel wral nfcsb1v nfel1 csbeq1a rspc
        eleq1d mpan9 cbvmpt syl6eq csbeq1 fmptco csbeq1d syl6eqr csbiegf ralimi
        nfcsb eqid nfcvd mpteq12 sylancr syl eqtrd ) AJIUAZBDCFGQZRZBDHRZAVFODC
        BOUBZFQZGQZRVHAOPDEVKCPUBZGQZVLIJAFEUCZBDUDZVJDUCVKEUCZKVOVQBVJDBVKEBVJ
        FUEZUFBUBVJSZFVKEBVJFUGZUIUHUJAIBDFRODVKRLBODFVKOFTVRVTUKULAJCEGRPEVNRM
        CPEGVNPGTCVMGUECVMGUGUKULCVMVKGUMUNBODVGVLOVGTBCVKGVRBGTUSVSCFVKGVTUOUK
        UPAVPVHVISZKVPDDSVGHSZBDUDWADUTVOWBBDCFGHEVOCHVANUQURBDVGDHVBVCVDVE $.
    $}

    $( Composition of two functions expressed as mapping abstractions.
       (Contributed by NM, 22-May-2006.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    fmptcos $p |- ( ph -> ( G o. F ) = ( x e. A |-> [_ R / y ]_ S ) ) $=
      ( vz cv csb cmpt nfcv nfcsb1v csbeq1a cbvmpt syl6eq csbeq1 fmptcof ) ABMD
      EFCMNZGOZCFGOHIJKAICEGPMEUEPLCMEGUEMGQCUDGRCUDGSTUACUDFGUBUC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d x y D $.  $d x E $.
    $( Express composition of two functions as a maps-to applying both in
       sequence.  (Contributed by Stefan O'Rear, 5-Oct-2014.)  (Proof shortened
       by Mario Carneiro, 27-Dec-2014.) $)
    fcompt $p |- ( ( A : D --> E /\ B : C --> D ) -> ( A o. B ) = ( x e. C |->
        ( A ` ( B ` x ) ) ) ) $=
      ( vy wf wa cv cfv wcel ffvelrn adantll wfn cmpt wceq ffn dffn5im syl
      adantl adantr fveq2 fmptco ) EFBHZDECHZIZAGDEAJZCKZGJZBKZUIBKCBUFUHDLUIEL
      UEDEUHCMNUGCDOZCADUIPQUFULUEDECRUAADCSTUGBEOZBGEUKPQUEUMUFEFBRUBGEBSTUJUI
      BUCUD $.
  $}

  ${
    $d F x y $.  $d I x $.  $d X x y $.  $d Y x y $.
    $( Composition with a constant function.  (Contributed by Stefan O'Rear,
       11-Mar-2015.) $)
    fcoconst $p |- ( ( F Fn X /\ Y e. X ) ->
        ( F o. ( I X. { Y } ) ) = ( I X. { ( F ` Y ) } ) ) $=
      ( vx vy wfn wcel wa csn cxp ccom cfv cmpt simplr wceq fconstmpt a1i cvv
      cv wf simpl dffn2 sylib feqmptd fveq2 fmptco syl6eqr ) ACGZDCHZIZABDJKZLE
      BDAMZNBUMJKUKEFBCDFTZAMUMULAUIUJETBHOULEBDNPUKEBDQRUKFCSAUKUICSAUAUIUJUBC
      AUCUDUEUNDAUFUGEBUMQUH $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    fsn.1 $e |- A e. _V $.
    fsn.2 $e |- B e. _V $.
    $( A function maps a singleton to a singleton iff it is the singleton of an
       ordered pair.  (Contributed by NM, 10-Dec-2003.) $)
    fsn $p |- ( F : { A } --> { B } <-> F = { <. A , B >. } ) $=
      ( vx vy csn cop wceq cv wcel wb wal wa elsn weu eleq1d bitr4i bitr2i wreu
      wf opelf anbi12i sylib ex snid feu mpan2 anbi1i opeq2 pm5.32i ancom eubii
      eueq1 biantru euanv df-reu sylibr opeq12 syl5ibrcom impbid vex opex elsnc
      3bitr4i opth2 syl6bb alrimivv wrel frel relsnop eqrel sylancl mpbird wf1o
      f1osn f1oeq1 mpbiri f1of syl impbii ) AHZBHZCUBZCABIZHZJZWEWHFKZGKZIZCLZW
      KWGLZMZGNFNZWEWNFGWEWLWIAJZWJBJZOZWMWEWLWRWEWLWRWEWLOWIWCLZWJWDLZOWRWCWDW
      IWJCUCWSWPWTWQFAPGBPZUDUEUFWEWLWRWFCLZWEAWJIZCLZGWDUAZXBWEAWCLXEADUGGWCWD
      ACUHUIXBWQOZGQZWTXDOZGQXBXEXFXHGXHWQXDOZXFWTWQXDXAUJXIWQXBOXFWQXDXBWQXCWF
      CWJBAUKRULXBWQUMSTUNXBXBWQGQZOXGXJXBGBEUOUPXBWQGUQSXDGWDURVFUSWRWKWFCWIWJ
      ABUTRVAVBWMWKWFJWRWKWFWIWJFVCGVCVDVEWIWJABDEVGTVHVIWECVJWGVJWHWOMWCWDCVKA
      BDEVLFGCWGVMVNVOWHWCWDCVPZWEWHXKWCWDWGVPABDEVQWCWDCWGVRVSWCWDCVTWAWB $.
  $}

  ${
    $d A a b $.  $d B b $.  $d F a b $.
    $( A function maps a singleton to a singleton iff it is the singleton of an
       ordered pair.  (Contributed by NM, 26-Oct-2012.) $)
    fsng $p |- ( ( A e. C /\ B e. D ) ->
                 ( F : { A } --> { B } <-> F = { <. A , B >. } ) ) $=
      ( va vb cv csn wf cop wceq wb sneq feq2d opeq1 sneqd eqeq2d bibi12d vex
      feq3 syl opeq2 fsn vtocl2g ) FHZIZGHZIZEJZEUFUHKZIZLZMAIZUIEJZEAUHKZIZLZM
      UNBIZEJZEABKZIZLZMFGABCDUFALZUJUOUMURVDUGUNUIEUFANOVDULUQEVDUKUPUFAUHPQRS
      UHBLZUOUTURVCVEUIUSLUOUTMUHBNUIUSUNEUAUBVEUQVBEVEUPVAUHBAUCQRSUFUHEFTGTUD
      UE $.
  $}

  ${
    fsn2.1 $e |- A e. _V $.
    $( A function that maps a singleton to a class is the singleton of an
       ordered pair.  (Contributed by NM, 19-May-2004.) $)
    fsn2 $p |- ( F : { A } --> B <->
               ( ( F ` A ) e. B /\ F = { <. A , ( F ` A ) >. } ) ) $=
      ( csn wf cfv cvv wcel cop wceq wa wfn ffn snid funfvex mpan2 syl wb cima
      funfni adantr ffvelrn crn dffn3 biimpi cdm imadmrn imaeq2d syl5eqr fnsnfv
      elex fndm eqtr4d feq3 mpbid jca wss snssi ancoms sylan impbii fsng anbi2d
      fss mpan syl5bb pm5.21nii ) AEZBCFZACGZHIZVKBIZCAVKJEKZLZVJCVIMZVLVIBCNZV
      PAVIIZVLADOZVLVIACACPUAQRVMVLVNVKBULUBVJVMVIVKEZCFZLZVLVOVJWBVJVMWAVJVRVM
      VSVIBACUCQVJVPWAVQVPVICUDZCFZWAVPWDVICUEUFVPWCVTKWDWASVPWCCVITZVTVPWCCCUG
      ZTWECUHVPWFVICVICUMUIUJVPVRVTWEKVSVIACUKQUNWCVTVICUORUPRUQVMVTBURZWAVJVKB
      USWAWGVJVIVTBCVEUTVAVBVLWAVNVMAHIVLWAVNSDAVKHHCVCVFVDVGVH $.
  $}

  $( The cross product of two singletons.  (Contributed by Mario Carneiro,
     30-Apr-2015.) $)
  xpsng $p |- ( ( A e. V /\ B e. W ) ->
    ( { A } X. { B } ) = { <. A , B >. } ) $=
    ( wcel wa csn cxp wf cop wceq fconstg adantl fsng mpbid ) ACEZBDEZFAGZBGZRS
    HZIZTABJGKQUAPRBDLMABCDTNO $.

  ${
    xpsn.1 $e |- A e. _V $.
    xpsn.2 $e |- B e. _V $.
    $( The cross product of two singletons.  (Contributed by NM,
       4-Nov-2006.) $)
    xpsn $p |- ( { A } X. { B } ) = { <. A , B >. } $=
      ( cvv wcel csn cxp cop wceq xpsng mp2an ) AEFBEFAGBGHABIGJCDABEEKL $.
  $}

  ${
    dfmpt.1 $e |- B e. _V $.
    $( Alternate definition for the "maps to" notation ~ df-mpt (although it
       requires that ` B ` be a set).  (Contributed by NM, 24-Aug-2010.)
       (Revised by Mario Carneiro, 30-Dec-2016.) $)
    dfmpt $p |- ( x e. A |-> B ) = U_ x e. A { <. x , B >. } $=
      ( cmpt cv csn cxp ciun cop dfmpt3 wceq wcel vex xpsn a1i iuneq2i eqtri )
      ABCEABAFZGCGHZIABSCJGZIABCKABTUATUALSBMSCANDOPQR $.

    $d x y $.  $d y A $.  $d y B $.
    $( A function expressed as the range of another function.  (Contributed by
       Mario Carneiro, 22-Jun-2013.)  (Proof shortened by Mario Carneiro,
       31-Aug-2015.) $)
    fnasrn $p |- ( x e. A |-> B ) = ran ( x e. A |-> <. x , B >. ) $=
      ( vy cmpt cv cop csn ciun crn dfmpt wcel wrex wceq eqid rnmpt elsn eqtr4i
      cab rexbii abbii df-iun ) ABCFABAGCHZIZJZABUDFZKZABCDLUHEGZUEMZABNZETZUFU
      HUIUDOZABNZETULAEBUDUGUGPQUKUNEUJUMABEUDRUAUBSAEBUEUCSS $.
  $}

  ${
    $( Alternate definition for the "maps to" notation ~ df-mpt (which requires
       that ` B ` be a set).  (Contributed by Jim Kingdon, 9-Jan-2019.) $)
    dfmptg $p |- ( A. x e. A B e. V ->
        ( x e. A |-> B ) = U_ x e. A { <. x , B >. } ) $=
      ( wcel wral cmpt csn cxp ciun cop dfmpt3 wceq cvv vex xpsng ralimi iuneq2
      cv mpan syl syl5eq ) CDEZABFZABCGABASZHCHIZJZABUECKHZJZABCLUDUFUHMZABFUGU
      IMUCUJABUENEUCUJAOUECNDPTQABUFUHRUAUB $.

    $d x y $.  $d y A $.  $d y B $.
    $( A function expressed as the range of another function.  (Contributed by
       Jim Kingdon, 9-Jan-2019.) $)
    fnasrng $p |- ( A. x e. A B e. V ->
        ( x e. A |-> B ) = ran ( x e. A |-> <. x , B >. ) ) $=
      ( vy wcel wral cmpt cv cop csn ciun crn dfmptg wrex cab wceq rnmpt eqtr4i
      eqid elsn rexbii abbii df-iun syl6eqr ) CDFABGABCHABAICJZKZLZABUFHZMZABCD
      NUJEIZUGFZABOZEPZUHUJUKUFQZABOZEPUNAEBUFUIUITRUMUPEULUOABEUFUAUBUCSAEBUGU
      DSUE $.
  $}

  $( If ` A ` is not in ` C ` , then the restriction of a singleton of
     ` <. A , B >. ` to ` C ` is null.  (Contributed by Scott Fenton,
     15-Apr-2011.) $)
  ressnop0 $p |- ( -. A e. C -> ( { <. A , B >. } |` C ) = (/) ) $=
    ( wcel wn cop cvv cxp csn cres c0 wceq opelxp1 con3i cin df-res incom eqtri
    disjsn biimpri syl5eq syl ) ACDZEABFZCGHZDZEZUDIZCJZKLUFUCABCGMNUGUIUEUHOZK
    UIUHUEOUJUHCPUHUEQRUJKLUGUEUDSTUAUB $.

  ${
    fpr.1 $e |- A e. _V $.
    fpr.2 $e |- B e. _V $.
    fpr.3 $e |- C e. _V $.
    fpr.4 $e |- D e. _V $.
    $( A function with a domain of two elements.  (Contributed by Jeff Madsen,
       20-Jun-2010.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    fpr $p |- ( A =/= B
                -> { <. A , C >. , <. B , D >. } : { A , B } --> { C , D } ) $=
      ( wne cop cpr wfn crn wa jctir sylibr csn cun df-pr rnsnop wss wfun funpr
      wf cdm wceq dmprop df-fn rneqi rnun uneq12i eqtr4i 3eqtri eqimssi df-f )
      ABIZACJZBDJZKZABKZLZUSMZCDKZUAZNUTVCUSUDUPVAVDUPUSUBZUSUEUTUFZNVAUPVEVFAB
      CDEFGHUCACBDGHUGOUSUTUHPVBVCVBUQQZURQZRZMVGMZVHMZRZVCUSVIUQURSUIVGVHUJVLC
      QZDQZRVCVJVMVKVNACETBDFTUKCDSULUMUNOUTVCUSUOP $.
  $}

  $( A function with a domain of two elements.  (Contributed by FL,
     2-Feb-2014.) $)
  fprg $p |- ( ( ( A e. E /\ B e. F ) /\ ( C e. G /\ D e. H ) /\ A =/= B )
                -> { <. A , C >. , <. B , D >. } : { A , B } --> { C , D } ) $=
    ( wcel wa wne cop cpr crn wceq csn cun rnsnopg 3ad2ant1 df-pr w3a wfn fnprg
    wss adantr adantl uneq12d rneqi rnun eqtri 3eqtr4g eqimss syl df-f sylanbrc
    wf ) AEIZBFIZJZCGIDHIJZABKZUAZACLZBDLZMZABMZUBVENZCDMZUDZVFVHVEUPABCDEFGHUC
    VBVGVHOVIVBVCPZNZVDPZNZQZCPZDPZQVGVHVBVKVOVMVPUSUTVKVOOZVAUQVQURACERUESUSUT
    VMVPOZVAURVRUQBDFRUFSUGVGVJVLQZNVNVEVSVCVDTUHVJVLUIUJCDTUKVGVHULUMVFVHVEUNU
    O $.

  $( A function with a domain of three elements.  (Contributed by Alexander van
     der Vekens, 4-Dec-2017.) $)
  ftpg $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                 /\ ( A e. F /\ B e. G /\ C e. H )
                 /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
               -> { <. X , A >. , <. Y , B >. , <. Z , C >. } :
                  { X , Y , Z } --> { A , B , C } ) $=
    ( wcel w3a wne cpr wf wceq wa wn csn cun cop ctp cin c0 3simpa simp1 syl3an
    fprg eqidd wb simp3 anim12i 3adant3 syl mpbird df-ne wo elpri eqcom orbi12i
    fsng sylib oranim con2i syl2anb 3adant1 3ad2ant3 disjsn sylibr fun syl21anc
    df-tp feq1i feq23i bitri ) JDMZKHMZLIMZNZAEMZBFMZCGMZNZJKOZJLOZKLOZNZNZJKPZ
    LUAZUBZABPZCUAZUBZJAUCZKBUCZPZLCUCZUAZUBZQZJKLUDZABCUDZWQWRWTUDZQZWJWKWNWSQ
    ZWLWOXAQZWKWLUEUFRZXCWAVRVSSWEWBWCSWIWFXHVRVSVTUGWBWCWDUGWFWGWHUHJKABDHEFUJ
    UIWJXIXAXARZWJXAUKWJVTWDSZXIXKULWAWEXLWIWAVTWEWDVRVSVTUMWBWCWDUMUNUOLCIGXAV
    CUPUQWJLWKMZTZXJWIWAXNWEWGWHXNWFWGJLRZTZKLRZTZXNWHJLURKLURXMXPXRSZXMXOXQUSZ
    XSTXMLJRZLKRZUSXTLJKUTYAXOYBXQLJVALKVAVBVDXOXQVEUPVFVGVHVIWKLVJVKWKWLWNWOWS
    XAVLVMXGXDXEXBQXCXDXEXFXBWQWRWTVNVOXDXEWMWPXBJKLVNABCVNVPVQVK $.

  ${
    ftp.a $e |- A e. _V $.
    ftp.b $e |- B e. _V $.
    ftp.c $e |- C e. _V $.
    ftp.d $e |- X e. _V $.
    ftp.e $e |- Y e. _V $.
    ftp.f $e |- Z e. _V $.
    ftp.g $e |- A =/= B $.
    ftp.h $e |- A =/= C $.
    ftp.i $e |- B =/= C $.
    $( A function with a domain of three elements.  (Contributed by Stefan
       O'Rear, 17-Oct-2014.)  (Proof shortened by Alexander van der Vekens,
       23-Jan-2018.) $)
    ftp $p |- { <. A , X >. , <. B , Y >. , <. C , Z >. } : { A , B , C } -->
        { X , Y , Z } $=
      ( cvv wcel w3a wne ctp cop wf 3pm3.2i ftpg mp3an ) APQZBPQZCPQZRDPQZEPQZF
      PQZRABSZACSZBCSZRABCTDEFTADUABEUACFUATUBUFUGUHGHIUCUIUJUKJKLUCULUMUNMNOUC
      DEFPPPPPPABCUDUE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( A function restricted to a singleton.  (Contributed by NM,
       9-Oct-2004.) $)
    fnressn $p |- ( ( F Fn A /\ B e. A ) ->
                  ( F |` { B } ) = { <. B , ( F ` B ) >. } ) $=
      ( vx wcel wfn csn cres cfv cop wceq cv wi sneq reseq2d fveq2 opeq12 mpdan
      wa cvv sneqd eqeq12d imbi2d wss vex snss fnssres sylan2b dffn2 fsn2 bitri
      ssnid fvres ax-mp opeq2i sneqi eqeq2i snssi sylan2 funfvex funfni sylancl
      wf biantrurd syl5rbbr syl5bb mpbid expcom vtoclga impcom ) BAECAFZCBGZHZB
      BCIZJZGZKZVKCDLZGZHZVRVRCIZJZGZKZMVKVQMDBAVRBKZWDVQVKWEVTVMWCVPWEVSVLCVRB
      NOWEWBVOWEWAVNKWBVOKVRBCPVRWABVNQRUAUBUCVKVRAEZWDVKWFSZVTVSFZWDWFVKVSAUDZ
      WHVRADUEZUFAVSCUGZUHWHVRVTIZTEZVTVRWLJZGZKZSZWGWDWHVSTVTVCWQVSVTUIVRTVTWJ
      UJUKWDWPWGWQWOWCVTWNWBWLWAVRVRVSEZWLWAKDULZVRVSCUMUNUOUPUQWGWMWPWGWHWRWMW
      FVKWIWHVRAURWKUSWSWMVSVRVTVRVTUTVAVBVDVEVFVGVHVIVJ $.

    $( The value of a function restricted to a singleton.  (Contributed by NM,
       9-Oct-2004.) $)
    fressnfv $p |- ( ( F Fn A /\ B e. A ) ->
                 ( ( F |` { B } ) : { B } --> C <-> ( F ` B ) e. C ) ) $=
      ( vx wcel wfn csn cres wf cfv wb cv wi wceq sneq reseq2 syl wa cop eleq1d
      feq1d feq2 bitrd fveq2 bibi12d imbi2d fnressn ssnid fvres ax-mp sneqi vex
      opeq2i eqeq2i fsn2 eleq1i syl5rbbr syl5bb sylbir expcom vtoclga impcom
      iba ) BAFDAGZBHZCDVFIZJZBDKZCFZLZVEEMZHZCDVMIZJZVLDKZCFZLZNVEVKNEBAVLBOZV
      RVKVEVSVOVHVQVJVSVMVFOZVOVHLVLBPVTVOVMCVGJVHVTVMCVNVGVMVFDQUBVMVFCVGUCUDR
      VSVPVICVLBDUEUAUFUGVEVLAFZVRVEWASVNVLVPTZHZOZVRAVLDUHWDVNVLVLVNKZTZHZOZVR
      WGWCVNWFWBWEVPVLVLVMFWEVPOEUIVLVMDUJUKZUNULUOVOWECFZWHSZWHVQVLCVNEUMUPVQW
      JWHWKWEVPCWIUQWHWJVDURUSUTRVAVBVC $.
  $}

  $( The value of a constant function.  (Contributed by NM, 30-May-1999.) $)
  fvconst $p |- ( ( F : A --> { B } /\ C e. A ) -> ( F ` C ) = B ) $=
    ( csn wf wcel wa cfv wceq ffvelrn elsni syl ) ABEZDFCAGHCDIZNGOBJANCDKOBLM
    $.

  ${
    $d x A $.  $d x B $.
    $( Express a singleton function in maps-to notation.  (Contributed by NM,
       6-Jun-2006.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.)  (Revised
       by Stefan O'Rear, 28-Feb-2015.) $)
    fmptsn $p |- ( ( A e. V /\ B e. W ) ->
        { <. A , B >. } = ( x e. { A } |-> B ) ) $=
      ( wcel wa csn cmpt cxp cop fconstmpt xpsng syl5reqr ) BDFCEFGABHZCIOCHJBC
      KHAOCLBCDEMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x S $.
    fmptap.0a $e |- A e. _V $.
    fmptap.0b $e |- B e. _V $.
    fmptap.1 $e |- ( R u. { A } ) = S $.
    fmptap.2 $e |- ( x = A -> C = B ) $.
    $( Append an additional value to a function.  (Contributed by NM,
       6-Jun-2006.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fmptap $p |- ( ( x e. R |-> C ) u. { <. A , B >. } ) = ( x e. S |-> C ) $=
      ( cmpt cop csn cun cvv wcel wceq fmptsn mp2an cv elsni syl mpteq2ia mptun
      eqtr4i uneq2i mpteq1 ax-mp 3eqtr2i ) AEDKZBCLMZNUJABMZDKZNAEULNZDKZAFDKZU
      KUMUJUKAULCKZUMBOPCOPUKUQQGHABCOORSAULDCATZULPURBQDCQURBUAJUBUCUEUFAEULDU
      DUNFQUOUPQIAUNFDUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x S $.  $d x ph $.
    fmptapd.0a $e |- ( ph -> A e. _V ) $.
    fmptapd.0b $e |- ( ph -> B e. _V ) $.
    fmptapd.1 $e  |- ( ph -> ( R u. { A } ) = S ) $.
    fmptapd.2 $e  |- ( ( ph /\ x = A ) -> C = B ) $.
    $( Append an additional value to a function.  (Contributed by Thierry
       Arnoux, 3-Jan-2017.) $)
    fmptapd $p    |- ( ph ->
      ( ( x e. R |-> C ) u. { <. A , B >. } ) = ( x e. S |-> C ) ) $=
      ( cmpt cop csn cun cvv wcel wceq fmptsn syl2anc cv elsni sylan2 mpteq2dva
      eqtr4d uneq2d mptun a1i mpteq1d 3eqtr2d ) ABFELZCDMNZOUKBCNZELZOZBFUMOZEL
      ZBGELAULUNUKAULBUMDLZUNACPQDPQULURRHIBCDPPSTABUMEDBUAZUMQAUSCREDRUSCUBKUC
      UDUEUFUQUORABFUMEUGUHABUPGEJUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x ph $.
    fmptpr.1 $e |- ( ph -> A e. V ) $.
    fmptpr.2 $e |- ( ph -> B e. W ) $.
    fmptpr.3 $e |- ( ph -> C e. X ) $.
    fmptpr.4 $e |- ( ph -> D e. Y ) $.
    fmptpr.5 $e |- ( ( ph /\ x = A ) -> E = C ) $.
    fmptpr.6 $e |- ( ( ph /\ x = B ) -> E = D ) $.
    $( Express a pair function in maps-to notation.  (Contributed by Thierry
       Arnoux, 3-Jan-2017.) $)
    fmptpr $p |- ( ph ->
      { <. A , C >. , <. B , D >. } = ( x e. { A , B } |-> E ) ) $=
      ( cun c0 wcel cop cpr csn cmpt wceq df-pr a1i uneq1i uncom un0 3eqtri cvv
      mpt0 elex syl eqtr3i fmptapd syl5eqr uneq1d eqcomi 3eqtrd ) ACEUAZDFUAZUB
      ZVBUCZVCUCZRZBCUCZGUDZVFRBCDUBZGUDVDVGUEAVBVCUFUGAVEVIVFAVEBSGUDZVERZVIVL
      SVERVESRVEVKSVEBGUMUHSVEUIVEUJUKABCEGSVHACHTCULTLCHUNUOAEJTEULTNEJUNUOSVH
      RZVHUEAVHSRVMVHVHSUIVHUJUPUGPUQURUSABDFGVHVJADITDULTMDIUNUOAFKTFULTOFKUNU
      OVHDUCRZVJUEAVJVNCDUFUTUGQUQVA $.
  $}

  $( The value of a restricted identity function.  (Contributed by NM,
     19-May-2004.) $)
  fvresi $p |- ( B e. A -> ( ( _I |` A ) ` B ) = B ) $=
    ( wcel cid cres cfv fvres fvi eqtrd ) BACBDAEFBDFBBADGBAHI $.

  $( Remove an ordered pair not participating in a function value.
     (Contributed by Jim Kingdon, 7-Jan-2019.) $)
  fvunsng $p |- ( ( D e. V /\ B =/= D )
       -> ( ( A u. { <. B , C >. } ) ` D ) = ( A ` D ) ) $=
    ( wcel wne wa cop csn cun cfv cres wceq snidg fvres syl resundir c0 wn un0
    elsni necon3ai ressnop0 uneq2d syl6eq syl5eq fveq1d sylan9req adantr eqtrd
    ) DEFZBDGZHDABCIJZKZLZDADJZMZLZDALZULUMUPDUOUQMZLZUSULDUQFZVBUPNDEOZDUQUOPQ
    UMDVAURUMVAURUNUQMZKZURAUNUQRUMVFURSKURUMVESURUMBUQFZTVESNVGBDBDUBUCBCUQUDQ
    UEURUAUFUGUHUIULUSUTNZUMULVCVHVDDUQAPQUJUK $.

  ${
    fvsn.1 $e |- A e. _V $.
    fvsn.2 $e |- B e. _V $.
    $( The value of a singleton of an ordered pair is the second member.
       (Contributed by NM, 12-Aug-1994.) $)
    fvsn $p |- ( { <. A , B >. } ` A ) = B $=
      ( cop csn wfun wcel cfv wceq funsn cvv opexgOLD mp2an snid funopfv mp2 )
      ABEZFZGRSHASIBJABCDKRALHBLHRLHCDABMNOABSPQ $.
  $}

  ${
    $d A a b $.  $d B b $.
    $( The value of a singleton of an ordered pair is the second member.
       (Contributed by NM, 26-Oct-2012.) $)
    fvsng $p |- ( ( A e. V /\ B e. W ) -> ( { <. A , B >. } ` A ) = B ) $=
      ( va vb cv cop csn cfv opeq1 sneqd id fveq12d eqeq1d opeq2 fveq1d eqeq12d
      wceq vex fvsn vtocl2g ) EGZUCFGZHZIZJZUDSAAUDHZIZJZUDSAABHZIZJZBSEFABCDUC
      ASZUGUJUDUNUCAUFUIUNUEUHUCAUDKLUNMNOUDBSZUJUMUDBUOAUIULUOUHUKUDBAPLQUOMRU
      CUDETFTUAUB $.
  $}

  ${
    fvsnun.1 $e |- A e. _V $.
    fvsnun.2 $e |- B e. _V $.
    fvsnun.3 $e |- G = ( { <. A , B >. } u. ( F |` ( C \ { A } ) ) ) $.
    $( The value of a function with one of its ordered pairs replaced, at the
       replaced ordered pair.  See also ~ fvsnun2 .  (Contributed by NM,
       23-Sep-2007.) $)
    fvsnun1 $p |- ( G ` A ) = B $=
      ( csn cres cfv cop cdif cun c0 cin wceq eqtri ax-mp fvres reseq1i disjdif
      resundir incom resdisj uneq2i un0 fveq1i wcel snid fvsn 3eqtr3i ) AEAIZJZ
      KZAABLIZUMJZKZAEKZBAUNUQUNUPDCUMMZJZNZUMJZUQEVBUMHUAVCUQVAUMJZNZUQUPVAUMU
      CVEUQONUQVDOUQUTUMPZOQVDOQVFUMUTPOUTUMUDUMCUBRUTUMDUESUFUQUGRRRUHAUMUIZUO
      USQAFUJZAUMETSURAUPKZBVGURVIQVHAUMUPTSABFGUKRUL $.

    $( The value of a function with one of its ordered pairs replaced, at
       arguments other than the replaced one.  See also ~ fvsnun1 .
       (Contributed by NM, 23-Sep-2007.) $)
    fvsnun2 $p |- ( D e. ( C \ { A } ) -> ( G ` D ) = ( F ` D ) ) $=
      ( csn cdif wcel cres cfv cop cun c0 wceq 3eqtri fvres reseq1i cin disjdif
      resundir wfn wb fnsn fnresdisj ax-mp mpbi residm uneq12i uncom un0 fveq1i
      3eqtr3a ) DCAJZKZLDFURMZNDEURMZNDFNDENDUSUTUSABOJZUTPZURMVAURMZUTURMZPZUT
      FVBURIUAVAUTURUDVEQUTPUTQPUTVCQVDUTUQURUBQRZVCQRZUQCUCVAUQUEVFVGUFABGHUGU
      QURVAUHUIUJEURUKULQUTUMUTUNSSUODURFTDURETUP $.
  $}

  $( Adjoining a point to a function gives a function.  (Contributed by Stefan
     O'Rear, 28-Feb-2015.) $)
  fsnunf $p |- ( ( F : S --> T /\ ( X e. V /\ -. X e. S ) /\ Y e. T ) ->
      ( F u. { <. X , Y >. } ) : ( S u. { X } ) --> T ) $=
    ( wf wcel wn wa w3a csn cun cop cin c0 wceq simp1 wf1o syl simp2l simp3 fun
    f1osng syl2anc f1of simp2r disjsn sylibr syl21anc wb snssi 3ad2ant3 ssequn2
    wss sylib feq3 mpbid ) ABCGZEDHZEAHIZJZFBHZKZAELZMZBFLZMZCEFNLZMZGZVFBVJGZV
    DUSVEVGVIGZAVEOPQZVKUSVBVCRVDVEVGVISZVMVDUTVCVOUSUTVAVCUAUSVBVCUBEFDBUDUEVE
    VGVIUFTVDVAVNUSUTVAVCUGAEUHUIAVEBVGCVIUCUJVDVHBQZVKVLUKVDVGBUOZVPVCUSVQVBFB
    ULUMVGBUNUPVHBVFVJUQTUR $.

  $( Recover the added point from a point-added function.  (Contributed by
     Stefan O'Rear, 28-Feb-2015.)  (Revised by NM, 18-May-2017.) $)
  fsnunfv $p |- ( ( X e. V /\ Y e. W /\ -. X e. dom F ) ->
      ( ( F u. { <. X , Y >. } ) ` X ) = Y ) $=
    ( wcel cdm wn w3a cop csn cun cres cfv c0 wceq cin dmres 3adant3 syl disjsn
    incom eqtri biimpri syl5eq 3ad2ant3 wb relres reldm0 ax-mp sylibr wfn fnsng
    wrel fnresdm uneq12d resundir uncom un0 eqtr2i 3eqtr4g snidg 3ad2ant1 fvres
    fveq1d fvsng 3eqtr3d ) DBFZECFZDAGZFHZIZDADEJKZLZDKZMZNZDVMNZDVNNZEVLDVPVMV
    LAVOMZVMVOMZLOVMLZVPVMVLVTOWAVMVLVTGZOPZVTOPZVKVHWDVIVKWCVJVOQZOWCVOVJQWFAV
    ORVOVJUBUCWFOPVKVJDUAUDUEUFVTUNWEWDUGAVOUHVTUIUJUKVLVMVOULZWAVMPVHVIWGVKDEB
    CUMSVOVMUOTUPAVMVOUQWBVMOLVMOVMURVMUSUTVAVEVLDVOFZVQVSPVHVIWHVKDBVBVCDVOVNV
    DTVHVIVREPVKDEBCVFSVG $.

  $( Recover the original function from a point-added function.  (Contributed
     by Stefan O'Rear, 28-Feb-2015.) $)
  fsnunres $p |- ( ( F Fn S /\ -. X e. S ) ->
      ( ( F u. { <. X , Y >. } ) |` S ) = F ) $=
    ( wfn wcel wn wa cres cop csn cun c0 fnresdm adantr ressnop0 adantl uneq12d
    wceq resundir un0 eqcomi 3eqtr4g ) BAEZCAFGZHZBAIZCDJKZAIZLBMLZBUHLAIBUFUGB
    UIMUDUGBSUEABNOUEUIMSUDCDAPQRBUHATUJBBUAUBUC $.

  ${
    fvpr1.1 $e |- A e. _V $.
    fvpr1.2 $e |- C e. _V $.
    $( The value of a function with a domain of two elements.  (Contributed by
       Jeff Madsen, 20-Jun-2010.) $)
    fvpr1 $p |- ( A =/= B -> ( { <. A , C >. , <. B , D >. } ` A ) = C ) $=
      ( wne cop cpr cfv csn cun df-pr fveq1i wceq necom cvv wcel fvunsng mpan
      sylbi syl5eq fvsn syl6eq ) ABGZAACHZBDHZIZJZAUFKZJZCUEUIAUJUGKLZJZUKAUHUL
      UFUGMNUEBAGZUMUKOZABPAQRUNUOEUJBDAQSTUAUBACEFUCUD $.
  $}

  ${
    fvpr2.1 $e |- B e. _V $.
    fvpr2.2 $e |- D e. _V $.
    $( The value of a function with a domain of two elements.  (Contributed by
       Jeff Madsen, 20-Jun-2010.) $)
    fvpr2 $p |- ( A =/= B -> ( { <. A , C >. , <. B , D >. } ` B ) = D ) $=
      ( wne cop cpr cfv prcom fveq1i wceq necom fvpr1 sylbi syl5eq ) ABGZBACHZB
      DHZIZJBTSIZJZDBUAUBSTKLRBAGUCDMABNBADCEFOPQ $.
  $}

  $( The value of a function with a domain of (at most) two elements.
     (Contributed by Alexander van der Vekens, 3-Dec-2017.) $)
  fvpr1g $p |- ( ( A e. V /\ C e. W /\ A =/= B )
                 -> ( { <. A , C >. , <. B , D >. } ` A ) = C ) $=
    ( wcel wne w3a cop cpr cfv csn wceq wa cun df-pr fveq1i necom fvunsng fvsng
    sylan2b syl5eq 3adant2 3adant3 eqtrd ) AEGZCFGZABHZIAACJZBDJZKZLZAUJMZLZCUG
    UIUMUONUHUGUIOUMAUNUKMPZLZUOAULUPUJUKQRUIUGBAHUQUONABSUNBDAETUBUCUDUGUHUOCN
    UIACEFUAUEUF $.

  $( The value of a function with a domain of (at most) two elements.
     (Contributed by Alexander van der Vekens, 3-Dec-2017.) $)
  fvpr2g $p |- ( ( B e. V /\ D e. W /\ A =/= B )
                 -> ( { <. A , C >. , <. B , D >. } ` B ) = D ) $=
    ( wcel wne w3a cop cpr cfv csn wceq wa cun prcom df-pr eqtri fveq1i fvunsng
    syl5eq 3adant2 fvsng 3adant3 eqtrd ) BEGZDFGZABHZIBACJZBDJZKZLZBUKMZLZDUGUI
    UMUONUHUGUIOUMBUNUJMPZLUOBULUPULUKUJKUPUJUKQUKUJRSTUNACBEUAUBUCUGUHUODNUIBD
    EFUDUEUF $.

  $( The value of a function with a domain of (at most) three elements.
     (Contributed by Alexander van der Vekens, 4-Dec-2017.) $)
  fvtp1g $p |- ( ( ( A e. V /\ D e. W ) /\ ( A =/= B /\ A =/= C ) )
                -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` A ) = D ) $=
    ( wcel wa wne cop ctp cfv cpr csn cun df-tp fveq1i wceq necom fvunsng 3expa
    sylan2b ad2ant2rl fvpr1g adantrr eqtrd syl5eq ) AGIZDHIZJZABKZACKZJJZAADLZB
    ELZCFLZMZNAUPUQOZURPQZNZDAUSVAUPUQURRSUOVBAUTNZDUJUNVBVCTZUKUMUNUJCAKVDACUA
    UTCFAGUBUDUEULUMVCDTZUNUJUKUMVEABDEGHUFUCUGUHUI $.

  $( The value of a function with a domain of (at most) three elements.
     (Contributed by Alexander van der Vekens, 4-Dec-2017.) $)
  fvtp2g $p |- ( ( ( B e. V /\ E e. W ) /\ ( A =/= B /\ B =/= C ) )
                -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` B ) = E ) $=
    ( wcel wa wne cop ctp cfv tprot fveq1i wceq wi necom fvtp1g expcom ancoms
    sylanb impcom syl5eq ) BGIEHIJZABKZBCKZJZJBADLZBELZCFLZMZNBUKULUJMZNZEBUMUN
    UJUKULOPUIUFUOEQZUGBAKZUHUFUPRZABSUHUQURUFUHUQJUPBCAEFDGHTUAUBUCUDUE $.

  $( The value of a function with a domain of (at most) three elements.
     (Contributed by Alexander van der Vekens, 4-Dec-2017.) $)
  fvtp3g $p |- ( ( ( C e. V /\ F e. W ) /\ ( A =/= C /\ B =/= C ) )
                -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` C ) = F ) $=
    ( wcel wa wne cop ctp cfv tprot fveq1i wceq wi necom fvtp2g expcom sylan2b
    ancoms impcom syl5eq ) CGIFHIJZACKZBCKZJZJCADLZBELZCFLZMZNCUKULUJMZNZFCUMUN
    UJUKULOPUIUFUOFQZUHUGUFUPRZUGUHCAKZUQACSUFUHURJUPBCAEFDGHTUAUBUCUDUE $.

  ${
    fvtp1.1 $e |- A e. _V $.
    fvtp1.4 $e |- D e. _V $.
    $( The first value of a function with a domain of three elements.
       (Contributed by NM, 14-Sep-2011.) $)
    fvtp1 $p |- ( ( A =/= B /\ A =/= C )
             -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` A ) = D ) $=
      ( cvv wcel wne wa cop ctp cfv wceq fvtp1g mpanl12 ) AIJDIJABKACKLAADMBEMC
      FMNODPGHABCDEFIIQR $.
  $}

  ${
    fvtp2.1 $e |- B e. _V $.
    fvtp2.4 $e |- E e. _V $.
    $( The second value of a function with a domain of three elements.
       (Contributed by NM, 14-Sep-2011.) $)
    fvtp2 $p |- ( ( A =/= B /\ B =/= C )
             -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` B ) = E ) $=
      ( wne wa cop ctp cfv tprot fveq1i wceq necom fvtp1 ancoms sylanb syl5eq )
      ABIZBCIZJBADKZBEKZCFKZLZMBUEUFUDLZMZEBUGUHUDUEUFNOUBBAIZUCUIEPZABQUCUJUKB
      CAEFDGHRSTUA $.
  $}

  ${
    fvtp3.1 $e |- C e. _V $.
    fvtp3.4 $e |- F e. _V $.
    $( The third value of a function with a domain of three elements.
       (Contributed by NM, 14-Sep-2011.) $)
    fvtp3 $p |- ( ( A =/= C /\ B =/= C )
             -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` C ) = F ) $=
      ( wne wa cop ctp cfv tprot fveq1i wceq necom fvtp2 sylan2b ancoms syl5eq
      ) ACIZBCIZJCADKZBEKZCFKZLZMCUEUFUDLZMZFCUGUHUDUEUFNOUCUBUIFPZUBUCCAIUJACQ
      BCAEFDGHRSTUA $.
  $}

  $( The value of a constant function.  (Contributed by NM, 20-Aug-2005.) $)
  fvconst2g $p |- ( ( B e. D /\ C e. A ) -> ( ( A X. { B } ) ` C ) = B ) $=
    ( wcel csn cxp wf cfv wceq fconstg fvconst sylan ) BDEABFZANGZHCAECOIBJABDK
    ABCOLM $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( A constant function expressed as a cross product.  (Contributed by NM,
       27-Nov-2007.) $)
    fconst2g $p |- ( B e. C -> ( F : A --> { B } <-> F = ( A X. { B } ) ) ) $=
      ( vx wcel csn wf cxp wceq wa cv cfv wral fvconst adantlr fvconst2g eqtr4d
      adantll wfn ralrimiva wb ffn fnconstg eqfnfv syl2an mpbird expcom fconstg
      feq1 syl5ibrcom impbid ) BCFZABGZDHZDAUNIZJZUOUMUQUOUMKZUQELZDMZUSUPMZJZE
      ANZURVBEAURUSAFZKUTBVAUOVDUTBJUMABUSDOPUMVDVABJUOABUSCQSRUAUODATUPATUQVCU
      BUMAUNDUCABCUDEADUPUEUFUGUHUMUOUQAUNUPHABCUIAUNDUPUJUKUL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    fvconst2.1 $e |- B e. _V $.
    $( The value of a constant function.  (Contributed by NM, 16-Apr-2005.) $)
    fvconst2 $p |- ( C e. A -> ( ( A X. { B } ) ` C ) = B ) $=
      ( cvv wcel csn cxp cfv wceq fvconst2g mpan ) BEFCAFCABGHIBJDABCEKL $.

    $( A constant function expressed as a cross product.  (Contributed by NM,
       20-Aug-1999.) $)
    fconst2 $p |- ( F : A --> { B } <-> F = ( A X. { B } ) ) $=
      ( cvv wcel csn wf cxp wceq wb fconst2g ax-mp ) BEFABGZCHCANIJKDABECLM $.
  $}

  ${
    $d x w z A $.  $d x w z B $.  $d x w z F $.  $d y w A $.
    $( A constant function expressed in terms of its functionality, domain, and
       value.  See also ~ fconst2 .  (Contributed by Jim Kingdon,
       8-Jan-2019.) $)
    fconstfvm $p |- ( E. y y e. A -> (
        F : A --> { B } <->
          ( F Fn A /\ A. x e. A ( F ` x ) = B ) ) ) $=
      ( vw vz cv wcel wex csn wf wfn cfv wceq wral wa wrex eqeq1d sylan9bbr ffn
      fvconst ralrimiva jca fvelrnb fveq2 rspccva rexbidva r19.9rmv bicomd elsn
      crn eqcom bitr2i syl6bb eqrdv an32s exp31 imdistand wfo df-fo sylbir syl6
      fof impbid2 ) BHCIBJZCDKZELZECMZAHZENZDOZACPZQZVHVIVMCVGEUAVHVLACCDVJEUBU
      CUDVFVNVIEULZVGOZQZVHVFVIVMVPVFVIVMVPVFVMVIVPVFVMQZVIQZFVOVGVSFHZVOIZDVTO
      ZVTVGIZVIWAGHZENZVTOZGCRZVRWBGCVTEUEVMWGWBGCRZVFWBVMWFWBGCVMWDCIQWEDVTVLW
      EDOAWDCVJWDOVKWEDVJWDEUFSUGSUHVFWBWHWBGBCUIUJTTWCVTDOWBFDUKVTDUMUNUOUPUQU
      RUSVQCVGEUTVHCVGEVACVGEVDVBVCVE $.
  $}

  ${
    $d x A $.  $d y B $.  $d y F $.  $d y A $.  $d y x $.
    $( Two ways to express a constant function.  (Contributed by Jim Kingdon,
       8-Jan-2019.) $)
    fconst3m $p |- ( E. x x e. A -> (
        F : A --> { B } <->
          ( F Fn A /\ A C_ ( `' F " { B } ) ) ) ) $=
      ( vy cv wcel wex csn wf wfn cfv wceq wral wa ccnv cima wss fconstfvm wfun
      cdm wb fnfun fndm eqimss2 syl funconstss syl2anc pm5.32i syl6bb ) AFBGAHB
      CIZDJDBKZEFDLCMEBNZOULBDPUKQRZOEABCDSULUMUNULDTBDUAZRZUMUNUBBDUCULUOBMUPB
      DUDBUOUEUFEBCDUGUHUIUJ $.
  $}

  ${
    $d x A $.
    $( Two ways to express a constant function.  (Contributed by NM,
       8-Mar-2007.) $)
    fconst4m $p |- ( E. x x e. A -> (
        F : A --> { B } <->
          ( F Fn A /\ ( `' F " { B } ) = A ) ) ) $=
      ( cv wcel wex csn wf wfn ccnv cima wss wa wceq fconst3m cdm cnvimass fndm
      syl5sseq biantrurd eqss syl6bbr pm5.32i syl6bb ) AEBFAGBCHZDIDBJZBDKUFLZM
      ZNUGUHBOZNABCDPUGUIUJUGUIUHBMZUINUJUGUKUIUGDQUHBDUFRBDSTUAUHBUBUCUDUE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The restriction of a function to a set exists.  Compare Proposition 6.17
       of [TakeutiZaring] p. 28.  (Contributed by NM, 7-Apr-1995.)  (Revised by
       Mario Carneiro, 22-Jun-2013.) $)
    resfunexg $p |- ( ( Fun A /\ B e. C ) -> ( A |` B ) e. _V ) $=
      ( vx wfun wcel cres cdm cfv cmpt cima cvv wceq wral ralrimiva 3syl adantr
      wa cv sylancr cop crn funfvex fnasrng wfn funfn sylib dffn5im syl imadmrn
      funres opexgOLD dmmptg imaeq2d syl5reqr 3eqtr4d funmpt dmresexg funimaexg
      vex adantl eqeltrd ) AEZBCFZRZABGZDVFHZDSZVHVFIZUAZJZVGKZLVEDVGVIJZVKUBZV
      FVLVCVMVNMZVDVCVFEZVILFZDVGNVOBAUKZVPVQDVGVHVFUCZODVGVILUDPQVEVFVGUEZVFVM
      MVEVPVTVCVPVDVRQVFUFUGDVGVFUHUIVCVLVNMVDVCVNVKVKHZKVLVKUJVCWAVGVKVCVPVJLF
      ZDVGNWAVGMVRVPWBDVGVPVHVGFRVHLFVQWBDUTVSVHVIULTODVGVJLUMPUNUOQUPVEVKEVGLF
      ZVLLFDVGVJUQVDWCVCABCURVAVKVGLUSTVB $.
  $}

  $( If the domain of a function is a set, the function is a set.  Theorem
     6.16(1) of [TakeutiZaring] p. 28.  This theorem is derived using the Axiom
     of Replacement in the form of ~ resfunexg .  (Contributed by NM,
     14-Aug-1994.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fnex $p |- ( ( F Fn A /\ A e. B ) -> F e. _V ) $=
    ( wfn wcel wrel cdm cres cvv fnrel adantr wfun wceq eleq1a impcom resfunexg
    wa df-fn sylan2 anassrs sylanb resdm eleq1d biimpa syl2anc ) CADZABEZQCFZCC
    GZHZIEZCIEZUFUHUGACJKUFCLZUIAMZQUGUKCARUMUNUGUKUNUGQUMUIBEZUKUGUNUOABUINOCU
    IBPSTUAUHUKULUHUJCICUBUCUDUE $.

  $( If the domain of a function exists, so the function.  Part of Theorem
     4.15(v) of [Monk1] p. 46.  This theorem is derived using the Axiom of
     Replacement in the form of ~ fnex .  (Note:  Any resemblance between
     F.U.N.E.X. and "Have You Any Eggs" is purely a coincidence originated by
     Swedish chefs.)  (Contributed by NM, 11-Nov-1995.) $)
  funex $p |- ( ( Fun F /\ dom F e. B ) -> F e. _V ) $=
    ( wfun cdm wfn wcel cvv funfn fnex sylanb ) BCBBDZEKAFBGFBHKABIJ $.

  ${
    $d x y A $.
    opabex.1 $e |- A e. _V $.
    opabex.2 $e |- ( x e. A -> E* y ph ) $.
    $( Existence of a function expressed as class of ordered pairs.
       (Contributed by NM, 21-Jul-1996.) $)
    opabex $p |- { <. x , y >. | ( x e. A /\ ph ) } e. _V $=
      ( cv wcel wa copab wfun cdm cvv wmo funopab moanimv mpbir mpgbir dmopabss
      wi ssexi funex mp2an ) BGDHZAIZBCJZKZUFLZMHUFMHUGUECNZBUEBCOUIUDACNTFUDAC
      PQRUHDEABCDSUAMUFUBUC $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by FL, 6-Jun-2011.)  (Revised by Mario
       Carneiro, 31-Aug-2015.) $)
    mptexg $p |- ( A e. V -> ( x e. A |-> B ) e. _V ) $=
      ( wcel cmpt wfun cdm cvv funmpt wss eqid dmmptss ssexg mpan funex sylancr
      ) BDEZABCFZGSHZIEZSIEABCJTBKRUAABCSSLMTBDNOISPQ $.
  $}

  ${
    $d x y A $.
    mptex.1 $e |- A e. _V $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by NM, 22-Apr-2005.)  (Revised by Mario
       Carneiro, 20-Dec-2013.) $)
    mptex $p |- ( x e. A |-> B ) e. _V $=
      ( cvv wcel cmpt mptexg ax-mp ) BEFABCGEFDABCEHI $.
  $}

  $( If the domain of a mapping is a set, the function is a set.  (Contributed
     by NM, 3-Oct-1999.) $)
  fex $p |- ( ( F : A --> B /\ A e. C ) -> F e. _V ) $=
    ( wf wfn wcel cvv ffn fnex sylan ) ABDEDAFACGDHGABDIACDJK $.

  ${
    $d f x y z A $.  $d f y z B $.
    eufnfv.1 $e |- A e. _V $.
    eufnfv.2 $e |- B e. _V $.
    $( A function is uniquely determined by its values.  (Contributed by NM,
       31-Aug-2011.) $)
    eufnfv $p |- E! f ( f Fn A /\ A. x e. A ( f ` x ) = B ) $=
      ( vy cv wfn cfv wceq wral wa weu wb wal wex cmpt mptex cvv eqeq2 pm4.71ri
      bibi2d albidv spcev eqid fnmpti mpbiri dffn5im eqeq1d wcel funfvex funfni
      fneq1 ralrimiva mpteqb syl bitrd pm5.32i bitr2i mpg df-eu mpbir ) DHZBIZA
      HZVDJZCKABLZMZDNVIVDGHZKZOZDPZGQZVIVDABCRZKZOZVNDVMVQDPGVOABCESVJVOKZVLVQ
      DVRVKVPVIVJVOVDUAUCUDUEVPVEVPMVIVPVEVPVEVOBIABCVOFVOUFUGBVDVOUNUHUBVEVPVH
      VEVPABVGRZVOKZVHVEVDVSVOABVDUIUJVEVGTUKZABLVTVHOVEWAABWABVFVDVFVDULUMUOAB
      VGCTUPUQURUSUTVAVIDGVBVC $.
  $}

  $( A function's value in a preimage belongs to the image.  (Contributed by
     NM, 23-Sep-2003.) $)
  funfvima $p |- ( ( Fun F /\ B e. dom F ) -> ( B e. A ->
                 ( F ` B ) e. ( F " A ) ) ) $=
    ( wfun cdm wcel wa cfv cima cres dmres elin2 crn funres fvelrn sylan eleq1d
    wi fvres df-ima eleq2i syl6rbbr syl5ibrcom syl5bir expd com12 impd pm2.43b
    ex ) CDZBCEZFZGBAFZBCHZCAIZFZUMUJULUMUPRZUJUMULUQRUJUMULUQUMULGBCAJZEZFZUJU
    QBAUKUSCAKLUJUTUQUJUTGUPUMBURHZURMZFZUJURDUTVCACNBUROPUMVCUNVBFUPUMVAUNVBBA
    CSQUOVBUNCATUAUBUCUIUDUEUFUGUH $.

  $( A function's value in an included preimage belongs to the image.
     (Contributed by NM, 3-Feb-1997.) $)
  funfvima2 $p |- ( ( Fun F /\ A C_ dom F ) -> ( B e. A ->
                  ( F ` B ) e. ( F " A ) ) ) $=
    ( wfun cdm wss wcel cfv cima wi ssel funfvima ex com23 a2d syl5 imp ) CDZAC
    EZFZBAGZBCHCAIGZJZTUABSGZJRUCASBKRUAUDUBRUDUAUBRUDUCABCLMNOPQ $.

  ${
    $d x A $.  $d x F $.  $d x G $.
    $( A class including a function contains the function's value in the image
       of the singleton of the argument.  (Contributed by NM, 23-Mar-2004.) $)
    funfvima3 $p |- ( ( Fun F /\ F C_ G ) -> ( A e. dom F ->
                    ( F ` A ) e. ( G " { A } ) ) ) $=
      ( vx wss wfun cdm wcel cfv csn cima wi wa cop funfvop ssel syl5 wb adantl
      cvv imp cv simpr wceq sneq imaeq2d eleq2d eleq1d bibi12d funfvex elimasng
      opeq1 vex sylancr vtocld mpbird exp32 impcom ) BCEZBFZABGZHZABIZCAJZKZHZL
      USUTVBVFUSUTVBMZMVFAVCNZCHZUSVGVIVGVHBHUSVIABOBCVHPQUAVGVFVIRZUSVGVCCDUBZ
      JZKZHZVKVCNZCHZRZVJDAVAUTVBUCVKAUDZVQVJRVGVRVNVFVPVIVRVMVEVCVRVLVDCVKAUEU
      FUGVRVOVHCVKAVCULUHUISVGVKTHVCTHVQDUMABUJCVKVCTTUKUNUOSUPUQUR $.
  $}

  $( The function value of an operand in a set is contained in the image of
     that set, using the ` Fn ` abbreviation.  (Contributed by Stefan O'Rear,
     10-Mar-2015.) $)
  fnfvima $p |- ( ( F Fn A /\ S C_ A /\ X e. S ) -> ( F ` X ) e. ( F " S ) ) $=
    ( wfn wss wcel w3a wfun cdm wa cima fnfun 3ad2ant1 simp2 wceq fndm sseqtr4d
    cfv jca simp3 funfvima2 sylc ) CAEZBAFZDBGZHZCIZBCJZFZKUFDCSCBLGUGUHUJUDUEU
    HUFACMNUGBAUIUDUEUFOUDUEUIAPUFACQNRTUDUEUFUABDCUBUC $.

  ${
    $d ph y $.  $d ps x $.  $d F x y $.  $d B x y $.  $d A x y $.
    rexima.x $e |- ( x = ( F ` y ) -> ( ph <-> ps ) ) $.
    $( Existential quantification under an image in terms of the base set.
       (Contributed by Stefan O'Rear, 21-Jan-2015.) $)
    rexima $p |- ( ( F Fn A /\ B C_ A ) ->
        ( E. x e. ( F " B ) ph <-> E. y e. B ps ) ) $=
      ( wfn wss wa cv cfv cima cvv wcel ssel2 funfvex wceq wrex funfni fvelimab
      sylan2 anassrs eqcom rexbii syl6bb wb adantl rexxfr2d ) GEIZFEJZKZABCDDLZ
      GMZGFNZFOUKULUNFPZUOOPZULUQKUKUNEPURFEUNQUREUNGUNGRUAUCUDUMCLZUPPUOUSSZDF
      TUSUOSZDFTDEFUSGUBUTVADFUOUSUEUFUGVAABUHUMHUIUJ $.

    $( Universal quantification under an image in terms of the base set.
       (Contributed by Stefan O'Rear, 21-Jan-2015.) $)
    ralima $p |- ( ( F Fn A /\ B C_ A ) ->
        ( A. x e. ( F " B ) ph <-> A. y e. B ps ) ) $=
      ( wfn wss wa cv cfv cima cvv wcel ssel2 funfvex wceq wrex funfni fvelimab
      sylan2 anassrs eqcom rexbii syl6bb wb adantl ralxfr2d ) GEIZFEJZKZABCDDLZ
      GMZGFNZFOUKULUNFPZUOOPZULUQKUKUNEPURFEUNQUREUNGUNGRUAUCUDUMCLZUPPUOUSSZDF
      TUSUOSZDFTDEFUSGUBUTVADFUOUSUEUFUGVAABUHUMHUIUJ $.
  $}

  ${
    $d A u x y $.  $d R u x y $.
    $( TODO:  This is the same as ~ issref (which has a much longer proof).
       Should we replace ~ issref with this one? - NM 9-May-2016.

       Two ways to state a relation is reflexive.  (Adapted from Tarski.)
       (Contributed by FL, 15-Jan-2012.)  (Proof shortened by Mario Carneiro,
       3-Nov-2015.)  (Proof modification is discouraged.) $)
    idref $p |- ( ( _I |` A ) C_ R <-> A. x e. A x R x ) $=
      ( cv cop wcel wral cmpt crn wss wbr cid cres wf eqid fmpt wfn opex fnmpti
      vex mpbiran bitri df-br ralbii mptresid fnasrn eqtr3i sseq1i 3bitr4ri
      df-f ) ADZUKEZCFZABGZABULHZIZCJZUKUKCKZABGLBMZCJUNBCUONZUQABCULUOUOOZPUTU
      OBQUQABULUOUKUKATZVBRVASBCUOUJUAUBURUMABUKUKCUCUDUSUPCABUKHUSUPABUEABUKVB
      UFUGUHUI $.
  $}

  ${
    $d w y z B $.  $d w x y z A $.
    elabrex.1 $e |- B e. _V $.
    $( Elementhood in an image set.  (Contributed by Mario Carneiro,
       14-Jan-2014.) $)
    elabrex $p |- ( x e. A -> B e. { y | E. x e. A y = B } ) $=
      ( vz cv wcel csb wceq wrex cab wtru tru csbeq1a equcoms a1tru 2thd rspcev
      mpan2 eqeq1 rexbidv elab sylibr nfv nfcsb1v nfeq2 eqeq2d cbvrex syl6eleqr
      abbii ) AGZCHZDBGZAFGZDIZJZFCKZBLZUNDJZACKZBLUMDUPJZFCKZDUSHUMMVCNVBMFULC
      UOULJZVBMVBAFAUODOZPVDQRSTURVCBDEUTUQVBFCUNDUPUAUBUCUDVAURBUTUQAFCUTFUEAU
      NUPAUODUFUGULUOJDUPUNVEUHUIUKUJ $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d C w $.  $d D y $.  $d w x y $.  $d w z y $.
    abrexco.1 $e |- B e. _V $.
    abrexco.2 $e |- ( y = B -> C = D ) $.
    $( Composition of two image maps ` C ( y ) ` and ` B ( w ) ` .
       (Contributed by NM, 27-May-2013.) $)
    abrexco $p |- { x | E. y e. { z | E. w e. A z = B } x = C } =
        { x | E. w e. A x = D } $=
      ( cv wceq wrex cab wa wex wcel df-rex bitr4i bitri vex eqeq1 rexbidv elab
      anbi1i r19.41v exbii rexcom4 eqeq2d ceqsexv rexbii abbii ) AKZGLZBCKZFLZD
      EMZCNZMZUMHLZDEMZAUSBKZFLZUNOZBPZDEMZVAUSVDDEMZBPZVFUSVBURQZUNOZBPVHUNBUR
      RVJVGBVJVCDEMZUNOVGVIVKUNUQVKCVBBUAUOVBLUPVCDEUOVBFUBUCUDUEVCUNDEUFSUGTVD
      DBEUHSVEUTDEUNUTBFIVCGHUMJUIUJUKTUL $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d y z C $.
    $( The image of an indexed union is the indexed union of the images.
       (Contributed by Mario Carneiro, 18-Jun-2014.) $)
    imaiun $p |- ( A " U_ x e. B C ) = U_ x e. B ( A " C ) $=
      ( vy vz ciun cima cv wcel cop wa wex wrex rexcom4 vex elima3 rexbii eliun
      anbi1i r19.41v bitr4i exbii 3bitr4ri 3bitr4i eqriv ) EBACDGZHZACBDHZGZFIZ
      UGJZUKEIZKBJZLZFMZUMUIJZACNZUMUHJUMUJJUKDJZUNLZFMZACNUTACNZFMURUPUTAFCOUQ
      VAACFUMBDEPZQRUOVBFUOUSACNZUNLVBULVDUNAUKCDSTUSUNACUAUBUCUDFUMBUGVCQAUMCU
      ISUEUF $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( The image of a union is the indexed union of the images.  Theorem 3K(a)
       of [Enderton] p. 50.  (Contributed by NM, 9-Aug-2004.)  (Proof shortened
       by Mario Carneiro, 18-Jun-2014.) $)
    imauni $p |- ( A " U. B ) = U_ x e. B ( A " x ) $=
      ( cuni cima cv ciun uniiun imaeq2i imaiun eqtri ) BCDZEBACAFZGZEACBMEGLNB
      ACHIABCMJK $.
  $}

  ${
    $d w x y z A $.  $d w x y z F $.
    $( The indexed union of a function's values is the union of its range.
       Compare Definition 5.4 of [Monk1] p. 50.  (Contributed by NM,
       27-Sep-2004.) $)
    fniunfv $p |- ( F Fn A -> U_ x e. A ( F ` x ) = U. ran F ) $=
      ( vy wfn cv cfv ciun wceq wrex cab cuni crn wcel funfvex funfni ralrimiva
      cvv wral dfiun2g syl fnrnfv unieqd eqtr4d ) CBEZABAFZCGZHZDFUGIABJDKZLZCM
      ZLUEUGRNZABSUHUJIUEULABULBUFCUFCOPQADBUGRTUAUEUKUIADBCUBUCUD $.

    $( The indexed union of a function's values is the union of its image under
       the index class.  This theorem is a slight variation of ~ fniunfv .
       (Contributed by Jim Kingdon, 10-Jan-2019.) $)
    funiunfvdm $p |- ( F Fn A -> U_ x e. A ( F ` x ) = U. ( F " A ) ) $=
      ( wfn cv cfv ciun crn cuni cima fniunfv cdm imadmrn imaeq2d syl5eqr eqtrd
      fndm unieqd ) CBDZABAECFGCHZICBJZIABCKSTUASTCCLZJUACMSUBBCBCQNORP $.
  $}

  ${
    $d x z A $.  $d y z F $.  $d x y $.
    funiunfvf.1 $e |- F/_ x F $.
    $( The indexed union of a function's values is the union of its image under
       the index class.  This version of ~ funiunfvdm uses a bound-variable
       hypothesis in place of a distinct variable condition.  (Contributed by
       Jim Kingdon, 10-Jan-2019.) $)
    funiunfvdmf $p |- ( F Fn A -> U_ x e. A ( F ` x ) = U. ( F " A ) ) $=
      ( vz wfn cv cfv ciun cima cuni nfcv nffv fveq2 cbviun funiunfvdm syl5eqr
      ) CBFABAGZCHZIEBEGZCHZICBJKEABUASATCDATLMESLTRCNOEBCPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( Membership in the union of an image of a function.  (Contributed by Jim
       Kingdon, 10-Jan-2019.) $)
    eluniimadm $p |- ( F Fn A ->
                   ( B e. U. ( F " A ) <-> E. x e. A B e. ( F ` x ) ) ) $=
      ( cv cfv wcel wrex ciun wfn cima cuni eliun funiunfvdm eleq2d syl5rbbr )
      CAEDFZGABHCABQIZGDBJZCDBKLZGACBQMSRTCABDNOP $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( Membership in the union of the range of a function.  (Contributed by NM,
       24-Sep-2006.) $)
    elunirn $p |- ( Fun F -> ( A e. U. ran F <->
                E. x e. dom F A e. ( F ` x ) ) ) $=
      ( vy crn cuni wcel cv wa wex wfun cfv cdm wrex eluni wceq wfn eleq2 cvv
      wb funfn fvelrnb anbi2d r19.42v syl6bbr biimparc reximi syl6bi exlimdv wi
      sylbi fvelrn funfvex eleq1 anbi12d spcegv mpan2d rexlimdva impbid syl5bb
      syl ) BCEZFGBDHZGZVCVBGZIZDJZCKZBAHZCLZGZACMZNZDBVBOVHVGVMVHVFVMDVHVFVDVJ
      VCPZIZAVLNZVMVHVFVDVNAVLNZIVPVHVEVQVDVHCVLQVEVQTCUAAVLVCCUBUKUCVDVNAVLUDU
      EVOVKAVLVNVKVDVJVCBRUFUGUHUIVHVKVGAVLVHVIVLGIZVKVJVBGZVGVICULVRVJSGVKVSIZ
      VGUJVICUMVFVTDVJSVCVJPVDVKVEVSVCVJBRVCVJVBUNUOUPVAUQURUSUT $.
  $}

  ${
    $d x A $.  $d x I $.  $d x F $.
    $( Membership in a union of some function-defined family of sets.
       (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    fnunirn $p |- ( F Fn I -> ( A e. U. ran F <->
        E. x e. I A e. ( F ` x ) ) ) $=
      ( wfn crn cuni wcel cv cfv cdm wrex wfun fnfun elunirn fndm rexeqdv bitrd
      wb syl ) CDEZBCFGHZBAICJHZACKZLZUCADLUACMUBUESDCNABCOTUAUCAUDDDCPQR $.
  $}

  ${
    $d x y z A $.  $d z B $.  $d x y z F $.
    $( A one-to-one function in terms of function values.  Compare Theorem
       4.8(iv) of [Monk1] p. 43.  (Contributed by NM, 29-Oct-1996.) $)
    dff13 $p |- ( F : A -1-1-> B <-> ( F : A --> B /\
             A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) ) ) $=
      ( vz cv wbr wal wa cfv wceq wi wral wb wcel vex breldm eleq2d syl5bb fndm
      wf1 wf wmo dff12 wfn ffn syl5ib anim12d pm4.71rd fnbrfvb bi2anan9 anandis
      cdm pm5.32da bitr4d imbi1d impexp syl6bb albidv 19.21v wex funfvex funfni
      eqcom cvv eqvincg syl syl6rbbr adantrr pm5.74da bitrd 2albidv breq1 albii
      19.23v mo4 alrot3 bitri r2al 3bitr4g pm5.32i ) CDEUBCDEUCZAGZFGZEHZAUDZFI
      ZJWCWDEKZBGZEKZLZWDWJLZMZBCNACNZJAFCDEUEWCWHWOWCECUFZWHWOOCDEUGWPWFWJWEEH
      ZJZWMMZFIZBIAIZWDCPZWJCPZJZWNMZBIAIWHWOWPWTXEABWPWTXDWEWILZWEWKLZJZWMMZMZ
      FIZXEWPWSXJFWPWSXDXHJZWMMXJWPWRXLWMWPWRXDWRJXLWPWRXDWPWFXBWQXCWFWDEUNZPWP
      XBWDWEEAQFQZRWPXMCWDCEUAZSUHWQWJXMPWPXCWJWEEBQXNRWPXMCWJXOSUHUIUJWPXDXHWR
      WPXBXCXHWROWPXBJZXFWFWPXCJZXGWQXFWIWELXPWFWEWIVECWDWEEUKTXGWKWELXQWQWEWKV
      ECWJWEEUKTULUMUOUPUQXDXHWMURUSUTXKXDXIFIZMWPXEXDXIFVAWPXDXRWNWPXBXRWNOXCX
      PWNXHFVBZWMMXRXPWLXSWMXPWIVFPZWLXSOXTCWDEWDEVCVDFWIWKVFVGVHUQXHWMFVPVIVJV
      KTVLVMWHWSBIAIZFIXAWGYAFWFWQABWDWJWEEVNVQVOWSFABVRVSWNABCCVTWAVHWBVS $.
  $}

  ${
    $d A c d $.  $d C c d $.  $d D d $.  $d F c d $.
    $( If the values of a one-to-one function for two arguments are equal, the
       arguments themselves must be equal.  (Contributed by Alexander van der
       Vekens, 12-Nov-2017.) $)
    f1veqaeq $p |- ( ( F : A -1-1-> B /\ ( C e. A /\ D e. A ) ) ->
                     ( ( F ` C ) = ( F ` D ) -> C = D ) ) $=
      ( vc vd wf1 wcel wa cfv wceq wi wf cv weq wral dff13 fveq2 imbi12d eqeq1d
      eqeq1 eqeq2d eqeq2 rspc2v com12 adantl sylbi imp ) ABEHZCAIDAIJZCEKZDEKZL
      ZCDLZMZUJABENZFOZEKZGOZEKZLZFGPZMZGAQFAQZJUKUPMZFGABERVEVFUQUKVEUPVDUPULV
      ALZCUTLZMFGCDAAURCLZVBVGVCVHVIUSULVAURCESUAURCUTUBTUTDLZVGUNVHUOVJVAUMULU
      TDESUCUTDCUDTUEUFUGUHUI $.
  $}

  ${
    $d x y w v A $.  $d w v B $.  $d z w v F $.  $d x y z $.
    dff13f.1 $e |- F/_ x F $.
    dff13f.2 $e |- F/_ y F $.
    $( A one-to-one function in terms of function values.  Compare Theorem
       4.8(iv) of [Monk1] p. 43.  (Contributed by NM, 31-Jul-2003.) $)
    dff13f $p |- ( F : A -1-1-> B <-> ( F : A --> B /\
             A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) ) ) $=
      ( vw vv cv cfv wceq weq wi wral wa nfcv nffv nfeq nfv wf dff13 nfim fveq2
      eqeq2d equequ2 imbi12d cbvral ralbii nfralxy eqeq1d equequ1 ralbidv bitri
      wf1 anbi2i ) CDEUOCDEUAZHJZEKZIJZEKZLZHIMZNZICOZHCOZPUQAJZEKZBJZEKZLZABMZ
      NZBCOZACOZPHICDEUBVFVOUQVFUSVJLZHBMZNZBCOZHCOVOVEVSHCVDVRIBCVBVCBBUSVABUR
      EGBURQRBUTEGBUTQRSVCBTUCVRITIBMZVBVPVCVQVTVAVJUSUTVIEUDUEIBHUFUGUHUIVSVNH
      ACVRABCACQVPVQAAUSVJAUREFAURQRAVIEFAVIQRSVQATUCUJVNHTHAMZVRVMBCWAVPVKVQVL
      WAUSVHVJURVGEUDUKHABULUGUMUHUNUPUN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d y F $.
    f1mpt.1 $e |- F = ( x e. A |-> C ) $.
    f1mpt.2 $e |- ( x = y -> C = D ) $.
    $( Express injection for a mapping operation.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    f1mpt $p |- ( F : A -1-1-> B <->
      ( A. x e. A C e. B /\ A. x e. A A. y e. A ( C = D -> x = y ) ) ) $=
      ( wf1 wf cv cfv wceq wi wral wa wcel wb ralbi nfmpt1 nfcxfr dff13f anbi1i
      cmpt nfcv fmpt eleq1d raaanv fvmpt2 fvmptg eqeqan12d an4s imbi1d ralimdva
      cbvralv ex syl6 ralimia syl sylbir sylan2b anidms pm5.32i 3bitr2i ) CDGJC
      DGKZALZGMZBLZGMZNZVGVINZOZBCPZACPZQEDRZACPZVOQVQEFNZVLOZBCPZACPZQABCDGAGA
      CEUEHACEUAUBBGUFUCVQVFVOACDEGHUGUDVQVOWAVQVOWASZVQVQFDRZBCPZWBVPWCABCVLEF
      DIUHUPVQWDQVPWCQZBCPZACPZWBVPWCABCUIWGVNVTSZACPWBWFWHACVGCRZWFVMVSSZBCPWH
      WIWEWJBCWIVICRZQZWEWJWLWEQVKVRVLWIVPWKWCVKVRSWIVPQWKWCQVHEVJFACEDGHUJAVIE
      FCDGIHUKULUMUNUQUOVMVSBCTURUSVNVTACTUTVAVBVCVDVE $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y F $.
    $( Equality of function values for a one-to-one function.  (Contributed by
       NM, 11-Feb-1997.) $)
    f1fveq $p |- ( ( F : A -1-1-> B /\ ( C e. A /\ D e. A ) ) ->
                 ( ( F ` C ) = ( F ` D ) <-> C = D ) ) $=
      ( wf1 wcel wa cfv wceq f1veqaeq fveq2 impbid1 ) ABEFCAGDAGHHCEIDEIJCDJABC
      DEKCDELM $.
  $}

  ${
    $d F z $.  $d A z $.  $d Y z $.  $d X z $.  $d B z $.
    $( Membership in the image of a 1-1 map.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    f1elima $p |- ( ( F : A -1-1-> B /\ X e. A /\ Y C_ A )
                                -> ( ( F ` X ) e. ( F " Y ) <-> X e. Y ) ) $=
      ( vz wf1 wcel wss w3a cfv cima cv wceq wrex wb wfn wi wa anassrs fvelimab
      f1fn sylan 3adant2 ssel impac f1fveq ancom2s biimpd biimpcd sylan9 anasss
      eleq1 sylan2 rexlimdva 3impa eqid fveq2 eqeq1d rspcev mpan2 impbid1 bitrd
      ) ABCGZDAHZEAIZJZDCKZCELHZFMZCKZVHNZFEOZDEHZVDVFVIVMPZVEVDCAQVFVOABCUBFAE
      VHCUAUCUDVGVMVNVDVEVFVMVNRVDVESZVFSVLVNFEVPVFVJEHZVLVNRZVFVQSVPVJAHZVQSVR
      VFVQVSEAVJUEUFVPVSVQVRVPVSSVLVJDNZVQVNVDVEVSVLVTRVDVEVSSSVLVTVDVSVEVLVTPA
      BVJDCUGUHUITVTVQVNVJDEUMUJUKULUNTUOUPVNVHVHNZVMVHUQVLWAFDEVTVKVHVHVJDCURU
      SUTVAVBVC $.
  $}

  ${
    $d F a b $.  $d A a b $.  $d B a b $.  $d C a b $.  $d D a b $.
    $( Taking images under a one-to-one function preserves subsets.
       (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    f1imass $p |- ( ( F : A -1-1-> B /\ ( C C_ A /\ D C_ A ) ) ->
      ( ( F " C ) C_ ( F " D ) <-> C C_ D ) ) $=
      ( va wf1 wss wa cima cv wcel wi simplrl sseld wb 3expa f1elima syl3anc ex
      simplr simplll simpr simp1rl simp1rr 3imtr3d pm2.43d ssrdv imass2 impbid1
      cfv syld ) ABEGZCAHZDAHZIZIZECJZEDJZHZCDHZUQUTVAUQUTIZFCDVBFKZCLZVCDLZVBV
      DVCALZVDVEMZVBCAVCUMUNUOUTNOVBVFVGVBVFIZVCEUKZURLZVIUSLZVDVEVHURUSVIUQUTV
      FUAOVHUMVFUNVJVDPUMUPUTVFUBZVBVFUCZUQUTVFUNUNUOUMUTVFUDQABEVCCRSVHUMVFUOV
      KVEPVLVMUQUTVFUOUNUOUMUTVFUEQABEVCDRSUFTULUGUHTCDEUIUJ $.

    $( Taking images under a one-to-one function preserves equality.
       (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    f1imaeq $p |- ( ( F : A -1-1-> B /\ ( C C_ A /\ D C_ A ) ) ->
      ( ( F " C ) = ( F " D ) <-> C = D ) ) $=
      ( wf1 wss wa cima wceq f1imass wb ancom2s anbi12d eqss 3bitr4g ) ABEFZCAG
      ZDAGZHHZECIZEDIZGZUBUAGZHCDGZDCGZHUAUBJCDJTUCUEUDUFABCDEKQSRUDUFLABDCEKMN
      UAUBOCDOP $.

    $( Taking images under a one-to-one function preserves proper subsets.
       (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    f1imapss $p |- ( ( F : A -1-1-> B /\ ( C C_ A /\ D C_ A ) ) ->
      ( ( F " C ) C. ( F " D ) <-> C C. D ) ) $=
      ( wf1 wss wa cima wceq wpss f1imass f1imaeq notbid anbi12d dfpss2 3bitr4g
      wn ) ABEFCAGDAGHHZECIZEDIZGZTUAJZRZHCDGZCDJZRZHTUAKCDKSUBUEUDUGABCDELSUCU
      FABCDEMNOTUAPCDPQ $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( A one-to-one onto function in terms of function values.  (Contributed by
       NM, 29-Mar-2008.) $)
    dff1o6 $p |- ( F : A -1-1-onto-> B <-> ( F Fn A /\ ran F = B /\
             A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) ) ) $=
      ( wf1o wf1 wfo wa wf cv cfv wceq wi wral wfn crn w3a df-f1o dff13 anbi12i
      df-fo df-3an wss eqimss anim2i df-f sylibr pm4.71ri anbi1i 3bitrri 3bitri
      an32 ) CDEFCDEGZCDEHZICDEJZAKZELBKZELMUQURMNBCOACOZIZECPZEQZDMZIZIZVAVCUS
      RZCDESUNUTUOVDABCDETCDEUBUAVFVDUSIUPVDIZUSIVEVAVCUSUCVDVGUSVDUPVDVAVBDUDZ
      IUPVCVHVAVBDUEUFCDEUGUHUIUJUPVDUSUMUKUL $.
  $}

  $( The converse value of the value of a one-to-one onto function.
     (Contributed by NM, 20-May-2004.) $)
  f1ocnvfv1 $p |- ( ( F : A -1-1-onto-> B /\ C e. A ) ->
                 ( `' F ` ( F ` C ) ) = C ) $=
    ( wf1o wcel wa ccnv ccom cfv cid cres wceq f1ococnv1 fveq1d adantr wf fvco3
    f1of sylan fvresi adantl 3eqtr3d ) ABDEZCAFZGCDHZDIZJZCKALZJZCDJUFJZCUDUHUJ
    MUEUDCUGUIABDNOPUDABDQUEUHUKMABDSABCUFDRTUEUJCMUDACUAUBUC $.

  $( The value of the converse value of a one-to-one onto function.
     (Contributed by NM, 20-May-2004.) $)
  f1ocnvfv2 $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                 ( F ` ( `' F ` C ) ) = C ) $=
    ( wf1o wcel ccnv ccom cfv cid cres wceq f1ococnv2 fveq1d adantr f1ocnv f1of
    wa wf syl fvco3 sylan fvresi adantl 3eqtr3d ) ABDEZCBFZRCDDGZHZIZCJBKZIZCUH
    IDIZCUFUJULLUGUFCUIUKABDMNOUFBAUHSZUGUJUMLUFBAUHEUNABDPBAUHQTBACDUHUAUBUGUL
    CLUFBCUCUDUE $.

  $( Relationship between the value of a one-to-one onto function and the value
     of its converse.  (Contributed by Raph Levien, 10-Apr-2004.) $)
  f1ocnvfv $p |- ( ( F : A -1-1-onto-> B /\ C e. A ) ->
                  ( ( F ` C ) = D -> ( `' F ` D ) = C ) ) $=
    ( cfv wceq ccnv wf1o wcel wa fveq2 eqcoms f1ocnvfv1 eqeq2d syl5ib ) CEFZDGD
    EHZFZQRFZGZABEICAJKZSCGUADQDQRLMUBTCSABCENOP $.

  $( Relationship between the value of a one-to-one onto function and the value
     of its converse.  (Contributed by NM, 20-May-2004.) $)
  f1ocnvfvb $p |- ( ( F : A -1-1-onto-> B /\ C e. A /\ D e. B ) ->
                  ( ( F ` C ) = D <-> ( `' F ` D ) = C ) ) $=
    ( wf1o wcel w3a cfv wceq ccnv wi f1ocnvfv 3adant3 wa fveq2 eqcoms f1ocnvfv2
    eqeq2d syl5ib 3adant2 impbid ) ABEFZCAGZDBGZHCEIZDJZDEKIZCJZUCUDUGUILUEABCD
    EMNUCUEUIUGLUDUIUFUHEIZJZUCUEOZUGUKCUHCUHEPQULUJDUFABDERSTUAUB $.

  $( The value of the converse of a one-to-one onto function belongs to its
     domain.  (Contributed by NM, 26-May-2006.) $)
  f1ocnvdm $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                    ( `' F ` C ) e. A ) $=
    ( wf1o ccnv wf f1ocnv f1of syl ffvelrnda ) ABDEZBACDFZLBAMEBAMGABDHBAMIJK
    $.

  $( If the values of a one-to-one function for two arguments from the range of
     the function are equal, the arguments themselves must be equal.
     (Contributed by Alexander van der Vekens, 12-Nov-2017.) $)
  f1ocnvfvrneq $p |- ( ( F : A -1-1-> B /\ ( C e. ran F /\ D e. ran F ) ) ->
                  ( ( `' F ` C ) = ( `' F ` D ) -> C = D ) ) $=
    ( wf1 crn wcel wa ccnv cfv wceq wi wf1o f1f1orn f1ocnv f1of1 f1veqaeq 4syl
    ex imp ) ABEFZCEGZHDUCHIZCEJZKDUEKLCDLMZUBAUCENUCAUENUCAUEFZUDUFMABEOAUCEPU
    CAUEQUGUDUFUCACDUERTSUA $.

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d R x y $.
    $( An application is injective if a retraction exists.  Proposition 8 of
       [BourbakiEns] p.  E.II.18.  (Contributed by FL, 11-Nov-2011.)  (Revised
       by Mario Carneiro, 27-Dec-2014.) $)
    fcof1 $p |- ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) )
         -> F : A -1-1-> B ) $=
      ( vx vy wf ccom wceq wa cfv wral wcel fvco3 syl2anc fveq1d 3eqtr3d fvresi
      cv syl cid cres wi wf1 simpl simprr fveq2d simpll simprll simprlr 3eqtr4d
      simplr expr ralrimivva dff13 sylanbrc ) ABDGZCDHZUAAUBZIZJZUQESZDKZFSZDKZ
      IZVBVDIZUCZFALEALABDUDUQUTUEVAVHEFAAVAVBAMZVDAMZJZVFVGVAVKVFJZJZVBUSKZVDU
      SKZVBVDVMVBURKZVDURKZVNVOVMVCCKZVECKZVPVQVMVCVECVAVKVFUFUGVMUQVIVPVRIUQUT
      VLUHZVAVIVJVFUIZABVBCDNOVMUQVJVQVSIVTVAVIVJVFUJZABVDCDNOUKVMVBURUSUQUTVLU
      LZPVMVDURUSWCPQVMVIVNVBIWAAVBRTVMVJVOVDIWBAVDRTQUMUNEFABDUOUP $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d S x y $.
    $( An application is surjective if a section exists.  Proposition 8 of
       [BourbakiEns] p.  E.II.18.  (Contributed by FL, 17-Nov-2011.)  (Proof
       shortened by Mario Carneiro, 27-Dec-2014.) $)
    fcofo $p |- ( ( F : A --> B /\ S : B --> A /\ ( F o. S ) = ( _I |` B ) )
         -> F : A -onto-> B ) $=
      ( vy vx wf ccom cid cres wceq w3a cfv wrex wral wfo simp1 wcel 3ad2antl2
      cv ffvelrn simpl3 fveq1d fvco3 fvresi adantl 3eqtr3rd fveq2 eqeq2d rspcev
      wa syl2anc ralrimiva dffo3 sylanbrc ) ABDGZBACGZDCHZIBJZKZLZUPETZFTZDMZKZ
      FANZEBOABDPUPUQUTQVAVFEBVAVBBRZUKZVBCMZARZVBVIDMZKZVFUQUPVGVJUTBAVBCUASVH
      VBURMZVBUSMZVKVBVHVBURUSUPUQUTVGUBUCUQUPVGVMVKKUTBAVBDCUDSVGVNVBKVABVBUEU
      FUGVEVLFVIAVCVIKVDVKVBVCVIDUHUIUJULUMFEABDUNUO $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y F $.  $d y ph $.  $d x ps $.
    cbvfo.1 $e |- ( ( F ` x ) = y -> ( ph <-> ps ) ) $.
    $( Change bound variable between domain and range of function.
       (Contributed by NM, 23-Feb-1997.)  (Proof shortened by Mario Carneiro,
       21-Mar-2015.) $)
    cbvfo $p |- ( F : A -onto-> B -> ( A. x e. A ph <-> A. y e. B ps ) ) $=
      ( wfo crn wral wfn wb fofn cv cfv wceq bicomd eqcoms ralrn raleqdv bitr3d
      syl forn ) EFGIZBDGJZKZACEKZBDFKUEGELUGUHMEFGNBADCEGBAMCOGPZDOZUIUJQABHRS
      TUCUEBDUFFEFGUDUAUB $.

    $( Change bound variable between domain and range of function.
       (Contributed by NM, 23-Feb-1997.) $)
    cbvexfo $p |- ( F : A -onto-> B -> ( E. x e. A ph <-> E. y e. B ps ) ) $=
      ( wfo crn wrex wfn wb fofn cv cfv wceq bicomd eqcoms rexrn rexeqdv bitr3d
      syl forn ) EFGIZBDGJZKZACEKZBDFKUEGELUGUHMEFGNBADCEGBAMCOGPZDOZUIUJQABHRS
      TUCUEBDUFFEFGUDUAUB $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.  $d F x $.  $d H x $.  $d K x $.
    $( An injection is left-cancelable.  (Contributed by FL, 2-Aug-2009.)
       (Revised by Mario Carneiro, 21-Mar-2015.) $)
    cocan1 $p |- ( ( F : B -1-1-> C /\ H : A --> B /\ K : A --> B ) ->
      ( ( F o. H ) = ( F o. K ) <-> H = K ) ) $=
      ( vx wf ccom cfv wceq wral wcel fvco3 3ad2antl2 wb wfn ffn syl syl2anc cv
      wf1 wa 3ad2antl3 eqeq12d simpl1 ffvelrn f1fveq syl12anc ralbidva 3ad2ant1
      w3a bitrd f1f simp2 fnfco simp3 eqfnfv 3bitr4d ) BCDUBZABEHZABFHZULZGUAZD
      EIZJZVDDFIZJZKZGALZVDEJZVDFJZKZGALZVEVGKZEFKZVCVIVMGAVCVDAMZUCZVIVKDJZVLD
      JZKZVMVRVFVSVHVTVAUTVQVFVSKVBABVDDENOVBUTVQVHVTKVAABVDDFNUDUEVRUTVKBMZVLB
      MZWAVMPUTVAVBVQUFVAUTVQWBVBABVDEUGOVBUTVQWCVAABVDFUGUDBCVKVLDUHUIUMUJVCVE
      AQZVGAQZVOVJPVCDBQZVAWDVCBCDHZWFUTVAWGVBBCDUNUKBCDRSZUTVAVBUOZBADEUPTVCWF
      VBWEWHUTVAVBUQZBADFUPTGAVEVGURTVCEAQZFAQZVPVNPVCVAWKWIABERSVCVBWLWJABFRSG
      AEFURTUS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.  $d x y H $.  $d x y K $.
    $( A surjection is right-cancelable.  (Contributed by FL, 21-Nov-2011.)
       (Proof shortened by Mario Carneiro, 21-Mar-2015.) $)
    cocan2 $p |- ( ( F : A -onto-> B /\ H Fn B /\ K Fn B ) ->
      ( ( H o. F ) = ( K o. F ) <-> H = K ) ) $=
      ( vy vx wfn cv ccom cfv wceq wral 3ad2ant1 fvco3 sylan eqeq12d wb syl2anc
      fveq2 wfo w3a wcel wa fof ralbidva cbvfo bitrd simp2 fnfco eqfnfv 3bitr4d
      wf simp3 ) ABCUAZDBHZEBHZUBZFIZDCJZKZUSECJZKZLZFAMZGIZDKZVFEKZLZGBMZUTVBL
      ZDELZURVEUSCKZDKZVMEKZLZFAMZVJURVDVPFAURUSAUCZUDVAVNVCVOURABCUMZVRVAVNLUO
      UPVSUQABCUENZABUSDCOPURVSVRVCVOLVTABUSECOPQUFUOUPVQVJRUQVPVIFGABCVMVFLVNV
      GVOVHVMVFDTVMVFETQUGNUHURUTAHZVBAHZVKVERURUPVSWAUOUPUQUIZVTBADCUJSURUQVSW
      BUOUPUQUNZVTBAECUJSFAUTVBUKSURUPUQVLVJRWCWDGBDEUKSUL $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d S x y $.
    $( Show that two functions are inverse to each other by computing their
       compositions.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    fcof1o $p |- ( ( ( F : A --> B /\ G : B --> A ) /\
      ( ( F o. G ) = ( _I |` B ) /\ ( G o. F ) = ( _I |` A ) ) ) ->
      ( F : A -1-1-onto-> B /\ `' F = G ) ) $=
      ( wf ccom cid cres wceq wf1o ccnv wf1 fcof1 ad2ant2rl fcofo 3expa adantrr
      wa wfo df-f1o sylanbrc simprl coeq2d coass f1ococnv1 fcoi2 ad2antlr eqtrd
      syl coeq1d syl5eqr f1ocnv f1of fcoi1 4syl 3eqtr3rd jca ) ABCEZBADEZRZCDFZ
      GBHZIZDCFGAHZIZRZRZABCJZCKZDIVGABCLZABCSZVHURVEVJUSVCABDCMNUTVCVKVEURUSVC
      VKABDCOPQABCTUAZVGVIVAFZVIVBFZDVIVGVAVBVIUTVCVEUBUCVGVMVICFZDFZDVICDUDVGV
      PVDDFZDVGVOVDDVGVHVOVDIVLABCUEUIUJUSVQDIURVFBADUFUGUHUKVGVHBAVIJBAVIEVNVI
      IVLABCULBAVIUMBAVIUNUOUPUQ $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d A x y $.  $d B x y $.
    $( Condition for function equality in terms of vanishing of the composition
       with the converse. _EDITORIAL_:  Is there a relation-algebraic proof of
       this?  (Contributed by Stefan O'Rear, 12-Feb-2015.) $)
    foeqcnvco $p |- ( ( F : A -onto-> B /\ G : A -onto-> B ) ->
        ( F = G <-> ( F o. `' G ) = ( _I |` B ) ) ) $=
      ( vx vy wfo wa wceq ccnv ccom adantr wfn wcel wbr cvv syl syl2anc adantlr
      wb cid cres fococnv2 cnveq coeq2d eqeq1d syl5ibcom fofn ad2antrr ad2antlr
      wi cv cfv wex cop adantl fnopfv anim1i adantll funfvex funfni vex sylancl
      sylan brcnvg df-br syl6bb mpbird sylibr breq2 breq1 anbi12d spcev breq wf
      brcog mpbid fof ffvelrnda resieq eqcomd eqfnfvd ex impbid ) ABCGZABDGZHZC
      DIZCDJZKZUABUBZIZWEWHWLUKWFWECCJZKZWKIWHWLABCUCWHWNWJWKWHWMWICCDUDUEUFUGL
      WGWLWHWGWLHZEACDWECAMZWFWLABCUHZUIWFDAMZWEWLABDUHZUJWOEULZANZHZWTDUMZWTCU
      MZXBXCXDWKOZXCXDIZXBXCXDWJOZXEWGXAXGWLWGXAHZXGXCFULZWIOZXIXDCOZHZFUNZXHXC
      WTWIOZWTXDCOZXMXHXNWTXCUODNZWGWRXAXPWFWRWEWSUPAWTDUQVDXHWRXAHZXNXPTWFXAXQ
      WEWFWRXAWSURUSZXQXNWTXCDOZXPXQXCPNZWTPNXNXSTXTAWTDWTDUTVAZEVBZXCWTPPDVEVC
      WTXCDVFVGQVHXHWTXDUOCNZXOWGWPXAYCWEWPWFWQLAWTCUQVDWTXDCVFVIXLXNXOHFWTYBXI
      WTIXJXNXKXOXIWTXCWIVJXIWTXDCVKVLVMRXHXTXDPNZXGXMTXHXQXTXRYAQXHWPXAHZYDWEX
      AYEWFWEWPXAWQURSYDAWTCWTCUTVAQFXCXDCWIPPVPRVHSWLXGXETWGXAXCXDWJWKVNUJVQWG
      XAXEXFTZWLXHXCBNXDBNYFWGABWTDWFABDVOWEABDVRUPVSWGABWTCWEABCVOWFABCVRLVSBX
      CXDVTRSVQWAWBWCWD $.

    $( Condition for function equality in terms of vanishing of the composition
       with the inverse.  (Contributed by Stefan O'Rear, 12-Feb-2015.) $)
    f1eqcocnv $p |- ( ( F : A -1-1-> B /\ G : A -1-1-> B ) ->
        ( F = G <-> ( `' F o. G ) = ( _I |` A ) ) ) $=
      ( vx vy wf1 wa wceq ccom wi adantr wfn f1fn adantl cv wcel wbr wb syl cid
      ccnv cres f1cocnv1 coeq2 eqeq1d syl5ibcom equid resieq mpbiri anidms breq
      cfv ad2antlr mpbird wex vex brco cop wfun cdm fnfun fndm biimpar funopfvb
      eleq2d syl2anc bicomd df-br 3bitr4g biimpd syl6rbbr anim12d eximdv syl5bi
      eqcom brcnv cvv anim1i adantll funfvex funfni eqvincg sylibrd adantlr mpd
      3syl eqfnfvd eqcomd ex impbid ) ABCGZABDGZHZCDIZCUBZDJZUAAUCZIZWLWOWSKWMW
      LWPCJZWRIWOWSABCUDWOWTWQWRCDWPUEUFUGLWNWSWOWNWSHZDCXAEADCWNDAMZWSWMXBWLAB
      DNZOZLWNCAMZWSWLXEWMABCNLZLXAEPZAQZHZXGXGWQRZXGDUMZXGCUMZIZXIXJXGXGWRRZXH
      XNXAXHXNXHXHHXNXGXGIEUHAXGXGUIUJUKOWSXJXNSWNXHXGXGWQWRULUNUOWNXHXJXMKWSWN
      XHHZXJFPZXKIZXPXLIZHZFUPZXMXJXGXPDRZXPXGWPRZHZFUPXOXTFXGXGWPDEUQZYDURXOYC
      XSFXOYAXQYBXRXOYAXQXOXGXPUSZDQZXKXPIZYAXQXOYGYFXODUTZXGDVAZQZYGYFSWNYHXHW
      NXBYHXDADVBTLWNYJXHWNYIAXGWNXBYIAIXDADVCTVFVDXGXPDVEVGVHXGXPDVIXPXKVPVJVK
      XOYBXRXOXGXPCRZXLXPIZYBXRXOYLYECQZYKXOCUTZXGCVAZQZYLYMSWNYNXHWNXEYNXFACVB
      TLWNYPXHWNYOAXGWNXEYOAIXFACVCTVFVDXGXPCVEVGXGXPCVIVLXPXGCFUQYDVQXPXLVPVJV
      KVMVNVOXOXBXHHZXKVRQZXMXTSWMXHYQWLWMXBXHXCVSVTYRAXGDXGDWAWBFXKXLVRWCWGWDW
      EWFWHWIWJWK $.
  $}

  ${
    $d u v y z A $.  $d u v y z B $.  $d u v x z C $.  $d x y z R $.  $d x Y $.
    $d u v x z D $.  $d u v y z F $.  $d u v x y z ph $.  $d u v x y z X $.
    $d x y z S $.
    flift.1 $e |- F = ran ( x e. X |-> <. A , B >. ) $.
    flift.2 $e |- ( ( ph /\ x e. X ) -> A e. R ) $.
    flift.3 $e |- ( ( ph /\ x e. X ) -> B e. S ) $.
    $( ` F ` , a function lift, is a subset of ` R X. S ` .  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    fliftrel $p |- ( ph -> F C_ ( R X. S ) ) $=
      ( cop cmpt crn cxp wf wss cv wcel wa opelxpi syl2anc eqid fmptd syl5eqss
      frn syl ) AGBHCDLZMZNZEFOZIAHUKUIPUJUKQABHUHUKUIABRHSTCESDFSUHUKSJKCDEFUA
      UBUIUCUDHUKUIUFUGUE $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftel $p |- ( ph -> ( C F D <-> E. x e. X ( C = A /\ D = B ) ) ) $=
      ( cop wceq wrex wa wcel cvv wb wbr cmpt crn df-br eleq2i wral cv opexgOLD
      bitri elex syl2an syl2anc ralrimiva eqid elrnmptg syl syl5bb opthg2 bitrd
      rexbidva ) AEFIUAZEFNZCDNZOZBJPZECOFDOQZBJPVAVBBJVCUBZUCZRZAVEVAVBIRVIEFI
      UDIVHVBKUEUIAVCSRZBJUFVIVETAVJBJABUGJRQZCGRZDHRZVJLMVLCSRDSRVJVMCGUJDHUJC
      DUHUKULUMBJVCVBVGSVGUNUOUPUQAVDVFBJVKVLVMVDVFTLMEFCDGHURULUTUS $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftel1 $p |- ( ( ph /\ x e. X ) -> A F B ) $=
      ( cv wcel wa cop wbr cmpt crn cvv opexg syl2anc eqid elrnmpt1 mpdan df-br
      adantll syl6eleqr sylibr ) ABLHMZNZCDOZGMCDGPUJUKBHUKQZRZGUJUKSMZUKUMMZUJ
      CEMDFMUNJKCDEFTUAUIUNUOABHUKULSULUBUCUFUDIUGCDGUEUH $.

    $( Converse of the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftcnv $p |- ( ph -> `' F = ran ( x e. X |-> <. B , A >. ) ) $=
      ( vy vz wrel cop wa wceq cv wbr wcel ccnv cmpt crn cxp wss fliftrel relxp
      eqid relss mpisyl relcnv jctil wrex fliftel vex brcnv ancom rexbii bitr4d
      3bitr4g df-br 3bitr3g eqrelrdv2 mpancom ) GUAZNZBHDCOUBUCZNZPAVEVGQAVHVFA
      VGFEUDZUEVINVHABDCFEVGHVGUHZKJUFFEUGVGVIUIUJGUKULALMVEVGALRZMRZVESZVKVLVG
      SZVKVLOZVETVOVGTAVMVKDQZVLCQZPZBHUMZVNAVLVKGSVQVPPZBHUMVMVSABCDVLVKEFGHIJ
      KUNVKVLGLUOMUOUPVRVTBHVPVQUQURUTABDCVKVLFEVGHVJKJUNUSVKVLVEVAVKVLVGVAVBVC
      VD $.

    ${
      fliftfun.4 $e |- ( x = y -> A = C ) $.
      fliftfun.5 $e |- ( x = y -> B = D ) $.
      $( The function ` F ` is the unique function defined by ` F `` A = B ` ,
         provided that the well-definedness condition holds.  (Contributed by
         Mario Carneiro, 23-Dec-2016.) $)
      fliftfun $p |- ( ph -> ( Fun F <->
        A. x e. X A. y e. X ( A = C -> B = D ) ) ) $=
        ( wceq cv wa wrex vz vu vv wfun wi wral nfv cop cmpt nfmpt1 nfrn nfcxfr
        crn nffun wcel cfv fveq2 wbr simplr fliftel1 ad2ant2r sylc simprr eqidd
        funbrfv eqeq2d anbi12d rspcev syl12anc wb fliftel mpbird eqeq12d syl5ib
        anassrs ralrimiva exp31 ralrimd wal cbvrexv syl6bb biimpd reeanv r19.29
        ad2antrr eqtr2 imim1i imp simprlr simprrr 3eqtr4d rexlimivw syl syl5bir
        ex syl9 alrimdv wrel cxp wss fliftrel relxp relss mpisyl dffun2 sylibrd
        baib impbid ) AJUDZDFQZEGQZUEZCKUFZBKUFZAXIXMBKABUGBJBJBKDEUHZUIZUMLBXP
        BKXOUJUKULUNAXIBRZKUOZXMAXISZXRSXLCKXSXRCRZKUOZXLXJDJUPZFJUPZQXSXRYASZS
        ZXKDFJUQYEYBEYCGYEXIDEJURZYBEQAXIYDUSZAXRYFXIYAABDEHIJKLMNUTVADEJVEVBYE
        XIFGJURZYCGQYGYEYHFDQZGEQZSZBKTZYEYAFFQZGGQZYLXSXRYAVCYEFVDYEGVDYKYMYNS
        BXTKXQXTQZYIYMYJYNYODFFOVFYOEGGPVFVGVHVIAYHYLVJXIYDABDEFGHIJKLMNVKWEVLF
        GJVEVBVMVNVOVPVQVRAXNUARZUBRZJURZYPUCRZJURZSZYQYSQZUEZUCVSZUBVSZUAVSZXI
        AXNUUEUAAXNUUDUBAXNUUCUCAUUAYPDQZYQEQZSZBKTZYPFQZYSGQZSZCKTZSZXNUUBAUUA
        UUOAYRUUJYTUUNABDEYPYQHIJKLMNVKAYTUUGYSEQZSZBKTUUNABDEYPYSHIJKLMNVKUUQU
        UMBCKYOUUGUUKUUPUULYODFYPOVFYOEGYSPVFVGVTWAVGWBUUOUUIUUMSZCKTZBKTZXNUUB
        UUIUUMBCKKWCXNUUTUUBXNUUTSXMUUSSZBKTUUBXMUUSBKWDUVAUUBBKUVAXLUURSZCKTUU
        BXLUURCKWDUVBUUBCKUVBEGYQYSXLUURXKUURXJXKUUGUUKXJUUHUULYPDFWFVAWGWHXLUU
        GUUHUUMWIXLUUIUUKUULWJWKWLWMWLWMWOWNWPWQWQWQAJWRZXIUUFVJAJHIWSZWTUVDWRU
        VCABDEHIJKLMNXAHIXBJUVDXCXDXIUVCUUFUAUBUCJXEXGWMXFXH $.

      fliftfund.6 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ A = C ) ) -> B = D ) $.
      $( The function ` F ` is the unique function defined by ` F `` A = B ` ,
         provided that the well-definedness condition holds.  (Contributed by
         Mario Carneiro, 23-Dec-2016.) $)
      fliftfund $p |- ( ph -> Fun F ) $=
        ( wceq wral cv wfun wi wcel 3exp2 imp32 ralrimivva fliftfun mpbird ) AJ
        UADFRZEGRZUBZCKSBKSAUKBCKKABTKUCZCTKUCZUKAULUMUIUJQUDUEUFABCDEFGHIJKLMN
        OPUGUH $.
    $}

    $( The function ` F ` is the unique function defined by ` F `` A = B ` ,
       provided that the well-definedness condition holds.  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    fliftfuns $p |- ( ph -> ( Fun F <-> A. y e. X A. z e. X
      ( [_ y / x ]_ A = [_ z / x ]_ A -> [_ y / x ]_ B = [_ z / x ]_ B ) ) ) $=
      ( cv csb cop cmpt crn nfcsb1v wcel nfcv nfop csbeq1a opeq12d cbvmpt rneqi
      weq eqtri wral ralrimiva nfel1 eleq1d rspc mpan9 csbeq1 fliftfun ) ACDBCN
      ZEOZBUQFOZBDNZEOBUTFOGHIJIBJEFPZQZRCJURUSPZQZRKVBVDBCJVAVCCVAUABURUSBUQES
      ZBUQFSZUBBCUGZEURFUSBUQEUCZBUQFUCZUDUEUFUHAEGTZBJUIUQJTZURGTZAVJBJLUJVJVL
      BUQJBURGVEUKVGEURGVHULUMUNAFHTZBJUIVKUSHTZAVMBJMUJVMVNBUQJBUSHVFUKVGFUSHV
      IULUMUNBUQUTEUOBUQUTFUOUP $.

    $( The domain and range of the function ` F ` .  (Contributed by Mario
       Carneiro, 23-Dec-2016.) $)
    fliftf $p |- ( ph -> ( Fun F <-> F : ran ( x e. X |-> A ) --> S ) ) $=
      ( vy vz crn wa wss wceq cv wex wrex wfun cmpt wf wfn cdm simpr wbr cab wb
      fliftel exbidv adantr rexcom4 wcel elisset syl biantrud syl6rbbr rexbidva
      19.42v syl5bbr bitrd df-dm eqid rnmpt 3eqtr4g df-fn sylanbrc cxp fliftrel
      abbidv rnss rnxpss syl6ss df-f ex ffun impbid1 ) AGUAZBHCUBZNZFGUCZAVSWBA
      VSOZGWAUDZGNZFPWBWCVSGUEZWAQWDAVSUFWCLRZMRZGUGZMSZLUHWGCQZBHTZLUHWFWAWCWJ
      WLLWCWJWKWHDQZOZBHTZMSZWLAWJWPUIVSAWIWOMABCDWGWHEFGHIJKUJUKULWPWNMSZBHTZW
      CWLWNBMHUMAWRWLUIVSAWQWKBHABRHUNOZWKWKWMMSZOWQWSWTWKWSDFUNWTKMDFUOUPUQWKW
      MMUTURUSULVAVBVKLMGVCBLHCVTVTVDVEVFGWAVGVHWCWEEFVIZNZFWCGXAPZWEXBPAXCVSAB
      CDEFGHIJKVJULGXAVLUPEFVMVNWAFGVOVHVPWAFGVQVR $.

    fliftval.4 $e |- ( x = Y -> A = C ) $.
    fliftval.5 $e |- ( x = Y -> B = D ) $.
    fliftval.6 $e |- ( ph -> Fun F ) $.
    $( The value of the function ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftval $p |- ( ( ph /\ Y e. X ) -> ( F ` C ) = D ) $=
      ( wa wceq adantr wcel wfun wbr cfv simpr eqidd anim12ci cv eqeq2d anbi12d
      wrex rspcev syl2anc wb fliftel mpbird funbrfv sylc ) AKJUAZRZIUBZEFIUCZEI
      UDFSAVAUSQTUTVBECSZFDSZRZBJUKZUTUSEESZFFSZRZVFAUSUEAVHUSVGAFUFUSEUFUGVEVI
      BKJBUHKSZVCVGVDVHVJCEEOUIVJDFFPUIUJULUMAVBVFUNUSABCDEFGHIJLMNUOTUPEFIUQUR
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y H $.  $d x y G $.
    $d x y R $.  $d x y S $.  $d x y T $.
    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq1 $p |- ( H = G ->
          ( H Isom R , S ( A , B ) <-> G Isom R , S ( A , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso f1oeq1 fveq1 df-isom breq12d
      bibi2d 2ralbidv anbi12d 3bitr4g ) FEIZABFJZGKZHKZCLZUHFMZUIFMZDLZNZHAOGAO
      ZPABEJZUJUHEMZUIEMZDLZNZHAOGAOZPABCDFQABCDEQUFUGUPUOVAABFERUFUNUTGHAAUFUM
      USUJUFUKUQULURDUHFESUIFESUAUBUCUDGHABCDFTGHABCDETUE $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq2 $p |- ( R = T ->
          ( H Isom R , S ( A , B ) <-> H Isom T , S ( A , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso breq bibi1d df-isom 2ralbidv
      anbi2d 3bitr4g ) CEIZABFJZGKZHKZCLZUFFMUGFMDLZNZHAOGAOZPUEUFUGELZUINZHAOG
      AOZPABCDFQABEDFQUDUKUNUEUDUJUMGHAAUDUHULUIUFUGCERSUAUBGHABCDFTGHABEDFTUC
      $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq3 $p |- ( S = T ->
          ( H Isom R , S ( A , B ) <-> H Isom R , T ( A , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso breq bibi2d df-isom 2ralbidv
      anbi2d 3bitr4g ) DEIZABFJZGKZHKZCLZUFFMZUGFMZDLZNZHAOGAOZPUEUHUIUJELZNZHA
      OGAOZPABCDFQABCEFQUDUMUPUEUDULUOGHAAUDUKUNUHUIUJDERSUAUBGHABCDFTGHABCEFTU
      C $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq4 $p |- ( A = C ->
          ( H Isom R , S ( A , B ) <-> H Isom R , S ( C , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso f1oeq2 raleq df-isom anbi12d
      raleqbi1dv 3bitr4g ) ACIZABFJZGKZHKZDLUFFMUGFMELNZHAOZGAOZPCBFJZUHHCOZGCO
      ZPABDEFQCBDEFQUDUEUKUJUMACBFRUIULGACUHHACSUBUAGHABDEFTGHCBDEFTUC $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq5 $p |- ( B = C ->
          ( H Isom R , S ( A , B ) <-> H Isom R , S ( A , C ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso f1oeq3 anbi1d df-isom
      3bitr4g ) BCIZABFJZGKZHKZDLUDFMUEFMELNHAOGAOZPACFJZUFPABDEFQACDEFQUBUCUGU
      FBCAFRSGHABDEFTGHACDEFTUA $.
  $}

  ${
    $d y z w H $.  $d y z w R $.  $d y z w S $.  $d y z w A $.  $d y z w B $.
    $d x y z w $.
    nfiso.1 $e |- F/_ x H $.
    nfiso.2 $e |- F/_ x R $.
    nfiso.3 $e |- F/_ x S $.
    nfiso.4 $e |- F/_ x A $.
    nfiso.5 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for an isomorphism.  (Contributed by
       NM, 17-May-2004.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    nfiso $p |- F/ x H Isom R , S ( A , B ) $=
      ( vy vz cv wbr cfv wral nfcv nfbr nffv wiso wf1o wb wa df-isom nff1o nfbi
      nfralxy nfan nfxfr ) BCDEFUABCFUBZLNZMNZDOZULFPZUMFPZEOZUCZMBQZLBQZUDALMB
      CDEFUEUKUTAABCFGJKUFUSALBJURAMBJUNUQAAULUMDAULRZHAUMRZSAUOUPEAULFGVATIAUM
      FGVBTSUGUHUHUIUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $( An isomorphism is a one-to-one onto function.  (Contributed by NM,
       27-Apr-2004.) $)
    isof1o $p |- ( H Isom R , S ( A , B ) -> H : A -1-1-onto-> B ) $=
      ( vx vy wiso wf1o cv wbr cfv wb wral df-isom simplbi ) ABCDEHABEIFJZGJZCK
      QELRELDKMGANFANFGABCDEOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $d x y C $.  $d x y D $.
    $( An isomorphism connects binary relations via its function values.
       (Contributed by NM, 27-Apr-2004.) $)
    isorel $p |- ( ( H Isom R , S ( A , B ) /\ ( C e. A /\ D e. A ) ) ->
                 ( C R D <-> ( H ` C ) S ( H ` D ) ) ) $=
      ( vx vy wiso cv wbr cfv wb wral wcel wa wceq fveq2 bibi12d df-isom breq1d
      wf1o simprbi breq1 breq2 breq2d rspc2v mpan9 ) ABEFGJZHKZIKZELZUKGMZULGMZ
      FLZNZIAOHAOZCAPDAPQCDELZCGMZDGMZFLZNZUJABGUCURHIABEFGUAUDUQVCCULELZUTUOFL
      ZNHICDAAUKCRZUMVDUPVEUKCULEUEVFUNUTUOFUKCGSUBTULDRZVDUSVEVBULDCEUFVGUOVAU
      TFULDGSUGTUHUI $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y R $.  $d x y S $.
    $( A consequence of isomorphism on two relations for a function's
       restriction.  (Contributed by Jim Kingdon, 11-Jan-2019.) $)
    isoresbr $p |- ( ( F |` A ) Isom R , S ( A , ( F " A ) ) ->
        A. x e. A A. y e. A ( x R y -> ( F ` x ) S ( F ` y ) ) ) $=
      ( cima cres wiso cv wbr cfv wi wcel wa isorel wb fvres breqan12d adantl
      bitrd biimpd ralrimivva ) CFCGZDEFCHZIZAJZBJZDKZUGFLZUHFLZEKZMABCCUFUGCNZ
      UHCNZOZOZUIULUPUIUGUELZUHUELZEKZULCUDUGUHDEUEPUOUSULQUFUMUNUQUJURUKEUGCFR
      UHCFRSTUAUBUC $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( Identity law for isomorphism.  Proposition 6.30(1) of [TakeutiZaring]
       p. 33.  (Contributed by NM, 27-Apr-2004.) $)
    isoid $p |- ( _I |` A ) Isom R , R ( A , A ) $=
      ( vx vy cid cres wiso wf1o wbr cfv wral f1oi wcel fvresi breqan12d bicomd
      cv wb wa rgen2a df-isom mpbir2an ) AABBEAFZGAAUCHCQZDQZBIZUDUCJZUEUCJZBIZ
      RZDAKCAKALUJCDAUDAMZUEAMZSUIUFUKULUGUDUHUEBAUDNAUENOPTCDAABBUCUAUB $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d x y C $.  $d x y D $.  $d w x y z H $.
    $d w x y z R $.  $d w x y z S $.
    $( Converse law for isomorphism.  Proposition 6.30(2) of [TakeutiZaring]
       p. 33.  (Contributed by NM, 27-Apr-2004.) $)
    isocnv $p |- ( H Isom R , S ( A , B ) -> `' H Isom S , R ( B , A ) ) $=
      ( vx vy vz vw wf1o cv wbr cfv wb wral wa wiso wcel wceq f1ocnvfv2 adantrr
      ccnv f1ocnv adantr adantrl breq12d adantlr wf syl ffvelrn anim12dan breq1
      f1of fveq2 breq1d bibi12d bicom syl6bb breq2d breq2 rspc2va sylan sylanl1
      an32s bitr3d ralrimivva jca df-isom 3imtr4i ) ABEJZFKZGKZCLZVKEMZVLEMZDLZ
      NZGAOFAOZPZBAEUBZJZHKZIKZDLZWBVTMZWCVTMZCLZNZIBOHBOZPABCDEQBADCVTQVSWAWIV
      JWAVRABEUCZUDVSWHHIBBVSWBBRZWCBRZPZPWEEMZWFEMZDLZWDWGVJWMWPWDNVRVJWMPWNWB
      WOWCDVJWKWNWBSWLABWBETUAVJWLWOWCSWKABWCETUEUFUGVJBAVTUHZVRWMWPWGNZVJWAWQW
      JBAVTUMUIWQWMVRWRWQWMPWEARZWFARZPVRWRWQWKWSWLWTBAWBVTUJBAWCVTUJUKVQWRWNVO
      DLZWEVLCLZNZFGWEWFAAVKWESZVQXBXANXCXDVMXBVPXAVKWEVLCULXDVNWNVODVKWEEUNUOU
      PXBXAUQURVLWFSZXAWPXBWGXEVOWOWNDVLWFEUNUSVLWFWECUTUPVAVBVDVCVEVFVGFGABCDE
      VHHIBADCVTVHVI $.

    $( Converse law for isomorphism.  (Contributed by Mario Carneiro,
       30-Jan-2014.) $)
    isocnv2 $p |- ( H Isom R , S ( A , B ) <->
                    H Isom `' R , `' S ( A , B ) ) $=
      ( vy vx wiso ccnv isof1o syl cv wbr cfv wb wral wa wcel vex cvv wfn f1ofn
      wf1o funfvex funfni adantr adantlr brcnvg syl2anc bibi12d ralbidva ralcom
      brcnv a1i syl6rbbr anbi2d df-isom 3bitr4g pm5.21nii ) ABCDEHZEAUAZABCIZDI
      ZEHZUTABEUCZVAABCDEJABEUBZKVDVEVAABVBVCEJVFKVAVEFLZGLZCMZVGENZVHENZDMZOZG
      APFAPZQVEVHVGVBMZVKVJVCMZOZFAPZGAPZQUTVDVAVNVSVEVAVSVMFAPZGAPVNVAVRVTGAVA
      VHARZQZVQVMFAWBVGARZQZVOVIVPVLVOVIOWDVHVGCGSFSUMUNWDVKTRZVJTRZVPVLOWBWEWC
      WEAVHEVHEUDUEUFVAWCWFWAWFAVGEVGEUDUEUGVKVJTTDUHUIUJUKUKVMFGAAULUOUPFGABCD
      EUQGFABVBVCEUQURUS $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d H x y $.  $d R x y $.  $d S x y $.
    $( An isomorphism from one well-order to another can be restricted on
       either well-order.  (Contributed by Mario Carneiro, 15-Jan-2013.) $)
    isores2 $p |- ( H Isom R , S ( A , B ) <->
                      H Isom R , ( S i^i ( B X. B ) ) ( A , B ) ) $=
      ( vx vy wf1o cv wbr cfv wb wral wa cxp wiso wcel ffvelrn ralbidva df-isom
      cin wf f1of adantrr adantrl brinxp syl2anc anassrs bibi2d pm5.32i 3bitr4i
      sylan ) ABEHZFIZGIZCJZUNEKZUOEKZDJZLZGAMZFAMZNUMUPUQURDBBOUAZJZLZGAMZFAMZ
      NABCDEPABCVCEPUMVBVGUMVAVFFAUMUNAQZNZUTVEGAVIUOAQZNUSVDUPUMVHVJUSVDLZUMAB
      EUBZVHVJNZVKABEUCVLVMNUQBQZURBQZVKVLVHVNVJABUNERUDVLVJVOVHABUOERUEUQURBBD
      UFUGULUHUISSUJFGABCDETFGABCVCETUK $.
  $}

  ${
    $( An isomorphism from one well-order to another can be restricted on
       either well-order.  (Contributed by Mario Carneiro, 15-Jan-2013.) $)
    isores1 $p |- ( H Isom R , S ( A , B ) <->
                      H Isom ( R i^i ( A X. A ) ) , S ( A , B ) ) $=
      ( wiso cxp cin ccnv isocnv isores2 sylib wf1o wb isof1o isoeq1 sylbi 3syl
      syl mpbid wrel f1orel wceq dfrel2 sylibr impbii ) ABCDEFZABCAAGHZDEFZUGAB
      UHDEIZIZFZUIUGBADUHUJFZULUGBADCUJFZUMABCDEJBADCUJKZLBADUHUJJSUGABEMZEUAZU
      LUINZABCDEOABEUBZUQUKEUCZUREUDZABUHDEUKPQRTUIABCDUKFZUGUIUNVBUIUMUNABUHDE
      JUOUEBADCUJJSUIUPUQVBUGNZABUHDEOUSUQUTVCVAABCDEUKPQRTUF $.
  $}

  ${
    $d H a b c $.  $d R a b c $.  $d S a b c $.  $d K a b c $.  $d A a b c $.
    $d B a b c $.  $d X a b c $.
    $( Induced isomorphism on a subset.  (Contributed by Stefan O'Rear,
       5-Nov-2014.) $)
    isores3 $p |- ( ( H Isom R , S ( A , B ) /\ K C_ A /\ X = ( H " K ) ) ->
        ( H |` K ) Isom R , S ( K , X ) ) $=
      ( va vb wiso wa wf1o cv wbr cfv wb wral ssralv wcel fvres cima wceq f1of1
      wss cres wf1 f1ores expcom syl5 adantr breqan12d adantll biimprd ralimdva
      wi bibi2d syld anim12d df-isom 3imtr4g impcom isoeq5 syl5ibrcom 3impia )
      ABCDEJZFAUDZGEFUAZUBZFGCDEFUEZJZVEVFKVJVHFVGCDVIJZVFVEVKVFABELZHMZIMZCNZV
      MEOZVNEOZDNZPZIAQZHAQZKFVGVILZVOVMVIOZVNVIOZDNZPZIFQZHFQZKVEVKVFVLWBWAWHV
      LABEUFZVFWBABEUCWIVFWBABFEUGUHUIVFWAVTHFQWHVTHFARVFVTWGHFVFVMFSZKZVTVSIFQ
      ZWGVFVTWLUOWJVSIFARUJWKVSWFIFWKVNFSZKZWFVSWNWEVRVOWJWMWEVRPVFWJWMWCVPWDVQ
      DVMFETVNFETUKULUPUMUNUQUNUQURHIABCDEUSHIFVGCDVIUSUTVAFGVGCDVIVBVCVD $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w R $.
    $d x y z w S $.  $d x y z w T $.  $d x y z w G $.  $d x y z w H $.
    $( Composition (transitive) law for isomorphism.  Proposition 6.30(3) of
       [TakeutiZaring] p. 33.  (Contributed by NM, 27-Apr-2004.)  (Proof
       shortened by Mario Carneiro, 5-Dec-2016.) $)
    isotr $p |- ( ( H Isom R , S ( A , B ) /\ G Isom S , T ( B , C ) ) ->
               ( G o. H ) Isom R , T ( A , C ) ) $=
      ( vx vy vz vw cv wbr cfv wb wral wa wcel wceq wf1o simpl f1oco syl2anr wf
      ccom wiso f1of ad2antrr simprl ffvelrnd simprr simplrr breq1 fveq2 breq1d
      bibi12d breq2 breq2d rspc2va syl21anc fvco3 syl2anc breq12d bitr4d bibi2d
      2ralbidva biimpd impancom imp jca df-isom anbi12i 3imtr4i ) ABHUAZIMZJMZD
      NZVPHOZVQHOZENZPZJAQIAQZRZBCGUAZKMZLMZENZWFGOZWGGOZFNZPZLBQKBQZRZRZACGHUF
      ZUAZVRVPWPOZVQWPOZFNZPZJAQIAQZRABDEHUGZBCEFGUGZRACDFWPUGWOWQXBWNWEVOWQWDW
      EWMUBVOWCUBABCGHUCUDWDWNXBVOWNWCXBVOWNRZWCXBXEWBXAIJAAXEVPASZVQASZRZRZWAW
      TVRXIWAVSGOZVTGOZFNZWTXIVSBSVTBSWMWAXLPZXIABVPHVOABHUEZWNXHABHUHUIZXEXFXG
      UJZUKXIABVQHXOXEXFXGULZUKVOWEWMXHUMWLXMVSWGENZXJWJFNZPKLVSVTBBWFVSTZWHXRW
      KXSWFVSWGEUNXTWIXJWJFWFVSGUOUPUQWGVTTZXRWAXSXLWGVTVSEURYAWJXKXJFWGVTGUOUS
      UQUTVAXIWRXJWSXKFXIXNXFWRXJTXOXPABVPGHVBVCXIXNXGWSXKTXOXQABVQGHVBVCVDVEVF
      VGVHVIVJVKXCWDXDWNIJABDEHVLKLBCEFGVLVMIJACDFWPVLVN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $d x y D $.
    $( Isomorphisms preserve initial segments.  Proposition 6.31(2) of
       [TakeutiZaring] p. 33.  (Contributed by NM, 20-Apr-2004.) $)
    isoini $p |- ( ( H Isom R , S ( A , B ) /\ D e. A ) ->
               ( H " ( A i^i ( `' R " { D } ) ) ) =
               ( B i^i ( `' S " { ( H ` D ) } ) ) ) $=
      ( vx vy wcel wa ccnv cfv csn cima cin wbr wrex wb 3syl syl6bb wiso cv cab
      elin wceq crn wf1o wfo isof1o f1ofo forn eleq2d wfn fvelrnb bitr3d adantr
      f1ofn cvv syl anim1i funfvex funfni eliniseg anbi12d anbi2d syl5bb anbi1d
      vex anass adantl wi isorel fnbrfvb bicomd sylan adantrr ancom breq1 bitri
      pm5.32i exp32 com23 pm5.32d bitrd rexbidv2 r19.41v bitr4d dfima2 syl6reqr
      imp abbi2dv ) ABDEFUAZCAIZJZBEKCFLZMNZOZGUBZHUBZFPZGADKCMNZOZQZHUCFXBNWNX
      CHWQWSWQIWSBIZWSWPIZJZWNXCWSBWPUDWNXFWRFLZWSUEZGAQZWSWOEPZJZXCWNXDXIXEXJW
      LXDXIRWMWLWSFUFZIZXDXIWLABFUGZABFUHZXMXDRABDEFUIZABFUJXOXLBWSABFUKULSWLXN
      FAUMZXMXIRXPABFUQZGAWSFUNSUOUPWNXQWMJWOURIZXEXJRWLXQWMWLXNXQXPXRUSZUTXSAC
      FCFVAVBEWOWSURHVHVCSVDWNXCXHXJJZGAQXKWNWTYAGXBAWNWRXBIZWTJZWRAIZWRCDPZWTJ
      ZJZYDYAJWMYCYGRWLWMYCYDYEJZWTJYGWMYBYHWTYBYDWRXAIZJWMYHWRAXAUDWMYIYEYDDCW
      RAGVHVCVEVFVGYDYEWTVITVJWNYDYFYAWLWMYDYFYARZVKWLYDWMYJWLYDWMYJWLYDWMJJZYF
      XGWOEPZXHJZYAYKYEYLWTXHABWRCDEFVLWLYDWTXHRZWMWLXQYDYNXTXQYDJXHWTAWRWSFVMV
      NVOVPVDYMXHYLJYAYLXHVQXHYLXJXGWSWOEVRVTVSTWAWBWJWCWDWEXHXJGAWFTWGVFWKGHFX
      BWHWI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y H $.
    $d x y R $.  $d x y S $.
    isoini2.1 $e |- C = ( A i^i ( `' R " { X } ) ) $.
    isoini2.2 $e |- D = ( B i^i ( `' S " { ( H ` X ) } ) ) $.
    $( Isomorphisms are isomorphisms on their initial segments.  (Contributed
       by Mario Carneiro, 29-Mar-2014.) $)
    isoini2 $p |- ( ( H Isom R , S ( A , B ) /\ X e. A ) ->
                    ( H |` C ) Isom R , S ( C , D ) ) $=
      ( vx vy wiso wcel wf1o wbr cfv wb wral cima wa cres cv wf1 wss isof1o syl
      f1of1 adantr ccnv csn inss1 eqsstri f1ores sylancl isoini imaeq2i 3eqtr4g
      cin wceq f1oeq3 mpbid df-isom simprbi ssralv mpsyl fvres breqan12d bibi2d
      ralimdv ralbidva ralbiia sylibr sylanbrc ) ABEFGMZHANZUAZCDGCUBZOZKUCZLUC
      ZEPZVTVRQZWAVRQZFPZRZLCSZKCSZCDEFVRMVQCGCTZVROZVSVQABGUDZCAUEZWJVOWKVPVOA
      BGOZWKABEFGUFABGUHUGUICAEUJHUKTZUSZAIAWNULUMZABCGUNUOVQWIDUTWJVSRVQGWOTBF
      UJHGQUKTUSWIDABHEFGUPCWOGIUQJURWIDCVRVAUGVBVQWBVTGQZWAGQZFPZRZLCSZKCSZWHW
      LVQXAKASZXBWPWLVQWTLASZKASZXCWPVOXEVPVOWMXEKLABEFGVCVDUIWLXDXAKAWTLCAVEVJ
      VFXAKCAVEVFWGXAKCVTCNZWFWTLCXFWACNZUAWEWSWBXFXGWCWQWDWRFVTCGVGWACGVGVHVIV
      KVLVMKLCDEFVRVCVN $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z H $.  $d w x y z ph $.
    $d w x y z R $.  $d w x y z S $.
    isofrlem.1 $e |- ( ph -> H Isom R , S ( A , B ) ) $.
    isofrlem.2 $e |- ( ph -> ( H " x ) e. _V ) $.
    $( Lemma for ~ isose .  (Contributed by Mario Carneiro, 23-Jun-2015.) $)
    isoselem $p |- ( ph -> ( R Se A -> S Se B ) ) $=
      ( vy vz cv csn cima cin cvv wcel wral wi wceq wse ccnv cfv dfse2 r19.21bi
      biimpi expcom adantl imaeq2 eleq1d imbi2d vtoclg com12 adantr wiso isoini
      wa sylan sylibd syld ralrimdva crn wf1o wfn wb isof1o sneq imaeq2d ineq2d
      f1ofn ralrn 4syl wfo f1ofo forn raleqdv bitr3d syl6ibr ) ACEUAZDFUBZJLZMZ
      NZOZPQZJDRZDFUAAVSDVTKLZGUCZMZNZOZPQZKCRZWFAVSWLKCAWGCQZUQZVSCEUBWGMNOZPQ
      ZWLWNVSWQSAVSWNWQVSWQKCVSWQKCRKCEUDUFUEUGUHWOWQGWPNZPQZWLAWQWSSWNWQAWSAGB
      LZNZPQZSAWSSBWPPWTWPTZXBWSAXCXAWRPWTWPGUIUJUKIULUMUNWOWRWKPACDEFGUOZWNWRW
      KTHCDWGEFGUPURUJUSUTVAAWEJGVBZRZWMWFAXDCDGVCZGCVDXFWMVEHCDEFGVFZCDGVJWEWL
      JKCGWAWHTZWDWKPXIWCWJDXIWBWIVTWAWHVGVHVIUJVKVLAWEJXEDAXDXGCDGVMXEDTHXHCDG
      VNCDGVOVLVPVQUSJDFUDVR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x H $.  $d x R $.  $d x S $.  $d x V $.
    $( An isomorphism preserves set-like relations.  (Contributed by Mario
       Carneiro, 23-Jun-2015.) $)
    isose $p |- ( H Isom R , S ( A , B ) -> ( R Se A <-> S Se B ) ) $=
      ( vx wiso wse wf1o wfun cima cvv wcel isof1o f1ofun vex funimaex isoselem
      id cv 3syl ccnv isocnv 4syl impbid ) ABCDEGZACHBDHUFFABCDEUFSUFABEIEJEFTZ
      KLMABCDENABEOEUGFPZQUARUFFBADCEUBZABCDEUCZUFBADCUIGBAUIIUIJUIUGKLMUJBADCU
      INBAUIOUIUGUHQUDRUE $.
  $}

  ${
    $d H a b c d e f $.  $d R a b c d e f $.  $d S a b c d e f $.
    $d A a b c d e f $.  $d B a b c d e f $.
    $( Lemma for ~ isopo .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    isopolem $p |- ( H Isom R , S ( A , B ) -> ( S Po B -> R Po A ) ) $=
      ( va vb vc vd ve vf cv wbr wa wi wral wcel ex wb anbi12d wiso wpo w3a cfv
      wn wf1o isof1o f1of ffvelrn 3anim123d 3syl imp breq12 anidms notbid breq1
      wf wceq anbi1d imbi12d breq2 imbi1d anbi2d rspc3v syl simpl simpr1 isorel
      syl12anc simpr2 simpr3 sylibrd com23 imp31 ralrimivvva df-po 3imtr4g ) AB
      CDEUAZFLZVSDMZUEZVSGLZDMZWBHLZDMZNZVSWDDMZOZNZHBPGBPFBPZILZWKCMZUEZWKJLZC
      MZWNKLZCMZNZWKWPCMZOZNZKAPJAPIAPZBDUBACUBVRWJXBVRWJNXAIJKAAAVRWJWKAQZWNAQ
      ZWPAQZUCZXAVRXFWJXAVRXFWJXAOVRXFNZWJWKEUDZXHDMZUEZXHWNEUDZDMZXKWPEUDZDMZN
      ZXHXMDMZOZNZXAXGXHBQZXKBQZXMBQZUCZWJXROVRXFYBVRABEUFABEUQZXFYBOABCDEUGABE
      UHYCXCXSXDXTXEYAYCXCXSABWKEUIRYCXDXTABWNEUIRYCXEYAABWPEUIRUJUKULWIXRXJXHW
      BDMZWENZXHWDDMZOZNXJXLXKWDDMZNZYFOZNFGHXHXKXMBBBVSXHURZWAXJWHYGYKVTXIYKVT
      XISVSXHVSXHDUMUNUOYKWFYEWGYFYKWCYDWEVSXHWBDUPUSVSXHWDDUPUTTWBXKURZYGYJXJY
      LYEYIYFYLYDXLWEYHWBXKXHDVAWBXKWDDUPTVBVCWDXMURZYJXQXJYMYIXOYFXPYMYHXNXLWD
      XMXKDVAVCWDXMXHDVAUTVCVDVEXGWMXJWTXQXGWLXIXGVRXCXCWLXISVRXFVFZVRXCXDXEVGZ
      YOABWKWKCDEVHVIUOXGWRXOWSXPXGWOXLWQXNXGVRXCXDWOXLSYNYOVRXCXDXEVJZABWKWNCD
      EVHVIXGVRXDXEWQXNSYNYPVRXCXDXEVKZABWNWPCDEVHVITXGVRXCXEWSXPSYNYOYQABWKWPC
      DEVHVIUTTVLRVMVNVORFGHBDVPIJKACVPVQ $.

    $( An isomorphism preserves partial ordering.  (Contributed by Stefan
       O'Rear, 16-Nov-2014.) $)
    isopo $p |- ( H Isom R , S ( A , B ) -> ( R Po A <-> S Po B ) ) $=
      ( wiso wpo ccnv wi isocnv isopolem syl impbid ) ABCDEFZACGZBDGZNBADCEHZFO
      PIABCDEJBADCQKLABCDEKM $.
  $}

  ${
    $d H a b c x y z $.  $d R a b c x y z $.  $d S a b c x y z $.
    $d A a b c x y z $.  $d B a b c x y z $.
    $( Lemma for ~ isoso .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    isosolem $p |- ( H Isom R , S ( A , B ) -> ( S Or B -> R Or A ) ) $=
      ( vx vy vz va vb vc cv wbr wo wi wral wa wcel cfv ffvelrn wiso wpo df-3an
      wor isopolem w3a wf1o wf isof1o f1of 3anim123d 3syl imp wceq breq1 orbi1d
      ex imbi12d breq2 orbi2d orbi12d imbi2d rspc3v wb isorel 3adantr3 3adantr2
      syl ancom2s 3adantr1 sylibrd sylan2br anassrs ralrimdva ralrimdvva df-iso
      anim12d 3imtr4g ) ABCDEUAZBDUBZFLZGLZDMZWAHLZDMZWDWBDMZNZOZHBPGBPFBPZQACU
      BZILZJLZCMZWKKLZCMZWNWLCMZNZOZKAPZJAPIAPZQBDUDACUDVSVTWJWIWTABCDEUEVSWIWS
      IJAAVSWKARZWLARZQZQWIWRKAVSXCWNARZWIWROZXCXDQVSXAXBXDUFZXEXAXBXDUCVSXFQZW
      IWKESZWLESZDMZXHWNESZDMZXKXIDMZNZOZWRXGXHBRZXIBRZXKBRZUFZWIXOOVSXFXSVSABE
      UGABEUHZXFXSOABCDEUIABEUJXTXAXPXBXQXDXRXTXAXPABWKETUQXTXBXQABWLETUQXTXDXR
      ABWNETUQUKULUMWHXOXHWBDMZXHWDDMZWFNZOXJYBWDXIDMZNZOFGHXHXIXKBBBWAXHUNZWCY
      AWGYCWAXHWBDUOYFWEYBWFWAXHWDDUOUPURWBXIUNZYAXJYCYEWBXIXHDUSYGWFYDYBWBXIWD
      DUSUTURWDXKUNZYEXNXJYHYBXLYDXMWDXKXHDUSWDXKXIDUOVAVBVCVHXGWMXJWQXNVSXAXBW
      MXJVDXDABWKWLCDEVEVFXGWOXLWPXMVSXAXDWOXLVDXBABWKWNCDEVEVGVSXBXDWPXMVDZXAV
      SXDXBYIABWNWLCDEVEVIVJVAURVKVLVMVNVOVQFGHBDVPIJKACVPVR $.
  $}

  $( An isomorphism preserves strict ordering.  (Contributed by Stefan O'Rear,
     16-Nov-2014.) $)
  isoso $p |- ( H Isom R , S ( A , B ) -> ( R Or A <-> S Or B ) ) $=
    ( wiso wor ccnv wi isocnv isosolem syl impbid ) ABCDEFZACGZBDGZNBADCEHZFOPI
    ABCDEJBADCQKLABCDEKM $.

  ${
    $d x y z w v u A $.  $d x y v u B $.  $d x y z w v u H $.
    $d x y z w v u R $.  $d v u S $.
    $( Any one-to-one onto function determines an isomorphism with an induced
       relation ` S ` .  Proposition 6.33 of [TakeutiZaring] p. 34.
       (Contributed by NM, 30-Apr-2004.) $)
    f1oiso $p |- ( ( H : A -1-1-onto-> B /\ S = { <. z , w >. |
     E. x e. A E. y e. A ( ( z = ( H ` x ) /\ w = ( H ` y ) ) /\ x R y ) } ) ->
                  H Isom R , S ( A , B ) ) $=
      ( vv vu cv cfv wceq wa wbr wrex wb wcel anbi1d wf1o copab wral wiso simpl
      wf1 f1of1 cop df-br eleq2 wfn cvv funfvex funfni anim12dan eqeq1 2rexbidv
      f1fn anbi2d opelopabg syl sylan anass f1fveq equcom syl6bb anassrs syl5bb
      rexbidv r19.42v rexbidva breq1 ceqsrexv adantl sylan9bb anandis sylan9bbr
      bitrd breq2 an32s syl5rbb ralrimivva df-isom sylanbrc ) EFIUAZHCLZALZIMZN
      ZDLZBLZIMZNZOZWGWKGPZOZBEQAEQZCDUBZNZOWEJLZKLZGPZWTIMZXAIMZHPZRZKEUCJEUCZ
      EFGHIUDWEWSUEWEEFIUFZWSXGEFIUGXHWSOZXFJKEEXEXCXDUHZHSZXIWTESZXAESZOZOXBXC
      XDHUIXHXNWSXKXBRWSXKXJWRSZXHXNOZXBHWRXJUJXPXOXCWHNZXDWLNZOZWOOZBEQZAEQZXB
      XHIEUKZXNXOYBRZEFIURYCXNOXCULSZXDULSZOYDYCXLYEXMYFYEEWTIWTIUMUNYFEXAIXAIU
      MUNUOWQXQWMOZWOOZBEQAEQYBCDXCXDULULWFXCNZWPYHABEEYIWNYGWOYIWIXQWMWFXCWHUP
      TTUQWJXDNZYHXTABEEYJYGXSWOYJWMXRXQWJXDWLUPUSTUQUTVAVBXHXLXMYBXBRXHXLOZYBX
      RWTWKGPZOZBEQZXHXMOZXBYKYBWGWTNZXRWOOZBEQZOZAEQZYNYKYAYSAEYKWGESZOZYAYPYQ
      OZBEQYSUUBXTUUCBEXTXQYQOUUBUUCXQXRWOVCUUBXQYPYQXHXLUUAXQYPRXHXLUUAOOXQWTW
      GNYPEFWTWGIVDJAVEVFVGTVHVIYPYQBEVJVFVKXLYTYNRXHYRYNAWTEYPYQYMBEYPWOYLXRWG
      WTWKGVLUSVIVMVNVRYOYNWKXANZYLOZBEQZXBYOYMUUEBEYOWKESZOXRUUDYLXHXMUUGXRUUD
      RXHXMUUGOOXRXAWKNUUDEFXAWKIVDKBVEVFVGTVKXMUUFXBRXHYLXBBXAEWKXAWTGVSVMVNVR
      VOVPVRVQVTWAWBVBJKEFGHIWCWD $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.  $d H w x y z $.  $d R w x y z $.
    f1oiso2.1 $e |- S = { <. x , y >. |
      ( ( x e. B /\ y e. B ) /\ ( `' H ` x ) R ( `' H ` y ) ) } $.
    $( Any one-to-one onto function determines an isomorphism with an induced
       relation ` S ` .  (Contributed by Mario Carneiro, 9-Mar-2013.) $)
    f1oiso2 $p |- ( H : A -1-1-onto-> B -> H Isom R , S ( A , B ) ) $=
      ( vz vw cv cfv wceq wa wbr wrex wcel 3adant3 eqcomd syl2anc wf1o wiso w3a
      copab ccnv f1ocnvdm adantrr f1ocnvfv2 anim12dan simp3 fveq2 eqeq2d anbi2d
      adantrl breq2 anbi12d rspcev syl12anc anbi1d breq1 rexbidv 3expib simp3ll
      simp1 simp2l f1of ffvelrnda eqeltrd simp3lr simp2r simp3r wi f1ocnvfv mpd
      3brtr4d jca31 3exp rexlimdvv impbid opabbidv syl5eq f1oiso mpdan ) CDGUAZ
      FAKZIKZGLZMZBKZJKZGLZMZNZWFWJEOZNZJCPZICPZABUDZMCDEFGUBWDFWEDQZWIDQZNZWEG
      UEZLZWIXBLZEOZNZABUDWRHWDXFWQABWDXFWQWDXAXEWQWDXAXEUCZXCCQZWEXCGLZMZWLNZX
      CWJEOZNZJCPZWQWDXAXHXEWDWSXHWTCDWEGUFUGRXGXDCQZXJWIXDGLZMZNZXEXNWDXAXOXEW
      DWTXOWSCDWIGUFUNRWDXAXRXEWDWSXJWTXQWDWSNXIWECDWEGUHSWDWTNXPWICDWIGUHSUIRW
      DXAXEUJXMXRXENJXDCWJXDMZXKXRXLXEXSWLXQXJXSWKXPWIWJXDGUKULUMWJXDXCEUOUPUQU
      RWPXNIXCCWFXCMZWOXMJCXTWMXKWNXLXTWHXJWLXTWGXIWEWFXCGUKULUSWFXCWJEUTUPVAUQ
      TVBWDWOXFIJCCWDWFCQZWJCQZNZWOXFWDYCWOUCZWSWTXEYDWEWGDWHWLWNWDYCVCZYDWDYAW
      GDQWDYCWOVDZWDYAYBWOVEZWDCDWFGCDGVFZVGTVHYDWIWKDWHWLWNWDYCVIZYDWDYBWKDQYF
      WDYAYBWOVJZWDCDWJGYHVGTVHYDWFWJXCXDEWDYCWMWNVKYDWGWEMZXCWFMZYDWEWGYESYDWD
      YAYKYLVLYFYGCDWFWEGVMTVNYDWKWIMZXDWJMZYDWIWKYISYDWDYBYMYNVLYFYJCDWJWIGVMT
      VNVOVPVQVRVSVTWAIJABCDEFGWBWC $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      Restricted iota (description binder)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c iota_ $.

  $( Extend class notation with restricted description binder. $)
  crio $a class ( iota_ x e. A ph ) $.

  $( Define restricted description binder.  In case there is no unique ` x `
     such that ` ( x e. A /\ ph ) ` holds, it evaluates to the empty set.  See
     also comments for ~ df-iota .  (Contributed by NM, 15-Sep-2011.)  (Revised
     by Mario Carneiro, 15-Oct-2016.)  (Revised by NM, 2-Sep-2018.) $)
  df-riota $a |- ( iota_ x e. A ph ) = ( iota x ( x e. A /\ ph ) ) $.

  ${
    $d x ph $.
    riotaeqdv.1 $e |- ( ph -> A = B ) $.
    $( Formula-building deduction rule for iota.  (Contributed by NM,
       15-Sep-2011.) $)
    riotaeqdv $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. B ps ) ) $=
      ( cv wcel wa cio crio eleq2d anbi1d iotabidv df-riota 3eqtr4g ) ACGZDHZBI
      ZCJQEHZBIZCJBCDKBCEKASUACARTBADEQFLMNBCDOBCEOP $.
  $}

  ${
    $d x ph $.
    riotabidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for restricted iota.  (Contributed by
       NM, 15-Sep-2011.) $)
    riotabidv $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. A ch ) ) $=
      ( cv wcel wa cio crio biidd anbi12d iotabidv df-riota 3eqtr4g ) ADGEHZBIZ
      DJQCIZDJBDEKCDEKARSDAQQBCAQLFMNBDEOCDEOP $.
  $}

  ${
    $d x ph $.
    riotaeqbidv.1 $e |- ( ph -> A = B ) $.
    riotaeqbidv.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 15-Sep-2011.) $)
    riotaeqbidv $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. B ch ) ) $=
      ( crio riotabidv riotaeqdv eqtrd ) ABDEICDEICDFIABCDEHJACDEFGKL $.
  $}

  ${
    $d A x $.
    $( Restricted iota is a set.  (Contributed by Jim Kingdon, 15-Jun-2020.) $)
    riotaexg $p |- ( A e. V -> ( iota_ x e. A ps ) e. _V ) $=
      ( wcel crio cv cio cvv df-riota cuni uniexg wss iotass elssuni adantr mpg
      wa wi a1i ssexd syl5eqel ) CDEZABCFBGZCEZARZBHZIABCJUCUGCKZICDLUGUHMZUCUF
      UDUHMZSUIBUFBUHNUEUJAUDCOPQTUAUB $.
  $}

  $( An iota restricted to the universe is unrestricted.  (Contributed by NM,
     18-Sep-2011.) $)
  riotav $p |- ( iota_ x e. _V ph ) = ( iota x ph ) $=
    ( cvv crio cv wcel wa cio df-riota vex biantrur iotabii eqtr4i ) ABCDBECFZA
    GZBHABHABCIAOBNABJKLM $.

  $( Restricted iota in terms of class union.  (Contributed by NM,
     11-Oct-2011.) $)
  riotauni $p |- ( E! x e. A ph
                    -> ( iota_ x e. A ph ) = U. { x e. A | ph } ) $=
    ( wreu cv wcel wa cio cab cuni crio crab wceq df-reu iotauni sylbi df-riota
    weu df-rab unieqi 3eqtr4g ) ABCDZBECFAGZBHZUCBIZJZABCKABCLZJUBUCBRUDUFMABCN
    UCBOPABCQUGUEABCSTUA $.

  ${
    $d x y A $.  $d y ph $.
    $( The abstraction variable in a restricted iota descriptor isn't free.
       (Contributed by NM, 12-Oct-2011.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfriota1 $p |- F/_ x ( iota_ x e. A ph ) $=
      ( crio cv wcel wa cio df-riota nfiota1 nfcxfr ) BABCDBECFAGZBHABCILBJK $.
  $}

  ${
    $d x y $.
    nfriotadxy.1 $e |- F/ y ph $.
    nfriotadxy.2 $e |- ( ph -> F/ x ps ) $.
    nfriotadxy.3 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfriota .  (Contributed by Jim Kingdon,
       12-Jan-2019.) $)
    nfriotadxy $p |- ( ph -> F/_ x ( iota_ y e. A ps ) ) $=
      ( crio cv wcel wa cio df-riota wnfc nfcv a1i nfeld nfand nfiotadxy
      nfcxfrd ) ACBDEIDJZEKZBLZDMBDENAUDCDFAUCBCACUBECUBOACUBPQHRGSTUA $.
  $}

  ${
    $d x y z $.  $d z A $.  $d z ph $.
    nfriota.1 $e |- F/ x ph $.
    nfriota.2 $e |- F/_ x A $.
    $( A variable not free in a wff remains so in a restricted iota
       descriptor.  (Contributed by NM, 12-Oct-2011.) $)
    nfriota $p |- F/_ x ( iota_ y e. A ph ) $=
      ( crio wnfc wtru nftru wnf a1i nfriotadxy trud ) BACDGHIABCDCJABKIELBDHIF
      LMN $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.  $d z ps $.
    cbvriota.1 $e |- F/ y ph $.
    cbvriota.2 $e |- F/ x ps $.
    cbvriota.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variable in a restricted description binder.  (Contributed
       by NM, 18-Mar-2013.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    cbvriota $p |- ( iota_ x e. A ph ) = ( iota_ y e. A ps ) $=
      ( vz cv wcel wa cio crio wsb weq eleq1 anbi12d nfv nfan nfs1v sbie syl6bb
      sbequ12 cbviota sbequ nfsb eqtri df-riota 3eqtr4i ) CJZEKZALZCMZDJZEKZBLZ
      DMZACENBDENUNIJZEKZACIOZLZIMURUMVBCICIPULUTAVAUKUSEQACIUDRUMISUTVACUTCSAC
      IUATUEVBUQIDIDPZUTUPVABUSUOEQVCVAACDOBAIDCUFABCDGHUBUCRUTVADUTDSACIDFUGTU
      QISUEUHACEUIBDEUIUJ $.
  $}

  ${
    $d x A $.  $d y A $.  $d y ph $.  $d x ps $.
    cbvriotav.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variable in a restricted description binder.  (Contributed
       by NM, 18-Mar-2013.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    cbvriotav $p |- ( iota_ x e. A ph ) = ( iota_ y e. A ps ) $=
      ( nfv cbvriota ) ABCDEADGBCGFH $.
  $}

  ${
    $d y z A $.  $d x z w B $.  $d w z ph $.  $d w x y $.
    $( Interchange class substitution and restricted description binder.
       (Contributed by NM, 24-Feb-2013.) $)
    csbriotag $p |- ( A e. V
      -> [_ A / x ]_ ( iota_ y e. B ph ) = ( iota_ y e. B [. A / x ]. ph ) ) $=
      ( vz cv crio csb wsb wceq wsbc csbeq1 dfsbcq2 riotabidv eqeq12d vex nfs1v
      nfcv nfriota weq sbequ12 csbief vtoclg ) BGHZACEIZJZABGKZCEIZLBDUGJZABDMZ
      CEIZLGDFUFDLZUHUKUJUMBUFDUGNUNUIULCEABGDOPQBUFUGUJGRUIBCEABGSBETUABGUBAUI
      CEABGUCPUDUE $.
  $}

  $( Membership law for "the unique element in ` A ` such that ` ph ` ."

     (Contributed by NM, 21-Aug-2011.)  (Revised by Mario Carneiro,
     23-Dec-2016.) $)
  riotacl2 $p |- ( E! x e. A ph -> ( iota_ x e. A ph ) e. { x e. A | ph } ) $=
    ( wreu cv wcel wa cio cab crio crab weu df-reu iotacl sylbi df-riota df-rab
    3eltr4g ) ABCDZBECFAGZBHZTBIZABCJABCKSTBLUAUBFABCMTBNOABCPABCQR $.

  ${
    $d x A $.
    $( Closure of restricted iota.  (Contributed by NM, 21-Aug-2011.) $)
    riotacl $p |- ( E! x e. A ph -> ( iota_ x e. A ph ) e. A ) $=
      ( wreu crab crio ssrab2 riotacl2 sseldi ) ABCDABCECABCFABCGABCHI $.
  $}

  $( Substitution law for descriptions.  (Contributed by NM, 23-Aug-2011.)
     (Proof shortened by Mario Carneiro, 24-Dec-2016.) $)
  riotasbc $p |- ( E! x e. A ph -> [. ( iota_ x e. A ph ) / x ]. ph ) $=
    ( wreu crio cab wcel wsbc crab rabssab riotacl2 sseldi df-sbc sylibr ) ABCD
    ZABCEZABFZGABPHOABCIQPABCJABCKLABPMN $.

  ${
    $d x ph $.
    riotabidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (deduction
       rule).  ( ~ rabbidva analog.)  (Contributed by NM, 17-Jan-2012.) $)
    riotabidva $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. A ch ) ) $=
      ( cv wcel wa cio crio pm5.32da iotabidv df-riota 3eqtr4g ) ADGEHZBIZDJPCI
      ZDJBDEKCDEKAQRDAPBCFLMBDENCDENO $.
  $}

  ${
    riotabiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Equivalent wff's yield equal restricted iotas (inference rule).
       ( ~ rabbiia analog.)  (Contributed by NM, 16-Jan-2012.) $)
    riotabiia $p |- ( iota_ x e. A ph ) = ( iota_ x e. A ps ) $=
      ( cvv wceq crio eqid cv wcel wb adantl riotabidva ax-mp ) FFGZACDHBCDHGFI
      PABCDCJDKABLPEMNO $.
  $}

  ${
    $d x y A $.
    $( Property of restricted iota.  Compare ~ iota1 .  (Contributed by Mario
       Carneiro, 15-Oct-2016.) $)
    riota1 $p |- ( E! x e. A ph ->
      ( ( x e. A /\ ph ) <-> ( iota_ x e. A ph ) = x ) ) $=
      ( wreu cv wcel wa cio wceq crio weu wb df-reu iota1 sylbi df-riota eqeq1i
      syl6bbr ) ABCDZBEZCFAGZUABHZTIZABCJZTISUABKUAUCLABCMUABNOUDUBTABCPQR $.
  $}

  $( Property of iota.  (Contributed by NM, 23-Aug-2011.) $)
  riota1a $p |- ( ( x e. A /\ E! x e. A ph ) ->
          ( ph <-> ( iota x ( x e. A /\ ph ) ) = x ) ) $=
    ( cv wcel wa wreu cio wceq ibar weu wb df-reu iota1 sylbi sylan9bb ) BDZCEZ
    ARAFZABCGZSBHQIZRAJTSBKSUALABCMSBNOP $.

  ${
    $d x A $.
    riota2df.1 $e |- F/ x ph $.
    riota2df.2 $e |- ( ph -> F/_ x B ) $.
    riota2df.3 $e |- ( ph -> F/ x ch ) $.
    riota2df.4 $e |- ( ph -> B e. A ) $.
    riota2df.5 $e |- ( ( ph /\ x = B ) -> ( ps <-> ch ) ) $.
    $( A deduction version of ~ riota2f .  (Contributed by NM, 17-Feb-2013.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riota2df $p |- ( ( ph /\ E! x e. A ps ) ->
            ( ch <-> ( iota_ x e. A ps ) = B ) ) $=
      ( wreu wa cv wcel cio wceq crio adantr simpr weu df-reu eqeltrd biantrurd
      sylib adantlr bitr3d nfreu1 nfan wnf wnfc iota2df df-riota eqeq1i syl6bbr
      wb ) ABDELZMZCDNZEOZBMZDPZFQBDERZFQURVACDFEAFEOZUQJSZURUQVADUAAUQTBDEUBUE
      URUSFQZMZBVACVGUTBVGUSFEURVFTURVDVFVESUCUDAVFBCUPUQKUFUGAUQDGBDEUHUIACDUJ
      UQISADFUKUQHSULVCVBFBDEUMUNUO $.
  $}

  ${
    $d y ph $.  $d x y A $.  $d y B $.
    riota2f.1 $e |- F/_ x B $.
    riota2f.2 $e |- F/ x ps $.
    riota2f.3 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( This theorem shows a condition that allows us to represent a descriptor
       with a class expression ` B ` .  (Contributed by NM, 23-Aug-2011.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riota2f $p |- ( ( B e. A /\ E! x e. A ph ) ->
            ( ps <-> ( iota_ x e. A ph ) = B ) ) $=
      ( wcel nfel1 wnfc a1i wnf id cv wceq wb adantl riota2df ) EDIZABCDECEDFJC
      EKTFLBCMTGLTNCOEPABQTHRS $.
  $}

  ${
    $d x ps $.  $d x A $.  $d x B $.
    riota2.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( This theorem shows a condition that allows us to represent a descriptor
       with a class expression ` B ` .  (Contributed by NM, 23-Aug-2011.)
       (Revised by Mario Carneiro, 10-Dec-2016.) $)
    riota2 $p |- ( ( B e. A /\ E! x e. A ph ) ->
            ( ps <-> ( iota_ x e. A ph ) = B ) ) $=
      ( nfcv nfv riota2f ) ABCDECEGBCHFI $.
  $}

  ${
    $d y ph $.  $d x y A $.  $d y B $.
    riotaprop.0 $e |- F/ x ps $.
    riotaprop.1 $e |- B = ( iota_ x e. A ph ) $.
    riotaprop.2 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Properties of a restricted definite description operator.  Todo
       ( ~ df-riota update): can some uses of ~ riota2f be shortened with
       this?  (Contributed by NM, 23-Nov-2013.) $)
    riotaprop $p |- ( E! x e. A ph -> ( B e. A /\ ps ) ) $=
      ( wreu wcel crio riotacl syl5eqel wa wceq eqcomi nfriota1 nfcxfr riota2f
      mpbiri mpancom jca ) ACDIZEDJZBUCEACDKZDGACDLMZUDUCBUFUDUCNBUEEOEUEGPABCD
      ECEUEGACDQRFHSTUAUB $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.  $d y ps $.
    riota5f.1 $e |- ( ph -> F/_ x B ) $.
    riota5f.2 $e |- ( ph -> B e. A ) $.
    riota5f.3 $e |- ( ( ph /\ x e. A ) -> ( ps <-> x = B ) ) $.
    $( A method for computing restricted iota.  (Contributed by NM,
       16-Apr-2013.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riota5f $p |- ( ph -> ( iota_ x e. A ps ) = B ) $=
      ( vy cv wceq wb wral ralrimiva wi wcel wa wtru a1tru nfv crio wsbc adantl
      wreu reu6i nfra1 nfan nfcvd nfvd simprl simpr simplrr simplrl eqeltrd rsp
      sylc mpbird 2thd mpdan mpbid expr rspsbc nfeqd nfan1 eqeq2d bibi2d ralbid
      riota2df imbi12d sbcied mpd ) ABCJZEKZLZCDMZBCDUAZEKZAVNCDHNABVLIJZKZLZCD
      MZVPVRKZOZIEUBZVOVQOZAEDPWCIDMWDGAWCIDAVRDPZWAWBAWFWAQZQZRWBWHSWHBCDUDZRW
      BLWGWIABCDVRUEUCWHBRCDVRAWGCACTZWFWACWFCTVTCDUFUGUGWHCVRUHWHRCUIAWFWAUJWH
      VSQZBRWKBVSWHVSUKZWKWAVLDPVTAWFWAVSULWKVLVRDWLAWFWAVSUMUNVTCDUOUPUQWKSURV
      HUSUTVANWCIEDVBUPAWCWEIEDGAVREKZQZWAVOWBVQWNVTVNCDAWMCWJACVREACVRUHFVCVDW
      NVSVMBWNVREVLAWMUKZVEVFVGWNVREVPWOVEVIVJUTVK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    riota5.1 $e |- ( ph -> B e. A ) $.
    riota5.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> x = B ) ) $.
    $( A method for computing restricted iota.  (Contributed by NM,
       20-Oct-2011.)  (Revised by Mario Carneiro, 6-Dec-2016.) $)
    riota5 $p |- ( ph -> ( iota_ x e. A ps ) = B ) $=
      ( nfcvd riota5f ) ABCDEACEHFGI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Restriction of a unique element to a smaller class.  (Contributed by NM,
       21-Aug-2011.)  (Revised by NM, 22-Mar-2013.) $)
    riotass2 $p |- ( ( ( A C_ B /\ A. x e. A ( ph -> ps ) )
           /\ ( E. x e. A ph /\ E! x e. B ps ) )
         -> ( iota_ x e. A ph ) = ( iota_ x e. B ps ) ) $=
      ( wi wral wa wrex wreu crio wsbc wceq reuss2 simplr riotasbc wcel riotacl
      wss syl rspsbc sbcimg sylibd mpid sylc wb ssel ad2antrr mpd simprr nfsbc1
      nfriota1 sbceq1a riota2f syl2anc mpbid eqcomd ) DESZABFZCDGZHZACDIZBCEJZH
      ZHZBCEKZACDKZVEBCVGLZVFVGMZVEACDJZUTVHABCDENZURUTVDOVJUTACVGLZVHACDPVJVGD
      QZUTVLVHFZFACDRZVMUTUSCVGLVNUSCVGDUAABCVGDUBUCTUDUEVEVGEQZVCVHVIUFVEVMVPV
      EVJVMVKVOTURVMVPFUTVDDEVGUGUHUIVAVBVCUJBVHCEVGACDULZBCVGVQUKBCVGUMUNUOUPU
      Q $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y ph $.
    $( Restriction of a unique element to a smaller class.  (Contributed by NM,
       19-Oct-2005.)  (Revised by Mario Carneiro, 24-Dec-2016.) $)
    riotass $p |- ( ( A C_ B /\ E. x e. A ph /\ E! x e. B ph ) ->
                ( iota_ x e. A ph ) = ( iota_ x e. B ph ) ) $=
      ( wss wrex wreu w3a crio wsbc wceq reuss riotasbc syl wcel riotacl sseldd
      wb simp1 simp3 nfriota1 nfsbc1 sbceq1a riota2f syl2anc mpbid eqcomd ) CDE
      ZABCFZABDGZHZABDIZABCIZUKABUMJZULUMKZUKABCGZUNABCDLZABCMNUKUMDOUJUNUORUKC
      DUMUHUIUJSUKUPUMCOUQABCPNQUHUIUJTAUNBDUMABCUAZABUMURUBABUMUCUDUEUFUG $.

    $( Restriction of a unique element to a smaller class.  (Contributed by NM,
       19-Feb-2006.)  (Revised by NM, 16-Jun-2017.) $)
    moriotass $p |- ( ( A C_ B /\ E. x e. A ph /\ E* x e. B ph ) ->
                ( iota_ x e. A ph ) = ( iota_ x e. B ph ) ) $=
      ( wss wrex wrmo wreu crio wceq w3a ssrexv imp 3adant3 simp3 reu5 sylanbrc
      riotass syld3an3 ) CDEZABCFZABDGZABDHZABCIABDIJTUAUBKABDFZUBUCTUAUDUBTUAU
      DABCDLMNTUAUBOABDPQABCDRS $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( A restricted class abstraction with a unique member can be expressed as
       a singleton.  (Contributed by NM, 30-May-2006.) $)
    snriota $p |- ( E! x e. A ph ->
                   { x e. A | ph } = { ( iota_ x e. A ph ) } ) $=
      ( wreu cv wcel wa cab cio csn crab crio wceq df-reu sniota sylbi df-riota
      weu df-rab sneqi 3eqtr4g ) ABCDZBECFAGZBHZUCBIZJZABCKABCLZJUBUCBRUDUFMABC
      NUCBOPABCSUGUEABCQTUA $.
  $}

  ${
    $d x y z A $.  $d x z B $.
    eusvobj1.1 $e |- B e. _V $.
    $( Specify the same property in two ways when class ` B ( y ) ` is
       single-valued.  (Contributed by NM, 1-Nov-2010.)  (Proof shortened by
       Mario Carneiro, 24-Dec-2016.) $)
    eusvobj2 $p |- ( E! x E. y e. A x = B
       -> ( E. y e. A x = B <-> A. y e. A x = B ) ) $=
      ( vz cv wceq wrex weu wral cab csn wex wi euabsn2 wcel eleq2 abid exlimiv
      3bitr3g nfre1 nfeq1 elabrex elsnc eqcom bitri syl6bb syl5ib ralrimi eqeq1
      elsn nfab ralbidv syl5ibrcom sylbid sylbi euex rexm r19.2m ex 3syl impbid
      ) AGZDHZBCIZAJZVFVEBCKZVGVFALZFGZMZHZFNVFVHOZVFAFPVLVMFVLVFVDVJHZVHVLVDVI
      QVDVKQVFVNVIVKVDRVFASAVJULUAVLVHVNVJDHZBCKVLVOBCBVIVKVFBAVEBCUBUMUCBGCQZD
      VIQZVLVOBACDEUDVLVQDVKQZVOVIVKDRVRDVJHVODVJEUEDVJUFUGUHUIUJVNVEVOBCVDVJDU
      KUNUOUPTUQVGVFANVPBNZVHVFOVFAURVFVSAVEBCUSTVSVHVFVEBCUTVAVBVC $.

    $( Specify the same object in two ways when class ` B ( y ) ` is
       single-valued.  (Contributed by NM, 1-Nov-2010.)  (Proof shortened by
       Mario Carneiro, 19-Nov-2016.) $)
    eusvobj1 $p |- ( E! x E. y e. A x = B
       -> ( iota x E. y e. A x = B ) = ( iota x A. y e. A x = B ) ) $=
      ( cv wceq wrex weu wral wb wal cio nfeu1 eusvobj2 alrimi iotabi syl ) AFD
      GZBCHZAIZTSBCJZKZALTAMUBAMGUAUCATANABCDEOPTUBAQR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( There is one domain element for each value of a one-to-one onto
       function.  (Contributed by NM, 26-May-2006.) $)
    f1ofveu $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                  E! x e. A ( F ` x ) = C ) $=
      ( wf1o wcel wa cv cfv wceq wreu cop ccnv wf f1ocnv f1of syl wb wfn 3com23
      feu sylan f1ocnvfvb dff1o4 simprbi fnopfvb 3adant3 syl3an1 bitrd reubidva
      w3a 3expa mpbird ) BCEFZDCGZHZAIZEJDKZABLDURMENZGZABLZUOCBUTOZUPVBUOCBUTF
      VCBCEPCBUTQRACBDUTUBUCUQUSVAABUOUPURBGZUSVASUOUPVDULUSDUTJURKZVAUOVDUPUSV
      ESBCURDEUDUAUOUTCTZUPVDVEVASZUOEBTVFBCEUEUFVFUPVGVDCDURUTUGUHUIUJUMUKUN
      $.

    $( Value of the converse of a one-to-one onto function.  (Contributed by
       NM, 26-May-2006.)  (Proof shortened by Mario Carneiro, 24-Dec-2016.) $)
    f1ocnvfv3 $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                  ( `' F ` C ) = ( iota_ x e. A ( F ` x ) = C ) ) $=
      ( wf1o wcel wa cv cfv wceq crio ccnv f1ocnvdm f1ocnvfvb 3expa an32s eqcom
      wb syl6bbr riota5 eqcomd ) BCEFZDCGZHZAIZEJDKZABLDEMJZUEUGABUHBCDENUEUFBG
      ZHUGUHUFKZUFUHKUCUIUDUGUJSZUCUIUDUKBCUFDEOPQUFUHRTUAUB $.
  $}

  ${
    $d x A $.
    $( Restricted iota equals the empty set when not meaningful.  (Contributed
       by NM, 16-Jan-2012.)  (Revised by Mario Carneiro, 15-Oct-2016.)
       (Revised by NM, 13-Sep-2018.) $)
    riotaund $p |- ( -. E! x e. A ph -> ( iota_ x e. A ph ) = (/) ) $=
      ( wreu wn crio cv wcel cio df-riota weu wceq df-reu iotanul sylnbi syl5eq
      wa c0 ) ABCDZEABCFBGCHAQZBIZRABCJSTBKUARLABCMTBNOP $.
  $}

  ${
    $d x y z w v u s A $.  $d x y z w v u s B $.  $d x y z w v u s C $.
    $d x y z w v u s ph $.
    acexmidlem.a $e |- A = { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) } $.
    acexmidlem.b $e |- B = { x e. { (/) , { (/) } }
                                                | ( x = { (/) } \/ ph ) } $.
    acexmidlem.c $e |- C = { A , B } $.
    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlema $p |- ( { (/) } e. A -> ph ) $=
      ( c0 csn wcel wceq wo cv cpr crab eleq2i wb p0ex ax-mp prid2 eqeq1 orbi1d
      elrab3 bitri wn wi noel 0ex snid eleq2 mpbii mto orel1 sylbi ) IJZCKZUPIL
      ZAMZAUQUPBNZILZAMZBIUPOZPZKZUSCVDUPFQUPVCKVEUSRIUPSUAVBUSBUPVCUTUPLVAURAU
      TUPIUBUCUDTUEURUFUSAUGURIIKZIUHURIUPKVFIUIUJUPIIUKULUMURAUNTUO $.

    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemb $p |- ( (/) e. B -> ph ) $=
      ( c0 wcel csn wceq wo cv cpr crab eleq2i wb 0ex ax-mp prid1 orbi1d elrab3
      eqeq1 bitri wn wi noel snid eleq2 mpbiri mto orel1 sylbi ) IDJZIIKZLZAMZA
      UOIBNZUPLZAMZBIUPOZPZJZURDVCIGQIVBJVDURRIUPSUAVAURBIVBUSILUTUQAUSIUPUDUBU
      CTUEUQUFURAUGUQIIJZIUHUQVEIUPJISUIIUPIUJUKULUQAUMTUN $.

    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemph $p |- ( ph -> A = B ) $=
      ( c0 csn wceq wo wral olc ralrimivw crab eqeq2i rabid2 bitri sylibr cpr
      cv eqtr3d ) AIIJZUAZCDABUBZIKZALZBUEMZUECKZAUHBUEAUGNOUJUEUHBUEPZKUICUKUE
      FQUHBUERSTAUFUDKZALZBUEMZUEDKZAUMBUEAULNOUOUEUMBUEPZKUNDUPUEGQUMBUERSTUC
      $.

    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemab $p |- (
        ( ( iota_ v e. A E. u e. y ( A e. u /\ v e. u ) ) = (/) /\
        ( iota_ v e. B E. u e. y ( B e. u /\ v e. u ) ) = { (/) } ) ->
        -. ph ) $=
      ( cv wcel wa wrex crio c0 wceq csn noel 0ex eleq2 mpbiri mto acexmidlemph
      snid id eleq1 anbi1d rexbidv riotaeqbidv syl eqeq1d biimpa adantrr simprr
      eqtr3d ex mtoi con2i ) AFELZMZDLVAMZNZECLZOZDFPZQRZGVAMZVCNZEVEOZDGPZQSZR
      ZNZAVOQVMRZVPQQMZQTVPVQQVMMQUAUFQVMQUBUCUDAVOVPAVONVLQVMAVHVLQRZVNAVHVRAV
      GVLQAFGRZVGVLRABFGHIJKUEVSVFVKDFGVSUGVSVDVJEVEVSVBVIVCFGVAUHUIUJUKULUMUNU
      OAVHVNUPUQURUSUT $.

    $( Lemma for ~ acexmid .  Here we divide the proof into cases (based on the
       disjunction implicit in an unordered pair, not the sort of case
       elimination which relies on excluded middle).

       The cases are (1) the choice function evaluated at ` A ` equals
       ` { (/) } ` , (2) the choice function evaluated at ` B ` equals
       ` (/) ` , and (3) the choice function evaluated at ` A ` equals ` (/) `
       and the choice function evaluated at ` B ` equals ` { (/) } ` .

       Because of the way we represent the choice function ` y ` , the choice
       function evaluated at ` A ` is
       ` ( iota_ v e. A E. u e. y ( A e. u /\ v e. u ) ) ` and the choice
       function evaluated at ` B ` is
       ` ( iota_ v e. B E. u e. y ( B e. u /\ v e. u ) ) ` .  Other than the
       difference in notation these work just as ` ( y `` A ) ` and
       ` ( y `` B ) ` would if ` y ` were a function as defined by ~ df-fun .

       Although it isn't exactly about the division into cases, it is also
       convenient for this lemma to also include the step that if the choice
       function evaluated at ` A ` equals ` { (/) } ` , then ` { (/) } e. A `
       and likewise for ` B ` .

       (Contributed by Jim Kingdon, 7-Aug-2019.) $)
    acexmidlemcase $p |- ( A. z e. C E! v e. z E. u e. y
      ( z e. u /\ v e. u ) ->
      ( { (/) } e. A \/
        (/) e. B \/
        ( ( iota_ v e. A E. u e. y ( A e. u /\ v e. u ) ) = (/) /\
        ( iota_ v e. B E. u e. y ( B e. u /\ v e. u ) ) = { (/) } ) ) ) $=
      ( cv wcel wa c0 wceq wo eleq1 syl wrex wreu wral csn crio w3o cpr wi con0
      crab onsucelsucexmidlem eqeltri prid1g ax-mp eleqtrri anbi1d reueqd rspcv
      rexbidv riotacl elrabi eleq2s elpri 3syl syl5ibcom orim2d mpd pp0ex rabex
      cvv prid2 orim1d anddi sylib simpl jaoi orim2i orcomd simpr orim1i 3orass
      jca sylibr ) DMZFMZNZEMWENZOZFCMZUAZEWDUBZDIUCZPUDZGNZPHNZGWENZWGOZFWIUAZ
      EGUEZPQZHWENZWGOZFWIUAZEHUEZWMQZOZRZRZWNWOXFUFWLWNWTWOOZXFRZRXHWLXJWNWLXJ
      WNWOOZWNXEOZRZRZXJWNRWLWTWNRZWOXERZOXNWLXOXPWLWTWSWMQZRZXOWLWSGNZWSPWMUGZ
      NZXRWLWREGUBZXSGINWLYBUHGGHUGZIGUINGYCNGBMZPQARZBXTUJZUIJABUKULGHUIUMUNLU
      OWKYBDGIWJWREWDGWDGQZWHWQFWIYGWFWPWGWDGWESUPUSUQURUNWREGUTTZYAWSYFGYEBWSX
      TVAJVBWSPWMVCVDWLXQWNWTWLXSXQWNYHWSWMGSVEVFVGWLXDPQZXERZXPWLXDHNZXDXTNZYJ
      WLXCEHUBZYKHINWLYMUHHYCIGHHYDWMQARZBXTUJZVJKYNBXTVHVIULVKLUOWKYMDHIWJXCEW
      DHWDHQZWHXBFWIYPWFXAWGWDHWESUPUSUQURUNXCEHUTTZYLXDYOHYNBXDXTVAKVBXDPWMVCV
      DWLYIWOXEWLYKYIWOYQXDPHSVEVLVGWBWTWNWOXEVMVNXMWNXJXKWNXLWNWOVOWNXEVOVPVQT
      VRXJXGWNXIWOXFWTWOVSVTVQTWNWOXFWAWC $.

    $( Lemma for ~ acexmid .  List the cases identified in ~ acexmidlemcase and
       hook them up to the lemmas which handle each case.  (Contributed by Jim
       Kingdon, 7-Aug-2019.) $)
    acexmidlem1 $p |- ( A. z e. C E! v e. z E. u e. y
        ( z e. u /\ v e. u ) -> ( ph \/ -. ph ) ) $=
      ( cv wcel wa wrex c0 crio wceq orcd csn w3o wn acexmidlemcase acexmidlema
      wreu wral wo acexmidlemb acexmidlemab olcd 3jaoi syl ) DMZFMZNEMUONZOFCMZ
      PEUNUFDIUGQUAZGNZQHNZGUONUPOFUQPEGRQSHUONUPOFUQPEHRURSOZUBAAUCZUHZABCDEFG
      HIJKLUDUSVCUTVAUSAVBABGHIJKLUETUTAVBABGHIJKLUITVAVBAABCEFGHIJKLUJUKULUM
      $.

    $( Lemma for ~ acexmid .  This builds on ~ acexmidlem1 by noting that every
       element of ` C ` is inhabited.

       (Note that ` y ` is not quite a function in the ~ df-fun sense because
       it uses ordered pairs as described in ~ opthreg rather than ~ df-op ).

       The set ` A ` is also found in ~ onsucelsucexmidlem .

       (Contributed by Jim Kingdon, 5-Aug-2019.) $)
    acexmidlem2 $p |- ( A. z e. C A. w e. z E! v e. z E. u e. y
      ( z e. u /\ v e. u ) -> ( ph \/ -. ph ) ) $=
      ( wel cv wral wo wcel wceq c0 wa wrex wreu wn wex wi df-ral 19.23v bitr2i
      wal cpr eleq2i vex elpr bitri csn crab onsucelsucexmidlem1 eleqtrri elex2
      ax-mp eleq2 exbidv mpbiri p0ex prid2 eqid orci eqeq1 orbi1d mpbir2an jaoi
      elrab sylbi pm2.27 syl imp sylan2br ralimiaa acexmidlem1 ) DGNFGNUAGCOUBF
      DOZUCZEWAPZDJPWBDJPAAUDQWCWBDJWCWAJRZEDNZEUEZWBUFZWBWCWEWBUFEUJWGWBEWAUGW
      EWBEUHUIWDWGWBWDWFWGWBUFWDWAHSZWAISZQZWFWDWAHIUKZRWJJWKWAMULWAHIDUMUNUOWH
      WFWIWHWFEOZHRZEUEZTHRWNTBOZTSAQBTTUPZUKZUQHABURKUSETHUTVAWHWEWMEWAHWLVBVC
      VDWIWFWLIRZEUEZWPIRWSWPWOWPSZAQZBWQUQZIWPXBRWPWQRWPWPSZAQZTWPVEVFXCAWPVGV
      HXAXDBWPWQWTWTXCAWOWPWPVIVJVMVKLUSEWPIUTVAWIWEWREWAIWLVBVCVDVLVNWFWBVOVPV
      QVRVSABCDFGHIJKLMVTVP $.
  $}

  ${
    $d ph x y z w v u s t $.
    acexmidlemv.choice $e |- E. y A. z e. x A. w e. z E! v e. z E. u e. y
      ( z e. u /\ v e. u ) $.
    $( Lemma for ~ acexmid .

       This is ~ acexmid with additional distinct variable constraints, most
       notably between ` ph ` and ` x ` .

       (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemv $p |- ( ph \/ -. ph ) $=
      ( vs vt cv wcel wral c0 wceq wo cpr crab wex cvv wa wrex wreu csn wn con0
      onsucelsucexmidlem pp0ex rabex prexg mp2an raleq exbidv vtocl orbi1d eqid
      eqeq1 cbvrabv acexmidlem2 exlimiv ax-mp ) DKZGKZLFKVCLUAGCKUBFVBUCEVBMZDI
      KZNOZAPZINNUDZQZRZVEVHOZAPZIVIRZQZMZCSZAAUEPZVDDBKZMZCSVPBVNVJUFLVMTLVNTL
      AIUGVLIVIUHUIVJVMUFTUJUKVRVNOVSVOCVDDVRVNULUMHUNVOVQCAJCDEFGVJVMVNVGJKZNO
      ZAPIJVIVEVTOZVFWAAVEVTNUQUOURVLVTVHOZAPIJVIWBVKWCAVEVTVHUQUOURVNUPUSUTVA
      $.
  $}

  ${
    $d x y z w v u $.  $d a b c d e f ph $.  $d a b c d e f u v w x y z $.
    acexmid.choice $e |- E. y A. z e. x A. w e. z E! v e. z E. u e. y
      ( z e. u /\ v e. u ) $.
    $( The axiom of choice implies excluded middle.  Theorem 1.3 in [Bauer]
       p. 483.

       The statement of the axiom of choice given here is ac2 in the Metamath
       Proof Explorer (version of 3-Aug-2019).  In particular, note that the
       choice function ` y ` provides a value when ` z ` is inhabited (as
       opposed to non-empty as in some statements of the axiom of choice).

       Essentially the same proof can also be found at "The axiom of choice
       implies instances of EM", [Crosilla], p.  "Set-theoretic principles
       incompatible with intuitionistic logic".

       Often referred to as Diaconescu's theorem, or Diaconescu-Goodman-Myhill
       theorem, after Radu Diaconescu who discovered it in 1975 in the
       framework of topos theory and N. D. Goodman and John Myhill in 1978 in
       the framework of set theory (although it already appeared as an exercise
       in Errett Bishop's book _Foundations of Constructive Analysis_ from
       1967).

       (Contributed by Jim Kingdon, 4-Aug-2019.) $)
    acexmid $p |- ( ph \/ -. ph ) $=
      ( va vb vc vd vf ve wel wa cv wral weq wb wrex wreu wex wal weu wsb sb8eu
      nfv w3a eleq12 ancoms 3adant3 3ad2antl1 3ad2antl2 simpl3 cbvrexdva2 3expa
      anbi12d 3com23 sbiedv eubidv syl5bb df-reu 3bitr4g adantr simpll cbvexdva
      cbvraldva2 adantll cbvalv mpgbir spi acexmidlemv ) AIJKLMNKNOZMNOZPZNJQZU
      AZMKQZUBZLVSRZKIQZRZJUCZIWDIUDDGOZFGOZPZGCQZUAZFDQZUBZEWJRZDBQZRZCUCZBWDW
      OIBIBSZWCWNJCWPJCSZPWAWLKDWBWMWQKDSZWAWLTZWPWRWQWSWRWQPZVTWKLEVSWJWTVTWKT
      LESZWTMKOZVRPZMUEZFDOZWIPZFUEZVTWKXDXCMFUFZFUEWTXGXCMFXCFUHUGWTXHXFFWTXCX
      FMFWRWQMFSZXCXFTZWRXIWQXJWRXIWQUIZXBXEVRWIWRXIXBXETZWQXIWRXLMQZFQZVSWJUJU
      KULXKVPWGNGVQWHXKNGSZPVNWEVOWFWRXIXOVNWETWQVSWJNQZGQZUJUMXIWRXOVOWFTWQXMX
      NXPXQUJUNURWRXIWQXOUOUPURUSUQUTVAVBVRMVSVCWIFWJVCVDVEWRWQXAVFVHUKVIWPWQWR
      VFVHVGVJHVKVLVM $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Operations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend class notation to include the value of an operation ` F ` (such as
     + ) for two arguments ` A ` and ` B ` .  Note that the syntax is simply
     three class symbols in a row surrounded by parentheses.  Since operation
     values are the only possible class expressions consisting of three class
     expressions in a row surrounded by parentheses, the syntax is
     unambiguous. $)
  co $a class ( A F B ) $.

  $( Extend class notation to include class abstraction (class builder) of
     nested ordered pairs. $)
  coprab $a class { <. <. x , y >. , z >. | ph } $.

  $( Extend the definition of a class to include maps-to notation for defining
     an operation via a rule. $)
  cmpt2 $a class ( x e. A , y e. B |-> C ) $.

  $( Define the value of an operation.  Definition of operation value in
     [Enderton] p. 79.  Note that the syntax is simply three class expressions
     in a row bracketed by parentheses.  There are no restrictions of any kind
     on what those class expressions may be, although only certain kinds of
     class expressions - a binary operation ` F ` and its arguments ` A ` and
     ` B ` - will be useful for proving meaningful theorems.  For example, if
     class ` F ` is the operation + and arguments ` A ` and ` B ` are 3 and 2 ,
     the expression ( 3 + 2 ) can be proved to equal 5 .  This definition is
     well-defined, although not very meaningful, when classes ` A ` and/or
     ` B ` are proper classes (i.e. are not sets); see ~ ovprc1 and ~ ovprc2 .
     On the other hand, we often find uses for this definition when ` F ` is a
     proper class. ` F ` is normally equal to a class of nested ordered pairs
     of the form defined by ~ df-oprab .  (Contributed by NM, 28-Feb-1995.) $)
  df-ov $a |- ( A F B ) = ( F ` <. A , B >. ) $.

  ${
    $d x w $.  $d y w $.  $d z w $.  $d w ph $.
    $( Define the class abstraction (class builder) of a collection of nested
       ordered pairs (for use in defining operations).  This is a special case
       of Definition 4.16 of [TakeutiZaring] p. 14.  Normally ` x ` , ` y ` ,
       and ` z ` are distinct, although the definition doesn't strictly require
       it.  See ~ df-ov for the value of an operation.  The brace notation is
       called "class abstraction" by Quine; it is also called a "class builder"
       in the literature.  The value of the most common operation class builder
       is given by ~ ovmpt2 .  (Contributed by NM, 12-Mar-1995.) $)
    df-oprab $a |- { <. <. x , y >. , z >. | ph } =
                  { w | E. x E. y E. z ( w = <. <. x , y >. , z >. /\ ph ) } $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z C $.
    $( Define maps-to notation for defining an operation via a rule.  Read as
       "the operation defined by the map from ` x , y ` (in ` A X. B ` ) to
       ` B ( x , y ) ` ."  An extension of ~ df-mpt for two arguments.
       (Contributed by NM, 17-Feb-2008.) $)
    df-mpt2 $a |- ( x e. A , y e. B |-> C ) =
             { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = C ) } $.
  $}

  $( Equality theorem for operation value.  (Contributed by NM,
     28-Feb-1995.) $)
  oveq $p |- ( F = G -> ( A F B ) = ( A G B ) ) $=
    ( wceq cop cfv co fveq1 df-ov 3eqtr4g ) CDEABFZCGLDGABCHABDHLCDIABCJABDJK
    $.

  $( Equality theorem for operation value.  (Contributed by NM,
     28-Feb-1995.) $)
  oveq1 $p |- ( A = B -> ( A F C ) = ( B F C ) ) $=
    ( wceq cop cfv co opeq1 fveq2d df-ov 3eqtr4g ) ABEZACFZDGBCFZDGACDHBCDHMNOD
    ABCIJACDKBCDKL $.

  $( Equality theorem for operation value.  (Contributed by NM,
     28-Feb-1995.) $)
  oveq2 $p |- ( A = B -> ( C F A ) = ( C F B ) ) $=
    ( wceq cop cfv co opeq2 fveq2d df-ov 3eqtr4g ) ABEZCAFZDGCBFZDGCADHCBDHMNOD
    ABCIJCADKCBDKL $.

  $( Equality theorem for operation value.  (Contributed by NM,
     16-Jul-1995.) $)
  oveq12 $p |- ( ( A = B /\ C = D ) -> ( A F C ) = ( B F D ) ) $=
    ( wceq co oveq1 oveq2 sylan9eq ) ABFCDFACEGBCEGBDEGABCEHCDBEIJ $.

  ${
    oveq1i.1 $e |- A = B $.
    $( Equality inference for operation value.  (Contributed by NM,
       28-Feb-1995.) $)
    oveq1i $p |- ( A F C ) = ( B F C ) $=
      ( wceq co oveq1 ax-mp ) ABFACDGBCDGFEABCDHI $.

    $( Equality inference for operation value.  (Contributed by NM,
       28-Feb-1995.) $)
    oveq2i $p |- ( C F A ) = ( C F B ) $=
      ( wceq co oveq2 ax-mp ) ABFCADGCBDGFEABCDHI $.

    ${
      oveq12i.2 $e |- C = D $.
      $( Equality inference for operation value.  (Contributed by NM,
         28-Feb-1995.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
      oveq12i $p |- ( A F C ) = ( B F D ) $=
        ( wceq co oveq12 mp2an ) ABHCDHACEIBDEIHFGABCDEJK $.
    $}

    $( Equality inference for operation value.  (Contributed by NM,
       24-Nov-2007.) $)
    oveqi $p |- ( C A D ) = ( C B D ) $=
      ( wceq co oveq ax-mp ) ABFCDAGCDBGFECDABHI $.
  $}

  ${
    oveq123i.1 $e |- A = C $.
    oveq123i.2 $e |- B = D $.
    oveq123i.3 $e |- F = G $.
    $( Equality inference for operation value.  (Contributed by FL,
       11-Jul-2010.) $)
    oveq123i $p |- ( A F B ) = ( C G D ) $=
      ( co oveq12i oveqi eqtri ) ABEJCDEJCDFJACBDEGHKEFCDILM $.
  $}

  ${
    oveq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for operation value.  (Contributed by NM,
       13-Mar-1995.) $)
    oveq1d $p |- ( ph -> ( A F C ) = ( B F C ) ) $=
      ( wceq co oveq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.

    $( Equality deduction for operation value.  (Contributed by NM,
       13-Mar-1995.) $)
    oveq2d $p |- ( ph -> ( C F A ) = ( C F B ) ) $=
      ( wceq co oveq2 syl ) ABCGDBEHDCEHGFBCDEIJ $.

    $( Equality deduction for operation value.  (Contributed by NM,
       9-Sep-2006.) $)
    oveqd $p |- ( ph -> ( C A D ) = ( C B D ) ) $=
      ( wceq co oveq syl ) ABCGDEBHDECHGFDEBCIJ $.

    ${
      oveq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for operation value.  (Contributed by NM,
         13-Mar-1995.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
      oveq12d $p |- ( ph -> ( A F C ) = ( B F D ) ) $=
        ( wceq co oveq12 syl2anc ) ABCIDEIBDFJCEFJIGHBCDEFKL $.
    $}

    ${
      opreqan12i.2 $e |- ( ps -> C = D ) $.
      $( Equality deduction for operation value.  (Contributed by NM,
         10-Aug-1995.) $)
      oveqan12d $p |- ( ( ph /\ ps ) -> ( A F C ) = ( B F D ) ) $=
        ( wceq co oveq12 syl2an ) ACDJEFJCEGKDFGKJBHICDEFGLM $.

      $( Equality deduction for operation value.  (Contributed by NM,
         10-Aug-1995.) $)
      oveqan12rd $p |- ( ( ps /\ ph ) -> ( A F C ) = ( B F D ) ) $=
        ( co wceq oveqan12d ancoms ) ABCEGJDFGJKABCDEFGHILM $.
    $}
  $}

  ${
    oveq123d.1 $e |- ( ph -> F = G ) $.
    oveq123d.2 $e |- ( ph -> A = B ) $.
    oveq123d.3 $e |- ( ph -> C = D ) $.
    $( Equality deduction for operation value.  (Contributed by FL,
       22-Dec-2008.) $)
    oveq123d $p |- ( ph -> ( A F C ) = ( B G D ) ) $=
      ( co oveqd oveq12d eqtrd ) ABDFKBDGKCEGKAFGBDHLABCDEGIJMN $.
  $}

  ${
    nfovd.2 $e |- ( ph -> F/_ x A ) $.
    nfovd.3 $e |- ( ph -> F/_ x F ) $.
    nfovd.4 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfov .
       (Contributed by NM, 13-Dec-2005.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    nfovd $p |- ( ph -> F/_ x ( A F B ) ) $=
      ( co cop cfv df-ov nfopd nffvd nfcxfrd ) ABCDEICDJZEKCDELABPEGABCDFHMNO
      $.
  $}

  ${
    nfov.1 $e |- F/_ x A $.
    nfov.2 $e |- F/_ x F $.
    nfov.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for operation value.  (Contributed by
       NM, 4-May-2004.) $)
    nfov $p |- F/_ x ( A F B ) $=
      ( co wnfc wtru a1i nfovd trud ) ABCDHIJABCDABIJEKADIJFKACIJGKLM $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Slight elaboration of ~ exdistrfor .  A lemma for ~ oprabid .
       (Contributed by Jim Kingdon, 15-Jan-2019.) $)
    oprabidlem $p |-
        ( E. x E. y ( x = z /\ ps ) -> E. x ( x = z /\ E. y ps ) ) $=
      ( weq wal wi wo wnf ax-bndl ax-10 wn dtru pm2.53 mpi df-nf sylibr orim12i
      albii ax-mp exdistrfor ) BDEZABCCBECFZCDECFZUBUBCFGCFZBFZHZHBCEBFZUBCIZBF
      ZHBDCJUCUHUGUJCBKUGUFUJUGUDLUFCDMUDUFNOUIUEBUBCPSQRTUA $.
  $}

  ${
    $d a ph r s t w $.  $d a r s t w x $.  $d a r s t w y $.  $d a r s t w z $.
    $( The law of concretion.  Special case of Theorem 9.5 of [Quine] p. 61.
       Although this theorem would be useful with a distinct variable
       constraint between ` x ` , ` y ` , and ` z ` , we use ~ ax-bndl to
       eliminate that constraint.  (Contributed by Mario Carneiro,
       20-Mar-2013.) $)
    oprabid $p |- ( <. <. x , y >. , z >. e.
        { <. <. x , y >. , z >. | ph } <-> ph ) $=
      ( vw va vt vr vs cv cop wceq wa wex cvv wcel vex wi oprabidlem weu coprab
      opex opexg mp2an eqvinop biimpi eqeq1 opth1 syl6bi opeq1 eqeq2d w3a otth2
      df-3an bitri anbi1i anass 3bitri 3exbii eximi excom 3imtr4i anim2i euequ1
      3syl sylbi eupick mpan syl6 3impd syl5bi com12 syl5 syl6bb anbi1d 3exbidv
      eqcom imbi1d imbi12d mpbiri adantr exlimivv com3l mpdd mpcom 19.8a impbid
      ex df-oprab elab2 ) EJZBJZCJZKZDJZKZLZAMZDNZCNZBNZAEWPABCDUAWNOPWOOPWPOPW
      LWMBQZCQZUBZDQZWNWOOOUCUDWQXAAWKFJZGJZKZLZXHWPLZMZGNFNZWQXAARZWQXLFGWKWNW
      OXDXEUEUFXKWQXMRZFGXIXNXJXIWQXFWNLZXMXIWQXJXOWKXHWPUGXFXGWNWOFQGQUHUIXOXI
      WQXMXOXFHJZIJZKZLZXRWNLZMZINHNXIXNRZHIXFWLWMXBXCUEYAYBHIXSYBXTXSXIWKXRXGK
      ZLZXNXSXHYCWKXFXRXGUJUKYDXNWPYCLZYEAMZDNCNBNZARZRYGWLXPLZWMXQLZWOXGLZAMZD
      NZMCNZMZBNZYEAYGYIYJYLMZMZDNZCNBNZYPYFYRBCDYFYIYJMZYKMZAMUUAYLMYRYEUUBAYE
      YIYJYKULZUUBWLWMXPXQWOXGXBXCXEUMZYIYJYKUNUOUPUUAYKAUQYIYJYLUQURUSYTYIYQDN
      ZMZCNBNZYIUUECNZMZBNYPYSBNZCNUUFBNZCNYTUUGUUJUUKCYQBDHSUTYSBCVAUUFBCVAVBU
      UEBCHSUUIYOBUUHYNYIYLCDISVCUTVEVFYPYEAYEUUCYPAUUDYPYIYJYKAYPYIYNYJYKARZRY
      IBTYPYIYNRBHVDYIYNBVGVHYNYJYMUULYJCTYNYJYMRCIVDYJYMCVGVHYKDTYMUULDGVDYKAD
      VGVHVIVIVJVKVLVMYDWQYEXMYHYDWQYCWPLYEWKYCWPUGYCWPVQVNZYDXAYGAYDWRYFBCDYDW
      QYEAUUMVOVPVRVSVTUIWAWBVFWCWDWAWBWEWQAXAWRWSWTXAWRDWFWSCWFWTBWFVEWHWGABCD
      EWIWJ $.
  $}

  $( The result of an operation is a set.  (Contributed by Jim Kingdon,
     15-Jan-2019.) $)
  fnovex $p |- ( ( F Fn ( C X. D ) /\ A e. C /\ B e. D ) ->
      ( A F B ) e. _V ) $=
    ( cxp wfn wcel w3a co cop cfv df-ov wa opelxp funfvex funfni sylan2br 3impb
    cvv syl5eqel ) ECDFZGZACHZBDHZIABEJABKZELZTABEMUCUDUEUGTHZUDUENUCUFUBHUHABC
    DOUHUBUFEUFEPQRSUA $.

  ${
    ovprc1.1 $e |- Rel dom F $.
    $( The value of an operation when the one of the arguments is a proper
       class.  Note: this theorem is dependent on our particular definitions of
       operation value, function value, and ordered pair.  (Contributed by
       Mario Carneiro, 26-Apr-2015.) $)
    ovprc $p |- ( -. ( A e. _V /\ B e. _V ) -> ( A F B ) = (/) ) $=
      ( cvv wcel wa wn co cop cfv df-ov cdm wceq opprc 0ex syl6eqel wbr df-br
      c0 wrel brrelex12 mpan sylbir con3i ndmfvg syl2anc syl5eq ) AEFBEFGZHZABC
      IABJZCKZTABCLUJUKEFUKCMZFZHULTNUJUKTEABOPQUNUIUNABUMRZUIABUMSUMUAUOUIDABU
      MUBUCUDUEUKCUFUGUH $.

    $( The value of an operation when the first argument is a proper class.
       (Contributed by NM, 16-Jun-2004.) $)
    ovprc1 $p |- ( -. A e. _V -> ( A F B ) = (/) ) $=
      ( cvv wcel wn wa co c0 wceq simpl con3i ovprc syl ) AEFZGPBEFZHZGABCIJKRP
      PQLMABCDNO $.

    $( The value of an operation when the second argument is a proper class.
       (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    ovprc2 $p |- ( -. B e. _V -> ( A F B ) = (/) ) $=
      ( cvv wcel wn wa co c0 wceq simpr con3i ovprc syl ) BEFZGAEFZPHZGABCIJKRP
      QPLMABCDNO $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d y z D $.  $d y z F $.
    $d x y z $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.)  (Proof shortened by Mario Carneiro, 5-Dec-2016.) $)
    csbov123g $p |- ( A e. D -> [_ A / x ]_ ( B F C ) =
           ( [_ A / x ]_ B [_ A / x ]_ F [_ A / x ]_ C ) ) $=
      ( vy cv co csb wceq csbeq1 oveq123d eqeq12d nfcsb1v csbeq1a csbief vtoclg
      vex nfov ) AGHZCDFIZJZAUACJZAUADJZAUAFJZIZKABUBJZABCJZABDJZABFJZIZKGBEUAB
      KZUCUHUGULAUABUBLUMUDUIUEUJUFUKAUABFLAUABCLAUABDLMNAUAUBUGGSAUDUEUFAUACOA
      UAFOAUADOTAHUAKCUDDUEFUFAUAFPAUACPAUADPMQR $.
  $}

  ${
    $d y A $.  $d y C $.  $d y V $.  $d x y F $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.) $)
    csbov12g $p |- ( A e. V ->
                 [_ A / x ]_ ( B F C ) = ( [_ A / x ]_ B F [_ A / x ]_ C ) ) $=
      ( wcel co csb csbov123g csbconstg oveqd eqtrd ) BFGZABCDEHIABCIZABDIZABEI
      ZHOPEHABCDFEJNQEOPABEFKLM $.
  $}

  ${
    $d x C $.  $d x F $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.) $)
    csbov1g $p |- ( A e. V ->
                  [_ A / x ]_ ( B F C ) = ( [_ A / x ]_ B F C ) ) $=
      ( wcel co csb csbov12g csbconstg oveq2d eqtrd ) BFGZABCDEHIABCIZABDIZEHOD
      EHABCDEFJNPDOEABDFKLM $.
  $}

  ${
    $d x B $.  $d x F $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.) $)
    csbov2g $p |- ( A e. V ->
                  [_ A / x ]_ ( B F C ) = ( B F [_ A / x ]_ C ) ) $=
      ( wcel co csb csbov12g csbconstg oveq1d eqtrd ) BFGZABCDEHIABCIZABDIZEHCP
      EHABCDEFJNOCPEABCFKLM $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y C $.  $d y D $.  $d x y F $.  $d x y S $.
    $( A frequently used special case of ~ rspc2ev for operation values.
       (Contributed by NM, 21-Mar-2007.) $)
    rspceov $p |- ( ( C e. A /\ D e. B /\ S = ( C F D ) ) ->
                 E. x e. A E. y e. B S = ( x F y ) ) $=
      ( cv co wceq oveq1 eqeq2d oveq2 rspc2ev ) GAIZBIZHJZKGEFHJZKGEQHJZKABEFCD
      PEKRTGPEQHLMQFKTSGQFEHNMO $.
  $}

  ${
    $( Equivalence of operation value and ordered triple membership, analogous
       to ~ fnopfvb .  (Contributed by NM, 17-Dec-2008.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    fnotovb $p |- ( ( F Fn ( A X. B ) /\ C e. A /\ D e. B ) ->
                   ( ( C F D ) = R <-> <. C , D , R >. e. F ) ) $=
      ( cxp wfn wcel w3a cop cfv wceq co cotp wb wa opelxpi fnopfvb sylan2
      3impb df-ov eqeq1i df-ot eleq1i 3bitr4g ) FABGZHZCAIZDBIZJCDKZFLZEMZUKEKZ
      FIZCDFNZEMCDEOZFIUHUIUJUMUOPZUIUJQUHUKUGIURCDABRUGUKEFSTUAUPULECDFUBUCUQU
      NFCDEUDUEUF $.
  $}

  ${
    $d E e f p v z $.  $d V e f p v z $.  $d W e v z $.  $d th z $.  $d ps z $.
    opabbrex.1 $e |- ( ( V e. _V /\ E e. _V ) -> ( f ( V W E ) p -> th ) ) $.
    opabbrex.2 $e |- ( ( V e. _V /\ E e. _V )
                       -> { <. f , p >. | th } e. _V ) $.
    $( A collection of ordered pairs with an extension of a binary relation is
       a set.  (Contributed by Alexander van der Vekens, 1-Nov-2017.) $)
    opabbrex $p |- ( ( V e. _V /\ E e. _V )
                    -> { <. f , p >. | ( f ( V W E ) p /\ ps ) } e. _V ) $=
      ( vz cvv wcel wa cv co wbr copab wex cab df-opab syl5eqelr adantrd anim2d
      cop wceq 2eximdv ss2abdv syl5eqss ssexd ) EKLDKLMZCNZGNZEDFOPZAMZCGQZJNUK
      ULUDUEZBMZGRCRZJSZKUJUSBCGQKBCGJTIUAUJUOUPUNMZGRCRZJSUSUNCGJTUJVAURJUJUTU
      QCGUJUNBUPUJUMBAHUBUCUFUGUHUI $.
  $}

  $( The empty set is never an element in an ordered-pair class abstraction.
     (Contributed by Alexander van der Vekens, 5-Nov-2017.) $)
  0neqopab $p |- -. (/) e. { <. x , y >. | ph } $=
    ( c0 copab wcel id cv cop wceq wa wex wn elopab nfopab1 nfel2 nfn vex sylbi
    exlimi nfopab2 wne wi opnzi nesym pm2.21 ax-mp adantr pm2.65i ) DABCEZFZUKU
    KGUKDBHZCHZIZJZAKZCLZBLUKMZABCDNUQURBUKBBDUJABCOPQUPURCUKCCDUJABCUAPQUOURAU
    NDUBZUOURUCZULUMBRCRUDUSUOMUTUNDUEUOURUFSUGUHTTSUI $.

  ${
    $d x y X $.  $d x y Y $.
    $( If two classes are in a relationship given by an ordered-pair class
       abstraction, the classes are sets.  (Contributed by Jim Kingdon,
       16-Jan-2019.) $)
    brabvv $p |- ( X { <. x , y >. | ph } Y -> ( X e. _V /\ Y e. _V ) ) $=
      ( copab wbr cv wceq wex cvv wcel cop df-br elopab bitri exsimpl vex isset
      wa eximi sylbi opth biimpi eqcoms 2eximi syl eeanv sylib anbi12i sylibr )
      DEABCFZGZBHZDIZBJZCHZEIZCJZTZDKLZEKLZTUMUOURTZCJBJZUTUMDEMZUNUQMZIZCJZBJZ
      VDUMVGATCJZBJZVIUMVEULLVKDEULNABCVEOPVJVHBVGACQUAUBVGVCBCVCVFVEVFVEIVCUNU
      QDEBRCRUCUDUEUFUGUOURBCUHUIVAUPVBUSBDSCESUJUK $.
  $}

  ${
    $d x z w v $.  $d y z w v $.  $d w ph v $.
    $( Class abstraction for operations in terms of class abstraction of
       ordered pairs.  (Contributed by NM, 12-Mar-1995.) $)
    dfoprab2 $p |- { <. <. x , y >. , z >. | ph } =
                   { <. w , z >. | E. x E. y ( w = <. x , y >. /\ ph ) } $=
      ( vv cv cop wceq wa wex cab coprab copab excom exrot4 opeq1 3bitr3i bitri
      vex eqeq2d pm5.32ri anbi1i anass an32 exbii isseti 19.42v mpbiran2 3exbii
      opex 19.42vv 2exbii abbii df-oprab df-opab 3eqtr4i ) FGZBGZCGZHZDGZHZIZAJ
      ZDKCKBKZFLUREGZVBHZIZVGVAIZAJZCKBKZJZDKEKZFLABCDMVLEDNVFVNFVIVKJZCKBKZEKD
      KZVPDKEKVFVNVPDEOVQVOEKZDKCKBKVFVODEBCPVRVEBCDVRVEVJJZEKZVEVOVSEVIVJJZAJV
      DVJJZAJVOVSWAWBAVJVIVDVJVHVCURVGVAVBQUAUBUCVIVJAUDVDVJAUERUFVTVEVJEKEVAUS
      UTBTCTUKUGVEVJEUHUISUJSVPVMEDVIVKBCULUMRUNABCDFUOVLEDFUPUQ $.

    $( An operation class abstraction is a relation.  (Contributed by NM,
       16-Jun-2004.) $)
    reloprab $p |- Rel { <. <. x , y >. , z >. | ph } $=
      ( vw cv cop wceq wa wex coprab dfoprab2 relopabi ) EFBFCFGHAICJBJEDABCDKA
      BCDELM $.
  $}

$(
  @{
    @d x y z w v @.  @d ph v @.
    dfoprab2f.1 @e |- ( ph -> A. w ph ) @.
    @( Class abstraction for operations in terms of class abstraction of
       ordered pairs.  This is a version of ~ dfoprab2 with bound-variable
       hypothesis instead of distinct variable requirement. @)
    dfoprab2f @p |- { <. <. x , y >. , z >. | ph } =
                   { <. w , z >. | E. x E. y ( w = <. x , y >. /\ ph ) } @=
      ( vv coprab cv cop wceq wa wex copab dfoprab2 ax-5 hban hbex weq
      eqeq1 anbi1d 2exbidv cbvopab1
      eqtri ) ABCDHGIZBICIJZKZALZCMZBMZGDNEIZUFKZALZCMBM
      ZEDNABCDGOUJUNGDEUIEBUHECUGAEUGEPFQRRUNGPGESZUHUMBCUOUGULAUEUKUFTUAUBUCUD
      @.
  @}
$)

  ${
    $d w x $.  $d w y $.  $d w z $.  $d w ph $.
    $( The abstraction variables in an operation class abstraction are not
       free.  (Contributed by NM, 25-Apr-1995.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    nfoprab1 $p |- F/_ x { <. <. x , y >. , z >. | ph } $=
      ( vw coprab cv cop wceq wa wex cab df-oprab nfe1 nfab nfcxfr ) BABCDFEGBG
      CGHDGHIAJDKCKZBKZELABCDEMRBEQBNOP $.

    $( The abstraction variables in an operation class abstraction are not
       free.  (Contributed by NM, 25-Apr-1995.)  (Revised by David Abernethy,
       30-Jul-2012.) $)
    nfoprab2 $p |- F/_ y { <. <. x , y >. , z >. | ph } $=
      ( vw coprab cv cop wceq wa wex cab df-oprab nfe1 nfex nfab nfcxfr ) CABCD
      FEGBGCGHDGHIAJDKZCKZBKZELABCDEMTCESCBRCNOPQ $.

    $( The abstraction variables in an operation class abstraction are not
       free.  (Contributed by NM, 22-Aug-2013.) $)
    nfoprab3 $p |- F/_ z { <. <. x , y >. , z >. | ph } $=
      ( vw coprab cv cop wceq wa wex cab df-oprab nfe1 nfex nfab nfcxfr ) DABCD
      FEGBGCGHDGHIAJZDKZCKZBKZELABCDEMUADETDBSDCRDNOOPQ $.
  $}

  ${
    $d v w x $.  $d v w y $.  $d v w z $.  $d v ph $.
    nfoprab.1 $e |- F/ w ph $.
    $( Bound-variable hypothesis builder for an operation class abstraction.
       (Contributed by NM, 22-Aug-2013.) $)
    nfoprab $p |- F/_ w { <. <. x , y >. , z >. | ph } $=
      ( vv coprab cv cop wceq wa wex cab df-oprab nfv nfan nfex nfab nfcxfr ) E
      ABCDHGIBICIJDIJKZALZDMZCMZBMZGNABCDGOUEEGUDEBUCECUBEDUAAEUAEPFQRRRST $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.  $d w ps $.  $d w ch $.
    oprabbid.1 $e |- F/ x ph $.
    oprabbid.2 $e |- F/ y ph $.
    oprabbid.3 $e |- F/ z ph $.
    oprabbid.4 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal operation class abstractions (deduction
       rule).  (Contributed by NM, 21-Feb-2004.)  (Revised by Mario Carneiro,
       24-Jun-2014.) $)
    oprabbid $p |- ( ph ->
           { <. <. x , y >. , z >. | ps } = { <. <. x , y >. , z >. | ch } ) $=
      ( vw cv cop wceq wa wex cab coprab exbid df-oprab anbi2d abbidv 3eqtr4g )
      AKLDLELMFLMNZBOZFPZEPZDPZKQUDCOZFPZEPZDPZKQBDEFRCDEFRAUHULKAUGUKDGAUFUJEH
      AUEUIFIABCUDJUASSSUBBDEFKTCDEFKTUC $.
  $}

  ${
    $d x z w ph $.  $d y z w ph $.  $d w ps $.  $d w ch $.
    oprabbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal operation class abstractions (deduction
       rule).  (Contributed by NM, 21-Feb-2004.) $)
    oprabbidv $p |- ( ph ->
           { <. <. x , y >. , z >. | ps } = { <. <. x , y >. , z >. | ch } ) $=
      ( nfv oprabbid ) ABCDEFADHAEHAFHGI $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.  $d w ps $.
    oprabbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's yield equal operation class abstractions.  (Contributed
       by NM, 28-May-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    oprabbii $p |- { <. <. x , y >. , z >. | ph }
                 = { <. <. x , y >. , z >. | ps } $=
      ( vw cv wceq coprab eqid wb a1i oprabbidv ax-mp ) GHZPIZACDEJBCDEJIPKQABC
      DEABLQFMNO $.
  $}

  ${
    $d ph w $.  $d ps w $.  $d x w $.  $d y w $.  $d z w $.
    $( Equivalence of ordered pair abstraction subclass and implication.
       Compare ~ ssopab2 .  (Contributed by FL, 6-Nov-2013.)  (Proof shortened
       by Mario Carneiro, 11-Dec-2016.) $)
    ssoprab2 $p |- ( A. x A. y A. z ( ph -> ps ) ->
        { <. <. x , y >. , z >. | ph } C_ { <. <. x , y >. , z >. | ps } ) $=
      ( vw wi wal cv cop wceq wa wex cab coprab id alimi exim syl df-oprab
      anim2d ss2abdv 3sstr4g ) ABGZEHZDHZCHZFICIDIJEIJKZALZEMZDMZCMZFNUHBLZEMZD
      MZCMZFNACDEOBCDEOUGULUPFUGUKUOGZCHULUPGUFUQCUFUJUNGZDHUQUEURDUEUIUMGZEHUR
      UDUSEUDABUHUDPUAQUIUMERSQUJUNDRSQUKUOCRSUBACDEFTBCDEFTUC $.
  $}

  $( Equivalence of ordered pair abstraction subclass and implication.  Compare
     ~ ssopab2b .  (Contributed by FL, 6-Nov-2013.)  (Proof shortened by Mario
     Carneiro, 11-Dec-2016.) $)
  ssoprab2b $p |- ( { <. <. x , y >. , z >. | ph } C_
    { <. <. x , y >. , z >. | ps } <-> A. x A. y A. z ( ph -> ps ) ) $=
    ( coprab wss wi wal nfoprab1 nfss nfoprab2 nfoprab3 cv wcel oprabid 3imtr3g
    cop ssel alrimi ssoprab2 impbii ) ACDEFZBCDEFZGZABHZEIZDIZCIUEUHCCUCUDACDEJ
    BCDEJKUEUGDDUCUDACDELBCDELKUEUFEEUCUDACDEMBCDEMKUECNDNRENRZUCOUIUDOABUCUDUI
    SACDEPBCDEPQTTTABCDEUAUB $.

  $( Equivalence of ordered pair abstraction subclass and biconditional.
     Compare ~ eqopab2b .  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
  eqoprab2b $p |- ( { <. <. x , y >. , z >. | ph } =
    { <. <. x , y >. , z >. | ps } <-> A. x A. y A. z ( ph <-> ps ) ) $=
    ( coprab wss wa wi wceq wb ssoprab2b anbi12i eqss 2albiim albii 19.26 bitri
    wal 3bitr4i ) ACDEFZBCDEFZGZUBUAGZHABIESDSZCSZBAIESDSZCSZHZUAUBJABKESDSZCSZ
    UCUFUDUHABCDELBACDELMUAUBNUKUEUGHZCSUIUJULCABDEOPUEUGCQRT $.

  ${
    $d x y z A $.  $d y z B $.  $d x y z D $.  $d y z E $.  $d z C $.
    $d z F $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.)  (Revised by Mario Carneiro, 19-Mar-2015.) $)
    mpt2eq123 $p |- ( ( A = D /\ A. x e. A ( B = E /\ A. y e. B C = F ) ) ->
                 ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) ) $=
      ( vz wceq wral wa cv wcel coprab cmpt2 nfv nfra1 nfan wb nfcv nfralxy rsp
      eqeq2 syl6 pm5.32d eleq2 sylan9bbr anass 3bitr4g oprabbid df-mpt2 3eqtr4g
      anbi1d ) CFJZDGJZEHJZBDKZLZACKZLZAMZCNZBMZDNZLIMZEJZLZABIOVBFNZVDGNZLVFHJ
      ZLZABIOABCDEPABFGHPVAVHVLABIUOUTAUOAQUSACRSUOUTBUOBQUSBACBCUAUPURBUPBQUQB
      DRSUBSVAIQVAVCVEVGLZLZVIVJVKLZLZVHVLUTVNVCVOLUOVPUTVCVMVOUTVCUSVMVOTUSACU
      CURVMVEVKLUPVOURVEVGVKURVEUQVGVKTUQBDUCEHVFUDUEUFUPVEVJVKDGVDUGUNUHUEUFUO
      VCVIVOCFVBUGUNUHVCVEVGUIVIVJVKUIUJUKABICDEULABIFGHULUM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpt2eq12 $p |- ( ( A = C /\ B = D ) ->
                 ( x e. A , y e. B |-> E ) = ( x e. C , y e. D |-> E ) ) $=
      ( wceq wral wa cmpt2 eqid rgenw jctr ralrimivw mpt2eq123 sylan2 ) DFHZCEH
      RGGHZBDIZJZACIABCDGKABEFGKHRUAACRTSBDGLMNOABCDGEFGPQ $.
  $}

  ${
    $d z A $.  $d z B $.  $d z C $.  $d z D $.  $d z E $.  $d x z ph $.
    $d z F $.  $d y z ph $.
    mpt2eq123dv.1 $e |- ( ph -> A = D ) $.
    ${
      mpt2eq123dva.2 $e |- ( ( ph /\ x e. A ) -> B = E ) $.
      mpt2eq123dva.3 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> C = F ) $.
      $( An equality deduction for the maps to notation.  (Contributed by Mario
         Carneiro, 26-Jan-2017.) $)
      mpt2eq123dva $p |- ( ph
              -> ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) ) $=
        ( vz cv wcel wa wceq coprab cmpt2 pm5.32da eqeq2d eleq2d anbi1d df-mpt2
        bitrd oprabbidv 3eqtr4g ) ABNZDOZCNZEOZPZMNZFQZPZBCMRUHGOZUJHOZPZUMIQZP
        ZBCMRBCDEFSBCGHISAUOUTBCMAUOULUSPUTAULUNUSAULPFIUMLUATAULURUSAULUIUQPUR
        AUIUKUQAUIPEHUJKUBTAUIUPUQADGUHJUBUCUEUCUEUFBCMDEFUDBCMGHIUDUG $.
    $}

    mpt2eq123dv.2 $e |- ( ph -> B = E ) $.
    mpt2eq123dv.3 $e |- ( ph -> C = F ) $.
    $( An equality deduction for the maps to notation.  (Contributed by NM,
       12-Sep-2011.) $)
    mpt2eq123dv $p |- ( ph
            -> ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) ) $=
      ( wceq cv wcel adantr wa mpt2eq123dva ) ABCDEFGHIJAEHMBNDOZKPAFIMSCNEOQLP
      R $.
  $}

  ${
    mpt2eq123i.1 $e |- A = D $.
    mpt2eq123i.2 $e |- B = E $.
    mpt2eq123i.3 $e |- C = F $.
    $( An equality inference for the maps to notation.  (Contributed by NM,
       15-Jul-2013.) $)
    mpt2eq123i $p |- ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) $=
      ( cmpt2 wceq wtru a1i mpt2eq123dv trud ) ABCDELABFGHLMNABCDEFGHCFMNIODGMN
      JOEHMNKOPQ $.
  $}

  ${
    $d x z ph $.  $d y z ph $.  $d z A $.  $d z B $.  $d z C $.  $d z D $.
    mpt2eq3dva.1 $e |- ( ( ph /\ x e. A /\ y e. B ) -> C = D ) $.
    $( Slightly more general equality inference for the maps to notation.
       (Contributed by NM, 17-Oct-2013.) $)
    mpt2eq3dva $p |- ( ph -> ( x e. A , y e. B |-> C )
              = ( x e. A , y e. B |-> D ) ) $=
      ( vz cv wcel wa wceq coprab cmpt2 3expb eqeq2d pm5.32da oprabbidv df-mpt2
      3eqtr4g ) ABJDKZCJEKZLZIJZFMZLZBCINUDUEGMZLZBCINBCDEFOBCDEGOAUGUIBCIAUDUF
      UHAUDLFGUEAUBUCFGMHPQRSBCIDEFTBCIDEGTUA $.
  $}

  ${
    mpt2eq3ia.1 $e |- ( ( x e. A /\ y e. B ) -> C = D ) $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpt2eq3ia $p |- ( x e. A , y e. B |-> C ) = ( x e. A , y e. B |-> D ) $=
      ( cmpt2 wceq wtru cv wcel 3adant1 mpt2eq3dva trud ) ABCDEHABCDFHIJABCDEFA
      KCLBKDLEFIJGMNO $.
  $}

  ${
    $d z A $.  $d z B $.  $d z C $.  $d z x $.  $d z y $.
    $( Bound-variable hypothesis builder for an operation in maps-to notation.
       (Contributed by NM, 27-Aug-2013.) $)
    nfmpt21 $p |- F/_ x ( x e. A , y e. B |-> C ) $=
      ( vz cmpt2 cv wcel wa wceq coprab df-mpt2 nfoprab1 nfcxfr ) AABCDEGAHCIBH
      DIJFHEKJZABFLABFCDEMPABFNO $.

    $( Bound-variable hypothesis builder for an operation in maps-to notation.
       (Contributed by NM, 27-Aug-2013.) $)
    nfmpt22 $p |- F/_ y ( x e. A , y e. B |-> C ) $=
      ( vz cmpt2 cv wcel wa wceq coprab df-mpt2 nfoprab2 nfcxfr ) BABCDEGAHCIBH
      DIJFHEKJZABFLABFCDEMPABFNO $.
  $}

  ${
    $d w x z $.  $d w y z $.  $d w A $.  $d w B $.  $d w C $.
    nfmpt2.1 $e |- F/_ z A $.
    nfmpt2.2 $e |- F/_ z B $.
    nfmpt2.3 $e |- F/_ z C $.
    $( Bound-variable hypothesis builder for the maps-to notation.
       (Contributed by NM, 20-Feb-2013.) $)
    nfmpt2 $p |- F/_ z ( x e. A , y e. B |-> C ) $=
      ( vw cmpt2 cv wcel wa wceq coprab df-mpt2 nfcri nfan nfeq2 nfoprab nfcxfr
      ) CABDEFKALDMZBLEMZNZJLZFOZNZABJPABJDEFQUHABJCUEUGCUCUDCCADGRCBEHRSCUFFIT
      SUAUB $.
  $}

  ${
    $d w x z $.  $d w y z $.  $d w z B $.  $d w z C $.
    $( A mapping operation with empty domain.  (Contributed by Stefan O'Rear,
       29-Jan-2015.)  (Revised by Mario Carneiro, 15-May-2015.) $)
    mpt20 $p |- ( x e. (/) , y e. B |-> C ) = (/) $=
      ( vz vw c0 cmpt2 cv wcel wa wceq coprab cop wex cab df-mpt2 df-oprab noel
      nex simprll mto abf 3eqtri ) ABGCDHAIZGJZBIZCJZKEIZDLZKZABEMFIUEUGNUINLZU
      KKZEOZBOZAOZFPGABEGCDQUKABEFRUPFUOAUNBUMEUMUFUESULUFUHUJUAUBTTTUCUD $.
  $}

  ${
    $d x y z $.
    $( Two ways to state the domain of an operation.  (Contributed by FL,
       24-Jan-2010.) $)
    oprab4 $p |-
      { <. <. x , y >. , z >. | ( <. x , y >. e. ( A X. B ) /\ ph ) } =
        { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ph ) } $=
      ( cv cop cxp wcel wa opelxp anbi1i oprabbii ) BGZCGZHEFIJZAKOEJPFJKZAKBCD
      QRAOPEFLMN $.
  $}

  ${
    $d x y z w v $.  $d v ph $.  $d v ps $.
    cbvoprab1.1 $e |- F/ w ph $.
    cbvoprab1.2 $e |- F/ x ps $.
    cbvoprab1.3 $e |- ( x = w -> ( ph <-> ps ) ) $.
    $( Rule used to change first bound variable in an operation abstraction,
       using implicit substitution.  (Contributed by NM, 20-Dec-2008.)
       (Revised by Mario Carneiro, 5-Dec-2016.) $)
    cbvoprab1 $p |- { <. <. x , y >. , z >. | ph }
                  = { <. <. w , y >. , z >. | ps } $=
      ( vv cv cop wceq wa wex copab coprab nfv nfan nfex eqeq2d anbi12d opabbii
      opeq1 exbidv cbvex dfoprab2 3eqtr4i ) JKZCKZDKZLZMZANZDOZCOZJEPUIFKZUKLZM
      ZBNZDOZFOZJEPACDEQBFDEQUPVBJEUOVACFUNFDUMAFUMFRGSTUTCDUSBCUSCRHSTUJUQMZUN
      UTDVCUMUSABVCULURUIUJUQUKUDUAIUBUEUFUCACDEJUGBFDEJUGUH $.
  $}

  ${
    $d v w x y z $.  $d ph v $.  $d ps v $.
    cbvoprab2.1 $e |- F/ w ph $.
    cbvoprab2.2 $e |- F/ y ps $.
    cbvoprab2.3 $e |- ( y = w -> ( ph <-> ps ) ) $.
    $( Change the second bound variable in an operation abstraction.
       (Contributed by Jeff Madsen, 11-Jun-2010.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    cbvoprab2 $p |- { <. <. x , y >. , z >. | ph } =
                    { <. <. x , w >. , z >. | ps } $=
      ( vv cv cop wceq wa wex cab coprab nfv nfan nfex opeq2 opeq1d cbvex exbii
      eqeq2d anbi12d exbidv abbii df-oprab 3eqtr4i ) JKZCKZDKZLZEKZLZMZANZEOZDO
      ZCOZJPUKULFKZLZUOLZMZBNZEOZFOZCOZJPACDEQBCFEQVAVIJUTVHCUSVGDFURFEUQAFUQFR
      GSTVFDEVEBDVEDRHSTUMVBMZURVFEVJUQVEABVJUPVDUKVJUNVCUOUMVBULUAUBUEIUFUGUCU
      DUHACDEJUIBCFEJUIUJ $.
  $}

  ${
    $d x y z w v u $.  $d u ph $.  $d u ps $.
    cbvoprab12.1 $e |- F/ w ph $.
    cbvoprab12.2 $e |- F/ v ph $.
    cbvoprab12.3 $e |- F/ x ps $.
    cbvoprab12.4 $e |- F/ y ps $.
    cbvoprab12.5 $e |- ( ( x = w /\ y = v ) -> ( ph <-> ps ) ) $.
    $( Rule used to change first two bound variables in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       21-Feb-2004.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    cbvoprab12 $p |- { <. <. x , y >. , z >. | ph }
                   = { <. <. w , v >. , z >. | ps } $=
      ( vu cv cop wceq wa wex nfv nfan coprab anbi12d opabbii dfoprab2 3eqtr4i
      copab opeq12 eqeq2d cbvex2 ) MNZCNZDNZOZPZAQZDRCRZMEUFUJFNZGNZOZPZBQZGRFR
      ZMEUFACDEUABFGEUAUPVBMEUOVACDFGUNAFUNFSHTUNAGUNGSITUTBCUTCSJTUTBDUTDSKTUK
      UQPULURPQZUNUTABVCUMUSUJUKULUQURUGUHLUBUIUCACDEMUDBFGEMUDUE $.
  $}

  ${
    $d x y z w v u $.  $d u w v ph $.  $d u x y ps $.
    cbvoprab12v.1 $e |- ( ( x = w /\ y = v ) -> ( ph <-> ps ) ) $.
    $( Rule used to change first two bound variables in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       8-Oct-2004.) $)
    cbvoprab12v $p |- { <. <. x , y >. , z >. | ph }
                    = { <. <. w , v >. , z >. | ps } $=
      ( nfv cbvoprab12 ) ABCDEFGAFIAGIBCIBDIHJ $.
  $}

  ${
    $d x z w v $.  $d y z w v $.  $d v ph $.  $d v ps $.
    cbvoprab3.1 $e |- F/ w ph $.
    cbvoprab3.2 $e |- F/ z ps $.
    cbvoprab3.3 $e |- ( z = w -> ( ph <-> ps ) ) $.
    $( Rule used to change the third bound variable in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       22-Aug-2013.) $)
    cbvoprab3 $p |- { <. <. x , y >. , z >. | ph } =
                     { <. <. x , y >. , w >. | ps } $=
      ( vv cv wceq wa wex copab coprab nfv nfan nfex dfoprab2 2exbidv cbvopab2
      cop anbi2d 3eqtr4i ) JKCKDKUCLZAMZDNZCNZJEOUFBMZDNZCNZJFOACDEPBCDFPUIULJE
      FUHFCUGFDUFAFUFFQGRSSUKECUJEDUFBEUFEQHRSSEKFKLZUGUJCDUMABUFIUDUAUBACDEJTB
      CDFJTUE $.
  $}

  ${
    $d x z w v $.  $d y z w v $.  $d w v ph $.  $d z v ps $.
    cbvoprab3v.1 $e |- ( z = w -> ( ph <-> ps ) ) $.
    $( Rule used to change the third bound variable in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       8-Oct-2004.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    cbvoprab3v $p |- { <. <. x , y >. , z >. | ph } =
                     { <. <. x , y >. , w >. | ps } $=
      ( nfv cbvoprab3 ) ABCDEFAFHBEHGI $.
  $}

  ${
    $d u v w x y z $.  $d u w x y z A $.  $d u w B $.  $d u C $.  $d u y D $.
    $d u E $.
    cbvmpt2x.1 $e |- F/_ z B $.
    cbvmpt2x.2 $e |- F/_ x D $.
    cbvmpt2x.3 $e |- F/_ z C $.
    cbvmpt2x.4 $e |- F/_ w C $.
    cbvmpt2x.5 $e |- F/_ x E $.
    cbvmpt2x.6 $e |- F/_ y E $.
    cbvmpt2x.7 $e |- ( x = z -> B = D ) $.
    cbvmpt2x.8 $e |- ( ( x = z /\ y = w ) -> C = E ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  This version of ~ cbvmpt2 allows ` B ` to be a function
       of ` x ` .  (Contributed by NM, 29-Dec-2014.) $)
    cbvmpt2x $p |- ( x e. A , y e. B |-> C ) = ( z e. A , w e. D |-> E ) $=
      ( vu cv nfan wcel wa wceq coprab cmpt2 nfv nfcri nfeq2 nfcv weq wb adantr
      eleq1 eleq2d sylan9bb anbi12d eqeq2d cbvoprab12 df-mpt2 3eqtr4i ) ASZEUAZ
      BSZFUAZUBZRSZGUCZUBZABRUDCSZEUAZDSZHUAZUBZVFIUCZUBZCDRUDABEFGUECDEHIUEVHV
      OABRCDVEVGCVBVDCVBCUFCBFJUGTCVFGLUHTVEVGDVBVDDVBDUFDBFDFUIUGTDVFGMUHTVMVN
      AVJVLAVJAUFADHKUGTAVFINUHTVMVNBVMBUFBVFIOUHTACUJZBDUJZUBZVEVMVGVNVRVBVJVD
      VLVPVBVJUKVQVAVIEUMULVPVDVCHUAVQVLVPFHVCPUNVCVKHUMUOUPVRGIVFQUQUPURABREFG
      USCDREHIUSUT $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.
    cbvmpt2.1 $e |- F/_ z C $.
    cbvmpt2.2 $e |- F/_ w C $.
    cbvmpt2.3 $e |- F/_ x D $.
    cbvmpt2.4 $e |- F/_ y D $.
    cbvmpt2.5 $e |- ( ( x = z /\ y = w ) -> C = D ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  (Contributed by NM, 17-Dec-2013.) $)
    cbvmpt2 $p |- ( x e. A , y e. B |-> C ) = ( z e. A , w e. B |-> D ) $=
      ( nfcv weq eqidd cbvmpt2x ) ABCDEFGFHCFNAFNIJKLACOFPMQ $.
  $}

  ${
    $d v w x y z A $.  $d v w x y z B $.  $d v w z C $.  $d v x y D $.
    cbvmpt2v.1 $e |- ( x = z -> C = E ) $.
    cbvmpt2v.2 $e |- ( y = w -> E = D ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  With a longer proof analogous to ~ cbvmpt , some distinct
       variable requirements could be eliminated.  (Contributed by NM,
       11-Jun-2013.) $)
    cbvmpt2v $p |- ( x e. A , y e. B |-> C ) = ( z e. A , w e. B |-> D ) $=
      ( nfcv weq sylan9eq cbvmpt2 ) ABCDEFGHCGLDGLAHLBHLACMBDMGIHJKNO $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.
    $( The domain of an operation class abstraction.  (Contributed by NM,
       17-Mar-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    dmoprab $p |- dom { <. <. x , y >. , z >. | ph } =
                  { <. x , y >. | E. z ph } $=
      ( vw coprab cdm cv cop wceq wa wex copab cab dfoprab2 dmeqi dmopab exrot3
      19.42v 2exbii bitri abbii df-opab eqtr4i 3eqtri ) ABCDFZGEHBHCHIJZAKZCLBL
      ZEDMZGUIDLZENZADLZBCMZUFUJABCDEOPUIEDQULUGUMKZCLBLZENUNUKUPEUKUHDLZCLBLUP
      UHDBCRUQUOBCUGADSTUAUBUMBCEUCUDUE $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( The domain of an operation class abstraction.  (Contributed by NM,
       24-Aug-1995.) $)
    dmoprabss $p |- dom { <. <. x , y >. , z >. |
           ( ( x e. A /\ y e. B ) /\ ph ) } C_ ( A X. B ) $=
      ( cv wcel wa coprab cdm wex copab dmoprab 19.42v opabbii opabssxp eqsstri
      cxp ) BGEHCGFHIZAIZBCDJKUADLZBCMZEFSZUABCDNUCTADLZIZBCMUDUBUFBCTADOPUEBCE
      FQRR $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.
    $( The range of an operation class abstraction.  (Contributed by NM,
       30-Aug-2004.)  (Revised by David Abernethy, 19-Apr-2013.) $)
    rnoprab $p |- ran { <. <. x , y >. , z >. | ph } =
                  { z | E. x E. y ph } $=
      ( vw coprab crn cv cop wceq wa wex copab cab dfoprab2 rneqi rnopab exrot3
      vex opex isseti 19.41v mpbiran 2exbii bitri abbii 3eqtri ) ABCDFZGEHBHZCH
      ZIZJZAKZCLBLZEDMZGUNELZDNACLBLZDNUHUOABCDEOPUNEDQUPUQDUPUMELZCLBLUQUMEBCR
      URABCURULELAEUKUIUJBSCSTUAULAEUBUCUDUEUFUG $.
  $}

  ${
    $d A y $.  $d x y z $.
    $( The range of a restricted operation class abstraction.  (Contributed by
       Scott Fenton, 21-Mar-2012.) $)
    rnoprab2 $p |- ran { <. <. x , y >. , z >. |
                          ( ( x e. A /\ y e. B ) /\ ph ) } =
                    { z | E. x e. A E. y e. B ph } $=
      ( cv wcel wa coprab crn wex cab wrex rnoprab r2ex abbii eqtr4i ) BGEHCGFH
      IAIZBCDJKSCLBLZDMACFNBENZDMSBCDOUATDABCEFPQR $.
  $}

  ${
    $d x y z $.
    $( The domain of an operation class abstraction is a relation.
       (Contributed by NM, 17-Mar-1995.) $)
    reldmoprab $p |- Rel dom { <. <. x , y >. , z >. | ph } $=
      ( wex coprab cdm dmoprab relopabi ) ADEBCABCDFGABCDHI $.

    $( Structure of an operation class abstraction.  (Contributed by NM,
       28-Nov-2006.) $)
    oprabss $p |- { <. <. x , y >. , z >. | ph } C_ ( ( _V X. _V ) X. _V ) $=
      ( coprab cdm crn cxp wrel reloprab relssdmrn ax-mp reldmoprab df-rel mpbi
      cvv wss ssv xpss12 mp2an sstri ) ABCDEZUBFZUBGZHZPPHZPHZUBIUBUEQABCDJUBKL
      UCUFQZUDPQUEUGQUCIUHABCDMUCNOUDRUCUFUDPSTUA $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d w ph $.
    $d x y z w ps $.
    eloprabga.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    $( The law of concretion for operation class abstraction.  Compare
       ~ elopab .  (Contributed by NM, 14-Sep-1999.)  (Unnecessary distinct
       variable restrictions were removed by David Abernethy, 19-Jun-2012.)
       (Revised by Mario Carneiro, 19-Dec-2013.) $)
    eloprabga $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
       ( <. <. A , B >. , C >. e. { <. <. x , y >. , z >. | ph } <-> ps ) ) $=
      ( vw wcel cvv cop wa cv wceq wex coprab wb w3a opexg sylan 3impa wi simpr
      elex eqeq1d eqcom vex otth2 syl6bb anbi1d pm5.32i 3exbidv df-oprab eleq2i
      bitri cab abid bitr2i eleq1 syl5bb adantl elisset 3anim123i eeeanv sylibr
      biantrurd 19.41vvv syl6rbbr adantr 3bitr3d expcom vtocleg mpcom syl3an )
      FINFONZGJNGONZHKNHONZFGPZHPZACDEUAZNZBUBZFIUIGJUIHKUIWDONZVTWAWBUCZWGVTWA
      WBWHVTWAQWCONWBWHFGOOUDWCHOOUDUEUFWIWGUGMWDOWIMRZWDSZWGWIWKQZWJCRZDRZPERZ
      PZSZAQZETDTCTZWMFSZWNGSZWOHSZUCZBQZETDTCTZWFBWLWRXDCDEWLWRXCAQXDWLWQXCAWL
      WQWDWPSZXCWLWJWDWPWIWKUHUJXFWPWDSXCWDWPUKWMWNFGWOHCULDULEULUMUTUNUOXCABLU
      PUNUQWKWSWFUBWIWSWJWENZWKWFXGWJWSMVAZNWSWEXHWJACDEMURUSWSMVBVCWJWDWEVDVEV
      FWIXEBUBWKWIBXCETDTCTZBQXEWIXIBWIWTCTZXADTZXBETZUCXIVTXJWAXKWBXLCFOVGDGOV
      GEHOVGVHWTXAXBCDEVIVJVKXCBCDEVLVMVNVOVPVQVRVS $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d w ph $.
    $d x y z w th $.
    eloprabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    eloprabg.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    eloprabg.3 $e |- ( z = C -> ( ch <-> th ) ) $.
    $( The law of concretion for operation class abstraction.  Compare
       ~ elopab .  (Contributed by NM, 14-Sep-1999.)  (Revised by David
       Abernethy, 19-Jun-2012.) $)
    eloprabg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
       ( <. <. A , B >. , C >. e. { <. <. x , y >. , z >. | ph } <-> th ) ) $=
      ( cv wceq syl3an9b eloprabga ) ADEFGHIJKLMEQHRABFQIRCGQJRDNOPST $.
  $}

  ${
    $d ph w $.  $d ps w $.  $d x z w $.  $d y z w $.
    ssoprab2i.1 $e |- ( ph -> ps ) $.
    $( Inference of operation class abstraction subclass from implication.
       (Contributed by NM, 11-Nov-1995.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    ssoprab2i $p |- { <. <. x , y >. , z >. | ph } C_
                    { <. <. x , y >. , z >. | ps } $=
      ( vw cv cop wceq wex copab coprab anim2i 2eximi ssopab2i dfoprab2 3sstr4i
      wa ) GHCHDHIJZASZDKCKZGELTBSZDKCKZGELACDEMBCDEMUBUDGEUAUCCDABTFNOPACDEGQB
      CDEGQR $.
  $}

  ${
    $d x z $.  $d y z $.  $d z C $.
    $( Operation with universal domain in maps-to notation.  (Contributed by
       NM, 16-Aug-2013.) $)
    mpt2v $p |- ( x e. _V , y e. _V |-> C )
                     = { <. <. x , y >. , z >. | z = C } $=
      ( cvv cmpt2 cv wcel wa coprab df-mpt2 vex pm3.2i biantrur oprabbii eqtr4i
      wceq ) ABEEDFAGEHZBGEHZIZCGDQZIZABCJUAABCJABCEEDKUAUBABCTUARSALBLMNOP $.
  $}

  ${
    $d w x y z A $.  $d w y z B $.  $d w x y C $.  $d w z D $.
    mpt2mpt.1 $e |- ( z = <. x , y >. -> C = D ) $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  In this version ` B ( x ) ` is not assumed to be constant
       w.r.t ` x ` .  (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    mpt2mptx $p |- ( z e. U_ x e. A ( { x } X. B ) |-> C ) =
      ( x e. A , y e. B |-> D ) $=
      ( vw cv csn cxp ciun cmpt wcel wceq wa copab wex eqtr4i df-mpt coprab cop
      cmpt2 df-mpt2 eliunxp anbi1i 19.41vv eqeq2d anbi2d pm5.32i 2exbii 3bitr2i
      anass bitri opabbii dfoprab2 ) CADAJZKELMZFNCJZUSOZIJZFPZQZCIRZABDEGUDZCI
      USFUAVFURDOBJZEOQZVBGPZQZABIUBZVEABIDEGUEVEUTURVGUCPZVJQZBSASZCIRVKVDVNCI
      VDVLVHQZBSASZVCQVOVCQZBSASVNVAVPVCABDEUTUFUGVOVCABUHVQVMABVQVLVHVCQZQVMVL
      VHVCUNVLVRVJVLVCVIVHVLFGVBHUIUJUKUOULUMUPVJABICUQTTT $.

    $d x B $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  (Contributed by Mario Carneiro, 17-Dec-2013.)  (Revised by
       Mario Carneiro, 29-Dec-2014.) $)
    mpt2mpt $p |- ( z e. ( A X. B ) |-> C ) = ( x e. A , y e. B |-> D ) $=
      ( cv csn cxp ciun cmpt cmpt2 wceq iunxpconst mpteq1 ax-mp mpt2mptx eqtr3i
      ) CADAIJEKLZFMZCDEKZFMZABDEGNUAUCOUBUDOADEPCUAUCFQRABCDEFGHST $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w ph $.
    $( Restriction of an operation class abstraction.  (Contributed by NM,
       10-Feb-2007.) $)
    resoprab $p |- ( { <. <. x , y >. , z >. | ph } |` ( A X. B ) ) =
                  { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ph ) } $=
      ( vw cv cop wceq wex copab cxp cres wcel coprab resopab 19.42vv dfoprab2
      wa eleq1 opelxp syl6bb anbi1d pm5.32i bitri 2exbii bitr3i opabbii reseq1i
      an12 eqtri 3eqtr4i ) GHZBHZCHZIZJZATZCKBKZGDLZEFMZNZURUOEOUPFOTZATZTZCKBK
      ZGDLZABCDPZVBNVEBCDPVCUNVBOZUTTZGDLVHUTGDVBQVKVGGDVKVJUSTZCKBKVGVJUSBCRVL
      VFBCVLURVJATZTVFVJURAUKURVMVEURVJVDAURVJUQVBOVDUNUQVBUAUOUPEFUBUCUDUEUFUG
      UHUIULVIVAVBABCDGSUJVEBCDGSUM $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.  $d E z $.
    $( Restriction of an operator abstraction.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    resoprab2 $p |- ( ( C C_ A /\ D C_ B ) -> ( { <. <. x , y >. , z >. |
                  ( ( x e. A /\ y e. B ) /\ ph ) } |` ( C X. D ) ) =
              { <. <. x , y >. , z >. | ( ( x e. C /\ y e. D ) /\ ph ) } ) $=
      ( wss wa cv wcel coprab cxp cres resoprab anass ssel pm4.71d bicomd an4
      bi2anan9 syl5bb anbi1d syl5bbr oprabbidv syl5eq ) GEIZHFIZJZBKZELZCKZFLZJ
      ZAJZBCDMGHNOUKGLZUMHLZJZUPJZBCDMUSAJZBCDMUPBCDGHPUJUTVABCDUTUSUOJZAJUJVAU
      SUOAQUJVBUSAVBUQULJZURUNJZJUJUSUQURULUNUAUHVCUQUIVDURUHUQVCUHUQULGEUKRSTU
      IURVDUIURUNHFUMRSTUBUCUDUEUFUG $.

    $( Restriction of the mapping operation.  (Contributed by Mario Carneiro,
       17-Dec-2013.) $)
    resmpt2 $p |- ( ( C C_ A /\ D C_ B ) ->
                    ( ( x e. A , y e. B |-> E ) |` ( C X. D ) ) =
                      ( x e. C , y e. D |-> E ) ) $=
      ( vz wss wa cv wcel wceq coprab cxp cres cmpt2 resoprab2 df-mpt2 reseq1i
      3eqtr4g ) ECIFDIJAKZCLBKZDLJHKGMZJABHNZEFOZPUBELUCFLJUDJABHNABCDGQZUFPABE
      FGQUDABHCDEFRUGUEUFABHCDGSTABHEFGSUA $.
  $}

  ${
    $d x y z w $.  $d w ph $.
    $( "At most one" is a sufficient condition for an operation class
       abstraction to be a function.  (Contributed by NM, 28-Aug-2007.) $)
    funoprabg $p |- ( A. x A. y E* z ph ->
                    Fun { <. <. x , y >. , z >. | ph } ) $=
      ( vw wmo wal cv cop wceq wa wex coprab wfun mosubopt alrimiv copab funeqi
      dfoprab2 funopab bitr2i sylib ) ADFCGBGZEHZBHCHIJAKCLBLZDFZEGZABCDMZNZUCU
      FEADBCUDOPUIUEEDQZNUGUHUJABCDESRUEEDTUAUB $.
  $}

  ${
    $d x y z w $.  $d w ph $.
    funoprab.1 $e |- E* z ph $.
    $( "At most one" is a sufficient condition for an operation class
       abstraction to be a function.  (Contributed by NM, 17-Mar-1995.) $)
    funoprab $p |- Fun { <. <. x , y >. , z >. | ph } $=
      ( wmo wal coprab wfun gen2 funoprabg ax-mp ) ADFZCGBGABCDHIMBCEJABCDKL $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( Functionality and domain of an operation class abstraction.
       (Contributed by NM, 28-Aug-2007.) $)
    fnoprabg $p |- ( A. x A. y ( ph -> E! z ps ) ->
  { <. <. x , y >. , z >. | ( ph /\ ps ) } Fn { <. x , y >. | ph } ) $=
      ( weu wi wal wa coprab wfun cdm copab wceq wfn wmo eumo imim2i wex sps wb
      moanimv sylibr 2alimi funoprabg syl dmoprab nfa1 nfa2 simpl exlimiv ancld
      euex 19.42v syl6ibr impbid2 opabbid syl5eq df-fn sylanbrc ) ABEFZGZDHZCHZ
      ABIZCDEJZKZVFLZACDMZNVFVIOVDVEEPZDHCHVGVBVJCDVBABEPZGVJVAVKABEQRABEUBUCUD
      VECDEUEUFVDVHVEESZCDMVIVECDEUGVDVLACDVCCUHVBDCUIVCVLAUAZCVBVMDVBVLAVEAEAB
      UJUKVBAABESZIVLVBAVNVAVNABEUMRULABEUNUOUPTTUQURVFVIUSUT $.
  $}

  ${
    $d A w z $.  $d B w z $.  $d C w z $.  $d x y w z $.
    mpt2fun.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( The maps-to notation for an operation is always a function.
       (Contributed by Scott Fenton, 21-Mar-2012.) $)
    mpt2fun $p |- Fun F $=
      ( vz vw wfun cv wcel wa wceq coprab wmo weq wi wal mpbir eqtr3 gen2 eqeq1
      ad2ant2l anbi2d mo4 funoprab cmpt2 df-mpt2 eqtri funeqi ) FJAKCLBKDLMZHKZ
      ENZMZABHOZJUOABHUOHPUOULIKZENZMZMHIQZRZISHSVAHIUNURUTULULUMUQEUAUDUBUOUSH
      IUTUNURULUMUQEUCUEUFTUGFUPFABCDEUHUPGABHCDEUIUJUKT $.
  $}

  ${
    $d x y z $.  $d z ph $.
    fnoprab.1 $e |- ( ph -> E! z ps ) $.
    $( Functionality and domain of an operation class abstraction.
       (Contributed by NM, 15-May-1995.) $)
    fnoprab $p |- { <. <. x , y >. , z >. | ( ph /\ ps ) } Fn
                    { <. x , y >. | ph } $=
      ( weu wi wal wa coprab copab wfn gen2 fnoprabg ax-mp ) ABEGHZDICIABJCDEKA
      CDLMQCDFNABCDEOP $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w F $.
    $( An operation maps to a class to which all values belong.  (Contributed
       by NM, 7-Feb-2004.) $)
    ffnov $p |- ( F : ( A X. B ) --> C <-> ( F Fn ( A X. B ) /\
         A. x e. A A. y e. B ( x F y ) e. C ) ) $=
      ( vw cxp wf wfn cv cfv wcel wral wa co ffnfv cop wceq fveq2 df-ov syl6eqr
      eleq1d ralxp anbi2i bitri ) CDHZEFIFUGJZGKZFLZEMZGUGNZOUHAKZBKZFPZEMZBDNA
      CNZOGUGEFQULUQUHUKUPGABCDUIUMUNRZSZUJUOEUSUJURFLUOUIURFTUMUNFUAUBUCUDUEUF
      $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y F $.  $d x y R $.  $d x y S $.
    fovcl.1 $e |- F : ( R X. S ) --> C $.
    $( Closure law for an operation.  (Contributed by NM, 19-Apr-2007.) $)
    fovcl $p |- ( ( A e. R /\ B e. S ) -> ( A F B ) e. C ) $=
      ( vx vy wcel wa cv co wral cxp wf wfn ffnov wceq eleq1d ax-mp oveq1 oveq2
      simprbi rspc2v mpi ) ADJBEJKHLZILZFMZCJZIENHDNZABFMZCJZDEOZCFPZUKGUOFUNQU
      KHIDECFRUDUAUJUMAUHFMZCJHIABDEUGASUIUPCUGAUHFUBTUHBSUPULCUHBAFUCTUEUF $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d z C $.  $d z D $.  $d x y z F $.
    $d x y z G $.
    $( Equality of two operations is determined by their values.  (Contributed
       by NM, 1-Sep-2005.) $)
    eqfnov $p |- ( ( F Fn ( A X. B ) /\ G Fn ( C X. D ) ) -> ( F = G <->
( ( A X. B ) = ( C X. D ) /\ A. x e. A A. y e. B ( x F y ) = ( x G y ) ) ) ) $=
      ( vz cxp wfn wa wceq cv cfv wral co eqfnfv2 fveq2 df-ov cop eqeq12d ralxp
      eqeq12i syl6bbr anbi2i syl6bb ) GCDJZKHEFJZKLGHMUHUIMZINZGOZUKHOZMZIUHPZL
      UJANZBNZGQZUPUQHQZMZBDPACPZLIUHUIGHRUOVAUJUNUTIABCDUKUPUQUAZMZUNVBGOZVBHO
      ZMUTVCULVDUMVEUKVBGSUKVBHSUBURVDUSVEUPUQGTUPUQHTUDUEUCUFUG $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d G x y $.
    $( Two operators with the same domain are equal iff their values at each
       point in the domain are equal.  (Contributed by Jeff Madsen,
       7-Jun-2010.) $)
    eqfnov2 $p |- ( ( F Fn ( A X. B ) /\ G Fn ( A X. B ) ) ->
                  ( F = G <-> A. x e. A A. y e. B ( x F y ) = ( x G y ) ) ) $=
      ( cxp wfn wa wceq cv co wral eqfnov simpr eqidd ancri impbii syl6bb ) ECD
      GZHFTHIEFJTTJZAKZBKZELUBUCFLJBDMACMZIZUDABCDCDEFNUEUDUAUDOUDUAUDTPQRS $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w F $.
    $( Representation of a function in terms of its values.  (Contributed by
       Jim Kingdon, 16-Jan-2019.) $)
    fnovim $p |- ( F Fn ( A X. B ) ->
                    F = ( x e. A , y e. B |-> ( x F y ) ) ) $=
      ( vz cxp wfn cv cfv cmpt co cmpt2 dffn5im cop fveq2 df-ov syl6eqr mpt2mpt
      wceq eqeq2i sylib ) ECDGZHEFUCFIZEJZKZTEABCDAIZBIZELZMZTFUCENUFUJEABFCDUE
      UIUDUGUHOZTUEUKEJUIUDUKEPUGUHEQRSUAUB $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.  $d z D $.
    $( Bidirectional equality theorem for a mapping abstraction.  Equivalent to
       ~ eqfnov2 .  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    mpt22eqb $p |- ( A. x e. A A. y e. B C e. V ->
      ( ( x e. A , y e. B |-> C ) = ( x e. A , y e. B |-> D ) <->
        A. x e. A A. y e. B C = D ) ) $=
      ( vz wcel wral wceq cv wb wal cmpt2 ralimi ralbi syl wa coprab df-mpt2 wi
      pm13.183 eqeq12i eqoprab2b pm5.32 19.21v bitr3i 2albii r2al bitr4i 3bitri
      albii syl6rbbr ) EGIZBDJZACJZEFKZBDJZACJZHLZEKZVAFKZMZHNZBDJZACJZABCDEOZA
      BCDFOZKZUQUSVFMZACJUTVGMUPVKACUPURVEMZBDJVKUOVLBDHEFGUCPURVEBDQRPUSVFACQR
      VJALCIBLDISZVBSZABHTZVMVCSZABHTZKVNVPMZHNZBNANZVGVHVOVIVQABHCDEUAABHCDFUA
      UDVNVPABHUEVTVMVEUBZBNANVGVSWAABVSVMVDUBZHNWAWBVRHVMVBVCUFUMVMVDHUGUHUIVE
      ABCDUJUKULUN $.
  $}

  ${
    $d w x $.  $d w y z A $.  $d w z B $.  $d w z C $.  $d w z F $.  $d z ps $.
    $d x y z D $.  $d x y ph $.
    rngop.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( The range of an operation given by the "maps to" notation.  (Contributed
       by FL, 20-Jun-2011.) $)
    rnmpt2 $p |- ran F = { z | E. x e. A E. y e. B z = C } $=
      ( crn cv wcel wa wceq coprab wrex cab cmpt2 df-mpt2 eqtri rneqi rnoprab2
      ) GIAJDKBJEKLCJFMZLABCNZIUBBEOADOCPGUCGABDEFQUCHABCDEFRSTUBABCDEUAS $.

    $( The domain of an operation defined by maps-to notation is a relation.
       (Contributed by Stefan O'Rear, 27-Nov-2014.) $)
    reldmmpt2 $p |- Rel dom F $=
      ( vz cdm wrel cv wcel wa wceq coprab reldmoprab cmpt2 df-mpt2 eqtri dmeqi
      releqi mpbir ) FIZJAKCLBKDLMHKENMZABHOZIZJUDABHPUCUFFUEFABCDEQUEGABHCDERS
      TUAUB $.

    $( Membership in the range of an operation class abstraction.  (Contributed
       by NM, 27-Aug-2007.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    elrnmpt2g $p |- ( D e. V ->
                     ( D e. ran F <-> E. x e. A E. y e. B D = C ) ) $=
      ( vz cv wceq wrex crn eqeq1 2rexbidv rnmpt2 elab2g ) JKZELZBDMACMFELZBDMA
      CMJFGNHSFLTUAABCDSFEOPABJCDEGIQR $.

    ${
      elrnmpt2.1 $e |- C e. _V $.
      $( Membership in the range of an operation class abstraction.
         (Contributed by NM, 1-Aug-2004.)  (Revised by Mario Carneiro,
         31-Aug-2015.) $)
      elrnmpt2 $p |- ( D e. ran F <-> E. x e. A E. y e. B D = C ) $=
        ( vz crn wcel cv wceq wrex cab rnmpt2 eleq2i cvv rexlimivw eleq1 mpbiri
        eqeq1 2rexbidv elab3 bitri ) FGKZLFJMZENZBDOACOZJPZLFENZBDOZACOZUGUKFAB
        JCDEGHQRUJUNJFUMFSLZACULUOBDULUOESLIFESUAUBTTUHFNUIULABCDUHFEUCUDUEUF
        $.
    $}

    ralrnmpt2.2 $e |- ( z = C -> ( ph <-> ps ) ) $.
    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 1-Sep-2015.) $)
    ralrnmpt2 $p |- ( A. x e. A A. y e. B C e. V ->
      ( A. z e. ran F ph <-> A. x e. A A. y e. B ps ) ) $=
      ( vw wral cv wceq wrex wi wal wb crn wcel cab rnmpt2 eqeq1 2rexbidv ralab
      raleqi ralcom4 r19.23v albii bitr2i 3bitri bitri nfv ceqsalg ralimi ralbi
      syl syl5bbr syl5bb ) AEIUAZNZEOZHPZDGQZARZESZCFNZHJUBZDGNZCFNZBDGNZCFNZVC
      AEMOZHPZDGQCFQZMUCZNVFCFQZARZESZVIAEVBVRCDMFGHIKUDUHVQVSAEMVOVDPVPVECDFGV
      OVDHUEUFUGVIVGCFNZESWAVGCEFUIWBVTEVFACFUJUKULUMVLVHVMTZCFNVIVNTVKWCCFVHVE
      ARZESZDGNZVKVMWFWDDGNZESVHWDDEGUIWGVGEVEADGUJUKUNVKWEBTZDGNWFVMTVJWHDGABE
      HJBEUOLUPUQWEBDGURUSUTUQVHVMCFURUSVA $.

    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 1-Sep-2015.) $)
    rexrnmpt2 $p |- ( A. x e. A A. y e. B C e. V ->
      ( E. z e. ran F ph <-> E. x e. A E. y e. B ps ) ) $=
      ( vw wrex cv wceq wa wex wral wb crn wcel cab rnmpt2 eqeq1 2rexbidv rexab
      rexeqi rexcom4 r19.41v exbii bitr2i 3bitri bitri ralimi rexbi syl syl5bbr
      ceqsexgv syl5bb ) AEIUAZNZEOZHPZDGNZAQZERZCFNZHJUBZDGSZCFSZBDGNZCFNZVBAEM
      OZHPZDGNCFNZMUCZNVECFNZAQZERZVHAEVAVQCDMFGHIKUDUHVPVRAEMVNVCPVOVDCDFGVNVC
      HUEUFUGVHVFCFNZERVTVFCEFUIWAVSEVEACFUJUKULUMVKVGVLTZCFSVHVMTVJWBCFVGVDAQZ
      ERZDGNZVJVLWEWCDGNZERVGWCDEGUIWFVFEVDADGUJUKUNVJWDBTZDGSWEVLTVIWGDGABEHJL
      USUOWDBDGUPUQURUOVGVLCFUPUQUT $.
  $}

  ${
    $d x y z $.  $d z R $.  $d z S $.
    ovid.1 $e |- ( ( x e. R /\ y e. S ) -> E! z ph ) $.
    ovid.2 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction.  (Contributed by NM,
       16-May-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    ovid $p |- ( ( x e. R /\ y e. S ) -> ( ( x F y ) = z <-> ph ) ) $=
      ( cv co wceq cop cfv wcel wa df-ov eqeq1i copab wfn coprab fnoprab fneq1i
      wb mpbir opabid biimpri fnopfvb sylancr eleq2i oprabid bitri bitrd syl5bb
      baib ) BJZCJZGKZDJZLUPUQMZGNZUSLZUPEOUQFOPZAURVAUSUPUQGQRVCVBUTUSMZGOZAVC
      GVCBCSZTZUTVFOZVBVEUDVGVCAPZBCDUAZVFTVCABCDHUBVFGVJIUCUEVHVCVCBCUFUGVFUTU
      SGUHUIVEVCAVEVDVJOVIGVJVDIUJVIBCDUKULUOUMUN $.
  $}

  ${
    $d x y z $.
    ovidig.1 $e |- E* z ph $.
    ovidig.2 $e |- F = { <. <. x , y >. , z >. | ph } $.
    $( The value of an operation class abstraction.  Compare ~ ovidi .  The
       condition ` ( x e. R /\ y e. S ) ` is been removed.  (Contributed by
       Mario Carneiro, 29-Dec-2014.) $)
    ovidig $p |- ( ph -> ( x F y ) = z ) $=
      ( cv co cop cfv df-ov wfun wcel wceq coprab funoprab funeqi mpbir oprabid
      biimpri syl6eleqr funopfv mpsyl syl5eq ) ABHZCHZEIUFUGJZEKZDHZUFUGELEMZAU
      HUJJZENUIUJOUKABCDPZMABCDFQEUMGRSAULUMEULUMNAABCDTUAGUBUHUJEUCUDUE $.
  $}

  ${
    $d x y z $.  $d z R $.  $d z S $.
    ovidi.2 $e |- ( ( x e. R /\ y e. S ) -> E* z ph ) $.
    ovidi.3 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction (weak version).
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    ovidi $p |- ( ( x e. R /\ y e. S ) -> ( ph -> ( x F y ) = z ) ) $=
      ( cv wcel wa co wceq wmo wi moanimv mpbir ovidig ex ) BJZEKCJZFKLZAUAUBGM
      DJNUCALZBCDGUDDOUCADOPHUCADQRIST $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d x y z S $.
    $d x y z th $.
    ov.1 $e |- C e. _V $.
    ov.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ov.3 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ov.4 $e |- ( z = C -> ( ch <-> th ) ) $.
    ov.5 $e |- ( ( x e. R /\ y e. S ) -> E! z ph ) $.
    ov.6 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction.  (Contributed by NM,
       16-May-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    ov $p |- ( ( A e. R /\ B e. S ) -> ( ( A F B ) = C <-> th ) ) $=
      ( wcel wa co wceq cop cv coprab cfv df-ov fveq1i eqtri eqeq1i wfn fnoprab
      copab eleq1 anbi1d anbi2d opelopabg ibir fnopfvb sylancr anbi12d eloprabg
      wb cvv mp3an3 bitrd syl5bb bianabs ) HKTZILTZUAZHIMUBZJUCZDVNHIUDZEUEZKTZ
      FUEZLTZUAZAUAZEFGUFZUGZJUCZVLVLDUAZVMWCJVMVOMUGWCHIMUHVOMWBSUIUJUKVLWDVOJ
      UDWBTZWEVLWBVTEFUNZULVOWGTZWDWFVDVTAEFGRUMVLWHVTVJVSUAZVLEFHIKLVPHUCZVQVJ
      VSVPHKUOUPZVRIUCZVSVKVJVRILUOUQZURUSWGVOJWBUTVAVJVKJVETWFWEVDNWAWIBUAVLCU
      AWEEFGHIJKLVEWJVTWIABWKOVBWLWIVLBCWMPVBGUEJUCCDVLQUQVCVFVGVHVI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z ps $.
    ovigg.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    ovigg.4 $e |- E* z ph $.
    ovigg.5 $e |- F = { <. <. x , y >. , z >. | ph } $.
    $( The value of an operation class abstraction.  Compare ~ ovig .  The
       condition ` ( x e. R /\ y e. S ) ` is been removed.  (Contributed by FL,
       24-Mar-2007.)  (Revised by Mario Carneiro, 19-Dec-2013.) $)
    ovigg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
                         ( ps -> ( A F B ) = C ) ) $=
      ( wcel w3a cop wceq cfv coprab eloprabga df-ov fveq1i eqtri wfun funoprab
      co wi funopfv ax-mp syl5eq syl6bir ) FJPGKPHLPQBFGRZHRACDEUAZPZFGIUHZHSAB
      CDEFGHJKLMUBUPUQUNUOTZHUQUNITURFGIUCUNIUOOUDUEUOUFUPURHSUIACDENUGUNHUOUJU
      KULUM $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d x y z S $.
    $d x y z ps $.
    ovig.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    ovig.2 $e |- ( ( x e. R /\ y e. S ) -> E* z ph ) $.
    ovig.3 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction (weak version).
       (Unnecessary distinct variable restrictions were removed by David
       Abernethy, 19-Jun-2012.)  (Contributed by NM, 14-Sep-1999.)  (Revised by
       Mario Carneiro, 19-Dec-2013.) $)
    ovig $p |- ( ( A e. R /\ B e. S /\ C e. D ) ->
                         ( ps -> ( A F B ) = C ) ) $=
      ( wcel w3a wa wceq cv co 3simpa wb eleq1 bi2anan9 3adant3 anbi12d moanimv
      wmo wi mpbir ovigg mpand ) FJPZGKPZHIPZQUNUORZBFGLUAHSUNUOUPUBCTZJPZDTZKP
      ZRZARZUQBRCDEFGHLJKIURFSZUTGSZETHSZQVBUQABVDVEVBUQUCVFVDUSUNVEVAUOURFJUDU
      TGKUDUEUFMUGVCEUIVBAEUIUJNVBAEUHUKOULUM $.
  $}

  ${
    $d x y z $.  $d z A $.  $d z B $.  $d z C $.  $d z F $.
    ovmpt4g.3 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Value of a function given by the "maps to" notation.  (This is the
       operation analog of ~ fvmpt2 .)  (Contributed by NM, 21-Feb-2004.)
       (Revised by Mario Carneiro, 1-Sep-2015.) $)
    ovmpt4g $p |- ( ( x e. A /\ y e. B /\ C e. V ) -> ( x F y ) = C ) $=
      ( vz cv wcel co wceq wex wa elisset wmo moeq a1i cmpt2 coprab eqtri ovidi
      df-mpt2 eqeq2 mpbidi exlimdv syl5 3impia ) AJZCKZBJZDKZEGKZUJULFLZEMZUNIJ
      ZEMZINUKUMOZUPIEGPUSURUPIURUOUQMUPUSURABICDFURIQUSIERSFABCDETUSUROABIUAHA
      BICDEUDUBUCUQEUOUEUFUGUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d z F $.
    $d z R $.
    ovmpt2s.3 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( Value of a function given by the "maps to" notation, expressed using
       explicit substitution.  (Contributed by Mario Carneiro, 30-Apr-2015.) $)
    ovmpt2s $p |- ( ( A e. C /\ B e. D /\ [_ A / x ]_ [_ B / y ]_ R e. V ) ->
      ( A F B ) = [_ A / x ]_ [_ B / y ]_ R ) $=
      ( wcel csb co wceq cvv cv wi nfcv nfcsb1v eleq1d elex nfel1 cmpt2 nfmpt21
      nfcxfr nfov nfeq nfim nfmpt22 csbeq1a oveq1 eqeq12d imbi12d oveq2 ovmpt4g
      wa 3expia vtocl2gaf csbcomg eqeq2d 3imtr4d syl5 3impia ) CEKZDFKZACBDGLLZ
      IKZCDHMZVFNZVGVFOKZVDVEUPZVIVFIUAVKBDACGLZLZOKZVHVMNZVJVIGOKZAPZBPZHMZGNZ
      QVLOKZCVRHMZVLNZQVNVOQABCDEFACRZBCRZBDRZWAWCAAVLOACGSZUBAWBVLACVRHWDAHABE
      FGUCZJABEFGUDUEAVRRUFWGUGUHVNVOBBVMOBDVLSZUBBVHVMBCDHWEBHWHJABEFGUIUEWFUF
      WIUGUHVQCNZVPWAVTWCWJGVLOACGUJZTWJVSWBGVLVQCVRHUKWKULUMVRDNZWAVNWCVOWLVLV
      MOBDVLUJZTWLWBVHVLVMVRDCHUNWMULUMVQEKVRFKVPVTABEFGHOJUOUQURVKVFVMOABCDGEF
      USZTVKVFVMVHWNUTVAVBVC $.
  $}

  ${
    $d t u v w A $.  $d t u v w B $.  $d t u v w x y z C $.  $d t u v w z R $.
    $d t u v w x y z D $.  $d w F $.  $d w G $.  $d t u v w S $.
    ov2gf.a $e |- F/_ x A $.
    ov2gf.c $e |- F/_ y A $.
    ov2gf.d $e |- F/_ y B $.
    ov2gf.1 $e |- F/_ x G $.
    ov2gf.2 $e |- F/_ y S $.
    ov2gf.3 $e |- ( x = A -> R = G ) $.
    ov2gf.4 $e |- ( y = B -> G = S ) $.
    ov2gf.5 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( The value of an operation class abstraction.  A version of ~ ovmpt2g
       using bound-variable hypotheses.  (Contributed by NM, 17-Aug-2006.)
       (Revised by Mario Carneiro, 19-Dec-2013.) $)
    ov2gf $p |- ( ( A e. C /\ B e. D /\ S e. H ) -> ( A F B ) = S ) $=
      ( wcel co wceq cvv wa elex cv wi nfel1 nfmpt21 nfcxfr nfcv nfov nfeq nfim
      cmpt2 nfmpt22 eleq1d oveq1 eqeq12d imbi12d oveq2 ovmpt4g 3expia vtocl2gaf
      syl5 3impia ) CETZDFTZHKTZCDIUAZHUBZVIHUCTZVGVHUDVKHKUEGUCTZAUFZBUFZIUAZG
      UBZUGJUCTZCVOIUAZJUBZUGVLVKUGABCDEFLMNVRVTAAJUCOUHAVSJACVOILAIABEFGUOZSAB
      EFGUIUJAVOUKULOUMUNVLVKBBHUCPUHBVJHBCDIMBIWASABEFGUPUJNULPUMUNVNCUBZVMVRV
      QVTWBGJUCQUQWBVPVSGJVNCVOIURQUSUTVODUBZVRVLVTVKWCJHUCRUQWCVSVJJHVODCIVARU
      SUTVNETVOFTVMVQABEFGIUCSVBVCVDVEVF $.
  $}

  ${
    $d x y z $.  $d x z A $.  $d y z B $.  $d z C $.  $d z D $.  $d z R $.
    $d z S $.
    ovmpt2dx.1 $e |- ( ph -> F = ( x e. C , y e. D |-> R ) ) $.
    ovmpt2dx.2 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R = S ) $.
    ovmpt2dx.3 $e |- ( ( ph /\ x = A ) -> D = L ) $.
    ovmpt2dx.4 $e |- ( ph -> A e. C ) $.
    ovmpt2dx.5 $e |- ( ph -> B e. L ) $.
    ovmpt2dx.6 $e |- ( ph -> S e. X ) $.
    ${
      ovmpt2dxf.px $e |- F/ x ph $.
      ovmpt2dxf.py $e |- F/ y ph $.
      ovmpt2dxf.ay $e |- F/_ y A $.
      ovmpt2dxf.bx $e |- F/_ x B $.
      ovmpt2dxf.sx $e |- F/_ x S $.
      ovmpt2dxf.sy $e |- F/_ y S $.
      $( Value of an operation given by a maps-to rule, deduction form.
         (Contributed by Mario Carneiro, 29-Dec-2014.) $)
      ovmpt2dxf $p |- ( ph -> ( A F B ) = S ) $=
        ( co cmpt2 oveqd cv wcel cvv w3a wceq wi wsbc ovmpt4g a1i alrimi spsbcd
        eqid wa adantr simplr ad2antrr eqeltrd simpr 3eltr4d anassrs elex biimt
        wb syl syl3anc oveq12d eqeq12d bitr3d nfeq2 nfan nfmpt22 nfcv nfov nfeq
        wnf sbciedf nfmpt21 mpbid eqtrd ) ADEJUEDEBCFGHUFZUEZIAJWGDEMUGABUHZFUI
        ZCUHZGUIZHUJUIZUKZWIWKWGUEZHULZUMZCEUNZBDUNWHIULZAWRBDFPAWRBSAWQCEKQAWQ
        CTWQABCFGHWGUJWGUSUOUPUQURUQURAWRWSBDFPAWIDULZUTZWQWSCEKAEKUIZWTQVAXAWK
        EULZUTZWPWQWSXDWJWLWMWPWQVJXDWIDFAWTXCVBZADFUIWTXCPVCVDXDEKWKGAXBWTXCQV
        CXAXCVEZXAGKULXCOVAVFXDHIUJAWTXCHIULNVGZAIUJUIZWTXCAILUIXHRILVHVKVCVDWN
        WPVIVLXDWOWHHIXDWIDWKEWGXEXFVMXGVNVOAWTCTCWIDUAVPVQWSCWBXACWHICDEWGUABC
        FGHVRCEVSVTUDWAUPWCSWSBWBABWHIBDEWGBDVSBCFGHWDUBVTUCWAUPWCWEWF $.
    $}

    $d y A $.  $d x B $.  $d x y S $.  $d x y ph $.
    $( Value of an operation given by a maps-to rule, deduction form.
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    ovmpt2dx $p |- ( ph -> ( A F B ) = S ) $=
      ( nfv nfcv ovmpt2dxf ) ABCDEFGHIJKLMNOPQRABSACSCDTBETBITCITUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y S $.  $d x y ph $.
    ovmpt2d.1 $e |- ( ph -> F = ( x e. C , y e. D |-> R ) ) $.
    ovmpt2d.2 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R = S ) $.
    ovmpt2d.3 $e |- ( ph -> A e. C ) $.
    ovmpt2d.4 $e |- ( ph -> B e. D ) $.
    ovmpt2d.5 $e |- ( ph -> S e. X ) $.
    $( Value of an operation given by a maps-to rule, deduction form.
       (Contributed by Mario Carneiro, 7-Dec-2014.) $)
    ovmpt2d $p |- ( ph -> ( A F B ) = S ) $=
      ( cv wceq wa eqidd ovmpt2dx ) ABCDEFGHIJGKLMABQDRSGTNOPUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y L $.  $d x y S $.
    ovmpt2x.1 $e |- ( ( x = A /\ y = B ) -> R = S ) $.
    ovmpt2x.2 $e |- ( x = A -> D = L ) $.
    ovmpt2x.3 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( The value of an operation class abstraction.  Variant of ~ ovmpt2ga
       which does not require ` D ` and ` x ` to be distinct.  (Contributed by
       Jeff Madsen, 10-Jun-2010.)  (Revised by Mario Carneiro, 20-Dec-2013.) $)
    ovmpt2x $p |- ( ( A e. C /\ B e. L /\ S e. H ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq cv adantl elex w3a cmpt2 wa simp1 simp2 simp3 ovmpt2dx
      a1i syl3an3 ) HJOCEOZDKOZHPOZCDIQHRHJUAUKULUMUBZABCDEFGHIKPIABEFGUCRUNNUI
      ASCRZBSDRUDGHRUNLTUOFKRUNMTUKULUMUEUKULUMUFUKULUMUGUHUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y S $.
    ovmpt2ga.1 $e |- ( ( x = A /\ y = B ) -> R = S ) $.
    ovmpt2ga.2 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( Value of an operation given by a maps-to rule.  (Contributed by Mario
       Carneiro, 19-Dec-2013.) $)
    ovmpt2ga $p |- ( ( A e. C /\ B e. D /\ S e. H ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq elex w3a cmpt2 cv a1i adantl simp1 simp2 simp3 ovmpt2d
      wa syl3an3 ) HJMCEMZDFMZHNMZCDIOHPHJQUIUJUKRZABCDEFGHINIABEFGSPULLUAATCPB
      TDPUGGHPULKUBUIUJUKUCUIUJUKUDUIUJUKUEUFUH $.

    ovmpt2a.4 $e |- S e. _V $.
    $( Value of an operation given by a maps-to rule.  (Contributed by NM,
       19-Dec-2013.) $)
    ovmpt2a $p |- ( ( A e. C /\ B e. D ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq ovmpt2ga mp3an3 ) CEMDFMHNMCDIOHPLABCDEFGHINJKQR $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.
    ovmpt2df.1 $e |- ( ph -> A e. C ) $.
    ovmpt2df.2 $e |- ( ( ph /\ x = A ) -> B e. D ) $.
    ovmpt2df.3 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R e. V ) $.
    ovmpt2df.4 $e |- ( ( ph /\ ( x = A /\ y = B ) ) ->
      ( ( A F B ) = R -> ps ) ) $.
    ${
      ovmpt2df.5 $e |- F/_ x F $.
      ovmpt2df.6 $e |- F/ x ps $.
      ovmpt2df.7 $e |- F/_ y F $.
      ovmpt2df.8 $e |- F/ y ps $.
      $( Alternate deduction version of ~ ovmpt2 , suitable for iteration.
         (Contributed by Mario Carneiro, 7-Jan-2017.) $)
      ovmpt2df $p |- ( ph -> ( F = ( x e. C , y e. D |-> R ) -> ps ) ) $=
        ( wcel cv wceq cmpt2 nfv nfmpt21 nfeq nfim cvv wex elex syl isset sylib
        wi wa nfmpt22 co oveq simprl simprr oveq12d adantr eqeltrd adantrr eqid
        ovmpt4g syl3anc eqtr3d eqeq2d sylbid syl5 expr exlimd mpd exlimdd ) ACU
        AZEUBZJCDGHIUCZUBZBUNZCACUDVSBCCJVRPCDGHIUEUFQUGAEUHTZVQCUIAEGTZWALEGUJ
        UKCEULUMAVQUOZDUAZFUBZDUIZVTWCFUHTZWFWCFHTZWGMFHUJUKDFULUMWCWEVTDWCDUDV
        SBDDJVRRCDGHIUPUFSUGAVQWEVTVSEFJUQZEFVRUQZUBZAVQWEUOZUOZBEFJVRURWMWKWII
        UBBWMWJIWIWMVPWDVRUQZWJIWMVPEWDFVRAVQWEUSZAVQWEUTZVAWMVPGTWDHTIKTWNIUBW
        MVPEGWOAWBWLLVBVCWMWDFHWPAVQWHWEMVDVCNCDGHIVRKVRVEVFVGVHVIOVJVKVLVMVNVO
        $.
    $}

    $d x y F $.  $d x y ps $.
    $( Alternate deduction version of ~ ovmpt2 , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    ovmpt2dv $p |- ( ph -> ( F = ( x e. C , y e. D |-> R ) -> ps ) ) $=
      ( nfcv nfv ovmpt2df ) ABCDEFGHIJKLMNOCJPBCQDJPBDQR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ph $.  $d x y S $.
    ovmpt2dv2.1 $e |- ( ph -> A e. C ) $.
    ovmpt2dv2.2 $e |- ( ( ph /\ x = A ) -> B e. D ) $.
    ovmpt2dv2.3 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R e. V ) $.
    ovmpt2dv2.4 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R = S ) $.
    $( Alternate deduction version of ~ ovmpt2 , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    ovmpt2dv2 $p |- ( ph ->
      ( F = ( x e. C , y e. D |-> R ) -> ( A F B ) = S ) ) $=
      ( co wceq cv wa nfcv cmpt2 eqidd eqeq2d biimpd nfmpt21 nfov nfeq1 nfmpt22
      ovmpt2df mpd oveq eqeq1d syl5ibrcom ) ADEJPZIQJBCFGHUAZQZDEUOPZIQZAUOUOQU
      RAUOUBAURBCDEFGHUOKLMNABRDQCREQSSZUQHQURUSHIUQOUCUDBCFGHUEZBUQIBDEUOBDTUT
      BETUFUGBCFGHUHZCUQICDEUOCDTVACETUFUGUIUJUPUNUQIDEJUOUKULUM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y S $.
    ovmpt2g.1 $e |- ( x = A -> R = G ) $.
    ovmpt2g.2 $e |- ( y = B -> G = S ) $.
    ovmpt2g.3 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( Value of an operation given by a maps-to rule.  Special case.
       (Contributed by NM, 14-Sep-1999.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    ovmpt2g $p |- ( ( A e. C /\ B e. D /\ S e. H ) -> ( A F B ) = S ) $=
      ( cv wceq sylan9eq ovmpt2ga ) ABCDEFGHIKAOCPBODPGJHLMQNR $.

    ovmpt2.4 $e |- S e. _V $.
    $( Value of an operation given by a maps-to rule.  Special case.
       (Contributed by NM, 16-May-1995.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    ovmpt2 $p |- ( ( A e. C /\ B e. D ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq ovmpt2g mp3an3 ) CEODFOHPOCDIQHRNABCDEFGHIJPKLMST $.
  $}

  ${
    $d f t u v w x y z A $.  $d f t u v w x y z B $.  $d t F $.  $d x y z R $.
    $d f t u v w y z C $.  $d f t u v w y z D $.  $d f t u v w x y z H $.
    $d f t u v w z S $.
    ovi3.1 $e |- ( ( ( A e. H /\ B e. H ) /\ ( C e. H /\ D e. H ) ) ->
        S e. ( H X. H ) ) $.
    ovi3.2 $e |- ( ( ( w = A /\ v = B ) /\ ( u = C /\ f = D ) ) ->
         R = S ) $.
    ovi3.3 $e |- F = { <. <. x , y >. , z >. | ( ( x e. ( H X. H ) /\
                      y e. ( H X. H ) ) /\
                      E. w E. v E. u E. f ( ( x = <. w , v >. /\
                      y = <. u , f >. ) /\ z = R ) ) } $.
    $( The value of an operation class abstraction.  Special case.
       (Contributed by NM, 28-May-1995.)  (Revised by Mario Carneiro,
       29-Dec-2014.) $)
    ovi3 $p |- ( ( ( A e. H /\ B e. H ) /\ ( C e. H /\ D e. H ) ) ->
        ( <. A , B >. F <. C , D >. ) = S ) $=
      ( wa wex wcel cv wceq cop co cvv cxp elex syl isset sylib nfv nfcv coprab
      nfoprab3 nfcxfr nfov nfeq1 eqeq2d copsex4g opelxpi nfoprab1 nfim nfoprab2
      eqeq1 anbi1d 4exbidv oveq1 eqeq1d imbi12d anbi2d oveq2 moeq mosubop anass
      wi wmo 2exbii 19.42vv bitri mobii mpbir a1i ovidi vtocl2gaf sylbird eqeq2
      syl2an mpbidi exlimd mpd ) GOUAHOUASZIOUAJOUASZSZCUBZLUCZCTZGHUDZIJUDZNUE
      ZLUCZWNLUFUAZWQWNLOOUGZUAXBPLXCUHUICLUJUKWNWPXACWNCULCWTLCWRWSNCWRUMCNAUB
      ZXCUABUBZXCUASZXDDUBZEUBZUDZUCZXEFUBZMUBZUDZUCZSZWOKUCZSZMTFTZETDTZSZABCU
      NZRXTABCUOUPCWSUMUQURWPWTWOUCZXAWNWNWPWRXIUCZWSXMUCZSZXPSZMTFTETDTZYBXPWP
      DEFMGHIJOOXGGUCXHHUCSXKIUCXLJUCSSKLWOQUSUTWLWRXCUAWSXCUAYGYBVPZWMGHOOVAIJ
      OOVAXSXDXENUEZWOUCZVPYCXNSZXPSZMTFTETDTZWRXENUEZWOUCZVPYHABWRWSXCXCAWRUMZ
      BWRUMZBWSUMZYMYOAYMAULAYNWOAWRXENYPANYARXTABCVBUPAXEUMUQURVCYGYBBYGBULBWT
      WOBWRWSNYQBNYARXTABCVDUPYRUQURVCXDWRUCZXSYMYJYOYSXQYLDEFMYSXOYKXPYSXJYCXN
      XDWRXIVEVFVFVGYSYIYNWOXDWRXENVHVIVJXEWSUCZYMYGYOYBYTYLYFDEFMYTYKYEXPYTXNY
      DYCXEWSXMVEVKVFVGYTYNWTWOXEWSWRNVLVIVJXSABCXCXCNXSCVQZXFUUAXJXNXPSZMTFTZS
      ZETDTZCVQUUCCDEXDXPCFMXECKVMVNVNXSUUECXRUUDDEXRXJUUBSZMTFTUUDXQUUFFMXJXNX
      PVOVRXJUUBFMVSVTVRWAWBWCRWDWEWHWFWOLWTWGWIWJWK $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d w z R $.
    $d w x y z S $.
    ov6g.1 $e |- ( <. x , y >. = <. A , B >. -> R = S ) $.
    ov6g.2 $e |- F = { <. <. x , y >. , z >. | ( <. x , y >. e. C
                      /\ z = R ) } $.
    $( The value of an operation class abstraction.  Special case.
       (Contributed by NM, 13-Nov-2006.) $)
    ov6g $p |- ( ( ( A e. G /\ B e. H /\ <. A , B >. e. C ) /\ S e. J )
                     -> ( A F B ) = S ) $=
      ( vw wcel wa cv wceq wex cop w3a co cfv df-ov eqid biidd copsex2g 3adant3
      mpbiri adantr wi eqeq1 anbi1d eqeq2d eqcoms pm5.32i syl6bb 2exbidv anbi2d
      wb wmo moeq mosubop a1i coprab copab dfoprab2 eleq1 bitr3i 2exbii 19.42vv
      an12 bitri opabbii 3eqtri fvopab3ig 3ad2antl3 mpd syl5eq ) DJPZEKPZDEUAZF
      PZUBZHLPZQZDEIUCWCIUDZHDEIUEWGWCARZBRZUAZSZHHSZQZBTATZWHHSZWEWOWFWAWBWOWD
      WAWBQWOWMHUFWMWMABDEJKWIDSWJESQWMUGUHUJUIUKWDWAWFWOWPULWBORZWKSZCRZGSZQZB
      TATZWLWSHSZQZBTATWOOCWCHFLIWQWCSZXAXDABXEXAWLWTQXDXEWRWLWTWQWCWKUMUNWLWTX
      CWTXCVAWKWCWKWCSGHWSMUOUPUQURUSXCXDWNABXCXCWMWLWSHHUMUTUSXBCVBWQFPZWTCABW
      QCGVCVDVEIWKFPZWTQZABCVFWRXHQZBTATZOCVGXFXBQZOCVGNXHABCOVHXJXKOCXJXFXAQZB
      TATXKXIXLABXIWRXFWTQZQXLWRXMXHWRXFXGWTWQWKFVIUNUQWRXFWTVMVJVKXFXAABVLVNVO
      VPVQVRVSVT $.
  $}

  ${
    $d ph c $.  $d ps x $.  $d ch x y $.  $d th x y z $.  $d ta x y c $.
    $d R x y z c $.  $d S x y z c $.  $d A x y z c $.  $d B x y z c $.
    $d C x y z c $.
    ovg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ovg.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ovg.3 $e |- ( z = C -> ( ch <-> th ) ) $.
    ovg.4 $e |- ( ( ta /\ ( x e. R /\ y e. S ) ) -> E! z ph ) $.
    ovg.5 $e |- F = { <. <. x , y >. , z >. |
                                            ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction.  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    ovg $p |- ( ( ta /\ ( A e. R /\ B e. S /\ C e. D ) )
                                            -> ( ( A F B ) = C <-> th ) ) $=
      ( vc wcel w3a wa co wceq cop cv coprab df-ov fveq1i eqtri eqeq1i wb eqeq2
      cfv wi opeq2 eleq1d bibi12d imbi2d copab wfn weu wal ex alrimivv fnoprabg
      syl eleq1 anbi1d anbi2d opelopabg fnopfvb syl2an vtoclg com12 exp32 3imp2
      ibir anbi12d eloprabg adantl bitrd syl5bb biidd bianabs 3adant3 ) EIMUBZJ
      NUBZKLUBZUCZUDZIJOUEZKUFZWIWJUDZDUDZDWOIJUGZFUHZMUBZGUHZNUBZUDZAUDZFGHUIZ
      UPZKUFZWMWQWNXFKWNWROUPXFIJOUJWROXETUKULUMWMXGWRKUGZXEUBZWQEWIWJWKXGXIUNZ
      EWIWJWKXJUQWKEWPUDZXJXKXFUAUHZUFZWRXLUGZXEUBZUNZUQXKXJUQUAKLXLKUFZXPXJXKX
      QXMXGXOXIXLKXFUOXQXNXHXEXLKWRURUSUTVAEXEXCFGVBZVCZWRXRUBZXPWPEXCAHVDZUQZG
      VEFVEXSEYBFGEXCYASVFVGXCAFGHVHVIWPXTXCWIXBUDZWPFGIJMNWSIUFZWTWIXBWSIMVJVK
      ZXAJUFZXBWJWIXAJNVJVLZVMVTXRWRXLXEVNVOVPVQVRVSWLXIWQUNEXDYCBUDWPCUDWQFGHI
      JKMNLYDXCYCABYEPWAYFYCWPBCYGQWAHUHKUFCDWPRVLWBWCWDWEWLWQDUNZEWIWJYHWKWPWQ
      DWPWQWFWGWHWCWD $.
  $}

  $( The value of a restricted operation.  (Contributed by FL, 10-Nov-2006.) $)
  ovres $p |- ( ( A e. C /\ B e. D ) -> ( A ( F |` ( C X. D ) ) B )
    = ( A F B ) ) $=
    ( wcel wa cop cxp cres cfv co wceq opelxpi fvres syl df-ov 3eqtr4g ) ACFBDF
    GZABHZECDIZJZKZTEKZABUBLABELSTUAFUCUDMABCDNTUAEOPABUBQABEQR $.

  ${
    ovresd.1 $e |- ( ph -> A e. X ) $.
    ovresd.2 $e |- ( ph -> B e. X ) $.
    $( Lemma for converting metric theorems to metric space theorems.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    ovresd $p |- ( ph -> ( A ( D |` ( X X. X ) ) B ) = ( A D B ) ) $=
      ( wcel cxp cres co wceq ovres syl2anc ) ABEHCEHBCDEEIJKBCDKLFGBCEEDMN $.
  $}

  $( The value of a member of the domain of a subclass of an operation.
     (Contributed by NM, 23-Aug-2007.) $)
  oprssov $p |- ( ( ( Fun F /\ G Fn ( C X. D ) /\ G C_ F ) /\
        ( A e. C /\ B e. D ) ) -> ( A F B ) = ( A G B ) ) $=
    ( wfun cxp wfn wss w3a wcel wa cres co wceq ovres adantl cdm eqtr3d reseq2d
    fndm 3ad2ant2 funssres 3adant2 oveqd adantr ) EGZFCDHZIZFEJZKZACLBDLMZMABEU
    INZOZABEOZABFOZUMUOUPPULABCDEQRULUOUQPUMULUNFABULEFSZNZUNFUJUHUSUNPUKUJURUI
    EUIFUBUAUCUHUKUSFPUJEFUDUETUFUGT $.

  $( An operation's value belongs to its codomain.  (Contributed by NM,
     27-Aug-2006.) $)
  fovrn $p |- ( ( F : ( R X. S ) --> C /\ A e. R /\ B e. S ) ->
               ( A F B ) e. C ) $=
    ( cxp wf wcel co wa cop opelxpi cfv df-ov ffvelrn syl5eqel sylan2 3impb ) D
    EGZCFHZADIZBEIZABFJZCIZUBUCKUAABLZTIZUEABDEMUAUGKUDUFFNCABFOTCUFFPQRS $.

  ${
    fovrnd.1 $e |- ( ph -> F : ( R X. S ) --> C ) $.
    $( An operation's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    fovrnda $p |- ( ( ph /\ ( A e. R /\ B e. S ) ) -> ( A F B ) e. C ) $=
      ( wcel co cxp wf fovrn syl3an1 3expb ) ABEIZCFIZBCGJDIZAEFKDGLPQRHBCDEFGM
      NO $.

    fovrnd.2 $e |- ( ph -> A e. R ) $.
    fovrnd.3 $e |- ( ph -> B e. S ) $.
    $( An operation's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    fovrnd $p |- ( ph -> ( A F B ) e. C ) $=
      ( cxp wf wcel co fovrn syl3anc ) AEFKDGLBEMCFMBCGNDMHIJBCDEFGOP $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w z C $.  $d w x y z F $.
    $( The range of an operation expressed as a collection of the operation's
       values.  (Contributed by NM, 29-Oct-2006.) $)
    fnrnov $p |- ( F Fn ( A X. B ) -> ran F = { z | E. x e. A E. y e. B
                     z = ( x F y ) } ) $=
      ( vw cxp wfn crn cv cfv wceq wrex cab co fnrnfv cop fveq2 df-ov syl6eqr
      eqeq2d rexxp abbii syl6eq ) FDEHZIFJCKZGKZFLZMZGUFNZCOUGAKZBKZFPZMZBENADN
      ZCOGCUFFQUKUPCUJUOGABDEUHULUMRZMZUIUNUGURUIUQFLUNUHUQFSULUMFTUAUBUCUDUE
      $.

    $( An onto mapping of an operation expressed in terms of operation values.
       (Contributed by NM, 29-Oct-2006.) $)
    foov $p |- ( F : ( A X. B ) -onto-> C <-> ( F : ( A X. B ) --> C /\
                  A. z e. C E. x e. A E. y e. B z = ( x F y ) ) ) $=
      ( vw cxp wfo wf cv cfv wceq wrex wral wa co dffo3 cop fveq2 df-ov syl6eqr
      eqeq2d rexxp ralbii anbi2i bitri ) DEIZFGJUIFGKZCLZHLZGMZNZHUIOZCFPZQUJUK
      ALZBLZGRZNZBEOADOZCFPZQHCUIFGSUPVBUJUOVACFUNUTHABDEULUQURTZNZUMUSUKVDUMVC
      GMUSULVCGUAUQURGUBUCUDUEUFUGUH $.
  $}

  $( An operation's value belongs to its range.  (Contributed by NM,
     10-Feb-2007.) $)
  fnovrn $p |- ( ( F Fn ( A X. B ) /\ C e. A /\ D e. B ) ->
                   ( C F D ) e. ran F ) $=
    ( cxp wfn wcel co crn cop opelxpi cfv df-ov fnfvelrn syl5eqel sylan2 3impb
    wa ) EABFZGZCAHZDBHZCDEIZEJZHZUBUCSUACDKZTHZUFCDABLUAUHSUDUGEMUECDENTUGEOPQ
    R $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z F $.
    $( A member of an operation's range is a value of the operation.
       (Contributed by NM, 7-Feb-2007.)  (Revised by Mario Carneiro,
       30-Jan-2014.) $)
    ovelrn $p |- ( F Fn ( A X. B ) -> ( C e. ran F <->
                  E. x e. A E. y e. B C = ( x F y ) ) ) $=
      ( vz cxp wfn crn wcel cv co wceq wrex cab fnrnov cvv wi a1i eleq2d fnovex
      elex w3a eleq1 syl5ibrcom 3expb rexlimdvva eqeq1 2rexbidv elabg pm5.21ndd
      wb bitrd ) FCDHIZEFJZKEGLZALZBLZFMZNZBDOACOZGPZKZEUTNZBDOACOZUOUPVCEABGCD
      FQUAUOERKZVDVFVDVGSUOEVCUCTUOVEVGABCDUOURCKZUSDKZVEVGSUOVHVIUDVGVEUTRKURU
      SCDFUBEUTRUEUFUGUHVGVDVFUMSUOVBVFGERUQENVAVEABCDUQEUTUIUJUKTULUN $.

    $( Membership relation for the values of a function whose image is a
       subclass.  (Contributed by Mario Carneiro, 23-Dec-2013.) $)
    funimassov $p |- ( ( Fun F /\ ( A X. B ) C_ dom F ) ->
        ( ( F " ( A X. B ) ) C_ C <-> A. x e. A A. y e. B ( x F y ) e. C ) ) $=
      ( vz wfun cxp cdm wss wa cima cv cfv wcel wral co funimass4 cop syl6eqr
      wceq fveq2 df-ov eleq1d ralxp syl6bb ) FHCDIZFJKLFUHMEKGNZFOZEPZGUHQANZBN
      ZFRZEPZBDQACQGUHEFSUKUOGABCDUIULUMTZUBZUJUNEUQUJUPFOUNUIUPFUCULUMFUDUAUEU
      FUG $.

    $( Operation value in an image.  (Contributed by Mario Carneiro,
       23-Dec-2013.)  (Revised by Mario Carneiro, 29-Jan-2014.) $)
    ovelimab $p |- ( ( F Fn A /\ ( B X. C ) C_ A ) ->
        ( D e. ( F " ( B X. C ) ) <-> E. x e. B E. y e. C D = ( x F y ) ) ) $=
      ( vz wfn cxp wss wa cima wcel cv cfv wceq wrex co syl6bb fvelimab syl6eqr
      cop fveq2 df-ov eqeq1d eqcom rexxp ) GCIDEJZCKLFGUIMNHOZGPZFQZHUIRFAOZBOZ
      GSZQZBERADRHCUIFGUAULUPHABDEUJUMUNUCZQZULUOFQUPURUKUOFURUKUQGPUOUJUQGUDUM
      UNGUEUBUFUOFUGTUHT $.
  $}

  ${
    oprvalconst2.1 $e |- C e. _V $.
    $( The value of a constant operation.  (Contributed by NM, 5-Nov-2006.) $)
    ovconst2 $p |- ( ( R e. A /\ S e. B ) ->
                       ( R ( ( A X. B ) X. { C } ) S ) = C ) $=
      ( wcel wa cxp csn co cop cfv df-ov wceq opelxpi fvconst2 syl syl5eq ) DAG
      EBGHZDEABIZCJIZKDELZUBMZCDEUBNTUCUAGUDCODEABPUACUCFQRS $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d x y E $.  $d x y ph $.
    $d x y F $.
    caovclg.1 $e |- ( ( ph /\ ( x e. C /\ y e. D ) ) -> ( x F y ) e. E ) $.
    $( Convert an operation closure law to class notation.  (Contributed by
       Mario Carneiro, 26-May-2014.) $)
    caovclg $p |- ( ( ph /\ ( A e. C /\ B e. D ) ) -> ( A F B ) e. E ) $=
      ( cv co wcel wral wa ralrimivva wceq oveq1 eleq1d oveq2 rspc2v mpan9 ) AB
      KZCKZILZHMZCGNBFNDFMEGMODEILZHMZAUFBCFGJPUFUHDUDILZHMBCDEFGUCDQUEUIHUCDUD
      IRSUDEQUIUGHUDEDITSUAUB $.

    caovcld.2 $e |- ( ph -> A e. C ) $.
    caovcld.3 $e |- ( ph -> B e. D ) $.
    $( Convert an operation closure law to class notation.  (Contributed by
       Mario Carneiro, 30-Dec-2014.) $)
    caovcld $p |- ( ph -> ( A F B ) e. E ) $=
      ( wcel co id caovclg syl12anc ) AADFMEGMDEINHMAOKLABCDEFGHIJPQ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y F $.  $d x y ph $.  $d x y S $.
    caovcl.1 $e |- ( ( x e. S /\ y e. S ) -> ( x F y ) e. S ) $.
    $( Convert an operation closure law to class notation.  (Contributed by NM,
       4-Aug-1995.)  (Revised by Mario Carneiro, 26-May-2014.) $)
    caovcl $p |- ( ( A e. S /\ B e. S ) -> ( A F B ) e. S ) $=
      ( wtru wcel wa co tru cv adantl caovclg mpan ) HCEIDEIJCDFKEILHABCDEEEFAM
      ZEIBMZEIJQRFKEIHGNOP $.
  $}

  ${
    $( General laws for commutative, associative, distributive operations. $)
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z ph $.
    $d x y z F $.  $d x y z G $.  $d x y z H $.  $d x y z K $.  $d x y z R $.
    $d x y z S $.  $d x y z T $.
    ${
      caovcomg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                          ( x F y ) = ( y F x ) ) $.
      $( Convert an operation commutative law to class notation.  (Contributed
         by Mario Carneiro, 1-Jun-2013.) $)
      caovcomg $p |- ( ( ph /\ ( A e. S /\ B e. S ) ) ->
                        ( A F B ) = ( B F A ) ) $=
        ( cv co wceq wral wcel wa ralrimivva oveq1 oveq2 eqeq12d rspc2v mpan9 )
        ABIZCIZGJZUBUAGJZKZCFLBFLDFMEFMNDEGJZEDGJZKZAUEBCFFHOUEUHDUBGJZUBDGJZKB
        CDEFFUADKUCUIUDUJUADUBGPUADUBGQRUBEKUIUFUJUGUBEDGQUBEDGPRST $.

      caovcomd.2 $e |- ( ph -> A e. S ) $.
      caovcomd.3 $e |- ( ph -> B e. S ) $.
      $( Convert an operation commutative law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovcomd $p |- ( ph -> ( A F B ) = ( B F A ) ) $=
        ( wcel co wceq id caovcomg syl12anc ) AADFKEFKDEGLEDGLMANIJABCDEFGHOP
        $.
    $}

    ${
      caovcom.1 $e |- A e. _V $.
      caovcom.2 $e |- B e. _V $.
      caovcom.3 $e |- ( x F y ) = ( y F x ) $.
      $( Convert an operation commutative law to class notation.  (Contributed
         by NM, 26-Aug-1995.)  (Revised by Mario Carneiro, 1-Jun-2013.) $)
      caovcom $p |- ( A F B ) = ( B F A ) $=
        ( cvv wcel wa co wceq pm3.2i cv a1i caovcomg mp2an ) CIJZSDIJZKCDELDCEL
        MFSTFGNSABCDIEAOZBOZELUBUAELMSUAIJUBIJKKHPQR $.
    $}

    ${
      caovassg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
        ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
      $( Convert an operation associative law to class notation.  (Contributed
         by Mario Carneiro, 1-Jun-2013.)  (Revised by Mario Carneiro,
         26-May-2014.) $)
      caovassg $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. S ) ) ->
          ( ( A F B ) F C ) = ( A F ( B F C ) ) ) $=
        ( cv co wceq wral wcel oveq1 oveq1d eqeq12d oveq2 oveq2d rspc3v mpan9
        w3a ralrimivvva ) ABKZCKZILZDKZILZUEUFUHILZILZMZDHNCHNBHNEHOFHOGHOUCEFI
        LZGILZEFGILZILZMZAULBCDHHHJUDULUQEUFILZUHILZEUJILZMUMUHILZEFUHILZILZMBC
        DEFGHHHUEEMZUIUSUKUTVDUGURUHIUEEUFIPQUEEUJIPRUFFMZUSVAUTVCVEURUMUHIUFFE
        ISQVEUJVBEIUFFUHIPTRUHGMZVAUNVCUPUHGUMISVFVBUOEIUHGFISTRUAUB $.

      caovassd.2 $e |- ( ph -> A e. S ) $.
      caovassd.3 $e |- ( ph -> B e. S ) $.
      caovassd.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation associative law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovassd $p |- ( ph -> ( ( A F B ) F C ) = ( A F ( B F C ) ) ) $=
        ( wcel co wceq id caovassg syl13anc ) AAEHNFHNGHNEFIOGIOEFGIOIOPAQKLMAB
        CDEFGHIJRS $.
    $}

    ${
      caovass.1 $e |- A e. _V $.
      caovass.2 $e |- B e. _V $.
      caovass.3 $e |- C e. _V $.
      caovass.4 $e |- ( ( x F y ) F z ) = ( x F ( y F z ) ) $.
      $( Convert an operation associative law to class notation.  (Contributed
         by NM, 26-Aug-1995.)  (Revised by Mario Carneiro, 26-May-2014.) $)
      caovass $p |- ( ( A F B ) F C ) = ( A F ( B F C ) ) $=
        ( cvv wcel co wceq wtru w3a tru cv wa a1i caovassg mpan mp3an ) DLMZELM
        ZFLMZDEGNFGNDEFGNGNOZHIJPUEUFUGQUHRPABCDEFLGASZBSZGNCSZGNUIUJUKGNGNOPUI
        LMUJLMUKLMQTKUAUBUCUD $.
    $}

    ${
      caovcang.1 $e |- ( ( ph /\ ( x e. T /\ y e. S /\ z e. S ) ) ->
                         ( ( x F y ) = ( x F z ) <-> y = z ) ) $.
      $( Convert an operation cancellation law to class notation.  (Contributed
         by NM, 20-Aug-1995.)  (Revised by Mario Carneiro, 30-Dec-2014.) $)
      caovcang $p |- ( ( ph /\ ( A e. T /\ B e. S /\ C e. S ) ) ->
                       ( ( A F B ) = ( A F C ) <-> B = C ) ) $=
        ( cv co wceq wb wral wcel oveq1 oveq2 bibi12d ralrimivvva bibi1d eqeq1d
        w3a eqeq12d eqeq1 eqeq2d eqeq2 rspc3v mpan9 ) ABLZCLZJMZUKDLZJMZNZULUNN
        ZOZDHPCHPBIPEIQFHQGHQUDEFJMZEGJMZNZFGNZOZAURBCDIHHKUAURVCEULJMZEUNJMZNZ
        UQOUSVENZFUNNZOBCDEFGIHHUKENZUPVFUQVIUMVDUOVEUKEULJRUKEUNJRUEUBULFNZVFV
        GUQVHVJVDUSVEULFEJSUCULFUNUFTUNGNZVGVAVHVBVKVEUTUSUNGEJSUGUNGFUHTUIUJ
        $.

      caovcand.2 $e |- ( ph -> A e. T ) $.
      caovcand.3 $e |- ( ph -> B e. S ) $.
      caovcand.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation cancellation law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovcand $p |- ( ph -> ( ( A F B ) = ( A F C ) <-> B = C ) ) $=
        ( wcel co wceq wb id caovcang syl13anc ) AAEIOFHOGHOEFJPEGJPQFGQRASLMNA
        BCDEFGHIJKTUA $.

      caovcanrd.5 $e |- ( ph -> A e. S ) $.
      caovcanrd.6 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                          ( x F y ) = ( y F x ) ) $.
      $( Commute the arguments of an operation cancellation law.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovcanrd $p |- ( ph -> ( ( B F A ) = ( C F A ) <-> B = C ) ) $=
        ( co wceq caovcomd eqeq12d caovcand bitr3d ) AEFJQZEGJQZRFEJQZGEJQZRFGR
        AUCUEUDUFABCEFHJPOMSABCEGHJPONSTABCDEFGHIJKLMNUAUB $.
    $}

    ${
      caovcan.1 $e |- C e. _V $.
      caovcan.2 $e |- ( ( x e. S /\ y e. S ) ->
                   ( ( x F y ) = ( x F z ) -> y = z ) ) $.
      $( Convert an operation cancellation law to class notation.  (Contributed
         by NM, 20-Aug-1995.) $)
      caovcan $p |- ( ( A e. S /\ B e. S ) ->
                   ( ( A F B ) = ( A F C ) -> B = C ) ) $=
        ( cv co wceq wi oveq1 eqeq12d imbi1d oveq2 imbi12d wcel eqeq1d eqeq1 wa
        eqeq2d eqeq2 imbi2d vtocl vtocl2ga ) AKZBKZHLZUIFHLZMZUJFMZNZDUJHLZDFHL
        ZMZUNNDEHLZUQMZEFMZNABDEGGUIDMZUMURUNVBUKUPULUQUIDUJHOUIDFHOPQUJEMZURUT
        UNVAVCUPUSUQUJEDHRUAUJEFUBSUIGTUJGTUCZUKUICKZHLZMZUJVEMZNZNVDUONCFIVEFM
        ZVIUOVDVJVGUMVHUNVJVFULUKVEFUIHRUDVEFUJUESUFJUGUH $.
    $}

    ${
      caovordig.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                         ( x R y -> ( z F x ) R ( z F y ) ) ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         Mario Carneiro, 31-Dec-2014.) $)
      caovordig $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. S ) ) ->
                      ( A R B -> ( C F A ) R ( C F B ) ) ) $=
        ( cv wbr co wi wral wcel wceq oveq2 imbi12d w3a ralrimivvva breq1 breq2
        breq1d breq2d oveq1 breq12d imbi2d rspc3v mpan9 ) ABLZCLZHMZDLZULJNZUOU
        MJNZHMZOZDIPCIPBIPEIQFIQGIQUAEFHMZGEJNZGFJNZHMZOZAUSBCDIIIKUBUSVDEUMHMZ
        UOEJNZUQHMZOUTVFUOFJNZHMZOBCDEFGIIIULERZUNVEURVGULEUMHUCVJUPVFUQHULEUOJ
        SUETUMFRZVEUTVGVIUMFEHUDVKUQVHVFHUMFUOJSUFTUOGRZVIVCUTVLVFVAVHVBHUOGEJU
        GUOGFJUGUHUIUJUK $.

      caovordid.2 $e |- ( ph -> A e. S ) $.
      caovordid.3 $e |- ( ph -> B e. S ) $.
      caovordid.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         Mario Carneiro, 31-Dec-2014.) $)
      caovordid $p |- ( ph -> ( A R B -> ( C F A ) R ( C F B ) ) ) $=
        ( wcel wbr co wi id caovordig syl13anc ) AAEIOFIOGIOEFHPGEJQGFJQHPRASLM
        NABCDEFGHIJKTUA $.
    $}

    ${
      caovordg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                         ( x R y <-> ( z F x ) R ( z F y ) ) ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         NM, 19-Feb-1996.)  (Revised by Mario Carneiro, 30-Dec-2014.) $)
      caovordg $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. S ) ) ->
                      ( A R B <-> ( C F A ) R ( C F B ) ) ) $=
        ( cv wbr co wb wral wcel wceq oveq2 bibi12d w3a ralrimivvva breq1 breq2
        breq1d breq2d oveq1 breq12d bibi2d rspc3v mpan9 ) ABLZCLZHMZDLZULJNZUOU
        MJNZHMZOZDIPCIPBIPEIQFIQGIQUAEFHMZGEJNZGFJNZHMZOZAUSBCDIIIKUBUSVDEUMHMZ
        UOEJNZUQHMZOUTVFUOFJNZHMZOBCDEFGIIIULERZUNVEURVGULEUMHUCVJUPVFUQHULEUOJ
        SUETUMFRZVEUTVGVIUMFEHUDVKUQVHVFHUMFUOJSUFTUOGRZVIVCUTVLVFVAVHVBHUOGEJU
        GUOGFJUGUHUIUJUK $.

      caovordd.2 $e |- ( ph -> A e. S ) $.
      caovordd.3 $e |- ( ph -> B e. S ) $.
      caovordd.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         Mario Carneiro, 30-Dec-2014.) $)
      caovordd $p |- ( ph -> ( A R B <-> ( C F A ) R ( C F B ) ) ) $=
        ( wcel wbr co wb id caovordg syl13anc ) AAEIOFIOGIOEFHPGEJQGFJQHPRASLMN
        ABCDEFGHIJKTUA $.

      caovord2d.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                            ( x F y ) = ( y F x ) ) $.
      $( Operation ordering law with commuted arguments.  (Contributed by Mario
         Carneiro, 30-Dec-2014.) $)
      caovord2d $p |- ( ph -> ( A R B <-> ( A F C ) R ( B F C ) ) ) $=
        ( wbr co caovordd caovcomd breq12d bitrd ) AEFHPGEJQZGFJQZHPEGJQZFGJQZH
        PABCDEFGHIJKLMNRAUBUDUCUEHABCGEIJONLSABCGFIJONMSTUA $.

      caovord3d.5 $e |- ( ph -> D e. S ) $.
      $( Ordering law.  (Contributed by Mario Carneiro, 30-Dec-2014.) $)
      caovord3d $p |- ( ph ->
        ( ( A F B ) = ( C F D ) -> ( A R C <-> D R B ) ) ) $=
        ( co wbr wb wceq breq1 caovord2d caovordd bibi12d syl5ibr ) EFKRZGHKRZU
        AEGISZHFISZTAUGGFKRZISZUHUKISZTUGUHUKIUBAUIULUJUMABCDEGFIJKLMONPUCABCDH
        FGIJKLQNOUDUEUF $.
    $}

    ${
      caovord.1 $e |- A e. _V $.
      caovord.2 $e |- B e. _V $.
      caovord.3 $e |- ( z e. S -> ( x R y <-> ( z F x ) R ( z F y ) ) ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         NM, 19-Feb-1996.) $)
      caovord $p |- ( C e. S -> ( A R B <-> ( C F A ) R ( C F B ) ) ) $=
        ( wbr cv co wb wceq oveq1 wi oveq2 breq12d bibi2d wcel wa breq1 bibi12d
        breq1d breq2 breq2d sylan9bb imbi2d vtocl2 vtoclga ) DEGMZCNZDIOZUOEIOZ
        GMZPZUNFDIOZFEIOZGMZPCFHUOFQZURVBUNVCUPUTUQVAGUOFDIRUOFEIRUAUBUOHUCZANZ
        BNZGMZUOVEIOZUOVFIOZGMZPZSVDUSSABDEJKVEDQZVFEQZUDVKUSVDVLVKDVFGMZUPVIGM
        ZPVMUSVLVGVNVJVOVEDVFGUEVLVHUPVIGVEDUOITUGUFVMVNUNVOURVFEDGUHVMVIUQUPGV
        FEUOITUIUFUJUKLULUM $.

      $( (We don't bother to eliminate this redundant hypothesis.) $)
      caovord2.3 $e |- C e. _V $.
      caovord2.com $e |- ( x F y ) = ( y F x ) $.
      $( Operation ordering law with commuted arguments.  (Contributed by NM,
         27-Feb-1996.) $)
      caovord2 $p |- ( C e. S -> ( A R B <-> ( A F C ) R ( B F C ) ) ) $=
        ( wcel wbr co caovord caovcom breq12i syl6bb ) FHODEGPFDIQZFEIQZGPDFIQZ
        EFIQZGPABCDEFGHIJKLRUBUDUCUEGABFDIMJNSABFEIMKNSTUA $.

      $( (We don't bother to eliminate redundant hypotheses.) $)
      caovord3.4 $e |- D e. _V $.
      $( Ordering law.  (Contributed by NM, 29-Feb-1996.) $)
      caovord3 $p |- ( ( ( B e. S /\ C e. S ) /\
                ( A F B ) = ( C F D ) ) -> ( A R C <-> D R B ) ) $=
        ( wcel wa co wbr wceq wb caovord2 adantr breq1 sylan9bb ad2antlr bitr4d
        caovord ) EIQZFIQZRZDEJSZFGJSZUAZRDFHTZUNFEJSZHTZGEHTZULUPUMUQHTZUOURUJ
        UPUTUBUKABCDFEHIJKNMLOUCUDUMUNUQHUEUFUKUSURUBUJUOABCGEFHIJPLMUIUGUH $.
    $}

    ${
      caovdig.1 $e |- ( ( ph /\ ( x e. K /\ y e. S /\ z e. S ) ) ->
        ( x G ( y F z ) ) = ( ( x G y ) H ( x G z ) ) ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by NM, 25-Aug-1995.)  (Revised by Mario Carneiro, 26-Jul-2014.) $)
      caovdig $p |- ( ( ph /\ ( A e. K /\ B e. S /\ C e. S ) ) ->
        ( A G ( B F C ) ) = ( ( A G B ) H ( A G C ) ) ) $=
        ( cv co wceq wral wcel oveq1 eqeq12d oveq12d oveq2d oveq2 oveq1d rspc3v
        w3a ralrimivvva mpan9 ) ABNZCNZDNZIOZJOZUIUJJOZUIUKJOZKOZPZDHQCHQBLQELR
        FHRGHRUFEFGIOZJOZEFJOZEGJOZKOZPZAUQBCDLHHMUGUQVCEULJOZEUJJOZEUKJOZKOZPE
        FUKIOZJOZUTVFKOZPBCDEFGLHHUIEPZUMVDUPVGUIEULJSVKUNVEUOVFKUIEUJJSUIEUKJS
        UATUJFPZVDVIVGVJVLULVHEJUJFUKISUBVLVEUTVFKUJFEJUCUDTUKGPZVIUSVJVBVMVHUR
        EJUKGFIUCUBVMVFVAUTKUKGEJUCUBTUEUH $.

      caovdid.2 $e |- ( ph -> A e. K ) $.
      caovdid.3 $e |- ( ph -> B e. S ) $.
      caovdid.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovdid $p |- ( ph -> ( A G ( B F C ) ) = ( ( A G B ) H ( A G C ) ) ) $=
        ( wcel co wceq id caovdig syl13anc ) AAELQFHQGHQEFGIRJREFJREGJRKRSATNOP
        ABCDEFGHIJKLMUAUB $.
    $}

    ${
      caovdir2d.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
        ( x G ( y F z ) ) = ( ( x G y ) F ( x G z ) ) ) $.
      caovdir2d.2 $e |- ( ph -> A e. S ) $.
      caovdir2d.3 $e |- ( ph -> B e. S ) $.
      caovdir2d.4 $e |- ( ph -> C e. S ) $.
      caovdir2d.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                           ( x F y ) e. S ) $.
      caovdir2d.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                            ( x G y ) = ( y G x ) ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovdir2d $p |- ( ph
          -> ( ( A F B ) G C ) = ( ( A G C ) F ( B G C ) ) ) $=
        ( co caovdid caovcld caovcomd oveq12d 3eqtr4d ) AGEFIQZJQGEJQZGFJQZIQUC
        GJQEGJQZFGJQZIQABCDGEFHIJIHKNLMRABCUCGHJPABCEFHHHIOLMSNTAUFUDUGUEIABCEG
        HJPLNTABCFGHJPMNTUAUB $.
    $}

    ${
      caovdirg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. K ) ) ->
        ( ( x F y ) G z ) = ( ( x G z ) H ( y G z ) ) ) $.
      $( Convert an operation reverse distributive law to class notation.
         (Contributed by Mario Carneiro, 19-Oct-2014.) $)
      caovdirg $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. K ) ) ->
        ( ( A F B ) G C ) = ( ( A G C ) H ( B G C ) ) ) $=
        ( cv co wceq wral wcel oveq1 oveq2 w3a ralrimivvva oveq1d oveq2d rspc3v
        eqeq12d oveq12d mpan9 ) ABNZCNZIOZDNZJOZUIULJOZUJULJOZKOZPZDLQCHQBHQEHR
        FHRGLRUAEFIOZGJOZEGJOZFGJOZKOZPZAUQBCDHHLMUBUQVCEUJIOZULJOZEULJOZUOKOZP
        URULJOZVFFULJOZKOZPBCDEFGHHLUIEPZUMVEUPVGVKUKVDULJUIEUJISUCVKUNVFUOKUIE
        ULJSUCUFUJFPZVEVHVGVJVLVDURULJUJFEITUCVLUOVIVFKUJFULJSUDUFULGPZVHUSVJVB
        ULGURJTVMVFUTVIVAKULGEJTULGFJTUGUFUEUH $.

      caovdird.2 $e |- ( ph -> A e. S ) $.
      caovdird.3 $e |- ( ph -> B e. S ) $.
      caovdird.4 $e |- ( ph -> C e. K ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovdird $p |- ( ph -> ( ( A F B ) G C ) = ( ( A G C ) H ( B G C ) ) ) $=
        ( wcel co wceq id caovdirg syl13anc ) AAEHQFHQGLQEFIRGJREGJRFGJRKRSATNO
        PABCDEFGHIJKLMUAUB $.
    $}

    ${
      caovdi.1 $e |- A e. _V $.
      caovdi.2 $e |- B e. _V $.
      caovdi.3 $e |- C e. _V $.
      caovdi.4 $e |- ( x G ( y F z ) ) = ( ( x G y ) F ( x G z ) ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by NM, 25-Aug-1995.)  (Revised by Mario Carneiro, 28-Jun-2013.) $)
      caovdi $p |- ( A G ( B F C ) ) = ( ( A G B ) F ( A G C ) ) $=
        ( cvv wcel co wceq wtru w3a tru cv wa a1i caovdig mpan mp3an ) DMNZEMNZ
        FMNZDEFGOHODEHODFHOGOPZIJKQUFUGUHRUISQABCDEFMGHGMATZBTZCTZGOHOUJUKHOUJU
        LHOGOPQUJMNUKMNULMNRUALUBUCUDUE $.
    $}

    ${
      caovd.1 $e |- ( ph -> A e. S ) $.
      caovd.2 $e |- ( ph -> B e. S ) $.
      caovd.3 $e |- ( ph -> C e. S ) $.
      caovd.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
        ( x F y ) = ( y F x ) ) $.
      caovd.ass $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
        ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov32d $p |- ( ph -> ( ( A F B ) F C ) = ( ( A F C ) F B ) ) $=
        ( co caovcomd oveq2d caovassd 3eqtr4d ) AEFGIOZIOEGFIOZIOEFIOGIOEGIOFIO
        ATUAEIABCFGHIMKLPQABCDEFGHINJKLRABCDEGFHINJLKRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov12d $p |- ( ph -> ( A F ( B F C ) ) = ( B F ( A F C ) ) ) $=
        ( co caovcomd oveq1d caovassd 3eqtr3d ) AEFIOZGIOFEIOZGIOEFGIOIOFEGIOIO
        ATUAGIABCEFHIMJKPQABCDEFGHINJKLRABCDFEGHINKJLRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov31d $p |- ( ph -> ( ( A F B ) F C ) = ( ( C F B ) F A ) ) $=
        ( co caovcomd oveq1d caov32d 3eqtr4d ) AEGIOZFIOGEIOZFIOEFIOGIOGFIOEIOA
        TUAFIABCEGHIMJLPQABCDEFGHIJKLMNRABCDGFEHILKJMNRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov13d $p |- ( ph -> ( A F ( B F C ) ) = ( C F ( B F A ) ) ) $=
        ( co caov31d caovassd 3eqtr3d ) AEFIOGIOGFIOEIOEFGIOIOGFEIOIOABCDEFGHIJ
        KLMNPABCDEFGHINJKLQABCDGFEHINLKJQR $.

      ${
        caovd.4 $e |- ( ph -> D e. S ) $.
        caovd.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x F y ) e. S ) $.
        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
           30-Dec-2014.) $)
        caov4d $p |- ( ph -> ( ( A F B ) F ( C F D ) ) =
                             ( ( A F C ) F ( B F D ) ) ) $=
          ( co caovcld caovassd caov12d oveq2d 3eqtr4d ) AEFGHJRZJRZJREGFHJRZJR
          ZJREFJRUDJREGJRUFJRAUEUGEJABCDFGHIJLMPNOUAUBABCDEFUDIJOKLABCGHIIIJQMP
          STABCDEGUFIJOKMABCFHIIIJQLPSTUC $.

        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
           30-Dec-2014.) $)
        caov411d $p |- ( ph -> ( ( A F B ) F ( C F D ) ) =
                               ( ( C F B ) F ( A F D ) ) ) $=
          ( co caovcomd oveq1d caov4d 3eqtr3d ) AFEJRZGHJRZJRFGJRZEHJRZJREFJRZU
          DJRGFJRZUFJRABCDFEGHIJLKMNOPQUAAUCUGUDJABCFEIJNLKSTAUEUHUFJABCFGIJNLM
          STUB $.

        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
           30-Dec-2014.) $)
        caov42d $p |- ( ph -> ( ( A F B ) F ( C F D ) ) =
                              ( ( A F C ) F ( D F B ) ) ) $=
          ( co caov4d caovcomd oveq2d eqtrd ) AEFJRGHJRJREGJRZFHJRZJRUCHFJRZJRA
          BCDEFGHIJKLMNOPQSAUDUEUCJABCFHIJNLPTUAUB $.
      $}
    $}

    ${
      caov.1 $e |- A e. _V $.
      caov.2 $e |- B e. _V $.
      caov.3 $e |- C e. _V $.
      caov.com $e |- ( x F y ) = ( y F x ) $.
      caov.ass $e |- ( ( x F y ) F z ) = ( x F ( y F z ) ) $.
      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov32 $p |- ( ( A F B ) F C ) = ( ( A F C ) F B ) $=
        ( co caovcom oveq2i caovass 3eqtr4i ) DEFGMZGMDFEGMZGMDEGMFGMDFGMEGMRSD
        GABEFGIJKNOABCDEFGHIJLPABCDFEGHJILPQ $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov12 $p |- ( A F ( B F C ) ) = ( B F ( A F C ) ) $=
        ( co caovcom oveq1i caovass 3eqtr3i ) DEGMZFGMEDGMZFGMDEFGMGMEDFGMGMRSF
        GABDEGHIKNOABCDEFGHIJLPABCEDFGIHJLPQ $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov31 $p |- ( ( A F B ) F C ) = ( ( C F B ) F A ) $=
        ( co caovass caov12 eqtri caov32 eqtr3i 3eqtr4i ) DFGMEGMZFDEGMZGMZUAFG
        MFEGMZDGMZTDUCGMUBABCDFEGHJILNABCDFEGHJIKLOPABCDEFGHIJKLQFDGMEGMUDUBABC
        FDEGJHIKLQABCFDEGJHILNRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov13 $p |- ( A F ( B F C ) ) = ( C F ( B F A ) ) $=
        ( co caov31 caovass 3eqtr3i ) DEGMFGMFEGMDGMDEFGMGMFEDGMGMABCDEFGHIJKLN
        ABCDEFGHIJLOABCFEDGJIHLOP $.
    $}
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    $d r s t x y z ph $.  $d r s t x y z F $.  $d r s t x y z G $.
    $d x y z H $.  $d x y z K $.  $d x y z R $.  $d r s t x y z S $.
    $d x y z T $.
    caovdilemd.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x G y ) = ( y G x ) ) $.
    caovdilemd.distr $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
      ( ( x F y ) G z ) = ( ( x G z ) F ( y G z ) ) ) $.
    caovdilemd.ass $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
      ( ( x G y ) G z ) = ( x G ( y G z ) ) ) $.
    caovdilemd.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x G y ) e. S ) $.
    caovdilemd.a $e |- ( ph -> A e. S ) $.
    caovdilemd.b $e |- ( ph -> B e. S ) $.
    caovdilemd.c $e |- ( ph -> C e. S ) $.
    caovdilemd.d $e |- ( ph -> D e. S ) $.
    caovdilemd.h $e |- ( ph -> H e. S ) $.
    $( Lemma used by real number construction.  (Contributed by Jim Kingdon,
       16-Sep-2019.) $)
    caovdilemd $p |- ( ph -> ( ( ( A G C ) F ( B G D ) ) G H ) =
                     ( ( A G ( C G H ) ) F ( B G ( D G H ) ) ) ) $=
      ( co caovcld caovdird caovassd oveq12d eqtrd ) AEGKUBZFHKUBZJUBLKUBUHLKUB
      ZUILKUBZJUBEGLKUBKUBZFHLKUBKUBZJUBABCDUHUILIJKJINABCEGIIIKPQSUCABCFHIIIKP
      RTUCUAUDAUJULUKUMJABCDEGLIKOQSUAUEABCDFHLIKORTUAUEUFUG $.

    caovdl2.6 $e |- ( ph -> R e. S ) $.
    caovdl2.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x F y ) = ( y F x ) ) $.
    caovdl2.ass $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
      ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
    caovdl2.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x F y ) e. S ) $.
    $( Rearrangement of expression involving multiplication ( ` G ` ) and
       addition ( ` F ` ).  (Contributed by Jim Kingdon, 3-Jan-2020.) $)
    caovlem2d $p |- ( ph -> ( ( ( ( A G C ) F ( B G D ) ) G H ) F
          ( ( ( A G D ) F ( B G C ) ) G R ) ) =
        ( ( A G ( ( C G H ) F ( D G R ) ) ) F
          ( B G ( ( C G R ) F ( D G H ) ) ) ) ) $=
      ( vr vs vt co caovcld caov42d caovdilemd oveq12d cv wcel w3a wceq caovclg
      wa simpr1 3adantr1 caovcomg syldan 3anrot caovdirg sylan2b eqcomd ancom2s
      jca 3adantr3 3adantr2 3eqtrd caovdid 3eqtr4d ) AEGMLUJZLUJZFHMLUJZLUJZKUJ
      ZEHILUJZLUJZFGILUJZLUJZKUJZKUJVQWBKUJZWDVSKUJZKUJEGLUJFHLUJKUJMLUJZEHLUJF
      GLUJKUJILUJZKUJEVPWAKUJLUJZFWCVRKUJLUJZKUJABCDVQVSWBWDJKABCEVPJJJLQRABCGM
      JJJLQTUBUKZUKABCFVRJJJLQSABCHMJJJLQUAUBUKZUKABCEWAJJJLQRABCHIJJJLQUAUCUKZ
      UKUDUEABCFWCJJJLQSABCGIJJJLQTUCUKZUKUFULAWHVTWIWEKABCDEFGHJKLMNOPQRSTUAUB
      UMABCDEFHGJKLINOPQRSUATUCUMUNAWJWFWKWGKABCDEVPWAJKLKJABUOZJUPZCUOZJUPZDUO
      ZJUPZUQZUTZWPWRWTKUJZLUJZXDWPLUJZWRWPLUJZWTWPLUJZKUJZWPWRLUJZWPWTLUJZKUJA
      XBWQXDJUPZUTXEXFURXCWQXLAWQWSXAVAAWSXAXLWQAUGUHWRWTJJJKABCUGUOZUHUOZJJJKU
      FUSUSVBVJAUGUHWPXDJLABCXMXNJLNVCZVCVDXBAWSXAWQUQXFXIURWQWSXAVEAUGUHUIWRWT
      WPJKLKJABCDXMXNUIUOJKLKJOVFVFVGXCXGXJXHXKKAWQWSXGXJURXAAWQWSUTUTXJXGNVHVK
      AWQXAXHXKURZWSAXAWQXPAUGUHWTWPJLXOVCVIVLUNVMZRWLWNVNABCDFWCVRJKLKJXQSWOWM
      VNUNVO $.
  $}

  ${
    $d A v w x y z $.  $d B v w x y $.  $d F v w x y z $.  $d S v w x y z $.
    caovimo.idel $e |- B e. S $.
    caovimo.com $e |- ( ( x e. S /\ y e. S ) -> ( x F y ) = ( y F x ) ) $.
    caovimo.ass $e |- ( ( x e. S /\ y e. S /\ z e. S ) ->
      ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
    caovimo.id $e |- ( x e. S -> ( x F B ) = x ) $.
    $( Uniqueness of inverse element in commutative, associative operation with
       identity.  The identity element is ` B ` .  (Contributed by Jim Kingdon,
       18-Sep-2019.) $)
    caovimo $p |- ( A e. S -> E* w ( w e. S /\ ( A F w ) = B ) ) $=
      ( vv wcel cv co wceq wa w3a adantl wi wal wmo oveq1 3ad2ant2 df-3an simp1
      simp2 simp3 caovassd caov12d eqtrd adantr oveq2 eqeq12d vtoclga sylan9eqr
      id 3ad2antl2 sylanbr anasss 3adant2r a1i caovcomd 3ad2ant3 3eqtr3d 3expib
      3impa alrimivv eleq1 eqeq1d anbi12d mo4 sylibr ) EGNZDOZGNZEVPHPZFQZRZMOZ
      GNZEWAHPZFQZRZRVPWAQZUAZMUBDUBVTDUCVOWGDMVOVTWEWFVOVTWESVRWAHPZFWAHPZVPWA
      VTVOWHWIQZWEVSWJVQVRFWAHUDTUEVOVQWEWHVPQZVSVOVQWEWKVOVQRZWBWDWKWLWBRVOVQW
      BSZWDWKVOVQWBUFWMWDRWHVPWCHPZVPWMWHWNQWDWMWHEVPWAHPHPWNWMABCEVPWAGHAOZGNZ
      BOZGNZCOZGNSWOWQHPZWSHPWOWQWSHPHPQWMKTZVOVQWBUGZVOVQWBUHZVOVQWBUIZUJWMABC
      EVPWAGHXBXCXDWPWRRZWTWQWOHPQZWMJTXAUKULUMVQVOWDWNVPQWBWDVQWNVPFHPZVPWCFVP
      HUNWOFHPZWOQZXGVPQAVPGWOVPQZXHXGWOVPWOVPFHUDXJURUOLUPUQUSULUTVAVHVBWEVOWI
      WAQZVTWBXKWDWBWIWAFHPZWAWBABFWAGHXEXFWBJTFGNWBIVCWBURVDXIXLWAQAWAGWOWAQZX
      HXLWOWAWOWAFHUDXMURUOLUPULUMVEVFVGVIVTWEDMWFVQWBVSWDVPWAGVJWFVRWCFVPWAEHU
      NVKVLVMVN $.
  $}

  ${
    $d n u v w x y z B $.  $d n u v w x y z O $.  $d n u v w x y z ph $.
    $d u v w y z N $.  $d n u v w x y z .+ $.  $d u v w y z X $.
    $d u v w y ps $.
    grprinvlem.c $e |- ( ( ph /\ x e. B /\ y e. B ) -> ( x .+ y ) e. B ) $.
    grprinvlem.o $e |- ( ph -> O e. B ) $.
    grprinvlem.i $e |- ( ( ph /\ x e. B ) -> ( O .+ x ) = x ) $.
    grprinvlem.a $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) )
          -> ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    grprinvlem.n $e |- ( ( ph /\ x e. B ) -> E. y e. B ( y .+ x ) = O ) $.
    ${
      grprinvlem.x $e |- ( ( ph /\ ps ) -> X e. B ) $.
      grprinvlem.e $e |- ( ( ph /\ ps ) -> ( X .+ X ) = X ) $.
      $( Lemma for ~ grprinvd .  (Contributed by NM, 9-Aug-2013.) $)
      grprinvlem $p |- ( ( ph /\ ps ) -> X = O ) $=
        ( cv co wceq wcel vu vv vw wa wrex wral ralrimiva oveq2 rexbidv cbvralv
        eqeq1d sylib rspccva syldan oveq2d adantr simprr oveq1d simpll caovassg
        sylan w3a simprl caovassd id eqeq12d rspcv sylc 3eqtr3d rexlimddv ) ABU
        DZDQZIGRZHSZIHSDFABIFTZVNDFUEZOAVLEQZGRZHSZDFUEZEFUFZVOVPAVLCQZGRZHSZDF
        UEZCFUFWAAWECFNUGWEVTCEFWBVQSZWDVSDFWFWCVRHWBVQVLGUHUKUIUJULVTVPEIFVQIS
        ZVSVNDFWGVRVMHVQIVLGUHUKUIUMVAUNVKVLFTZVNUDZUDZVLIIGRZGRZVMIHVKWLVMSWIV
        KWKIVLGPUOUPWJVMIGRHIGRZWLIWJVMHIGVKWHVNUQZURWJUAUBUCVLIIFGWJAUAQZFTUBQ
        ZFTUCQZFTVBWOWPGRWQGRWOWPWQGRGRSABWIUSACDEWOWPWQFGMUTVAVKWHVNVCVKVOWIOU
        PZWRVDVKWMISZWIVKVOHVLGRZVLSZDFUFZWSOAXBBAHWBGRZWBSZCFUFXBAXDCFLUGXDXAC
        DFWBVLSZXCWTWBVLWBVLHGUHXEVEVFUJULUPXAWSDIFVLISZWTWMVLIVLIHGUHXFVEVFVGV
        HUPVIWNVIVJ $.
    $}

    ${
      grprinvd.x $e |- ( ( ph /\ ps ) -> X e. B ) $.
      grprinvd.n $e |- ( ( ph /\ ps ) -> N e. B ) $.
      grprinvd.e $e |- ( ( ph /\ ps ) -> ( N .+ X ) = O ) $.
      $( Deduce right inverse from left inverse and left identity in an
         associative structure (such as a group).  (Contributed by NM,
         10-Aug-2013.)  (Proof shortened by Mario Carneiro, 6-Jan-2015.) $)
      grprinvd $p |- ( ( ph /\ ps ) -> ( X .+ N ) = O ) $=
        ( co wcel vu vv vw wa cv caovclg adantlr caovcld wceq caovassg caovassd
        3expb oveq1d wral ralrimiva oveq2 id eqeq12d cbvralv sylib adantr rspcv
        w3a sylc 3eqtr3d oveq2d eqtrd grprinvlem ) ABCDEFGIJHGSZKLMNOABUDZUAUBJ
        HFFFGAUAUEZFTZUBUEZFTZUDVKVMGSZFTBACDVKVMFFFGACUEZFTDUEZFTVPVQGSFTKULUF
        UGPQUHZVJVIVIGSJHVIGSZGSVIVJUAUBUCJHVIFGAVLVNUCUEZFTVCVOVTGSVKVMVTGSGSU
        IBACDEVKVMVTFGNUJUGZPQVRUKVJVSHJGVJHJGSZHGSIHGSZVSHVJWBIHGRUMVJUAUBUCHJ
        HFGWAQPQUKVJHFTIVQGSZVQUIZDFUNZWCHUIZQAWFBAIVPGSZVPUIZCFUNWFAWICFMUOWIW
        ECDFVPVQUIZWHWDVPVQVPVQIGUPWJUQURUSUTVAWEWGDHFVQHUIZWDWCVQHVQHIGUPWKUQU
        RVBVDVEVFVGVH $.
    $}

    $( Deduce right identity from left inverse and left identity in an
       associative structure (such as a group).  (Contributed by NM,
       10-Aug-2013.)  (Proof shortened by Mario Carneiro, 6-Jan-2015.) $)
    grpridd $p |- ( ( ph /\ x e. B ) -> ( x .+ O ) = x ) $=
      ( vn vu vv cv wcel wa co wceq vw wrex oveq1 eqeq1d cbvrexv sylib caovassg
      w3a adantlr simprl simprrl caovassd simprrr oveq1d oveq2d 3eqtr3d anassrs
      grprinvd rexlimddv eqtr3d ) ABPZEQZRZGVAFSZVAGFSZVAVCMPZVAFSZGTZVDVETZMEV
      CCPZVAFSZGTZCEUBVHMEUBLVLVHCMEVJVFTVKVGGVJVFVAFUCUDUEUFAVBVFEQZVHRZVIAVBV
      NRZRZVAVFFSZVAFSVAVGFSVDVEVPNOUAVAVFVAEFANPZEQOPZEQUAPZEQUHVRVSFSVTFSVRVS
      VTFSFSTVOABCDVRVSVTEFKUGUIAVBVNUJZAVBVMVHUKZWAULVPVQGVAFAVOBCDEFVFGVAHIJK
      LWAWBAVBVMVHUMZURUNVPVGGVAFWCUOUPUQUSJUT $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        "Maps to" notation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y z $.  $d B x y z $.  $d C z $.
    elmpt2cl.f $e |- F = ( x e. A , y e. B |-> C ) $.
    $( If a two-parameter class is not empty, constrain the implicit pair.
       (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    elmpt2cl $p |- ( X e. ( S F T ) -> ( S e. A /\ T e. B ) ) $=
      ( vz co wcel cop cxp wa cdm cv wceq coprab cmpt2 df-mpt2 eqtri dmeqi wrel
      dmoprabss eqsstri wfun mpt2fun funrel ax-mp relelfvdm df-ov eleq2s sseldi
      cfv mpan opelxp sylib ) IFGHLZMZFGNZCDOZMFCMGDMPVAHQZVCVBVDARCMBRDMPKRESZ
      PABKTZQVCHVFHABCDEUAVFJABKCDEUBUCUDVEABKCDUFUGVBVDMZIVBHUPZUTHUEZIVHMVGHU
      HVIABCDEHJUIHUJUKIVBHULUQFGHUMUNUOFGCDURUS $.

    $( If a two-parameter class is not empty, the first argument is in its
       nominal domain.  (Contributed by FL, 15-Oct-2012.)  (Revised by Stefan
       O'Rear, 7-Mar-2015.) $)
    elmpt2cl1 $p |- ( X e. ( S F T ) -> S e. A ) $=
      ( co wcel elmpt2cl simpld ) IFGHKLFCLGDLABCDEFGHIJMN $.

    $( If a two-parameter class is not empty, the second argument is in its
       nominal domain.  (Contributed by FL, 15-Oct-2012.)  (Revised by Stefan
       O'Rear, 7-Mar-2015.) $)
    elmpt2cl2 $p |- ( X e. ( S F T ) -> T e. B ) $=
      ( co wcel elmpt2cl simprd ) IFGHKLFCLGDLABCDEFGHIJMN $.
  $}

  ${
    $d A a b $.  $d B a b $.  $d E a b $.  $d F a b $.  $d X a b $.
    $d Y a b $.  $d V a b $.
    elovmpt2.d $e |- D = ( a e. A , b e. B |-> C ) $.
    elovmpt2.c $e |- C e. _V $.
    elovmpt2.e $e |- ( ( a = X /\ b = Y ) -> C = E ) $.
    $( Utility lemma for two-parameter classes.  (Contributed by Stefan O'Rear,
       21-Jan-2015.) $)
    elovmpt2 $p |- ( F e. ( X D Y ) <-> ( X e. A /\ Y e. B /\ F e. E ) ) $=
      ( co wcel wa cvv wceq wal cv w3a elmpt2cl gen2 eleq1d spc2gv mpi ovmpt2ga
      mpd3an3 eleq2d biadan2 df-3an bitr4i ) FGHDNZOZGAOZHBOZPZFEOZPUOUPURUAUNU
      QURIJABCGHDFKUBUQUMEFUOUPEQOZUMERUQCQOZJSISUSUTIJLUCUTUSIJGHABITGRJTHRPCE
      QMUDUEUFIJGHABCEDQMKUGUHUIUJUOUPURUKUL $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d x y ph $.
    f1od.1 $e |- F = ( x e. A |-> C ) $.
    ${
      f1od.2 $e |- ( ( ph /\ x e. A ) -> C e. W ) $.
      f1od.3 $e |- ( ( ph /\ y e. B ) -> D e. X ) $.
      f1od.4 $e |- ( ph -> ( ( x e. A /\ y = C ) <-> ( y e. B /\ x = D ) ) ) $.
      $( Describe an implicit one-to-one onto function.  (Contributed by Mario
         Carneiro, 30-Apr-2015.) $)
      f1ocnvd $p |- ( ph ->
        ( F : A -1-1-onto-> B /\ `' F = ( y e. B |-> D ) ) ) $=
        ( ccnv cmpt wceq wfn wcel copab wf1o wral ralrimiva fnmpt eqid opabbidv
        cv wa df-mpt eqtri cnveqi cnvopab 3eqtr4g fneq1d mpbird dff1o4 sylanbrc
        syl jca ) ADEHUAZHOZCEGPZQAHDRZVAERZUTAFISZBDUBVCAVEBDLUCBDFHIKUDURAVDV
        BERZAGJSZCEUBVFAVGCEMUCCEGVBJVBUEUDURAEVAVBABUGZDSCUGZFQUHZCBTZVIESVHGQ
        UHZCBTVAVBAVJVLCBNUFVAVJBCTZOVKHVMHBDFPVMKBCDFUIUJUKVJBCULUJCBEGUIUMZUN
        UODEHUPUQVNUS $.

      $( Describe an implicit one-to-one onto function.  (Contributed by Mario
         Carneiro, 12-May-2014.) $)
      f1od $p |- ( ph -> F : A -1-1-onto-> B ) $=
        ( wf1o ccnv cmpt wceq f1ocnvd simpld ) ADEHOHPCEGQRABCDEFGHIJKLMNST $.
    $}

    f1o2d.2 $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    f1o2d.3 $e |- ( ( ph /\ y e. B ) -> D e. A ) $.
    f1o2d.4 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) ->
                    ( x = D <-> y = C ) ) $.
    $( Describe an implicit one-to-one onto function.  (Contributed by Mario
       Carneiro, 30-Apr-2015.) $)
    f1ocnv2d $p |- ( ph ->
      ( F : A -1-1-onto-> B /\ `' F = ( y e. B |-> D ) ) ) $=
      ( cv wcel wceq wa wi eleq1a syl impr biimpar exp42 com34 imp32 jcai com23
      biimpa impbida f1ocnvd ) ABCDEFGHEDIJKABMZDNZCMZFOZPZULENZUJGOZPZAUNPUOUP
      AUKUMUOAUKPFENUMUOQJFEULRSTAUKUMUOUPQAUKUOUMUPAUKUOUMUPAUKUOPPZUPUMLUAUBU
      CUDUEAUQPUKUMAUOUPUKAUOPGDNUPUKQKGDUJRSTAUOUPUKUMQAUOUKUPUMAUKUOUPUMQAUKU
      OUPUMURUPUMLUGUBUFUCUDUEUHUI $.

    $( Describe an implicit one-to-one onto function.  (Contributed by Mario
       Carneiro, 12-May-2014.) $)
    f1o2d $p |- ( ph -> F : A -1-1-onto-> B ) $=
      ( wf1o ccnv cmpt wceq f1ocnv2d simpld ) ADEHMHNCEGOPABCDEFGHIJKLQR $.
  $}

  ${
    $d a b A $.  $d a b B $.  $d a b F $.  $d a b ph $.
    f1opw2.1 $e |- ( ph -> F : A -1-1-onto-> B ) $.
    f1opw2.2 $e |- ( ph -> ( `' F " a ) e. _V ) $.
    f1opw2.3 $e |- ( ph -> ( F " b ) e. _V ) $.
    $( A one-to-one mapping induces a one-to-one mapping on power sets.  This
       version of ~ f1opw avoids the Axiom of Replacement.  (Contributed by
       Mario Carneiro, 26-Jun-2015.) $)
    f1opw2 $p |- ( ph ->
        ( b e. ~P A |-> ( F " b ) ) : ~P A -1-1-onto-> ~P B ) $=
      ( cpw cv cima wcel wss crn imassrn wceq syl cvv adantr ccnv cmpt eqid wfo
      wf1o f1ofo forn syl5sseq wb elpwg mpbird cdm dfdm4 f1odm syl5eqr wa elpwi
      adantl foimacnv syl2an eqcomd imaeq2 eqeq2d syl5ibrcom wf1 f1of1 f1imacnv
      impbid f1o2d ) AFEBJZCJZDFKZLZDUAZEKZLZFVJVMUBZVQUCAVMVKMZVLVJMZAVRVMCNZA
      DOZVMCDVLPABCDUDZWACQABCDUEZWBGBCDUFRZBCDUGRUHAVMSMVRVTUIIVMCSUJRUKTAVPVJ
      MZVOVKMZAWEVPBNZAVNOZVPBVNVOPAWHDULZBDUMAWCWIBQGBCDUNRUOUHAVPSMWEWGUIHVPB
      SUJRUKTAVSWFUPZUPZVLVPQZVOVMQZWKWMWLVODVPLZQWKWNVOAWBVOCNZWNVOQWJWDWFWOVS
      VOCUQURBCVODUSUTVAWLVMWNVOVLVPDVBVCVDWKWLWMVLVNVMLZQWKWPVLABCDVEZVLBNZWPV
      LQWJAWCWQGBCDVFRVSWRWFVLBUQTBCVLDVGUTVAWMVPWPVLVOVMVNVBVCVDVHVI $.
  $}

  ${
    $d a b A $.  $d a b B $.  $d a b F $.
    $( A one-to-one mapping induces a one-to-one mapping on power sets.
       (Contributed by Stefan O'Rear, 18-Nov-2014.)  (Revised by Mario
       Carneiro, 26-Jun-2015.) $)
    f1opw $p |- ( F : A -1-1-onto-> B -> ( b e. ~P A |-> ( F " b ) ) :
          ~P A -1-1-onto-> ~P B ) $=
      ( va wf1o id ccnv wfun cv cima cvv wfo dff1o3 simprbi vex funimaex f1ofun
      wcel syl f1opw2 ) ABCFZABCEDUBGUBCHZIZUCEJZKLSUBABCMUDABCNOUCUEEPQTUBCICD
      JZKLSABCRCUFDPQTUA $.
  $}

  ${
    $d ph x $.  $d Y x $.  $d Z x $.
    suppssfv.a $e |- ( ph -> ( `' ( x e. D |-> A ) " ( _V \ { Y } ) ) C_ L ) $.
    suppssfv.f $e |- ( ph -> ( F ` Y ) = Z ) $.
    suppssfv.v $e |- ( ( ph /\ x e. D ) -> A e. V ) $.
    $( Formula building theorem for support restriction, on a function which
       preserves zero.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    suppssfv $p |- ( ph -> ( `' ( x e. D |-> ( F ` A ) ) "
            ( _V \ { Z } ) ) C_ L ) $=
      ( cfv cmpt ccnv cvv csn cdif wcel wceq cima crab wne cv eldifsni elex syl
      wa adantr wi fveq2 eqeq1d syl5ibrcom necon3d imp eldifsn sylanbrc ex syl5
      ss2rabdv eqid mptpreima 3sstr4g sstrd ) ABDCEMZNZOPIQRZUAZBDCNZOPHQRZUAZF
      AVEVGSZBDUBCVJSZBDUBVHVKAVLVMBDVLVEIUCZABUDDSZUHZVMVEPIUEVPVNVMVPVNUHCPSZ
      CHUCZVMVPVQVNVPCGSVQLCGUFUGUIVPVNVRAVNVRUJVOACHVEIAVEITCHTZHEMZITKVSVEVTI
      CHEUKULUMUNUIUOCPHUPUQURUSUTBDVEVGVFVFVAVBBDCVJVIVIVAVBVCJVD $.
  $}

  ${
    $d ph v $.  $d ph x $.  $d B v $.  $d O v $.  $d R v $.  $d Y v $.
    $d Y x $.  $d Z v $.  $d Z x $.
    suppssov1.s $e |- ( ph ->
        ( `' ( x e. D |-> A ) " ( _V \ { Y } ) ) C_ L ) $.
    suppssov1.o $e |- ( ( ph /\ v e. R ) -> ( Y O v ) = Z ) $.
    suppssov1.a $e |- ( ( ph /\ x e. D ) -> A e. V ) $.
    suppssov1.b $e |- ( ( ph /\ x e. D ) -> B e. R ) $.
    $( Formula building theorem for support restrictions: operator with left
       annihilator.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    suppssov1 $p |- ( ph -> ( `' ( x e. D |-> ( A O B ) ) "
            ( _V \ { Z } ) ) C_ L ) $=
      ( co cvv wcel wceq cmpt ccnv csn cdif cima crab cv wa wne elex syl adantr
      eldifsni wral ralrimiva oveq2 eqeq1d rspcva syl2anc oveq1 syl5ibrcom syl5
      necon3d imp eldifsn sylanbrc ex ss2rabdv eqid mptpreima 3sstr4g sstrd ) A
      BFDEIQZUAZUBRLUCUDZUEZBFDUAZUBRKUCUDZUEZHAVMVOSZBFUFDVRSZBFUFVPVSAVTWABFA
      BUGFSZUHZVTWAWCVTUHDRSZDKUIZWAWCWDVTWCDJSWDODJUJUKULWCVTWEVTVMLUIWCWEVMRL
      UMWCDKVMLWCVMLTDKTZKEIQZLTZWCEGSKCUGZIQZLTZCGUNZWHPAWLWBAWKCGNUOULWKWHCEG
      WIETWJWGLWIEKIUPUQURUSWFVMWGLDKEIUTUQVAVCVBVDDRKVEVFVGVHBFVMVOVNVNVIVJBFD
      VRVQVQVIVJVKMVL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                             Function operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c oF $.
  $c oR $.

  $( Extend class notation to include mapping of an operation to a function
     operation. $)
  cof $a class oF R $.

  $( Extend class notation to include mapping of a binary relation to a
     function relation. $)
  cofr $a class oR R $.

  ${
    $d f g x R $.
    $( Define the function operation map.  The definition is designed so that
       if ` R ` is a binary operation, then ` oF R ` is the analogous operation
       on functions which corresponds to applying ` R ` pointwise to the values
       of the functions.  (Contributed by Mario Carneiro, 20-Jul-2014.) $)
    df-of $a |- oF R = ( f e. _V , g e. _V |->
     ( x e. ( dom f i^i dom g ) |-> ( ( f ` x ) R ( g ` x ) ) ) ) $.

    $( Define the function relation map.  The definition is designed so that if
       ` R ` is a binary relation, then ` oF R ` is the analogous relation on
       functions which is true when each element of the left function relates
       to the corresponding element of the right function.  (Contributed by
       Mario Carneiro, 28-Jul-2014.) $)
    df-ofr $a |- oR R = { <. f , g >. |
      A. x e. ( dom f i^i dom g ) ( f ` x ) R ( g ` x ) } $.
  $}

  ${
    $d f g x y R $.  $d f g x y S $.
    $( Equality theorem for function operation.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    ofeq $p |- ( R = S -> oF R = oF S ) $=
      ( vf vg vx wceq cvv cv cdm cin cfv co cmpt cmpt2 cof wcel w3a simp1 oveqd
      df-of mpteq2dv mpt2eq3dva 3eqtr4g ) ABFZCDGGECHZIDHZIJZEHZUEKZUHUFKZALZMZ
      NCDGGEUGUIUJBLZMZNAOBOUDCDGGULUNUDUEGPZUFGPZQZEUGUKUMUQABUIUJUDUOUPRSUAUB
      EACDTEBCDTUC $.

    $( Equality theorem for function relation.  (Contributed by Mario Carneiro,
       28-Jul-2014.) $)
    ofreq $p |- ( R = S -> oR R = oR S ) $=
      ( vx vf vg wceq cv cfv wbr cdm cin wral cofr breq ralbidv opabbidv df-ofr
      copab 3eqtr4g ) ABFZCGZDGZHZUAEGZHZAIZCUBJUDJKZLZDERUCUEBIZCUGLZDERAMBMTU
      HUJDETUFUICUGUCUEABNOPCADEQCBDEQS $.

    $( A function operation restricted to a set is a set.  (Contributed by NM,
       28-Jul-2014.) $)
    ofexg $p |- ( A e. V -> ( oF R |` A ) e. _V ) $=
      ( vf vg vx cof wfun wcel cres cvv cv cdm cin cmpt df-of mpt2fun resfunexg
      cfv co mpan ) BGZHACIUBAJKIDEKKFDLZMELZMNFLZUCSUEUDSBTOUBFBDEPQUBACRUA $.

    nfof.1 $e |- F/_ x R $.
    $( Hypothesis builder for function operation.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    nfof $p |- F/_ x oF R $=
      ( cof nfcv ) ABDE $.

    $( Hypothesis builder for function relation.  (Contributed by Mario
       Carneiro, 28-Jul-2014.) $)
    nfofr $p |- F/_ x oR R $=
      ( cofr nfcv ) ABDE $.
  $}

  ${
    $d x A $.  $d f g x F $.  $d f g x G $.  $d x ph $.  $d x S $.  $d x X $.
    $d f g x R $.
    offval.1 $e |- ( ph -> F Fn A ) $.
    offval.2 $e |- ( ph -> G Fn B ) $.
    offval.3 $e |- ( ph -> A e. V ) $.
    offval.4 $e |- ( ph -> B e. W ) $.
    offval.5 $e |- ( A i^i B ) = S $.
    ${
      offval.6 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = C ) $.
      offval.7 $e |- ( ( ph /\ x e. B ) -> ( G ` x ) = D ) $.
      $( Value of an operation applied to two functions.  (Contributed by Mario
         Carneiro, 20-Jul-2014.) $)
      offval $p |- ( ph -> ( F oF R G ) = ( x e. S |-> ( C R D ) ) ) $=
        ( cvv vf vg cof co cdm cin cfv cmpt wcel wceq wfn fnex syl2anc fndm syl
        cv ineq12d syl6eq mpteq1d inex1g syl5eqelr mptexg 3syl eqeltrd wa fveq1
        dmeq ineqan12d oveqan12d mpteq12dv df-of ovmpt2ga syl3anc eleq2i bitr3i
        elin adantrr adantrl oveq12d sylan2b mpteq2dva 3eqtrd ) AIJGUCZUDZBIUEZ
        JUEZUFZBUPZIUGZWHJUGZGUDZUHZBHWKUHZBHEFGUDZUHAITUIZJTUIZWLTUIWDWLUJAICU
        KZCKUIZWOMOCKIULUMAJDUKZDLUIWPNPDLJULUMAWLWMTABWGHWKAWGCDUFZHAWECWFDAWQ
        WECUJMCIUNUOAWSWFDUJNDJUNUOUQQURUSZAWRHTUIWMTUIOWRHWTTQCDKUTVABHWKTVBVC
        VDUAUBIJTTBUAUPZUEZUBUPZUEZUFZWHXBUGZWHXDUGZGUDZUHWLWCTXBIUJZXDJUJZVEBX
        FXIWGWKXJXKXCWEXEWFXBIVGXDJVGVHXJXKXGWIXHWJGWHXBIVFWHXDJVFVIVJBGUAUBVKV
        LVMXAABHWKWNWHHUIZAWHCUIZWHDUIZVEZWKWNUJXLWHWTUIXOWTHWHQVNWHCDVPVOAXOVE
        WIEWJFGAXMWIEUJXNRVQAXNWJFUJXMSVRVSVTWAWB $.

      $( Value of a relation applied to two functions.  (Contributed by Mario
         Carneiro, 28-Jul-2014.) $)
      ofrfval $p |- ( ph -> ( F oR R G <-> A. x e. S C R D ) ) $=
        ( wcel vf vg cofr wbr cv cfv cdm cin wral cvv wb fnex syl2anc wceq dmeq
        wfn wa ineqan12d fveq1 breqan12d raleqbidv df-ofr brabga ineq12d syl6eq
        fndm raleqdv inss1 eqsstr3i sseli sylan2 inss2 breq12d ralbidva 3bitrd
        syl ) AIJGUCZUDZBUEZIUFZVSJUFZGUDZBIUGZJUGZUHZUIZWBBHUIEFGUDZBHUIAIUJTZ
        JUJTZVRWFUKAICUPZCKTWHMOCKIULUMAJDUPZDLTWINPDLJULUMVSUAUEZUFZVSUBUEZUFZ
        GUDZBWLUGZWNUGZUHZUIWFUAUBIJVQUJUJWLIUNZWNJUNZUQWPWBBWSWEWTXAWQWCWRWDWL
        IUOWNJUOURWTXAWMVTWOWAGVSWLIUSVSWNJUSUTVABGUAUBVBVCUMAWBBWEHAWECDUHZHAW
        CCWDDAWJWCCUNMCIVFVPAWKWDDUNNDJVFVPVDQVEVGAWBWGBHAVSHTZUQVTEWAFGXCAVSCT
        VTEUNHCVSHXBCQCDVHVIVJRVKXCAVSDTWAFUNHDVSHXBDQCDVLVIVJSVKVMVNVO $.
    $}

    ${
      ofval.6 $e |- ( ( ph /\ X e. A ) -> ( F ` X ) = C ) $.
      ofval.7 $e |- ( ( ph /\ X e. B ) -> ( G ` X ) = D ) $.
      ofval.8 $e |- ( ph -> R Fn ( U X. V ) ) $.
      ofval.9 $e |- ( ph -> C e. U ) $.
      ofval.10 $e |- ( ph -> D e. V ) $.
      $( Evaluate a function operation at a point.  (Contributed by Mario
         Carneiro, 20-Jul-2014.) $)
      fnofval $p |- ( ( ph /\ X e. S ) -> ( ( F oF R G ) ` X ) = ( C R D ) ) $=
        ( vx wcel wa cof co cfv cv cmpt wceq eqidd offval fveq1d adantr cvv cxp
        simpr wfn inss1 eqsstr3i sseli sylan2 eleq1d mpbird inss2 syl3anc fveq2
        cin fnovex oveq12d eqid fvmptg syl2anc 3eqtrd ) AMGUEZUFZMIJFUGUHZUIZMU
        DGUDUJZIUIZWAJUIZFUHZUKZUIZMIUIZMJUIZFUHZDEFUHAVTWFULVQAMVSWEAUDBCWBWCF
        GIJKLNOPQRAWABUEUFWBUMAWACUEUFWCUMUNUOUPVRVQWIUQUEZWFWIULAVQUSVRFHKURUT
        ZWGHUEZWHKUEZWJAWKVQUAUPVRWLDHUEZAWNVQUBUPVRWGDHVQAMBUEWGDULGBMGBCVJZBR
        BCVAVBVCSVDZVEVFVRWMEKUEZAWQVQUCUPVRWHEKVQAMCUEWHEULGCMGWOCRBCVGVBVCTVD
        ZVEVFWGWHHKFVKVHUDMWDWIGUQWEWAMULWBWGWCWHFWAMIVIWAMJVIVLWEVMVNVOVRWGDWH
        EFWPWRVLVP $.
    $}

    ${
      ofrval.6 $e |- ( ( ph /\ X e. A ) -> ( F ` X ) = C ) $.
      ofrval.7 $e |- ( ( ph /\ X e. B ) -> ( G ` X ) = D ) $.
      $( Exhibit a function relation at a point.  (Contributed by Mario
         Carneiro, 28-Jul-2014.) $)
      ofrval $p |- ( ( ph /\ F oR R G /\ X e. S ) -> C R D ) $=
        ( wcel vx cofr wbr w3a cfv wa cv wral eqidd ofrfval biimpa wceq breq12d
        wi fveq2 rspccv syl 3impia simp1 cin inss1 eqsstr3i simp3 syl2anc inss2
        sseldi 3brtr3d ) AHIFUBUCZLGTZUDZLHUEZLIUEZDEFAVHVIVKVLFUCZAVHUFUAUGZHU
        EZVNIUEZFUCZUAGUHZVIVMUNAVHVRAUABCVOVPFGHIJKMNOPQAVNBTUFVOUIAVNCTUFVPUI
        UJUKVQVMUALGVNLULVOVKVPVLFVNLHUOVNLIUOUMUPUQURVJALBTVKDULAVHVIUSZVJGBLG
        BCUTZBQBCVAVBAVHVIVCZVFRVDVJALCTVLEULVSVJGCLGVTCQBCVEVBWAVFSVDVG $.
    $}
  $}

  ${
    ofmresval.f $e |- ( ph -> F e. A ) $.
    ofmresval.g $e |- ( ph -> G e. B ) $.
    $( Value of a restriction of the function operation map.  (Contributed by
       NM, 20-Oct-2014.) $)
    ofmresval $p |- ( ph -> ( F ( oF R |` ( A X. B ) ) G ) = ( F oF R G ) ) $=
      ( wcel cof cxp cres co wceq ovres syl2anc ) AEBIFCIEFDJZBCKLMEFQMNGHEFBCQ
      OP $.
  $}

  ${
    $d z A $.  $d z C $.  $d y z G $.  $d x y z ph $.  $d x y S $.  $d x y T $.
    $d x y z F $.  $d x y z R $.  $d x y z U $.
    off.1 $e |- ( ( ph /\ ( x e. S /\ y e. T ) ) -> ( x R y ) e. U ) $.
    off.2 $e |- ( ph -> F : A --> S ) $.
    off.3 $e |- ( ph -> G : B --> T ) $.
    off.4 $e |- ( ph -> A e. V ) $.
    off.5 $e |- ( ph -> B e. W ) $.
    off.6 $e |- ( A i^i B ) = C $.
    $( The function operation produces a function.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    off $p |- ( ph -> ( F oF R G ) : C --> U ) $=
      ( vz cof co wf cv cfv cmpt wcel wa wral cin inss1 eqsstr3i ffvelrn syl2an
      sseli inss2 ralrimivva adantr wceq oveq1 eleq1d oveq2 syl21anc eqid fmptd
      rspc2va wfn ffn syl eqidd offval feq1d mpbird ) AFJKLGUBUCZUDFJUAFUAUEZKU
      FZVPLUFZGUCZUGZUDAUAFVSJVTAVPFUHZUIVQHUHZVRIUHZBUEZCUEZGUCZJUHZCIUJBHUJZV
      SJUHZADHKUDZVPDUHZWBWAPFDVPFDEUKZDTDEULUMUPDHVPKUNUOAEILUDZVPEUHZWCWAQFEV
      PFWLETDEUQUMUPEIVPLUNUOAWHWAAWGBCHIOURUSWGWIVQWEGUCZJUHBCVQVRHIWDVQUTWFWO
      JWDVQWEGVAVBWEVRUTWOVSJWEVRVQGVCVBVGVDVTVEVFAFJVOVTAUADEVQVRGFKLMNAWJKDVH
      PDHKVIVJAWMLEVHQEILVIVJRSTAWKUIVQVKAWNUIVRVKVLVMVN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x F $.  $d x G $.  $d x ph $.  $d x R $.
    ofres.1 $e |- ( ph -> F Fn A ) $.
    ofres.2 $e |- ( ph -> G Fn B ) $.
    ofres.3 $e |- ( ph -> A e. V ) $.
    ofres.4 $e |- ( ph -> B e. W ) $.
    ofres.5 $e |- ( A i^i B ) = C $.
    $( Restrict the operands of a function operation to the same domain as that
       of the operation itself.  (Contributed by Mario Carneiro,
       15-Sep-2014.) $)
    ofres $p |- ( ph -> ( F oF R G ) = ( ( F |` C ) oF R ( G |` C ) ) ) $=
      ( vx co cfv wcel cvv wfn cof cv cmpt cres eqidd offval wss inss1 eqsstr3i
      wa cin fnssres sylancl inss2 ssexg sylancr inidm wceq fvres adantl eqtr4d
      ) AFGEUAZPODOUBZFQZVCGQZEPUCFDUDZGDUDZVBPAOBCVDVEEDFGHIJKLMNAVCBRUJVDUEAV
      CCRUJVEUEUFAODDVDVEEDVFVGSSAFBTDBUGZVFDTJDBCUKZBNBCUHUIZBDFULUMAGCTDCUGVG
      DTKDVICNBCUNUICDGULUMAVHBHRDSRVJLDBHUOUPZVKDUQVCDRZVCVFQVDURAVCDFUSUTVLVC
      VGQVEURAVCDGUSUTUFVA $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d y z C $.  $d y F $.  $d y G $.  $d x y ph $.
    $d x y z R $.
    offval2.1 $e |- ( ph -> A e. V ) $.
    offval2.2 $e |- ( ( ph /\ x e. A ) -> B e. W ) $.
    offval2.3 $e |- ( ( ph /\ x e. A ) -> C e. X ) $.
    offval2.4 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    offval2.5 $e |- ( ph -> G = ( x e. A |-> C ) ) $.
    $( The function operation expressed as a mapping.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    offval2 $p |- ( ph -> ( F oF R G ) = ( x e. A |-> ( B R C ) ) ) $=
      ( vy co cmpt wceq cof cv cfv wcel wral ralrimiva eqid fnmpt fneq1d mpbird
      wfn inidm wa adantr fveq1d offval nffvmpt1 nfcv nfov fveq2 oveq12d cbvmpt
      syl simpr fvmpt2 syl2anc mpteq2dva syl5eq eqtrd ) AGHFUARQCQUBZBCDSZUCZVJ
      BCESZUCZFRZSZBCDEFRZSZAQCCVLVNFCGHIIAGCUKVKCUKZADJUDZBCUEVSAVTBCMUFBCDVKJ
      VKUGZUHVCACGVKOUIUJAHCUKVMCUKZAEKUDZBCUEWBAWCBCNUFBCEVMKVMUGZUHVCACHVMPUI
      UJLLCULAVJCUDZUMZVJGVKAGVKTWEOUNUOWFVJHVMAHVMTWEPUNUOUPAVPBCBUBZVKUCZWGVM
      UCZFRZSVRQBCVOWJBVLVNFBCDVJUQBFURBCEVJUQUSQWJURVJWGTVLWHVNWIFVJWGVKUTVJWG
      VMUTVAVBABCWJVQAWGCUDZUMZWHDWIEFWLWKVTWHDTAWKVDZMBCDJVKWAVEVFWLWKWCWIETWM
      NBCEKVMWDVEVFVAVGVHVI $.

    $( The function relation acting on maps.  (Contributed by Mario Carneiro,
       20-Jul-2014.) $)
    ofrfval2 $p |- ( ph -> ( F oR R G <-> A. x e. A B R C ) ) $=
      ( vy wbr wral wceq cofr cmpt cfv wfn wcel ralrimiva eqid fnmpt syl fneq1d
      cv mpbird inidm wa adantr fveq1d ofrfval nffvmpt1 nfcv nfbr fveq2 breq12d
      nfv cbvral simpr fvmpt2 syl2anc ralbidva syl5bb bitrd ) AGHFUARQUKZBCDUBZ
      UCZVKBCEUBZUCZFRZQCSZDEFRZBCSZAQCCVMVOFCGHIIAGCUDVLCUDZADJUEZBCSVTAWABCMU
      FBCDVLJVLUGZUHUIACGVLOUJULAHCUDVNCUDZAEKUEZBCSWCAWDBCNUFBCEVNKVNUGZUHUIAC
      HVNPUJULLLCUMAVKCUEZUNZVKGVLAGVLTWFOUOUPWGVKHVNAHVNTWFPUOUPUQVQBUKZVLUCZW
      HVNUCZFRZBCSAVSVPWKQBCBVMVOFBCDVKURBFUSBCEVKURUTWKQVCVKWHTVMWIVOWJFVKWHVL
      VAVKWHVNVAVBVDAWKVRBCAWHCUEZUNZWIDWJEFWMWLWAWIDTAWLVEZMBCDJVLWBVFVGWMWLWD
      WJETWNNBCEKVNWEVFVGVBVHVIVJ $.
  $}

  ${
    $d ph v x $.  $d A x $.  $d B v x $.  $d D x $.  $d O v x $.  $d R v $.
    $d Y v x $.  $d Z v x $.
    suppssof1.s $e |- ( ph -> ( `' A " ( _V \ { Y } ) ) C_ L ) $.
    suppssof1.o $e |- ( ( ph /\ v e. R ) -> ( Y O v ) = Z ) $.
    suppssof1.a $e |- ( ph -> A : D --> V ) $.
    suppssof1.b $e |- ( ph -> B : D --> R ) $.
    suppssof1.d $e |- ( ph -> D e. W ) $.
    $( Formula building theorem for support restrictions: vector operation with
       left annihilator.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    suppssof1 $p |- ( ph -> ( `' ( A oF O B ) " ( _V \ { Z } ) ) C_ L ) $=
      ( vx ccnv cvv cof co csn cdif cima cv cfv cmpt wf wfn ffn syl inidm eqidd
      wcel wa offval cnveqd imaeq1d feqmptd eqsstr3d funfni ffvelrnda suppssov1
      funfvex sylan eqsstrd ) ACDHUAUBZSZTLUCUDZUERERUFZCUGZVKDUGZHUBUHZSZVJUEG
      AVIVOVJAVHVNAREEVLVMHECDJJAEICUICEUJZOEICUKULZAEFDUIDEUJPEFDUKULQQEUMAVKE
      UOZUPZVLUNVSVMUNUQURUSARBVLVMEFGHTKLAREVLUHZSZTKUCUDZUECSZWBUEGAWCWAWBACV
      TAREICOUTURUSMVANAVPVRVLTUOZVQWDEVKCVKCVEVBVFAEFVKDPVCVDVG $.
  $}

  ${
    $d y A $.  $d x y C $.  $d x y F $.  $d x y G $.  $d x y H $.  $d x y ph $.
    $d x D $.  $d x y R $.
    ofco.1 $e |- ( ph -> F Fn A ) $.
    ofco.2 $e |- ( ph -> G Fn B ) $.
    ofco.3 $e |- ( ph -> H : D --> C ) $.
    ofco.4 $e |- ( ph -> A e. V ) $.
    ofco.5 $e |- ( ph -> B e. W ) $.
    ofco.6 $e |- ( ph -> D e. X ) $.
    ofco.7 $e |- ( A i^i B ) = C $.
    $( The composition of a function operation with another function.
       (Contributed by Mario Carneiro, 19-Dec-2014.) $)
    ofco $p |- ( ph ->
      ( ( F oF R G ) o. H ) = ( ( F o. H ) oF R ( G o. H ) ) ) $=
      ( cfv vx vy cof co ccom cv cmpt ffvelrnda feqmptd wcel eqidd offval fveq2
      wa oveq12d fmptco wfn wf wss cin inss1 eqsstr3i fss sylancl fnfco syl2anc
      wceq inss2 inidm ffn syl fvco2 sylan eqtr4d ) AGHFUCZUDZIUEUAEUAUFZITZGTZ
      VRHTZFUDZUGGIUEZHIUEZVOUDAUAUBEDVRUBUFZGTZWDHTZFUDWAIVPAEDVQIOUHAUAEDIOUI
      AUBBCWEWFFDGHJKMNPQSAWDBUJUNWEUKAWDCUJUNWFUKULWDVRVGWEVSWFVTFWDVRGUMWDVRH
      UMUOUPAUAEEVSVTFEWBWCLLAGBUQEBIURZWBEUQMAEDIURZDBUSWGODBCUTZBSBCVAVBEDBIV
      CVDBEGIVEVFAHCUQECIURZWCEUQNAWHDCUSWJODWICSBCVHVBEDCIVCVDCEHIVEVFRREVIAIE
      UQZVQEUJZVQWBTVSVGAWHWKOEDIVJVKZEGIVQVLVMAWKWLVQWCTVTVGWMEHIVQVLVMULVN $.
  $}

  ${
    $d x A $.  $d x F $.  $d x G $.  $d x H $.  $d x ph $.  $d x R $.
    offveq.1 $e |- ( ph -> A e. V ) $.
    offveq.2 $e |- ( ph -> F Fn A ) $.
    offveq.3 $e |- ( ph -> G Fn A ) $.
    offveq.4 $e |- ( ph -> H Fn A ) $.
    offveq.5 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = B ) $.
    offveq.6 $e |- ( ( ph /\ x e. A ) -> ( G ` x ) = C ) $.

    $d y A $.  $d y z B $.  $d y z C $.  $d x y z F $.  $d y z G $.  $d y H $.
    $d y R $.  $d y ph $.
    $( Equivalent expressions for equality with a function operation.
       (Contributed by NM, 9-Oct-2014.)  (Proof shortened by Mario Carneiro,
       5-Dec-2016.) $)
    offveqb $p |- ( ph
          -> ( H = ( F oF R G ) <-> A. x e. A ( H ` x ) = ( B R C ) ) ) $=
      ( co wceq cmpt wral cof cfv wfn dffn5im syl inidm offval eqeq12d cvv wcel
      cv wb funfvex funfni sylan ralrimiva mpteqb bitrd ) AIGHFUAQZRBCBUKZIUBZS
      ZBCDEFQZSZRZVAVCRBCTZAIVBUSVDAICUCZIVBRNBCIUDUEABCCDEFCGHJJLMKKCUFOPUGUHA
      VAUIUJZBCTVEVFULAVHBCAVGUTCUJVHNVHCUTIUTIUMUNUOUPBCVAVCUIUQUEUR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.  $d x R $.  $d x W $.
    $d x X $.
    ofc12.1 $e |- ( ph -> A e. V ) $.
    ofc12.2 $e |- ( ph -> B e. W ) $.
    ofc12.3 $e |- ( ph -> C e. X ) $.
    $( Function operation on two constant functions.  (Contributed by Mario
       Carneiro, 28-Jul-2014.) $)
    ofc12 $p |- ( ph ->
      ( ( A X. { B } ) oF R ( A X. { C } ) ) = ( A X. { ( B R C ) } ) ) $=
      ( vx csn cxp co cmpt wcel adantr wceq fconstmpt cof a1i offval2 syl6eqr
      cv ) ABCMNZBDMNZEUAOLBCDEOZPBUHMNALBCDEUFUGFGHIACGQLUEBQZJRADHQUIKRUFLBCP
      SALBCTUBUGLBDPSALBDTUBUCLBUHTUD $.
  $}

  ${
    $d w x B $.  $d w x C $.  $d w x y z F $.  $d w x y z G $.  $d w x y z H $.
    $d w x y z O $.  $d w x y z P $.  $d w x y z ph $.  $d w x y z R $.
    $d w A $.  $d w x y z S $.  $d w x y z T $.  $d w x y z U $.
    caofref.1 $e |- ( ph -> A e. V ) $.
    caofref.2 $e |- ( ph -> F : A --> S ) $.
    ${
      caofref.3 $e |- ( ( ph /\ x e. S ) -> x R x ) $.
      $( Transfer a reflexive law to the function relation.  (Contributed by
         Mario Carneiro, 28-Jul-2014.) $)
      caofref $p |- ( ph -> F oR R F ) $=
        ( vw cofr wbr cv cfv wral wcel wa ffvelrnda ralrimiva adantr id breq12d
        wceq rspcv sylc wf wfn ffn syl inidm eqidd ofrfval mpbird ) AFFDLMKNZFO
        ZUPDMZKCPAUQKCAUOCQZRZUPEQBNZUTDMZBEPZUQACEUOFISAVBURAVABEJTUAVAUQBUPEU
        TUPUDZUTUPUTUPDVCUBZVDUCUEUFTAKCCUPUPDCFFGGACEFUGFCUHICEFUIUJZVEHHCUKUS
        UPULZVFUMUN $.
    $}

    ${
      $d v A $.  $d v F $.  $d x v N $.  $d v S $.  $d v ph $.  $d v w $.
      caofinv.3 $e |- ( ph -> B e. W ) $.
      caofinv.4 $e |- ( ph -> N : S --> S ) $.
      caofinv.5 $e |- ( ph -> G = ( v e. A |-> ( N ` ( F ` v ) ) ) ) $.
      ${
        caofinvl.6 $e |- ( ( ph /\ x e. S ) -> ( ( N ` x ) R x ) = B ) $.
        $( Transfer a left inverse law to the function operation.  (Contributed
           by NM, 22-Oct-2014.) $)
        caofinvl $p |- ( ph -> ( G oF R F ) = ( A X. { B } ) ) $=
          ( vw cfv cof co cmpt csn cv wf wcel wa adantr ffvelrnda ffvelrnd eqid
          cxp fmptd feq1d mpbird wfn wceq wral ralrimiva fneq1d dffn5im feqmptd
          fnmpt offval2 fveq1d simpr fveq2 fveq2d fvmptg syl2anc oveq1d oveq12d
          syl eqtrd id eqeq1d rspcva mpteq2dva fconstmpt syl6eqr ) AIHFUAUBZSDE
          UCZDEUDUMAWBSDSUEZITZWDHTZFUBZUCWCASDWEWFFIHKGGMADGWDIADGIUFDGCDCUEZH
          TZJTZUCZUFACDWJGWKAWHDUGZUHGGWIJAGGJUFZWLPUIADGWHHNUJUKZWKULZUNADGIWK
          QUOUPUJADGWDHNUJZAIDUQZISDWEUCURAWQWKDUQZAWJGUGZCDUSWRAWSCDWNUTCDWJWK
          GWOVDVNADIWKQVAUPSDIVBVNASDGHNVCVEASDWGEAWDDUGZUHZWGWFJTZWFFUBZEXAWEX
          BWFFXAWEWDWKTZXBAWEXDURWTAWDIWKQVFUIXAWTXBGUGXDXBURAWTVGXAGGWFJAWMWTP
          UIWPUKCWDWJXBDGWKWHWDURWIWFJWHWDHVHVIWOVJVKVOVLXAWFGUGBUEZJTZXEFUBZEU
          RZBGUSZXCEURZWPAXIWTAXHBGRUTUIXHXJBWFGXEWFURZXGXCEXKXFXBXEWFFXEWFJVHX
          KVPVMVQVRVKVOVSVOSDEVTWA $.
      $}
    $}

    caofcom.3 $e |- ( ph -> G : A --> S ) $.
    ${
      caofcom.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( x R y ) = ( y R x ) ) $.
      $( Transfer a commutative law to the function operation.  (Contributed by
         Mario Carneiro, 26-Jul-2014.) $)
      caofcom $p |- ( ph -> ( F oF R G ) = ( G oF R F ) ) $=
        ( vw cfv co cmpt wcel wa ffvelrnda cv cof jca caovcomg syldan mpteq2dva
        wceq feqmptd offval2 3eqtr4d ) ANDNUAZGOZUKHOZEPZQNDUMULEPZQGHEUBZPHGUP
        PANDUNUOAUKDRZULFRZUMFRZSUNUOUGAUQSURUSADFUKGKTZADFUKHLTZUCABCULUMFEMUD
        UEUFANDULUMEGHIFFJUTVAANDFGKUHZANDFHLUHZUIANDUMULEHGIFFJVAUTVCVBUIUJ $.
    $}

    ${
      caofrss.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( x R y -> x T y ) ) $.
      $( Transfer a relation subset law to the function relation.  (Contributed
         by Mario Carneiro, 28-Jul-2014.) $)
      caofrss $p |- ( ph -> ( F oR R G -> F oR T G ) ) $=
        ( vw cv wbr wral wcel wi cofr wa ffvelrnda ralrimivva adantr wceq breq1
        cfv imbi12d breq2 rspc2va syl21anc ralimdva wfn ffn inidm eqidd ofrfval
        wf syl 3imtr4d ) AOPZHUHZVBIUHZEQZODRVCVDGQZODRHIEUAQHIGUAQAVEVFODAVBDS
        ZUBZVCFSVDFSBPZCPZEQZVIVJGQZTZCFRBFRZVEVFTZADFVBHLUCADFVBIMUCAVNVGAVMBC
        FFNUDUEVMVOVCVJEQZVCVJGQZTBCVCVDFFVIVCUFVKVPVLVQVIVCVJEUGVIVCVJGUGUIVJV
        DUFVPVEVQVFVJVDVCEUJVJVDVCGUJUIUKULUMAODDVCVDEDHIJJADFHUSHDUNLDFHUOUTZA
        DFIUSIDUNMDFIUOUTZKKDUPZVHVCUQZVHVDUQZURAODDVCVDGDHIJJVRVSKKVTWAWBURVA
        $.
    $}

    caofass.4 $e |- ( ph -> H : A --> S ) $.

    ${
      caoftrn.5 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                        ( ( x R y /\ y T z ) -> x U z ) ) $.
      $( Transfer a transitivity law to the function relation.  (Contributed by
         Mario Carneiro, 28-Jul-2014.) $)
      caoftrn $p |- ( ph -> ( ( F oR R G /\ G oR T H ) -> F oR U H ) ) $=
        ( vw wbr cv cfv wa wral cofr wcel wi ralrimivvva adantr ffvelrnda breq1
        wceq anbi1d imbi12d breq2 anbi12d imbi1d anbi2d rspc3v syl3anc ralimdva
        mpd wf wfn ffn syl inidm eqidd ofrfval r19.26 syl6bbr 3imtr4d ) ASUAZJU
        BZVMKUBZFTZVOVMLUBZHTZUCZSEUDZVNVQITZSEUDJKFUETZKLHUETZUCZJLIUETAVSWASE
        AVMEUFZUCZBUAZCUAZFTZWHDUAZHTZUCZWGWJITZUGZDGUDCGUDBGUDZVSWAUGZAWOWEAWN
        BCDGGGRUHUIWFVNGUFVOGUFVQGUFWOWPUGAEGVMJOUJAEGVMKPUJAEGVMLQUJWNWPVNWHFT
        ZWKUCZVNWJITZUGVPVOWJHTZUCZWSUGBCDVNVOVQGGGWGVNULZWLWRWMWSXBWIWQWKWGVNW
        HFUKUMWGVNWJIUKUNWHVOULZWRXAWSXCWQVPWKWTWHVOVNFUOWHVOWJHUKUPUQWJVQULZXA
        VSWSWAXDWTVRVPWJVQVOHUOURWJVQVNIUOUNUSUTVBVAAWDVPSEUDZVRSEUDZUCVTAWBXEW
        CXFASEEVNVOFEJKMMAEGJVCJEVDOEGJVEVFZAEGKVCKEVDPEGKVEVFZNNEVGZWFVNVHZWFV
        OVHZVIASEEVOVQHEKLMMXHAEGLVCLEVDQEGLVEVFZNNXIXKWFVQVHZVIUPVPVRSEVJVKASE
        EVNVQIEJLMMXGXLNNXIXJXMVIVL $.
    $}
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Functions (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The restriction of a function to a set exists.  Compare Proposition 6.17
     of [TakeutiZaring] p. 28.  This version has a shorter proof than
     ~ resfunexg but requires ~ ax-pow and ~ ax-un .  (Contributed by NM,
     7-Apr-1995.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  resfunexgALT $p |- ( ( Fun A /\ B e. C ) -> ( A |` B ) e. _V ) $=
    ( wfun wcel cres cdm cvv crn cxp dmresexg adantl df-ima funimaexg syl5eqelr
    wa cima jca xpexg wss wrel relres relssdmrn ax-mp ssexg mpan 3syl ) ADZBCEZ
    PZABFZGZHEZUKIZHEZPULUNJZHEZUKHEZUJUMUOUIUMUHABCKLUJUNABQHABMABCNORULUNHHSU
    KUPTZUQURUKUAUSABUBUKUCUDUKUPHUEUFUG $.

  $( Existence of a composition when the first member is a function.
     (Contributed by NM, 8-Oct-2007.) $)
  cofunexg $p |- ( ( Fun A /\ B e. C ) -> ( A o. B ) e. _V ) $=
    ( wfun wcel wa ccom cdm crn cxp wss wrel relco relssdmrn ax-mp dmcoss ssexg
    cvv sylancr rnexg dmexg adantl cres rnco resfunexg sylan2 syl xpexg syl2anc
    syl5eqel ) ADZBCEZFZABGZUNHZUNIZJZKZUQREZUNREUNLURABMUNNOUMUOREZUPREUSULUTU
    KULUOBHZKVAREUTABPBCUAUOVARQSUBUMUPABIZUCZIZRABUDUMVCREZVDREULUKVBREVEBCTAV
    BRUEUFVCRTUGUJUOUPRRUHUIUNUQRQS $.

  $( Existence of a composition when the second member is one-to-one.
     (Contributed by NM, 8-Oct-2007.) $)
  cofunex2g $p |- ( ( A e. V /\ Fun `' B ) -> ( A o. B ) e. _V ) $=
    ( ccnv wfun wcel ccom cvv wa cnvexg cofunexg sylan2 cnvco cocnvcnv2 3eqtrri
    cocnvcnv1 syl5eqel syl ancoms ) BDZEZACFZABGZHFZUAUBITADZGZHFZUDUBUAUEHFUGA
    CJTUEHKLUGUCUFDZHUHUEDZTDGUIBGUCTUEMUIBNABPOUFHJQRS $.

  $( If the domain of a function is a set, the function is a set.  Theorem
     6.16(1) of [TakeutiZaring] p. 28.  This theorem is derived using the Axiom
     of Replacement in the form of ~ funimaexg .  This version of ~ fnex uses
     ~ ax-pow and ~ ax-un , whereas ~ fnex does not.  (Contributed by NM,
     14-Aug-1994.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  fnexALT $p |- ( ( F Fn A /\ A e. B ) -> F e. _V ) $=
    ( wfn wcel wa cdm crn cxp wss cvv fnrel relssdmrn syl adantr eleq1d biimpar
    wrel cima syl2anc fndm fnfun funimaexg sylan imadmrn imaeq2d syl5eqr syldan
    wfun xpexg ssexg ) CADZABEZFZCCGZCHZIZJZUQKEZCKEULURUMULCRURACLCMNOUNUOBEZU
    PKEZUSULUTUMULUOABACUAZPQULUMCASZKEZVAULCUIUMVDACUBCABUCUDULVAVDULUPVCKULUP
    CUOSVCCUEULUOACVBUFUGPQUHUOUPBKUJTCUQKUKT $.

  $( If the domain of a function exists, so does its range.  Part of Theorem
     4.15(v) of [Monk1] p. 46.  This theorem is derived using the Axiom of
     Replacement in the form of ~ funex .  (Contributed by NM, 11-Nov-1995.) $)
  funrnex $p |- ( dom F e. B -> ( Fun F -> ran F e. _V ) ) $=
    ( wfun cdm wcel cvv crn funex ex rnexg syl6com ) BCZBDAEZBFEZBGFELMNABHIBFJ
    K $.

  $( If the domain of an onto function exists, so does its codomain.
     (Contributed by NM, 23-Jul-2004.) $)
  fornex $p |- ( A e. C -> ( F : A -onto-> B -> B e. _V ) ) $=
    ( wfo wcel cvv cdm crn wfun funrnex syl5com wf wceq fof fdm syl eleq1d forn
    fofun 3imtr3d com12 ) ABDEZACFZBGFZUCDHZCFZDIZGFZUDUEUCDJUGUIABDTCDKLUCUFAC
    UCABDMUFANABDOABDPQRUCUHBGABDSRUAUB $.

  $( If the codomain of a one-to-one function exists, so does its domain.  This
     can be thought of as a form of the Axiom of Replacement.  (Contributed by
     NM, 4-Sep-2004.) $)
  f1dmex $p |- ( ( F : A -1-1-> B /\ B e. C ) -> A e. _V ) $=
    ( wf1 wcel cvv crn wss wf f1f frn syl ssexg sylan ex ccnv wfo wf1o f1cnv
    f1ofo fornex syl5com syld imp ) ABDEZBCFZAGFZUFUGDHZGFZUHUFUGUJUFUIBIZUGUJU
    FABDJUKABDKABDLMUIBCNOPUFUIADQZRZUJUHUFUIAULSUMABDTUIAULUAMUIAGULUBUCUDUE
    $.

  ${
    $d x y z w A $.  $d y z w B $.
    abrexex.1 $e |- A e. _V $.
    $( Existence of a class abstraction of existentially restricted sets. ` x `
       is normally a free-variable parameter in the class expression
       substituted for ` B ` , which can be thought of as ` B ( x ) ` .  This
       simple-looking theorem is actually quite powerful and appears to involve
       the Axiom of Replacement in an intrinsic way, as can be seen by tracing
       back through the path ~ mptexg , ~ funex , ~ fnex , ~ resfunexg , and
       ~ funimaexg .  See also ~ abrexex2 .  (Contributed by NM, 16-Oct-2003.)
       (Proof shortened by Mario Carneiro, 31-Aug-2015.) $)
    abrexex $p |- { y | E. x e. A y = B } e. _V $=
      ( cmpt crn cv wceq wrex cab cvv eqid rnmpt mptex rnex eqeltrri ) ACDFZGBH
      DIACJBKLABCDRRMNRACDEOPQ $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    $( Existence of a class abstraction of existentially restricted sets. ` x `
       is normally a free-variable parameter in ` B ` .  The antecedent assures
       us that ` A ` is a set.  (Contributed by NM, 3-Nov-2003.) $)
    abrexexg $p |- ( A e. V -> { y | E. x e. A y = B } e. _V ) $=
      ( wcel wceq wrex cab cmpt crn cvv eqid rnmpt mptexg rnexg syl syl5eqelr
      cv ) CEFZBSDGACHBIACDJZKZLABCDUAUAMNTUALFUBLFACDEOUALPQR $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( The existence of an indexed union. ` x ` is normally a free-variable
       parameter in ` B ` .  (Contributed by NM, 23-Mar-2006.) $)
    iunexg $p |- ( ( A e. V /\ A. x e. A B e. W ) -> U_ x e. A B e. _V ) $=
      ( vy wcel wral ciun wceq wrex cab cuni cvv dfiun2g adantl abrexexg uniexg
      wa cv syl adantr eqeltrd ) BDGZCEGABHZSABCIZFTCJABKFLZMZNUEUFUHJUDAFBCEOP
      UDUHNGZUEUDUGNGUIAFBCDQUGNRUAUBUC $.
  $}

  ${
    $d A x y z $.  $d V x y z $.  $d W x y z $.  $d ph z $.
    $( Existence of an existentially restricted class abstraction.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    abrexex2g $p |- ( ( A e. V /\ A. x e. A { y | ph } e. W )
                                  -> { y | E. x e. A ph } e. _V ) $=
      ( vz wcel cab wral wa wrex cv cvv wsb nfv nfcv nfs1v nfrexxy wceq sbequ12
      rexbidv cbvab df-clab rexbii eqtr4i ciun df-iun iunexg syl5eqelr syl5eqel
      abbii ) DEHACIZFHBDJKZABDLZCIZGMZUMHZBDLZGIZNUPACGOZBDLZGIUTUOVBCGUOGPVAC
      BDCDQACGRSCMUQTAVABDACGUAUBUCUSVBGURVABDAGCUDUEULUFUNUTBDUMUGNBGDUMUHBDUM
      EFUIUJUK $.
  $}

  ${
    $d A x y v w z $.  $d ps v w z $.  $d ph x $.
    opabex3d.1 $e |- ( ph -> A e. _V ) $.
    opabex3d.2 $e |- ( ( ph /\ x e. A ) -> { y | ps } e. _V ) $.
    $( Existence of an ordered pair abstraction, deduction version.
       (Contributed by Alexander van der Vekens, 19-Oct-2017.) $)
    opabex3d $p |- ( ph -> { <. x , y >. | ( x e. A /\ ps ) } e. _V ) $=
      ( vz vv vw cv wcel wa cvv wex cop wceq an12 exbii bitri copab csn cab cxp
      ciun 19.42v elxp excom elsn anbi1i vex opeq1 eqeq2d anbi1d ceqsexv nfsab1
      nfv nfan opeq2 wsb sbequ12 equcoms df-clab syl6rbbr anbi12d 3bitri anbi2i
      wb cbvex 3bitr4ri wrex eliun df-rex elopab 3bitr4i eqriv wral snexg ax-mp
      xpexg sylancr ralrimiva iunexg syl2anc syl5eqelr ) ACKZELZBMZCDUAZCEWFUBZ
      BDUCZUDZUEZNHWMWIWGHKZWLLZMZCOZWNWFDKZPZQZWHMZDOZCOWNWMLZWNWILWPXBCWGWTBM
      ZMZDOWGXDDOZMXBWPWGXDDUFXAXEDWTWGBRSWOXFWGWOWNIKZJKZPZQZXGWJLZXHWKLZMMZJO
      IOZWNWFXHPZQZXLMZJOZXFIJWNWJWKUGXNXMIOZJOXRXMIJUHXSXQJXSXGWFQZXJXLMZMZIOX
      QXMYBIXMXKYAMYBXJXKXLRXKXTYAIWFUIUJTSYAXQIWFCUKZXTXJXPXLXTXIXOWNXGWFXHULU
      MUNUOTSTXQXDJDXPXLDXPDUQBDJUPURXDJUQXHWRQZXPWTXLBYDXOWSWNXHWRWFUSUMYDBBDJ
      UTZXLBYEVHDJBDJVAVBBJDVCVDVEVIVFVGVJSXCWOCEVKWQCWNEWLVLWOCEVMTWHCDWNVNVOV
      PAENLWLNLZCEVQWMNLFAYFCEAWGMWJNLZWKNLYFWFNLYGYCWFNVRVSGWJWKNNVTWAWBCEWLNN
      WCWDWE $.
  $}

  ${
    $d A x y v w z $.  $d ph v w z $.
    opabex3.1 $e |- A e. _V $.
    opabex3.2 $e |- ( x e. A -> { y | ph } e. _V ) $.
    $( Existence of an ordered pair abstraction.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    opabex3 $p |- { <. x , y >. | ( x e. A /\ ph ) } e. _V $=
      ( vz vv vw cv wcel wa cvv wex cop wceq an12 exbii bitri eqeq2d ciun copab
      csn cab cxp 19.42v elxp excom elsn anbi1i vex opeq1 anbi1d ceqsexv nfsab1
      nfv nfan opeq2 wsb sbequ12 equcoms df-clab syl6rbbr anbi12d 3bitri anbi2i
      wb cbvex 3bitr4ri wrex eliun df-rex elopab 3bitr4i eqriv wral snexg ax-mp
      xpexg sylancr rgen iunexg mp2an eqeltrri ) BDBJZUCZACUDZUEZUAZWEDKZALZBCU
      BZMGWIWLWJGJZWHKZLZBNZWMWECJZOZPZWKLZCNZBNWMWIKZWMWLKWOXABWJWSALZLZCNWJXC
      CNZLXAWOWJXCCUFWTXDCWSWJAQRWNXEWJWNWMHJZIJZOZPZXFWFKZXGWGKZLLZINHNZWMWEXG
      OZPZXKLZINZXEHIWMWFWGUGXMXLHNZINXQXLHIUHXRXPIXRXFWEPZXIXKLZLZHNXPXLYAHXLX
      JXTLYAXIXJXKQXJXSXTHWEUIUJSRXTXPHWEBUKZXSXIXOXKXSXHXNWMXFWEXGULTUMUNSRSXP
      XCICXOXKCXOCUPACIUOUQXCIUPXGWQPZXOWSXKAYCXNWRWMXGWQWEURTYCAACIUSZXKAYDVGC
      IACIUTVAAICVBVCVDVHVEVFVIRXBWNBDVJWPBWMDWHVKWNBDVLSWKBCWMVMVNVODMKWHMKZBD
      VPWIMKEYEBDWJWFMKZWGMKYEWEMKYFYBWEMVQVRFWFWGMMVSVTWABDWHMMWBWCWD $.
  $}

  ${
    $d x A $.
    iunex.1 $e |- A e. _V $.
    iunex.2 $e |- B e. _V $.
    $( The existence of an indexed union. ` x ` is normally a free-variable
       parameter in the class expression substituted for ` B ` , which can be
       read informally as ` B ( x ) ` .  (Contributed by NM, 13-Oct-2003.) $)
    iunex $p |- U_ x e. A B e. _V $=
      ( cvv wcel wral ciun rgenw iunexg mp2an ) BFGCFGZABHABCIFGDMABEJABCFFKL
      $.
  $}

  ${
    $d x y z A $.  $d z ph $.
    abrexex2.1 $e |- A e. _V $.
    abrexex2.2 $e |- { y | ph } e. _V $.
    $( Existence of an existentially restricted class abstraction. ` ph ` is
       normally has free-variable parameters ` x ` and ` y ` .  See also
       ~ abrexex .  (Contributed by NM, 12-Sep-2004.) $)
    abrexex2 $p |- { y | E. x e. A ph } e. _V $=
      ( vz wrex cab cv wcel cvv wsb nfv nfcv nfs1v nfrexxy weq sbequ12 rexbidv
      cbvab df-clab rexbii abbii eqtr4i ciun df-iun iunex eqeltrri eqeltri ) AB
      DHZCIZGJACIZKZBDHZGIZLULACGMZBDHZGIUPUKURCGUKGNUQCBDCDOACGPQCGRAUQBDACGST
      UAUOURGUNUQBDAGCUBUCUDUEBDUMUFUPLBGDUMUGBDUMEFUHUIUJ $.

    $( Existence of a class abstraction with an existentially quantified
       expression.  Both ` x ` and ` y ` can be free in ` ph ` .  (Contributed
       by NM, 29-Jul-2006.) $)
    abexssex $p |- { y | E. x ( x C_ A /\ ph ) } e. _V $=
      ( cpw wrex cab cv wss wa wex cvv wcel df-rex selpw anbi1i exbii bitri
      abbii pwex abrexex2 eqeltrri ) ABDGZHZCIBJZDKZALZBMZCINUFUJCUFUGUEOZALZBM
      UJABUEPULUIBUKUHABDQRSTUAABCUEDEUBFUCUD $.
  $}

  ${
    $d x y A $.
    abexex.1 $e |- A e. _V $.
    abexex.2 $e |- ( ph -> x e. A ) $.
    abexex.3 $e |- { y | ph } e. _V $.
    $( A condition where a class builder continues to exist after its wff is
       existentially quantified.  (Contributed by NM, 4-Mar-2007.) $)
    abexex $p |- { y | E. x ph } e. _V $=
      ( wrex cab wex cvv cv wcel wa df-rex pm4.71ri exbii bitr4i abbii abrexex2
      eqeltrri ) ABDHZCIABJZCIKUBUCCUBBLDMZANZBJUCABDOAUEBAUDFPQRSABCDEGTUA $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d ph x y z $.
    oprabexd.1 $e |- ( ph -> A e. _V ) $.
    oprabexd.2 $e |- ( ph -> B e. _V ) $.
    oprabexd.3 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> E* z ps ) $.
    oprabexd.4 $e |- ( ph -> F = { <. <. x , y >. , z >. |
                                        ( ( x e. A /\ y e. B ) /\ ps ) } ) $.
    $( Existence of an operator abstraction.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    oprabexd $p |- ( ph -> F e. _V ) $=
      ( cv wcel wa coprab cvv wmo wal syl2anc cdm wi ex moanimv sylibr alrimivv
      wfun funoprabg syl cxp wss dmoprabss xpexg ssexg sylancr funex eqeltrd )
      AHCMFNDMGNOZBOZCDEPZQLAUTUGZUTUAZQNZUTQNAUSERZDSCSVAAVDCDAURBERZUBVDAURVE
      KUCURBEUDUEUFUSCDEUHUIAVBFGUJZUKVFQNZVCBCDEFGULAFQNGQNVGIJFGQQUMTVBVFQUNU
      OQUTUPTUQ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    oprabex.1 $e |- A e. _V $.
    oprabex.2 $e |- B e. _V $.
    oprabex.3 $e |- ( ( x e. A /\ y e. B ) -> E* z ph ) $.
    oprabex.4 $e |- F = { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B )
             /\ ph ) } $.
    $( Existence of an operation class abstraction.  (Contributed by NM,
       19-Oct-2004.) $)
    oprabex $p |- F e. _V $=
      ( cv wcel wa coprab cvv wfun cdm wmo wi mpbir funoprab cxp xpex dmoprabss
      moanimv ssexi funex mp2an eqeltri ) GBLEMCLFMNZANZBCDOZPKUMQUMRZPMUMPMULB
      CDULDSUKADSTJUKADUFUAUBUNEFUCEFHIUDABCDEFUEUGPUMUHUIUJ $.
  $}

  ${
    $d x y z w v u f A $.  $d x y z w v u f B $.  $d x y z w v u f C $.
    $d x y z w v u f D $.  $d x y z w v u f H $.  $d x y z R $.
    $d x y z w v u f S $.
    oprabex3.1 $e |- H e. _V $.
    oprabex3.2 $e |- F = { <. <. x , y >. , z >. | ( ( x e. ( H X. H ) /\
                      y e. ( H X. H ) ) /\
                      E. w E. v E. u E. f ( ( x = <. w , v >. /\
                      y = <. u , f >. ) /\ z = R ) ) } $.
    $( Existence of an operation class abstraction (special case).
       (Contributed by NM, 19-Oct-2004.) $)
    oprabex3 $p |- F e. _V $=
      ( cv cop wceq wa wex wmo wcel mosubop cxp xpex anass 2exbii 19.42vv bitri
      moeq mobii mpbir a1i oprabex ) AMZDMEMNOZBMZFMHMNOZPCMGOZPZHQFQZEQDQZABCJ
      JUAZUTIJJKKUBZVAUSCRZULUTSUNUTSPVBUMUOUPPZHQFQZPZEQDQZCRVDCDEULUPCFHUNCGU
      GTTUSVFCURVEDEURUMVCPZHQFQVEUQVGFHUMUOUPUCUDUMVCFHUEUFUDUHUIUJLUK $.
  $}

  ${
    $d A v x y z w $.  $d ph v $.
    oprabrexex2.1 $e |- A e. _V $.
    oprabrexex2.2 $e |- { <. <. x , y >. , z >. | ph } e. _V $.
    $( Existence of an existentially restricted operation abstraction.
       (Contributed by Jeff Madsen, 11-Jun-2010.) $)
    oprabrexex2 $p |- { <. <. x , y >. , z >. | E. w e. A ph } e. _V $=
      ( vv wrex coprab cv cop wa wex cab cvv df-oprab rexcom4 exbii wceq bitr2i
      r19.42v bitri abbii eqtri eqeltrri abrexex2 eqeltri ) AEFJZBCDKZILBLCLMDL
      MUAZANZDOZCOZBOZEFJZIPZQUKULUJNZDOZCOZBOZIPURUJBCDIRVBUQIUQUOEFJZBOVBUOEB
      FSVCVABVCUNEFJZCOVAUNECFSVDUTCVDUMEFJZDOUTUMEDFSVEUSDULAEFUCTUDTUDTUBUEUF
      UPEIFGABCDKUPIPQABCDIRHUGUHUI $.
  $}

  ${
    $d x z A $.  $d y z B $.  $d z C $.
    ab2rexex.1 $e |- A e. _V $.
    ab2rexex.2 $e |- B e. _V $.
    $( Existence of a class abstraction of existentially restricted sets.
       Variables ` x ` and ` y ` are normally free-variable parameters in the
       class expression substituted for ` C ` , which can be thought of as
       ` C ( x , y ) ` .  See comments for ~ abrexex .  (Contributed by NM,
       20-Sep-2011.) $)
    ab2rexex $p |- { z | E. x e. A E. y e. B z = C } e. _V $=
      ( cv wceq wrex abrexex abrexex2 ) CIFJBEKACDGBCEFHLM $.
  $}

  ${
    $d x z A $.  $d y z B $.
    ab2rexex2.1 $e |- A e. _V $.
    ab2rexex2.2 $e |- B e. _V $.
    ab2rexex2.3 $e |- { z | ph } e. _V $.
    $( Existence of an existentially restricted class abstraction. ` ph `
       normally has free-variable parameters ` x ` , ` y ` , and ` z ` .
       Compare ~ abrexex2 .  (Contributed by NM, 20-Sep-2011.) $)
    ab2rexex2 $p |- { z | E. x e. A E. y e. B ph } e. _V $=
      ( wrex abrexex2 ) ACFJBDEGACDFHIKK $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.  $d V w y z $.
    $( The cross product of two sets is a set.  Proposition 6.2 of
       [TakeutiZaring] p. 23.  This version is proven using Replacement; see
       ~ xpexg for a version that uses the Power Set axiom instead.
       (Contributed by Mario Carneiro, 20-May-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    xpexgALT $p |- ( ( A e. V /\ B e. W ) -> ( A X. B ) e. _V ) $=
      ( vy vx wcel wa cxp cv csn ciun iunid xpeq2i xpiundi eqtr3i wral syl5eqel
      cvv id cmpt fconstmpt mptexg ralrimivw iunexg syl2anr ) ACGZBDGZHABIZEBAE
      JZKZIZLZSAEBUKLZIUIUMUNBAEBMNEBUKAOPUHUHULSGZEBQUMSGUGUHTUGUOEBUGULFAUJUA
      SFAUJUBFAUJCUCRUDEBULDSUEUFR $.
  $}

  ${
    $d F x a b $.  $d G x a b $.  $d V x $.  $d W x $.  $d R x a b $.
    $d D x $.
    $( General value of ` ( F oF R G ) ` with no assumptions on functionality
       of ` F ` and ` G ` .  (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    offval3 $p |- ( ( F e. V /\ G e. W ) -> ( F oF R G ) =
        ( x e. ( dom F i^i dom G ) |-> ( ( F ` x ) R ( G ` x ) ) ) ) $=
      ( va vb wcel wa cvv cdm cin cv cfv co cmpt wceq elex adantr adantl inex1g
      dmexg mptexg 3syl dmeq ineqan12d fveq1 oveqan12d mpteq12dv df-of ovmpt2ga
      cof syl3anc ) CEIZDFIZJCKIZDKIZACLZDLZMZANZCOZVBDOZBPZQZKIZCDBUMZPVFRUOUQ
      UPCESTUPURUODFSUAUOVGUPUOUSKIVAKIVGCEUCUSUTKUBAVAVEKUDUETGHCDKKAGNZLZHNZL
      ZMZVBVIOZVBVKOZBPZQVFVHKVICRZVKDRZJAVMVPVAVEVQVRVJUSVLUTVICUFVKDUFUGVQVRV
      NVCVOVDBVBVICUHVBVKDUHUIUJABGHUKULUN $.

    $( Pointwise combination commutes with restriction.  (Contributed by Stefan
       O'Rear, 24-Jan-2015.) $)
    offres $p |- ( ( F e. V /\ G e. W ) -> ( ( F oF R G ) |` D ) =
        ( ( F |` D ) oF R ( G |` D ) ) ) $=
      ( vx wcel cdm cin cfv co cmpt cres wceq fvres dmres 3eqtr4ri offval3 cvv
      wa cv cof inss2 sseli oveq12d mpteq2ia inindi incom ineq12i eqid mpteq12i
      syl resmpt3 reseq1d resexg syl2an 3eqtr4a ) CEHZDFHZUAZGCIZDIZJZGUBZCKZVE
      DKZBLZMZANZGCANZIZDANZIZJZVEVKKZVEVMKZBLZMZCDBUCZLZANVKVMVTLZGVDAJZVRMGWC
      VHMVSVJGWCVRVHVEWCHVEAHZVRVHOWCAVEVDAUDUEWDVPVFVQVGBVEACPVEADPUFUMUGGVOVR
      WCVRAVDJAVBJZAVCJZJWCVOAVBVCUHVDAUIVLWEVNWFCAQDAQUJRVRUKULGVDAVHUNRVAWAVI
      AGBCDEFSUOUSVKTHVMTHWBVSOUTCAEUPDAFUPGBVKVMTTSUQUR $.
  $}

  ${
    $d f g A $.  $d f g B $.  $d f g x R $.
    $( Equivalent expressions for a restriction of the function operation map.
       Unlike ` oF R ` which is a proper class, ` ( oF R | `` ( A X. B ) ) `
       can be a set by ~ ofmresex , allowing it to be used as a function or
       structure argument.  By ~ ofmresval , the restricted operation map
       values are the same as the original values, allowing theorems for
       ` oF R ` to be reused.  (Contributed by NM, 20-Oct-2014.) $)
    ofmres $p |- ( oF R |` ( A X. B ) ) =
         ( f e. A , g e. B |-> ( f oF R g ) ) $=
      ( vx cvv cv cdm cin cfv co cmpt2 cres wss wceq ssv eqid wcel vex cmpt cxp
      cof resmpt2 mp2an df-of reseq1i dmex inex1 mptex ovmpt4g mp3an mpt2eq123i
      3eqtr4i ) DEGGFDHZIZEHZIZJZFHZUOKUTUQKCLZUAZMZABUBZNZDEABVBMZCUCZVDNDEABU
      OUQVGLZMAGOBGOVEVFPAQBQDEGGABVBUDUEVGVCVDFCDEUFZUGDEABVHABVBARBRUOGSUQGSV
      BGSVHVBPDTZETFUSVAUPURUOVJUHUIUJDEGGVBVGGVIUKULUMUN $.

    ofmresex.a $e |- ( ph -> A e. V ) $.
    ofmresex.b $e |- ( ph -> B e. W ) $.
    $( Existence of a restriction of the function operation map.  (Contributed
       by NM, 20-Oct-2014.) $)
    ofmresex $p |- ( ph -> ( oF R |` ( A X. B ) ) e. _V ) $=
      ( cxp cvv wcel cof cres xpexg syl2anc ofexg syl ) ABCIZJKZDLRMJKABEKCFKSG
      HBCEFNORDJPQ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        First and second members of an ordered pair
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c 1st $. $( First member of an ordered pair $)
  $c 2nd $. $( Second member of an ordered pair $)

  $( Extend the definition of a class to include the first member an ordered
     pair function. $)
  c1st $a class 1st $.

  $( Extend the definition of a class to include the second member an ordered
     pair function. $)
  c2nd $a class 2nd $.

  $( Define a function that extracts the first member, or abscissa, of an
     ordered pair.  Theorem ~ op1st proves that it does this.  For example,
     ( ` 1st `` <. ` 3 , 4 ` >. ` ) = 3 .  Equivalent to Definition 5.13 (i) of
     [Monk1] p. 52 (compare ~ op1sta and ~ op1stb ).  The notation is the same
     as Monk's.  (Contributed by NM, 9-Oct-2004.) $)
  df-1st $a |- 1st = ( x e. _V |-> U. dom { x } ) $.

  $( Define a function that extracts the second member, or ordinate, of an
     ordered pair.  Theorem ~ op2nd proves that it does this.  For example,
     ` ( 2nd `` <. ` 3 , 4 ` >. ` ) = 4 .  Equivalent to Definition 5.13 (ii)
     of [Monk1] p. 52 (compare ~ op2nda and ~ op2ndb ).  The notation is the
     same as Monk's.  (Contributed by NM, 9-Oct-2004.) $)
  df-2nd $a |- 2nd = ( x e. _V |-> U. ran { x } ) $.

  ${
    $d x y A $.  $d x y B $.
    $( The value of the function that extracts the first member of an ordered
       pair.  (Contributed by NM, 9-Oct-2004.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    1stvalg $p |- ( A e. _V -> ( 1st ` A ) = U. dom { A } ) $=
      ( vx cvv wcel csn cdm cuni c1st cfv wceq snexgOLD dmexg uniexg 3syl dmeqd
      cv sneq unieqd df-1st fvmptg mpdan ) ACDZAEZFZGZCDZAHIUEJUBUCCDUDCDUFAKUC
      CLUDCMNBABPZEZFZGUECCHUGAJZUIUDUJUHUCUGAQORBSTUA $.

    $( The value of the function that extracts the second member of an ordered
       pair.  (Contributed by NM, 9-Oct-2004.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    2ndvalg $p |- ( A e. _V -> ( 2nd ` A ) = U. ran { A } ) $=
      ( vx cvv wcel csn crn cuni c2nd cfv wceq snexgOLD rnexg uniexg 3syl rneqd
      cv sneq unieqd df-2nd fvmptg mpdan ) ACDZAEZFZGZCDZAHIUEJUBUCCDUDCDUFAKUC
      CLUDCMNBABPZEZFZGUECCHUGAJZUIUDUJUHUCUGAQORBSTUA $.
  $}

  $( The value of the first-member function at the empty set.  (Contributed by
     NM, 23-Apr-2007.) $)
  1st0 $p |- ( 1st ` (/) ) = (/) $=
    ( c1st cfv csn cdm cuni cvv wcel wceq 0ex 1stvalg ax-mp dmsn0 unieqi 3eqtri
    c0 uni0 ) OABZOCDZEZOEOOFGQSHIOJKROLMPN $.

  $( The value of the second-member function at the empty set.  (Contributed by
     NM, 23-Apr-2007.) $)
  2nd0 $p |- ( 2nd ` (/) ) = (/) $=
    ( c0 c2nd cfv csn crn cuni cvv wcel wceq 0ex 2ndvalg ax-mp cdm dmsn0 dm0rn0
    mpbi unieqi uni0 3eqtri ) ABCZADZEZFZAFAAGHTUCIJAKLUBAUAMAIUBAINUAOPQRS $.

  ${
    op1st.1 $e |- A e. _V $.
    op1st.2 $e |- B e. _V $.
    $( Extract the first member of an ordered pair.  (Contributed by NM,
       5-Oct-2004.) $)
    op1st $p |- ( 1st ` <. A , B >. ) = A $=
      ( cop c1st cfv csn cdm cuni cvv wcel wceq opexg mp2an 1stvalg ax-mp eqtri
      op1sta ) ABEZFGZTHIJZATKLZUAUBMAKLBKLUCCDABKKNOTPQABCDSR $.

    $( Extract the second member of an ordered pair.  (Contributed by NM,
       5-Oct-2004.) $)
    op2nd $p |- ( 2nd ` <. A , B >. ) = B $=
      ( cop c2nd cfv csn crn cuni cvv wcel wceq opexg mp2an 2ndvalg ax-mp eqtri
      op2nda ) ABEZFGZTHIJZBTKLZUAUBMAKLBKLUCCDABKKNOTPQABCDSR $.

    $( Extract the first member of an ordered pair.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    op1std $p |- ( C = <. A , B >. -> ( 1st ` C ) = A ) $=
      ( cop wceq c1st cfv fveq2 op1st syl6eq ) CABFZGCHIMHIACMHJABDEKL $.

    $( Extract the second member of an ordered pair.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    op2ndd $p |- ( C = <. A , B >. -> ( 2nd ` C ) = B ) $=
      ( cop wceq c2nd cfv fveq2 op2nd syl6eq ) CABFZGCHIMHIBCMHJABDEKL $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Extract the first member of an ordered pair.  (Contributed by NM,
       19-Jul-2005.) $)
    op1stg $p |- ( ( A e. V /\ B e. W ) -> ( 1st ` <. A , B >. ) = A ) $=
      ( vx vy cv cop c1st cfv wceq opeq1 fveq2d id eqeq12d opeq2 eqeq1d vtocl2g
      vex op1st ) EGZFGZHZIJZUAKAUBHZIJZAKABHZIJZAKEFABCDUAAKZUDUFUAAUIUCUEIUAA
      UBLMUINOUBBKZUFUHAUJUEUGIUBBAPMQUAUBESFSTR $.

    $( Extract the second member of an ordered pair.  (Contributed by NM,
       19-Jul-2005.) $)
    op2ndg $p |- ( ( A e. V /\ B e. W ) -> ( 2nd ` <. A , B >. ) = B ) $=
      ( vx vy cv cop c2nd cfv wceq opeq1 fveq2d eqeq1d opeq2 id eqeq12d vtocl2g
      vex op2nd ) EGZFGZHZIJZUBKAUBHZIJZUBKABHZIJZBKEFABCDUAAKZUDUFUBUIUCUEIUAA
      UBLMNUBBKZUFUHUBBUJUEUGIUBBAOMUJPQUAUBESFSTR $.

    $( Extract the first member of an ordered triple.  (Due to infrequent
       usage, it isn't worthwhile at this point to define special extractors
       for triples, so we reuse the ordered pair extractors for ~ ot1stg ,
       ~ ot2ndg , ~ ot3rdgg .)  (Contributed by NM, 3-Apr-2015.)  (Revised by
       Mario Carneiro, 2-May-2015.) $)
    ot1stg $p |- ( ( A e. V /\ B e. W /\ C e. X )
         -> ( 1st ` ( 1st ` <. A , B , C >. ) ) = A ) $=
      ( wcel w3a cotp c1st cfv cop df-ot fveq2i wceq wa cvv opexg op1stg sylan
      3impa syl5eq fveq2d 3adant3 eqtrd ) ADGZBEGZCFGZHZABCIZJKZJKABLZJKZAUIUKU
      LJUIUKULCLZJKZULUJUNJABCMNUFUGUHUOULOZUFUGPULQGUHUPABDERULCQFSTUAUBUCUFUG
      UMAOUHABDESUDUE $.

    $( Extract the second member of an ordered triple.  (See ~ ot1stg
       comment.)  (Contributed by NM, 3-Apr-2015.)  (Revised by Mario Carneiro,
       2-May-2015.) $)
    ot2ndg $p |- ( ( A e. V /\ B e. W /\ C e. X )
         -> ( 2nd ` ( 1st ` <. A , B , C >. ) ) = B ) $=
      ( wcel w3a cotp c1st cfv c2nd cop df-ot fveq2i wceq wa cvv opexg op1stg
      sylan 3impa syl5eq fveq2d op2ndg 3adant3 eqtrd ) ADGZBEGZCFGZHZABCIZJKZLK
      ABMZLKZBUKUMUNLUKUMUNCMZJKZUNULUPJABCNOUHUIUJUQUNPZUHUIQUNRGUJURABDESUNCR
      FTUAUBUCUDUHUIUOBPUJABDEUEUFUG $.

    $( Extract the third member of an ordered triple.  (See ~ ot1stg comment.)
       (Contributed by NM, 3-Apr-2015.) $)
    ot3rdgg $p |- ( ( A e. V /\ B e. W /\ C e. X )
        -> ( 2nd ` <. A , B , C >. ) = C ) $=
      ( wcel w3a cotp c2nd cfv cop df-ot fveq2i wceq wa cvv opexg op2ndg sylan
      3impa syl5eq ) ADGZBEGZCFGZHABCIZJKABLZCLZJKZCUFUHJABCMNUCUDUEUICOZUCUDPU
      GQGUEUJABDERUGCQFSTUAUB $.

    $( Alternate value of the function that extracts the first member of an
       ordered pair.  Definition 5.13 (i) of [Monk1] p. 52.  (Contributed by
       NM, 18-Aug-2006.) $)
    1stval2 $p |- ( A e. ( _V X. _V ) -> ( 1st ` A ) = |^| |^| A ) $=
      ( vx vy cvv cxp wcel cv cop wceq wex c1st cfv cint elvv vex op1stb eqtr4i
      op1st fveq2 inteq inteqd 3eqtr4a exlimivv sylbi ) ADDEFABGZCGZHZIZCJBJAKL
      ZAMZMZIZBCANUHULBCUHUGKLZUGMZMZUIUKUMUEUOUEUFBOZCOZRUEUFUPUQPQAUGKSUHUJUN
      AUGTUAUBUCUD $.

    $( Alternate value of the function that extracts the second member of an
       ordered pair.  Definition 5.13 (ii) of [Monk1] p. 52.  (Contributed by
       NM, 18-Aug-2006.) $)
    2ndval2 $p |- ( A e. ( _V X. _V )
               -> ( 2nd ` A ) = |^| |^| |^| `' { A } ) $=
      ( vx vy cvv cxp wcel cv cop wceq wex c2nd cfv ccnv cint elvv op2nd op2ndb
      csn vex inteqd eqtr4i fveq2 sneq cnveqd 3eqtr4a exlimivv sylbi ) ADDEFABG
      ZCGZHZIZCJBJAKLZARZMZNZNZNZIZBCAOUKURBCUKUJKLZUJRZMZNZNZNZULUQUSUIVDUHUIB
      SZCSZPUHUIVEVFQUAAUJKUBUKUPVCUKUOVBUKUNVAUKUMUTAUJUCUDTTTUEUFUG $.
  $}

  ${
    $d x y z w v A $.  $d x y z B $.  $d x y z w v u $.
    $( The ` 1st ` function maps the universe onto the universe.  (Contributed
       by NM, 14-Oct-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    fo1st $p |- 1st : _V -onto-> _V $=
      ( vx vy cvv c1st wfo wfn crn wceq cv csn cdm cuni wcel vex snexgOLD ax-mp
      dmex uniex df-1st fnmpti wrex cab rnmpt cop opex op1sta eqcomi sneq dmeqd
      unieqd eqeq2d rspcev mp2an 2th abbi2i eqtr4i df-fo mpbir2an ) CCDEDCFDGZC
      HACAIZJZKZLZDVBVAUTCMVACMANUTOPQRASZTUSBIZVCHZACUAZBUBCABCVCDVDUCVGBCVECM
      VGBNZVEVEUDZCMVEVIJZKZLZHZVGVEVEVHVHUEVLVEVEVEVHVHUFUGVFVMAVICUTVIHZVCVLV
      EVNVBVKVNVAVJUTVIUHUIUJUKULUMUNUOUPCCDUQUR $.

    $d x y z w v A $.  $d x y z B $.  $d x y z w v u $.
    $( The ` 2nd ` function maps the universe onto the universe.  (Contributed
       by NM, 14-Oct-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    fo2nd $p |- 2nd : _V -onto-> _V $=
      ( vx vy cvv c2nd wfo wfn crn wceq csn cuni wcel snexgOLD ax-mp rnex uniex
      cv vex df-2nd fnmpti wrex cab rnmpt opex op2nda eqcomi sneq unieqd eqeq2d
      cop rneqd rspcev mp2an 2th abbi2i eqtr4i df-fo mpbir2an ) CCDEDCFDGZCHACA
      PZIZGZJZDVAUTUSCKUTCKAQUSLMNOARZSURBPZVBHZACTZBUACABCVBDVCUBVFBCVDCKVFBQZ
      VDVDUIZCKVDVHIZGZJZHZVFVDVDVGVGUCVKVDVDVDVGVGUDUEVEVLAVHCUSVHHZVBVKVDVMVA
      VJVMUTVIUSVHUFUJUGUHUKULUMUNUOCCDUPUQ $.

    $( Mapping of a restriction of the ` 1st ` (first member of an ordered
       pair) function.  (Contributed by NM, 11-Oct-2004.)  (Revised by Mario
       Carneiro, 8-Sep-2013.) $)
    f1stres $p |- ( 1st |` ( A X. B ) ) : ( A X. B ) --> A $=
      ( vx vy vz cv csn cdm cuni wcel cxp wral c1st cres cop vex wceq cvv cmpt
      wf op1sta eleq1i adantr rgen2 sneq dmeqd unieqd eleq1d ralxp mpbir df-1st
      biimpri reseq1i wss ssv resmpt ax-mp eqtri fmpt mpbi ) CFZGZHZIZAJZCABKZL
      ZVFAMVFNZTVGDFZEFZOZGZHZIZAJZEBLDALVODEABVIAJZVOVJBJVOVPVNVIAVIVJDPEPUAUB
      ULUCUDVEVOCDEABVAVKQZVDVNAVQVCVMVQVBVLVAVKUEUFUGUHUIUJCVFAVDVHVHCRVDSZVFN
      ZCVFVDSZMVRVFCUKUMVFRUNVSVTQVFUOCRVFVDUPUQURUSUT $.

    $( Mapping of a restriction of the ` 2nd ` (second member of an ordered
       pair) function.  (Contributed by NM, 7-Aug-2006.)  (Revised by Mario
       Carneiro, 8-Sep-2013.) $)
    f2ndres $p |- ( 2nd |` ( A X. B ) ) : ( A X. B ) --> B $=
      ( vx vy vz cv csn crn cuni wcel cxp wral c2nd cres cop vex wceq cvv cmpt
      wf op2nda eleq1i adantl rgen2 sneq rneqd unieqd eleq1d ralxp mpbir df-2nd
      biimpri reseq1i wss ssv resmpt ax-mp eqtri fmpt mpbi ) CFZGZHZIZBJZCABKZL
      ZVFBMVFNZTVGDFZEFZOZGZHZIZBJZEBLDALVODEABVJBJZVOVIAJVOVPVNVJBVIVJDPEPUAUB
      ULUCUDVEVOCDEABVAVKQZVDVNBVQVCVMVQVBVLVAVKUEUFUGUHUIUJCVFBVDVHVHCRVDSZVFN
      ZCVFVDSZMVRVFCUKUMVFRUNVSVTQVFUOCRVFVDUPUQURUSUT $.
  $}

  ${
    $d y B $.  $d u v x $.  $d u v y $.  $d u v A $.  $d u v B $.
    $( Onto mapping of a restriction of the ` 1st ` (first member of an ordered
       pair) function.  (Contributed by Jim Kingdon, 24-Jan-2019.) $)
    fo1stresm $p |- ( E. y y e. B ->
                 ( 1st |` ( A X. B ) ) : ( A X. B ) -onto-> A ) $=
      ( vv vu cv wcel wex cxp c1st wfo wa wss cfv vex ax-mp sylbir jctil sylibr
      cres eleq1 cbvexv wf crn wceq wi cop opelxp fvres syl6req wfn f1stres ffn
      op1st fnfvelrn mpan eqeltrd expcom exlimiv ssrdv frn eqss dffo2 ) AFZCGZA
      HDFZCGZDHZBCIZBJVITZKZVGVEDAVFVDCUAUBVHVIBVJUCZVJUDZBUEZLVKVHVNVLVHVMBMZB
      VMMZLVNVHVPVOVHEBVMVGEFZBGZVQVMGZUFDVRVGVSVRVGLVQVFUGZVIGZVSVQVFBCUHWAVQV
      TVJNZVMWAWBVTJNVQVTVIJUIVQVFEODOUNUJVJVIUKZWAWBVMGVLWCBCULZVIBVJUMPVIVTVJ
      UOUPUQQURUSUTVLVOWDVIBVJVAPRVMBVBSWDRVIBVJVCSQ $.
  $}

  ${
    $d x A $.  $d u v x $.  $d u v y $.  $d u v A $.  $d u v B $.
    $( Onto mapping of a restriction of the ` 2nd ` (second member of an
       ordered pair) function.  (Contributed by Jim Kingdon, 24-Jan-2019.) $)
    fo2ndresm $p |- ( E. x x e. A ->
                 ( 2nd |` ( A X. B ) ) : ( A X. B ) -onto-> B ) $=
      ( vu vv cv wcel wex cxp c2nd wfo wa wss cfv vex ax-mp sylbir jctil sylibr
      cres eleq1 cbvexv wf crn wceq wi cop opelxp fvres syl6req wfn f2ndres ffn
      op2nd fnfvelrn mpan eqeltrd ex exlimiv ssrdv frn eqss dffo2 ) AFZBGZAHDFZ
      BGZDHZBCIZCJVITZKZVGVEDAVFVDBUAUBVHVICVJUCZVJUDZCUEZLVKVHVNVLVHVMCMZCVMMZ
      LVNVHVPVOVHECVMVGEFZCGZVQVMGZUFDVGVRVSVGVRLVFVQUGZVIGZVSVFVQBCUHWAVQVTVJN
      ZVMWAWBVTJNVQVTVIJUIVFVQDOEOUNUJVJVIUKZWAWBVMGVLWCBCULZVICVJUMPVIVTVJUOUP
      UQQURUSUTVLVOWDVICVJVAPRVMCVBSWDRVICVJVCSQ $.
  $}

  $( Composition of the first member function with another function.
     (Contributed by NM, 12-Oct-2007.) $)
  1stcof $p |- ( F : A --> ( B X. C ) -> ( 1st o. F ) : A --> B ) $=
    ( cxp wf c1st ccom wfn crn wss cvv wfo fo1st fofn ax-mp ffn dffn2 cres frn
    sylib fnfco sylancr rnco ssres2 rnss 3syl f1stres syl6ss syl5eqss sylanbrc
    df-f ) ABCEZDFZGDHZAIZUOJZBKABUOFUNGLIZALDFZUPLLGMURNLLGOPUNDAIUSAUMDQADRUA
    LAGDUBUCUNUQGDJZSZJZBGDUDUNVBGUMSZJZBUNUTUMKVAVCKVBVDKAUMDTUTUMGUEVAVCUFUGU
    MBVCFVDBKBCUHUMBVCTPUIUJABUOULUK $.

  $( Composition of the second member function with another function.
     (Contributed by FL, 15-Oct-2012.) $)
  2ndcof $p |- ( F : A --> ( B X. C ) -> ( 2nd o. F ) : A --> C ) $=
    ( cxp wf c2nd ccom wfn crn wss cvv wfo fo2nd fofn ax-mp ffn dffn2 cres frn
    sylib fnfco sylancr rnco ssres2 rnss 3syl f2ndres syl6ss syl5eqss sylanbrc
    df-f ) ABCEZDFZGDHZAIZUOJZCKACUOFUNGLIZALDFZUPLLGMURNLLGOPUNDAIUSAUMDQADRUA
    LAGDUBUCUNUQGDJZSZJZCGDUDUNVBGUMSZJZCUNUTUMKVAVCKVBVDKAUMDTUTUMGUEVAVCUFUGU
    MCVCFVDCKBCUHUMCVCTPUIUJACUOULUK $.

  ${
    $d A b c $.  $d B b c $.  $d C b c $.
    $( Location of the first element of a Cartesian product.  (Contributed by
       Jeff Madsen, 2-Sep-2009.) $)
    xp1st $p |- ( A e. ( B X. C ) -> ( 1st ` A ) e. B ) $=
      ( vb vc cxp wcel cv cop wceq wex c1st cfv elxp vex op1std biimpar adantrr
      wa eleq1d exlimivv sylbi ) ABCFGADHZEHZIJZUCBGZUDCGZSSZEKDKALMZBGZDEABCNU
      HUJDEUEUFUJUGUEUJUFUEUIUCBUCUDADOEOPTQRUAUB $.
  $}

  ${
    $d A b c $.  $d B b c $.  $d C b c $.
    $( Location of the second element of a Cartesian product.  (Contributed by
       Jeff Madsen, 2-Sep-2009.) $)
    xp2nd $p |- ( A e. ( B X. C ) -> ( 2nd ` A ) e. C ) $=
      ( vb vc cxp wcel cv cop wceq wex c2nd cfv elxp vex op2ndd biimpar adantrl
      wa eleq1d exlimivv sylbi ) ABCFGADHZEHZIJZUCBGZUDCGZSSZEKDKALMZCGZDEABCNU
      HUJDEUEUGUJUFUEUJUGUEUIUDCUCUDADOEOPTQRUAUB $.
  $}

  $( Existence of the first member of a set.  (Contributed by Jim Kingdon,
     26-Jan-2019.) $)
  1stexg $p |- ( A e. V -> ( 1st ` A ) e. _V ) $=
    ( wcel cvv c1st cfv elex wfn wfo fo1st fofn ax-mp funfvex funfni mpan syl )
    ABCADCZAEFDCZABGEDHZQRDDEISJDDEKLRDAEAEMNOP $.

  $( Existence of the first member of a set.  (Contributed by Jim Kingdon,
     26-Jan-2019.) $)
  2ndexg $p |- ( A e. V -> ( 2nd ` A ) e. _V ) $=
    ( wcel cvv c2nd cfv elex wfn wfo fo2nd fofn ax-mp funfvex funfni mpan syl )
    ABCADCZAEFDCZABGEDHZQRDDEISJDDEKLRDAEAEMNOP $.

  $( Membership in a cross product.  This version requires no quantifiers or
     dummy variables.  See also ~ elxp4 .  (Contributed by NM, 9-Oct-2004.) $)
  elxp6 $p |- ( A e. ( B X. C ) <-> ( A = <. ( 1st ` A ) , ( 2nd ` A ) >.
               /\ ( ( 1st ` A ) e. B /\ ( 2nd ` A ) e. C ) ) ) $=
    ( cxp wcel cvv c1st cfv c2nd wceq wa elex opexg adantl wb eleq1 cuni eleq1d
    cop anbi12d adantr mpbird csn cdm crn 1stvalg 2ndvalg eqeq2d elxp4 syl6rbbr
    opeq12d pm5.21nii ) ABCDZEZAFEZAAGHZAIHZSZJZUPBEZUQCEZKZKZAUMLVCUOURFEZVBVD
    USUPUQBCMNUSUOVDOVBAURFPUAUBUOVCAAUCZUDQZVEUEQZSZJZVFBEZVGCEZKZKUNUOUSVIVBV
    LUOURVHAUOUPVFUQVGAUFZAUGZUKUHUOUTVJVAVKUOUPVFBVMRUOUQVGCVNRTTABCUIUJUL $.

  $( Membership in a cross product.  This version requires no quantifiers or
     dummy variables.  See also ~ elxp4 .  (Contributed by NM, 19-Aug-2006.) $)
  elxp7 $p |- ( A e. ( B X. C ) <-> ( A e. ( _V X. _V )
               /\ ( ( 1st ` A ) e. B /\ ( 2nd ` A ) e. C ) ) ) $=
    ( cxp wcel cvv c1st cfv c2nd wa elex adantr cop wceq 1stexg 2ndexg biantrud
    jca elxp6 syl6rbbr anbi1d pm5.21nii ) ABCDZEZAFEZAFFDZEZAGHZBEAIHZCEJZJZAUC
    KUGUEUJAUFKLUEUKAUHUIMNZUJJUDUEUGULUJUEULULUHFEZUIFEZJZJUGUEUOULUEUMUNAFOAF
    PRQAFFSTUAABCSTUB $.

  $( Equality with an ordered pair.  (Contributed by NM, 15-Dec-2008.)
     (Revised by Mario Carneiro, 23-Feb-2014.) $)
  eqopi $p |- ( ( A e. ( V X. W ) /\ ( ( 1st ` A ) = B /\ ( 2nd ` A ) = C ) )
              -> A = <. B , C >. ) $=
    ( cxp wcel cvv c1st cfv wceq c2nd wa cop xpss sseli simplbi opeq12 sylan9eq
    elxp6 sylan ) ADEFZGAHHFZGZAIJZBKALJZCKMZABCNZKUBUCADEOPUDUGAUEUFNZUHUDAUIK
    UEHGUFHGMAHHTQUEUFBCRSUA $.

  ${
    $d x A $.  $d x B $.
    $( Representation of cross product based on ordered pair component
       functions.  (Contributed by NM, 16-Sep-2006.) $)
    xp2 $p |- ( A X. B ) = { x e. ( _V X. _V ) | ( ( 1st ` x ) e. A /\
              ( 2nd ` x ) e. B ) } $=
      ( cxp cv cvv wcel c1st cfv c2nd wa cab crab elxp7 abbi2i df-rab eqtr4i )
      BCDZAEZFFDZGSHIBGSJICGKZKZALUAATMUBARSBCNOUAATPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The membership relation for a cross product is inherited by union.
       (Contributed by NM, 16-Sep-2006.) $)
    unielxp $p |- ( A e. ( B X. C ) -> U. A e. U. ( B X. C ) ) $=
      ( vx cxp wcel cvv c1st cfv c2nd wa cuni elxp7 elvvuni adantr cv cab fveq2
      eleq1d anbi12d wex simprl wceq eleq2 eleq1 spcegv eluniab sylibr crab xp2
      mpcom df-rab eqtri unieqi syl6eleqr mpancom sylbi ) ABCEZFAGGEZFZAHIZBFZA
      JIZCFZKZKZALZURLZFZABCMVGAFZVFVIUTVJVEANOVJVFKZVGDPZUSFZVLHIZBFZVLJIZCFZK
      ZKZDQZLZVHVKVGVLFZVSKZDUAZVGWAFUTVKWDVJUTVEUBWCVKDAUSVLAUCZWBVJVSVFVLAVGU
      DWEVMUTVRVEVLAUSUEWEVOVBVQVDWEVNVABVLAHRSWEVPVCCVLAJRSTTTUFUKVSDVGUGUHURV
      TURVRDUSUIVTDBCUJVRDUSULUMUNUOUPUQ $.
  $}

  $( Reconstruction of a member of a cross product in terms of its ordered pair
     components.  (Contributed by NM, 20-Oct-2013.) $)
  1st2nd2 $p |- ( A e. ( B X. C ) -> A = <. ( 1st ` A ) , ( 2nd ` A ) >. ) $=
    ( cxp wcel c1st cfv c2nd cop wceq wa elxp6 simplbi ) ABCDEAAFGZAHGZIJNBEOCE
    KABCLM $.

  $( An ordered pair theorem for members of cross products.  (Contributed by
     NM, 20-Jun-2007.) $)
  xpopth $p |- ( ( A e. ( C X. D ) /\ B e. ( R X. S ) ) ->
       ( ( ( 1st ` A ) = ( 1st ` B ) /\
     ( 2nd ` A ) = ( 2nd ` B ) ) <-> A = B ) ) $=
    ( cxp wcel wa wceq c1st cfv c2nd cop 1st2nd2 eqeqan12d wb cvv 1stexg 2ndexg
    opthg syl2anc adantr bitr2d ) ACDGZHZBEFGHZIABJAKLZAMLZNZBKLZBMLZNZJZUHUKJU
    IULJIZUFUGAUJBUMACDOBEFOPUFUNUOQZUGUFUHRHUIRHUPAUESAUETUHUIUKULRRUAUBUCUD
    $.

  $( Two ways to express equality with an ordered pair.  (Contributed by NM,
     3-Sep-2007.)  (Proof shortened by Mario Carneiro, 26-Apr-2015.) $)
  eqop $p |- ( A e. ( V X. W ) -> ( A = <. B , C >.
            <-> ( ( 1st ` A ) = B /\ ( 2nd ` A ) = C ) ) ) $=
    ( cxp wcel cop wceq c1st cfv c2nd wa 1st2nd2 eqeq1d cvv 1stexg 2ndexg opthg
    wb syl2anc bitrd ) ADEFZGZABCHZIAJKZALKZHZUEIZUFBIUGCIMZUDAUHUEADENOUDUFPGU
    GPGUIUJTAUCQAUCRUFUGBCPPSUAUB $.

  ${
    eqop2.1 $e |- B e. _V $.
    eqop2.2 $e |- C e. _V $.
    $( Two ways to express equality with an ordered pair.  (Contributed by NM,
       25-Feb-2014.) $)
    eqop2 $p |- ( A = <. B , C >.
       <-> ( A e. ( _V X. _V ) /\ ( ( 1st ` A ) = B /\ ( 2nd ` A ) = C ) ) ) $=
      ( cop wceq cvv cxp wcel c1st cfv c2nd wa opelvv eleq1 mpbiri eqop biadan2
      ) ABCFZGZAHHIZJZAKLBGAMLCGNUAUCTUBJBCDEOATUBPQABCHHRS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Two ways of expressing that an element is the first member of an ordered
       pair.  (Contributed by NM, 22-Sep-2013.)  (Revised by Mario Carneiro,
       23-Feb-2014.) $)
    op1steq $p |- ( A e. ( V X. W )
         -> ( ( 1st ` A ) = B <-> E. x A = <. B , x >. ) ) $=
      ( cxp wcel cvv c1st cfv wceq cv cop wex wb xpss sseli wa c2nd syl eqid wi
      eqopi mpanr2 2ndexg opeq2 eqeq2d spcegv adantr mpd ex eqop syl6bi exlimdv
      simpl impbid ) BDEFZGBHHFZGZBIJCKZBCALZMZKZANZOUQURBDEPQUSUTVDUSUTVDUSUTR
      BCBSJZMZKZVDUSUTVEVEKVGVEUABCVEHHUCUDUSVGVDUBZUTUSVEHGVHBURUEVCVGAVEHVAVE
      KVBVFBVAVECUFUGUHTUIUJUKUSVCUTAUSVCUTVEVAKZRUTBCVAHHULUTVIUOUMUNUPT $.
  $}

  $( Swap the members of an ordered pair.  (Contributed by NM, 31-Dec-2014.) $)
  2nd1st $p |- ( A e. ( B X. C ) ->
    U. `' { A } = <. ( 2nd ` A ) , ( 1st ` A ) >. ) $=
    ( cxp wcel csn ccnv cuni c1st cfv c2nd cop 1st2nd2 sneqd cnveqd unieqd wceq
    cvv 1stexg 2ndexg opswapg syl2anc eqtrd ) ABCDZEZAFZGZHAIJZAKJZLZFZGZHZUIUH
    LZUEUGULUEUFUKUEAUJABCMNOPUEUHREUIREUMUNQAUDSAUDTUHUIRRUAUBUC $.

  $( Reconstruction of a member of a relation in terms of its ordered pair
     components.  (Contributed by NM, 29-Aug-2006.) $)
  1st2nd $p |- ( ( Rel B /\ A e. B ) ->
               A = <. ( 1st ` A ) , ( 2nd ` A ) >. ) $=
    ( wrel wcel wa cvv cxp c1st cfv c2nd cop wceq wss df-rel sylanb 1st2nd2 syl
    ssel2 ) BCZABDZEAFFGZDZAAHIAJIKLSBUAMTUBBNBUAAROAFFPQ $.

  $( The first ordered pair component of a member of a relation belongs to the
     domain of the relation.  (Contributed by NM, 17-Sep-2006.) $)
  1stdm $p |- ( ( Rel R /\ A e. R ) -> ( 1st ` A ) e. dom R ) $=
    ( wrel wcel c1st cfv cint cdm cvv cxp wceq wss df-rel biimpi sselda 1stval2
    wa syl elreldm eqeltrd ) BCZABDQZAEFZAGGZBHUBAIIJZDUCUDKUABUEAUABUELBMNOAPR
    BAST $.

  $( The second ordered pair component of a member of a relation belongs to the
     range of the relation.  (Contributed by NM, 17-Sep-2006.) $)
  2ndrn $p |- ( ( Rel R /\ A e. R ) -> ( 2nd ` A ) e. ran R ) $=
    ( wrel wcel wa c1st cfv cop crn simpr 1st2nd eqeltrrd cvv 1stexg 2ndexg jca
    c2nd opelrng 3expa sylan syl2anc ) BCZABDZEZUCAFGZAQGZHZBDZUFBIDZUBUCJZUDAU
    GBABKUJLUCUEMDZUFMDZEUHUIUCUKULABNABOPUKULUHUIUEUFBMMRSTUA $.

  $( Express an element of a relation as a relationship between first and
     second components.  (Contributed by Mario Carneiro, 22-Jun-2016.) $)
  1st2ndbr $p |- ( ( Rel B /\ A e. B ) -> ( 1st ` A ) B ( 2nd ` A ) ) $=
    ( wrel wcel wa c1st cfv c2nd cop wbr 1st2nd simpr eqeltrrd df-br sylibr ) B
    CZABDZEZAFGZAHGZIZBDSTBJRAUABABKPQLMSTBNO $.

  ${
    $d x y A $.  $d x y B $.
    $( Two ways of expressing membership in the domain of a relation.
       (Contributed by NM, 22-Sep-2013.) $)
    releldm2 $p |- ( Rel A
         -> ( B e. dom A <-> E. x e. A ( 1st ` x ) = B ) ) $=
      ( vy wrel cdm wcel cv c1st cfv wceq wrex cvv wa elex anim2i id vex wex wb
      1stexg ax-mp syl6eqelr rexlimivw cop eldm2g adantl cxp wss wi df-rel ssel
      sylbi imp op1steq syl rexbidva adantr rexcom4 risset bitr4i syl6bb bitr4d
      exbii pm5.21nd ) BEZCBFZGZAHZIJZCKZABLZVFCMGZNZVHVMVFCVGOPVLVMVFVKVMABVKC
      VJMVKQVIMGVJMGARVIMUAUBUCUDPVNVHCDHUEZBGZDSZVLVMVHVQTVFDCBMUFUGVNVLVIVOKZ
      DSZABLZVQVFVLVTTVMVFVKVSABVFVIBGZNVIMMUHZGZVKVSTVFWAWCVFBWBUIWAWCUJBUKBWB
      VIULUMUNDVICMMUOUPUQURVTVRABLZDSVQVRADBUSVPWDDAVOBUTVDVAVBVCVE $.
  $}

  ${
    $d x y z A $.
    $( An expression for the domain of a relation.  (Contributed by NM,
       22-Sep-2013.) $)
    reldm $p |- ( Rel A -> dom A = ran ( x e. A |-> ( 1st ` x ) ) ) $=
      ( vy vz wrel cdm c1st cfv cmpt crn wcel wceq wrex releldm2 cvv vex 1stexg
      cv wb ax-mp wfn eqid fnmpti fvelrnb fveq2 fvmpt rexbiia a1i syl5rbb bitrd
      eqeq1d eqrdv ) BEZCBFZABARZGHZIZJZUMCRZUNKDRZGHZUSLZDBMZUSURKZDBUSNVDUTUQ
      HZUSLZDBMZUMVCUQBUAVDVGSABUPUQUOOKUPOKAPUOOQTUQUBZUCDBUSUQUDTVGVCSUMVFVBD
      BUTBKVEVAUSAUTUPVABUQUOUTGUEVHUTOKVAOKDPUTOQTUFUKUGUHUIUJUL $.
  $}

  $( Equality theorem for substitution of a class for an ordered pair (analog
     of ~ sbceq1a that avoids the existential quantifiers of ~ copsexg ).
     (Contributed by NM, 19-Aug-2006.)  (Revised by Mario Carneiro,
     31-Aug-2015.) $)
  sbcopeq1a $p |- ( A = <. x , y >. ->
      ( [. ( 1st ` A ) / x ]. [. ( 2nd ` A ) / y ]. ph <-> ph ) ) $=
    ( cv cop wceq c2nd cfv wsbc c1st wb vex op2ndd eqcomd sbceq1a op1std bitr2d
    syl ) DBEZCEZFGZAACDHIZJZUDBDKIZJZUBUAUCGAUDLUBUCUATUADBMZCMZNOACUCPSUBTUEG
    UDUFLUBUETTUADUGUHQOUDBUEPSR $.

  $( Equality theorem for substitution of a class ` A ` for an ordered pair
     ` <. x , y >. ` in ` B ` (analog of ~ csbeq1a ).  (Contributed by NM,
     19-Aug-2006.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
  csbopeq1a $p |- ( A = <. x , y >. ->
      [_ ( 1st ` A ) / x ]_ [_ ( 2nd ` A ) / y ]_ B = B ) $=
    ( cv cop wceq c2nd cfv csb c1st vex op2ndd eqcomd csbeq1a syl op1std eqtr2d
    ) CAEZBEZFGZDBCHIZDJZACKIZUCJZUATUBGDUCGUAUBTSTCALZBLZMNBUBDOPUASUDGUCUEGUA
    UDSSTCUFUGQNAUDUCOPR $.

  ${
    $d z ph $.  $d x y z $.
    $( A way to define an ordered-pair class abstraction without using
       existential quantifiers.  (Contributed by NM, 18-Aug-2006.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    dfopab2 $p |- { <. x , y >. | ph } = { z e. ( _V X. _V ) |
                  [. ( 1st ` z ) / x ]. [. ( 2nd ` z ) / y ]. ph } $=
      ( cv cop wceq wex cab cvv cxp wcel c2nd cfv wsbc c1st nfsbc1v 19.41 exbii
      wa copab crab sbcopeq1a pm5.32i nfsbc bitr3i anbi1i 3bitr4i abbii df-opab
      nfcv elvv df-rab 3eqtr4i ) DEZBECEFGZATZCHZBHZDIUOJJKZLZACUOMNZOZBUOPNZOZ
      TZDIABCUAVEDUTUBUSVFDUPCHZVETZBHVGBHZVETUSVFVGVEBVCBVDQRURVHBURUPVETZCHVH
      VJUQCUPVEAABCUOUCUDSUPVECVCCBVDCVDUKACVBQUERUFSVAVIVEBCUOULUGUHUIABCDUJVE
      DUTUMUN $.
  $}

  ${
    $d w ph $.  $d x y z w $.
    $( A way to define an operation class abstraction without using existential
       quantifiers.  (Contributed by NM, 18-Aug-2006.)  (Revised by Mario
       Carneiro, 31-Aug-2015.) $)
    dfoprab3s $p |- { <. <. x , y >. , z >. | ph } = { <. w , z >. |
       ( w e. ( _V X. _V )
           /\ [. ( 1st ` w ) / x ]. [. ( 2nd ` w ) / y ]. ph ) } $=
      ( coprab cv cop wceq wex copab cvv cxp wcel cfv wsbc nfsbc1v 19.41 exbii
      wa c2nd c1st dfoprab2 sbcopeq1a pm5.32i nfcv nfsbc bitr3i 3bitr4i opabbii
      elvv anbi1i eqtri ) ABCDFEGZBGCGHIZATZCJZBJZEDKUNLLMNZACUNUAOZPZBUNUBOZPZ
      TZEDKABCDEUCURVDEDUOCJZVCTZBJVEBJZVCTURVDVEVCBVABVBQRUQVFBUQUOVCTZCJVFVHU
      PCUOVCAABCUNUDUESUOVCCVACBVBCVBUFACUTQUGRUHSUSVGVCBCUNUKULUIUJUM $.
  $}

  ${
    $d x y ph $.  $d w ps $.  $d x y z w $.
    dfoprab3.1 $e |- ( w = <. x , y >. -> ( ph <-> ps ) ) $.
    $( Operation class abstraction expressed without existential quantifiers.
       (Contributed by NM, 16-Dec-2008.) $)
    dfoprab3 $p |- { <. w , z >. | ( w e. ( _V X. _V ) /\ ph ) } =
       { <. <. x , y >. , z >. | ps } $=
      ( coprab cv cvv cxp wcel cfv wsbc wa copab ax-mp wceq wb eqcom vex 1stexg
      c2nd c1st dfoprab3s 2ndexg cop anbi12i eqopi sylan2b syl sbc2iedv pm5.32i
      bicomd ex opabbii eqtr2i ) BCDEHFIZJJKLZBDURUCMZNCURUDMZNZOZFEPUSAOZFEPBC
      DEFUEVCVDFEUSVBAUSBACDVAUTURJLZVAJLFUAZURJUBQVEUTJLVFURJUFQUSCIZVARZDIZUT
      RZOZBASUSVKOZABVLURVGVIUGRZABSVKUSVAVGRZUTVIRZOVMVHVNVJVOVGVATVIUTTUHURVG
      VIJJUIUJGUKUNUOULUMUPUQ $.
  $}

  ${
    $d w x y A $.  $d w x y B $.  $d x y ph $.  $d w ps $.  $d w x y z $.
    dfoprab4.1 $e |- ( w = <. x , y >. -> ( ph <-> ps ) ) $.
    $( Operation class abstraction expressed without existential quantifiers.
       (Contributed by NM, 3-Sep-2007.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    dfoprab4 $p |- { <. w , z >. | ( w e. ( A X. B ) /\ ph ) } =
      { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ps ) } $=
      ( cv cxp wcel wa copab cvv coprab xpss sseli adantr pm4.71ri opabbii wceq
      cop eleq1 opelxp syl6bb anbi12d dfoprab3 eqtri ) FJZGHKZLZAMZFENUJOOKZLZU
      MMZFENCJZGLDJZHLMZBMZCDEPUMUPFEUMUOULUOAUKUNUJGHQRSTUAUMUTCDEFUJUQURUCZUB
      ZULUSABVBULVAUKLUSUJVAUKUDUQURGHUEUFIUGUHUI $.
  $}

  ${
    $d t u w x y z $.  $d t u w x y A $.  $d t u w x y B $.  $d t u w ps $.
    $d t u ph $.
    dfoprab4f.x $e |- F/ x ph $.
    dfoprab4f.y $e |- F/ y ph $.
    dfoprab4f.1 $e |- ( w = <. x , y >. -> ( ph <-> ps ) ) $.
    $( Operation class abstraction expressed without existential quantifiers.
       (Unnecessary distinct variable restrictions were removed by David
       Abernethy, 19-Jun-2012.)  (Contributed by NM, 20-Dec-2008.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    dfoprab4f $p |- { <. w , z >. | ( w e. ( A X. B ) /\ ph ) } =
      { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ps ) } $=
      ( vt vu cv wcel wa cop wceq wb nfv cxp copab coprab nfs1v nfbi nfim opeq1
      wsb wi eqeq2d sbequ12 bibi2d imbi12d opeq2 chvar dfoprab4 nfan nfsb eleq1
      bi2anan9 sylan9bbr anbi12d cbvoprab12 eqtr4i ) FNZGHUAOAPFEUBLNZGOZMNZHOZ
      PZBDMUHZCLUHZPZLMEUCCNZGOZDNZHOZPZBPZCDEUCAVLLMEFGHVEVNVHQZRZAVKSZUIZVEVF
      VHQZRZAVLSZUICLWEWFCWECTAVLCIVKCLUDZUEUFVNVFRZWAWEWBWFWHVTWDVEVNVFVHUGUJW
      HVKVLAVKCLUKZULUMVEVNVPQZRZABSZUIWCDMWAWBDWADTAVKDJBDMUDZUEUFVPVHRZWKWAWL
      WBWNWJVTVEVPVHVNUNUJWNBVKABDMUKZULUMKUOUOUPVSVMCDELMVSLTVSMTVJVLCVJCTWGUQ
      VJVLDVJDTVKCLDWMURUQWHWNPVRVJBVLWHVOVGWNVQVIVNVFGUSVPVHHUSUTWNBVKWHVLWOWI
      VAVBVCVD $.
  $}

  ${
    $d x y z u A $.  $d x y z u B $.  $d x y z u C $.
    $( Define the cross product of three classes.  Compare ~ df-xp .
       (Contributed by FL, 6-Nov-2013.)  (Proof shortened by Mario Carneiro,
       3-Nov-2015.) $)
    dfxp3 $p |- ( ( A X. B ) X. C ) =
      { <. <. x , y >. , z >. | ( x e. A /\ y e. B /\ z e. C ) } $=
      ( vu cv cxp wcel wa copab coprab w3a cop wceq biidd dfoprab4 df-xp df-3an
      oprabbii 3eqtr4i ) GHZDEIZJCHFJZKGCLAHZDJZBHZEJZKUEKZABCMUDFIUGUIUENZABCM
      UEUEABCGDEUCUFUHOPUEQRGCUDFSUKUJABCUGUIUETUAUB $.
  $}

  ${
    $d x y A $.  $d x y ch $.
    elopabi.1 $e |- ( x = ( 1st ` A ) -> ( ph <-> ps ) ) $.
    elopabi.2 $e |- ( y = ( 2nd ` A ) -> ( ps <-> ch ) ) $.
    $( A consequence of membership in an ordered-pair class abstraction, using
       ordered pair extractors.  (Contributed by NM, 29-Aug-2006.) $)
    elopabi $p |- ( A e. { <. x , y >. | ph } -> ch ) $=
      ( copab wcel c1st cfv c2nd cop wrel wceq relopab 1st2nd mpan cvv eqeltrrd
      id wb 1stexg 2ndexg opelopabg syl2anc mpbid ) FADEIZJZFKLZFMLZNZUIJZCUJFU
      MUIUIOUJFUMPADEQFUIRSUJUBUAUJUKTJULTJUNCUCFUIUDFUIUEABCDEUKULTTGHUFUGUH
      $.
  $}

  ${
    $d w x y z A $.  $d w ph $.  $d x y z th $.
    eloprabi.1 $e |- ( x = ( 1st ` ( 1st ` A ) ) -> ( ph <-> ps ) ) $.
    eloprabi.2 $e |- ( y = ( 2nd ` ( 1st ` A ) ) -> ( ps <-> ch ) ) $.
    eloprabi.3 $e |- ( z = ( 2nd ` A ) -> ( ch <-> th ) ) $.
    $( A consequence of membership in an operation class abstraction, using
       ordered pair extractors.  (Contributed by NM, 6-Nov-2006.)  (Revised by
       David Abernethy, 19-Jun-2012.) $)
    eloprabi $p |- ( A e. { <. <. x , y >. , z >. | ph } -> th ) $=
      ( vw cv wceq wex c1st cfv wb syl c2nd coprab wcel wa eqeq1 anbi1d 3exbidv
      cop df-oprab elab2g ibi vex opex op1std fveq2d op1st syl6req op2nd op2ndd
      eqcomd 3bitrd biimpa exlimiv ) HAEFGUAZUBZHEMZFMZUGZGMZUGZNZAUCZGOZFOZEOZ
      DVDVNLMZVINZAUCZGOFOEOVNLHVCVCVOHNZVQVKEFGVRVPVJAVOHVIUDUEUFAEFGLUHUIUJVM
      DEVLDFVKDGVJADVJABCDVJVEHPQZPQZNABRVJVTVGPQVEVJVSVGPVGVHHVEVFEUKZFUKZULZG
      UKZUMZUNVEVFWAWBUOUPISVJVFVSTQZNBCRVJWFVGTQVFVJVSVGTWEUNVEVFWAWBUQUPJSVJV
      HHTQZNCDRVJWGVHVGVHHWCWDURUSKSUTVAVBVBVBS $.
  $}

  ${
    $d u v x y z A $.  $d t u v y z B $.  $d t u v z C $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    mpt2mptsx $p |- ( x e. A , y e. B |-> C ) = ( z e. U_ x e. A ( { x } X. B )
        |-> [_ ( 1st ` z ) / x ]_ [_ ( 2nd ` z ) / y ]_ C ) $=
      ( vu vv cv csn csb cxp ciun cfv cmpt cmpt2 wceq nfcv nfcsb1v csbeq1a c1st
      c2nd cop vex op1std csbeq1d op2ndd csbeq2dv eqtrd mpt2mptx xpeq12d cbviun
      nfxp sneq mpteq1 ax-mp nfcsb sylan9eqr cbvmpt2x 3eqtr4ri ) CGDGIZJZAVAEKZ
      LZMZACIZUANZBVFUBNZFKZKZOZGHDVCAVABHIZFKZKZPCADAIZJZELZMZVJOZABDEFPGHCDVC
      VJVNVFVAVLUCQZVJAVAVIKVNVTAVGVAVIVAVLVFGUDZHUDZUEUFVTAVAVIVMVTBVHVLFVAVLV
      FWAWBUGUFUHUIUJVRVEQVSVKQAGDVQVDGVQRAVBVCAVBRAVAESZUMVOVAQZVPVBEVCVOVAUNA
      VAETZUKULCVRVEVJUOUPABGHDEFVCVNGERWCGFRHFRAVAVMSBAVAVMBVARBVLFSUQWEBIVLQW
      DFVMVNBVLFTAVAVMTURUSUT $.

    $d x B $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  (Contributed by Mario Carneiro, 24-Sep-2015.) $)
    mpt2mpts $p |- ( x e. A , y e. B |-> C ) =
      ( z e. ( A X. B ) |-> [_ ( 1st ` z ) / x ]_ [_ ( 2nd ` z ) / y ]_ C ) $=
      ( cv csn cxp ciun c1st cfv c2nd csb cmpt mpt2mptsx wceq iunxpconst mpteq1
      cmpt2 ax-mp eqtri ) ABDEFTCADAGHEIJZACGZKLBUDMLFNNZOZCDEIZUEOZABCDEFPUCUG
      QUFUHQADERCUCUGUESUAUB $.
  $}

  ${
    $d t u v w x y z A $.  $d t u v w y z B $.  $d t u v w z C $.
    $d v w x y z D $.
    fmpt2x.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( The domain of a mapping is a subset of its base class.  (Contributed by
       Mario Carneiro, 9-Feb-2015.) $)
    dmmpt2ssx $p |- dom F C_ U_ x e. A ( { x } X. B ) $=
      ( vu vt vv cv csn csb cxp ciun cfv nfcv nfcsb1v csbeq1a wceq cdm cbvmpt2x
      c1st c2nd cmpt2 cmpt nfcsb sylan9eqr cop vex op1std op2ndd csbeq2dv eqtrd
      csbeq1d mpt2mptx 3eqtr4i dmmptss nfxp sneq xpeq12d cbviun sseqtr4i ) FUAH
      CHKZLZAVDDMZNZOZACAKZLZDNZOIVHAIKZUCPZBVLUDPZEMZMZFABCDEUEHJCVFAVDBJKZEMZ
      MZUEFIVHVPUFABHJCDEVFVSHDQAVDDRZHEQJEQAVDVRRBAVDVRBVDQBVQERUGAVDDSZBKVQTV
      IVDTZEVRVSBVQESAVDVRSUHUBGHJICVFVPVSVLVDVQUITZVPAVDVOMVSWCAVMVDVOVDVQVLHU
      JZJUJZUKUOWCAVDVOVRWCBVNVQEVDVQVLWDWEULUOUMUNUPUQURAHCVKVGHVKQAVEVFAVEQVT
      USWBVJVEDVFVIVDUTWAVAVBVC $.

    $( Functionality, domain and codomain of a class given by the "maps to"
       notation, where ` B ( x ) ` is not constant but depends on ` x ` .
       (Contributed by NM, 29-Dec-2014.) $)
    fmpt2x $p |- ( A. x e. A A. y e. B C e. D <->
      F : U_ x e. A ( { x } X. B ) --> D ) $=
      ( vz vw vv cv csb wcel wral wceq eleq1d wa nfv nfcsb1v csn ciun c1st c2nd
      cxp wf cfv cop op1std csbeq1d op2ndd csbeq2dv eqtrd raliunxp cmpt2 coprab
      cmpt nfcri nfan nfeq2 nfcv nfcsb wb eleq1 adantr csbeq1a eleq2d sylan9bbr
      anbi12d sylan9eqr eqeq2d cbvoprab12 df-mpt2 3eqtr4i mpt2mptx bitr3i nfel1
      vex fmpt nfralxy cbvral raleqbidv syl5bb nfxp sneq xpeq12d cbviun 3bitr4i
      feq2i ) AILZBJLZEMZMZFNZJAWJDMZOZICOZICWJUAZWOUEZUBZFGUFZEFNZBDOZACOACALZ
      UAZDUEZUBZFGUFWQAKLZUCUGZBXHUDUGZEMZMZFNZKWTOXAXMWNKIJCWOXHWJWKUHPZXLWMFX
      NXLAWJXKMWMXNAXIWJXKWJWKXHIVRZJVRZUIUJXNAWJXKWLXNBXJWKEWJWKXHXOXPUKUJULUM
      ZQUNKWTFXLGABCDEUOZIJCWOWMUOZGKWTXLUQXDCNZBLZDNZRZXHEPZRZABKUPWJCNZWKWONZ
      RZXHWMPZRZIJKUPXRXSYEYJABKIJYEISYEJSYHYIAYFYGAYFASAJWOAWJDTZURUSAXHWMAWJW
      LTZUTUSYHYIBYHBSBXHWMBAWJWLBWJVABWKETZVBUTUSXDWJPZYAWKPZRZYCYHYDYIYPXTYFY
      BYGYNXTYFVCYOXDWJCVDVEYOYBWKDNYNYGYAWKDVDYNDWOWKAWJDVFZVGVHVIYPEWMXHYOYNE
      WLWMBWKEVFZAWJWLVFZVJVKVIVLABKCDEVMIJKCWOWMVMVNHIJKCWOXLWMXQVOVNVSVPXCWPA
      ICXCISWNAJWOYKAWMFYLVQVTXCWLFNZJDOYNWPXBYTBJDXBJSBWLFYMVQYOEWLFYRQWAYNYTW
      NJDWOYQYNWLWMFYSQWBWCWAXGWTFGAICXFWSIXFVAAWRWOAWRVAYKWDYNXEWRDWOXDWJWEYQW
      FWGWIWH $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C z $.  $d D x y z $.
    fmpt2.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Functionality, domain and range of a class given by the "maps to"
       notation.  (Contributed by FL, 17-May-2010.) $)
    fmpt2 $p |- ( A. x e. A A. y e. B C e. D <-> F : ( A X. B ) --> D ) $=
      ( wcel wral cv csn cxp ciun wf fmpt2x iunxpconst feq2i bitri ) EFIBDJACJA
      CAKLDMNZFGOCDMZFGOABCDEFGHPTUAFGACDQRS $.

    $( Functionality and domain of a class given by the "maps to" notation.
       (Contributed by FL, 17-May-2010.) $)
    fnmpt2 $p |- ( A. x e. A A. y e. B C e. V -> F Fn ( A X. B ) ) $=
      ( wcel wral cvv cxp wfn elex ralimi wf fmpt2 dffn2 bitr4i sylib ) EGIZBDJ
      ZACJEKIZBDJZACJZFCDLZMZUBUDACUAUCBDEGNOOUEUFKFPUGABCDEKFHQUFFRST $.

    $d R z $.  $d S z $.  $d V z $.
    $( Sufficient condition for an operation maps-to notation to be set-like.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    mpt2fvex $p |- ( ( A. x A. y C e. V /\ R e. W /\ S e. X ) ->
      ( R F S ) e. _V ) $=
      ( vz wcel wal cfv cvv cv csb alimi w3a co cop df-ov c1st c2nd elex wi vex
      2ndexg nfcv nfcsb1v nfel1 wceq csbeq1a eleq1d spcgf mp2b alrimiv 3ad2ant1
      syl opexg 3adant1 csn cxp ciun cmpt2 cmpt mpt2mptsx eqtri mptfvex syl2anc
      1stexg syl5eqel ) EINZBOZAOZFJNZGKNZUAZFGHUBFGUCZHPZQFGHUDVTAMRZUEPZBWCUF
      PZESZSZQNZMOZWAQNZWBQNVQVRWIVSVQWHMVQWFQNZAOZWHVPWKAVPEQNZBOZWKVOWMBEIUGT
      WCQNZWEQNWNWKUHMUIZWCQUJWMWKBWEQBWEUKBWFQBWEEULUMBRWEUNEWFQBWEEUOUPUQURVA
      TWOWDQNWLWHUHWPWCQVMWKWHAWDQAWDUKAWGQAWDWFULUMARZWDUNWFWGQAWDWFUOUPUQURVA
      USUTVRVSWJVQFGJKVBVCMACWQVDDVEVFZWGWAHQQHABCDEVGMWRWGVHLABMCDEVIVJVKVLVN
      $.

    fnmpt2i.2 $e |- C e. _V $.
    $( Functionality and domain of a class given by the "maps to" notation.
       (Contributed by FL, 17-May-2010.) $)
    fnmpt2i $p |- F Fn ( A X. B ) $=
      ( cvv wcel wral cxp wfn rgen2w fnmpt2 ax-mp ) EIJZBDKACKFCDLMQABCDHNABCDE
      FIGOP $.

    $( Domain of a class given by the "maps to" notation.  (Contributed by FL,
       17-May-2010.) $)
    dmmpt2 $p |- dom F = ( A X. B ) $=
      ( cxp wfn cdm wceq fnmpt2i fndm ax-mp ) FCDIZJFKPLABCDEFGHMPFNO $.

    mpt2fvexi.3 $e |- R e. _V $.
    mpt2fvexi.4 $e |- S e. _V $.
    $( Sufficient condition for an operation maps-to notation to be set-like.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    mpt2fvexi $p |- ( R F S ) e. _V $=
      ( cvv wcel wal co gen2 mpt2fvex mp3an ) EMNZBOAOFMNGMNFGHPMNTABJQKLABCDEF
      GHMMMIRS $.
  $}

  ${
    $d A x y z $.  $d B y z $.  $d C z $.
    mpt2exg.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Existence of an operation class abstraction (version for dependent
       domains).  (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    mpt2exxg $p |- ( ( A e. R /\ A. x e. A B e. S ) -> F e. _V ) $=
      ( wcel wral wa wfun cdm cvv mpt2fun cv csn cxp sylancr ciun wss dmmpt2ssx
      vex snexg ax-mp xpexg mpan ralimi iunexg sylan2 ssexg funex ) CFJZDGJZACK
      ZLZHMHNZOJZHOJABCDEHIPUQURACAQZRZDSZUAZUBVCOJZUSABCDEHIUCUPUNVBOJZACKVDUO
      VEACVAOJZUOVEUTOJVFAUDUTOUEUFVADOGUGUHUIACVBFOUJUKURVCOULTOHUMT $.

    $d x B $.
    $( Existence of an operation class abstraction (special case).
       (Contributed by FL, 17-May-2010.)  (Revised by Mario Carneiro,
       1-Sep-2015.) $)
    mpt2exg $p |- ( ( A e. R /\ B e. S ) -> F e. _V ) $=
      ( wcel cvv wral elex ralrimivw syl mpt2exxg sylan2 ) DGJZCFJDKJZACLZHKJRS
      TDGMSSACDKMNOABCDEFKHIPQ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d z C $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by NM, 12-Sep-2011.) $)
    mpt2exga $p |- ( ( A e. V /\ B e. W )
                       -> ( x e. A , y e. B |-> C ) e. _V ) $=
      ( cmpt2 eqid mpt2exg ) ABCDEFGABCDEHZKIJ $.
  $}

  ${
    $d x y A $.  $d y B $.
    mpt2ex.1 $e |- A e. _V $.
    mpt2ex.2 $e |- B e. _V $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by Mario Carneiro, 20-Dec-2013.) $)
    mpt2ex $p |- ( x e. A , y e. B |-> C ) e. _V $=
      ( cvv wcel wral cmpt2 rgenw eqid mpt2exxg mp2an ) CHIDHIZACJABCDEKZHIFPAC
      GLABCDEHHQQMNO $.
  $}

  ${
    $d t u v w x y B $.  $d t u w x y z C $.  $d x y ph $.  $d t u v w x y S $.
    $d u v w x y A $.  $d t u v w z R $.  $d t z T $.
    fmpt2co.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> R e. C ) $.
    fmpt2co.2 $e |- ( ph -> F = ( x e. A , y e. B |-> R ) ) $.
    fmpt2co.3 $e |- ( ph -> G = ( z e. C |-> S ) ) $.
    fmpt2co.4 $e |- ( z = R -> S = T ) $.
    $( Composition of two functions.  Variation of ~ fmptco when the second
       function has two arguments.  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    fmpt2co $p |- ( ph -> ( G o. F ) = ( x e. A , y e. B |-> T ) ) $=
      ( vw vu vv csb ccom cxp cv c2nd c1st cmpt cmpt2 wcel wral ralrimivva eqid
      cfv wf fmpt2 sylib nfcv nfcsb1v weq csbeq1a sylan9eq cbvmpt2 cop wceq vex
      nfcsb op2ndd csbeq1d op1std csbeq2dv mpt2mpt eqtr4i sylibr syl6eq fmptcos
      eqtrd fmpt wa w3a 3impb nfcvd csbiegf syl mpt2eq3dva syl5eq ) ALKUAQEFUBZ
      DCQUCZUDULZBWFUEULZHTZTZITZUFZBCEFJUGZAQDWEGWJIKLAWEGBCEFHUGZUMZWJGUHQWEU
      IAHGUHZCFUIBEUIWOAWPBCEFMUJBCEFHGWNWNUKUNUOQWEGWJWNWNRSEFCSUCZBRUCZHTZTZU
      GQWEWJUFZBCRSEFHWTRHUPSHUPBCWQWSBWQUPBWRHUQVEZCWQWSUQZBRURZCSURZHWSWTBWRH
      USCWQWSUSUTZVARSQEFWJWTWFWRWQVBVCZWJCWQWITWTXGCWGWQWIWRWQWFRVDZSVDZVFVGXG
      CWQWIWSXGBWHWRHWRWQWFXHXIVHVGVIVOZVJVKZVPVLAKWNXANXKVMOVNAWLBCEFDHITZUGZW
      MWLRSEFDWTITZUGXMRSQEFWKXNXGDWJWTIXJVGVJBCRSEFXLXNRXLUPSXLUPBDWTIXBBIUPVE
      CDWTIXCCIUPVEXDXEVQDHWTIXFVGVAVKABCEFXLJABUCEUHZCUCFUHZVRWPXLJVCAXOXPWPMV
      SDHIJGWPDJVTPWAWBWCWDVO $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d x y z D $.  $d w x y z H $.
    $d w z C $.
    oprabco.1 $e |- ( ( x e. A /\ y e. B ) -> C e. D ) $.
    oprabco.2 $e |- F = ( x e. A , y e. B |-> C ) $.
    oprabco.3 $e |- G = ( x e. A , y e. B |-> ( H ` C ) ) $.
    $( Composition of a function with an operator abstraction.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       26-Sep-2015.) $)
    oprabco $p |- ( H Fn D -> G = ( H o. F ) ) $=
      ( vz wfn ccom cfv cmpt2 cv wcel wa adantl wceq a1i dffn5im fveq2 syl6reqr
      fmpt2co ) IFNZIGOABCDEIPZQHUHABMCDFEMRZIPUIGIARCSBRDSTEFSUHJUAGABCDEQUBUH
      KUCMFIUDUJEIUEUGLUF $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w z C $.  $d w z D $.  $d w x y z M $.
    $d x y z R $.  $d x y z S $.
    oprab2co.1 $e |- ( ( x e. A /\ y e. B ) -> C e. R ) $.
    oprab2co.2 $e |- ( ( x e. A /\ y e. B ) -> D e. S ) $.
    oprab2co.3 $e |- F = ( x e. A , y e. B |-> <. C , D >. ) $.
    oprab2co.4 $e |- G = ( x e. A , y e. B |-> ( C M D ) ) $.
    $( Composition of operator abstractions.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by David Abernethy, 23-Apr-2013.) $)
    oprab2co $p |- ( M Fn ( R X. S ) -> G = ( M o. F ) ) $=
      ( cop cxp cv wcel cmpt2 wa opelxpi syl2anc cfv wceq df-ov mpt2eq3ia eqtri
      co a1i oprabco ) ABCDEFPZGHQZIJKARCSBRDSUAZEGSFHSULUMSLMEFGHUBUCNJABCDEFK
      UIZTABCDULKUDZTOABCDUOUPUOUPUEUNEFKUFUJUGUHUK $.
  $}

  ${
    $d w x y z $.
    $( An alternate possible definition of the ` 1st ` function.  (Contributed
       by NM, 14-Oct-2004.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    df1st2 $p |- { <. <. x , y >. , z >. | z = x } = ( 1st |` ( _V X. _V ) ) $=
      ( vw c1st cvv cxp cres cv cfv wceq copab wcel wa coprab wfo wfn fo1st vex
      cmpt fofn dffn5im mp2b mptv eqtri reseq1i resopab op1std dfoprab3 3eqtrri
      cop eqeq2d ) EFFGZHCIZDIZEJZKZDCLZUMHUOUMMUQNDCLUNAIZKZABCOEURUMEDFUPTZUR
      FFEPEFQEVAKRFFEUADFEUBUCDCUPUDUEUFUQDCUMUGUQUTABCDUOUSBIZUKKUPUSUNUSVBUOA
      SBSUHULUIUJ $.

    $( An alternate possible definition of the ` 2nd ` function.  (Contributed
       by NM, 10-Aug-2006.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    df2nd2 $p |- { <. <. x , y >. , z >. | z = y } = ( 2nd |` ( _V X. _V ) ) $=
      ( vw c2nd cvv cxp cres cv cfv wceq copab wcel wa coprab wfo wfn fo2nd vex
      cmpt fofn dffn5im mp2b mptv eqtri reseq1i resopab op2ndd dfoprab3 3eqtrri
      cop eqeq2d ) EFFGZHCIZDIZEJZKZDCLZUMHUOUMMUQNDCLUNBIZKZABCOEURUMEDFUPTZUR
      FFEPEFQEVAKRFFEUADFEUBUCDCUPUDUEUFUQDCUMUGUQUTABCDUOAIZUSUKKUPUSUNVBUSUOA
      SBSUHULUIUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y V $.
    $( The mapping of a restriction of the ` 1st ` function to a constant
       function.  (Contributed by NM, 14-Dec-2008.) $)
    1stconst $p |- ( B e. V ->
             ( 1st |` ( A X. { B } ) ) : ( A X. { B } ) -1-1-onto-> A ) $=
      ( vx vy wcel csn cxp c1st wfo cv wbr wmo wceq wa vex cfv cvv jca syl2anc
      cres ccnv wfun wf1o wex snmg fo1stresm syl wal cop moeq moani brres fo1st
      wfn wb fofn ax-mp fnbrfvb mp2an anbi1i elxp7 eleq1 biimpa adantrr adantrl
      c2nd elsni eqopi an12s sylanr2 adantrrl adantl simprr fveq2d simprl simpl
      sylan2b op1stg eqtrd adantr opelxpi eqeltrd impbida syl5bbr syl5bb mobidv
      snidg mpbiri alrimiv funcnv2 sylibr dff1o3 sylanbrc ) BCFZABGZHZAIWQUAZJZ
      WRUBUCZWQAWRUDWODKZWPFDUEWSDBCUFDAWPUGUHWOXAEKZWRLZDMZEUIWTWOXDEWOXDXBAFZ
      XAXBBUJZNZOZDMXGXEDDXFUKULWOXCXHDXCXAXBILZXAWQFZOZWOXHXAXBIWQEPUMXKXAIQZX
      BNZXJOZWOXHXMXIXJIRUOZXARFXMXIUPRRIJXOUNRRIUQURDPRXAXBIUSUTVAWOXNXHXNXHWO
      XJXMXARRHFZXLAFZXAVGQZWPFZOZOZXHXAAWPVBXMYAOXEXGXMXTXEXPXMXQXEXSXMXQXEXLX
      BAVCVDVEVFXMXPXSXGXQXSXMXPXRBNZXGXRBVHXPXMYBXGXAXBBRRVIVJVKVLSVRVMWOXHOZX
      MXJYCXLXFIQZXBYCXAXFIWOXEXGVNZVOYCXEWOYDXBNWOXEXGVPZWOXHVQXBBACVSTVTYCXAX
      FWQYEYCXEBWPFZXFWQFYFWOYGXHBCWHWAXBBAWPWBTWCSWDWEWFWGWIWJDEWRWKWLWQAWRWMW
      N $.

    $( The mapping of a restriction of the ` 2nd ` function to a converse
       constant function.  (Contributed by NM, 27-Mar-2008.) $)
    2ndconst $p |- ( A e. V ->
             ( 2nd |` ( { A } X. B ) ) : ( { A } X. B ) -1-1-onto-> B ) $=
      ( vx vy wcel csn cxp c2nd wfo cv wbr wmo wceq wa vex cfv cvv adantrl jca
      cres ccnv wfun wf1o wex snmg fo2ndresm syl wal cop moeq moani brres fo2nd
      wfn fofn ax-mp fnbrfvb mp2an anbi1i c1st elxp7 eleq1 biimpa elsni ancom2s
      eqopi an12s sylanr2 adantrrr sylan2b adantl fveq2 op2ndg sylan9eqr simprr
      mpan2 adantr simprl opelxpi syl2anc eqeltrd impbida syl5bbr syl5bb mobidv
      wb snidg mpbiri alrimiv funcnv2 sylibr dff1o3 sylanbrc ) ACFZAGZBHZBIWQUA
      ZJZWRUBUCZWQBWRUDWODKZWPFDUEWSDACUFDWPBUGUHWOXAEKZWRLZDMZEUIWTWOXDEWOXDXB
      BFZXAAXBUJZNZOZDMXGXEDDXFUKULWOXCXHDXCXAXBILZXAWQFZOZWOXHXAXBIWQEPZUMXKXA
      IQZXBNZXJOZWOXHXNXIXJIRUOZXARFXNXIWGRRIJXPUNRRIUPUQDPRXAXBIURUSUTWOXOXHXO
      XHWOXJXNXARRHFZXAVAQZWPFZXMBFZOZOZXHXAWPBVBXNYBOXEXGXNYAXEXQXNXTXEXSXNXTX
      EXMXBBVCVDSSXNXQXSXGXTXSXNXQXRANZXGXRAVEXQXNYCXGXQYCXNXGXAAXBRRVGVFVHVIVJ
      TVKVLWOXHOZXNXJWOXGXNXEXGWOXMXFIQZXBXAXFIVMWOXBRFYEXBNXLAXBCRVNVQVOSYDXAX
      FWQWOXEXGVPYDAWPFZXEXFWQFWOYFXHACWHVRWOXEXGVSAXBWPBVTWAWBTWCWDWEWFWIWJDEW
      RWKWLWQBWRWMWN $.
  $}

  ${
    $d v w x y A $.  $d v w x y B $.  $d v w C $.
    dfmpt2.1 $e |- C e. _V $.
    $( Alternate definition for the "maps to" notation ~ df-mpt2 (although it
       requires that ` C ` be a set).  (Contributed by NM, 19-Dec-2008.)
       (Revised by Mario Carneiro, 31-Aug-2015.) $)
    dfmpt2 $p |- ( x e. A , y e. B |-> C )
                = U_ x e. A U_ y e. B { <. <. x , y >. , C >. } $=
      ( vw cv cfv csb cop csn ciun cvv wcel ax-mp csbexa nfcv nfcsb1v nfop c1st
      cmpt2 cxp c2nd cmpt mpt2mpts vex 1stexg 2ndexg dfmpt nfsn nfcsb csbopeq1a
      wceq id opeq12d sneqd iunxpf 3eqtri ) ABCDEUBGCDUCZAGHZUAIZBVAUDIZEJZJZUE
      GUTVAVEKZLZMACBDAHBHKZEKZLZMMABGCDEUFGUTVEAVBVDVANOZVBNOGUGZVANUHPBVCEVKV
      CNOVLVANUIPFQQUJGABCDVGVJAVFAVAVEAVARAVBVDSTUKBVFBVAVEBVARBAVBVDBVBRBVCES
      ULTUKGVJRVAVHUNZVFVIVMVAVHVEEVMUOABVAEUMUPUQURUS $.
  $}

  $( Lemma for ~ cnvf1o .  (Contributed by Mario Carneiro, 27-Apr-2014.) $)
  cnvf1olem $p |- ( ( Rel A /\ ( B e. A /\ C = U. `' { B } ) ) ->
                    ( C e. `' A /\ B = U. `' { C } ) ) $=
    ( wrel wcel csn ccnv cuni wceq c2nd cfv cop sneqd cnveqd unieqd cvv opswapg
    wa syl2anc ad2antrl c1st simprr 1st2nd 1stexg 2ndexg 3eqtrd simprl eqeltrrd
    adantrr wb opelcnvg mpbird eqeltrd eqcomd 3eqtr4d jca ) ADZBAEZCBFZGZHZIZRR
    ZCAGZEBCFZGZHZIVCCBJKZBUAKZLZVDVCCVAVIVHLZFZGZHZVJUQURVBUBVCUTVMVCUSVLVCBVK
    UQURBVKIVBBAUCUIZMNOURVNVJIZUQVBURVIPEZVHPEZVPBAUDZBAUEZVIVHPPQSTUFZVCVJVDE
    ZVKAEZVCBVKAVOUQURVBUGUHURWBWCUJZUQVBURVRVQWDVTVSVHVIPPAUKSTULUMVCVKVJFZGZH
    ZBVGURVKWGIUQVBURWGVKURVRVQWGVKIVTVSVHVIPPQSUNTVOVCVFWFVCVEWEVCCVJWAMNOUOUP
    $.

  ${
    $d x y A $.
    $( Describe a function that maps the elements of a set to its converse
       bijectively.  (Contributed by Mario Carneiro, 27-Apr-2014.) $)
    cnvf1o $p |- ( Rel A ->
                   ( x e. A |-> U. `' { x } ) : A -1-1-onto-> `' A ) $=
      ( vy wrel ccnv cv csn cuni cmpt wcel snexg cnvexg uniexg 3syl adantl wceq
      cvv wa cnvf1olem wb relcnv simpr sylancr dfrel2 eleq2 sylbi anbi1d adantr
      eqid mpbid impbida f1od ) BDZACBBEZAFZGZEZHZCFZGZEZHZABURIZQQVCUIUOBJZURQ
      JZUMVDUPQJUQQJVEUOBKUPQLUQQMNOUSUNJZVBQJZUMVFUTQJVAQJVGUSUNKUTQLVAQMNOUMV
      DUSURPZRZVFUOVBPRZBUOUSSUMVJRZUOUNEZJZVHRZVIVKUNDVJVNBUAUMVJUBUNUSUOSUCUM
      VNVITVJUMVMVDVHUMVLBPVMVDTBUDVLBUOUEUFUGUHUJUKUL $.
  $}

  $( The ` 2nd ` (second member of an ordered pair) function restricted to a
     function ` F ` is a function of ` F ` into the codomain of ` F ` .
     (Contributed by Alexander van der Vekens, 4-Feb-2018.) $)
  f2ndf $p |- ( F : A --> B -> ( 2nd |` F ) : F --> B ) $=
    ( wf c2nd cres cxp wss f2ndres fssxp fssres sylancr wceq resabs1 syl eqcomd
    feq1d mpbird ) ABCDZCBECFZDCBEABGZFZCFZDZSUABUBDCUAHZUDABIABCJZUABCUBKLSCBT
    UCSUCTSUEUCTMUFECUANOPQR $.

  ${
    $d A x y $.  $d B x y $.  $d F x y $.
    $( The ` 2nd ` (second member of an ordered pair) function restricted to a
       function ` F ` is a function of ` F ` onto the range of ` F ` .
       (Contributed by Alexander van der Vekens, 4-Feb-2018.) $)
    fo2ndf $p |- ( F : A --> B -> ( 2nd |` F ) : F -onto-> ran F ) $=
      ( vy vx wf crn c2nd cres wceq wfo wfn ffn dffn3 f2ndf syl cv wcel cfv vex
      sylib wss sylbi frn cop wex elrn2g wa fvres adantl op2nd syl6req fnfvelrn
      ibi sylan eqeltrd ex exlimdv syl5 ssrdv eqssd dffo2 sylanbrc ) ABCFZCCGZH
      CIZFZVFGZVEJCVEVFKVDAVECFZVGVDCALZVIABCMZACNZUAAVECOZPVDVHVEVDVGVHVEUBVDV
      JVGVKVJVIVGVLVMUCPCVEVFUDPVDDVEVHDQZVERZEQZVNUEZCRZEUFZVDVNVHRZVOVSEVNCVE
      UGUNVDVRVTEVDVRVTVDVRUHZVNVQVFSZVHWAWBVQHSZVNVRWBWCJVDVQCHUIUJVPVNETDTUKU
      LVDVFCLZVRWBVHRVDCBVFFWDABCOCBVFMPCVQVFUMUOUPUQURUSUTVACVEVFVBVC $.
  $}

  ${
    $d A a b v w x y $.  $d B a b v w x y $.  $d F a b v w x y $.
    $( The ` 2nd ` (second member of an ordered pair) function restricted to a
       one-to-one function ` F ` is a one-to-one function of ` F ` onto the
       range of ` F ` .  (Contributed by Alexander van der Vekens,
       4-Feb-2018.) $)
    f1o2ndf1 $p |- ( F : A -1-1-> B -> ( 2nd |` F ) : F -1-1-onto-> ran F ) $=
      ( vx vy va vv vb vw c2nd syl cv cfv wceq wi wcel wa wrex ex com23 wf1 crn
      cres wfo ccnv wfun wf1o f1f fo2ndf weq wral f2ndf cxp wss fssxp cop ssel2
      elxp2 sylib anim12dan fvres adantr ad2antlr eqeq12d op2nd eqeq12i funopfv
      wf vex f1fun anim12d eqcom biimpi eqeqan12d simpl anim12i f1veqaeq sylan2
      opeq12 syl6 com14 syl6bi pm2.43i syld impcom syl5bi sylbid adantl adantlr
      com13 com12 wb eleq1 bi2anan9 anbi2d fveq2 simpllr imbi12d imbi2d 3imtr4d
      simpr rexlimdvva rexlimivv imp mpcom ralrimivv dff13 df-f1 simprbi dff1o3
      sylanbrc ) ABCUAZCCUBZJCUCZUDZXNUEUFZCXMXNUGXLABCVHZXOABCUHZABCUIKXLCBXNU
      AZXPXLCBXNVHZDLZXNMZELZXNMZNZDEUJZOZECUKDCUKXSXLXQXTXRABCULKXLYGDECCCABUM
      ZUNZXLYACPZYCCPZQZYGOXLXQYIXRABCUOKYIYLXLYGYIYLXLYGOZYAFLZGLZUPZNZGBRFARZ
      YCHLZILZUPZNZIBRHARZQYIYLQZYMYIYJYRYKUUCYIYJQYAYHPYRCYHYAUQFGYAABURUSYIYK
      QYCYHPUUCCYHYCUQHIYCABURUSUTYRUUCUUDYMOZYQUUCUUEOZFGABYNAPZYOBPZQZYQUUFUU
      IYQQZUUBUUEHIABUUJYSAPZYTBPZQZQZUUBUUEUUNUUBQZYIYPCPZUUACPZQZQZXLYPXNMZUU
      AXNMZNZYPUUANZOZOZUUDYMUUNUUSUVEOZUUBUUIUUMUVFYQUUSUUIUUMQZUVEUURUVGUVEOY
      IUURUVGUVEUURUVGQZUVBXLUVCUVHUVBYPJMZUUAJMZNZXLUVCOZUVHUUTUVIUVAUVJUURUUT
      UVINZUVGUUPUVMUUQYPCJVAVBVBUUQUVAUVJNUUPUVGUUACJVAVCVDUVKGIUJZUVHUVLUVIYO
      UVJYTYNYOFVIGVIVEYSYTHVIIVIVEVFUVHXLUVNUVCUVGUURXLUVNUVCOZOXLUURUVGUVOXLU
      URYNCMZYONZYSCMZYTNZQZUVGUVOOXLCUFZUURUVTOABCVJUWAUUPUVQUUQUVSYNYOCVGYSYT
      CVGVKKXLUVGUVTUVOUVNUVGUVTXLUVCUVNUVGUVTUVLOOUVTUVNUVGUVNUVLUVTUVNUVPUVRN
      ZUVGUVNUVLOOUVQUVSYOUVPYTUVRUVQYOUVPNUVPYOVLVMUVSYTUVRNUVRYTVLVMVNXLUVGUV
      NUWBUVCXLUVGUVNUWBUVCOOXLUVGQZUWBUVNUVCUWCUWBFHUJZUVOUVGXLUUGUUKQUWBUWDOU
      UIUUGUUMUUKUUGUUHVOUUKUULVOVPABYNYSCVQVRUWDUVNUVCYNYOYSYTVSSVTTSWAWBWAWCW
      ATWDWJWETWFWGTSWHWKWIVBUUOYLUURYIUUNYJUUPUUBYKUUQYQYJUUPWLUUIUUMYAYPCWMVC
      YCUUACWMWNWOUUOYGUVDXLUUOYEUVBYFUVCUUNUUBYBUUTYDUVAYQYBUUTNUUIUUMYAYPXNWP
      VCYCUUAXNWPVNUUOYAYPYCUUAUUIYQUUMUUBWQUUNUUBXAVDWRWSWTSXBSXCXDXESTXEXFDEC
      BXNXGXKXSXTXPCBXNXHXIKCXMXNXJXK $.
  $}

  ${
    algrflem.1 $e |- B e. _V $.
    algrflem.2 $e |- C e. _V $.
    $( Lemma for algrf and related theorems.  (Contributed by Mario Carneiro,
       28-May-2014.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    algrflem $p |- ( B ( F o. 1st ) C ) = ( F ` B ) $=
      ( c1st ccom co cop cfv df-ov cvv wf wcel wceq wfo fo1st fof ax-mp mp2an
      opexg fvco3 op1st fveq2i 3eqtri ) ABCFGZHABIZUFJZUGFJZCJZACJABUFKLLFMZUGL
      NZUHUJOLLFPUKQLLFRSALNBLNULDEABLLUATLLUGCFUBTUIACABDEUCUDUE $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.  $d a x y $.
    $d b x y $.  $d c x y $.  $d d x y $.
    xporderlem.1 $e |- T = { <. x , y >. | ( ( x e. ( A X. B )
     /\ y e. ( A X. B ) )
     /\ ( ( 1st ` x ) R ( 1st ` y )
       \/ ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) S ( 2nd ` y ) ) ) ) } $.
    $( Lemma for lexicographical ordering theorems.  (Contributed by Scott
       Fenton, 16-Mar-2011.) $)
    xporderlem $p |- ( <. a , b >. T <. c , d >. <->
                        ( ( ( a e. A /\ c e. A ) /\ ( b e. B /\ d e. B ) ) /\
                          ( a R c \/ ( a = c /\ b S d ) ) ) ) $=
      ( cv wbr wcel wa cfv wceq vex anbi12d cop c1st c2nd wo copab df-br eleq2i
      bitri opex eleq1 opelxp syl6bb anbi1d op1std breq1d eqeq1d op2ndd orbi12d
      cxp anbi2d breq2d eqeq2d opelopab an4 anbi1i 3bitri ) HMZIMZUAZJMZKMZUAZG
      NZVIVLUAZAMZCDUSZOZBMZVPOZPZVOUBQZVRUBQZENZWAWBRZVOUCQZVRUCQZFNZPZUDZPZAB
      UEZOZVGCOZVHDOZPZVJCOZVKDOZPZPZVGVJENZVGVJRZVHVKFNZPZUDZPZWMWPPWNWQPPZXDP
      VMVNGOWLVIVLGUFGWKVNLUGUHWJWOVSPZVGWBENZVGWBRZVHWFFNZPZUDZPXEABVIVLVGVHHS
      ZISZUIVJVKJSZKSZUIVOVIRZVTXGWIXLXQVQWOVSXQVQVIVPOWOVOVIVPUJVGVHCDUKULUMXQ
      WCXHWHXKXQWAVGWBEVGVHVOXMXNUNZUOXQWDXIWGXJXQWAVGWBXRUPXQWEVHWFFVGVHVOXMXN
      UQUOTURTVRVLRZXGWSXLXDXSVSWRWOXSVSVLVPOWRVRVLVPUJVJVKCDUKULUTXSXHWTXKXCXS
      WBVJVGEVJVKVRXOXPUNZVAXSXIXAXJXBXSWBVJVGXTVBXSWFVKVHFVJVKVRXOXPUQVATURTVC
      WSXFXDWMWNWPWQVDVEVF $.
  $}

  ${
    $d A a b c d e f t u v x y $.  $d B a b c d e f t u v x y $.
    $d R a b c d e f t u v x y $.  $d S a b c d e f t u v x y $.
    $d T a b c d e f t u v $.
    poxp.1 $e |- T = { <. x , y >. | ( ( x e. ( A X. B ) /\ y e. ( A X. B ) )
      /\ ( ( 1st ` x ) R ( 1st ` y ) \/
           ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) S ( 2nd ` y ) ) ) ) } $.
    $( A lexicographical ordering of two posets.  (Contributed by Scott Fenton,
       16-Mar-2011.)  (Revised by Mario Carneiro, 7-Mar-2013.) $)
    poxp $p |- ( ( R Po A /\ S Po B ) -> T Po ( A X. B ) ) $=
      ( va vb vc vd ve vf wa cv wbr wn wi wcel vt vu wpo cxp wral cop wceq elxp
      vv wex w3a 3an6 weq wo poirr intnand im2anan9 ioran syl6ibr imp 3ad2antr1
      ex an4 potr 3impia orcd 3expia expdimp breq2 biimpa expcom adantrd adantl
      jaod anim2d orim2d breq1 equequ1 anbi1d orbi12d imbi2d syl5ibr expd com12
      impd jaao an4s sylan2b biimpi 3adant2 jctild adantld syl5bi jca wb breq12
      anidms notbid 3ad2ant1 3adant3 3adant1 anbi12d imbi12d xporderlem anbi12i
      notbii imbi12i syl6bb expcomd sylbi com3l exlimivv syl3anb com3r ralrimiv
      3exp 3imp ralrimivva df-po sylibr ) CEUCZDFUCZOZUAPZYDGQZRZYDUBPZGQZYGUIP
      ZGQZOZYDYIGQZSZOZUICDUDZUEZUBYOUEUAYOUEYOGUCYCYPUAUBYOYOYCYDYOTZYGYOTZOZO
      YNUIYOYCYSYIYOTZYNSYSYTYCYNYQYRYTYCYNSZYQYDIPZJPZUFZUGZUUBCTZUUCDTZOZOZJU
      JIUJZYRYGKPZLPZUFZUGZUUKCTZUULDTZOZOZLUJKUJZYTYIMPZNPZUFZUGZUUTCTZUVADTZO
      ZOZNUJMUJZUUAIJYDCDUHKLYGCDUHMNYICDUHUUJUUSUVHUUAUUIUUSUVHUUASSIJUVHUUIUU
      SUUAUVGUUIUUSUUASSMNUUSUVGUUIUUAUURUVGUUIUUASSKLUUIUURUVGUUAUUIUURUVGUUAU
      UIUURUVGUKUUEUUNUVCUKZUUHUUQUVFUKZOUUAUUEUUHUUNUUQUVCUVFULUVIUVJUUAUVIYCU
      VJYNYCUVJOZYNUVIUUFUUFOUUGUUGOOZUUBUUBEQZIIUMZUUCUUCFQZOZUNZOZRZUUFUUOOUU
      GUUPOOZUUBUUKEQZIKUMZUUCUULFQZOZUNZOZUUOUVDOUUPUVEOOZUUKUUTEQZKMUMZUULUVA
      FQZOZUNZOZOZUUFUVDOUUGUVEOOZUUBUUTEQZIMUMZUUCUVAFQZOZUNZOZSZOZUVKUVSUXBYC
      UUQUUHUVSUVFYCUUHOUVQUVLYCUUHUVQRZYCUUHUVMRZUVPRZOUXDYAUUFUXEYBUUGUXFYAUU
      FUXECUUBEUOVBYBUUGUXFYBUUGOUVOUVNDUUCFUOUPVBUQUVMUVPURUSUTUPVAUWNUVTUWGOZ
      UWEUWLOZOUVKUXAUVTUWEUWGUWLVCUVKUXHUXAUXGUVKUXHUWTUWOUVJYCUUFUUOUVDUKZUUG
      UUPUVEUKZOUXHUWTSZUUFUUGUUOUUPUVDUVEULYAUXIYBUXJUXKYAUXIOZYBUXJOZOUWEUWLU
      WTUXLUWAUWLUWTSZUXMUWDUXLUWAUXNUXLUWAOUWHUWTUWKUXLUWAUWHUWTYAUXIUWAUWHOZU
      WTYAUXIUXOUKUWPUWSYAUXIUXOUWPCUUBUUKUUTEVDVEVFVGVHUWAUWKUWTSUXLUWAUWIUWTU
      WJUWIUWAUWTUWIUWAOUWPUWSUWIUWAUWPUUKUUTUUBEVIVJVFVKVLVMVNVBUXMUWBUWCUXNUW
      BUXMUWCUXNSUWBUXMUWCUXNUXMUWCOZUXNUWBUWLUWHUWIUWROZUNZSUXPUWKUXQUWHUXPUWJ
      UWRUWIUXMUWCUWJUWRDUUCUULUVAFVDVHVOVPUWBUWTUXRUWLUWBUWPUWHUWSUXQUUBUUKUUT
      EVQUWBUWQUWIUWRIKMVRVSVTWAWBWCWDWEWFWEWGWHUVJUWOYCUUHUVFUWOUUQUUHUVFOUWOU
      UFUUGUVDUVEVCWIWJVMWKWLWMWNUVIYNUUDUUDGQZRZUUDUUMGQZUUMUVBGQZOZUUDUVBGQZS
      ZOUXCUVIYFUXTYMUYEUUEUUNYFUXTWOUVCUUEYEUXSUUEYEUXSWOYDUUDYDUUDGWPWQWRWSUV
      IYKUYCYLUYDUVIYHUYAYJUYBUUEUUNYHUYAWOUVCYDUUDYGUUMGWPWTUUNUVCYJUYBWOUUEYG
      UUMYIUVBGWPXAXBUUEUVCYLUYDWOUUNYDUUDYIUVBGWPWJXCXBUXTUVSUYEUXBUXSUVRABCDE
      FGIJIJHXDXFUYCUWNUYDUXAUYAUWFUYBUWMABCDEFGIJKLHXDABCDEFGKLMNHXDXEABCDEFGI
      JMNHXDXGXEXHWBXIUTXJXPXKXLXKXLXKXLXQXMVGXNUTXOXRUAUBUIYOGXSXT $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
         Special "Maps to" operations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following theorems are about maps-to operations (see ~ df-mpt2 ) where the
first argument is a pair and the base set of the second argument is the first
component of the first argument, in short "x-maps-to operations". For labels,
the abbreviations "mpt2x" are used (since "x" usually denotes the first
argument). This is in line with the currently used conventions for such cases
(see ~ cbvmpt2x , ~ ovmpt2x and ~ fmpt2x ). However, there is a proposal by
Norman Megill to use the abbreviation "mpo" or "mpto" instead of "mpt2"
(see beginning of set.mm). If this proposal will be realized, the labels in the
following should also be adapted. If the first argument is an ordered pair,
as in the following, the abbreviation is extended to "mpt2xop", and the maps-to
operations are called "x-op maps-to operations" for short.
$)

  ${
    $d x y $.  $d K x $.  $d V x $.  $d W x $.
    mpt2xopn0yelv.f $e |- F = ( x e. _V , y e. ( 1st ` x ) |-> C ) $.
    $( If there is an element of the value of an operation given by a maps-to
       rule, where the first argument is a pair and the base set of the second
       argument is the first component of the first argument, then the second
       argument is an element of the first component of the first argument.
       (Contributed by Alexander van der Vekens, 10-Oct-2017.) $)
    mpt2xopn0yelv $p |- ( ( V e. X /\ W e. Y )
                          -> ( N e. ( <. V , W >. F K ) -> K e. V ) ) $=
      ( cop co wcel c1st cfv wa cvv cv csn cxp ciun dmmpt2ssx wrel wfun mpt2fun
      cdm funrel ax-mp relelfvdm mpan df-ov eleq2s fveq2 opeliunxp2 simprbi syl
      sseldi op1stg eleq2d syl5ib ) FGHLZEDMZNZEVBOPZNZGINHJNQZEGNVDVBELZARASZT
      VIOPZUAUBZNZVFVDDUGZVKVHABRVJCDKUCVHVMNZFVHDPZVCDUDZFVONVNDUEVPABRVJCDKUF
      DUHUIFVHDUJUKVBEDULUMURVLVBRNVFARVJVBEVEVIVBOUNUOUPUQVGVEGEGHIJUSUTVA $.
  $}

  ${
    $d K n x y $.  $d V n x y $.  $d W n x y $.  $d X n x y $.  $d Y n x y $.
    mpt2xopoveq.f $e |- F = ( x e. _V , y e. ( 1st ` x )
                            |-> { n e. ( 1st ` x ) | ph } ) $.
    $( Value of an operation given by a maps-to rule, where the first argument
       is a pair and the base set of the second argument is the first component
       of the first argument.  (Contributed by Alexander van der Vekens,
       11-Oct-2017.) $)
    mpt2xopoveq $p |- ( ( ( V e. X /\ W e. Y ) /\ K e. V )
                 -> ( <. V , W >. F K )
                      = { n e. V | [. <. V , W >. / x ]. [. K / y ]. ph } ) $=
      ( wcel wa cvv cv c1st wceq adantr adantl nfcv cop cfv crab wsbc cmpt2 a1i
      vz fveq2 op1stg sylan9eqr adantrr wb sbceq1a bitrd rabeqbidv opexg rabexg
      simpr ad2antrr wnf equid nfvd ax-mp nfsbc1v nfrabxy nfsbc ovmpt2dxf ) GIL
      ZHJLZMZFGLZMZBCGHUAZFNBOZPUBZADVOUCZACFUDZBVMUDZDGUCZEGNEBCNVOVPUEQVLKUFV
      LVNVMQZCOFQZMZMZAVRDVOGVLVTVOGQWAVTVLVOVMPUBZGVNVMPUHVJWDGQVKGHIJUIRUJZUK
      WCAVQVRWBAVQULZVLWAWFVTACFUMSSWBVQVRULZVLVTWGWAVQBVMUMRSUNUOWEVJVMNLVKGHI
      JUPRVJVKURVHVSNLVIVKVRDGIUQUSUGOZWHQZVLBUTUGVAZWIVLBVBVCWIVLCUTWJWIVLCVBV
      CCVMTZBFTVRBDGVQBVMVDBGTVEVRCDGVQCBVMWKACFVDVFCGTVEVG $.

    $d N x y $.
    $( Element of the value of an operation given by a maps-to rule, where the
       first argument is a pair and the base set of the second argument is the
       first component of the first argument.  (Contributed by Alexander van
       der Vekens and Mario Carneiro, 10-Oct-2017.) $)
    mpt2xopovel $p |- ( ( V e. X /\ W e. Y ) -> ( N e. ( <. V , W >. F K )
                <-> ( K e. V /\ N e. V /\ [. <. V , W >. / x ].
                      [. K / y ]. [. N / n ]. ph ) ) ) $=
      ( wcel wa cop co wsbc crab sbccom bitri w3a cv cfv mpt2xopn0yelv pm4.71rd
      c1st mpt2xopoveq eleq2d nfcv elrabsf sbcbii anbi2i syl6bb pm5.32da 3anass
      syl6bbr bitrd ) HJMIKMNZGHIOZFEPZMZFHMZVANZVBGHMZADGQCFQZBUSQZUAZURVAVBBC
      ADBUBUFUCREFGHIJKLUDUEURVCVBVDVFNZNVGURVBVAVHURVBNZVAGACFQZBUSQZDHRZMZVHV
      IUTVLGABCDEFHIJKLUGUHVMVDVKDGQZNVHVKDGHDHUIUJVNVFVDVNVJDGQZBUSQVFVJDBGUSS
      VOVEBUSADCGFSUKTULTUMUNVBVDVFUOUPUQ $.
  $}

  ${
    $d E e f p v $.  $d V e f p v $.  $d W e v $.  $d ps e v $.
    sprmpt2.1 $e |- M = ( v e. _V , e e. _V
                          |-> { <. f , p >. | ( f ( v W e ) p /\ ch ) } ) $.
    sprmpt2.2 $e |- ( ( v = V /\ e = E ) -> ( ch <-> ps ) ) $.
    sprmpt2.3 $e |- ( ( V e. _V /\ E e. _V ) -> ( f ( V W E ) p -> th ) ) $.
    sprmpt2.4 $e |- ( ( V e. _V /\ E e. _V ) -> { <. f , p >. | th } e. _V ) $.
    $( The extension of a binary relation which is the value of an operation
       given in maps-to notation.  (Contributed by Alexander van der Vekens,
       30-Oct-2017.) $)
    sprmpt2 $p |- ( ( V e. _V /\ E e. _V ) -> ( V M E )
                    = { <. f , p >. | ( f ( V W E ) p /\ ps ) } ) $=
      ( cvv wcel wa cv wceq co wbr copab cmpt2 a1i oveq12 adantl breqd opabbidv
      wb anbi12d simpl simpr opabbrex ovmpt2d ) IPQZGPQZRZDEIGPPFSZKSZDSZESZJUA
      ZUBZBRZFKUCZUSUTIGJUAZUBZARZFKUCHPHDEPPVFUDTURLUEURVAITVBGTRZRZVEVIFKVKVD
      VHBAVKVCVGUSUTVJVCVGTURVAIVBGJUFUGUHVJBAUJURMUGUKUIUPUQULUPUQUMACFGIJKNOU
      NUO $.
  $}

  ${
    $d F f p $.  $d P f p $.  $d W f p $.  $d ch f p $.
    isprmpt2.1 $e |- ( ph -> M = { <. f , p >. | ( f W p /\ ps ) } ) $.
    isprmpt2.2 $e |- ( ( f = F /\ p = P ) -> ( ps <-> ch ) ) $.
    $( Properties of a pair in an extended binary relation.  (Contributed by
       Alexander van der Vekens, 30-Oct-2017.) $)
    isprmpt2 $p |- ( ph -> ( ( F e. X /\ P e. Y )
                     -> ( F M P <-> ( F W P /\ ch ) ) ) ) $=
      ( wcel wa wbr wb cop cv wceq copab adantr eleq2d syl5bb breq12 opelopabga
      df-br anbi12d adantl bitrd ex ) AFINDJNOZFDGPZFDHPZCOZQAULOZUMFDRZESZKSZH
      PZBOZEKUAZNZUOUMUQGNUPVCFDGUGUPGVBUQAGVBTULLUBUCUDULVCUOQAVAUOEKFDIJURFTU
      SDTOUTUNBCURFUSDHUEMUHUFUIUJUK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Function transposition
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c tpos $. $( Function transposition $)

  $( The transposition of a function. $)
  ctpos $a class tpos F $.

  ${
    $d F x $.
    $( Define the transposition of a function, which is a function
       ` G = tpos F ` satisfying ` G ( x , y ) = F ( y , x ) ` .  (Contributed
       by Mario Carneiro, 10-Sep-2015.) $)
    df-tpos $a |- tpos F = ( F o.
        ( x e. ( `' dom F u. { (/) } ) |-> U. `' { x } ) ) $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d w x y z F $.  $d x G $.
    $( Subset theorem for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposss $p |- ( F C_ G -> tpos F C_ tpos G ) $=
      ( vx wss cdm ccnv c0 csn cun cv cuni cmpt ccom ctpos coss1 cres wceq dmss
      cnvss df-tpos unss1 resmpt 4syl resss syl6eqssr coss2 syl sstrd 3sstr4g )
      ABDZACAEZFZGHZIZCJHFKZLZMZBCBEZFZUMIZUOLZMZANBNUJUQBUPMZVBABUPOUJUPVADVCV
      BDUJUPVAUNPZVAUJUKURDULUSDUNUTDVDUPQABRUKURSULUSUMUACUTUNUOUBUCVAUNUDUEUP
      VABUFUGUHCATCBTUI $.

    $( Equality theorem for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposeq $p |- ( F = G -> tpos F = tpos G ) $=
      ( wceq ctpos wss eqimss tposss syl eqimss2 eqssd ) ABCZADZBDZKABELMEABFAB
      GHKBAEMLEBAIBAGHJ $.

    ${
      tposeqd.1 $e |- ( ph -> F = G ) $.
      $( Equality theorem for transposition.  (Contributed by Mario Carneiro,
         7-Jan-2017.) $)
      tposeqd $p |- ( ph -> tpos F = tpos G ) $=
        ( wceq ctpos tposeq syl ) ABCEBFCFEDBCGH $.
    $}

    $( The transposition is a subset of a cross product.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    tposssxp $p |- tpos F C_ ( ( `' dom F u. { (/) } ) X. ran F ) $=
      ( vx ctpos cdm ccnv csn cun cuni cmpt crn cxp ccom df-tpos cossxp eqsstri
      c0 cv wss eqid dmmptss xpss1 ax-mp sstri ) ACZBADEPFGZBQFEHZIZDZAJZKZUEUI
      KZUDAUGLUJBAMAUGNOUHUERUJUKRBUEUFUGUGSTUHUEUIUAUBUC $.

    $( The transposition is a relation.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    reltpos $p |- Rel tpos F $=
      ( ctpos cdm ccnv c0 csn cun crn cxp wss wrel tposssxp relxp relss mp2 ) A
      BZACDEFGZAHZIZJSKPKALQRMPSNO $.

    $( Value of the transposition at a pair ` <. A , B >. ` .  (Contributed by
       Mario Carneiro, 10-Sep-2015.) $)
    brtpos2 $p |- ( B e. V -> ( A tpos F B <->
      ( A e. ( `' dom F u. { (/) } ) /\ U. `' { A } F B ) ) ) $=
      ( vy vx wcel cvv wbr cdm ccnv csn cuni wa wi wb wex wceq syl bitri c0 cun
      ctpos reltpos brrelexi a1i elex adantr cv cmpt df-tpos breqi brcog syl5bb
      ccom cfv wfun funmpt funbrfv2b ax-mp snexg cnvex uniex eqid dmmpti eleq2i
      vex eqcom anbi12i cnvexg uniexg cnveqd unieqd fvmptg mpdan eqeq2d pm5.32i
      ancom anbi1i anass exbii exsimpr exsimpl 19.9v sylib simpl breq1 ceqsexgv
      sneq anbi2d pm5.21nii syl6bb expcom pm5.21ndd ) BDGZAHGZABCUCZIZACJKUALUB
      ZGZALZKZMZBCIZNZWRWPOWOABWQCUDUEUFXEWPOWOWTWPXDAWSUGUHUFWPWOWRXEPWPWONZWR
      AEUIZFWSFUIZLZKZMZUJZIZXGBCIZNZEQZXEWRABCXLUOZIXFXPABWQXQFCUKULEABCXLHDUM
      UNXPXGXCRZWTXNNZNZEQZXEXOXTEXOXRWTNZXNNXTXMYBXNXMWTXRNZYBXMAXLJZGZAXLUPZX
      GRZNZYCXLUQXMYHPFWSXKURAXGXLUSUTYHWTXGYFRZNYCYEWTYGYIYDWSAFWSXKXLXJXIXHHG
      XIHGFVGXHHVAUTVBVCXLVDZVEVFYFXGVHVIWTYIXRWTYFXCXGWTXCHGZYFXCRWTXBHGZYKWTX
      AHGYLAWSVAXAHVJSXBHVKSZFAXKXCWSHXLXHARZXJXBYNXIXAXHAWIVLVMYJVNVOVPVQTTWTX
      RVRTVSXRWTXNVTTWAYAWTXEYAXSEQZWTXRXSEWBYOWTEQWTWTXNEWCWTEWDWESWTXDWFWTYKY
      AXEPYMXSXEEXCHXRXNXDWTXGXCBCWGWJWHSWKTWLWMWN $.

    $( The behavior of ` tpos ` when the left argument is the empty set (which
       is not an ordered pair but is the "default" value of an ordered pair
       when the arguments are proper classes).  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    brtpos0 $p |- ( A e. V -> ( (/) tpos F A <-> (/) F A ) ) $=
      ( wcel c0 ctpos wbr cdm ccnv csn cun cuni brtpos2 ssun2 0ex snid biantrur
      wa sselii cnvsn0 unieqi uni0 eqtri breq1i bitr3i syl6bb ) ACDEABFGEBHIZEJ
      ZKZDZUHIZLZABGZRZEABGZEABCMUNUMUOUJUMUHUIEUHUGNEOPSQULEABULELEUKETUAUBUCU
      DUEUF $.

    $( Necessary and sufficient condition for ` dom tpos F ` to be a relation.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    reldmtpos $p |- ( Rel dom tpos F <-> -. (/) e. dom F ) $=
      ( vy vx cdm wrel c0 wcel wn cv wbr wex 0ex eldm cvv wb vex ax-mp wi sylbi
      wss ctpos brtpos0 cxp 0nelxp df-rel ssel mtoi breldm nsyl3 sylbir exlimiv
      con2i wa ccnv csn relcnv mpbi sseli a1i elsni breq1d pm2.24d syl6bi com3l
      impcom wo cuni brtpos2 simplbi elun sylib adantl mpjaod ex exlimdv syl5bi
      cun ssrdv sylibr impbii ) AUAZDZEZFADZGZHZWEWCWEFBIZAJZBKWCHZBFALMWHWIBWH
      FWGWAJZWIWGNGZWJWHOBPZWGANUBQZWCFWBGZWJWCWNFNNUCZGZNNUDWCWBWOTZWNWPRWBUEZ
      WBWOFUFSUGFWGWALWLUHUIUJUKSULWFWQWCWFCWBWOCIZWBGWSWGWAJZBKWFWSWOGZBWSWACP
      MWFWTXABWFWTXAWFWTUMZWSWDUNZGZXAWSFUOZGZXDXARXBXCWOWSXCEXCWOTWDUPXCUEUQUR
      USWTWFXFXARXFWTWFXAXFWTWJWFXARZXFWSFWGWAWSFUTVAWJWHXGWMWHWEXAFWGALWLUHVBS
      VCVDVEWTXDXFVFZWFWTWSXCXEVQGZXHWTXIWSUOUNVGWGAJZWKWTXIXJUMOWLWSWGANVHQVIW
      SXCXEVJVKVLVMVNVOVPVRWRVSVT $.

    $( The transposition swaps arguments of a three-parameter relation.
       (Contributed by Jim Kingdon, 31-Jan-2019.) $)
    brtposg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
        ( <. A , B >. tpos F C <-> <. B , A >. F C ) ) $=
      ( wcel w3a cop cdm ccnv c0 csn cun wbr wa wb 3adant3 cvv opswapg 3ad2ant3
      cuni ctpos breq1d anbi2d brtpos2 opexg ancoms anim1i 3impa breldmg 3expia
      wi syl opelcnvg sylibrd elun1 syl6 pm4.71rd 3bitr4d ) AEHZBFHZCGHZIZABJZD
      KZLZMNZOHZVFNLUCZCDPZQZVJBAJZCDPZQVFCDUDPZVOVEVLVOVJVBVCVLVORVDVBVCQZVKVN
      CDABEFUAUESUFVDVBVPVMRVCVFCDGUGUBVEVOVJVEVOVFVHHZVJVEVOVNVGHZVRVEVNTHZVDQ
      ZVOVSUNVBVCVDWAVQVTVDVCVBVTBAFEUHUIUJUKVTVDVOVSVNCTGDULUMUOVBVCVRVSRVDABE
      FVGUPSUQVFVHVIURUSUTVA $.

    $( The transposition swaps the first two elements in a collection of
       ordered triples.  (Contributed by Mario Carneiro, 1-Dec-2014.) $)
    ottposg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
        ( <. A , B , C >. e. tpos F <-> <. B , A , C >. e. F ) ) $=
      ( wcel w3a cop ctpos cotp wbr brtposg df-br 3bitr3g df-ot eleq1i 3bitr4g
      ) AEHBFHCGHIZABJZCJZDKZHZBAJZCJZDHZABCLZUCHBACLZDHTUACUCMUECDMUDUGABCDEFG
      NUACUCOUECDOPUHUBUCABCQRUIUFDBACQRS $.

    $( The domain of ` tpos F ` when ` dom F ` is a relation.  (Contributed by
       Mario Carneiro, 10-Sep-2015.) $)
    dmtpos $p |- ( Rel dom F -> dom tpos F = `' dom F ) $=
      ( vx vy vz ctpos cdm wrel ccnv wa wceq cvv wcel cop wbr wex vex opex eldm
      c0 cv cxp wss wn 0nelxp ssel mtoi df-rel reldmtpos 3imtr4i relcnv brtposg
      jctir wb mp3an a1i exbidv opelcnv bitri 3bitr4g eqrelrdv2 mpancom ) AEZFZ
      GZAFZHZGZIVEGZVCVFJVHVDVGVEKKUAZUBZSVELZUCVHVDVJVKSVILKKUDVEVISUEUFVEUGAU
      HUIVEUJULVHBCVCVFVHBTZCTZMZDTZVBNZDOVMVLMZVOANZDOZVNVCLVNVFLZVHVPVRDVPVRU
      MZVHVLKLVMKLVOKLWABPZCPZDPVLVMVOAKKKUKUNUOUPDVNVBVLVMWBWCQRVTVQVELVSVLVMV
      EWBWCUQDVQAVMVLWCWBQRURUSUTVA $.

    $( The range of ` tpos F ` when ` dom F ` is a relation.  (Contributed by
       Mario Carneiro, 10-Sep-2015.) $)
    rntpos $p |- ( Rel dom F -> ran tpos F = ran F ) $=
      ( vx vy vw vz cdm wrel crn cv wcel wbr wex vex elrn cop wceq breldm elrel
      wi cvv ctpos ccnv dmtpos eleq2d syl5ib relcnv mpan breq1 wb brtposg mp3an
      syl6 syl6bb opex brelrn syl6bi syli exlimdv syl5bi ex syl5 syl6bbr impbid
      exlimivv eqrdv ) AFZGZBAUAZHZAHZVGBIZVIJZVKVJJZVLCIZVKVHKZCLVGVMCVKVHBMZN
      VGVOVMCVOVGVNDIZEIZOZPZELDLZVMVGVOVNVFUBZJZWAVOVNVHFZJVGWCVNVKVHCMZVPQVGW
      DWBVNAUCUDUEWBGWCWAVFUFDEVNWBRUGULVTVOVMSDEVTVOVRVQOZVKAKZVMVTVOVSVKVHKZW
      GVNVSVKVHUHVQTJVRTJVKTJWHWGUIDMZEMZVPVQVRVKATTTUJUKZUMWFVKAVRVQWJWIUNVPUO
      UPVDUQURUSVMVNVKAKZCLVGVLCVKAVPNVGWLVLCWLVGVNWFPZDLELZVLWLVNVFJZVGWNVNVKA
      WEVPQVGWOWNEDVNVFRUTVAWMWLVLSEDWMWLWHVLWMWLWGWHVNWFVKAUHWKVBVSVKVHVQVRWIW
      JUNVPUOUPVDUQURUSVCVE $.

    $( The transposition of a set is a set.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposexg $p |- ( F e. V -> tpos F e. _V ) $=
      ( wcel ctpos cdm ccnv c0 csn cun crn cxp wss cvv tposssxp cnvexg syl p0ex
      dmexg unexg sylancl rnexg xpexg syl2anc ssexg sylancr ) ABCZADZAEZFZGHZIZ
      AJZKZLUMMCZUGMCANUFUKMCZULMCUNUFUIMCZUJMCUOUFUHMCUPABRUHMOPQUIUJMMSTABUAU
      KULMMUBUCUGUMMUDUE $.
  $}

  ${
    $d y A $.  $d y B $.  $d y F $.  $d y V $.  $d y W $.
    $( The transposition swaps the arguments in a two-argument function.  When
       ` F ` is a matrix, which is to say a function from ( 1 ... m ) ` X. `
       ( 1 ... n ) to the reals or some ring, ` tpos F ` is the transposition
       of ` F ` , which is where the name comes from.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    ovtposg $p |- ( ( A e. V /\ B e. W ) -> ( A tpos F B ) = ( B F A ) ) $=
      ( vy wcel wa cop ctpos cfv co cv wbr cio cvv wb df-fv 3eqtr4g df-ov vex
      brtposg mp3an3 iotabidv ) ADGZBEGZHZABIZCJZKZBAIZCKZABUILBACLUGUHFMZUINZF
      OUKUMCNZFOUJULUGUNUOFUEUFUMPGUNUOQFUAABUMCDEPUBUCUDFUHUIRFUKCRSABUITBACTS
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d w x y z F $.  $d x G $.
    $( The transposition of a function is a function.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    tposfun $p |- ( Fun F -> Fun tpos F ) $=
      ( vx wfun cdm ccnv c0 csn cun cv cuni cmpt ccom ctpos funco mpan2 df-tpos
      funmpt funeqi sylibr ) ACZABADEFGHZBIGEJZKZLZCZAMZCTUCCUEBUAUBQAUCNOUFUDB
      APRS $.

    $( Alternate definition of ` tpos ` when ` F ` has relational domain.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    dftpos2 $p |- ( Rel dom F -> tpos F =
        ( F o. ( x e. `' dom F |-> U. `' { x } ) ) ) $=
      ( cdm wrel ctpos cres ccnv csn cuni cmpt ccom dmtpos reseq2d wceq reltpos
      cv resdm ax-mp c0 cun df-tpos reseq1i resco resmpt coeq2i 3eqtri 3eqtr3g
      wss ssun1 ) BCZDZBEZULCZFZULUJGZFZULBAUOAPHGIZJZKZUKUMUOULBLMULDUNULNBOUL
      QRUPBAUOSHZTZUQJZKZUOFBVBUOFZKUSULVCUOABUAUBBVBUOUCVDURBUOVAUHVDURNUOUTUI
      AVAUOUQUDRUEUFUG $.

    $( Alternate definition of ` tpos ` when ` F ` has relational domain.
       Compare ~ df-cnv .  (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    dftpos3 $p |- ( Rel dom F -> tpos F =
      { <. <. x , y >. , z >. | <. y , x >. F z } ) $=
      ( vw cdm wrel ctpos cv cop wceq wbr wa wex wcel cvv cxp vex bitr3i syl6bb
      cab coprab wss ccnv relcnv dmtpos releqd mpbiri reltpos jctil sylib sseld
      relrelss elvvv syl6ib pm4.71rd 19.41vvv eleq1 df-br brtposg mp3an pm5.32i
      wb 3exbii abbi2dv df-oprab syl6eqr ) DFZGZDHZEIZAIZBIZJZCIZJZKZVMVLJVODLZ
      MZCNBNANZEUAVRABCUBVIVTEVJVIVKVJOZVQCNBNANZWAMZVTVIWAWBVIWAVKPPQPQZOWBVIV
      JWDVKVIVJGZVJFZGZMVJWDUCVIWGWEVIWGVHUDZGVHUEVIWFWHDUFUGUHDUIUJVJUMUKULABC
      VKUNUOUPWCVQWAMZCNBNANVTVQWAABCUQWIVSABCVQWAVRVQWAVPVJOZVRVKVPVJURWJVNVOV
      JLZVRVNVOVJUSVLPOVMPOVOPOWKVRVCARBRCRVLVMVODPPPUTVASTVBVDSTVEVRABCEVFVG
      $.

    $( Alternate definition of ` tpos ` .  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    dftpos4 $p |- tpos F =
        ( F o. ( x e. ( ( _V X. _V ) u. { (/) } ) |-> U. `' { x } ) ) $=
      ( vy vz vw cvv csn cun cv ccnv cuni wss wceq cop wcel wbr wa wex vex wb
      ctpos cxp cmpt ccom cdm df-tpos cres wrel relcnv df-rel mpbi unss1 resmpt
      c0 mp2b resss eqsstr3i coss2 ax-mp eqsstri relco opelco eleq1 sneq cnveqd
      unieqd eqeq2d anbi12d anbi2d df-mpt brab wi simplr breldm adantl eqeltrrd
      eqeq1 opswapg mp2an eleq1i opelcnv bitr4i eleq1d bibi12d exlimivv biimpcd
      elvv mpbiri sylbi elun1 syl6 syl elun2 a1i simpll elun sylib mpjaod simpr
      wo eqbrtrrd jca sylanb brtpos2 sylibr df-br exlimiv relssi eqssi ) BUAZBA
      FFUBZUNGZHZAIZGZJZKZUCZUDZXJBABUEZJZXLHZXQUCZUDZXSABUFYCXRLYDXSLYCXRYBUGZ
      XRYAXKLZYBXMLYEYCMYAUHYFXTUIYAUJUKYAXKXLULAXMYBXQUMUOXRYBUPUQYCXRBURUSUTC
      DXSXJBXRVACIZDIZNZXSOYGEIZXRPZYJYHBPZQZERYIXJOZEYGYHBXRCSZDSZVBYMYNEYMYGY
      HXJPZYNYMYGYBOZYGGZJZKZYHBPZQZYQYKYGXMOZYJUUAMZQZYLUUCXNXMOZYHXQMZQUUDYHU
      UAMZQUUFADYGYJXRYOESZXNYGMZUUGUUDUUHUUIXNYGXMVCUUKXQUUAYHUUKXPYTUUKXOYSXN
      YGVDVEVFVGVHYHYJMUUIUUEUUDYHYJUUAVQVIADXMXQVJVKUUFYLQZYRUUBUULYGXKOZYRYGX
      LOZUULUUAXTOZUUMYRVLUULYJUUAXTUUDUUEYLVMZYLYJXTOUUFYJYHBUUJYPVNVOVPUUOUUM
      YGYAOZYRUUMUUOUUQUUMYGYHYJNZMZERDRUUOUUQTZDEYGWGUUSUUTDEUUSUUTUURGZJZKZXT
      OZUURYAOZTUVDYJYHNZXTOUVEUVCUVFXTYHFOZYJFOUVCUVFMYPUUJYHYJFFVRVSVTYHYJXTY
      PUUJWAWBUUSUUOUVDUUQUVEUUSUUAUVCXTUUSYTUVBUUSYSUVAYGUURVDVEVFWCYGUURYAVCW
      DWHWEWIWFYGYAXLWJWKWLUUNYRVLUULYGXLYAWMWNUULUUDUUMUUNWTUUDUUEYLWOYGXKXLWP
      WQWRUULYJUUAYHBUUPUUFYLWSXAXBXCUVGYQUUCTYPYGYHBFXDUSXEYGYHXJXFWQXGWIXHXI
      $.

    $( Value of the double transposition for a general class ` F ` .
       (Contributed by Mario Carneiro, 16-Sep-2015.) $)
    tpostpos $p |- tpos tpos F =
        ( F i^i ( ( ( _V X. _V ) u. { (/) } ) X. _V ) ) $=
      ( vz vx vy cvv c0 csn wrel cv ccnv wcel wbr wa wo wb syl6bb syl6eq breq1d
      cuni vex vw ctpos cxp cun cin reltpos wss inss2 relxp relss relcnv df-rel
      mp2 cdm mpbi simpl sseldi simpr cop wceq elvv eleq1 opelcnv cnveqd unieqd
      wex sneq opswapg mp2an anbi12d breldm pm4.71ri brtposg mp3an bitr3i breq1
      opex bitr4d exlimivv sylbi iba bitrd pm5.21nii elsni sneqd cnvsn0 brtpos0
      uni0 ax-mp pm5.32i ancom bitri orbi12i andir andi 3bitr4i anbi1i mpbiran2
      elun brxp anbi2i brtpos2 brin eqbrriv ) UABAUBZUBZAEEUCZFGZUDZEUCZUEZXEUF
      XKXJUGXJHXKHAXJUHXIEUIXKXJUJUMUAIZXEUNZJZXHUDKZXLGZJZSZBIZXELZMZXLXSALZXL
      XSXJLZMZXLXSXFLZXLXSXKLXLXNKZXLXHKZNZXTMZYBXLXGKZYGNZMZYAYDYFXTMZYGXTMZNY
      BYJMZYBYGMZNYIYLYMYOYNYPYMYJYOYMXNXGXLXNHXNXGUGXMUKXNULUOYFXTUPUQYBYJURYJ
      YMYBYOYJXLCIZDIZUSZUTZDVFCVFYMYBOZCDXLVAYTUUACDYTYMYSXSALZYBYTYMYRYQUSZXM
      KZUUCXSXELZMZUUBYTYFUUDXTUUEYTYFYSXNKUUDXLYSXNVBYQYRXMCTZDTZVCPYTXRUUCXSX
      EYTXRYSGZJZSZUUCYTXQUUJYTXPUUIXLYSVGVDVEYQEKZYREKZUUKUUCUTUUGUUHYQYREEVHV
      IQRVJUUFUUEUUBUUEUUDUUCXSXEYRYQUUHUUGVQBTZVKVLUUMUULXSEKZUUEUUBOUUHUUGUUN
      YRYQXSAEEEVMVNVOPXLYSXSAVPVRVSVTYJYBWAWBWCYNYGYBMYPYGXTYBYGXTFXSALZYBYGXT
      FXSXELZUUPYGXRFXSXEYGXRFSFYGXQFYGXQXHJFYGXPXHYGXLFXLFWDZWEVDWFQVEWHQRUUOU
      UQUUPOUUNXSAEWGWIPYGXLFXSAUURRVRWJYGYBWKWLWMYFYGXTWNYBYJYGWOWPXOYHXTXLXNX
      HWSWQYCYKYBYCXLXIKZYKYCUUSUUOUUNXLXSXIEWTWRXLXGXHWSWLXAWPUUOYEYAOUUNXLXSX
      EEXBWIXLXSAXJXCWPXD $.

    $( Value of the double transposition for a relation on triples.
       (Contributed by Mario Carneiro, 16-Sep-2015.) $)
    tpostpos2 $p |- ( ( Rel F /\ Rel dom F ) -> tpos tpos F = F ) $=
      ( wrel cdm wa ctpos cvv cxp csn cun cin tpostpos wss relrelss ssun1 xpss1
      c0 wceq ax-mp sstr mpan2 sylbi df-ss sylib syl5eq ) ABACBDZAEEAFFGZPHZIZF
      GZJZAAKUEAUILZUJAQUEAUFFGZLZUKAMUMULUILZUKUFUHLUNUFUGNUFUHFORAULUISTUAAUI
      UBUCUD $.

    $( The domain of a transposition.  (Contributed by NM, 10-Sep-2015.) $)
    tposfn2 $p |- ( Rel A -> ( F Fn A -> tpos F Fn `' A ) ) $=
      ( wrel wfun cdm wceq wa ctpos ccnv wfn wi tposfun a1i dmtpos releq eqeq2d
      cnveq 3imtr3d com12 df-fn anim12d 3imtr4g ) ACZBDZBEZAFZGBHZDZUGEZAIZFZGB
      AJUGUJJUCUDUHUFUKUDUHKUCBLMUFUCUKUFUECZUIUEIZFZUCUKULUNKUFBNMUEAOUFUMUJUI
      UEAQPRSUABATUGUJTUB $.

    $( Condition for a surjective transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposfo2 $p |- ( Rel A ->
        ( F : A -onto-> B -> tpos F : `' A -onto-> B ) ) $=
      ( wrel wfn crn wceq wa ctpos ccnv wfo tposfn2 adantrd cdm releqd biimparc
      fndm rntpos syl df-fo eqeq1d biimprd expimpd jcad 3imtr4g ) ADZCAEZCFZBGZ
      HZCIZAJZEZUKFZBGZHABCKULBUKKUFUJUMUOUFUGUMUIACLMUFUGUIUOUFUGHZUOUIUPUNUHB
      UPCNZDZUNUHGUGURUFUGUQAACQOPCRSUAUBUCUDABCTULBUKTUE $.

    $( The domain and range of a transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf2 $p |- ( Rel A -> ( F : A --> B -> tpos F : `' A --> B ) ) $=
      ( wrel wf ccnv ctpos crn wss wfo wfn ffn dffn4 sylib tposfo2 syl5 imp fof
      wa syl frn adantl fss syl2anc ex ) ADZABCEZAFZBCGZEZUFUGSZUHCHZUIEZULBIZU
      JUKUHULUIJZUMUFUGUOUGAULCJZUFUOUGCAKUPABCLACMNAULCOPQUHULUIRTUGUNUFABCUAU
      BUHULBUIUCUDUE $.

    $( Condition for an injective transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf12 $p |- ( Rel A -> ( F : A -1-1-> B -> tpos F : `' A -1-1-> B ) ) $=
      ( vx wrel wf1 ccnv ctpos wa cdm cv csn cuni cmpt wceq wb syl f1eq1 mpbird
      3syl ccom simpr relcnv cnvf1o f1of1 simpl dfrel2 sylib f1eq3 mpbii cnveqd
      wf1o mp2b f1dm mpteq1 f1co syl2anc releqd biimparc dftpos2 ex ) AEZABCFZA
      GZBCHZFZVBVCIZVFVDBCDCJZGZDKLGMZNZUAZFZVGVCVDAVKFZVMVBVCUBZVGVNVDADVDVJNZ
      FZVGVDVDGZVPFZVQVDEVDVRVPULVSAUCDVDUDVDVRVPUEUMVGVRAOZVSVQPVGVBVTVBVCUFAU
      GUHVRAVDVPUIQUJVGVIVDOVKVPOVNVQPVGVHAVGVCVHAOVOABCUNZQUKDVIVDVJUOVDAVKVPR
      TSVDABCVKUPUQVGVHEZVEVLOVFVMPVCWBVBVCVHAWAURUSDCUTVDBVEVLRTSVA $.

    $( Condition of a bijective transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf1o2 $p |- ( Rel A ->
      ( F : A -1-1-onto-> B -> tpos F : `' A -1-1-onto-> B ) ) $=
      ( wrel wf1 wfo wa ccnv ctpos wf1o tposf12 tposfo2 anim12d df-f1o 3imtr4g
      ) ADZABCEZABCFZGAHZBCIZEZSBTFZGABCJSBTJPQUARUBABCKABCLMABCNSBTNO $.

    $( The domain and range of a transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposfo $p |- ( F : ( A X. B ) -onto-> C ->
              tpos F : ( B X. A ) -onto-> C ) $=
      ( cxp wfo ccnv ctpos wrel wi relxp tposfo2 ax-mp wceq cnvxp foeq2 sylib
      wb ) ABEZCDFZSGZCDHZFZBAEZCUBFZSITUCJABKSCDLMUAUDNUCUERABOUAUDCUBPMQ $.

    $( The domain and range of a transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf $p |- ( F : ( A X. B ) --> C -> tpos F : ( B X. A ) --> C ) $=
      ( cxp wf ccnv ctpos wrel wi relxp tposf2 ax-mp cnvxp feq2i sylib ) ABEZCD
      FZQGZCDHZFZBAEZCTFQIRUAJABKQCDLMSUBCTABNOP $.

    $( Functionality of a transposition.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    tposfn $p |- ( F Fn ( A X. B ) -> tpos F Fn ( B X. A ) ) $=
      ( cxp cvv wf ctpos wfn tposf dffn2 3imtr4i ) ABDZECFBADZECGZFCLHNMHABECIL
      CJMNJK $.

    $( Transposition of the empty set.  (Contributed by NM, 10-Sep-2015.) $)
    tpos0 $p |- tpos (/) = (/) $=
      ( c0 ctpos wfn wceq ccnv wrel rel0 eqid fn0 mpbir tposfn2 mp2 cnv0 fneq2i
      mpbi ) ABZACZPADPAEZCZQAFAACZSGTAADAHAIJAAKLRAPMNOPIO $.

    $( Transposition of a composition.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    tposco $p |- tpos ( F o. G ) = ( F o. tpos G ) $=
      ( vx ccom cvv cxp c0 csn cun cv ccnv cuni cmpt ctpos coass dftpos4 coeq2i
      3eqtr4i ) ABDZCEEFGHICJHKLMZDABTDZDSNABNZDABTOCSPUBUAACBPQR $.

    $( Two ways to say a function is symmetric.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    tpossym $p |- ( F Fn ( A X. A ) ->
      ( tpos F = F <-> A. x e. A A. y e. A ( x F y ) = ( y F x ) ) ) $=
      ( cxp wfn ctpos wceq cv co wral tposfn eqfnov2 mpancom eqcom cvv wcel vex
      wb ovtposg mp2an eqeq2i bitri 2ralbii syl6bb ) DCCEZFZDGZDHZAIZBIZUHJZUJU
      KDJZHZBCKACKZUMUKUJDJZHZBCKACKUHUFFUGUIUOSCCDLABCCUHDMNUNUQABCCUNUMULHUQU
      LUMOULUPUMUJPQUKPQULUPHARBRUJUKDPPTUAUBUCUDUE $.

  $}

  ${
    tposeqi.1 $e |- F = G $.
    $( Equality theorem for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposeqi $p |- tpos F = tpos G $=
      ( wceq ctpos tposeq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    tposex.1 $e |- F e. _V $.
    $( A transposition is a set.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposex $p |- tpos F e. _V $=
      ( cvv wcel ctpos tposexg ax-mp ) ACDAECDBACFG $.
  $}

  ${
    $d x y $.  $d y F $.
    nftpos.1 $e |- F/_ x F $.
    $( Hypothesis builder for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    nftpos $p |- F/_ x tpos F $=
      ( vy ctpos cvv cxp c0 csn cv ccnv cuni cmpt ccom dftpos4 nfcv nfco nfcxfr
      cun ) ABEBDFFGHISDJIKLMZNDBOABTCATPQR $.
  $}

  ${
    $d a b c w x y z $.  $d a b c w ph $.
    tposoprab.1 $e |- F = { <. <. x , y >. , z >. | ph } $.
    $( Transposition of a class of ordered triples.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    tposoprab $p |- tpos F = { <. <. y , x >. , z >. | ph } $=
      ( vb va vc ctpos coprab cv cop wbr tposeqi wceq nfcv nfbr nfv weq dftpos3
      cdm reldmoprab ax-mp nfoprab2 nfoprab1 wa opeq12 ancoms breq1d cbvoprab12
      wrel nfoprab3 breq2 df-br oprabid bitri syl6bb cbvoprab3 eqtri 3eqtri
      wcel ) EJABCDKZJZGLZHLZMZILZVCNZHGIKZACBDKZEVCFOVCUBULVDVJPABCDUCHGIVCUAU
      DVJBLZCLZMZVHVCNZCBIKVKVIVOHGICBCVGVHVCCVGQABCDUECVHQRBVGVHVCBVGQABCDUFBV
      HQRVOHSVOGSHCTZGBTZUGVGVNVHVCVQVPVGVNPVEVFVLVMUHUIUJUKVOACBIDDVNVHVCDVNQA
      BCDUMDVHQRAISIDTVOVNDLZVCNZAVHVRVNVCUNVSVNVRMVCVBAVNVRVCUOABCDUPUQURUSUTV
      A $.
  $}

  ${
    $d x y z $.  $d z A $.  $d z B $.  $d z C $.
    tposmpt2.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Transposition of a two-argument mapping.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    tposmpt2 $p |- tpos F = ( y e. B , x e. A |-> C ) $=
      ( vz ctpos cv wcel wceq coprab cmpt2 df-mpt2 ancom anbi1i oprabbii 3eqtri
      wa tposoprab eqtr4i ) FIBJDKZAJCKZTZHJELZTZBAHMBADCENUGABHFFABCDENUDUCTZU
      FTZABHMUGABHMGABHCDEOUIUGABHUHUEUFUDUCPQRSUABAHDCEOUB $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      Undefined values
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The power set of the union of a set does not belong to the set.  This
     theorem provides a way of constructing a new set that doesn't belong to a
     given set.  (Contributed by Stefan O'Rear, 22-Feb-2015.) $)
  pwuninel2 $p |- ( U. A e. V -> -. ~P U. A e. A ) $=
    ( cuni wcel cpw wss pwnss elssuni nsyl ) ACZBDJEZJFKADJBGKAHI $.

  $( The power set of the power set of the union of a set does not belong to
     the set.  This theorem provides a way of constructing a new set that
     doesn't belong to a given set.  (Contributed by Jim Kingdon,
     14-Jan-2020.) $)
  2pwuninelg $p |- ( A e. V -> -. ~P ~P U. A e. A ) $=
    ( wcel cuni cpw wa en2lp wi wss pwuni elpwg mpbiri ax-ia3 syl mtoi ) ABCZAD
    EZEZACZARCZSFZARGPTSUAHPTAQIAJAQBKLTSMNO $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functions on ordinals; strictly monotone ordinal functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( The indexed union of a set of ordinal numbers ` B ( x ) ` is an ordinal
       number.  (Contributed by NM, 13-Oct-2003.)  (Revised by Mario Carneiro,
       5-Dec-2016.) $)
    iunon $p |- ( ( A e. V /\ A. x e. A B e. On ) -> U_ x e. A B e. On ) $=
      ( wcel con0 wral wa ciun cmpt crn cuni wceq dfiun3g adantl cvv wss mptexg
      rnexg syl wf eqid fmpt frn sylbi ssonuni imp syl2an eqeltrd ) BDEZCFEABGZ
      HABCIZABCJZKZLZFUKULUOMUJABCFNOUJUNPEZUNFQZUOFEZUKUJUMPEUPABCDRUMPSTUKBFU
      MUAUQABFCUMUMUBUCBFUMUDUEUPUQURUNPUFUGUHUI $.
  $}

  $c Smo $.

  $( Introduce the strictly monotone ordinal function.  A strictly monotone
     function is one that is constantly increasing across the ordinals. $)
  wsmo $a wff Smo A $.

  ${
    $d x y A $.
    $( Definition of a strictly monotone ordinal function.  Definition 7.46 in
       [TakeutiZaring] p. 50.  (Contributed by Andrew Salmon, 15-Nov-2011.) $)
    df-smo $a |- ( Smo A <-> ( A : dom A --> On /\ Ord dom A /\ A. x e. dom A
       A. y e. dom A ( x e. y -> ( A ` x ) e. ( A ` y ) ) ) ) $.
  $}

  ${
    $d F x y $.
    $( Alternate definition of a strictly monotone ordinal function.
       (Contributed by Mario Carneiro, 4-Mar-2013.) $)
    dfsmo2 $p |- ( Smo F <-> ( F : dom F --> On /\ Ord dom F /\ A. x e. dom F
       A. y e. x ( F ` y ) e. ( F ` x ) ) ) $=
      ( wsmo cdm con0 wf word wel cfv wcel wral w3a df-smo ralcom impexp 3anass
      cv wi wa simpr ordtr1 3impib 3com23 simp3 3expia impbid2 syl5bbr ralbidv2
      jca imbi1d ralbidva syl5bb pm5.32i anbi2i 3bitr4i bitri ) CDCEZFCGZURHZBA
      IZBRZCJARZCJKZSZAURLBURLZMZUSUTVDBVCLZAURLZMZBACNUSUTVFTZTUSUTVITZTVGVJVK
      VLUSUTVFVIVFVEBURLZAURLUTVIVEBAURUROUTVMVHAURUTVCURKZTZVEVDBURVCVBURKZVES
      VPVATZVDSVOVEVPVAVDPVOVQVAVDVOVQVAVPVAUAUTVNVAVQUTVNVAMVPVAUTVAVNVPUTVAVN
      VPVBVCURUBUCUDUTVNVAUEUJUFUGUKUHUIULUMUNUOUSUTVFQUSUTVIQUPUQ $.
  $}

  ${
    $d x y A $.
    issmo.1 $e |- A : B --> On $.
    issmo.2 $e |- Ord B $.
    issmo.3 $e |- ( ( x e. B /\ y e. B ) -> ( x e. y -> ( A ` x ) e. ( A ` y
       ) ) ) $.
    issmo.4 $e |- dom A = B $.
    $( Conditions for which ` A ` is a strictly monotone ordinal function.
       (Contributed by Andrew Salmon, 15-Nov-2011.) $)
    issmo $p |- Smo A $=
      ( wsmo cdm con0 wf word cv wcel cfv wi wral mpbir eleq2i feq2i wceq ordeq
      wb ax-mp syl2anb rgen2a df-smo mpbir3an ) CICJZKCLZUJMZANZBNZOUMCPUNCPOQZ
      BUJRAUJRUKDKCLEUJDKCHUASULDMZFUJDUBULUPUDHUJDUCUESUOABUJUMUJOUMDOUNDOUOUN
      UJOUJDUMHTUJDUNHTGUFUGABCUHUI $.
  $}

  ${
    $d A x $.  $d F x y $.
    $( Alternative definition of a strictly monotone ordinal function.
       (Contributed by Mario Carneiro, 12-Mar-2013.) $)
    issmo2 $p |- ( F : A --> B -> ( ( B C_ On /\ Ord A /\
       A. x e. A A. y e. x ( F ` y ) e. ( F ` x ) ) -> Smo F ) ) $=
      ( wf con0 wss word cv cfv wcel wral w3a cdm wsmo fss ex fdm biimprd feq2d
      sylibrd wceq wb ordeq syl raleqdv 3anim123d dfsmo2 syl6ibr ) CDEFZDGHZCIZ
      BJEKAJZEKLBUNMZACMZNEOZGEFZUQIZUOAUQMZNEPUKULURUMUSUPUTUKULCGEFZURUKULVAC
      DGEQRUKUQCGECDESZUAUBUKUSUMUKUQCUCUSUMUDVBUQCUEUFTUKUTUPUKUOAUQCVBUGTUHAB
      EUIUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality theorem for strictly monotone functions.  (Contributed by
       Andrew Salmon, 16-Nov-2011.) $)
    smoeq $p |- ( A = B -> ( Smo A <-> Smo B ) ) $=
      ( vx vy wceq cdm con0 wf word cv wcel cfv wi wral w3a wsmo raleqdv df-smo
      id fveq1 dmeq feq12d wb ordeq syl eleq12d imbi2d ralbidv 3bitrd 3anbi123d
      2ralbidv 3bitr4g ) ABEZAFZGAHZUNIZCJZDJZKZUQALZURALZKZMZDUNNCUNNZOBFZGBHZ
      VEIZUSUQBLZURBLZKZMZDVENZCVENZOAPBPUMUOVFUPVGVDVMUMUNVEGABUMSABUAZUBUMUNV
      EEUPVGUCVNUNVEUDUEUMVDVKDUNNZCUNNVLCUNNVMUMVCVKCDUNUNUMVBVJUSUMUTVHVAVIUQ
      ABTURABTUFUGUKUMVOVLCUNUMVKDUNVEVNQUHUMVLCUNVEVNQUIUJCDARCDBRUL $.

    $( The domain of a strictly monotone function is an ordinal.  (Contributed
       by Andrew Salmon, 16-Nov-2011.) $)
    smodm $p |- ( Smo A -> Ord dom A ) $=
      ( vx vy wsmo cdm con0 wf word cv wcel cfv wi wral df-smo simp2bi ) ADAEZF
      AGPHBIZCIZJQAKRAKJLCPMBPMBCANO $.

    $( A strictly monotone function restricted to an ordinal remains strictly
       monotone.  (Contributed by Andrew Salmon, 16-Nov-2011.)  (Proof
       shortened by Mario Carneiro, 5-Dec-2016.) $)
    smores $p |- ( ( Smo A /\ B e. dom A ) -> Smo ( A |` B ) ) $=
      ( vx vy cdm wcel wsmo con0 wf word cv cfv wi wral w3a wss ax-mp wceq syl
      wa cres wfn crn wfun funres funfn 3imtr3i resss rnss sstr anim12i 3imtr4i
      mpan df-f a1i ordelord expcom ordin ex syli wb dmres ordeq syl6ibr ssralv
      cin ralimi inss1 eqsstri simpl sseldi fvres simpr eleq12d imbi2d ralbidva
      dmss ralbiia sylibr 3anim123d df-smo 3imtr4g impcom ) BAEZFZAGZABUAZGZWEW
      DHAIZWDJZCKZDKZFZWKALZWLALZFZMZDWDNZCWDNZOWGEZHWGIZWTJZWMWKWGLZWLWGLZFZMZ
      DWTNZCWTNZOWFWHWEWIXAWJXBWSXHWIXAMWEAWDUBZAUCZHPZTWGWTUBZWGUCZHPZTWIXAXIX
      LXKXNAUDWGUDXIXLBAUEAUFWGUFUGXMXJPZXKXNWGAPZXOABUHZWGAUIQXMXJHUJUMUKWDHAU
      NWTHWGUNULUOWEWJBWDVFZJZXBWJWEBJZXSWJWEXTWDBUPUQXTWJXSBWDURUSUTWTXRRXBXSV
      AABVBZWTXRVCQVDWSXHMWEWSWQDWTNZCWTNZXHWSWRCWTNZYCWTWDPZWSYDMXPYEXQWGAVQQZ
      WRCWTWDVEQWRYBCWTYEWRYBMYFWQDWTWDVEQVGSXGYBCWTWKWTFZXFWQDWTYGWLWTFZTZXEWP
      WMYIXCWNXDWOYIWKBFXCWNRYIWTBWKWTXRBYABWDVHVIZYGYHVJVKWKBAVLSYIWLBFXDWORYI
      WTBWLYJYGYHVMVKWLBAVLSVNVOVPVRVSUOVTCDAWACDWGWAWBWC $.

    $( A strictly monotone function restricted to an ordinal remains strictly
       monotone.  (Contributed by Andrew Salmon, 19-Nov-2011.) $)
    smores3 $p |- ( ( Smo ( A |` B ) /\ C e. ( dom A i^i B ) /\ Ord B ) -> Smo
       ( A |` C ) ) $=
      ( cres wsmo cdm cin wcel word w3a dmres incom eqtri eleq2i smores 3adant3
      sylan2br wss wceq wb inss2 sseli ordelss sylan 3adant1 resabs1 smoeq 3syl
      ancoms mpbid ) ABDZEZCAFZBGZHZBIZJZUKCDZEZACDZEZULUOUSUPUOULCUKFZHUSVBUNC
      VBBUMGUNABKBUMLMNUKCOQPUQCBRZURUTSUSVATUOUPVCULUOCBHZUPVCUNBCUMBUAUBUPVDV
      CBCUCUIUDUEACBUFURUTUGUHUJ $.
  $}

  ${
    $d A x y $.  $d F x y $.
    $( A strictly monotone ordinal function restricted to an ordinal is still
       monotone.  (Contributed by Mario Carneiro, 15-Mar-2013.) $)
    smores2 $p |- ( ( Smo F /\ Ord A ) -> Smo ( F |` A ) ) $=
      ( vy vx wsmo word wa cdm con0 wf cv cfv wcel wral crn wss wfun dfsmo2 syl
      wceq cres wfn simp1bi ffun funres funfn sylib df-ima imassrn eqsstr3i frn
      cima syl5ss df-f sylanbrc adantr smodm cin ordin dmres ordeq ax-mp sylibr
      wb ancoms sylan resss dmss simp3bi ssralv mpsyl wel wi ordtr1 inss1 sseli
      eqsstri expcomd imp31 fvres ad2antlr eleq12d ralbidva mpbird syl3anbrc
      syl6 ) BEZAFZGZBAUAZHZIWJJZWKFZCKZWJLZDKZWJLZMZCWPNZDWKNZWJEWGWLWHWGWJWKU
      BZWJOZIPWLWGBQZXAWGBHZIBJZXCWGXEXDFZWNBLZWPBLZMZCWPNZDXDNZDCBRZUCZXDIBUDS
      XCWJQXAABUEWJUFUGSWGXBBOZIXBBAULXNBAUHBAUIUJWGXEXNIPXMXDIBUKSUMWKIWJUNUOU
      PWGXFWHWMBUQWHXFWMWHXFGAXDURZFZWMAXDUSWKXOTWMXPVDBAUTZWKXOVAVBVCVEVFZWIWT
      XJDWKNZWGXSWHWKXDPZWGXKXSWJBPXTBAVGWJBVHVBWGXEXFXKXLVIXJDWKXDVJVKUPWIWSXJ
      DWKWIWPWKMZGZWRXICWPYBCDVLZGZWOXGWQXHYDWNAMZWOXGTWIYAYCYEWIYCYAYEWIYCYAGZ
      WNWKMZYEWIWMYFYGVMXRWNWPWKVNSWKAWNWKXOAXQAXDVOVQZVPWFVRVSWNABVTSYAWQXHTZW
      IYCYAWPAMYIWKAWPYHVPWPABVTSWAWBWCWCWDDCWJRWE $.
  $}

  $( The domain of a strictly monotone ordinal function is an ordinal.
     (Contributed by Mario Carneiro, 12-Mar-2013.) $)
  smodm2 $p |- ( ( F Fn A /\ Smo F ) -> Ord A ) $=
    ( wsmo wfn cdm word smodm wceq wb fndm ordeq syl biimpa sylan2 ) BCBADZBEZF
    ZAFZBGOQROPAHQRIABJPAKLMN $.

  ${
    $d F x y $.
    $( The function values of a strictly monotone ordinal function are
       ordinals.  (Contributed by Mario Carneiro, 12-Mar-2013.) $)
    smofvon2dm $p |- ( ( Smo F /\ B e. dom F ) -> ( F ` B ) e. On ) $=
      ( vy vx wsmo cdm con0 wf word cv cfv wcel wral dfsmo2 simp1bi ffvelrnda )
      BEZBFZGABQRGBHRICJBKDJZBKLCSMDRMDCBNOP $.
  $}

  ${
    $d x y A $.
    iordsmo.1 $e |- Ord A $.
    $( The identity relation restricted to the ordinals is a strictly monotone
       function.  (Contributed by Andrew Salmon, 16-Nov-2011.) $)
    iordsmo $p |- Smo ( _I |` A ) $=
      ( vx vy cid cres con0 wf wfn crn wss fnresi rnresi word ordsson wcel wceq
      cv cfv fvresi ax-mp eqsstri df-f mpbir2an wa adantr adantl eleq12d dmresi
      biimprd issmo ) CDEAFZAAGULHULAIULJZGKALUMAGAMANAGKBAOUAUBAGULUCUDBCRZAPZ
      DRZAPZUEZUNULSZUPULSZPUNUPPURUSUNUTUPUOUSUNQUQAUNTUFUQUTUPQUOAUPTUGUHUJAU
      IUK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y F $.
    $( The null set is a strictly monotone ordinal function.  (Contributed by
       Andrew Salmon, 20-Nov-2011.) $)
    smo0 $p |- Smo (/) $=
      ( cid c0 cres wsmo ord0 iordsmo wceq wb res0 smoeq ax-mp mpbi ) ABCZDZBDZ
      BEFMBGNOHAIMBJKL $.

    $( If ` B ` is a strictly monotone ordinal function, and ` A ` is in the
       domain of ` B ` , then the value of the function at ` A ` is an
       ordinal.  (Contributed by Andrew Salmon, 20-Nov-2011.) $)
    smofvon $p |- ( ( Smo B /\ A e. dom B ) -> ( B ` A ) e. On ) $=
      ( vx vy wsmo cdm con0 wf word cv wcel cfv wral df-smo simp1bi ffvelrnda
      wi ) BEZBFZGABRSGBHSICJZDJZKTBLUABLKQDSMCSMCDBNOP $.

    $( If ` x ` is less than ` y ` then a strictly monotone function's value
       will be strictly less at ` x ` than at ` y ` .  (Contributed by Andrew
       Salmon, 22-Nov-2011.) $)
    smoel $p |- ( ( Smo B /\ A e. dom B /\ C e. A ) -> ( B ` C ) e. ( B ` A )
       ) $=
      ( vx vy wsmo cdm wcel cfv wa wi word smodm ordtr1 expdimp wral wceq fveq2
      cv imbi12d ancomsd sylan con0 w3a df-smo eleq1 eleq1d eleq2 eleq2d rspc2v
      wf ancoms com12 3ad2ant3 sylbi syld pm2.43d 3impia ) BFZABGZHZCAHZCBIZABI
      ZHZUSVAJZVBVEVFVBCUTHZVBVEKZUSUTLZVAVBVGKBMVIVAVBVGVIVBVAVGCAUTNUAOUBUSVA
      VGVHUSUTUCBUKZVIDSZESZHZVKBIZVLBIZHZKZEUTPDUTPZUDVAVGJZVHKZDEBUEVRVJVTVIV
      SVRVHVGVAVRVHKVQVHCVLHZVCVOHZKDECAUTUTVKCQZVMWAVPWBVKCVLUFWCVNVCVOVKCBRUG
      TVLAQZWAVBWBVEVLACUHWDVOVDVCVLABRUITUJULUMUNUOOUPUQUR $.

    $( The value of a strictly monotone ordinal function contains its indexed
       union.  (Contributed by Andrew Salmon, 22-Nov-2011.) $)
    smoiun $p |- ( ( Smo B /\ A e. dom B ) -> U_ x e. A ( B ` x )
       C_ ( B ` A ) ) $=
      ( vy wsmo cdm wcel wa cv cfv ciun wrex eliun con0 wi smofvon smoel 3expia
      ontr1 expcomd sylsyld rexlimdv syl5bi ssrdv ) CEZBCFGZHZDABAIZCJZKZBCJZDI
      ZUJGULUIGZABLUGULUKGZAULBUIMUGUMUNABUGUKNGZUHBGZUIUKGZUMUNOBCPUEUFUPUQBCU
      HQRUOUMUQUNULUIUKSTUAUBUCUD $.

    $( If ` F ` is an isomorphism from an ordinal ` A ` onto ` B ` , which is a
       subset of the ordinals, then ` F ` is a strictly monotonic function.
       Exercise 3 in [TakeutiZaring] p. 50.  (Contributed by Andrew Salmon,
       24-Nov-2011.) $)
    smoiso $p |- ( ( F Isom _E , _E ( A , B ) /\ Ord A /\ B C_ On )
        -> Smo F ) $=
      ( vx vy cep word con0 wss wf cv wcel cfv wral syl wb wa eleq2d wbr cvv wi
      wiso w3a cdm wsmo wf1o isof1o f1of ffdm simpld sylan 3adant2 syl3an1 wceq
      fss fdm eqcomd ordeq 4syl biimpa 3adant3 anbi12d 3syl epel isorel syl5bbr
      wfn ffn adantr simprr funfvex funfni epelg syl2anc bitrd biimpd ex sylbid
      ralrimivv 3ad2ant1 df-smo syl3anbrc ) ABFFCUBZAGZBHIZUCCUDZHCJZWFGZDKZEKZ
      LZWICMZWJCMZLZUAZEWFNDWFNZCUEWCABCJZWDWEWGWCABCUFZWQABFFCUGZABCUHZOZWQWEW
      GWDWQWFBCJZWEWGWQXBWFAIABCUIUJWFBHCUOUKULUMWCWDWHWEWCWDWHWCWRWQAWFUNWDWHP
      WSWTWQWFAABCUPZUQAWFURUSUTVAWCWDWPWEWCWODEWFWFWCWIWFLZWJWFLZQZWIALZWJALZQ
      ZWOWCWRWQXFXIPWSWTWQXDXGXEXHWQWFAWIXCRWQWFAWJXCRVBVCWCXIWOWCXIQZWKWNXJWKW
      LWMFSZWNWKWIWJFSXJXKDEVDABWIWJFFCVEVFXJCAVGZXHXKWNPZWCXLXIWCWQXLXAABCVHOV
      IWCXGXHVJXLXHQWMTLZXMXNAWJCWJCVKVLWLWMTVMOVNVOVPVQVRVSVTDECWAWB $.
  $}

  ${
    $d A w x z $.  $d B w z $.  $d F w x y z $.
    $( A strictly monotone ordinal function preserves the epsilon relation.
       (Contributed by Mario Carneiro, 12-Mar-2013.) $)
    smoel2 $p |- ( ( ( F Fn A /\ Smo F ) /\ ( B e. A /\ C e. B ) )
      -> ( F ` C ) e. ( F ` B ) ) $=
      ( wfn wsmo wa wcel cfv cdm fndm eleq2d anbi1d biimprd smoel 3expib sylan9
      imp ) DAEZDFZGBAHZCBHZGZCDIBDIHZSUCBDJZHZUBGZTUDSUGUCSUFUAUBSUEABADKLMNTU
      FUBUDBDCOPQR $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    "Strong" transfinite recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c recs $.

  $( Notation for a function defined by strong transfinite recursion. $)
  crecs $a class recs ( F ) $.

  ${
    $d F f x y $.
    $( Define a function ` recs ( F ) ` on ` On ` , the class of ordinal
       numbers, by transfinite recursion given a rule ` F ` which sets the next
       value given all values so far.  See ~ df-irdg for more details on why
       this definition is desirable.  Unlike ~ df-irdg which restricts the
       update rule to use only the previous value, this version allows the
       update rule to use _all_ previous values, which is why it is described
       as "strong", although it is actually more primitive.  See ~ tfri1d and
       ~ tfri2d for the primary contract of this definition.

       (Contributed by Stefan O'Rear, 18-Jan-2015.) $)
    df-recs $a |- recs ( F ) = U. { f | E. x e. On ( f Fn x /\
        A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
  $}

  ${
    $d F a b c y $.  $d G a b c y $.  $d x y a b c $.
    $( Equality theorem for ` recs ` .  (Contributed by Stefan O'Rear,
       18-Jan-2015.) $)
    recseq $p |- ( F = G -> recs ( F ) = recs ( G ) ) $=
      ( va vb vc wceq cv wfn cfv cres wral wa con0 wrex cuni crecs fveq1 eqeq2d
      cab df-recs ralbidv anbi2d rexbidv abbidv unieqd 3eqtr4g ) ABFZCGZDGZHZEG
      ZUHIZUHUKJZAIZFZEUIKZLZDMNZCSZOUJULUMBIZFZEUIKZLZDMNZCSZOAPBPUGUSVEUGURVD
      CUGUQVCDMUGUPVBUJUGUOVAEUIUGUNUTULUMABQRUAUBUCUDUEDECATDECBTUF $.

    nfrecs.f $e |- F/_ x F $.
    $( Bound-variable hypothesis builder for ` recs ` .  (Contributed by Stefan
       O'Rear, 18-Jan-2015.) $)
    nfrecs $p |- F/_ x recs ( F ) $=
      ( va vb vc crecs cv wfn cfv cres wceq wral wa con0 wrex cuni df-recs nfcv
      cab nfv nffv nfeq2 nfralxy nfan nfrexxy nfab nfuni nfcxfr ) ABGDHZEHZIZFH
      ZUJJZUJUMKZBJZLZFUKMZNZEOPZDTZQEFDBRAVAUTADUSAEOAOSULURAULAUAUQAFUKAUKSAU
      NUPAUOBCAUOSUBUCUDUEUFUGUHUI $.
  $}

  ${
    $d A u w x y z $.  $d B x $.  $d F u w x y z $.  $d G u w x y z $.
    $d ph u w y z $.
    tfrlem1.1 $e |- ( ph -> A e. On ) $.
    tfrlem1.2 $e |- ( ph -> ( Fun F /\ A C_ dom F ) ) $.
    tfrlem1.3 $e |- ( ph -> ( Fun G /\ A C_ dom G ) ) $.
    tfrlem1.4 $e |- ( ph -> A. x e. A ( F ` x ) = ( B ` ( F |` x ) ) ) $.
    tfrlem1.5 $e |- ( ph -> A. x e. A ( G ` x ) = ( B ` ( G |` x ) ) ) $.
    $( A technical lemma for transfinite recursion.  Compare Lemma 1 of
       [TakeutiZaring] p. 47.  (Contributed by NM, 23-Mar-1995.)  (Revised by
       Mario Carneiro, 24-May-2019.) $)
    tfrlem1 $p |- ( ph -> A. x e. A ( F ` x ) = ( G ` x ) ) $=
      ( vz wss cv cfv wceq wral wcel wi wa vy vw ssid con0 sseq1 imbi12d imbi2d
      vu raleq r19.21v cres cdm wfn wfun simplll adantr simpld funfn sylib word
      syl simpllr eloni ordelss sylan simplr sstrd simprd fnssres syl2anc simpr
      rspcv syl3c fveq2 eqeq12d sylc fvres adantl 3eqtr4d eqfnfvd fveq2d sselda
      ad2antrr reseq2 rspcva ralrimiva cbvralv sylibr exp31 expcom syl5bi tfis2
      a2d vtoclga mpcom mpi ) ACCMZBNZEOZWRFOZPZBCQZCUCCUDRAWQXBSZGAUANZCMZXABX
      DQZSZSZAXCSUACUDXDCPZXGXCAXIXEWQXFXBXDCCUEXABXDCUIUFUGXHALNZCMZXABXJQZSZS
      ZUALXDXJPZXGXMAXOXEXKXFXLXDXJCUEXABXDXJUIUFUGXNLXDQAXMLXDQZSXDUDRZXHAXMLX
      DUJXQAXPXGAXQXPXGSAXQTZXPXEXFXRXPTZXETZUBNZEOZYAFOZPZUBXDQXFXTYDUBXDXTYAX
      DRZTZEYAUKZDOZFYAUKZDOZYBYCYFYGYIDYFUHYAYGYIYFEEULZUMZYAYKMYGYAUMYFEUNZYL
      YFYMCYKMZYFAYMYNTXTAYEAXQXPXEUOUPZHVAZUQEURUSYFYACYKYFYAXDCXTXDUTZYEYAXDM
      XTXQYQAXQXPXEVBXDVCVAXDYAVDVEXSXEYEVFVGZYFYMYNYPVHVGYKYAEVIVJYFFFULZUMZYA
      YSMYIYAUMYFFUNZYTYFUUACYSMZYFAUUAUUBTYOIVAZUQFURUSYFYACYSYRYFUUAUUBUUCVHV
      GYSYAFVIVJYFUHNZYARZTZUUDEOZUUDFOZUUDYGOZUUDYIOZUUFUUEXABYAQZUUGUUHPZYFUU
      EVKUUFYEXPYACMZUUKXTYEUUEVFXTXPYEUUEXRXPXEVFWCYFUUMUUEYRUPXMUUMUUKSLYAXDX
      JYAPXKUUMXLUUKXJYACUEXABXJYAUIUFVLVMXAUULBUUDYAWRUUDPWSUUGWTUUHWRUUDEVNWR
      UUDFVNVOVLVPUUEUUIUUGPYFUUDYAEVQVRUUEUUJUUHPYFUUDYAFVQVRVSVTWAYFYACRZWSEW
      RUKZDOZPZBCQZYBYHPZXTXDCYAXSXEVKWBZYFAUURYOJVAUUQUUSBYACWRYAPZWSYBUUPYHWR
      YAEVNZUVAUUOYGDWRYAEWDWAVOWEVJYFUUNWTFWRUKZDOZPZBCQZYCYJPZUUTYFAUVFYOKVAU
      VEUVGBYACUVAWTYCUVDYJWRYAFVNZUVAUVCYIDWRYAFWDWAVOWEVJVSWFXAYDBUBXDUVAWSYB
      WTYCUVBUVHVOWGWHWIWJWMWKWLWNWOWP $.
  $}

  ${
    $d g A $.  $d f g w x y z F $.  $d f w x y z G $.
    tfrlem3.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    $( Lemma for transfinite recursion.  This lemma just changes some bound
       variables in ` A ` for later use.  (Contributed by NM, 9-Apr-1995.) $)
    tfrlem3ag $p |- ( G e. _V -> ( G e. A <-> E. z e. On ( G Fn z /\
                A. w e. z ( G ` w ) = ( F ` ( G |` w ) ) ) ) ) $=
      ( cv wfn cfv cres wceq wral wa con0 wrex cvv fneq12 simpll simpr reseq12d
      fveq12d fveq2d eqeq12d simplr cbvraldva2 anbi12d cbvrexdva elab2g ) FJZAJ
      ZKZBJZULLZULUOMZGLZNZBUMOZPZAQRHCJZKZDJZHLZHVDMZGLZNZDVBOZPZCQRFHESULHNZV
      AVJACQVKUMVBNZPZUNVCUTVIUMVBULHTVMUSVHBDUMVBVMUOVDNZPZUPVEURVGVOUOVDULHVK
      VLVNUAZVMVNUBZUDVOUQVFGVOULHUOVDVPVQUCUEUFVKVLVNUGUHUIUJIUK $.

    ${
      tfrlem3.2 $e |- G e. _V $.
      $( Lemma for transfinite recursion.  Let ` A ` be the class of
         "acceptable" functions.  The final thing we're interested in is the
         union of all these acceptable functions.  This lemma just changes some
         bound variables in ` A ` for later use.  (Contributed by NM,
         9-Apr-1995.) $)
      tfrlem3a $p |- ( G e. A <-> E. z e. On ( G Fn z /\
                  A. w e. z ( G ` w ) = ( F ` ( G |` w ) ) ) ) $=
        ( cv wfn cfv cres wceq wral wa con0 wrex simpr fveq12d reseq12d eqeq12d
        fneq12 simpll fveq2d adantr cbvraldva2 anbi12d cbvrexdva elab2 ) FKZAKZ
        LZBKZULMZULUONZGMZOZBUMPZQZARSHCKZLZDKZHMZHVDNZGMZOZDVBPZQZCRSFHEJULHOZ
        VAVJACRVKUMVBOZQZUNVCUTVIUMVBULHUDVMUSVHBDUMVBVMUOVDOZQZUPVEURVGVOUOVDU
        LHVKVLVNUEZVMVNTZUAVOUQVFGVOULHUOVDVPVQUBUFUCVMVLVNVKVLTUGUHUIUJIUK $.
    $}

    $( Lemma for transfinite recursion.  Let ` A ` be the class of "acceptable"
       functions.  The final thing we're interested in is the union of all
       these acceptable functions.  This lemma just changes some bound
       variables in ` A ` for later use.  (Contributed by NM, 9-Apr-1995.) $)
    tfrlem3 $p |- A = { g | E. z e. On ( g Fn z /\
                A. w e. z ( g ` w ) = ( F ` ( g |` w ) ) ) } $=
      ( cv wfn cfv cres wceq wral wa con0 wrex vex tfrlem3a abbi2i ) GJZCJZKDJZ
      UBLUBUDMHLNDUCOPCQRGEABCDEFHUBIGSTUA $.
  $}

  ${
    $d x y f g $.  $d x y z $.  $d g z $.  $d f g F $.  $d x z F $.
    tfrlem3-2.1 $e |- ( Fun F /\ ( F ` x ) e. _V ) $.
    $( Lemma for transfinite recursion which changes a bound variable
       (Contributed by Jim Kingdon, 17-Apr-2019.) $)
    tfrlem3-2 $p |- ( Fun F /\ ( F ` g ) e. _V ) $=
      ( wfun cv cfv cvv wcel wa wceq fveq2 eleq1d anbi2d chvarv ) CEZAFZCGZHIZJ
      PBFZCGZHIZJABQTKZSUBPUCRUAHQTCLMNDO $.
  $}

  ${
    $d x y f g $.  $d x y z $.  $d g z $.  $d f g F $.  $d x z F $.
    tfrlem3-2d.1 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    $( Lemma for transfinite recursion which changes a bound variable
       (Contributed by Jim Kingdon, 2-Jul-2019.) $)
    tfrlem3-2d $p |- ( ph -> ( Fun F /\ ( F ` g ) e. _V ) ) $=
      ( wfun cv cfv cvv wcel wal weq fveq2 eleq1d anbi2d cbvalv sylib 19.21bi
      wa ) ADFZCGZDHZIJZSZCATBGZDHZIJZSZBKUDCKEUHUDBCBCLZUGUCTUIUFUBIUEUADMNOPQ
      R $.
  $}

  ${
    $d f g x y z B $.  $d f x y z C $.  $d a f g h u v w x y z F $.
    $d g h z A $.
    tfrlem.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    $( Lemma for transfinite recursion. ` A ` is the class of all "acceptable"
       functions, and ` F ` is their union.  First we show that an acceptable
       function is in fact a function.  (Contributed by NM, 9-Apr-1995.) $)
    tfrlem4 $p |- ( g e. A -> Fun g ) $=
      ( vz vw cv wcel wfn cfv cres wceq wral wa con0 wrex wfun abeq2i rexlimivw
      tfrlem3 fnfun adantr sylbi ) EJZCKUGHJZLZIJZUGMUGUJNFMOIUHPZQZHRSZUGTZUME
      CABHICDEFGUCUAULUNHRUIUNUKUHUGUDUEUBUF $.

    $( Lemma for transfinite recursion.  The values of two acceptable functions
       are the same within their domains.  (Contributed by NM, 9-Apr-1995.)
       (Revised by Mario Carneiro, 24-May-2019.) $)
    tfrlem5 $p |- ( ( g e. A /\ h e. A ) ->
                    ( ( x g u /\ x h v ) -> u = v ) ) $=
      ( vz va vw cv wcel cfv wceq wral wa con0 wfn cres wrex wi tfrlem3a reeanv
      wbr vex w3a simp2ll simp3l fnbr syl2anc simp2rl simp3r elin sylanbrc onin
      cin 3ad2ant1 wfun cdm wss fnfun syl inss1 fndm syl5sseqr jca inss2 ssralv
      simp2lr mpsyl simp2rr tfrlem1 eqeq12d sylc funbrfv 3eqtr3d 3exp rexlimdva
      fveq2 rspcv rexlimiv sylbir syl2anb ) GNZEOWGKNZUAZLNZWGPZWGWJUBIPQZLWHRZ
      SZKTUCZHNZMNZUAZWJWPPZWPWJUBIPQZLWQRZSZMTUCZANZDNZWGUGZXDCNZWPUGZSZXEXGQZ
      UDZWPEOABKLEFIWGJGUHUEABMLEFIWPJHUHUEWOXCSWNXBSZMTUCZKTUCXKWNXBKMTTUFXMXK
      KTWHTOZXLXKMTXNWQTOSZXLXIXJXOXLXIUIZXDWGPZXDWPPZXEXGXPXDWHWQUSZOZWKWSQZLX
      SRXQXRQZXPXDWHOZXDWQOZXTXPWIXFYCWIWMXBXOXIUJZXOXLXFXHUKZWHXDXEWGULUMXPWRX
      HYDWRXAWNXOXIUNZXOXLXFXHUOZWQXDXGWPULUMXDWHWQUPUQXPLXSIWGWPXOXLXSTOXIWHWQ
      URUTXPWGVAZXSWGVBZVCXPWIYIYEWHWGVDVEZXPWHXSYJWHWQVFZXPWIYJWHQYEWHWGVGVEVH
      VIXPWPVAZXSWPVBZVCXPWRYMYGWQWPVDVEZXPWQXSYNWHWQVJZXPWRYNWQQYGWQWPVGVEVHVI
      XSWHVCXPWMWLLXSRYLWIWMXBXOXIVLWLLXSWHVKVMXSWQVCXPXAWTLXSRYPWRXAWNXOXIVNWT
      LXSWQVKVMVOYAYBLXDXSWJXDQWKXQWSXRWJXDWGWBWJXDWPWBVPWCVQXPYIXFXQXEQYKYFXDX
      EWGVRVQXPYMXHXRXGQYOYHXDXGWPVRVQVSVTWAWDWEWF $.

    $( Lemma for transfinite recursion.  The definition ` recs ` is the union
       of all acceptable functions.  (Contributed by Mario Carneiro,
       9-May-2015.) $)
    recsfval $p |- recs ( F ) = U. A $=
      ( crecs cv wfn cfv cres wceq wral wa con0 wrex cab cuni df-recs unieqi
      eqtr4i ) EGDHZAHZIBHZUBJUBUDKEJLBUCMNAOPDQZRCRABDESCUEFTUA $.

    $( Lemma for transfinite recursion.  The union of all acceptable functions
       is a relation.  (Contributed by NM, 8-Aug-1994.)  (Revised by Mario
       Carneiro, 9-May-2015.) $)
    tfrlem6 $p |- Rel recs ( F ) $=
      ( vg crecs wrel cuni reluni wcel wfun tfrlem4 funrel syl mprgbir recsfval
      cv releqi mpbir ) EHZICJZIZUDGSZIZGCGCKUECLUEMUFABCDGEFNUEOPQUBUCABCDEFRT
      UA $.

    $( Lemma for transfinite recursion.  The union of all acceptable functions
       is a function.  (Contributed by NM, 9-Aug-1994.)  (Revised by Mario
       Carneiro, 24-May-2019.) $)
    tfrlem7 $p |- Fun recs ( F ) $=
      ( vu vv vg vh cv cop wcel wa wal wex eleq2i eluni bitri anbi12i wfun wrel
      crecs wceq wi tfrlem6 cuni recsfval eeanv bitr4i wbr df-br tfrlem5 impcom
      sylanbr an4s exlimivv sylbi ax-gen gen2 dffun4 mpbir2an ) EUCZUAVCUBAKZGK
      ZLZVCMZVDHKZLZVCMZNZVEVHUDZUEZHOZGOAOABCDEFUFVNAGVMHVKVFIKZMZVOCMZNZVIJKZ
      MZVSCMZNZNZJPIPZVLVKVRIPZWBJPZNWDVGWEVJWFVGVFCUGZMWEVCWGVFABCDEFUHZQIVFCR
      SVJVIWGMWFVCWGVIWHQJVICRSTVRWBIJUIUJWCVLIJVPVTVQWAVLVPVTNVDVEVOUKZVDVHVSU
      KZNZVQWANZVLWIVPWJVTVDVEVOULVDVHVSULTWLWKVLABHGCDIJEFUMUNUOUPUQURUSUTAGHV
      CVAVB $.

    $( Lemma for transfinite recursion.  The domain of ` recs ` is ordinal.
       (Contributed by NM, 14-Aug-1994.)  (Proof shortened by Alan Sare,
       11-Mar-2008.) $)
    tfrlem8 $p |- Ord dom recs ( F ) $=
      ( vz vg vw cdm word cv wceq wrex cuni con0 wcel cfv rexlimiv ax-mp cab wi
      crecs wss wfn cres wral tfrlem3 abeq2i fndm adantr eleq1d biimprcd eleq1a
      wa sylbi syl abssi ssorduni wb ciun recsfval dmeqi vex dmex dfiun2 3eqtri
      dmuni ordeq mpbir ) EUCZJZKZGLZHLZJZMZHCNZGUAZOZKZVSPUDWAVRGPVQVNPQZHCVOC
      QZVPPQZVQWBUBWCVOVNUEZILZVORVOWFUFERMIVNUGZUOZGPNZWDWIHCABGICDHEFUHUIWHWD
      GPWHWDWBWHVPVNPWEVPVNMWGVNVOUJUKULUMSUPVPPVNUNUQSURVSUSTVLVTMVMWAUTVLCOZJ
      HCVPVAVTVKWJABCDEFVBVCHCVHHGCVPVOHVDVEVFVGVLVTVITVJ $.

    $( Lemma for transfinite recursion.  Here we compute the value of ` recs `
       (the union of all acceptable functions).  (Contributed by NM,
       17-Aug-1994.) $)
    tfrlem9 $p |- ( B e. dom recs ( F ) ->
      ( recs ( F ) ` B ) = ( F ` ( recs ( F ) |` B ) ) ) $=
      ( vz cdm wcel cv wex cfv cres wceq wa con0 wi syl com3l crecs cop ibi wfn
      eldm2g wral wrex cab cuni df-recs eleq2i eluniab bitri wss abeq2i elssuni
      fnop rspe recsfval syl6sseqr sylbir fveq2 reseq2 fveq2d rspcv fndm eleq2d
      eqeq12d wfun tfrlem7 funssfv mp3an1 adantrl eleq1d onelss imp31 fun2ssres
      syl6bir w3a sylan2 exbiri exp31 com34 com24 sylbird syld imp4d mpdi exp4d
      ex com4r pm2.43i imp4a rexlimdv imp exlimiv sylbi ) DFUAZIZJZDHKZUBZWRJZH
      LZDWRMZWRDNZFMZOZWTXDHDWRWSUEUCXCXHHXCXBEKZJZXIAKZUDZBKZXIMZXIXMNZFMZOZBX
      KUFZPZAQUGZPZELZXHXCXBXTEUHUIZJYBWRYCXBABEFUJUKXTEXBULUMYAXHEXJXTXHXJXSXH
      AQXJXKQJZXLXRXHXLXJYDXRXHRZXLXJYDYERRXLXJYDXLYEXLXJYDXLYERRXLXJPZYDXLXRXH
      YFDXKJZYDXSPZXHRXKDXAXIUQYGYHXIWRUNZXHYHXTYIXSAQURXTXICJZYIXTECGUOYJXICUI
      WRXICUPABCEFGUSUTVASYGYDXLXRYIXHRZYGXRXLYDYKYGXRDXIMZXIDNZFMZOZXLYDYKRZRX
      QYOBDXKXMDOZXNYLXPYNXMDXIVBYQXOYMFXMDXIVCVDVHVEXLYGYOYPXLYGDXIIZJZYOYPRXL
      YRXKDXKXIVFZVGXLYDYOYSYKXLYDYSYOYKXLYDYSYOYKRYIXLYDPZYSPZYOXHYIUUBXHYOYIU
      UBPXEYLXGYNYIYSXEYLOZUUAWRVIZYIYSUUCABCEFGVJZDWRXIVKVLVMUUBYIDYRUNZXGYNOZ
      XLYDYSUUFXLYDYRQJYSUUFRXLYRXKQYTVNYRDVOVRVPUUDYIUUFUUGUUEUUDYIUUFVSXFYMFD
      WRXIVQVDVLVTVHWATWBWCWDWETWFWDWGWHSWIWJWKWLTWMWNWOWPWQWPS $.
  $}

  ${
    $d f x y A $.  $d x y B $.  $d x y F $.  $d f u v x y G $.
    tfr.1 $e |- F = recs ( G ) $.
    $( A weak version of transfinite recursion.  (Contributed by Mario
       Carneiro, 24-Jun-2015.) $)
    tfr2a $p |- ( A e. dom F -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( vx vy vf cdm wcel crecs cfv cres wceq cv wfn wral wa con0 wrex cab eqid
      tfrlem9 dmeqi eleq2s fveq1i reseq1i fveq2i 3eqtr4g ) ABHZIACJZKZUJALZCKZA
      BKBALZCKUKUMMAUJHUIEFGNZENZOFNZUOKUOUQLCKMFUPPQERSGTZAGCURUAUBBUJDUCUDABU
      JDUEUNULCBUJADUFUGUH $.

    $( Transfinite recursion at the empty set.  (Contributed by Jim Kingdon,
       8-May-2020.) $)
    tfr0 $p |- ( ( G ` (/) ) e. V -> ( F ` (/) ) = ( G ` (/) ) ) $=
      ( vx vy vf c0 cfv wcel wceq cv wfn cres wral wa con0 cvv 0ex mpan cop csn
      wrex opexg snidg syl fnsng fvsng res0 fveq2i syl6eqr fveq2 reseq2 eqeq12d
      fveq2d ralsn sylibr csuc 0elon onsuci eqeltrri fneq2 raleq anbi12d rspcev
      suc0 syl2anc wex wi snexg eleq2 fneq1 fveq1 reseq1 ralbidv rexbidv spcegv
      3syl crecs cab eleq2i df-recs eluniab 3bitri syl6ibr mp2and opeldmg tfr2a
      cuni cdm syl6 eqeq2i syl6ib mpd ) HBIZCJZHWOUAZAJZHAIZWOKZWPWQWQUBZJZXAEL
      ZMZFLZXAIZXAXENZBIZKZFXCOZPZEQUCZWRWPWQRJZXBHRJZWPXMSHWORCUDTZWQRUEUFWPXA
      HUBZMZXIFXPOZXLXNWPXQSHWORCUGTWPHXAIZXAHNZBIZKZXRWPXSWOYAXNWPXSWOKSHWORCU
      HTXTHBXAUIUJUKXIYBFHSXEHKZXFXSXHYAXEHXAULYCXGXTBXEHXAUMUOUNUPUQXPQJXQXRPZ
      XLHURXPQVFHUSUTVAXKYDEXPQXCXPKXDXQXJXRXCXPXAVBXIFXCXPVCVDVETVGWPXBXLPZWQG
      LZJZYFXCMZXEYFIZYFXENZBIZKZFXCOZPZEQUCZPZGVHZWRWPXMXARJYEYQVIXOWQRVJYPYEG
      XARYFXAKZYGXBYOXLYFXAWQVKYRYNXKEQYRYHXDYMXJXCYFXAVLYRYLXIFXCYRYIXFYKXHXEY
      FXAVMYRYJXGBYFXAXEVNUOUNVOVDVPVDVQVRWRWQBVSZJWQYOGVTWIZJYQAYSWQDWAYSYTWQE
      FGBWBWAYOGWQWCWDWEWFWPWRWSAHNZBIZKZWTWPWRHAWJJZUUCXNWPWRUUDVISHWOARCWGTHA
      BDWHWKUUBWOWSUUAHBAUIUJWLWMWN $.
  $}

  ${
    $d a e f g h k t u v w x y z A $.  $d a e f g h k t u v w x y z F $.
    $d ph v w y $.
    tfrlemisucfn.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    tfrlemisucfn.2 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    ${
      $d u w y ph $.
      tfrlemisucfn.3 $e |- ( ph -> z e. On ) $.
      tfrlemisucfn.4 $e |- ( ph -> g Fn z ) $.
      tfrlemisucfn.5 $e |- ( ph -> g e. A ) $.
      $( We can extend an acceptable function by one element to produce a
         function.  Lemma for ~ tfrlemi1 .  (Contributed by Jim Kingdon,
         2-Jul-2019.) $)
      tfrlemisucfn $p |- ( ph -> ( g u. { <. z , ( F ` g ) >. } ) Fn suc z ) $=
        ( cv csuc cfv cop cvv wcel a1i csn cun wfun tfrlem3-2d simprd df-suc wn
        vex eqid elirrv fnunsn ) ADNZULOGNZUMULUMHPZQUAUBZULUNULRSADUHTAHUCUNRS
        ABGHJUDUELUOUIULUFULULSUGADUJTUK $.

      $( We can extend an acceptable function by one element to produce an
         acceptable function.  Lemma for ~ tfrlemi1 .  (Contributed by Jim
         Kingdon, 4-Mar-2019.)  (Proof shortened by Mario Carneiro,
         24-May-2019.) $)
      tfrlemisucaccv $p |- ( ph -> ( g u. { <. z , ( F ` g ) >. } ) e. A ) $=
        ( vu cfv wcel wceq wa con0 cvv vw vv cv cop csn cun cres wral wrex csuc
        wfn suceloni syl tfrlemisucfn vex elsuc tfrlem3a simprrr simprrl adantr
        wo sylib fndmu syl2anc raleqdv mpbid rexlimddv wne elirrv elequ2 mtbiri
        r19.21bi necon2ai adantl fvunsng sylancr wss word eloni ordelss resabs1
        sylan wn fsnunres sylancl reseq1d eqtr3d fveq2d 3eqtr4d wfun tfrlem3-2d
        cdm simprd eleq2d fsnunfv syl3anc simpr reseq2 sylan9eqr jaodan sylan2b
        fndm ralrimiva fneq2 raleq anbi12d rspcev syl12anc wb opexg snexg unexg
        tfrlem3ag mpbird ) AGUCZDUCZXOHOZUDZUEZUFZEPZXTUAUCZUKZNUCZXTOZXTYDUGZH
        OZQZNYBUHZRZUASUIZAXPUJZSPZXTYLUKZYHNYLUHZYKAXPSPZYMKXPULUMABCDEFGHIJKL
        MUNAYHNYLYDYLPAYDXPPZYDXPQZVAYHYDXPNUOZUPAYQYHYRAYQRZYDXOOZXOYDUGZHOZYE
        YGAUUAUUCQZNXPAXOUBUCZUKZUUDNUUEUHZRZUUDNXPUHZUBSAXOEPUUHUBSUIMBCUBNEFH
        XOIGUOZUQVBAUUESPZUUHRZRZUUGUUIAUUKUUFUUGURUUMUUDNUUEXPUUMUUFXOXPUKZUUE
        XPQAUUKUUFUUGUSAUUNUULLUTUUEXPXOVCVDVEVFVGVLYTYDTPXPYDVHZYEUUAQYSYQUUOA
        YQXPYDXPYDQYQYDYDPNVIDNNVJVKVMVNXOXPXQYDTVOVPYTYFUUBHYTXTXPUGZYDUGZYFUU
        BYTYDXPVQZUUQYFQAXPVRZYQUURAYPUUSKXPVSUMXPYDVTWBXTYDXPWAUMAUUQUUBQYQAUU
        PXOYDAUUNXPXPPZWCUUPXOQLDVIZXPXOXPXQWDWEZWFUTWGWHWIAYRRZXPXTOZXQYEYGAUV
        DXQQZYRAYPXQTPZXPXOWLZPZWCUVEKAHWJUVFABGHJWKWMZAUVHUUTUVAAUVGXPXPAUUNUV
        GXPQLXPXOXBUMWNVKXOSTXPXQWOWPUTUVCYDXPXTAYRWQWHUVCYFXOHYRAYFUUPXOYDXPXT
        WRUVBWSWHWIWTXAXCYJYNYORUAYLSYBYLQYCYNYIYOYBYLXTXDYHNYBYLXEXFXGXHAXTTPZ
        YAYKXIAXOTPXSTPZUVJUUJAXRTPZUVKAXPTPUVFUVLDUOUVIXPXQTTXJVPXRTXKUMXOXSTT
        XLVPBCUANEFHXTIXMUMXN $.
    $}

    ${
      $d u v w i j f g h z B $.  $d g h y z w ph $.
      tfrlemi1.3 $e |- B = { h | E. z e. x E. g ( g Fn z /\ g e. A /\
         h = ( g u. { <. z , ( F ` g ) >. } ) ) } $.
      tfrlemi1.4 $e |- ( ph -> x e. On ) $.
      tfrlemi1.5 $e |- ( ph -> A. z e. x E. g ( g Fn z /\
        A. w e. z ( g ` w ) = ( F ` ( g |` w ) ) ) ) $.
      $( Each element of ` B ` is an acceptable function.  Lemma for
         ~ tfrlemi1 .  (Contributed by Jim Kingdon, 14-Mar-2019.)  (Proof
         shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemibacc $p |- ( ph -> B C_ A ) $=
        ( cv wcel cfv wa wfn cop csn cun wceq w3a wex wrex simpr3 wfun ad2antrr
        cab cvv con0 simplr onelon syl2anc simpr1 simpr2 tfrlemisucaccv eqeltrd
        wal ex exlimdv rexlimdva abssdv syl5eqss ) AGIQZDQZUAZVHFRZJQZVHVIVHKSU
        BUCUDZUEZUFZIUGZDBQZUHZJULFNAVRJFAVPVLFRZDVQAVIVQRZTZVOVSIWAVOVSWAVOTZV
        LVMFWAVJVKVNUIWBBCDFHIKLAKUJVQKSUMRTBVBVTVOMUKWBVQUNRZVTVIUNRAWCVTVOOUK
        AVTVOUOVQVIUPUQWAVJVKVNURWAVJVKVNUSUTVAVCVDVEVFVG $.

      $( The union of ` B ` is defined on all ordinals.  Lemma for
         ~ tfrlemi1 .  (Contributed by Jim Kingdon, 18-Mar-2019.)  (Proof
         shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemibxssdm $p |- ( ph -> x C_ dom U. B ) $=
        ( cv wcel wa cvv cuni cdm wral wss wfn cfv cres wceq con0 wi tfrlem3-2d
        wex w3a cop wfun simprd 3ad2ant1 csn cun opexg sylancr snidg elun2 3syl
        simp2r simp3l wrex onelon rspe sylan tfrlem3a sylibr 3adant1 3jca snexg
        vex unexg isset sylib simpr3 19.8a abeq2i sylan2 eqeltrrd 3exp2 exlimdv
        mpan 3imp sylc elunii syl2anc opeq2 eleq1d spcegv eldm2 syl6ibr anassrs
        3expia ralimdva mpdan mpd dfss3 ) ADQZGUAZUBZRZDBQZUCZXGXEUDAIQZXCUEZEQ
        ZXIUFXIXKUGKUFUHEXCUCZSZIULZDXGUCZXHPAXGUIRZXOXHUJOAXPSXNXFDXGAXPXCXGRZ
        XNXFUJAXPXQSZSXMXFIAXRXMXFAXRXMUMZXIKUFZTRZXCXTUNZXDRZXFAXRYAXMAKUOYAAB
        IKMUKUPZUQXSYBXIYBURZUSZRZYFGRZYCAXRYGXMAYBTRZYBYERYGAXCTRYAYIDVPZYDXCX
        TTTUTVAZYBTVBYBYEXIVCVDUQXSXQXJXIFRZUMZJQZYFUHZJULZYHXSXQXJYLAXPXQXMVEA
        XRXJXLVFXRXMYLAXRXMSXMDUIVGZYLXRXCUIRXMYQXGXCVHXMDUIVIVJBCDEFHKXILIVPZV
        KVLVMVNAXRYPXMAYFTRZYPAYIYETRZYSYKYBTVOXITRYTYSYRXIYETTVQWGVDJYFVRVSUQY
        MYOYHJXQXJYLYOYHUJXQXJYLYOYHXQXJYLYOUMZSYNYFGXQXJYLYOVTUUAXQUUAIULZYNGR
        ZUUAIWAXQUUBSUUBDXGVGZUUCUUBDXGVIUUDJGNWBVLWCWDWEWHWFWIYBYFGWJWKYAYCXCX
        KUNZXDRZEULXFUUFYCEXTTXKXTUHUUEYBXDXKXTXCWLWMWNEXCXDYJWOWPWIWRWFWQWSWTX
        ADXGXEXBVL $.

      $( The union of ` B ` is a function defined on ` x ` .  Lemma for
         ~ tfrlemi1 .  (Contributed by Jim Kingdon, 18-Mar-2019.)  (Proof
         shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemibfn $p |- ( ph -> U. B Fn x ) $=
        ( wss cvv wcel syl cuni wfun cdm cv wceq wfn crecs tfrlemibacc recsfval
        unissd syl6sseqr tfrlem7 funss cxp cpw cfv cop csn cun w3a wex wrex cab
        mpisyl wa simpr3 csuc wf wal ad2antrr con0 simplr onelon syl2anc simpr1
        simpr2 tfrlemisucfn dffn2 sylib fssxp word eloni ordsucss sylc xpss1 wb
        sstrd vex tfrlem3-2d simprd opexg sylancr snexg unexg mpbird eqeltrd ex
        elpwg exlimdv rexlimdva abssdv sspwuni dmss dmxpss syl6ss tfrlemibxssdm
        syl5eqss eqssd df-fn sylanbrc ) AGUAZUBZXKUCZBUDZUEXKXNUFAXKKUGZQXOUBXL
        AXKFUAXOAGFABCDEFGHIJKLMNOPUHUJBCFHKLUIUKBCFHKLULXKXOUMVDAXMXNAXMXNRUNZ
        UCZXNAXKXPQZXMXQQAGXPUOZQXRAGIUDZDUDZUFZXTFSZJUDZXTYAXTKUPZUQZURZUSZUEZ
        UTZIVAZDXNVBZJVCXSNAYLJXSAYKYDXSSZDXNAYAXNSZVEZYJYMIYOYJYMYOYJVEZYDYHXS
        YOYBYCYIVFYPYHXSSZYHXPQZYPYHYAVGZRUNZXPYPYSRYHVHZYHYTQYPYHYSUFUUAYPBCDF
        HIKLAKUBZXNKUPRSVEBVIYNYJMVJYPXNVKSZYNYAVKSAUUCYNYJOVJZAYNYJVLZXNYAVMVN
        YOYBYCYIVOYOYBYCYIVPVQYSYHVRVSYSRYHVTTYPYSXNQZYTXPQYPXNWAZYNUUFYPUUCUUG
        UUDXNWBTUUEYAXNWCWDYSXNRWETWGAYQYRWFZYNYJAYHRSZUUHAXTRSYGRSZUUIIWHAYFRS
        ZUUJAYARSYERSZUUKDWHAUUBUULABIKMWIWJYAYERRWKWLYFRWMTXTYGRRWNWLYHXPRWRTV
        JWOWPWQWSWTXAXGGXPXBVSXKXPXCTXNRXDXEABCDEFGHIJKLMNOPXFXHXKXNXIXJ $.

      $( The set ` B ` exists.  Lemma for ~ tfrlemi1 .  (Contributed by Jim
         Kingdon, 17-Mar-2019.)  (Proof shortened by Mario Carneiro,
         24-May-2019.) $)
      tfrlemibex $p |- ( ph -> B e. _V ) $=
        ( cuni cvv wcel cv wfn tfrlemibfn vex fnex sylancl uniexb sylibr ) AGQZ
        RSZGRSAUHBTZUAUJRSUIABCDEFGHIJKLMNOPUBBUCUJRUHUDUEGUFUG $.

      $( The union of ` B ` satisfies the recursion rule (lemma for
         ~ tfrlemi1 ).  (Contributed by Jim Kingdon, 22-Apr-2019.)  (Proof
         shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemiubacc $p |- ( ph ->
          A. u e. x ( U. B ` u ) = ( F ` ( U. B |` u ) ) ) $=
        ( cfv wceq wcel cv cuni cres wral crecs cdm wfn tfrlemibfn fndm syl wss
        tfrlemibacc unissd recsfval syl6sseqr dmss eqsstr3d sselda tfrlem9 wfun
        wa tfrlem7 a1i adantr eleq2d biimpar funssfv syl3anc word eloni ordelss
        sylan sseqtr4d fun2ssres fveq2d 3eqtr3d ralrimiva fveq2 eqeq12d cbvralv
        con0 reseq2 sylibr ) AEUAZHUBZRZWEWDUCZLRZSZEBUAZUDFUAZWERZWEWKUCZLRZSZ
        FWJUDAWIEWJAWDWJTZVAZWDLUEZRZWRWDUCZLRZWFWHWQWDWRUFZTWSXASAWJXBWDAWJWEU
        FZXBAWEWJUGXCWJSZABCDEGHIJKLMNOPQUHWJWEUIUJZAWEWRUKZXCXBUKAWEGUBWRAHGAB
        CDEGHIJKLMNOPQULUMBCGILMUNUOZWEWRUPUJUQURBCGWDILMUSUJWQWRUTZXFWDXCTZWSW
        FSXHWQBCGILMVBVCZAXFWPXGVDZAXIWPAXCWJWDXEVEVFWDWRWEVGVHWQWTWGLWQXHXFWDX
        CUKWTWGSXJXKWQWDWJXCAWJVIZWPWDWJUKAWJWATXLPWJVJUJWJWDVKVLAXDWPXEVDVMWDW
        RWEVNVHVOVPVQWOWIFEWJWKWDSZWLWFWNWHWKWDWEVRXMWMWGLWKWDWEWBVOVSVTWC $.

      $( Lemma for ~ tfrlemi1 .  (Contributed by Jim Kingdon, 18-Mar-2019.)
         (Proof shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemiex $p |- ( ph ->
          E. f ( f Fn x /\ A. u e. x ( f ` u ) = ( F ` ( f |` u ) ) ) ) $=
        ( cvv cv cfv cuni wcel wfn cres wceq wral wex tfrlemibex syl tfrlemibfn
        wa uniexg tfrlemiubacc fneq1 fveq1 reseq1 fveq2d eqeq12d ralbidv spcegv
        jca anbi12d sylc ) AHUAZRUBZVDBSZUCZFSZVDTZVDVHUDZLTZUEZFVFUFZUKZISZVFU
        CZVHVOTZVOVHUDZLTZUEZFVFUFZUKZIUGAHRUBVEABCDEGHIJKLMNOPQUHHRULUIAVGVMAB
        CDEGHIJKLMNOPQUJABCDEFGHIJKLMNOPQUMVAWBVNIVDRVOVDUEZVPVGWAVMVFVOVDUNWCV
        TVLFVFWCVQVIVSVKVHVOVDUOWCVRVJLVOVDVHUPUQURUSVBUTVC $.
    $}

    $d g u z C $.  $d ph e f h z $.
    $( We can define an acceptable function on any ordinal.

       As with many of the transfinite recursion theorems, we have a hypothesis
       that states that ` F ` is a function and that it is defined for all
       ordinals.  (Contributed by Jim Kingdon, 4-Mar-2019.)  (Proof shortened
       by Mario Carneiro, 24-May-2019.) $)
    tfrlemi1 $p |- ( ( ph /\ C e. On ) -> E. g ( g Fn C /\
        A. u e. C ( g ` u ) = ( F ` ( g |` u ) ) ) ) $=
      ( vz vk vw vv cv cfv wral wa weq ve vt vh con0 wcel wfn cres wex wi simpr
      wceq simpl fneq12d fveq1d reseq1d fveq2d eqeq12d raleqbidv anbi12d imbi2d
      cbvexdva fneq2 raleq exbidv r19.21v cop csn cun w3a wrex cab tfrlem3 wfun
      cvv fveq2 eleq1d anbi2d cbvalv sylib adantr simplr simpll opeq12d uneq12d
      wal 3anbi123d cbvrexdva cbvabv adantl fveq12d reseq12d cbvraldva2 cbvralv
      sneqd tfrlemiex expr expcom a2d syl5bi tfis3 impcom ) FUDUEAHPZFUFZDPZXBQ
      ZXBXDUGZIQZUKZDFRZSZHUHZAXBLPZUFZXHDXLRZSZHUHZUIZAMPZNPZUFZXDXRQZXRXDUGZI
      QZUKZDXSRZSZMUHZUIZAXKUILNFLNTZXPYGAYIXOYFHMYIHMTZSZXMXTXNYEYKXLXSXBXRYIY
      JUJZYIYJULZUMYKXHYDDXLXSYMYKXEYAXGYCYKXDXBXRYLUNYKXFYBIYKXBXRXDYLUOUPUQUR
      USVAUTXLFUKZXPXKAYNXOXJHYNXMXCXNXIXLFXBVBXHDXLFVCUSVDUTYHNXLRAYGNXLRZUIXL
      UDUEZXQAYGNXLVEYPAYOXPAYPYOXPUIAYPYOXPAYPYOSZSLUAOCDEXTXREUEZUBPZXRXSXRIQ
      ZVFZVGZVHZUKZVIZMUHZNXLVJZUBVKHGUCIBCLUAEGHIJVLAIVMZXLIQZVNUEZSZLWEZYQAUU
      HBPZIQZVNUEZSZBWEUULKUUPUUKBLBLTZUUOUUJUUHUUQUUNUUIVNUUMXLIVOVPVQVRVSVTUU
      GGPZOPZUFZUUREUEZUCPZUURUUSUURIQZVFZVGZVHZUKZVIZGUHZOXLVJUBUCUBUCTZUUFUVI
      NOXLUVJNOTZSZUUEUVHMGUVLMGTZSZXTUUTYRUVAUUDUVGUVNXSUUSXRUURUVLUVMUJZUVJUV
      KUVMWAZUMUVNXRUUREUVOVPUVNYSUVBUUCUVFUVJUVKUVMWBUVNXRUURUUBUVEUVOUVNUUAUV
      DUVNXSUUSYTUVCUVPUVNXRUURIUVOUPWCWNWDUQWFVAWGWHYQYPAYPYOULWIYQUUTCPZUURQZ
      UURUVQUGZIQZUKZCUUSRZSZGUHZOXLRZAYQYOUWEYPYOUJYGUWDNOXLUVKYFUWCMGUVKUVMSZ
      XTUUTYEUWBUWFXSUUSXRUURUVKUVMUJUVKUVMULUMUWFYDUWADCXSUUSUWFDCTZSZYAUVRYCU
      VTUWHXDUVQXRUURUVKUVMUWGWAZUWFUWGUJZWJUWHYBUVSIUWHXRUURXDUVQUWIUWJWKUPUQU
      VKUVMUWGWBWLUSVAWMVSWIWOWPWQWRWSWTXA $.
  $}

  ${
    $d f g h u v w x y z A $.  $d f g h u v w x y z F $.  $d z C $.
    $d f g ph w y z $.
    tfrlemi14d.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    tfrlemi14d.2 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    $( The domain of ` recs ` is all ordinals (lemma for transfinite
       recursion).  (Contributed by Jim Kingdon, 9-Jul-2019.) $)
    tfrlemi14d $p |- ( ph -> dom recs ( F ) = On ) $=
      ( vh vz vg vu vw cdm con0 cv wcel wa cfv cvv crecs word tfrlem8 mp1i ciun
      wss ordsson wrex wfn cres wceq wral tfrlemi1 cop csn wfun ad2antrr simplr
      cun wal simprl fneq2 raleq anbi12d rspcev adantll tfrlem3a tfrlemisucaccv
      vex sylibr tfrlem3-2d simprd opexg sylancr snidg 3syl wi opeldmg mpd dmeq
      elun2 eleq2d syl2anc exlimddv eliun ssrdv cuni recsfval dmeqi dmuni eqtri
      ex syl6sseqr eqssd ) AFUAZNZOWPUBWPOUFABCDEFGUCWPUGUDAOIDIPZNZUEZWPAJOWSA
      JPZOQZWTWSQZAXARZWTWRQZIDUHZXBXCKPZWTUIZLPZXFSXFXHUJFSUKZLWTULZRZXEKABCLD
      WTEKFGHUMXCXKRZXFWTXFFSZUNZUOZUSZDQWTXPNZQZXEXLBCJDEKFGAFUPZBPFSTQRBUTXAX
      KHUQAXAXKURXCXGXJVAXLXFMPZUIZXILXTULZRZMOUHZXFDQXAXKYDAYCXKMWTOXTWTUKYAXG
      YBXJXTWTXFVBXILXTWTVCVDVEVFBCMLDEFXFGKVIVGVJVHXLXNXPQZXRAYEXAXKAXNTQZXNXO
      QYEAWTTQZXMTQZYFJVIZAXSYHABKFHVKVLZWTXMTTVMVNXNTVOXNXOXFWAVPUQAYEXRVQZXAX
      KAYGYHYKYIYJWTXMXPTTVRVNUQVSXDXRIXPDWQXPUKWRXQWTWQXPVTWBVEWCWDIWTDWRWEVJW
      LWFWPDWGZNWSWOYLBCDEFGWHWIIDWJWKWMWN $.
  $}

  ${
    $d e f g h u v t w x y z A $.  $d e f g h u v t w x y z F $.  $d z C $.
    $d u v z ph $.
    tfrexlem.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    tfrexlem.2 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    $( The transfinite recursion function is set-like if the input is.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    tfrexlem $p |- ( ( ph /\ C e. V ) -> ( recs ( F ) ` C ) e. _V ) $=
      ( vz vv wcel cfv cvv cv wceq con0 wa syl vg vw vu vh vt ve crecs wi fveq2
      eleq1d imbi2d csuc cin cuni wfn cres wral wex word wss inss2 ssorduni vex
      ax-mp sucex inex1 uniex elon2 mpbir2an tfrlem3 wal anbi2d cbvalv tfrlemi1
      wfun sylib mpan2 crn wbr cop recsfval breqi df-br eluni 3bitri sucid wrex
      simpr tfrlem3a simprl simprrl simpll fnop syl2anc onelon rexlimddv adantl
      cdm suceloni onss df-ss unieqd wtr eloni ordtr 3syl unisuc syl5eleqr fndm
      eqtrd ad2antrr eleqtrrd fneq2 raleq anbi12d rspcev sylibr simplrr simplrl
      eldm mpan tfrlem5 imp syl22anc breqtrd exlimddv brelrn elssuni ex exlimdv
      syl5bi alrimiv fvss rnex ssex exlimiv vtoclg impcom ) EHMAEGUGZNZOMZAKPZY
      SNZOMZUHAUUAUHKEHUUBEQZUUDUUAAUUEUUCYTOUUBEYSUIUJUKAUAPZUUBULZULZRUMZUNZU
      OZUBPZUUFNUUFUULUPGNQZUBUUJUQZSZUAURZUUDAUUJRMZUUPUUQUUJUSZUUJOMUUIRUTUUR
      UUHRVAUUIVBVDUUIUUHRUUGUUBKVCZVEZVEVFVGUUJVHVIZAKUCUBDUUJLUAGBCKUCDFLGIVJ
      ZAGVOZBPZGNZOMZSZBVKUVCUUBGNZOMZSZKVKJUVGUVJBKUVDUUBQZUVFUVIUVCUVKUVEUVHO
      UVDUUBGUIUJVLVMVPVNVQUUOUUDUAUUOUUCUUFVRZUNZUTZUUDUUOUUBCPZYSVSZUVOUVMUTZ
      UHZCVKUVNUUOUVRCUVPUUBUVOVTZUDPZMZUVTDMZSZUDURZUUOUVQUVPUUBUVODUNZVSUVSUW
      EMUWDUUBUVOYSUWEKUCDLGUVBWAWBUUBUVOUWEWCUDUVSDWDWEUUOUWCUVQUDUUOUWCUVQUUO
      UWCSZUVOUVLMZUVQUWFUUBUVOUUFVSZUWGUWFUUBUVDUUFVSZUWHBUWFUUBUUFWRZMUWIBURU
      WFUUBUUJUWJUWFUUBUUGUUJUUBUUSWFUWFUUJUUHUNZUUGUWFUUIUUHUWFUUHRUTZUUIUUHQU
      WFUUHRMZUWLUWFUUGRMZUWMUWFUUBRMZUWNUWCUWOUUOUWCUVTUEPZUOZUFPZUVTNUVTUWRUP
      GNQUFUWPUQZSZUWOUERUWCUWBUWTUERWGUWAUWBWHBCUEUFDFGUVTIUDVCWIVPUWCUWPRMZUW
      TSZSZUXAUUBUWPMZUWOUWCUXAUWTWJUXCUWQUWAUXDUWCUXAUWQUWSWKUWAUWBUXBWLUWPUUB
      UVOUVTWMWNUWPUUBWOWNWPWQUUBWSTZUUGWSTUUHWTTUUHRXAVPXBUWFUUGXCZUWKUUGQUWFU
      WNUUGUSUXFUXEUUGXDUUGXEXFUUGUUTXGVPXJXHUUKUWJUUJQUUNUWCUUJUUFXIXKXLBUUBUU
      FUUSXTVPUWFUWISZUUBUVDUVOUUFUWFUWIWHZUXGUUFDMZUWBUWIUUBUVOUVTVSZUVDUVOQZU
      UOUXIUWCUWIUUOUUFLPZUOZUUMUBUXLUQZSZLRWGZUXIUUQUUOUXPUVAUXOUUOLUUJRUXLUUJ
      QUXMUUKUXNUUNUXLUUJUUFXMUUMUBUXLUUJXNXOXPYABCLUBDFGUUFIUAVCZWIXQXKUUOUWAU
      WBUWIXRUXHUXGUWAUXJUUOUWAUWBUWIXSUUBUVOUVTWCXQUXIUWBSUWIUXJSUXKKUCCBDLUAU
      DGUVBYBYCYDYEYFUUBUVOUUFUUSCVCYGTUVOUVLYHTYIYJYKYLCUUBUVMYSYMTUUCUVMUVLUU
      FUXQYNVGYOTYPTYQYR $.
  $}

  ${
    $d G f g u w x y z $.  $d ph f y $.
    tfri1d.1 $e |- F = recs ( G ) $.
    tfri1d.2 $e |- ( ph -> A. x ( Fun G /\ ( G ` x ) e. _V ) ) $.
    $( Principle of Transfinite Recursion, part 1 of 3.  Theorem 7.41(1) of
       [TakeutiZaring] p. 47, with an additional condition.

       The condition is that ` G ` is defined "everywhere" and here is stated
       as ` ( G `` x ) e. _V ` .  Alternatively
       ` A. x e. On A. f ( f Fn x -> f e. dom G ) ` would suffice.

       Given a function ` G ` satisfying that condition, we define a class
       ` A ` of all "acceptable" functions.  The final function we're
       interested in is the union ` F = recs ( G ) ` of them. ` F ` is then
       said to be defined by transfinite recursion.  The purpose of the 3 parts
       of this theorem is to demonstrate properties of ` F ` .  In this first
       part we show that ` F ` is a function whose domain is all ordinal
       numbers.  (Contributed by Jim Kingdon, 4-May-2019.)  (Revised by Mario
       Carneiro, 24-May-2019.) $)
    tfri1d $p |- ( ph -> F Fn On ) $=
      ( vy vg vz vu vf vw con0 wfn wceq wa cv cfv cres wral crecs wfun cdm wrex
      cab eqid tfrlem3 tfrlemi14d tfrlem7 jctil df-fn sylibr fneq1i ) ADUAZMNZC
      MNAUNUBZUNUCMOZPUOAUQUPABGHQZIQZNJQZURRURUTSDROJUSTPIMUDHUEZKDIJBGVAHKDVA
      UFUGFUHGILQZGQZNUSVBRVBUSSDROIVCTPGMUDLUEZLDVDUFUIUJUNMUKULMCUNEUMUL $.

    $( Principle of Transfinite Recursion, part 2 of 3.  Theorem 7.41(2) of
       [TakeutiZaring] p. 47, with an additional condition on the recursion
       rule ` G ` ( as described at ~ tfri1 ).  Here we show that the function
       ` F ` has the property that for any function ` G ` satisfying that
       condition, the "next" value of ` F ` is ` G ` recursively applied to all
       "previous" values of ` F ` .  (Contributed by Jim Kingdon,
       4-May-2019.) $)
    tfri2d $p |- ( ( ph /\ A e. On ) -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( con0 wcel wa cdm cfv cres wceq wfn tfri1d fndm syl eleq2d biimpar tfr2a
      ) ACHIZJCDKZIZCDLDCMELNAUDUBAUCHCADHOUCHNABDEFGPHDQRSTCDEFUAR $.
  $}

  ${
    $d G f g u w x y z $.
    tfri1.1 $e |- F = recs ( G ) $.
    tfri1.2 $e |- ( Fun G /\ ( G ` x ) e. _V ) $.
    $( Principle of Transfinite Recursion, part 1 of 3.  Theorem 7.41(1) of
       [TakeutiZaring] p. 47, with an additional condition.

       The condition is that ` G ` is defined "everywhere" and here is stated
       as ` ( G `` x ) e. _V ` .  Alternatively
       ` A. x e. On A. f ( f Fn x -> f e. dom G ) ` would suffice.

       Given a function ` G ` satisfying that condition, we define a class
       ` A ` of all "acceptable" functions.  The final function we're
       interested in is the union ` F = recs ( G ) ` of them. ` F ` is then
       said to be defined by transfinite recursion.  The purpose of the 3 parts
       of this theorem is to demonstrate properties of ` F ` .  In this first
       part we show that ` F ` is a function whose domain is all ordinal
       numbers.  (Contributed by Jim Kingdon, 4-May-2019.)  (Revised by Mario
       Carneiro, 24-May-2019.) $)
    tfri1 $p |- F Fn On $=
      ( con0 wfn wtru wfun cv cfv cvv wcel wa wal ax-gen a1i tfri1d trud ) BFGH
      ABCDCIAJCKLMNZAOHTAEPQRS $.

    $( Principle of Transfinite Recursion, part 2 of 3.  Theorem 7.41(2) of
       [TakeutiZaring] p. 47, with an additional condition on the recursion
       rule ` G ` ( as described at ~ tfri1 ).  Here we show that the function
       ` F ` has the property that for any function ` G ` satisfying that
       condition, the "next" value of ` F ` is ` G ` recursively applied to all
       "previous" values of ` F ` .  (Contributed by Jim Kingdon,
       4-May-2019.) $)
    tfri2 $p |- ( A e. On -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( con0 wcel cdm cfv cres wceq wfn tfri1 fndm ax-mp eleq2i tfr2a sylbir )
      BGHBCIZHBCJCBKDJLTGBCGMTGLACDEFNGCOPQBCDERS $.
  $}

  ${
    $d B x y $.  $d F x y $.  $d G f w x y z $.
    tfri3.1 $e |- F = recs ( G ) $.
    tfri3.2 $e |- ( Fun G /\ ( G ` x ) e. _V ) $.
    $( Principle of Transfinite Recursion, part 3 of 3.  Theorem 7.41(3) of
       [TakeutiZaring] p. 47, with an additional condition on the recursion
       rule ` G ` ( as described at ~ tfri1 ).  Finally, we show that ` F ` is
       unique.  We do this by showing that any class ` B ` with the same
       properties of ` F ` that we showed in parts 1 and 2 is identical to
       ` F ` .  (Contributed by Jim Kingdon, 4-May-2019.) $)
    tfri3 $p |- ( ( B Fn On /\
             A. x e. On ( B ` x ) = ( G ` ( B |` x ) ) ) -> B = F ) $=
      ( vy con0 wfn cv cfv cres wceq wral wa nfv wi fveq2 wb imp nfan wcel nfim
      nfra1 eqeq12d imbi2d r19.21v rsp onss tfri1 fvreseq mpanl2 syl6bir sylan2
      wss ancoms adantr tfri2 jctr jcab sylibr eqeq12 adantl mpbird exp43 com4t
      syl6 exp4a pm2.43d syl com3l a2d syl5bi tfis2f com12 ralrimi eqfnfv mpan2
      impd biimpar syldan ) BHIZAJZBKZBWCLZDKZMZAHNZWDWCCKZMZAHNZBCMZWBWHOZWJAH
      WBWHAWBAPWGAHUDUAZWCHUBZWMWJWMWJQZWMGJZBKZWQCKZMZQZAGWMWTAWNWTAPUCWCWQMZW
      JWTWMXBWDWRWIWSWCWQBRWCWQCRUEUFXAGWCNWMWTGWCNZQWOWPWMWTGWCUGWOWMXCWJWOWBW
      HXCWJQZWHWOWBXDWHWOWGQZWOWBXDQZQWGAHUHXEWOXFXEWOWOWBXDWOWBOZXCXEWOWJXGXCX
      EWOWJXGXCOZXEWOOZOWJWFCWCLZDKZMZXHXLXIXGXCXLWBWOXCXLQZWOWBWCHUOZXMWCUIWBX
      NOXCWEXJMZXLWBCHIZXNXOXCSACDEFUJZGHWCBCUKULWEXJDRUMUNUPTUQXIWJXLSZXHXEWOX
      RXEWOWGWIXKMZOZXRXEXEWOXSQZOWOXTQXEYAAWCCDEFURUSWOWGXSUTVAWDWFWIXKVBVGTVC
      VDVEVFVHVIVJVKVSVLVMVNVOVPWBWLWKWBXPWLWKSXQAHBCVQVRVTWA $.
  $}

  ${
    $d f g u w x y z G $.
    tfrex.1 $e |- F = recs ( G ) $.
    tfrex.2 $e |- ( ph -> A. x ( Fun G /\ ( G ` x ) e. _V ) ) $.
    $( The transfinite recursion function is set-like if the input is.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    tfrex $p |- ( ( ph /\ A e. V ) -> ( F ` A ) e. _V ) $=
      ( vy vg vz vu vf wcel wa cfv crecs cvv fveq1i cv cres wceq wral con0 wrex
      wfn cab eqid tfrlem3 tfrexlem syl5eqel ) ACFNOCDPCEQZPRCDULGSABIJTZKTZUFL
      TZUMPUMUOUAEPUBLUNUCOKUDUEJUGZCMEFKLBIUPJMEUPUHUIHUJUK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
            Recursive definition generator
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define a constant for the recursive definition generator. $)
  $c rec $.

  $( Extend class notation with the recursive definition generator, with
     characteristic function ` F ` and initial value ` I ` . $)
  crdg $a class rec ( F , I ) $.

  ${
    $d x y f g F $.  $d x y f g I $.
    $( Define a recursive definition generator on ` On ` (the class of ordinal
       numbers) with characteristic function ` F ` and initial value ` I ` .
       This rather amazing operation allows us to define, with compact direct
       definitions, functions that are usually defined in textbooks only with
       indirect self-referencing recursive definitions.  A recursive definition
       requires advanced metalogic to justify - in particular, eliminating a
       recursive definition is very difficult and often not even shown in
       textbooks.  On the other hand, the elimination of a direct definition is
       a matter of simple mechanical substitution.  The price paid is the
       daunting complexity of our ` rec ` operation (especially when ~ df-recs
       that it is built on is also eliminated).  But once we get past this
       hurdle, definitions that would otherwise be recursive become relatively
       simple.  In classical logic it would be easier to divide this definition
       into cases based on whether the domain of ` g ` is zero, a successor, or
       a limit ordinal.  Cases do not (in general) work that way in
       intuitionistic logic, so instead we choose a definition which takes the
       union of all the results of the characteristic function for ordinals in
       the domain of ` g ` .  This means that this definition has the expected
       properties for increasing and continuous ordinal functions, which
       include ordinal addition and multiplication.

       For finite recursion we also define ~ df-frec and for suitable
       characteristic functions ~ df-frec yields the same result as ` rec `
       restricted to ` _om ` , as seen at ~ frecrdg .

       _Note:  We introduce_ ` rec ` _with the philosophical goal of being_
       _able to eliminate all definitions with direct mechanical substitution_
       _and to verify easily the soundness of definitions.  Metamath itself_
       _has no built-in technical limitation that prevents multiple-part_
       _recursive definitions in the traditional textbook style_.  (Contributed
       by Jim Kingdon, 19-May-2019.) $)
    df-irdg $a |- rec ( F , I ) = recs ( ( g e. _V |-> ( I u.
      U_ x e. dom g ( F ` ( g ` x ) ) ) ) ) $.
  $}

  ${
    $d x y z f g F $.  $d x y z f g G $.  $d x y z f g A $.  $d x y z f g B $.
    $( Equality theorem for the recursive definition generator.  (Contributed
       by NM, 9-Apr-1995.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    rdgeq1 $p |- ( F = G -> rec ( F , A ) = rec ( G , A ) ) $=
      ( vg vx wceq cvv cv cdm cfv ciun cun cmpt crecs crdg fveq1 iuneq2d uneq2d
      mpteq2dv df-irdg recseq syl 3eqtr4g ) BCFZDGAEDHZIZEHUEJZBJZKZLZMZNZDGAEU
      FUGCJZKZLZMZNZBAOCAOUDUKUPFULUQFUDDGUJUOUDUIUNAUDEUFUHUMUGBCPQRSUKUPUAUBE
      DBATEDCATUC $.

    $( Equality theorem for the recursive definition generator.  (Contributed
       by NM, 9-Apr-1995.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    rdgeq2 $p |- ( A = B -> rec ( F , A ) = rec ( F , B ) ) $=
      ( vg vx wceq cvv cv cdm cfv ciun cun cmpt crecs uneq1 mpteq2dv recseq syl
      crdg df-irdg 3eqtr4g ) ABFZDGAEDHZIEHUCJCJKZLZMZNZDGBUDLZMZNZCASCBSUBUFUI
      FUGUJFUBDGUEUHABUDOPUFUIQREDCATEDCBTUA $.
  $}

  ${
    $d x y z f g u v w F $.  $d x y z f g u v w A $.
    $( The recursive definition generator is a function.  (Contributed by Mario
       Carneiro, 16-Nov-2014.) $)
    rdgfun $p |- Fun rec ( F , A ) $=
      ( vg vx vy vz vf crdg wfun cvv cdm cfv ciun cun cmpt crecs wfn cres wceq
      cv wral wa con0 wrex cab eqid tfrlem7 df-irdg funeqi mpbir ) BAHZICJADCTZ
      KDTULLBLMNOZPZIEFGTZETZQFTZUOLUOUQRUMLSFUPUAUBEUCUDGUEZGUMURUFUGUKUNDCBAU
      HUIUJ $.
  $}

  ${
    $d A g $.  $d g x z F $.
    $( The recursion rule for the recursive definition generator is defined
       everywhere.  (Contributed by Jim Kingdon, 14-May-2020.) $)
    rdgtfr $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) -> (
        Fun ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) )
        /\ ( ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) ) ` f )
          e. _V ) ) $=
      ( wcel cv cfv cvv wal cdm wa vex wral wceq ralrimivw sylancr sylan2 fveq2
      ciun cun cmpt wfun elex funmpt dmex fvex eleq1d spcv iunexg ancoms dmmptg
      unexg syl syl5eleqr funfvex jctil ) CGHBIZFJZKHZBLZCKHZEKCAEIZMZAIZVEJZFJ
      ZUBZUCZUDZUEZDIZVLJKHZNCGUFVCVDNZVOVMVPVMVNVLMZHVOEKVKUGZVPVNKVQDOVPVKKHZ
      EKPVQKQVPVSEKVDVCVSVCVDVJKHZVSVCVFKHVIKHZAVFPVTVEEOZUHVCWAAVFVBWABVHVGVEK
      KWBAOUIUTVHQVAVIKUTVHFUAUJUKRAVFVIKKULSCVJKKUOTUMREKVKKUNUPUQVNVLURSVRUST
      $.
  $}

  ${
    $d A g $.  $d g x F $.
    $( The recursion rule for the recursive definition generator is defined
       everywhere.  (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgruledefgg $p |- ( ( F Fn _V /\ A e. V ) -> (
        Fun ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) )
        /\ ( ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) ) ` f )
          e. _V ) ) $=
      ( wcel cvv wfn cv cdm cfv ciun wa vex wral funfvex ralrimivw syl sylan2
      cun cmpt wfun elex funmpt wceq fvex funfni mpan2 dmex iunexg unexg ancoms
      mpan dmmptg syl5eleqr sylancr jctil ) BFGEHIZBHGZDHBADJZKZAJZVALZELZMZUAZ
      UBZUCZCJZVHLHGZNBFUDUSUTNZVKVIVLVIVJVHKZGVKDHVGUEZVLVJHVMCOVLVGHGZDHPVMHU
      FVLVODHUTUSVOUSUTVFHGZVOUSVEHGZAVBPZVPUSVQAVBUSVDHGVQVCVAHHDOZAOUGVQHVDEV
      DEQUHUIRVBHGVRVPVAVSUJAVBVEHHUKUNSBVFHHULTUMRDHVGHUOSUPVJVHQUQVNURT $.
  $}

  ${
    $d A g $.  $d V g $.  $d g x F $.
    rdgruledefg.1 $e |- F Fn _V $.
    $( The recursion rule for the recursive definition generator is defined
       everywhere.  (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgruledefg $p |- ( A e. V -> (
        Fun ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) )
        /\ ( ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) ) ` f )
          e. _V ) ) $=
      ( cvv wfn wcel cv cdm cfv ciun cun cmpt wfun wa rdgruledefgg mpan ) EHIBF
      JDHBADKZLAKUAMEMNOPZQCKUBMHJRGABCDEFST $.
  $}

  ${
    $d A g x y $.  $d F g x y $.  $d V g y $.
    $( The recursive definition generator produces a set on a set input.
       (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgexggg $p |- ( ( F Fn _V /\ A e. V /\ B e. W ) ->
        ( rec ( F , A ) ` B ) e. _V ) $=
      ( vy vg vx cvv wfn wcel crdg cfv wa cv cdm ciun cun cmpt df-irdg alrimiv
      wfun rdgruledefgg tfrex 3impa ) CIJZADKZBEKBCALZMIKUFUGNZFBUHGIAHGOZPHOUJ
      MCMQRSZEHGCATUIUKUBFOUKMIKNFHAFGCDUCUAUDUE $.
  $}

  ${
    $d A g x y $.  $d F g x y $.  $d V g y $.
    rdgexgg.1 $e |- F Fn _V $.
    $( The recursive definition generator produces a set on a set input.
       (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgexgg $p |- ( ( A e. V /\ B e. W ) -> ( rec ( F , A ) ` B ) e. _V ) $=
      ( cvv wfn wcel crdg cfv rdgexggg mp3an1 ) CGHADIBEIBCAJKGIFABCDELM $.
  $}

  ${
    $d A f g x $.  $d F f g x $.  $d V f $.
    $( The recursive definition generator is a function on ordinal numbers.
       The ` F Fn _V ` condition states that the characteristic function is
       defined for all sets (being defined for all ordinals might be enough if
       being used in a manner similar to ~ rdgon ; in cases like ~ df-oadd
       either presumably could work).  (Contributed by Jim Kingdon,
       13-Jul-2019.) $)
    rdgifnon $p |- ( ( F Fn _V /\ A e. V ) ->
      rec ( F , A ) Fn On ) $=
      ( vf vg vx cvv wfn wcel wa crdg cv cdm cfv ciun cmpt df-irdg rdgruledefgg
      cun wfun alrimiv tfri1d ) BGHACIJZDBAKEGAFELZMFLUDNBNOSPZFEBAQUCUETDLUENG
      IJDFADEBCRUAUB $.
  $}

  ${
    $d A f g x $.  $d F f g x z $.  $d V f $.
    $( The recursive definition generator is a function on ordinal numbers.
       (Contributed by Jim Kingdon, 14-May-2020.) $)
    rdgifnon2 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) ->
        rec ( F , A ) Fn On ) $=
      ( vf vg vx cv cfv cvv wcel wal wa crdg cdm ciun cun cmpt df-irdg wfun
      rdgtfr alrimiv tfri1d ) AHCIJKALBDKMZECBNFJBGFHZOGHUEICIPQRZGFCBSUDUFTEHU
      FIJKMEGABEFCDUAUBUC $.
  $}

  ${
    $d A g x y $.  $d B g x $.  $d F g x y $.  $d V g x y $.
    $( Value of the recursive definition generator.  Lemma for ~ rdgival which
       simplifies the value further.  (Contributed by Jim Kingdon,
       13-Jul-2019.)  (New usage is discouraged.) $)
    rdgivallem $p |- ( ( F Fn _V /\ A e. V /\ B e. On ) ->
        ( rec ( F , A ) ` B ) =
        ( A u. U_ x e. B ( F ` ( ( rec ( F , A ) |` B ) ` x ) ) ) ) $=
      ( vg vy cvv wfn wcel con0 cfv cv cdm ciun cun wceq wa wfun wss w3a tfri2d
      crdg cres cmpt df-irdg rdgruledefgg alrimiv 3impa eqidd 3ad2ant3 rdgifnon
      dmeq onss fndm syl 3adant3 sseqtr4d ssdmres sylib sylan9eqr fveq2d adantl
      fveq1 iuneq12d uneq2d rdgfun resfunexg mpan simpr fvexg sylancl ralrimivw
      wral vex wi funfvex funfni ex ralimdv adantr iunexg syl2anc 3adant2 unexg
      mpd 3ad2ant2 fvmptd eqtrd ) DHIZBEJZCKJZUAZCDBUCZLZWNCUDZFHBAFMZNZAMZWQLZ
      DLZOZPZUEZLZBACWSWPLZDLZOZPZWJWKWLWOXEQWJWKRZGCWNXDAFDBUFXJXDSGMXDLHJRGAB
      GFDEUGUHUBUIWMFWPXCXIHXDHWMXDUJWMWQWPQZRZXBXHBXLAWRCXAXGXKWMWRWPNZCWQWPUM
      WMCWNNZTXMCQWMCKXNWLWJCKTWKCUNUKWJWKXNKQZWLXJWNKIXOBDEULKWNUOUPUQURCWNUSU
      TVAXKXAXGQWMXKWTXFDWSWQWPVDVBVCVEVFWLWJWPHJZWKWNSWLXPBDVGWNCKVHVIZUKWMXHH
      JZXIHJZWJWLXRWKWJWLRZWLXGHJZACVNZXRWJWLVJXTXFHJZACVNZYBWLYDWJWLYCACWLXPWS
      HJYCXQAVOWSWPHHVKVLVMVCWJYDYBVPWLWJYCYAACWJYCYAYAHXFDXFDVQVRVSVTWAWFACXGK
      HWBWCWDWKWJXRXSVPWLWKXRXSBXHEHWEVSWGWFWHWI $.

    $( Value of the recursive definition generator.  (Contributed by Jim
       Kingdon, 26-Jul-2019.) $)
    rdgival $p |- ( ( F Fn _V /\ A e. V /\ B e. On ) -> ( rec ( F , A ) ` B ) =
        ( A u. U_ x e. B ( F ` ( rec ( F , A ) ` x ) ) ) ) $=
      ( cvv wfn wcel con0 w3a crdg cfv cv cres ciun cun rdgivallem fvres fveq2d
      iuneq2i uneq2i syl6eq ) DFGBEHCIHJCDBKZLBACAMZUCCNLZDLZOZPBACUDUCLZDLZOZP
      ABCDEQUGUJBACUFUIUDCHUEUHDUDCUCRSTUAUB $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d I x y $.  $d V x y $.  $d ph x $.
    rdgss.1 $e |- ( ph -> F Fn _V ) $.
    rdgss.2 $e |- ( ph -> I e. V ) $.
    rdgss.3 $e |- ( ph -> A e. On ) $.
    rdgss.4 $e |- ( ph -> B e. On ) $.
    rdgss.5 $e |- ( ph -> A C_ B ) $.
    $( Subset and recursive definition generator.  (Contributed by Jim Kingdon,
       15-Jul-2019.) $)
    rdgss $p |- ( ph -> ( rec ( F , I ) ` A ) C_ ( rec ( F , I ) ` B ) ) $=
      ( vx vy cv cfv ciun cun wss wcel wceq crdg wrex wral fveq2d sseq2d rspcev
      ssel ssid fveq2 mpan2 syl6 ralrimiv syl iunss2 unss2 3syl cvv wfn rdgival
      con0 syl3anc 3sstr4d ) AELBLNZDEUAZOZDOZPZQZEMCMNZVDOZDOZPZQZBVDOZCVDOZAV
      FVKRZMCUBZLBUCZVGVLRVHVMRABCRZVRKVSVQLBVSVCBSVCCSZVQBCVCUGVTVFVFRZVQVFUHV
      PWAMVCCVIVCTZVKVFVFWBVJVEDVIVCVDUIUDUEUFUJUKULUMLMBCVFVKUNVGVLEUOUPADUQUR
      ZEFSZBUTSVNVHTGHILEBDFUSVAAWCWDCUTSVOVMTGHJMECDFUSVAVB $.
  $}

  ${
    $d x y z f g u v w F $.  $d x y z f g u v w A $.  $d B g x $.  $d V x $.
    rdgisuc1.1 $e |- ( ph -> F Fn _V ) $.
    rdgisuc1.2 $e |- ( ph -> A e. V ) $.
    rdgisuc1.3 $e |- ( ph -> B e. On ) $.
    $( One way of describing the value of the recursive definition generator at
       a successor.  There is no condition on the characteristic function ` F `
       other than ` F Fn _V ` .  Given that, the resulting expression
       encompasses both the expected successor term
       ` ( F `` ( rec ( F , A ) `` B ) ) ` but also terms that correspond to
       the initial value ` A ` and to limit ordinals
       ` U_ x e. B ( F `` ( rec ( F , A ) `` x ) ) ` .

       If we add conditions on the characteristic function, we can show tighter
       results such as ~ rdgisucinc .  (Contributed by Jim Kingdon,
       9-Jun-2019.) $)
    rdgisuc1 $p |- ( ph -> ( rec ( F , A ) ` suc B ) =
        ( A u. ( U_ x e. B ( F ` ( rec ( F , A ) ` x ) )
          u. ( F ` ( rec ( F , A ) ` B ) ) ) ) ) $=
      ( csuc crdg cfv cv ciun cun wcel con0 wceq syl uneq2d cvv rdgival syl3anc
      wfn suceloni df-suc iuneq1 ax-mp iunxun eqtri fveq2 fveq2d iunxsng syl5eq
      csn eqtrd ) ADJZECKZLZCBUQBMZURLZELZNZOZCBDVBNZDURLZELZOZOZAEUAUDCFPUQQPZ
      USVDRGHADQPZVJIDUESBCUQEFUBUCAVKVDVIRIVKVCVHCVKVCVEBDUOZVBNZOZVHVCBDVLOZV
      BNZVNUQVORVCVPRDUFBUQVOVBUGUHBDVLVBUIUJVKVMVGVEBDVBVGQUTDRVAVFEUTDURUKULU
      MTUNTSUP $.

    ${
      $d A x $.  $d B x $.  $d F x $.
      rdgisucinc.inc $e |- ( ph -> A. x x C_ ( F ` x ) ) $.
      $( Value of the recursive definition generator at a successor.

         This can be thought of as a generalization of ~ oasuc and ~ omsuc .
         (Contributed by Jim Kingdon, 29-Aug-2019.) $)
      rdgisucinc $p |- ( ph -> ( rec ( F , A ) ` suc B ) =
          ( F ` ( rec ( F , A ) ` B ) ) ) $=
        ( csuc crdg cfv cun cvv wcel con0 wceq syl3anc wss cv ciun rdgisuc1 wfn
        unass syl6eqr rdgival uneq1d wal rdgexggg id fveq2 sseq12d sylc ssequn1
        spcgv sylib 3eqtr2d ) ADKECLZMZCBDBUAZUSMEMUBZNZDUSMZEMZNZVDVENZVEAUTCV
        BVENNVFABCDEFGHIUCCVBVEUEUFAVDVCVEAEOUDZCFPZDQPZVDVCRGHIBCDEFUGSUHAVDVE
        TZVGVERAVDOPZVAVAEMZTZBUIVKAVHVIVJVLGHICDEFQUJSJVNVKBVDOVAVDRZVAVDVMVEV
        OUKVAVDEULUMUPUNVDVEUOUQUR $.
    $}
  $}

  ${
    $d A w x z $.  $d B z $.  $d F w x z $.  $d ph x y z $.
    rdgon.1 $e |- ( ph -> F Fn _V ) $.
    rdgon.2 $e |- ( ph -> A e. On ) $.
    rdgon.3 $e |- ( ph -> A. x e. On ( F ` x ) e. On ) $.
    $( Evaluating the recursive definition generator produces an ordinal.
       There is a hypothesis that the characteristic function produces ordinals
       on ordinal arguments.  (Contributed by Jim Kingdon, 26-Jul-2019.) $)
    rdgon $p |- ( ( ph /\ B e. On ) -> ( rec ( F , A ) ` B ) e. On ) $=
      ( vz vw con0 wcel cfv cv wi wceq fveq2 eleq1d wral wa crdg imbi2d r19.21v
      cres ciun cun wb fvres adantl cbvralv sylib rspcv syl5com adantr ralimdva
      sylbird cvv vex iunon mpan syl6 onun2 syl6an wfn rdgivallem 3expa sylibrd
      jca sylan expcom a2d syl5bi tfis3 impcom ) DKLADECUAZMZKLZAINZVOMZKLZOZAB
      NZVOMZKLZOZAVQOIBDVRWBPZVTWDAWFVSWCKVRWBVOQRUBVRDPZVTVQAWGVSVPKVRDVOQRUBW
      EBVRSAWDBVRSZOVRKLZWAAWDBVRUCWIAWHVTAWIWHVTOAWITZWHCBVRWBVOVRUDMZEMZUEZUF
      ZKLZVTAWHWOOWIACKLZWHWMKLZWOGAWHWLKLZBVRSZWQAWDWRBVRAWBVRLZTWDWKKLZWRWTXA
      WDUGAWTWKWCKWBVRVOUHRUIAXAWROWTAJNZEMZKLZJKSZXAWRAWBEMZKLZBKSXEHXGXDBJKWB
      XBPXFXCKWBXBEQRUJUKXDWRJWKKXBWKPXCWLKXBWKEQRULUMUNUPUOVRUQLWSWQIURBVRWLUQ
      USUTVACWMVBVCUNWJVSWNKAEUQVDZWPTWIVSWNPZAXHWPFGVHXHWPWIXIBCVREKVEVFVIRVGV
      JVKVLVMVN $.
  $}

  ${
    $d x y f g v w F $.  $d x y f g v w A $.  $d f x y B $.
    ${
      rdg.1 $e |- A e. _V $.
      $( The initial value of the recursive definition generator.  (Contributed
         by NM, 23-Apr-1995.)  (Revised by Mario Carneiro, 14-Nov-2014.) $)
      rdg0 $p |- ( rec ( F , A ) ` (/) ) = A $=
        ( vg vx c0 crdg cfv cvv cdm ciun cun cmpt wcel wceq ax-mp eqtri eqeltri
        cv 0ex dmeq fveq1 fveq2d iuneq12d uneq2d eqid iuneq1 0iun fvmpt df-irdg
        dm0 unex tfr0 uneq2i un0 ) FBAGZHZFDIAEDSZJZESZURHZBHZKZLZMZHZAVFINUQVF
        OVFAEFJZUTFHZBHZKZLZIFINVFVKOTDFVDVKIVEURFOZVCVJAVLEUSVGVBVIURFUAVLVAVH
        BUTURFUBUCUDUEVEUFAVJCVJFIVJEFVIKZFVGFOVJVMOUKEVGFVIUGPEVIUHQZTRULZUIPZ
        VORUPVEIEDBAUJUMPVFAFLZAVFVKVQVPVJFAVNUNQAUOQQ $.
    $}
  $}

  ${
    $d x A $.  $d x F $.
    $( The initial value of the recursive definition generator.  (Contributed
       by NM, 25-Apr-1995.) $)
    rdg0g $p |- ( A e. C -> ( rec ( F , A ) ` (/) ) = A ) $=
      ( vx c0 cv crdg cfv wceq rdgeq2 fveq1d id eqeq12d vex rdg0 vtoclg ) ECDFZ
      GZHZQIECAGZHZAIDABQAIZSUAQAUBERTQACJKUBLMQCDNOP $.
  $}

  ${
    $d x y z f g u v w F $.  $d x y z f g u v w A $.  $d B g x $.
    rdg0.1 $e |- A e. _V $.
    rdg0.2 $e |- F Fn _V $.
    $( The recursive definition generator produces a set on a set input.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    rdgexg $p |- ( B e. V -> ( rec ( F , A ) ` B ) e. _V ) $=
      ( cvv wcel crdg cfv rdgexgg mpan ) AGHBDHBCAIJGHEABCGDFKL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
              Finite recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define a constant for the finite recursive definition generator. $)
  $c frec $.

  $( Extend class notation with the fnite recursive definition generator, with
     characteristic function ` F ` and initial value ` I ` . $)
  cfrec $a class frec ( F , I ) $.

  ${
    $d x y f g m F $.  $d x y f g m I $.
    $( Define a recursive definition generator on ` _om ` (the class of finite
       ordinals) with characteristic function ` F ` and initial value ` I ` .
       This rather amazing operation allows us to define, with compact direct
       definitions, functions that are usually defined in textbooks only with
       indirect self-referencing recursive definitions.  A recursive definition
       requires advanced metalogic to justify - in particular, eliminating a
       recursive definition is very difficult and often not even shown in
       textbooks.  On the other hand, the elimination of a direct definition is
       a matter of simple mechanical substitution.  The price paid is the
       daunting complexity of our ` frec ` operation (especially when ~ df-recs
       that it is built on is also eliminated).  But once we get past this
       hurdle, definitions that would otherwise be recursive become relatively
       simple; see ~ frec0g and ~ frecsuc .

       Unlike with transfinite recursion, finite recurson can readily divide
       definitions and proofs into zero and successor cases, because even
       without excluded middle we have theorems such as ~ nn0suc .  The
       analogous situation with transfinite recursion - being able to say that
       an ordinal is zero, successor, or limit - is enabled by excluded middle
       and thus is not available to us.  For the characteristic functions which
       satisfy the conditions given at ~ frecrdg , this definition and
       ~ df-irdg restricted to ` _om ` produce the same result.

       _Note:  We introduce_ ` frec ` _with the philosophical goal of being_
       _able to eliminate all definitions with direct mechanical substitution_
       _and to verify easily the soundness of definitions.  Metamath itself_
       _has no built-in technical limitation that prevents multiple-part_
       _recursive definitions in the traditional textbook style_.  (Contributed
       by Mario Carneiro and Jim Kingdon, 10-Aug-2019.) $)
    df-frec $a |- frec ( F , I ) = ( recs ( ( g e. _V |-> { x |
      ( E. m e. _om ( dom g = suc m /\ x e. ( F ` ( g ` m ) ) ) \/
      ( dom g = (/) /\ x e. I ) ) } ) ) |` _om ) $.
  $}

  ${
    $d x g m F $.  $d x g m G $.  $d x g m A $.  $d x g m B $.
    $( Equality theorem for the finite recursive definition generator.
       (Contributed by Jim Kingdon, 30-May-2020.) $)
    freceq1 $p |- ( F = G -> frec ( F , A ) = frec ( G , A ) ) $=
      ( vg vm vx wceq cvv cv cfv wcel wa com wrex wo cab cmpt crecs cres cfrec
      csuc c0 simpl fveq1d eleq2d anbi2d rexbidv orbi1d abbidv mpteq2dva recseq
      cdm syl reseq1d df-frec 3eqtr4g ) BCGZDHDIZULZEIZUAGZFIZUTURJZBJZKZLZEMNZ
      USUBGVBAKLZOZFPZQZRZMSDHVAVBVCCJZKZLZEMNZVHOZFPZQZRZMSBATCATUQVLVTMUQVKVS
      GVLVTGUQDHVJVRUQURHKZLZVIVQFWBVGVPVHWBVFVOEMWBVEVNVAWBVDVMVBWBVCBCUQWAUCU
      DUEUFUGUHUIUJVKVSUKUMUNFDEBAUOFDECAUOUP $.

    $( Equality theorem for the finite recursive definition generator.
       (Contributed by Jim Kingdon, 30-May-2020.) $)
    freceq2 $p |- ( A = B -> frec ( F , A ) = frec ( F , B ) ) $=
      ( vg vm vx wceq cvv cv cfv wcel wa com cab cmpt crecs cres cfrec df-frec
      wo cdm csuc c0 simpl eleq2d anbi2d orbi2d abbidv mpteq2dva recseq reseq1d
      wrex syl 3eqtr4g ) ABGZDHDIZUAZEIZUBGFIZURUPJCJKLEMULZUQUCGZUSAKZLZTZFNZO
      ZPZMQDHUTVAUSBKZLZTZFNZOZPZMQCARCBRUOVGVMMUOVFVLGVGVMGUODHVEVKUOUPHKZLZVD
      VJFVOVCVIUTVOVBVHVAVOABUSUOVNUDUEUFUGUHUIVFVLUJUMUKFDECASFDECBSUN $.
  $}

  ${
    $d g m y F $.  $d g m y A $.  $d x g m y $.
    nffrec.1 $e |- F/_ x F $.
    nffrec.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for the finite recursive definition
       generator.  (Contributed by Jim Kingdon, 30-May-2020.) $)
    nffrec $p |- F/_ x frec ( F , A ) $=
      ( vg vm vy cfrec cvv cv wceq cfv wcel wa com nfcv nfv nfcri nfan cdm csuc
      wrex c0 wo cab cmpt crecs cres df-frec nffv nfrexya nfor nfab nfmpt nfres
      nfrecs nfcxfr ) ACBIFJFKZUAZGKZUBLZHKZVAUSMZCMZNZOZGPUCZUTUDLZVCBNZOZUEZH
      UFZUGZUHZPUIHFGCBUJAVOPAVNAFJVMAJQVLAHVHVKAVGAGPAPQZVBVFAVBARAHVEAVDCDAVD
      QUKSTULVIVJAVIARAHBESTUMUNUOUQVPUPUR $.
  $}

  ${
    $d A g m x $.  $d F g m x $.
    $( The initial value resulting from finite recursive definition
       generation.  (Contributed by Jim Kingdon, 7-May-2020.) $)
    frec0g $p |- ( A e. V -> ( frec ( F , A ) ` (/) ) = A ) $=
      ( vg vm vx wcel c0 cfv cvv cv cdm wceq wa com wrex wo cab dm0 ax-mp cfrec
      csuc cmpt biantrur wn wne vex nsuceq0g nesymi eqeq1i mtbir intnanr biorfi
      a1i nrex orcom 3bitri abbii abid2 eqtr3i elex syl5eqel dmeq eqeq1d fveq2d
      0ex fveq1 eleq2d anbi12d rexbidv anbi1d orbi12d abbidv eqid fvmptg syl6eq
      mpan syl eqeltrd crecs cres df-frec fveq1i peano1 fvres eqtri tfr0 syl5eq
      eqtrd ) ACGZHBAUAZIZHDJDKZLZEKZUBZMZFKZWOWMIZBIZGZNZEOPZWNHMZWRAGZNZQZFRZ
      UCZIZAWJXJJGZWLXJMWJXJAJWJHLZWPMZWRWOHIZBIZGZNZEOPZXLHMZXENZQZFRZJGZXJAMW
      JYBAJXEFRYBAXEYAFXEXTXTXRQYAXSXESUDXRXTXQEOXQUEWOOGXMXPXMHWPMWPHWOJGWPHUF
      EUGWOJUHTUIXLHWPSUJUKULUNUOUMXTXRUPUQURFAUSUTZACVAZVBYCXJYBAHJGYCXJYBMVFD
      HXHYBJJXIWMHMZXGYAFYFXCXRXFXTYFXBXQEOYFWQXMXAXPYFWNXLWPWMHVCZVDYFWTXOWRYF
      WSXNBWOWMHVGVEVHVIVJYFXDXSXEYFWNXLHYGVDVKVLVMXIVNVOVQYDVPVRZYEVSXKWLHXIVT
      ZIZXJWLHYIOWAZIZYJHWKYKFDEBAWBWCHOGYLYJMWDHOYIWETWFYIXIJYIVNWGWHVRYHWI $.
  $}

  ${
    $d A x $.  $d F x $.  $d S x y $.  $d m ph $.  $d m x y $.  $d F y $.
    frecabex.sex $e |- ( ph -> S e. V ) $.
    frecabex.fvex $e |- ( ph -> A. y ( F ` y ) e. _V ) $.
    frecabex.aex $e |- ( ph -> A e. W ) $.
    $( The class abstraction from ~ df-frec exists.  This is a lemma for other
       finite recursion proofs.  (Contributed by Jim Kingdon, 13-May-2020.) $)
    frecabex $p |- ( ph -> { x |
        ( E. m e. _om ( dom S = suc m /\ x e. ( F ` ( S ` m ) ) ) \/
        ( dom S = (/) /\ x e. A ) ) } e. _V ) $=
      ( cv wceq cfv wcel wa com cab cvv cdm csuc wrex c0 wo wral omex wss simpr
      abssi wal fvexg sylancl fveq2 eleq1d spcgv sylc ssexg ralrimivw abrexex2g
      vex sylancr jca cun unexb unab eleq1i bitri sylib ) AEUAZFMZUBNZBMZVKEOZG
      OZPZQZFRUCZBSZTPZVJUDNZVMDPZQZBSZTPZQZVRWCUEBSZTPZAVTWEARTPVQBSZTPZFRUFVT
      UGAWJFRAWIVOUHVOTPZWJVQBVOVLVPUIUJAVNTPZCMZGOZTPZCUKWKAEHPVKTPWLJFVAVKEHT
      ULUMKWOWKCVNTWMVNNWNVOTWMVNGUNUOUPUQWIVOTURVBUSVQFBRTTUTVBAWDDUHDIPWEWCBD
      WAWBUIUJLWDDIURVBVCWFVSWDVDZTPWHVSWDVEWPWGTVRWCBVFVGVHVI $.
  $}

  ${
    $d g m x y A $.  $d g m x y z F $.  $d x B $.  $d g m y V $.
    frectfr.1 $e |- G = ( g e. _V |-> { x | ( E. m e. _om ( dom g = suc m /\
          x e. ( F ` ( g ` m ) ) ) \/ ( dom g = (/) /\ x e. A ) ) } ) $.
    $( Lemma to connect transfinite recursion theorems with finite recursion.
       That is, given the conditions ` F Fn _V ` and ` A e. V ` on
       ` frec ( F , A ) ` , we want to be able to apply ~ tfri1d or ~ tfri2d ,
       and this lemma lets us satisfy hypotheses of those theorems.

       (Contributed by Jim Kingdon, 15-Aug-2019.) $)
    frectfr $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) ->
        A. y ( Fun G /\ ( G ` y ) e. _V ) ) $=
      ( cv cfv cvv wcel wal wa wfun wfn wceq vex cdm csuc com wrex cab wral a1i
      c0 wo simpl simpr frecabex ralrimivw fnmpt funfvex funfni sylancl funmpt2
      syl jctil alrimiv ) CKGLMNCOZDINZPZHQZBKZHLMNZPBVDVGVEVDHMRZVFMNVGVDEKZUA
      ZFKZUBSAKZVKVILGLNPFUCUDVJUHSVLDNPUIAUEZMNZEMUFVHVDVNEMVDACDVIFGMIVIMNVDE
      TUGVBVCUJVBVCUKULUMEMVMHMJUNUSBTVGMVFHVFHUOUPUQEMVMHJURUTVA $.
  $}

  ${
    $d A f g m u v x y z $.  $d B g m u x z $.  $d F f g m u v x y z $.
    $d G g m x y z $.  $d V g m x y $.

    $( The function generated by finite recursive definition generation is a
       function on omega.  (Contributed by Jim Kingdon, 13-May-2020.) $)
    frecfnom $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) ->
        frec ( F , A ) Fn _om ) $=
      ( vg vm vx vy cv cfv cvv wcel wal wa wceq com con0 cres wfn eqid cdm csuc
      wrex c0 wo cab cmpt crecs cin cfrec frectfr tfri1d fnresin1 syl wb omsson
      wss sseqin2 mpbi reseq2i df-frec eqtr4i fneq12 mp2an sylib ) AICJKLAMBDLN
      ZEKEIZUAZFIZUBOGIZVIVGJCJLNFPUCVHUDOVJBLNUEGUFUGZUHZQPUIZRZVMSZCBUJZPSZVF
      VLQSVOVFHVLVKVLTGHABEFCVKDVKTUKULQPVLUMUNVNVPOVMPOZVOVQUOVNVLPRVPVMPVLPQU
      QVRUPPQURUSZUTGEFCBVAVBVSVMPVNVPVCVDVE $.

    ${
      $d A f g m u v x y z $.  $d B g m u x $.  $d F f g m u v x y z $.
      $d G g m x y $.  $d V g m x y $.
      frecsuclem1.h $e |- G = ( g e. _V |-> { x | (
        E. m e. _om ( dom g = suc m /\ x e. ( F ` ( g ` m ) ) )
        \/ ( dom g = (/) /\ x e. A ) ) } ) $.
      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 13-Aug-2019.) $)
      frecsuclem1 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          ( frec ( F , A ) ` suc B ) = ( G ` ( recs ( G ) |` suc B ) ) ) $=
        ( vy cv cfv cvv wcel com csuc cres wceq wa wal w3a cfrec crecs cdm wrex
        c0 cab cmpt df-frec recseq ax-mp reseq1i eqtr4i fveq1i peano2 fvres syl
        wo syl5eq 3ad2ant3 con0 nnon eqid frectfr tfri2d sylan2 3impa eqtrd ) B
        LGMNOBUAZCIOZDPOZUBDQZGCUCZMZVMHUDZMZVPVMRHMZVLVJVOVQSVKVLVOVMVPPRZMZVQ
        VMVNVSVNENELZUEZFLZQSALZWCWAMGMOTFPUFWBUGSWDCOTUSAUHUIZUDZPRVSAEFGCUJVP
        WFPHWESVPWFSJHWEUKULUMUNUOVLVMPOZVTVQSDUPZVMPVPUQURUTVAVJVKVLVQVRSZVLVJ
        VKTZVMVBOZWIVLWGWKWHVMVCURWJKVMVPHVPVDAKBCEFGHIJVEVFVGVHVI $.

      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
      frecsuclemdm $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          dom ( recs ( G ) |` suc B ) = suc B ) $=
        ( vy cv cfv cvv wcel wal cdm wss wceq con0 com w3a csuc crecs cres nnon
        suceloni onss 3syl 3ad2ant3 wb wfn eqid frectfr tfri1d fndm syl 3adant3
        wa sseq2d mpbird ssdmres sylib ) BLGMNOBPZCIOZDUAOZUBZDUCZHUDZQZRZVIVHU
        EQVHSVGVKVHTRZVFVDVLVEVFDTOVHTOVLDUFDUGVHUHUIUJVDVEVKVLUKVFVDVEUSZVJTVH
        VMVITULVJTSVMKVIHVIUMAKBCEFGHIJUNUOTVIUPUQUTURVAVHVIVBVC $.

      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
      frecsuclem2 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          ( ( recs ( G ) |` suc B ) ` B ) = ( frec ( F , A ) ` B ) ) $=
        ( com wcel cv cfv cvv crecs csuc cres wceq fvres wal cfrec syl cdm wrex
        sucidg wa c0 cab cmpt df-frec recseq ax-mp reseq1i eqtr4i fveq1i syl5eq
        wo eqtr4d 3ad2ant3 ) DKLZBMGNOLBUADHPZDQZRNZDGCUBZNZSCILVAVDDVBNZVFVADV
        CLVDVGSDKUFDVCVBTUCVAVFDVBKRZNVGDVEVHVEEOEMZUDZFMZQSAMZVKVINGNLUGFKUEVJ
        UHSVLCLUGURAUIUJZPZKRVHAEFGCUKVBVNKHVMSVBVNSJHVMULUMUNUOUPDKVBTUQUSUT
        $.

      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
      frecsuclem3 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          ( frec ( F , A ) ` suc B ) = ( F ` ( frec ( F , A ) ` B ) ) ) $=
        ( cv cfv cvv wcel com wceq wa wrex c0 eqeq1d vy wal w3a csuc cfrec cres
        crecs cdm wo cab wfun con0 wfn eqid frectfr tfri1d fnfun 3adant3 peano2
        syl 3ad2ant3 resfunexg syl2anc simp1 simp2 frecabex fveq1 fveq2d eleq2d
        wi dmeq anbi12d rexbidv anbi1d orbi12d abbidv fvmptg ex frecsuclem1 mpd
        sylibrd abeq2d wn frecsuclemdm wne peano3 eqnetrd neneqd intnanrd biorf
        orcom syl6bb vex suc11g mpan2 bitrd eqcom 3bitr2d fveq2 ceqsrexbv eqrdv
        wb 3anibar frecsuclem2 eqtrd ) BKGLMNBUBZCINZDONZUCZDUDZGCUEZLZDHUGZXJU
        FZLZGLZDXKLZGLXIAXLXPXFXGXHAKZXLNZXRXPNZXIXSFKZDPZXRYAXNLZGLZNZQZFORZXH
        XTQXIXSXNUHZYAUDZPZYEQZFORZYHSPZXRCNZQZUIZYLYGXIYPAXLXIYPAUJZMNZXLYQPZX
        IABCXNFGMIXIXMUKZXJONZXNMNZXFXGYTXHXFXGQZXMULUMYTUUCUAXMHXMUNAUABCEFGHI
        JUOUPULXMUQUTURXHXFUUAXGDUSVAXMXJOVBVCZXFXGXHVDXFXGXHVEVFXIYRXNHLZYQPZY
        SXIUUBYRUUFVJUUDUUBYRUUFEXNEKZUHZYIPZXRYAUUGLZGLZNZQZFORZUUHSPZYNQZUIZA
        UJYQMMHUUGXNPZUUQYPAUURUUNYLUUPYOUURUUMYKFOUURUUIYJUULYEUURUUHYHYIUUGXN
        VKZTUURUUKYDXRUURUUJYCGYAUUGXNVGVHVIVLVMUURUUOYMYNUURUUHYHSUUSTVNVOVPJV
        QVRUTXIXLUUEYQABCDEFGHIJVSTWAVTWBXIYLYOYLUIZYPXIYOWCYLUUTXBXIYMYNXIYHSX
        IYHXJSABCDEFGHIJWDZXHXFXJSWEXGDWFVAWGWHWIYOYLWJUTYOYLWKWLXIYKYFFOXIYJYB
        YEXIYJDYAPZYBXIYJXJYIPZUVBXIYHXJYIUVATXHXFUVCUVBXBZXGXHYAMNUVDFWMDYAOMW
        NWOVAWPDYAWQWLVNVMWRYEXTFDOYBYDXPXRYBYCXOGYADXNWSVHVIWTWLXCXAXIXOXQGABC
        DEFGHIJXDVHXE $.
    $}
  $}

  ${
    $d A f g m x y $.  $d A g m y z $.  $d B g m y z $.  $d F f g m n x y $.
    $d F g m y z $.  $d V g m y $.  $d f x n z $.
    $( The successor value resulting from finite recursive definition
       generation.  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
    frecsuc $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
        ( frec ( F , A ) ` suc B ) = ( F ` ( frec ( F , A ) ` B ) ) ) $=
      ( vy vg vm vf vx cvv cv wceq cfv wcel wa com wrex wo cab vn cdm csuc cmpt
      c0 suceq eqeq2d fveq2 fveq2d eleq2d anbi12d cbvrexv orbi1i anbi2d rexbidv
      abbii eleq1 orbi12d cbvabv eqtri mpteq2i dmeq eqeq1d fveq1 anbi1d cbvmptv
      abbidv frecsuclem3 ) FABCGHDIKILZUBZUALZUCZMZJLZVKVINZDNZOZPZUAQRZVJUEMZV
      NBOZPZSZJTZUDZEWEIKVJHLZUCZMZFLZWFVINZDNZOZPZHQRZVTWIBOZPZSZFTZUDGKGLZUBZ
      WGMZWIWFWSNZDNZOZPZHQRZWTUEMZWOPZSZFTZUDIKWDWRWDWHVNWKOZPZHQRZWBSZJTWRWCX
      NJVSXMWBVRXLUAHQVKWFMZVMWHVQXKXOVLWGVJVKWFUFUGXOVPWKVNXOVOWJDVKWFVIUHUIUJ
      UKULUMUPXNWQJFVNWIMZXMWNWBWPXPXLWMHQXPXKWLWHVNWIWKUQUNUOXPWAWOVTVNWIBUQUN
      URUSUTVAIGKWRXJVIWSMZWQXIFXQWNXFWPXHXQWMXEHQXQWHXAWLXDXQVJWTWGVIWSVBZVCXQ
      WKXCWIXQWJXBDWFVIWSVDUIUJUKUOXQVTXGWOXQVJWTUEXRVCVEURVGVFUTVH $.
  $}

  ${
    frecrdg.1 $e |- ( ph -> F Fn _V ) $.
    frecrdg.2 $e |- ( ph -> A e. V ) $.
    frecrdg.inc $e |- ( ph -> A. x x C_ ( F ` x ) ) $.
    $d A x y z $.  $d F x y z $.  $d V x $.  $d ph x y $.
    $( Transfinite recursion restricted to omega.

       Given a suitable characteristic function, ~ df-frec produces the same
       results as ~ df-irdg restricted to ` _om ` .

       Presumably the theorem would also hold if ` F Fn _V ` were changed to
       ` A. z ( F `` z ) e. _V ` .  (Contributed by Jim Kingdon,
       29-Aug-2019.) $)
    frecrdg $p |- ( ph -> frec ( F , A ) = ( rec ( F , A ) |` _om ) ) $=
      ( vz com cfv cvv wcel wfn syl con0 wceq c0 fveq2 adantr vy cfrec crdg wal
      cv vex funfvex funfni mpan2 alrimiv frecfnom syl2anc wss rdgifnon2 omsson
      cres fnssres sylancl csuc eqeq12d frec0g peano1 fvres ax-mp syl5eq eqtr4d
      rdg0g wi wa simpr ad2antlr eqtrd fveq2d jca frecsuc 3expa nnon rdgisucinc
      sylan 3eqtr4d peano2 ex expcom finds2 impcom eqfnfvd ) ABJDCUBZDCUCZJUPZA
      IUEZDKLMZIUDZCEMZWGJNADLNZWLFWNWKIWNWJLMWKIUFWKLWJDWJDUGUHUIUJOZGICDEUKUL
      AWHPNZJPUMWIJNAWLWMWPWOGICDEUNULUOPJWHUQURBUEZJMAWQWGKZWQWIKZQZWTRWGKZRWI
      KZQUAUEZWGKZXCWIKZQZXCUSZWGKZXGWIKZQZABUAWQRQWRXAWSXBWQRWGSWQRWISUTWQXCQW
      RXDWSXEWQXCWGSWQXCWISUTWQXGQWRXHWSXIWQXGWGSWQXGWISUTAXACXBAWMXACQGCDEVAOA
      XBRWHKZCRJMXBXKQVBRJWHVCVDAWMXKCQGCEDVGOVEVFAXCJMZXFXJVHAXLVIZXFXJXMXFVIZ
      XHXGWHKZXIXNXDDKZXCWHKZDKZXHXOXNXDXQDXNXDXEXQXMXFVJXLXEXQQAXFXCJWHVCVKVLV
      MXMXHXPQZXFAWLWMVIXLXSAWLWMWOGVNWLWMXLXSICXCDEVOVPVSTXMXOXRQXFXMBCXCDEAWN
      XLFTAWMXLGTXMXLXCPMAXLVJXCVQOAWQWQDKUMBUDXLHTVRTVTXLXIXOQZAXFXLXGJMXTXCWA
      XGJWHVCOVKVFWBWCWDWEWF $.
  $}


  ${
    $d A x y z $.  $d B x $.  $d F x y z $.  $d S x y z $.  $d ph x y z $.
    freccl.ex $e |- ( ph -> A. z ( F ` z ) e. _V ) $.
    freccl.a $e |- ( ph -> A e. S ) $.
    freccl.cl $e |- ( ( ph /\ z e. S ) -> ( F ` z ) e. S ) $.
    freccl.b $e |- ( ph -> B e. _om ) $.
    $( Closure for finite recursion.  (Contributed by Jim Kingdon,
       25-May-2020.) $)
    freccl $p |- ( ph -> ( frec ( F , A ) ` B ) e. S ) $=
      ( vx com wcel cfv cv wi wceq fveq2 eleq1d adantr cfrec imbi2d csuc frec0g
      vy c0 syl eqeltrd wa wex cvv wfn wal frecfnom syl2anc funfvex sylan isset
      funfni sylib ex wb eleq1 adantl 3imtr3d exlimdv mpd simpr frecsuc syl3anc
      sylibrd expcom finds2 vtoclga mpcom ) DLMADFCUAZNZEMZJAKOZVPNZEMZPAVRPKDL
      VSDQZWAVRAWBVTVQEVSDVPRSUBWAUFVPNZEMUEOZVPNZEMZWDUCZVPNZEMZAKUEVSUFQVTWCE
      VSUFVPRSVSWDQVTWEEVSWDVPRSVSWGQVTWHEVSWGVPRSAWCCEACEMZWCCQHCFEUDUGHUHAWDL
      MZWFWIPAWKUIZWFWEFNZEMZWIWLBOZWEQZBUJZWFWNPZWLWEUKMZWQAVPLULZWKWSAWOFNZUK
      MBUMZWJWTGHBCFEUNUOWSLWDVPWDVPUPUSUQBWEURUTAWQWRPWKAWPWRBAWPWRAWPUIWOEMZX
      AEMZWFWNAXCXDPWPAXCXDIVATWPXCWFVBAWOWEEVCVDWPXDWNVBAWPXAWMEWOWEFRSVDVEVAV
      FTVGWLWHWMEWLXBWJWKWHWMQAXBWKGTAWJWKHTAWKVHBCWDFEVIVJSVKVLVMVNVO $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Ordinal arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c 1o $. $( The ordinal number 1 $)
  $c 2o $. $( The ordinal number 2 $)
  $c 3o $. $( The ordinal number 3 $)
  $c 4o $. $( The ordinal number 4 $)
  $c +o $.  $( Ordinal addition operation (plus subscript o) $)
  $c .o $.  $( Ordinal multiplication operation (center dot subscript o) $)
  $c ^oi $.  $( Ordinal exponentiation operation (caret subscript oi) $)

  $( Extend the definition of a class to include the ordinal number 1. $)
  c1o $a class 1o $.

  $( Extend the definition of a class to include the ordinal number 2. $)
  c2o $a class 2o $.

  $( Extend the definition of a class to include the ordinal number 3. $)
  c3o $a class 3o $.

  $( Extend the definition of a class to include the ordinal number 4. $)
  c4o $a class 4o $.

  $( Extend the definition of a class to include the ordinal addition
     operation. $)
  coa $a class +o $.

  $( Extend the definition of a class to include the ordinal multiplication
     operation. $)
  comu $a class .o $.

  $( Extend the definition of a class to include the ordinal exponentiation
     operation. $)
  coei $a class ^oi $.

  $( Define the ordinal number 1.  (Contributed by NM, 29-Oct-1995.) $)
  df-1o $a |- 1o = suc (/) $.

  $( Define the ordinal number 2.  (Contributed by NM, 18-Feb-2004.) $)
  df-2o $a |- 2o = suc 1o $.

  $( Define the ordinal number 3.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-3o $a |- 3o = suc 2o $.

  $( Define the ordinal number 4.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-4o $a |- 4o = suc 3o $.

  ${
    $d x y z $.
    $( Define the ordinal addition operation.  (Contributed by NM,
       3-May-1995.) $)
    df-oadd $a |- +o = ( x e. On , y e. On |->
                ( rec ( ( z e. _V |-> suc z ) , x ) ` y ) ) $.

    $( Define the ordinal multiplication operation.  (Contributed by NM,
       26-Aug-1995.) $)
    df-omul $a |- .o = ( x e. On , y e. On |->
                ( rec ( ( z e. _V |-> ( z +o x ) ) , (/) ) ` y ) ) $.

    $( Define the ordinal exponentiation operation.

       This definition is similar to a conventional definition of
       exponentiation except that it defines ` (/) ^oi A ` to be ` 1o ` for all
       ` A e. On ` , in order to avoid having different cases for whether the
       base is ` (/) ` or not.  (Contributed by Mario Carneiro, 4-Jul-2019.) $)
    df-oexpi $a |- ^oi = ( x e. On , y e. On |->
                 ( rec ( ( z e. _V |-> ( z .o x ) ) , 1o ) ` y ) ) $.
  $}

  $( Ordinal 1 is an ordinal number.  (Contributed by NM, 29-Oct-1995.) $)
  1on $p |- 1o e. On $=
    ( c1o c0 csuc con0 df-1o 0elon onsuci eqeltri ) ABCDEBFGH $.

  $( Ordinal 2 is an ordinal number.  (Contributed by NM, 18-Feb-2004.)  (Proof
     shortened by Andrew Salmon, 12-Aug-2011.) $)
  2on $p |- 2o e. On $=
    ( c2o c1o csuc con0 df-2o 1on onsuci eqeltri ) ABCDEBFGH $.

  $( Ordinal two is not zero.  (Contributed by Scott Fenton, 17-Jun-2011.) $)
  2on0 $p |- 2o =/= (/) $=
    ( c2o c1o csuc c0 df-2o con0 wcel wne 1on nsuceq0g ax-mp eqnetri ) ABCZDEBF
    GMDHIBFJKL $.

  $( Ordinal 3 is an ordinal number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  3on $p |- 3o e. On $=
    ( c3o c2o csuc con0 df-3o 2on onsuci eqeltri ) ABCDEBFGH $.

  $( Ordinal 3 is an ordinal number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  4on $p |- 4o e. On $=
    ( c4o c3o csuc con0 df-4o 3on onsuci eqeltri ) ABCDEBFGH $.

  $( Expanded value of the ordinal number 1.  (Contributed by NM,
     4-Nov-2002.) $)
  df1o2 $p |- 1o = { (/) } $=
    ( c1o c0 csuc csn df-1o suc0 eqtri ) ABCBDEFG $.

  $( Expanded value of the ordinal number 2.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  df2o3 $p |- 2o = { (/) , 1o } $=
    ( c2o c1o csuc csn cun c0 cpr df-2o df-suc df1o2 uneq1i df-pr eqtr4i 3eqtri
    ) ABCBBDZEZFBGZHBIPFDZOEQBROJKFBLMN $.

  $( Expanded value of the ordinal number 2.  (Contributed by NM,
     29-Jan-2004.) $)
  df2o2 $p |- 2o = { (/) , { (/) } } $=
    ( c2o c0 c1o cpr csn df2o3 df1o2 preq2i eqtri ) ABCDBBEZDFCJBGHI $.

  $( Ordinal one is not equal to ordinal zero.  (Contributed by NM,
     26-Dec-2004.) $)
  1n0 $p |- 1o =/= (/) $=
    ( c1o c0 csn df1o2 0ex snnz eqnetri ) ABCBDBEFG $.

  $( Cartesian products with the singletons of ordinals 0 and 1 are disjoint.
     (Contributed by NM, 2-Jun-2007.) $)
  xp01disj $p |- ( ( A X. { (/) } ) i^i ( C X. { 1o } ) ) = (/) $=
    ( c0 c1o wne csn cxp cin wceq 1n0 necomi xpsndisj ax-mp ) CDEACFGBDFGHCIDCJ
    KACBDLM $.

  $( Two ways to express that an ordinal class is positive.  (Contributed by
     NM, 21-Dec-2004.) $)
  ordgt0ge1 $p |- ( Ord A -> ( (/) e. A <-> 1o C_ A ) ) $=
    ( word c0 wcel csuc wss c1o con0 0elon ordelsuc mpan df-1o sseq1i syl6bbr
    wb ) ABZCADZCEZAFZGAFCHDPQSOICAHJKGRALMN $.

  $( An ordinal greater than or equal to 1 is nonzero.  (Contributed by Jim
     Kingdon, 26-Jun-2019.) $)
  ordge1n0im $p |- ( Ord A -> ( 1o C_ A -> A =/= (/) ) ) $=
    ( word c1o wss c0 wcel wne ordgt0ge1 ne0i syl6bir ) ABCADEAFAEGAHAEIJ $.

  $( Membership in ordinal one.  (Contributed by NM, 5-Jan-2005.) $)
  el1o $p |- ( A e. 1o <-> A = (/) ) $=
    ( c1o wcel c0 csn wceq df1o2 eleq2i 0ex elsnc2 bitri ) ABCADEZCADFBLAGHADIJ
    K $.

  $( Two ways to say that ` A ` is a nonzero number of the set ` B ` .
     (Contributed by Mario Carneiro, 21-May-2015.) $)
  dif1o $p |- ( A e. ( B \ 1o ) <-> ( A e. B /\ A =/= (/) ) ) $=
    ( c1o cdif wcel c0 csn wne wa df1o2 difeq2i eleq2i eldifsn bitri ) ABCDZEAB
    FGZDZEABEAFHIOQACPBJKLABFMN $.

  $( Closure of the pair swapping function on ` 2o ` .  (Contributed by Mario
     Carneiro, 27-Sep-2015.) $)
  2oconcl $p |- ( A e. 2o -> ( 1o \ A ) e. 2o ) $=
    ( c1o cdif c2o wcel c0 cpr wceq wo elpri difeq2 syl6eq difid orim12i orcomd
    dif0 syl con0 cvv df2o3 1on difexg ax-mp elpr sylibr syl6eleqr eleq2s ) BAC
    ZDEAFBGZDAUIEZUHUIDUJUHFHZUHBHZIZUHUIEUJAFHZABHZIZUMAFBJUPULUKUNULUOUKUNUHB
    FCBAFBKBPLUOUHBBCFABBKBMLNOQUHFBBREUHSEUABARUBUCUDUETUFTUG $.

  $( Ordinal zero is less than ordinal one.  (Contributed by NM,
     5-Jan-2005.) $)
  0lt1o $p |- (/) e. 1o $=
    ( c0 c1o wcel wceq eqid el1o mpbir ) ABCAADAEAFG $.

  $( The characteristic function for ordinal addition is defined everywhere.
     (Contributed by Jim Kingdon, 27-Jul-2019.) $)
  oafnex $p |- ( x e. _V |-> suc x ) Fn _V $=
    ( cvv cv csuc cmpt vex sucex eqid fnmpti ) ABACZDZABKEZJAFGLHI $.

  ${
    $d x z $.
    sucinc.1 $e |- F = ( z e. _V |-> suc z ) $.
    $( Successor is increasing.  (Contributed by Jim Kingdon, 25-Jun-2019.) $)
    sucinc $p |- A. x x C_ ( F ` x ) $=
      ( cv cfv wss csuc sssucid cvv wcel wceq sucex suceq fvmptg mp2an sseqtr4i
      vex ax-gen ) AEZTCFZGATTHZUATITJKUBJKUAUBLARZTUCMBTBEZHUBJJCUDTNDOPQS $.

    $d A z $.  $d B z $.
    $( Successor is increasing.  (Contributed by Jim Kingdon, 14-Jul-2019.) $)
    sucinc2 $p |- ( ( B e. On /\ A e. B ) ->
        ( F ` A ) C_ ( F ` B ) ) $=
      ( con0 wcel wa csuc cfv wss word syl wceq cvv sucexg suceq fvmptg syl2anc
      elex wi eloni ordsucss imp sssucid syl6ss onelon cv adantr 3sstr4d ) CFGZ
      BCGZHZBIZCIZBDJZCDJZUMUNCUOUKULUNCKZUKCLULURUACUBBCUCMUDCUEUFUMBFGZUPUNNZ
      CBUGUSBOGUNOGUTBFTBFPABAUHZIZUNOODVABQERSMUKUQUONZULUKCOGUOOGVCCFTCFPACVB
      UOOODVACQERSUIUJ $.
  $}

  ${
    $d x y z $.
    $( Functionality and domain of ordinal addition.  (Contributed by NM,
       26-Aug-1995.)  (Proof shortened by Mario Carneiro, 3-Jul-2019.) $)
    fnoa $p |- +o Fn ( On X. On ) $=
      ( vx vy vz con0 cvv csuc cmpt crdg cfv coa df-oadd wcel vex oafnex rdgexg
      cv ax-mp fnmpt2i ) ABDDBPZCECPFGZAPZHIZJABCKSELUBELBMUASTEAMCNOQR $.

    $( Ordinal addition is a set.  (Contributed by Mario Carneiro,
       3-Jul-2019.) $)
    oaexg $p |- ( ( A e. V /\ B e. W ) -> ( A +o B ) e. _V ) $=
      ( vy vz vx cv cvv csuc cmpt crdg cfv wcel wal coa co vex oafnex con0 gen2
      rdgexg ax-mp df-oadd mpt2fvex mp3an1 ) EHZFIFHJKZGHZLMZINZEOGOACNBDNABPQI
      NUKGEUGINUKERUIUGUHIGRFSUBUCUAGETTUJABPICDGEFUDUEUF $.
  $}

  ${
    $d x A $.  $d x V $.
    $( The characteristic function for ordinal multiplication is defined
       everywhere.  (Contributed by Jim Kingdon, 23-Aug-2019.) $)
    omfnex $p |- ( A e. V -> ( x e. _V |-> ( x +o A ) ) Fn _V ) $=
      ( wcel cv coa cvv wral cmpt wfn vex oaexg mpan ralrimivw eqid fnmpt syl
      co ) BCDZAEZBFRZGDZAGHAGUAIZGJSUBAGTGDSUBAKTBGCLMNAGUAUCGUCOPQ $.
  $}

  ${
    $d x y z $.
    $( Functionality and domain of ordinal multiplication.  (Contributed by NM,
       26-Aug-1995.)  (Revised by Mario Carneiro, 3-Jul-2019.) $)
    fnom $p |- .o Fn ( On X. On ) $=
      ( vx vy vz con0 cv cvv coa co cmpt crdg cfv comu df-omul wcel vex 0ex wfn
      c0 omfnex ax-mp rdgexg fnmpt2i ) ABDDBEZCFCEAEZGHIZRJKZLABCMUCFNUFFNBORUC
      UEFPUDFNUEFQAOCUDFSTUATUB $.

    $( Ordinal multiplication is a set.  (Contributed by Mario Carneiro,
       3-Jul-2019.) $)
    omexg $p |- ( ( A e. V /\ B e. W ) -> ( A .o B ) e. _V ) $=
      ( vy vz vx cv cvv coa co cmpt c0 crdg wcel wal comu vex ax-mp con0 omfnex
      cfv 0ex wfn rdgexg gen2 df-omul mpt2fvex mp3an1 ) EHZFIFHGHZJKLZMNUBZIOZE
      PGPACOBDOABQKIOUNGEUJIOUNERMUJULIUCUKIOULIUDGRFUKIUASUESUFGETTUMABQICDGEF
      UGUHUI $.

    $( Functionality and domain of ordinal exponentiation.  (Contributed by
       Mario Carneiro, 29-May-2015.)  (Revised by Mario Carneiro,
       3-Jul-2019.) $)
    fnoei $p |- ^oi Fn ( On X. On ) $=
      ( vx vy vz con0 cv cvv comu co cmpt c1o crdg cfv coei df-oexpi wcel elexi
      vex 1on omexg mp2an eqid fnmpti rdgexg ax-mp fnmpt2i ) ABDDBEZCFCEZAEZGHZ
      IZJKLZMABCNUFFOUKFOBQJUFUJFJDRPCFUIUJUGFOUHFOUIFOCQAQUGUHFFSTUJUAUBUCUDUE
      $.

    $( Ordinal exponentiation is a set.  (Contributed by Mario Carneiro,
       3-Jul-2019.) $)
    oeiexg $p |- ( ( A e. V /\ B e. W ) -> ( A ^oi B ) e. _V ) $=
      ( vy vz vx cv cvv comu co cmpt c1o crdg cfv wcel wal coei vex con0 fnmpti
      1on elexi omexg mp2an eqid rdgexg ax-mp gen2 df-oexpi mpt2fvex mp3an1 ) E
      HZFIFHZGHZJKZLZMNOZIPZEQGQACPBDPABRKIPUSGEUMIPUSESMUMUQIMTUBUCFIUPUQUNIPU
      OIPUPIPFSGSUNUOIIUDUEUQUFUAUGUHUIGETTURABRICDGEFUJUKUL $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    $( Value of ordinal addition.  (Contributed by NM, 3-May-1995.)  (Revised
       by Mario Carneiro, 8-Sep-2013.) $)
    oav $p |- ( ( A e. On /\ B e. On ) ->
             ( A +o B ) = ( rec ( ( x e. _V |-> suc x ) , A ) ` B ) ) $=
      ( vy vz con0 wcel cvv cv csuc cmpt crdg cfv co wceq oafnex rdgexgg rdgeq2
      coa fveq1d fveq2 df-oadd ovmpt2g mpd3an3 ) BFGCFGCAHAIJKZBLZMZHGBCSNUGOBC
      UEFFAPQDEBCFFEIZUEDIZLZMUGSUHUFMHUIBOUHUJUFUIBUERTUHCUFUADEAUBUCUD $.

    $( Value of ordinal multiplication.  (Contributed by NM, 17-Sep-1995.)
       (Revised by Mario Carneiro, 23-Aug-2014.) $)
    omv $p |- ( ( A e. On /\ B e. On ) ->
     ( A .o B ) = ( rec ( ( x e. _V |-> ( x +o A ) ) , (/) ) ` B ) ) $=
      ( vy vz con0 wcel cvv cv coa co cmpt crdg cfv comu wceq 0elon wfn omfnex
      c0 rdgexggg syl3an1 mp3an2 oveq2 mpteq2dv rdgeq1 syl fveq1d fveq2 df-omul
      ovmpt2g mpd3an3 ) BFGZCFGZCAHAIZBJKZLZTMZNZHGZBCOKUSPUMTFGZUNUTQUMUQHRVAU
      NUTABFSTCUQFFUAUBUCDEBCFFEIZAHUODIZJKZLZTMZNUSOVBURNHVCBPZVBVFURVGVEUQPVF
      URPVGAHVDUPVCBUOJUDUETVEUQUFUGUHVBCURUIDEAUJUKUL $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    $( Value of ordinal exponentiation.  (Contributed by Jim Kingdon,
       9-Jul-2019.) $)
    oeiv $p |- ( ( A e. On /\ B e. On ) -> ( A ^oi B ) =
        ( rec ( ( x e. _V |-> ( x .o A ) ) , 1o ) ` B ) ) $=
      ( vy vz con0 wcel cvv cv comu co cmpt c1o crdg cfv coei wceq 1on wfn syl
      wral vex omexg mpan ralrimivw eqid fnmpt rdgexggg syl3an1 mp3an2 mpteq2dv
      oveq2 rdgeq1 fveq1d fveq2 df-oexpi ovmpt2g mpd3an3 ) BFGZCFGZCAHAIZBJKZLZ
      MNZOZHGZBCPKVEQUSMFGZUTVFRUSVCHSZVGUTVFUSVBHGZAHUAVHUSVIAHVAHGUSVIAUBVABH
      FUCUDUEAHVBVCHVCUFUGTMCVCFFUHUIUJDEBCFFEIZAHVADIZJKZLZMNZOVEPVJVDOHVKBQZV
      JVNVDVOVMVCQVNVDQVOAHVLVBVKBVAJULUKMVMVCUMTUNVJCVDUODEAUPUQUR $.
  $}

  ${
    $d x y A $.
    $( Addition with zero.  Proposition 8.3 of [TakeutiZaring] p. 57.
       (Contributed by NM, 3-May-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    oa0 $p |- ( A e. On -> ( A +o (/) ) = A ) $=
      ( vx con0 wcel c0 coa co cvv cv csuc cmpt crdg cfv wceq 0elon mpan2 rdg0g
      oav eqtrd ) ACDZAEFGZEBHBIJKZALMZATECDUAUCNOBAERPACUBQS $.

    $( Ordinal multiplication with zero.  Definition 8.15 of [TakeutiZaring]
       p. 62.  (Contributed by NM, 17-Sep-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    om0 $p |- ( A e. On -> ( A .o (/) ) = (/) ) $=
      ( vx con0 wcel c0 comu co cvv coa cmpt crdg cfv wceq 0elon omv mpan2 rdg0
      cv 0ex syl6eq ) ACDZAEFGZEBHBRAIGJZEKLZEUAECDUBUDMNBAEOPEUCSQT $.

    $( Ordinal exponentiation with zero exponent.  Definition 8.30 of
       [TakeutiZaring] p. 67.  (Contributed by NM, 31-Dec-2004.)  (Revised by
       Mario Carneiro, 8-Sep-2013.) $)
    oei0 $p |- ( A e. On -> ( A ^oi (/) ) = 1o ) $=
      ( vx con0 wcel c0 coei co cvv cv comu cmpt c1o crdg wceq 0elon oeiv mpan2
      cfv 1on rdg0g ax-mp syl6eq ) ACDZAEFGZEBHBIAJGKZLMRZLUCECDUDUFNOBAEPQLCDU
      FLNSLCUETUAUB $.
  $}

  ${
    $d x y z w A $.  $d x y B $.
    $( Closure law for ordinal addition.  Proposition 8.2 of [TakeutiZaring]
       p. 57.  (Contributed by NM, 5-May-1995.)  (Constructive proof by Jim
       Kingdon, 26-Jul-2019.) $)
    oacl $p |- ( ( A e. On /\ B e. On ) -> ( A +o B ) e. On ) $=
      ( vz vw con0 wcel wa coa co cvv cv csuc cmpt crdg cfv oav wfn oafnex a1i
      id wral wceq vex suceq eqid sucex fvmpt ax-mp eleq1i ralbii mprgbir rdgon
      suceloni eqeltrd ) AEFZBEFGABHIBCJCKZLZMZANOECABPUODABURURJQUOCRSUOTDKZUR
      OZEFZDEUAZUOVBUSLZEFZDEVAVDDEUTVCEUSJFUTVCUBDUCZCUSUQVCJURUPUSUDURUEUSVEU
      FUGUHUIUJUSUMUKSULUN $.

    $( Closure law for ordinal multiplication.  Proposition 8.16 of
       [TakeutiZaring] p. 57.  (Contributed by NM, 3-Aug-2004.)  (Constructive
       proof by Jim Kingdon, 26-Jul-2019.) $)
    omcl $p |- ( ( A e. On /\ B e. On ) -> ( A .o B ) e. On ) $=
      ( vx vy con0 wcel wa comu co cvv cv coa cmpt c0 crdg cfv omv omfnex 0elon
      eqeltrd a1i wceq oacl oveq1 eqid fvmptg sylancr ancoms ralrimiva rdgon
      vex ) AEFZBEFGABHIBCJCKZALIZMZNOPECABQULDNBUOCAERNEFULSUAULDKZUOPZEFZDEUP
      EFZULURUSULGZUQUPALIZEUTUPJFVAEFUQVAUBDUKUPAUCZCUPUNVAJEUOUMUPALUDUOUEUFU
      GVBTUHUIUJT $.

    $( Closure law for ordinal exponentiation.  (Contributed by Jim Kingdon,
       26-Jul-2019.) $)
    oeicl $p |- ( ( A e. On /\ B e. On ) -> ( A ^oi B ) e. On ) $=
      ( vx vy con0 wcel wa coei cvv comu cmpt c1o crdg cfv vex mpan syl eqeltrd
      co cv oeiv wral wfn omexg ralrimivw eqid fnmpt 1on wceq omcl oveq1 fvmptg
      a1i ancoms ralrimiva rdgon ) AEFZBEFGABHSBCICTZAJSZKZLMNECABUAUQDLBUTUQUS
      IFZCIUBUTIUCUQVACIURIFUQVACOURAIEUDPUECIUSUTIUTUFZUGQLEFUQUHUMUQDTZUTNZEF
      ZDEVCEFZUQVEVFUQGZVDVCAJSZEVGVHEFZVDVHUIZVCAUJZVCIFVIVJDOCVCUSVHIEUTURVCA
      JUKVBULPQVKRUNUOUPR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Value of ordinal addition.  (Contributed by Mario Carneiro and Jim
       Kingdon, 12-Aug-2019.) $)
    oav2 $p |- ( ( A e. On /\ B e. On ) ->
        ( A +o B ) = ( A u. U_ x e. B suc ( A +o x ) ) ) $=
      ( vy con0 wcel wa cvv cv csuc cmpt crdg cfv ciun cun coa co wfn wceq oav
      oafnex rdgival mp3an1 onelon vex oaexg mpan2 sucexg syl suceq eqid fvmptg
      syl2anc adantr fveq2d eqtr3d sylan2 anassrs iuneq2dv uneq2d 3eqtr4d ) BEF
      ZCEFZGZCDHDIZJZKZBLZMZBACAIZVHMZVGMZNZOZBCPQBACBVJPQZJZNZOVGHRVBVCVIVNSDU
      AABCVGEUBUCDBCTVDVQVMBVDACVPVLVBVCVJCFZVPVLSZVCVRGVBVJEFZVSCVJUDVBVTGZVOV
      GMZVPVLVBWBVPSZVTVBVOHFZVPHFZWCVBVJHFWDAUEBVJEHUFUGZVBWDWEWFVOHUHUIDVOVFV
      PHHVGVEVOUJVGUKULUMUNWAVOVKVGDBVJTUOUPUQURUSUTVA $.

    $( Addition with successor.  Definition 8.1 of [TakeutiZaring] p. 56.
       (Contributed by NM, 3-May-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    oasuc $p |- ( ( A e. On /\ B e. On ) ->
                ( A +o suc B ) = suc ( A +o B ) ) $=
      ( vx con0 wcel wa csuc coa co cun cv ciun wceq suceloni sylan2 csn df-suc
      oav2 iuneq1 uneq2d ax-mp iunxun eqtri oveq2 suceq syl syl5eq adantl eqtrd
      iunxsng unass syl6eqr uneq1d eqtr4d wss sssucid ssequn1 mpbi syl6eq ) ADE
      ZBDEZFZABGZHIZABHIZVEGZJZVFVBVDACBACKZHIZGZLZJZVFJZVGVBVDAVKVFJZJZVMVBVDA
      CVCVJLZJZVOVAUTVCDEVDVQMBNCAVCROVAVQVOMUTVAVPVNAVAVPVKCBPZVJLZJZVNVPCBVRJ
      ZVJLZVTVCWAMVPWBMBQCVCWAVJSUACBVRVJUBUCVAVSVFVKCBVJVFDVHBMVIVEMVJVFMVHBAH
      UDVIVEUEUFUJTUGTUHUIAVKVFUKULVBVEVLVFCABRUMUNVEVFUOVGVFMVEUPVEVFUQURUS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Value of ordinal multiplication.  (Contributed by Jim Kingdon,
       23-Aug-2019.) $)
    omv2 $p |- ( ( A e. On /\ B e. On ) ->
        ( A .o B ) = U_ x e. B ( ( A .o x ) +o A ) ) $=
      ( vy con0 wcel wa comu co c0 coa ciun cun cvv cmpt cfv wceq omv syl2anc
      cv crdg wfn omfnex 0elon rdgival mp3an2 sylan omexg omcl simpl oacl oveq1
      onelon eqid fvmptg fveq2d eqtr3d sylan2 anassrs iuneq2dv uneq2d uncom un0
      3eqtr4d eqtri syl6eq ) BEFZCEFZGZBCHIZJACBATZHIZBKIZLZMZVNVICDNDTZBKIZOZJ
      UAZPZJACVKVSPZVRPZLZMZVJVOVGVRNUBZVHVTWDQZDBEUCWEJEFVHWFUDAJCVREUEUFUGDBC
      RVIVNWCJVIACVMWBVGVHVKCFZVMWBQZVHWGGVGVKEFZWHCVKUMVGWIGZVLVRPZVMWBWJVLNFV
      MEFZWKVMQBVKEEUHWJVLEFVGWLBVKUIVGWIUJVLBUKSDVLVQVMNEVRVPVLBKULVRUNUOSWJVL
      WAVRDBVKRUPUQURUSUTVAVDVOVNJMVNJVNVBVNVCVEVF $.
  $}

  $( Addition with successor.  Theorem 4I(A2) of [Enderton] p. 79.
     (Contributed by Mario Carneiro, 16-Nov-2014.) $)
  onasuc $p |- ( ( A e. On /\ B e. _om ) ->
                ( A +o suc B ) = suc ( A +o B ) ) $=
    ( com wcel con0 csuc coa co wceq nnon oasuc sylan2 ) BCDAEDBEDABFGHABGHFIBJ
    ABKL $.

  $( Addition with 1 is same as successor.  Proposition 4.34(a) of [Mendelson]
     p. 266.  (Contributed by NM, 29-Oct-1995.)  (Revised by Mario Carneiro,
     16-Nov-2014.) $)
  oa1suc $p |- ( A e. On -> ( A +o 1o ) = suc A ) $=
    ( con0 wcel c1o coa co c0 csuc df-1o oveq2i wceq peano1 onasuc mpan2 syl5eq
    com oa0 suceq syl eqtrd ) ABCZADEFZAGEFZHZAHZUAUBAGHZEFZUDDUFAEIJUAGPCUGUDK
    LAGMNOUAUCAKUDUEKAQUCARST $.

  $( 1 + 1 = 2 for ordinal numbers.  (Contributed by NM, 18-Feb-2004.) $)
  o1p1e2 $p |- ( 1o +o 1o ) = 2o $=
    ( c1o coa co csuc c2o con0 wcel wceq 1on oa1suc ax-mp df-2o eqtr4i ) AABCZA
    DZEAFGNOHIAJKLM $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Weak ordering property of ordinal addition.  (Contributed by Jim
       Kingdon, 27-Jul-2019.) $)
    oawordi $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( A C_ B -> ( C +o A ) C_ ( C +o B ) ) ) $=
      ( vx con0 wcel w3a wss coa co wa cvv cv csuc cmpt cfv wceq jca oav syl ex
      crdg wfn oafnex a1i simpl3 simpl1 simpl2 simpr rdgss 3sstr4d ) AEFZBEFZCE
      FZGZABHZCAIJZCBIJZHUOUPKZADLDMNOZCUBZPZBVAPZUQURUSABUTCEUTLUCUSDUDUEULUMU
      NUPUFZULUMUNUPUGZULUMUNUPUHZUOUPUIUJUSUNULKUQVBQUSUNULVDVERDCASTUSUNUMKUR
      VCQUSUNUMVDVFRDCBSTUKUA $.
  $}

  $( An ordinal is less than or equal to its sum with another.  Part of
     Exercise 5 of [TakeutiZaring] p. 62.  (Contributed by NM, 6-Dec-2004.) $)
  oaword1 $p |- ( ( A e. On /\ B e. On ) -> A C_ ( A +o B ) ) $=
    ( con0 wcel wa c0 coa co wceq oa0 adantr wss wi 0elon oawordi 3com13 mp3an3
    0ss mpi eqsstr3d ) ACDZBCDZEZAAFGHZABGHZUAUDAIUBAJKUCFBLZUDUELZBRUAUBFCDZUF
    UGMZNUHUBUAUIFBAOPQST $.

  ${
    $d x y A $.  $d x y B $.
    $( Multiplication with successor.  Definition 8.15 of [TakeutiZaring]
       p. 62.  (Contributed by NM, 17-Sep-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    omsuc $p |- ( ( A e. On /\ B e. On ) ->
                ( A .o suc B ) = ( ( A .o B ) +o A ) ) $=
      ( vx con0 wcel wa csuc comu co coa cun ciun wceq csn df-suc iuneq1 iunxun
      cv ax-mp omv2 oveq1d iunxsng uneq2d syl5eq adantl suceloni sylan2 3eqtr4d
      eqtri oveq2 uneq1d omcl simpl wss oaword1 ssequn1 sylib syl2anc eqtrd ) A
      DEZBDEZFZABGZHIZABHIZVEAJIZKZVFVBCVCACRZHIZAJIZLZCBVJLZVFKZVDVGVAVKVMMUTV
      AVKVLCBNZVJLZKZVMVKCBVNKZVJLZVPVCVQMVKVRMBOCVCVQVJPSCBVNVJQUIVAVOVFVLCBVJ
      VFDVHBMVIVEAJVHBAHUJUAUBUCUDUEVAUTVCDEVDVKMBUFCAVCTUGVBVEVLVFCABTUKUHVBVE
      DEZUTVGVFMZABULUTVAUMVSUTFVEVFUNVTVEAUOVEVFUPUQURUS $.
  $}

  $( Multiplication with successor.  Theorem 4J(A2) of [Enderton] p. 80.
     (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
     14-Nov-2014.) $)
  onmsuc $p |- ( ( A e. On /\ B e. _om ) ->
                ( A .o suc B ) = ( ( A .o B ) +o A ) ) $=
    ( com wcel con0 csuc comu co coa wceq nnon omsuc sylan2 ) BCDAEDBEDABFGHABG
    HAIHJBKABLM $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                      Natural number arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Addition with zero.  Theorem 4I(A1) of [Enderton] p. 79.  (Contributed by
     NM, 20-Sep-1995.) $)
  nna0 $p |- ( A e. _om -> ( A +o (/) ) = A ) $=
    ( com wcel con0 c0 coa co wceq nnon oa0 syl ) ABCADCAEFGAHAIAJK $.

  $( Multiplication with zero.  Theorem 4J(A1) of [Enderton] p. 80.
     (Contributed by NM, 20-Sep-1995.) $)
  nnm0 $p |- ( A e. _om -> ( A .o (/) ) = (/) ) $=
    ( com wcel con0 c0 comu co wceq nnon om0 syl ) ABCADCAEFGEHAIAJK $.

  $( Addition with successor.  Theorem 4I(A2) of [Enderton] p. 79.
     (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
     14-Nov-2014.) $)
  nnasuc $p |- ( ( A e. _om /\ B e. _om ) ->
                ( A +o suc B ) = suc ( A +o B ) ) $=
    ( com wcel con0 csuc coa co wceq nnon onasuc sylan ) ACDAEDBCDABFGHABGHFIAJ
    ABKL $.

  $( Multiplication with successor.  Theorem 4J(A2) of [Enderton] p. 80.
     (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
     14-Nov-2014.) $)
  nnmsuc $p |- ( ( A e. _om /\ B e. _om ) ->
                ( A .o suc B ) = ( ( A .o B ) +o A ) ) $=
    ( com wcel con0 csuc comu co coa wceq nnon onmsuc sylan ) ACDAEDBCDABFGHABG
    HAIHJAKABLM $.

  ${
    $d x y A $.  $d x B $.
    $( Addition to zero.  Remark in proof of Theorem 4K(2) of [Enderton]
       p. 81.  (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
       14-Nov-2014.) $)
    nna0r $p |- ( A e. _om -> ( (/) +o A ) = A ) $=
      ( vx vy c0 cv coa co wceq csuc oveq2 id eqeq12d con0 wcel 0elon oa0 ax-mp
      com peano1 nnasuc mpan suceq eqeq2d syl5ibcom finds ) DBEZFGZUFHDDFGZDHZD
      CEZFGZUJHZDUJIZFGZUMHZDAFGZAHBCAUFDHZUGUHUFDUFDDFJUQKLUFUJHZUGUKUFUJUFUJD
      FJURKLUFUMHZUGUNUFUMUFUMDFJUSKLUFAHZUGUPUFAUFADFJUTKLDMNUIODPQUJRNZUNUKIZ
      HZULUODRNVAVCSDUJTUAULVBUMUNUKUJUBUCUDUE $.

    $( Multiplication with zero.  Exercise 16 of [Enderton] p. 82.
       (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnm0r $p |- ( A e. _om -> ( (/) .o A ) = (/) ) $=
      ( vx vy c0 cv comu co wceq csuc oveq2 eqeq1d con0 0elon om0 ax-mp com coa
      wcel oveq1 oa0 syl6eq peano1 nnmsuc mpan syl5ibr finds ) DBEZFGZDHDDFGZDH
      ZDCEZFGZDHZDUKIZFGZDHZDAFGZDHBCAUGDHUHUIDUGDDFJKUGUKHUHULDUGUKDFJKUGUNHUH
      UODUGUNDFJKUGAHUHUQDUGADFJKDLRZUJMDNOUMUPUKPRZULDQGZDHUMUTDDQGZDULDDQSURV
      ADHMDTOUAUSUOUTDDPRUSUOUTHUBDUKUCUDKUEUF $.

    $( Closure of addition of natural numbers.  Proposition 8.9 of
       [TakeutiZaring] p. 59.  (Contributed by NM, 20-Sep-1995.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    nnacl $p |- ( ( A e. _om /\ B e. _om ) -> ( A +o B ) e. _om ) $=
      ( vx vy com wcel coa co cv wceq oveq2 eleq1d imbi2d csuc nna0 ibir peano2
      wi c0 wa nnasuc syl5ibr expcom finds2 vtoclga impcom ) BEFAEFZABGHZEFZUGA
      CIZGHZEFZRUGUIRCBEUJBJZULUIUGUMUKUHEUJBAGKLMULASGHZEFZADIZGHZEFZAUPNZGHZE
      FZUGCDUJSJUKUNEUJSAGKLUJUPJUKUQEUJUPAGKLUJUSJUKUTEUJUSAGKLUGUOUGUNAEAOLPU
      GUPEFZURVARURVAUGVBTZUQNZEFUQQVCUTVDEAUPUALUBUCUDUEUF $.

    $( Closure of multiplication of natural numbers.  Proposition 8.17 of
       [TakeutiZaring] p. 63.  (Contributed by NM, 20-Sep-1995.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    nnmcl $p |- ( ( A e. _om /\ B e. _om ) -> ( A .o B ) e. _om ) $=
      ( vx vy wcel comu co cv wi wceq oveq2 eleq1d imbi2d c0 csuc nnm0 syl6eqel
      com peano1 expcom coa nnacl adantr nnmsuc sylibrd finds2 vtoclga impcom
      wa ) BREAREZABFGZREZUJACHZFGZREZIUJULICBRUMBJZUOULUJUPUNUKRUMBAFKLMUOANFG
      ZREADHZFGZREZAUROZFGZREZUJCDUMNJUNUQRUMNAFKLUMURJUNUSRUMURAFKLUMVAJUNVBRU
      MVAAFKLUJUQNRAPSQUJURREZUTVCIUJVDUIZUTUSAUAGZREZVCUJUTVGIVDUTUJVGUSAUBTUC
      VEVBVFRAURUDLUETUFUGUH $.
  $}

  ${
    nncli.1 $e |- A e. _om $.
    nncli.2 $e |- B e. _om $.
    $( ` _om ` is closed under addition.  Inference form of ~ nnacl .
       (Contributed by Scott Fenton, 20-Apr-2012.) $)
    nnacli $p |- ( A +o B ) e. _om $=
      ( com wcel coa co nnacl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( ` _om ` is closed under multiplication.  Inference form of ~ nnmcl .
       (Contributed by Scott Fenton, 20-Apr-2012.) $)
    nnmcli $p |- ( A .o B ) e. _om $=
      ( com wcel comu co nnmcl mp2an ) AEFBEFABGHEFCDABIJ $.

  $}

  ${
    $d x y A $.  $d x y z B $.  $d x y z C $.
    $( Addition of natural numbers is commutative.  Theorem 4K(2) of [Enderton]
       p. 81.  (Contributed by NM, 6-May-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnacom $p |- ( ( A e. _om /\ B e. _om ) -> ( A +o B ) = ( B +o A ) ) $=
      ( vx vy com wcel coa co wceq cv wi oveq1 oveq2 eqeq12d c0 csuc nna0 suceq
      syl nnasuc vz imbi2d nna0r eqtr4d wa peano2 syl5ibr expcom finds2 vtoclga
      sylan imp ) AEFBEFZABGHZBAGHZIZUMCJZBGHZBUQGHZIZKUMUPKCAEUQAIZUTUPUMVAURU
      NUSUOUQABGLUQABGMNUBUTOBGHZBOGHZIDJZBGHZBVDGHZIZVDPZBGHZBVHGHZIZUMCDUQOIZ
      URVBUSVCUQOBGLUQOBGMNUQVDIURVEUSVFUQVDBGLUQVDBGMNUQVHIURVIUSVJUQVHBGLUQVH
      BGMNUMVBBVCBUCBQUDUMVDEFZVGVKKVGVKUMVMUEZVEPZVFPZIVEVFRVNVIVOVJVPUMVMVIVO
      IZVMVHUQGHZVDUQGHZPZIZKVMVQKCBEUQBIZWAVQVMWBVRVIVTVOUQBVHGMWBVSVEIVTVOIUQ
      BVDGMVSVERSNUBWAVHOGHZVDOGHZPZIVHUAJZGHZVDWFGHZPZIZVHWFPZGHZVDWKGHZPZIZVM
      CUAVLVRWCVTWEUQOVHGMVLVSWDIVTWEIUQOVDGMVSWDRSNUQWFIZVRWGVTWIUQWFVHGMWPVSW
      HIVTWIIUQWFVDGMVSWHRSNUQWKIZVRWLVTWNUQWKVHGMWQVSWMIVTWNIUQWKVDGMVSWMRSNVM
      WCVHWEVMVHEFZWCVHIVDUFZVHQSVMWDVDIWEVHIVDQWDVDRSUDVMWFEFZWJWOKWJWOVMWTUEZ
      WGPZWIPZIWGWIRXAWLXBWNXCVMWRWTWLXBIWSVHWFTUKXAWMWIIWNXCIVDWFTWMWIRSNUGUHU
      IUJULBVDTNUGUHUIUJUL $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.
    $( Addition of natural numbers is associative.  Theorem 4K(1) of [Enderton]
       p. 81.  (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnaass $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( ( A +o B ) +o C ) = ( A +o ( B +o C ) ) ) $=
      ( vx vy com wcel coa co wceq wa cv wi oveq2 oveq2d eqeq12d c0 csuc nnasuc
      nnacl imbi2d nna0 adantl eqtr4d suceq sylan sylan2 anassrs syl5ibr expcom
      syl eqtrd finds2 vtoclga com12 3impia ) AFGZBFGZCFGZABHIZCHIZABCHIZHIZJZU
      SUQURKZVDVEUTDLZHIZABVFHIZHIZJZMVEVDMDCFVFCJZVJVDVEVKVGVAVIVCVFCUTHNVKVHV
      BAHVFCBHNOPUAVJUTQHIZABQHIZHIZJUTELZHIZABVOHIZHIZJZUTVORZHIZABVTHIZHIZJZV
      EDEVFQJZVGVLVIVNVFQUTHNWEVHVMAHVFQBHNOPVFVOJZVGVPVIVRVFVOUTHNWFVHVQAHVFVO
      BHNOPVFVTJZVGWAVIWCVFVTUTHNWGVHWBAHVFVTBHNOPVEVLUTVNVEUTFGZVLUTJABTZUTUBU
      KURVNUTJUQURVMBAHBUBOUCUDVEVOFGZVSWDMVSWDVEWJKZVPRZVRRZJVPVRUEWKWAWLWCWMV
      EWHWJWAWLJWIUTVOSUFUQURWJWCWMJUQURWJKZKWCAVQRZHIZWMWNWCWPJUQWNWBWOAHBVOSO
      UCWNUQVQFGWPWMJBVOTAVQSUGULUHPUIUJUMUNUOUP $.

    $( Distributive law for natural numbers (left-distributivity).  Theorem
       4K(3) of [Enderton] p. 81.  (Contributed by NM, 20-Sep-1995.)  (Revised
       by Mario Carneiro, 15-Nov-2014.) $)
    nndi $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( A .o ( B +o C ) ) = ( ( A .o B ) +o ( A .o C ) ) ) $=
      ( vx vy com wcel coa co comu wceq wa cv wi oveq2 oveq2d eqeq12d c0 eqtr4d
      csuc imbi2d nna0 adantl nnmcl syl nnm0 adantr oveq1 nnasuc 3adant1 nnmsuc
      w3a nnacl sylan2 3impb eqtrd 3adant2 nnaass syl3an1 syl3an2 exp4b pm2.43a
      3exp com4r pm2.43i 3imp syl5ibr com3r impd finds2 vtoclga expdcom ) AFGZB
      FGZCFGZABCHIZJIZABJIZACJIZHIZKZVOVMVNWAVMVNLZABDMZHIZJIZVRAWCJIZHIZKZNWBW
      ANDCFWCCKZWHWAWBWIWEVQWGVTWIWDVPAJWCCBHOPWIWFVSVRHWCCAJOPQUAWHABRHIZJIZVR
      ARJIZHIZKABEMZHIZJIZVRAWNJIZHIZKZABWNTZHIZJIZVRAWTJIZHIZKZWBDEWCRKZWEWKWG
      WMXFWDWJAJWCRBHOPXFWFWLVRHWCRAJOPQWCWNKZWEWPWGWRXGWDWOAJWCWNBHOPXGWFWQVRH
      WCWNAJOPQWCWTKZWEXBWGXDXHWDXAAJWCWTBHOPXHWFXCVRHWCWTAJOPQWBWKVRRHIZWMWBWK
      VRXIWBWJBAJVNWJBKVMBUBUCPWBVRFGZXIVRKABUDZVRUBUESWBWLRVRHVMWLRKVNAUFUGPSW
      NFGZVMVNWSXENZVMVNXLXMVMVNXLXMWSXEVMVNXLULZWPAHIZWRAHIZKWPWRAHUHXNXBXOXDX
      PXNXBAWOTZJIZXOXNXAXQAJVNXLXAXQKVMBWNUIUJPVMVNXLXRXOKZVNXLLVMWOFGXSBWNUMA
      WOUKUNUOUPXNXDVRWQAHIZHIZXPXNXCXTVRHVMXLXCXTKVNAWNUKUQPVMVNXLXPYAKZVMVNXL
      YBNNVMVNXLVMYBVNVMXLVMYBNZNVMVNVMXLYCWBVMXLLZVMYBYDWBWQFGZVMYBAWNUDWBXJYE
      VMYBXKVRWQAURUSUTVCVAVBVDVEVFSQVGVCVHVIVJVKVLVF $.

    $( Multiplication of natural numbers is associative.  Theorem 4K(4) of
       [Enderton] p. 81.  (Contributed by NM, 20-Sep-1995.)  (Revised by Mario
       Carneiro, 15-Nov-2014.) $)
    nnmass $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( ( A .o B ) .o C ) = ( A .o ( B .o C ) ) ) $=
      ( vx vy com wcel comu co wceq wa cv wi oveq2 oveq2d eqeq12d c0 nnmcl nnm0
      coa imbi2d csuc syl sylan9eqr eqtr4d w3a oveq1 nnmsuc sylan 3impa 3adant1
      nndi syl3an2 3exp expd com34 pm2.43d 3imp eqtrd syl5ibr com3r impd finds2
      vtoclga expdcom ) AFGZBFGZCFGZABHIZCHIZABCHIZHIZJZVHVFVGVMVFVGKZVIDLZHIZA
      BVOHIZHIZJZMVNVMMDCFVOCJZVSVMVNVTVPVJVRVLVOCVIHNVTVQVKAHVOCBHNOPUAVSVIQHI
      ZABQHIZHIZJVIELZHIZABWDHIZHIZJZVIWDUBZHIZABWIHIZHIZJZVNDEVOQJZVPWAVRWCVOQ
      VIHNWNVQWBAHVOQBHNOPVOWDJZVPWEVRWGVOWDVIHNWOVQWFAHVOWDBHNOPVOWIJZVPWJVRWL
      VOWIVIHNWPVQWKAHVOWIBHNOPVNWAQWCVNVIFGZWAQJABRZVISUCVGVFWCAQHIQVGWBQAHBSO
      ASUDUEWDFGZVFVGWHWMMZVFVGWSWTVFVGWSWTWHWMVFVGWSUFZWEVITIZWGVITIZJWEWGVITU
      GXAWJXBWLXCVFVGWSWJXBJZVNWQWSXDWRVIWDUHUIUJXAWLAWFBTIZHIZXCXAWKXEAHVGWSWK
      XEJVFBWDUHUKOVFVGWSXFXCJZVFVGWSXGMVFVGWSVGXGVFVGWSVGXGMVFVGWSKZVGXGXHVFWF
      FGVGXGBWDRAWFBULUMUNUOUPUQURUSPUTUNVAVBVCVDVEUR $.

    $( Multiplication with successor.  Exercise 16 of [Enderton] p. 82.
       (Contributed by NM, 21-Sep-1995.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    nnmsucr $p |- ( ( A e. _om /\ B e. _om ) ->
                  ( suc A .o B ) = ( ( A .o B ) +o B ) ) $=
      ( vx vy com wcel csuc comu co coa wceq cv wi oveq2 id oveq12d eqeq12d syl
      c0 eqtr4d imbi2d peano2 nnm0 peano1 nnmcl mpan2 nna0 oveq1 peano2b nnmsuc
      wa sylanb nnaass syl3an3b syl3an1 3expb anidms oveq1d an42s nnacom nnasuc
      suceq ancoms 3eqtr4d oveq2d syl5ibr expcom finds2 vtoclga impcom ) BEFAEF
      ZAGZBHIZABHIZBJIZKZVKVLCLZHIZAVQHIZVQJIZKZMVKVPMCBEVQBKZWAVPVKWBVRVMVTVOV
      QBVLHNWBVSVNVQBJVQBAHNWBOPQUAWAVLSHIZASHIZSJIZKVLDLZHIZAWFHIZWFJIZKZVLWFG
      ZHIZAWKHIZWKJIZKZVKCDVQSKZVRWCVTWEVQSVLHNWPVSWDVQSJVQSAHNWPOPQVQWFKZVRWGV
      TWIVQWFVLHNWQVSWHVQWFJVQWFAHNWQOPQVQWKKZVRWLVTWNVQWKVLHNWRVSWMVQWKJVQWKAH
      NWROPQVKWCWDWEVKWCSWDVKVLEFZWCSKAUBVLUCRAUCTVKWDEFZWEWDKVKSEFWTUDASUEUFWD
      UGRTVKWFEFZWJWOMWJWOVKXAUKZWGVLJIZWIVLJIZKWGWIVLJUHXBWLXCWNXDVKWSXAWLXCKA
      UIZVLWFUJULXBWHAJIZWKJIZWHAWKJIZJIZWNXDXBXGXIKZXBVKXAXJXBWHEFZVKXAXJAWFUE
      ZXAXKVKWKEFXJWFUIWHAWKUMUNUOUPUQXBWMXFWKJAWFUJURXBXDWHWFVLJIZJIZXIXBXDXNK
      ZVKXAXAVKXOXBXAVKXOXBXKXAVKXOXLVKXKXAWSXOXEWHWFVLUMUNUOUPUSUQXBXHXMWHJXBA
      WFJIZGZWFAJIZGZXHXMXBXPXRKXQXSKAWFUTXPXRVBRAWFVAXAVKXMXSKWFAVAVCVDVETVDQV
      FVGVHVIVJ $.

    $( Multiplication of natural numbers is commutative.  Theorem 4K(5) of
       [Enderton] p. 81.  (Contributed by NM, 21-Sep-1995.)  (Proof shortened
       by Andrew Salmon, 22-Oct-2011.) $)
    nnmcom $p |- ( ( A e. _om /\ B e. _om ) -> ( A .o B ) = ( B .o A ) ) $=
      ( vx vy com wcel comu co wceq cv wi oveq1 oveq2 eqeq12d imbi2d csuc nnm0r
      c0 nnm0 coa eqtr4d wa nnmsucr nnmsuc ancoms syl5ibr ex finds2 vtoclga imp
      ) AEFBEFZABGHZBAGHZIZUKCJZBGHZBUOGHZIZKUKUNKCAEUOAIZURUNUKUSUPULUQUMUOABG
      LUOABGMNOURRBGHZBRGHZIDJZBGHZBVBGHZIZVBPZBGHZBVFGHZIZUKCDUORIUPUTUQVAUORB
      GLUORBGMNUOVBIUPVCUQVDUOVBBGLUOVBBGMNUOVFIUPVGUQVHUOVFBGLUOVFBGMNUKUTRVAB
      QBSUAVBEFZUKVEVIKVEVIVJUKUBZVCBTHZVDBTHZIVCVDBTLVKVGVLVHVMVBBUCUKVJVHVMIB
      VBUDUENUFUGUHUIUJ $.
  $}

  $( Distributive law for natural numbers (right-distributivity).  (Contributed
     by Jim Kingdon, 3-Dec-2019.) $)
  nndir $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
               ( ( A +o B ) .o C ) = ( ( A .o C ) +o ( B .o C ) ) ) $=
    ( com wcel w3a coa co comu wceq nndi 3coml nnacl nnmcom sylan2 ancoms 3impa
    wa 3adant2 3adant1 oveq12d 3eqtr3d ) ADEZBDEZCDEZFZCABGHZIHZCAIHZCBIHZGHZUG
    CIHZACIHZBCIHZGHUEUCUDUHUKJCABKLUCUDUEUHULJZUEUCUDRZUOUPUEUGDEUOABMCUGNOPQU
    FUIUMUJUNGUCUEUIUMJZUDUEUCUQCANPSUDUEUJUNJZUCUEUDURCBNPTUAUB $.

  ${
    $d x y A $.  $d x y B $.
    $( Membership is inherited by successors.  The reverse direction holds for
       all ordinals, as seen at ~ onsucelsucr , but the forward direction, for
       all ordinals, implies excluded middle as seen as ~ onsucelsucexmid .
       (Contributed by Jim Kingdon, 25-Aug-2019.) $)
    nnsucelsuc $p |- ( B e. _om -> ( A e. B <-> suc A e. suc B ) ) $=
      ( vx vy com wcel csuc cv wi c0 wceq eleq2 suceq eleq2d imbi12d pm2.21i wa
      noel wo a1i elsuci adantl simpl orim12d mpd vex sucex elsuc2 sylibr finds
      ex con0 nnon onsucelsucr syl impbid ) BEFZABFZAGZBGZFZACHZFZUSVBGZFZIAJFZ
      USJGZFZIADHZFZUSVIGZFZIZAVKFZUSVKGZFZIZURVAICDBVBJKZVCVFVEVHVBJALVRVDVGUS
      VBJMNOVBVIKZVCVJVEVLVBVIALVSVDVKUSVBVIMNOVBVKKZVCVNVEVPVBVKALVTVDVOUSVBVK
      MNOVBBKZVCURVEVAVBBALWAVDUTUSVBBMNOVFVHARPVMVQIVIEFVMVNVPVMVNQZVLUSVKKZSZ
      VPWBVJAVIKZSZWDVNWFVMAVIUAUBWBVJVLWEWCVMVNUCWEWCIWBAVIMTUDUEVKUSVIDUFUGUH
      UIUKTUJUQBULFVAURIBUMABUNUOUP $.

    $( Membership is inherited by successors.  The reverse direction holds for
       all ordinals, as seen at ~ onsucsssucr , but the forward direction, for
       all ordinals, implies excluded middle as seen as ~ onsucsssucexmid .
       (Contributed by Jim Kingdon, 25-Aug-2019.) $)
    nnsucsssuc $p |- ( ( A e. _om /\ B e. _om ) ->
        ( A C_ B <-> suc A C_ suc B ) ) $=
      ( vx vy com wcel wa wss csuc wi wceq sseq1 suceq sseq1d imbi12d c0 syl wb
      ordelsuc mpbid cv imbi2d wn peano3 neneqd peano2 0elnn ord mpd word nnord
      ordsucim cvv 0ex mpan 3syl a1d w3a simp3 simp1l simp1r syl2anc nnsucelsuc
      wo mpbird 3expia exp31 finds2 vtoclga con0 nnon onsucsssucr syl2an impbid
      imp ) AEFZBEFZGABHZAIZBIZHZVPVQVRWAJZVQCUAZBHZWCIZVTHZJZJVQWBJCAEWCAKZWGW
      BVQWHWDVRWFWAWCABLWHWEVSVTWCAMNOUBWGPBHZPIZVTHZJDUAZBHZWLIZVTHZJZWNBHZWNI
      ZVTHZJZVQCDWCPKZWDWIWFWKWCPBLXAWEWJVTWCPMNOWCWLKZWDWMWFWOWCWLBLXBWEWNVTWC
      WLMNOWCWNKZWDWQWFWSWCWNBLXCWEWRVTWCWNMNOVQWKWIVQPVTFZWKVQVTPKZUCXDVQVTPBU
      DUEVQXEXDVQVTEFXEXDVDBUFVTUGQUHUIVQBUJZVTUJZXDWKRZBUKZBULZPUMFXGXHUNPVTUM
      SUOUPTUQWLEFZVQWPWTXKVQGZWPWQWSXLWPWQURZWNVTFZWSXMWLBFZXNXMXOWQXLWPWQUSXM
      XKXFXOWQRXKVQWPWQUTZXMVQXFXKVQWPWQVAZXIQZWLBESVBVEXMVQXOXNRXQWLBVCQTXMWNE
      FZXGXNWSRXMXKXSXPWLUFQXMXFXGXRXJQWNVTESVBTVFVGVHVIVOVPAVJFXFWAVRJVQAVKXIA
      BVLVMVN $.

    $( Trichotomy for natural numbers.  (Contributed by Jim Kingdon,
       25-Aug-2019.) $)
    nntri3or $p |- ( ( A e. _om /\ B e. _om ) ->
        ( A e. B \/ A = B \/ B e. A ) ) $=
      ( vx vy com wcel wceq cv wi eleq2 eqeq2 eleq1 3orbi123d c0 csuc wo 3orass
      w3o sylibr syl imbi2d 0elnn olc wa df-3or elex elsuc2g syl6bir nnsucelsuc
      cvv 3mix1 elsuci syl6bi orbi2i biimpi orcomd olcd syl6 jaao syl5bi finds2
      eqcom ex vtoclga impcom ) BEFAEFZABFZABGZBAFZRZVFACHZFZAVKGZVKAFZRZIVFVJI
      CBEVKBGZVOVJVFVPVLVGVMVHVNVIVKBAJVKBAKVKBALMUAVOANFZANGZNAFZRZADHZFZAWAGZ
      WAAFZRZAWAOZFZAWFGZWFAFZRZVFCDVKNGVLVQVMVRVNVSVKNAJVKNAKVKNALMVKWAGVLWBVM
      WCVNWDVKWAAJVKWAAKVKWAALMVKWFGVLWGVMWHVNWIVKWFAJVKWFAKVKWFALMVFVRVSPZVTAU
      BWKVQWKPVTWKVQUCVQVRVSQSTWAEFZVFWEWJIWEWBWCPZWDPWLVFUDWJWBWCWDUEWLWMWJVFW
      DWLWAUJFZWMWJIWAEUFWNWMWGWJAWAUJUGWGWHWIUKUHTVFWDWIWFAGZPZWJVFWDWFAOFWPWA
      AUIWFAULUMWPWGWHWIPZPWJWPWQWGWPWIWHWPWIWHPWOWHWIWFAVBUNUOUPUQWGWHWIQSURUS
      UTVCVAVDVE $.

    $( A trichotomy law for natural numbers.  (Contributed by Jim Kingdon,
       28-Aug-2019.) $)
    nntri2 $p |- ( ( A e. _om /\ B e. _om ) ->
        ( A e. B <-> -. ( A = B \/ B e. A ) ) ) $=
      ( com wcel wa wceq wo elirr eleq2 mtbii con2i en2lp imnani ioran sylanbrc
      wn w3o nntri3or 3orass sylib orcomd ord impbid2 ) ACDBCDEZABDZABFZBADZGZP
      ZUEUFPUGPUIUFUEUFAADUEAHABAIJKUEUGABLMUFUGNOUDUHUEUDUEUHUDUEUFUGQUEUHGABR
      UEUFUGSTUAUBUC $.
  $}

  $( A trichotomy law for natural numbers.  (Contributed by Jim Kingdon,
     28-Aug-2019.) $)
  nntri1 $p |- ( ( A e. _om /\ B e. _om ) -> ( A C_ B <-> -. B e. A ) ) $=
    ( com wcel wa wss wn ssnel wceq wo w3o wi nntri3or df-3or biimpi orcomd ord
    syl word nnord ordelss sylan ex adantl eqimss a1i jaod syld impbid2 ) ACDZB
    CDZEZABFZBADZGZABHULUOABDZABIZJZUMULUPUQUNKZUOURLABMUSUNURUSURUNUSURUNJUPUQ
    UNNOPQRULUPUMUQUKUPUMLUJUKUPUMUKBSUPUMBTBAUAUBUCUDUQUMLULABUEUFUGUHUI $.

  $( A trichotomy law for natural numbers.  (Contributed by Jim Kingdon,
     15-May-2020.) $)
  nntri3 $p |- ( ( A e. _om /\ B e. _om ) ->
      ( A = B <-> ( -. A e. B /\ -. B e. A ) ) ) $=
    ( com wcel wa wceq wn wb elirr eleq2 mtbii con2i adantl simpl 2falsed simpr
    eleq1 jca 2thd nntri3or mpjao3dan ) ACDBCDEZABDZABFZUCGZBADZGZEZHUDUFUBUCEU
    DUHUCUDGZUBUDUCUDAADZUCAIZABAJKZLMUCUHGZUBUHUCUEUGNLMOUBUDEUDUHUBUDPUDUHUBU
    DUEUGULUDUJUFUKABAQKZRMSUBUFEUDUHUFUIUBUDUFUNLMUFUMUBUHUFUEUGPLMOABTUA $.

  $( Equality of natural numbers is decidable.  Theorem 7.2.6 of [HoTT], p.
     (varies).  For the specific case where ` B ` is zero, see ~ nndceq0 .
     (Contributed by Jim Kingdon, 31-Aug-2019.) $)
  nndceq $p |- ( ( A e. _om /\ B e. _om ) -> DECID A = B ) $=
    ( com wcel wa wceq wn wo wdc w3o nntri3or elirr eleq2 mtbii olcd orc mtbiri
    con2i 3jaoi syl df-dc sylibr ) ACDBCDEZABFZUDGZHZUDIUCABDZUDBADZJUFABKUGUFU
    DUHUGUEUDUDUGUDAADUGALABAMNROUDUEPUHUEUDUDUHUDUHBBDBLABBMQROSTUDUAUB $.

  $( Set membership between two natural numbers is decidable.  (Contributed by
     Jim Kingdon, 6-Sep-2019.) $)
  nndcel $p |- ( ( A e. _om /\ B e. _om ) -> DECID A e. B ) $=
    ( com wcel wa wn wo wdc wceq w3o nntri3or orc elirr eleq1 mtbiri olcd en2lp
    imnani 3jaoi syl df-dc sylibr ) ACDBCDEZABDZUDFZGZUDHUCUDABIZBADZJUFABKUDUF
    UGUHUDUELUGUEUDUGUDBBDBMABBNOPUHUEUDUHUDBAQRPSTUDUAUB $.

  ${
    $d A x y $.  $d B x y $.  $d C x $.

    $( Ordering property of addition.  Proposition 8.4 of [TakeutiZaring]
       p. 58, limited to natural numbers.  (Contributed by NM, 3-Feb-1996.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nnaordi $p |- ( ( B e. _om /\ C e. _om ) ->
                 ( A e. B -> ( C +o A ) e. ( C +o B ) ) ) $=
      ( vx vy com wcel coa co wa wi wceq oveq2 eleq12d c0 csuc syl syl2anc con0
      nnon cv imbi2d simpr elnn ancoms nna0 adantr 3eltr4d wb simprl nnsucelsuc
      simpl nnacl adantl oasuc ad2antrl bitr4d biimpd finds2 vtoclga imp nnacom
      ex adantrr 3eltr3d 3impb 3com12 3expia ) BFGZCFGZABGZCAHIZCBHIZGZVJVIVKVN
      VJVIVKVNVJVIVKJZJZACHIZBCHIZVLVMVJVOVQVRGZVOADUAZHIZBVTHIZGZKVOVSKDCFVTCL
      ZWCVSVOWDWAVQWBVRVTCAHMVTCBHMNUBWCAOHIZBOHIZGAEUAZHIZBWGHIZGZAWGPZHIZBWKH
      IZGZVODEVTOLWAWEWBWFVTOAHMVTOBHMNVTWGLWAWHWBWIVTWGAHMVTWGBHMNVTWKLWAWLWBW
      MVTWKAHMVTWKBHMNVOABWEWFVIVKUCVOAFGZWEALVKVIWOABUDUEZAUFQVIWFBLVKBUFUGUHW
      GFGZVOWJWNKWQVOJZWJWNWRWJWHPZWIPZGZWNWRWIFGZWJXAUIWRVIWQXBWQVIVKUJWQVOULB
      WGUMRWHWIUKQWRWLWSWMWTWRASGZWGSGZWLWSLWRWOXCVOWOWQWPUNATQWQXDVOWGTUGZAWGU
      ORWRBSGZXDWMWTLVIXFWQVKBTUPXEBWGUORNUQURVCUSUTVAVPWOVJVQVLLVOWOVJWPUNVJVO
      ULACVBRVJVIVRVMLZVKVIVJXGBCVBUEVDVEVFVGVH $.
  $}

  $( Ordering property of addition.  Proposition 8.4 of [TakeutiZaring] p. 58,
     limited to natural numbers, and its converse.  (Contributed by NM,
     7-Mar-1996.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnaord $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( A e. B <-> ( C +o A ) e. ( C +o B ) ) ) $=
    ( com wcel w3a coa co wi nnaordi 3adant1 wo wn oveq2 a1i wa wb nnacl nntri2
    wceq 3adant2 orim12d con3d df-3an ancom anandi 3bitri anim12i sylbi 3adant3
    syl 3imtr4d impbid ) ADEZBDEZCDEZFZABEZCAGHZCBGHZEZUOUPURVAIUNABCJKUQUSUTTZ
    UTUSEZLZMZABTZBAEZLZMZVAURUQVHVDUQVFVBVGVCVFVBIUQABCGNOUNUPVGVCIUOBACJUAUBU
    CUQUSDEZUTDEZPZVAVEQUQUPUNPZUPUOPZPZVLUQUNUOPZUPPUPVPPVOUNUOUPUDVPUPUEUPUNU
    OUFUGVMVJVNVKCARCBRUHUIUSUTSUKUNUOURVIQUPABSUJULUM $.

  $( Ordering property of addition of natural numbers.  (Contributed by NM,
     9-Nov-2002.) $)
  nnaordr $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( A e. B <-> ( A +o C ) e. ( B +o C ) ) ) $=
    ( com wcel w3a coa nnaord wceq nnacom ancoms 3adant2 3adant1 eleq12d bitrd
    co ) ADEZBDEZCDEZFZABECAGPZCBGPZEACGPZBCGPZEABCHTUAUCUBUDQSUAUCIZRSQUECAJKL
    RSUBUDIZQSRUFCBJKMNO $.

  ${
    $d A x y $.  $d B x y $.  $d C x $.

    $( Weak ordering property of addition.  (Contributed by NM, 17-Sep-1995.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nnaword $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                  ( A C_ B <-> ( C +o A ) C_ ( C +o B ) ) ) $=
      ( vx vy com wcel wss co wb wa wi wceq oveq1 sseq12d bibi2d c0 csuc nnacom
      coa cv imbi2d nna0r eqcomd adantr adantl nnacl 3adant3 3adant2 nnsucsssuc
      w3a syl2anc nnasuc peano2 sylan2 syl 3eqtr3rd ancoms biimpd 3expib finds2
      suceq bitrd vtoclga impcom 3impa ) AFGZBFGZCFGZABHZCATIZCBTIZHZJZVIVGVHKZ
      VNVOVJDUAZATIZVPBTIZHZJZLVOVNLDCFVPCMZVTVNVOWAVSVMVJWAVQVKVRVLVPCATNVPCBT
      NOPUBVTVJQATIZQBTIZHZJVJEUAZATIZWEBTIZHZJZVJWERZATIZWJBTIZHZJZVODEVPQMZVS
      WDVJWOVQWBVRWCVPQATNVPQBTNOPVPWEMZVSWHVJWPVQWFVRWGVPWEATNVPWEBTNOPVPWJMZV
      SWMVJWQVQWKVRWLVPWJATNVPWJBTNOPVOAWBBWCVGAWBMVHVGWBAAUCUDUEVHBWCMVGVHWCBB
      UCUDUFOWEFGZVGVHWIWNLWRVGVHUKZWIWNWSWHWMVJWSWHWFRZWGRZHZWMWSWFFGZWGFGZWHX
      BJWRVGXCVHWEAUGUHWRVHXDVGWEBUGUIWFWGUJULWSWTWKXAWLWRVGWTWKMZVHVGWRXEVGWRK
      ZAWJTIZAWETIZRZWKWTAWEUMWRVGWJFGZXGWKMWEUNZAWJSUOXFXHWFMXIWTMAWESXHWFVBUP
      UQURUHWRVHXAWLMZVGVHWRXLVHWRKZBWJTIZBWETIZRZWLXABWEUMWRVHXJXNWLMXKBWJSUOX
      MXOWGMXPXAMBWESXOWGVBUPUQURUIOVCPUSUTVAVDVEVF $.
  $}

  $( Cancellation law for addition of natural numbers.  (Contributed by NM,
     27-Oct-1995.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnacan $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                   ( ( A +o B ) = ( A +o C ) <-> B = C ) ) $=
    ( com wcel w3a coa co wss wa wb nnaword 3comr 3com13 anbi12d bicomd 3bitr4g
    wceq eqss ) ADEZBDEZCDEZFZABGHZACGHZIZUEUDIZJZBCIZCBIZJZUDUERBCRUCUKUHUCUIU
    FUJUGUAUBTUIUFKBCALMUBUATUJUGKCBALNOPUDUESBCSQ $.

  $( Weak ordering property of addition.  (Contributed by NM, 9-Nov-2002.)
     (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnaword1 $p |- ( ( A e. _om /\ B e. _om ) -> A C_ ( A +o B ) ) $=
    ( com wcel con0 coa co wss nnon oaword1 syl2an ) ACDAEDBEDAABFGHBCDAIBIABJK
    $.

  $( Weak ordering property of addition.  (Contributed by NM, 9-Nov-2002.) $)
  nnaword2 $p |- ( ( A e. _om /\ B e. _om ) -> A C_ ( B +o A ) ) $=
    ( com wcel wa coa co nnaword1 nnacom sseqtrd ) ACDBCDEAABFGBAFGABHABIJ $.

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    $( Adding to both sides of an inequality in ` _om ` (Contributed by Scott
       Fenton, 16-Apr-2012.)  (Revised by Mario Carneiro, 12-May-2012.) $)
    nnawordi $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
             ( A C_ B -> ( A +o C ) C_ ( B +o C ) ) ) $=
      ( com wcel w3a wss coa nnaword biimpd wceq nnacom 3adant2 3adant1 sseq12d
      co sylibrd ) ADEZBDEZCDEZFZABGZCAHPZCBHPZGZACHPZBCHPZGUAUBUEABCIJUAUFUCUG
      UDRTUFUCKSACLMSTUGUDKRBCLNOQ $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x y C $.
    $( Ordering property of multiplication.  Half of Proposition 8.19 of
       [TakeutiZaring] p. 63, limited to natural numbers.  (Contributed by NM,
       18-Sep-1995.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nnmordi $p |- ( ( ( B e. _om /\ C e. _om ) /\ (/) e. C ) ->
                    ( A e. B -> ( C .o A ) e. ( C .o B ) ) ) $=
      ( vx vy com wcel c0 comu co wi wa wceq eleq2 oveq2 eleq2d imbi12d coa imp
      cv elnn expcom imbi2d csuc pm2.21i a1i wo elsuci nnmcl simpl jca nnaword1
      noel sseld imim2d adantrl nna0 ad2antrr ancoms eqeltrrd eleq1d syl5ibrcom
      nnaordi adantrr jaod sylan syl5 nnmsuc adantr sylibrd exp43 com12 adantld
      wb impd finds2 vtoclga com23 exp4a mpdd com34 com24 imp31 ) BFGZCFGZHCGZA
      BGZCAIJZCBIJZGZKZWDWGWFWEWJWDWGWEWFWJWDWGAFGZWEWFWJKZKWGWDWLABUAUBWDWGWLW
      EWMWDWGWLWELZWFWJWDWNWFLZWGWJWOADTZGZWHCWPIJZGZKZKWOWKKDBFWPBMZWTWKWOXAWQ
      WGWSWJWPBANXAWRWIWHWPBCIOPQUCWTAHGZWHCHIJZGZKZAETZGZWHCXFIJZGZKZAXFUDZGZW
      HCXKIJZGZKZWODEWPHMZWQXBWSXDWPHANXPWRXCWHWPHCIOPQWPXFMZWQXGWSXIWPXFANXQWR
      XHWHWPXFCIOPQWPXKMZWQXLWSXNWPXKANXRWRXMWHWPXKCIOPQXEWOXBXDAUMUEUFXFFGZWNW
      FXJXOKZXSWEWFXTKZWLWEXSYAWEXSWFXJXOWEXSLZWFXJLZLZXLWHXHCRJZGZXNXLXGAXFMZU
      GZYDYFAXFUHYBXHFGZWELZYCYHYFKYBYIWECXFUIWEXSUJUKYJYCLXGYFYGYJXJXGYFKZWFYJ
      XJYKYJXIYFXGYJXHYEWHXHCULUNUOSUPYJWFYGYFKXJYJWFLZYFYGXHYEGYLXHHRJZXHYEYIY
      MXHMWEWFXHUQURYJWFYMYEGZWEYIWFYNKHCXHVCUSSUTYGWHXHYEAXFCIOVAVBVDVEVFVGYBX
      NYFVNYCYBXMYEWHCXFVHPVIVJVKVLVMVOVPVQVRVSVSVTWAWBWC $.
  $}

  $( Ordering property of multiplication.  Proposition 8.19 of [TakeutiZaring]
     p. 63, limited to natural numbers.  (Contributed by NM, 22-Jan-1996.)
     (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnmord $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
               ( ( A e. B /\ (/) e. C ) <-> ( C .o A ) e. ( C .o B ) ) ) $=
    ( com wcel c0 wa comu co wi nnmordi ex com23 3adant1 wne wceq wb wo syl2anc
    wn w3a impd ne0i nnm0r eqeq1d syl5ibrcom necon3d syl5 adantr nn0eln0 adantl
    oveq1 sylibrd oveq2 a1i 3adantl2 orim12d con3d simpl3 simpl1 simpl2 3imtr4d
    nnmcl nntri2 mpdd jcad impbid ) ADEZBDEZCDEZUAZABEZFCEZGZCAHIZCBHIZEZVIVJVN
    VQJVHVIVJGZVLVMVQVRVMVLVQVRVMVLVQJABCKLMUBNVKVQVLVMVKVQVMVLVIVJVQVMJVHVRVQC
    FOZVMVIVQVSJVJVQVPFOVIVSVPVOUCVICFVPFVIVPFPCFPZFBHIZFPBUDVTVPWAFCFBHULUEUFU
    GUHUIVJVMVSQVICUJUKUMNZVKVMVQVLVKVMVQVLJVKVMGZVOVPPZVPVOEZRZTZABPZBAEZRZTZV
    QVLWCWJWFWCWHWDWIWEWHWDJWCABCHUNUOVHVJVMWIWEJVIBACKUPUQURWCVODEZVPDEZVQWGQW
    CVJVHWLVHVIVJVMUSZVHVIVJVMUTZCAVCSWCVJVIWMWNVHVIVJVMVAZCBVCSVOVPVDSWCVHVIVL
    WKQWOWPABVDSVBLMVEWBVFVG $.

  $( Weak ordering property of ordinal multiplication.  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  nnmword $p |- ( ( ( A e. _om /\ B e. _om /\ C e. _om ) /\ (/) e. C ) ->
                  ( A C_ B <-> ( C .o A ) C_ ( C .o B ) ) ) $=
    ( com wcel w3a c0 wa wn comu wss iba nnmord 3com12 sylan9bbr nntri1 syl2anc
    co wb nnmcl notbid simpl1 simpl2 simpl3 3bitr4d ) ADEZBDEZCDEZFZGCEZHZBAEZI
    ZCBJRZCAJRZEZIZABKZUOUNKZUKULUPUJULULUJHZUIUPUJULLUGUFUHUTUPSBACMNOUAUKUFUG
    URUMSUFUGUHUJUBZUFUGUHUJUCZABPQUKUODEZUNDEZUSUQSUKUHUFVCUFUGUHUJUDZVACATQUK
    UHUGVDVEVBCBTQUOUNPQUE $.

  $( Cancellation law for multiplication of natural numbers.  (Contributed by
     NM, 26-Oct-1995.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnmcan $p |- ( ( ( A e. _om /\ B e. _om /\ C e. _om ) /\ (/) e. A ) ->
                   ( ( A .o B ) = ( A .o C ) <-> B = C ) ) $=
    ( com wcel w3a c0 comu wss wceq 3anrot nnmword sylanb 3anrev anbi12d bicomd
    wa co wb eqss 3bitr4g ) ADEZBDEZCDEZFZGAEZQZABHRZACHRZIZUIUHIZQZBCIZCBIZQZU
    HUIJBCJUGUOULUGUMUJUNUKUEUCUDUBFUFUMUJSUBUCUDKBCALMUEUDUCUBFUFUNUKSUBUCUDNC
    BALMOPUHUITBCTUA $.

  $( One is a natural number.  (Contributed by NM, 29-Oct-1995.) $)
  1onn $p |- 1o e. _om $=
    ( c1o c0 csuc com df-1o wcel peano1 peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHI
    J $.

  $( The ordinal 2 is a natural number.  (Contributed by NM, 28-Sep-2004.) $)
  2onn $p |- 2o e. _om $=
    ( c2o c1o csuc com df-2o wcel 1onn peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHIJ
    $.

  $( The ordinal 3 is a natural number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  3onn $p |- 3o e. _om $=
    ( c3o c2o csuc com df-3o wcel 2onn peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHIJ
    $.

  $( The ordinal 4 is a natural number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  4onn $p |- 4o e. _om $=
    ( c4o c3o csuc com df-4o wcel 3onn peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHIJ
    $.

  $( Multiply an element of ` _om ` by ` 1o ` .  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  nnm1 $p |- ( A e. _om -> ( A .o 1o ) = A ) $=
    ( com wcel c1o comu co c0 csuc df-1o oveq2i wceq peano1 nnmsuc mpan2 oveq1d
    coa nnm0 nna0r 3eqtrd syl5eq ) ABCZADEFAGHZEFZADUBAEIJUAUCAGEFZAPFZGAPFAUAG
    BCUCUEKLAGMNUAUDGAPAQOARST $.

  $( Multiply an element of ` _om ` by ` 2o ` (Contributed by Scott Fenton,
     18-Apr-2012.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  nnm2 $p |- ( A e. _om -> ( A .o 2o ) = ( A +o A ) ) $=
    ( com wcel c2o comu c1o csuc coa df-2o oveq2i wceq 1onn nnmsuc mpan2 oveq1d
    co nnm1 eqtrd syl5eq ) ABCZADEPAFGZEPZAAHPZDUAAEIJTUBAFEPZAHPZUCTFBCUBUEKLA
    FMNTUDAAHAQORS $.

  $( Multiply an element of ` _om ` by ` 2o ` (Contributed by Scott Fenton,
     16-Apr-2012.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  nn2m $p |- ( A e. _om -> ( 2o .o A ) = ( A +o A ) ) $=
    ( com wcel c2o comu co coa wceq 2onn nnmcom mpan nnm2 eqtrd ) ABCZDAEFZADEF
    ZAAGFDBCNOPHIDAJKALM $.

  ${
    $d A b x y $.  $d A x y z $.  $d B b x y $.
    $( Equivalence for ordering.  Compare Exercise 23 of [Enderton] p. 88.
       (Contributed by NM, 5-Dec-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnaordex $p |- ( ( A e. _om /\ B e. _om ) -> ( A e. B <->
                  E. x e. _om ( (/) e. x /\ ( A +o x ) = B ) ) ) $=
      ( vz com wcel wa c0 cv co wceq wrex wi eleq2 eqeq2 anbi2d rexbidv imbi12d
      coa c1o vb vy imbi2d csuc noel pm2.21i a1i wo elsuci simpr peano2 elelsuc
      ad2antlr nnasuc suceq sylan9eq ex anim12d imp oveq2 eqeq1d anbi12d rspcev
      syl2anc rexlimdva cbvrexv syl6ib syld con0 nnon oa1suc syl 1onn mpan jaod
      0lt1o syl5 exp31 finds2 vtoclga impcom peano1 nnaord mp3an1 ancoms adantr
      wb nna0 eleq1d bitrd anbi1d biimpac syl6bi impbid ) BEFZCEFZGBCFZHAIZFZBW
      RSJZCKZGZAELZWPWOWQXCMZWOBUAIZFZWSWTXEKZGZAELZMZMWOXDMUACEXECKZXJXDWOXKXF
      WQXIXCXECBNXKXHXBAEXKXGXAWSXECWTOPQRUCXJBHFZWSWTHKZGZAELZMZBUBIZFZWSWTXQK
      ZGZAELZMZBXQUDZFZWSWTYCKZGZAELZMZWOUAUBXEHKZXFXLXIXOXEHBNYIXHXNAEYIXGXMWS
      XEHWTOPQRXEXQKZXFXRXIYAXEXQBNYJXHXTAEYJXGXSWSXEXQWTOPQRXEYCKZXFYDXIYGXEYC
      BNYKXHYFAEYKXGYEWSXEYCWTOPQRXPWOXLXOBUEUFUGXQEFZWOYBYHYDXRBXQKZUHYLWOGZYB
      GZYGBXQUIYOXRYGYMYOXRYAYGYNYBUJWOYAYGMYLYBWOYAHDIZFZBYPSJZYCKZGZDELZYGWOX
      TUUAAEWOWREFZGZXTUUAUUCXTGWRUDZEFZHUUDFZBUUDSJZYCKZGZUUAUUBUUEWOXTWRUKUMU
      UCXTUUIUUCWSUUFXSUUHWSUUFMUUCHWRULUGUUCXSUUHUUCXSUUGWTUDYCBWRUNWTXQUOUPUQ
      URUSYTUUIDUUDEYPUUDKZYQUUFYSUUHYPUUDHNUUJYRUUGYCYPUUDBSUTVAVBVCVDUQVEYTYF
      DAEYPWRKZYQWSYSYEYPWRHNUUKYRWTYCYPWRBSUTVAVBVFVGUMVHWOYMYGMYLYBWOYMYGWOYM
      GZHTFZBTSJZYCKZYGUUMUULVPUGWOYMUUNBUDZYCWOBVIFUUNUUPKBVJBVKVLBXQUOUPTEFUU
      MUUOGZYGVMYFUUQATEWRTKZWSUUMYEUUOWRTHNUURWTUUNYCWRTBSUTVAVBVCVNVDUQUMVOVQ
      VRVSVTWAWOXCWQMWPWOXBWQAEUUCXBBWTFZXAGWQUUCWSUUSXAUUCWSBHSJZWTFZUUSUUBWOW
      SUVAWGZHEFUUBWOUVBWBHWRBWCWDWEUUCUUTBWTWOUUTBKUUBBWHWFWIWJWKXAUUSWQWTCBNW
      LWMVEWFWN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equivalence for weak ordering of natural numbers.  (Contributed by NM,
       8-Nov-2002.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nnawordex $p |- ( ( A e. _om /\ B e. _om ) -> ( A C_ B <->
                  E. x e. _om ( A +o x ) = B ) ) $=
      ( com wcel wa wss cv coa co wceq wrex w3a nntri3or 3adant3 wi c0 nnaordex
      w3o syl5ibcom simpr reximi syl6bi nna0 3ad2ant1 eqeq2 peano1 oveq2 eqeq1d
      rspcev mpan wn nntri1 biimp3a pm2.21d 3jaod mpd 3expia nnaword1 rexlimdva
      syl6 sseq2 adantr impbid ) BDEZCDEZFZBCGZBAHZIJZCKZADLZVEVFVHVLVEVFVHMZBC
      EZBCKZCBEZSZVLVEVFVQVHBCNOVMVNVLVOVPVEVFVNVLPVHVGVNQVIEZVKFZADLVLABCRVSVK
      ADVRVKUAUBUCOVMVOBQIJZCKZVLVMVTBKZVOWAVEVFWBVHBUDUEBCVTUFTQDEWAVLUGVKWAAQ
      DVIQKVJVTCVIQBIUHUIUJUKVAVMVPVLVEVFVHVPULBCUMUNUOUPUQURVEVLVHPVFVEVKVHADV
      EVIDEFBVJGVKVHBVIUSVJCBVBTUTVCVD $.
  $}

  $( The product of two natural numbers is zero iff at least one of them is
     zero.  (Contributed by Jim Kingdon, 11-Nov-2004.) $)
  nnm00 $p |- ( ( A e. _om /\ B e. _om ) -> ( ( A .o B ) = (/) <->
              ( A = (/) \/ B = (/) ) ) ) $=
    ( com wcel wa comu co c0 wceq wo wi simpl jaoi orcd a1i adantr ex sylan9eqr
    jaod 0elnn olcd simplr wn nnmordi expimpd ancoms nnm0 eleq1d sylibd imp n0i
    simpr pm2.21dd anim12i anddi sylib mpjaod oveq1 nnm0r adantl oveq2 impbid
    syl ) ACDZBCDZEZABFGZHIZAHIZBHIZJZVFVHVKVFVHEZVIVJEZVIHBDZEZJZVKHADZVJEZVQV
    NEZJZVPVKKVLVPVIVJVMVIVOVIVJLVIVNLMNOVLVRVKVSVRVKKVLVRVJVIVQVJULUAOVLVSVKVL
    VSEZVHVKVFVHVSUBWAHVGDZVHUCVLVSWBVFVSWBKVHVFVSAHFGZVGDZWBVEVDVSWDKVEVDEVQVN
    WDHBAUDUEUFVFWCHVGVDWCHIVEAUGZPUHUIPUJVGHUKVCUMQSVFVPVTJZVHVFVIVQJZVJVNJZEW
    FVDWGVEWHATBTUNVIVQVJVNUOUPPUQQVFVIVHVJVEVIVHKVDVEVIVHVIVEVGHBFGHAHBFURBUSR
    QUTVDVJVHKVEVDVJVHVJVDVGWCHBHAFVAWERQPSVB $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Equivalence relations and classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c Er $.  $( Equivalence predicate $)
  $c /. $.  $( Long slash for quotient set $)

  $( Extend the definition of a wff to include the equivalence predicate. $)
  wer $a wff R Er A $.

  $( Extend the definition of a class to include equivalence class. $)
  cec $a class [ A ] R $.

  $( Extend the definition of a class to include quotient set. $)
  cqs $a class ( A /. R ) $.

  $( Define the equivalence relation predicate.  Our notation is not standard.
     A formal notation doesn't seem to exist in the literature; instead only
     informal English tends to be used.  The present definition, although
     somewhat cryptic, nicely avoids dummy variables.  In ~ dfer2 we derive a
     more typical definition.  We show that an equivalence relation is
     reflexive, symmetric, and transitive in ~ erref , ~ ersymb , and ~ ertr .
     (Contributed by NM, 4-Jun-1995.)  (Revised by Mario Carneiro,
     2-Nov-2015.) $)
  df-er $a |- ( R Er A <->
    ( Rel R /\ dom R = A /\ ( `' R u. ( R o. R ) ) C_ R ) ) $.

  ${
    $d x y z R $.
    $( Alternate definition of equivalence predicate.  (Contributed by NM,
       3-Jan-1997.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    dfer2 $p |- ( R Er A <->
    ( Rel R /\ dom R = A /\ A. x A. y A. z
          ( ( x R y -> y R x ) /\ ( ( x R y /\ y R z ) -> x R z ) ) ) ) $=
      ( wer wrel cdm wceq ccnv wss w3a cv wbr wi wa wal albii 19.26 bitri df-er
      ccom cun cnvsym cotr anbi12i unss 19.28v bitr2i 3bitr3i 3anbi3i ) DEFEGZE
      HDIZEJZEEUBZUCEKZLULUMAMZBMZENZURUQENOZUSURCMZENPUQVAENOZPCQZBQZAQZLDEUAU
      PVEULUMUNEKZUOEKZPUTBQZAQZVBCQZBQZAQZPZUPVEVFVIVGVLABEUDABCEUEUFUNUOEUGVE
      VHVKPZAQVMVDVNAVDUTVJPZBQVNVCVOBUTVBCUHRUTVJBSTRVHVKASUIUJUKT $.
  $}

  $( Define the ` R ` -coset of ` A ` .  Exercise 35 of [Enderton] p. 61.  This
     is called the equivalence class of ` A ` modulo ` R ` when ` R ` is an
     equivalence relation (i.e. when ` Er R ` ; see ~ dfer2 ).  In this case,
     ` A ` is a representative (member) of the equivalence class ` [ A ] R ` ,
     which contains all sets that are equivalent to ` A ` .  Definition of
     [Enderton] p. 57 uses the notation ` [ A ] ` (subscript) ` R ` , although
     we simply follow the brackets by ` R ` since we don't have subscripted
     expressions.  For an alternate definition, see ~ dfec2 .  (Contributed by
     NM, 23-Jul-1995.) $)
  df-ec $a |- [ A ] R = ( R " { A } ) $.

  ${
    $d y A x $.  $d y R x $.
    $( Alternate definition of ` R ` -coset of ` A ` .  Definition 34 of
       [Suppes] p. 81.  (Contributed by NM, 3-Jan-1997.)  (Proof shortened by
       Mario Carneiro, 9-Jul-2014.) $)
    dfec2 $p |- ( A e. V -> [ A ] R = { y | A R y } ) $=
      ( wcel cec csn cima cv wbr cab df-ec imasng syl5eq ) BDEBCFCBGHBAICJAKBCL
      ABDCMN $.
  $}

  $( An equivalence class modulo a set is a set.  (Contributed by NM,
     24-Jul-1995.) $)
  ecexg $p |- ( R e. B -> [ A ] R e. _V ) $=
    ( wcel cec csn cima cvv df-ec imaexg syl5eqel ) CBDACECAFZGHACICLBJK $.

  ${
    $d A x $.  $d B x $.  $d R x $.
    $( An inhabited equivalence class implies the representative is a set.
       (Contributed by Mario Carneiro, 9-Jul-2014.) $)
    ecexr $p |- ( A e. [ B ] R -> B e. _V ) $=
      ( vx cec wcel cv wceq wex cvv wbr csn wrex elimag ibi df-ec eleq2s df-rex
      cima wa simpl elsn sylib eximi sylbi syl isset sylibr ) ABCEZFZDGZBHZDIZB
      JFUJUKACKZDBLZMZUMUPACUOSZUIAUQFUPDACUOUQNOBCPQUPUKUOFZUNTZDIUMUNDUORUSUL
      DUSURULURUNUADBUBUCUDUEUFDBUGUH $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( Define quotient set. ` R ` is usually an equivalence relation.
       Definition of [Enderton] p. 58.  (Contributed by NM, 23-Jul-1995.) $)
    df-qs $a |- ( A /. R ) = { y | E. x e. A y = [ x ] R } $.
  $}

  $( Equality theorem for equivalence predicate.  (Contributed by NM,
     4-Jun-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
  ereq1 $p |- ( R = S -> ( R Er A <-> S Er A ) ) $=
    ( wceq wrel cdm ccnv ccom cun wss releq dmeq eqeq1d cnveq coeq1 coeq2 eqtrd
    w3a wer df-er uneq12d sseq1d sseq2 bitrd 3anbi123d 3bitr4g ) BCDZBEZBFZADZB
    GZBBHZIZBJZRCEZCFZADZCGZCCHZIZCJZRABSACSUGUHUOUJUQUNVABCKUGUIUPABCLMUGUNUTB
    JVAUGUMUTBUGUKURULUSBCNUGULCBHUSBCBOBCCPQUAUBBCUTUCUDUEABTACTUF $.

  $( Equality theorem for equivalence predicate.  (Contributed by Mario
     Carneiro, 12-Aug-2015.) $)
  ereq2 $p |- ( A = B -> ( R Er A <-> R Er B ) ) $=
    ( wceq wrel cdm ccnv ccom cun wss w3a wer eqeq2 3anbi2d df-er 3bitr4g ) ABD
    ZCEZCFZADZCGCCHICJZKRSBDZUAKACLBCLQTUBRUAABSMNACOBCOP $.

  $( An equivalence relation is a relation.  (Contributed by Mario Carneiro,
     12-Aug-2015.) $)
  errel $p |- ( R Er A -> Rel R ) $=
    ( wer wrel cdm wceq ccnv ccom cun wss df-er simp1bi ) ABCBDBEAFBGBBHIBJABKL
    $.

  $( The domain of an equivalence relation.  (Contributed by Mario Carneiro,
     12-Aug-2015.) $)
  erdm $p |- ( R Er A -> dom R = A ) $=
    ( wer wrel cdm wceq ccnv ccom cun wss df-er simp2bi ) ABCBDBEAFBGBBHIBJABKL
    $.

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.
    ersym.1 $e |- ( ph -> R Er X ) $.
    ersym.2 $e |- ( ph -> A R B ) $.
    $( Elementhood in the field of an equivalence relation.  (Contributed by
       Mario Carneiro, 12-Aug-2015.) $)
    ercl $p |- ( ph -> A e. X ) $=
      ( cdm wrel wbr wcel wer errel syl releldm syl2anc wceq erdm eleqtrd ) ABD
      HZEADIZBCDJBTKAEDLZUAFEDMNGBCDOPAUBTEQFEDRNS $.

    $( An equivalence relation is symmetric.  (Contributed by NM, 4-Jun-1995.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ersym $p |- ( ph -> B R A ) $=
      ( ccnv wbr cvv wcel wa wb wrel wer errel syl brrelex12 syl2anc brcnvg cun
      ancoms mpbird ccom wss cdm wceq df-er simp3bi unssad ssbrd mpd ) ACBDHZIZ
      CBDIAUNBCDIZGABJKZCJKZLZUNUOMZADNZUOURAEDOZUTFEDPQGBCDRSUQUPUSCBJJDTUBQUC
      AUMDCBAUMDDUDZDAVAUMVBUADUEZFVAUTDUFEUGVCEDUHUIQUJUKUL $.

    $( Elementhood in the field of an equivalence relation.  (Contributed by
       Mario Carneiro, 12-Aug-2015.) $)
    ercl2 $p |- ( ph -> B e. X ) $=
      ( ersym ercl ) ACBDEFABCDEFGHI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.  $d x R $.
    ersymb.1 $e |- ( ph -> R Er X ) $.
    $( An equivalence relation is symmetric.  (Contributed by NM,
       30-Jul-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ersymb $p |- ( ph -> ( A R B <-> B R A ) ) $=
      ( wbr wa wer adantr simpr ersym impbida ) ABCDGZCBDGZANHBCDEAEDIZNFJANKLA
      OHCBDEAPOFJAOKLM $.

    $( An equivalence relation is transitive.  (Contributed by NM,
       4-Jun-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ertr $p |- ( ph -> ( ( A R B /\ B R C ) -> A R C ) ) $=
      ( vx wbr wa ccom cv wex cvv wcel syl simpr brrelex syl2an wceq wrel errel
      breq2 breq1 anbi12d spcegv sylc wb simpl brrelex2 brcog syl2anc mpbird ex
      wer ccnv cun wss cdm df-er simp3bi unssbd ssbrd syld ) ABCEIZCDEIZJZBDEEK
      ZIZBDEIAVGVIAVGJZVIBHLZEIZVKDEIZJZHMZVJCNOZVGVOAEUAZVFVPVGAFEUOZVQGFEUBPZ
      VEVFQZCDERSAVGQVNVGHCNVKCTVLVEVMVFVKCBEUCVKCDEUDUEUFUGVJBNOZDNOZVIVOUHAVQ
      VEWAVGVSVEVFUIBCERSAVQVFWBVGVSVTCDEUJSHBDEENNUKULUMUNAVHEBDAEUPZVHEAVRWCV
      HUQEURZGVRVQEUSFTWDFEUTVAPVBVCVD $.

    ${
      ertrd.5 $e |- ( ph -> A R B ) $.
      ertrd.6 $e |- ( ph -> B R C ) $.
      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertrd $p |- ( ph -> A R C ) $=
        ( wbr ertr mp2and ) ABCEJCDEJBDEJHIABCDEFGKL $.

      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertr2d $p |- ( ph -> C R A ) $=
        ( ertrd ersym ) ABDEFGABCDEFGHIJK $.
    $}

    ${
      ertr3d.5 $e |- ( ph -> B R A ) $.
      ertr3d.6 $e |- ( ph -> B R C ) $.
      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertr3d $p |- ( ph -> A R C ) $=
        ( ersym ertrd ) ABCDEFGACBEFGHJIK $.
    $}

    ${
      ertr4d.5 $e |- ( ph -> A R B ) $.
      ertr4d.6 $e |- ( ph -> C R B ) $.
      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertr4d $p |- ( ph -> A R C ) $=
        ( ersym ertrd ) ABCDEFGHADCEFGIJK $.
    $}

    erref.2 $e |- ( ph -> A e. X ) $.
    $( An equivalence relation is reflexive on its field.  Compare Theorem 3M
       of [Enderton] p. 56.  (Contributed by Mario Carneiro, 6-May-2013.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    erref $p |- ( ph -> A R A ) $=
      ( vx cv wbr cdm wcel wex wer wceq erdm syl eleqtrrd wb eldmg mpbid adantr
      wa simpr ertr4d exlimddv ) ABGHZCIZBBCIGABCJZKZUGGLZABDUHFADCMZUHDNEDCOPQ
      ABDKUIUJRFGBCDSPTAUGUBBUFBCDAUKUGEUAAUGUCZULUDUE $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( The converse of an equivalence relation is itself.  (Contributed by
       Mario Carneiro, 12-Aug-2015.) $)
    ercnv $p |- ( R Er A -> `' R = R ) $=
      ( vx vy wrel wer ccnv wceq errel relcnv cv wbr wcel id ersymb brcnv df-br
      cop vex bitr3i 3bitr3g eqrelrdv2 mpanl1 mpancom ) BEZABFZBGZBHZABIUGEUEUF
      UHBJUFCDUGBUFDKZCKZBLZUJUIBLUJUIRZUGMZULBMUFUIUJBAUFNOUKUJUIUGLUMUJUIBCSD
      SPUJUIUGQTUJUIBQUAUBUCUD $.
  $}

  $( The range and domain of an equivalence relation are equal.  (Contributed
     by Rodolfo Medina, 11-Oct-2010.)  (Revised by Mario Carneiro,
     12-Aug-2015.) $)
  errn $p |- ( R Er A -> ran R = A ) $=
    ( wer crn ccnv cdm df-rn ercnv dmeqd erdm eqtrd syl5eq ) ABCZBDBEZFZABGMOBF
    AMNBABHIABJKL $.

  $( An equivalence relation is a subset of the cartesian product of the
     field.  (Contributed by Mario Carneiro, 12-Aug-2015.) $)
  erssxp $p |- ( R Er A -> R C_ ( A X. A ) ) $=
    ( wer cdm crn cxp wrel wss errel relssdmrn syl erdm errn xpeq12d sseqtrd )
    ABCZBBDZBEZFZAAFPBGBSHABIBJKPQARAABLABMNO $.

  $( An equivalence relation is a set if its domain is a set.  (Contributed by
     Rodolfo Medina, 15-Oct-2010.)  (Proof shortened by Mario Carneiro,
     12-Aug-2015.) $)
  erex $p |- ( R Er A -> ( A e. V -> R e. _V ) ) $=
    ( wer wcel cvv cxp wss erssxp xpexg anidms ssexg syl2an ex ) ABDZACEZBFEZOB
    AAGZHRFEZQPABIPSAACCJKBRFLMN $.

  $( An equivalence relation is a set if and only if its domain is a set.
     (Contributed by Rodolfo Medina, 15-Oct-2010.)  (Revised by Mario Carneiro,
     12-Aug-2015.) $)
  erexb $p |- ( R Er A -> ( R e. _V <-> A e. _V ) ) $=
    ( wer cvv wcel cdm dmexg erdm eleq1d syl5ib erex impbid ) ABCZBDEZADEZNBFZD
    EMOBDGMPADABHIJABDKL $.

  ${
    $d x y z R $.  $d x A $.  $d x y z ph $.
    iserd.1 $e |- ( ph -> Rel R ) $.
    iserd.2 $e |- ( ( ph /\ x R y ) -> y R x ) $.
    iserd.3 $e |- ( ( ph /\ ( x R y /\ y R z ) ) -> x R z ) $.
    iserd.4 $e |- ( ph -> ( x e. A <-> x R x ) ) $.
    $( A reflexive, symmetric, transitive relation is an equivalence relation
       on its domain.  (Contributed by Mario Carneiro, 9-Jul-2014.)  (Revised
       by Mario Carneiro, 12-Aug-2015.) $)
    iserd $p |- ( ph -> R Er A ) $=
      ( wer wceq cv wbr wi wa wal ex alrimiv wcel cdm eqidd jca dfer2 syl3anbrc
      wrel adantr simpr erref vex breldm impbid1 bitr4d eqrdv ereq2 syl mpbid
      wb ) AFUAZFKZEFKZAFUFUSUSLBMZCMZFNZVCVBFNZOZVDVCDMZFNPZVBVGFNZOZPZDQZCQZB
      QUTGAUSUBAVMBAVLCAVKDAVFVJAVDVEHRAVHVIIRUCSSSBCDUSFUDUEZAUSELUTVAURABUSEA
      VBUSTZVBVBFNZVBETAVOVPAVOVPAVOPVBFUSAUTVOVNUGAVOUHUIRVBVBFBUJZVQUKULJUMUN
      USEFUOUPUQ $.
  $}

  ${
    swoer.1 $e |- R = ( ( X X. X ) \ ( .< u. `' .< ) ) $.
    $( Evaluate the incomparability relation.  (Contributed by Mario Carneiro,
       9-Jul-2014.) $)
    brdifun $p |- ( ( A e. X /\ B e. X ) ->
      ( A R B <-> -. ( A .< B \/ B .< A ) ) ) $=
      ( wcel wa wbr ccnv cun wn wo cxp wb cop opelxpi df-br sylibr cdif brcnvg
      breqi brdif bitri baib syl brun orbi2d syl5bb notbid bitrd ) AEGBEGHZABCI
      ZABDDJZKZIZLZABDIZBADIZMZLULABEENZIZUMUQOULABPVAGVBABEEQABVARSUMVBUQUMABV
      AUOTZIVBUQHABCVCFUBABVAUOUCUDUEUFULUPUTUPURABUNIZMULUTABDUNUGULVDUSURABEE
      DUAUHUIUJUK $.

    $d u v w R $.  $d x y z .< $.  $d x y z A $.  $d x y z B $.  $d x y z C $.
    $d u v w x y z ph $.  $d u x y z X $.  $d x y Y $.
    swoer.2 $e |- ( ( ph /\ ( y e. X /\ z e. X ) ) ->
                    ( y .< z -> -. z .< y ) ) $.
    swoer.3 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) ) ->
                    ( x .< y -> ( x .< z \/ z .< y ) ) ) $.
    $( Incomparability under a strict weak partial order is an equivalence
       relation.  (Contributed by Mario Carneiro, 9-Jul-2014.)  (Revised by
       Mario Carneiro, 12-Aug-2015.) $)
    swoer $p |- ( ph -> R Er X ) $=
      ( cv wbr wa wo wn wb wcel brdifun syl syl2anc vu vv wrel cxp wss ccnv cun
      vw cdif difss eqsstri relxp relss mp2 a1i simpr orcom notbid ssbri adantl
      brxp sylib simprd simpld 3bitr4d mpbid simprl simplbi simprbi simprr brel
      ad2antrl wi simpl swopolem syl13anc syl6ibr orim12d or4 syl6ib mpbird wpo
      mtord swopo poirr sylan pm1.2 nsyl impbida iserd ) AUAUBUHGEEUCZAEGGUDZUE
      WLUCWKEWLFFUFUGZUIWLHWLWMUJUKZGGULEWLUMUNUOAUAKZUBKZELZMZWQWPWOELZAWQUPWR
      WOWPFLZWPWOFLZNZOZXAWTNZOZWQWSWRXBXDXBXDPWRWTXAUQUOURWRWOGQZWPGQZMZWQXCPZ
      WRWOWPWLLZXHWQXJAEWLWOWPWNUSZUTWOWPGGVAZVBZWOWPEFGHRZSWRXGXFWSXEPWRXFXGXM
      VCWRXFXGXMVDWPWOEFGHRTVEVFAWQWPUHKZELZMZMZWOXOELZWOXOFLZXOWOFLZNZOZXRYBXB
      WPXOFLZXOWPFLZNZXRWQXCAWQXPVGXRXFXGXIXRXJXFWQXJAXPXKVLZXJXFXGXLVHSZXRXJXG
      YGXJXFXGXLVISZXNTVFXRXPYFOZAWQXPVJZXRXGXOGQZXPYJPYIXRXPYLYKXPXGYLWPXOGGEW
      NVKVCSZWPXOEFGHRTVFXRYBWTYDNZXAYENZNXBYFNXRXTYNYAYOXRAXFYLXGXTYNVMAXQVNZY
      HYMYIABCDGFWOXOWPJVOVPXRYAYEXANZYOXRAYLXFXGYAYQVMYPYMYHYIABCDGFXOWOWPJVOV
      PXAYEUQVQVRWTYDXAYEVSVTWCXRXFYLXSYCPYHYMWOXOEFGHRTWAAXFWOWOELZAXFMZYRWOWO
      FLZYTNZOZYSYTUUAAGFWBXFYTOABCDGFIJWDGWOFWEWFYTWGWHYSXFXFYRUUBPAXFUPZUUCWO
      WOEFGHRTWAYRXFAYRWOWOWLLZXFEWLWOWOWNUSUUDXFXFWOWOGGVAVHSUTWIWJ $.

    ${
      swoord.4 $e |- ( ph -> B e. X ) $.
      swoord.5 $e |- ( ph -> C e. X ) $.
      swoord.6 $e |- ( ph -> A R B ) $.
      $( The incomparability equivalence relation is compatible with the
         original order.  (Contributed by Mario Carneiro, 31-Dec-2014.) $)
      swoord1 $p |- ( ph -> ( A .< C <-> B .< C ) ) $=
        ( wbr wo wcel wn wi cxp ccnv cun cdif difss eqsstri ssbri df-br opelxp1
        id cop sylbi 3syl swopolem syl13anc wb brdifun syl2anc mpbid nsyl biorf
        orc syl sylibrd olc impbid ) AEGIQZFGIQZAVHEFIQZVIRZVIAAEJSZGJSZFJSZVHV
        KUAAUKZAEFHQZEFJJUBZQZVLPHVQEFHVQIIUCUDZUEVQKVQVSUFUGUHVREFULVQSVLEFVQU
        IEFJJUJUMUNZONABCDJIEGFMUOUPAVJTVIVKUQAVJFEIQZRZVJAVPWBTZPAVLVNVPWCUQVT
        NEFHIJKURUSUTZVJWAVCVAVJVIVBVDVEAVIWAVHRZVHAAVNVMVLVIWEUAVONOVTABCDJIFG
        EMUOUPAWATVHWEUQAWBWAWDWAVJVFVAWAVHVBVDVEVG $.

      $( The incomparability equivalence relation is compatible with the
         original order.  (Contributed by Mario Carneiro, 31-Dec-2014.) $)
      swoord2 $p |- ( ph -> ( C .< A <-> C .< B ) ) $=
        ( wbr wo wcel wi id cxp ccnv cun cdif difss eqsstri ssbri df-br opelxp1
        cop sylbi swopolem syl13anc idd wn wb brdifun syl2anc mpbid olc pm2.21d
        3syl nsyl jaod syld orc impbid ) AGEIQZGFIQZAVIVJFEIQZRZVJAAGJSZEJSZFJS
        ZVIVLTAUAZOAEFHQZEFJJUBZQZVNPHVREFHVRIIUCUDZUEVRKVRVTUFUGUHVSEFUKVRSVNE
        FVRUIEFJJUJULVCZNABCDJIGEFMUMUNAVJVJVKAVJUOAVKVJAEFIQZVKRZVKAVQWCUPZPAV
        NVOVQWDUQWANEFHIJKURUSUTZVKWBVAVDVBVEVFAVJVIWBRZVIAAVMVOVNVJWFTVPONWAAB
        CDJIGFEMUMUNAVIVIWBAVIUOAWBVIAWCWBWEWBVKVGVDVBVEVFVH $.
    $}
  $}

  ${
    $d w x y $.  $d x y z $.  $d y A $.  $d v x B $.
    eqer.1 $e |- ( x = y -> A = B ) $.
    eqer.2 $e |- R = { <. x , y >. | A = B } $.
    $( Lemma for ~ eqer .  (Contributed by NM, 17-Mar-2008.)  (Proof shortened
       by Mario Carneiro, 6-Dec-2016.) $)
    eqerlem $p |- ( z R w <-> [_ z / x ]_ A = [_ w / x ]_ A ) $=
      ( cv wceq wsbc csb cvv wcel wb vex nfcsb1v weq sbciegf brabsb nfeq csbief
      wbr nfv nfcv csbeq1 syl5eqr eqeq2d ax-mp csbeq1a eqeq1d syl5bb bitri ) CJ
      ZDJZGUDEFKZBUPLZAUOLZAUOEMZAUPEMZKZUQABUOUPGIUAUONOUSVBPCQURVBAUONAUTVAAU
      OERAUPERUBUREVAKZACSZVBUPNOURVCPDQUQVCBUPNVCBUEBDSZFVAEVEFABJZEMVAAVFEFBQ
      AFUFHUCAVFUPEUGUHUITUJVDEUTVAAUOEUKULUMTUJUN $.

    $d v w x y z $.  $d v w z R $.
    $( Equivalence relation involving equality of dependent classes ` A ( x ) `
       and ` B ( y ) ` .  (Contributed by NM, 17-Mar-2008.)  (Revised by Mario
       Carneiro, 12-Aug-2015.) $)
    eqer $p |- R Er _V $=
      ( vz vw vv cvv wtru wceq a1i cv wbr csb eqerlem 3imtr4i adantl wer eqcomd
      wrel relopabi id wa eqtr anbi12i wcel wb vex eqid mpbir 2th iserd trud )
      KEUALHIJKEEUCLCDMABEGUDNHOZIOZEPZURUQEPZLAUQCQZAURCQZMZVBVAMUSUTVCVAVBVCU
      EUBABHICDEFGRZABIHCDEFGRSTUSURJOZEPZUFZUQVEEPZLVCVBAVECQZMZUFVAVIMVGVHVAV
      BVIUGUSVCVFVJVDABIJCDEFGRUHABHJCDEFGRSTUQKUIZUQUQEPZUJLVKVLHUKVLVAVAMVAUL
      ABHHCDEFGRUMUNNUOUP $.
  $}

  ${
    $d x y z $.
    $( The identity relation is an equivalence relation.  (Contributed by NM,
       10-May-1998.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.)  (Proof
       shortened by Mario Carneiro, 9-Jul-2014.) $)
    ider $p |- _I Er _V $=
      ( vx vy cv cid wceq id df-id eqer ) ABACZBCZDIJEFABGH $.

    $( The empty set is an equivalence relation on the empty set.  (Contributed
       by Mario Carneiro, 5-Sep-2015.) $)
    0er $p |- (/) Er (/) $=
      ( vx vy vz c0 wer wtru wrel rel0 a1i cv wbr wcel df-br noel pm2.21i sylbi
      cop adantl ad2antrl wb 2false bitr4i iserd trud ) DDEFABCDDDGFHIAJZBJZDKZ
      UFUEDKZFUGUEUFQZDLZUHUEUFDMZUJUHUINZOPRUGUECJZDKZFUFUMDKUGUJUNUKUJUNULOPS
      UEDLZUEUEDKZTFUOUEUEQZDLZUPUOURUENUQNUAUEUEDMUBIUCUD $.
  $}

  $( Equality theorem for equivalence class.  (Contributed by NM,
     23-Jul-1995.) $)
  eceq1 $p |- ( A = B -> [ A ] C = [ B ] C ) $=
    ( wceq csn cima cec sneq imaeq2d df-ec 3eqtr4g ) ABDZCAEZFCBEZFACGBCGLMNCAB
    HIACJBCJK $.

  ${
    eceq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for equivalence class (deduction form).  (Contributed
       by Jim Kingdon, 31-Dec-2019.) $)
    eceq1d $p |- ( ph -> [ A ] C = [ B ] C ) $=
      ( wceq cec eceq1 syl ) ABCFBDGCDGFEBCDHI $.
  $}

  $( Equality theorem for equivalence class.  (Contributed by NM,
     23-Jul-1995.) $)
  eceq2 $p |- ( A = B -> [ C ] A = [ C ] B ) $=
    ( wceq csn cima cec imaeq1 df-ec 3eqtr4g ) ABDACEZFBKFCAGCBGABKHCAICBIJ $.

  ${
    $d x A $.  $d x B $.  $d x R $.
    $( Membership in an equivalence class.  Theorem 72 of [Suppes] p. 82.
       (Contributed by Mario Carneiro, 9-Jul-2014.) $)
    elecg $p |- ( ( A e. V /\ B e. W ) -> ( A e. [ B ] R <-> B R A ) ) $=
      ( wcel wa csn cima cop cec wbr elimasng ancoms df-ec eleq2i df-br 3bitr4g
      wb ) ADFZBEFZGACBHIZFZBAJCFZABCKZFBACLUATUCUDSCBAEDMNUEUBABCOPBACQR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.
    elec.1 $e |- A e. _V $.
    elec.2 $e |- B e. _V $.
    $( Membership in an equivalence class.  Theorem 72 of [Suppes] p. 82.
       (Contributed by NM, 23-Jul-1995.) $)
    elec $p |- ( A e. [ B ] R <-> B R A ) $=
      ( cvv wcel cec wbr wb elecg mp2an ) AFGBFGABCHGBACIJDEABCFFKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.
    $( Membership in an equivalence class when ` R ` is a relation.
       (Contributed by Mario Carneiro, 11-Sep-2015.) $)
    relelec $p |- ( Rel R -> ( A e. [ B ] R <-> B R A ) ) $=
      ( wrel cec wcel wbr cvv wa elex ecexr jca adantl brrelex12 elecg pm5.21nd
      ancomd ) CDZABCEZFZBACGZAHFZBHFZIZTUDRTUBUCASJABCKLMRUAIUCUBBACNQABCHHOP
      $.
  $}

  ${
    $d x y R $.
    ecss.1 $e |- ( ph -> R Er X ) $.
    $( An equivalence class is a subset of the domain.  (Contributed by NM,
       6-Aug-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ecss $p |- ( ph -> [ A ] R C_ X ) $=
      ( crn cec csn cima df-ec imassrn eqsstri wer wceq errn syl syl5sseq ) ACF
      ZBCGZDSCBHZIRBCJCTKLADCMRDNEDCOPQ $.
  $}

  ${
    $d x R $.  $d x A $.
    $( A representative of an inhabited equivalence class belongs to the domain
       of the equivalence relation.  (Contributed by Jim Kingdon,
       21-Aug-2019.) $)
    ecdmn0m $p |- ( A e. dom R <-> E. x x e. [ A ] R ) $=
      ( cdm wcel cvv cv cec wex elex ecexr exlimiv wbr eldmg wb vex mpan exbidv
      elecg bitr4d pm5.21nii ) BCDZEZBFEZAGZBCHEZAIZBUBJUFUDAUEBCKLUDUCBUECMZAI
      UGABCFNUDUFUHAUEFEUDUFUHOAPUEBCFFSQRTUA $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.  $d ph x $.
    ereldm.1 $e |- ( ph -> R Er X ) $.
    ereldm.2 $e |- ( ph -> [ A ] R = [ B ] R ) $.
    $( Equality of equivalence classes implies equivalence of domain
       membership.  (Contributed by NM, 28-Jan-1996.)  (Revised by Mario
       Carneiro, 12-Aug-2015.) $)
    ereldm $p |- ( ph -> ( A e. X <-> B e. X ) ) $=
      ( vx cdm wcel cv cec wex eleq2d exbidv ecdmn0m 3bitr4g wer wceq erdm syl
      3bitr3d ) ABDIZJZCUCJZBEJCEJAHKZBDLZJZHMUFCDLZJZHMUDUEAUHUJHAUGUIUFGNOHBD
      PHCDPQAUCEBAEDRUCESFEDTUAZNAUCECUKNUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x ph $.
    erth.1 $e |- ( ph -> R Er X ) $.
    erth.2 $e |- ( ph -> A e. X ) $.
    $( Basic property of equivalence relations.  Theorem 73 of [Suppes] p. 82.
       (Contributed by NM, 23-Jul-1995.)  (Revised by Mario Carneiro,
       6-Jul-2015.) $)
    erth $p |- ( ph -> ( A R B <-> [ A ] R = [ B ] R ) ) $=
      ( vx wbr cec wa wcel ertr impl sylan impbida cvv wb adantr elecg cv simpl
      wceq ersymb biimpa jca vex sylancr wrel wer errel syl 3bitr4d eqrdv erref
      brrelex2 syl2anc mpbird simpr eleqtrd ereldm mpbid ersym ) ABCDIZBDJZCDJZ
      UCZAVDKZHVEVFVHBHUAZDIZCVIDIZVIVELZVIVFLZVHVJVKVHACBDIZKVJVKVHAVNAVDUBAVD
      VNABCDEFUDUEUFAVNVJVKACBVIDEFMNOAVDVKVJABCVIDEFMNPVHVIQLZBELZVLVJRHUGZAVP
      VDGSVIBDQETUHVHVOCQLZVMVKRVQADUIZVDVRAEDUJZVSFEDUKULBCDUPOVICDQQTUHUMUNAV
      GKZCBDEAVTVGFSZWABVFLZVNWABVEVFWABVELZBBDIZAWEVGABDEFGUOSWAVPVPWDWERAVPVG
      GSZWFBBDEETUQURAVGUSZUTWAVPCELZWCVNRWFWAVPWHWFWABCDEWBWGVAVBBCDEETUQVBVCP
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x ph $.
    erth2.1 $e |- ( ph -> R Er X ) $.
    erth2.2 $e |- ( ph -> B e. X ) $.
    $( Basic property of equivalence relations.  Compare Theorem 73 of [Suppes]
       p. 82.  Assumes membership of the second argument in the domain.
       (Contributed by NM, 30-Jul-1995.)  (Revised by Mario Carneiro,
       6-Jul-2015.) $)
    erth2 $p |- ( ph -> ( A R B <-> [ A ] R = [ B ] R ) ) $=
      ( wbr cec wceq ersymb erth eqcom syl6bb bitrd ) ABCDHCBDHZBDIZCDIZJZABCDE
      FKAPRQJSACBDEFGLRQMNO $.
  $}

  ${
    erthi.1 $e |- ( ph -> R Er X ) $.
    erthi.2 $e |- ( ph -> A R B ) $.
    $( Basic property of equivalence relations.  Part of Lemma 3N of [Enderton]
       p. 57.  (Contributed by NM, 30-Jul-1995.)  (Revised by Mario Carneiro,
       9-Jul-2014.) $)
    erthi $p |- ( ph -> [ A ] R = [ B ] R ) $=
      ( wbr cec wceq ercl erth mpbid ) ABCDHBDICDIJGABCDEFABCDEFGKLM $.
  $}

  $( An equivalence class modulo the identity relation is a singleton.
     (Contributed by NM, 24-Oct-2004.) $)
  ecidsn $p |- [ A ] _I = { A } $=
    ( cid cec csn cima df-ec imai eqtri ) ABCBADZEIABFIGH $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Equality theorem for quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    qseq1 $p |- ( A = B -> ( A /. C ) = ( B /. C ) ) $=
      ( vy vx wceq cv cec wrex cab cqs rexeq abbidv df-qs 3eqtr4g ) ABFZDGEGCHF
      ZEAIZDJQEBIZDJACKBCKPRSDQEABLMEDACNEDBCNO $.

    $( Equality theorem for quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    qseq2 $p |- ( A = B -> ( C /. A ) = ( C /. B ) ) $=
      ( vy vx wceq cec wrex cab cqs eceq2 eqeq2d rexbidv abbidv df-qs 3eqtr4g
      cv ) ABFZDQZEQZAGZFZECHZDISTBGZFZECHZDICAJCBJRUCUFDRUBUEECRUAUDSABTKLMNED
      CAOEDCBOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( Closed form of ~ elqs .  (Contributed by Rodolfo Medina,
       12-Oct-2010.) $)
    elqsg $p |- ( B e. V ->
      ( B e. ( A /. R ) <-> E. x e. A B = [ x ] R ) ) $=
      ( vy cv cec wceq wrex cqs eqeq1 rexbidv df-qs elab2g ) FGZAGDHZIZABJCQIZA
      BJFCBDKEPCIRSABPCQLMAFBDNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    elqs.1 $e |- B e. _V $.
    $( Membership in a quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    elqs $p |- ( B e. ( A /. R ) <-> E. x e. A B = [ x ] R ) $=
      ( cvv wcel cqs cv cec wceq wrex wb elqsg ax-mp ) CFGCBDHGCAIDJKABLMEABCDF
      NO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( Membership in a quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    elqsi $p |- ( B e. ( A /. R ) -> E. x e. A B = [ x ] R ) $=
      ( cqs wcel cv cec wceq wrex elqsg ibi ) CBDEZFCAGDHIABJABCDMKL $.
  $}

  ${
    $d R x $.  $d B x $.  $d A x $.
    $( Membership of an equivalence class in a quotient set.  (Contributed by
       Jeff Madsen, 10-Jun-2010.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ecelqsg $p |- ( ( R e. V /\ B e. A ) -> [ B ] R e. ( A /. R ) ) $=
      ( vx wcel cec cv wceq wrex cqs eqid eceq1 eqeq2d rspcev mpan2 ecexg elqsg
      cvv wb syl biimpar sylan2 ) BAFZCDFZBCGZEHZCGZIZEAJZUFACKFZUDUFUFIZUJUFLU
      IULEBAUGBIUHUFUFUGBCMNOPUEUKUJUEUFSFUKUJTBDCQEAUFCSRUAUBUC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    ecelqsi.1 $e |- R e. _V $.
    $( Membership of an equivalence class in a quotient set.  (Contributed by
       NM, 25-Jul-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ecelqsi $p |- ( B e. A -> [ B ] R e. ( A /. R ) ) $=
      ( cvv wcel cec cqs ecelqsg mpan ) CEFBAFBCGACHFDABCEIJ $.
  $}

  ${
    ecopqsi.1 $e |- R e. _V $.
    ecopqsi.2 $e |- S = ( ( A X. A ) /. R ) $.
    $( "Closure" law for equivalence class of ordered pairs.  (Contributed by
       NM, 25-Mar-1996.) $)
    ecopqsi $p |- ( ( B e. A /\ C e. A ) -> [ <. B , C >. ] R e. S ) $=
      ( wcel wa cop cxp cec opelxpi cqs ecelqsi syl6eleqr syl ) BAHCAHIBCJZAAKZ
      HZRDLZEHBCAAMTUASDNESRDFOGPQ $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( A quotient set exists.  (Contributed by FL, 19-May-2007.)  (Revised by
       Mario Carneiro, 9-Jul-2014.) $)
    qsexg $p |- ( A e. V -> ( A /. R ) e. _V ) $=
      ( vy vx wcel cqs cv cec wceq wrex cab cvv df-qs abrexexg syl5eqel ) ACFAB
      GDHEHBIZJEAKDLMEDABNEDAQCOP $.
  $}

  ${
    $d x y A $.  $d x y R $.
    qsex.1 $e |- A e. _V $.
    $( A quotient set exists.  (Contributed by NM, 14-Aug-1995.) $)
    qsex $p |- ( A /. R ) e. _V $=
      ( cvv wcel cqs qsexg ax-mp ) ADEABFDECABDGH $.
  $}

  ${
    $d x y A $.  $d x y R $.  $d x V $.
    $( The union of a quotient set.  (Contributed by NM, 9-Dec-2008.) $)
    uniqs $p |- ( R e. V -> U. ( A /. R ) = ( R " A ) ) $=
      ( vy vx wcel cv cec wceq wrex cab cuni ciun cqs cima wral ecexg ralrimivw
      cvv dfiun2g syl eqcomd df-qs unieqi csn df-ec a1i iuneq2i imaiun 3eqtr2ri
      iunid imaeq2i 3eqtr4g ) BCFZDGEGZBHZIEAJDKZLZEAUPMZABNZLBAOZUNUSURUNUPSFZ
      EAPUSURIUNVBEAUOCBQREDAUPSTUAUBUTUQEDABUCUDUSEABUOUEZOZMBEAVCMZOVAEAUPVDU
      PVDIUOAFUOBUFUGUHEBAVCUIVEABEAUKULUJUM $.
  $}

  ${
    $d x y A $.  $d x y ph $.  $d x y R $.
    qsss.1 $e |- ( ph -> R Er A ) $.
    $( A quotient set is a set of subsets of the base set.  (Contributed by
       Mario Carneiro, 9-Jul-2014.)  (Revised by Mario Carneiro,
       12-Aug-2015.) $)
    qsss $p |- ( ph -> ( A /. R ) C_ ~P A ) $=
      ( vx vy cqs cpw cv wcel cec wceq wrex vex elqs wss sseq1 syl5ibrcom selpw
      ecss syl6ibr rexlimdvw syl5bi ssrdv ) AEBCGZBHZEIZUEJUGFIZCKZLZFBMAUGUFJZ
      FBUGCENOAUJUKFBAUJUGBPZUKAULUJUIBPAUHCBDTUGUIBQREBSUAUBUCUD $.

    qsss.2 $e |- ( ph -> R e. V ) $.
    $( The union of a quotient set.  (Contributed by Mario Carneiro,
       11-Jul-2014.) $)
    uniqs2 $p |- ( ph -> U. ( A /. R ) = A ) $=
      ( cqs cuni crn cdm cima wcel wceq uniqs syl erdm imaeq2d eqtr4d imadmrn
      wer syl6eq errn eqtrd ) ABCGHZCIZBAUDCCJZKZUEAUDCBKZUGACDLUDUHMFBCDNOAUFB
      CABCTZUFBMEBCPOQRCSUAAUIUEBMEBCUBOUC $.
  $}

  ${
    $d x y A $.  $d x y R $.
    snec.1 $e |- A e. _V $.
    $( The singleton of an equivalence class.  (Contributed by NM,
       29-Jan-1999.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    snec $p |- { [ A ] R } = ( { A } /. R ) $=
      ( vy vx cv cec wceq csn wrex cab cqs eceq1 eqeq2d rexsn abbii df-qs df-sn
      3eqtr4ri ) DFZEFZBGZHZEAIZJZDKTABGZHZDKUDBLUFIUEUGDUCUGEACUAAHUBUFTUAABMN
      OPEDUDBQDUFRS $.
  $}

  ${
    ecqs.1 $e |- R e. _V $.
    $( Equivalence class in terms of quotient set.  (Contributed by NM,
       29-Jan-1999.) $)
    ecqs $p |- [ A ] R = U. ( { A } /. R ) $=
      ( cec csn cima cqs cuni df-ec cvv wcel wceq uniqs ax-mp eqtr4i ) ABDBAEZF
      ZPBGHZABIBJKRQLCPBJMNO $.
  $}

  ${
    $d y A $.
    ecid.1 $e |- A e. _V $.
    $( A set is equal to its converse epsilon coset.  (Note: converse epsilon
       is not an equivalence relation.)  (Contributed by NM, 13-Aug-1995.)
       (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ecid $p |- [ A ] `' _E = A $=
      ( vy cep ccnv cec cv wcel wbr vex elec brcnv epelc 3bitri eqriv ) CADEZFZ
      ACGZQHARPIRADIRAHRAPCJZBKARDBSLRABMNO $.
  $}

  ${
    $d y A $.  $d y V $.
    $( A set is equal to its converse epsilon coset.  (Note: converse epsilon
       is not an equivalence relation.)  (Contributed by Jim Kingdon,
       8-Jan-2020.) $)
    ecidg $p |- ( A e. V -> [ A ] `' _E = A ) $=
      ( vy wcel cep ccnv cec cv wbr cvv wb elecg mpan brcnvg mpan2 epelg 3bitrd
      vex eqrdv ) ABDZCAEFZGZATCHZUBDZAUCUAIZUCAEIZUCADUCJDZTUDUEKCRZUCAUAJBLMT
      UGUEUFKUHAUCBJENOUCABPQS $.
  $}

  ${
    $d x y A $.
    $( A set is equal to its quotient set mod converse epsilon.  (Note:
       converse epsilon is not an equivalence relation.)  (Contributed by NM,
       13-Aug-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    qsid $p |- ( A /. `' _E ) = A $=
      ( vy vx cep ccnv cqs cv cec wceq wrex wcel vex eqeq2i equcom bitri rexbii
      ecid elqs risset 3bitr4i eqriv ) BADEZFZABGZCGZUBHZIZCAJUEUDIZCAJUDUCKUDA
      KUGUHCAUGUDUEIUHUFUEUDUECLQMBCNOPCAUDUBBLRCUDASTUA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x ps $.  $d x ch $.
    ectocl.1 $e |- S = ( B /. R ) $.
    ectocl.2 $e |- ( [ x ] R = A -> ( ph <-> ps ) ) $.
    ${
      ectocld.3 $e |- ( ( ch /\ x e. B ) -> ph ) $.
      $( Implicit substitution of class for equivalence class.  (Contributed by
         Mario Carneiro, 9-Jul-2014.) $)
      ectocld $p |- ( ( ch /\ A e. S ) -> ps ) $=
        ( wcel cv cec wceq wrex cqs elqsi eleq2s wa wb syl5ibcom rexlimdva syl5
        eqcoms imp ) CEHLZBUGEDMZGNZOZDFPZCBUKEFGQHDFEGRISCUJBDFCUHFLTAUJBKABUA
        UIEJUEUBUCUDUF $.
    $}

    ectocl.3 $e |- ( x e. B -> ph ) $.
    $( Implicit substitution of class for equivalence class.  (Contributed by
       NM, 23-Jul-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ectocl $p |- ( A e. S -> ps ) $=
      ( wtru wcel tru cv adantl ectocld mpan ) KDGLBMABKCDEFGHICNELAKJOPQ $.
  $}

  ${
    $d x y R $.  $d x y A $.  $d x y B $.
    $( An element of a quotient set is inhabited.  (Contributed by Jim Kingdon,
       21-Aug-2019.) $)
    elqsn0m $p |- ( ( dom R = A /\ B e. ( A /. R ) ) -> E. x x e. B ) $=
      ( vy cv cec wcel wex cdm wceq cqs eqid eleq2 exbidv biimpar ecdmn0m sylib
      wa ectocld ) AFZEFZDGZHZAIZUACHZAIDJZBKZECBDBDLZUIMUCCKUDUFAUCCUANOUHUBBH
      ZSUBUGHZUEUHUKUJUGBUBNPAUBDQRT $.

    $( A quotient set doesn't contain the empty set.  (Contributed by NM,
       24-Aug-1995.) $)
    elqsn0 $p |- ( ( dom R = A /\ B e. ( A /. R ) ) -> B =/= (/) ) $=
      ( vx cdm wceq cqs wcel wa cv wex c0 wne elqsn0m n0r syl ) CEAFBACGHIDJBHD
      KBLMDABCNDBOP $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.
    $( Membership of an equivalence class in a quotient set.  (Contributed by
       NM, 30-Jul-1995.) $)
    ecelqsdm $p |- ( ( dom R = A /\ [ B ] R e. ( A /. R ) ) -> B e. A ) $=
      ( vx cdm wceq cec cqs wcel wa cv wex elqsn0m ecdmn0m sylibr simpl eleqtrd
      ) CEZAFZBCGZACHIZJZBRAUBDKTIDLBRIDATCMDBCNOSUAPQ $.
  $}

  ${
    $d x A $.
    $( A square Cartesian product is an equivalence relation (in general it's
       not a poset).  (Contributed by Jim Kingdon, 22-Aug-2019.) $)
    xpiderm $p |- ( E. x x e. A -> ( A X. A ) Er A ) $=
      ( wcel wex cxp wrel cdm wceq ccnv ccom cun wss wer relxp a1i dmxpm xpidtr
      cv cnvxp uneq1 unss2 wi unidm wa eqtr sseq2 biimpd syl mpan2 syl2im df-er
      mp2 syl3anbrc ) ARBCADZBBEZFZUOGBHUOIZUOUOJZKZUOLZBUOMUPUNBBNOABBPUTUNUQU
      OHZURUOLZUTBBSBQVAUQUOKZUOUOKZHZVBUSVCLZUTUQUOUOTURUOUQUAVEVDUOHZVFUTUBZU
      OUCVEVGUDVCUOHZVHVCVDUOUEVIVFUTVCUOUSUFUGUHUIUJULOBUOUKUM $.
  $}

  ${
    $d a u v w x A $.  $d u v w x B $.  $d u v w R $.  $d a y A $.
    $( The intersection of a nonempty family of equivalence relations is an
       equivalence relation.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    iinerm $p |- ( ( E. y y e. A /\ A. x e. A R Er B ) ->
                  |^|_ x e. A R Er B ) $=
      ( va vu cv wcel wral bitri wa cvv wbr cop df-br wb opex eliin ax-mp vv vw
      wex wer ciin eleq1 cbvexv cxp wrel r19.2m errel df-rel sylib reximi iinss
      wss wrex 3syl sylibr ersymb biimpd 3imtr3g ral2imi adantl vex 3imtr4g imp
      wi r19.26 ertr anbi12i syl5bir simpl simpr erref expcom ralimdv com12 cdm
      id opeldm erdm eleq2d biimpa sylan2 rexlimivw syl ex expdimp impbid iserd
      syl6bbr sylanbr ) BHZCIZBUCZAHZCIZAUCZDEUDZACJZDACEUEZUDWSFHZCIZFUCWPWRXD
      AFWQXCCUFUGXDWOFBXCWNCUFUGKWSXALZGUAUBDXBXEXBMMUHZUPZXBUIXEWTACUQEXFUPZAC
      UQXGWTACUJWTXHACWTEUIXHDEUKEULUMUNACEXFUOURXBULUSXEGHZUAHZXBNZXJXIXBNZXEX
      IXJOZEIZACJZXJXIOZEIZACJZXKXLXAXOXRVHWSWTXNXQACWTXIXJENZXJXIENZXNXQWTXSXT
      WTXIXJEDWTVTZUTVAXIXJEPZXJXIEPVBVCVDXKXMXBIZXOXIXJXBPXMMIYCXOQXIXJGVEZUAV
      EZRAXMCEMSTKZXLXPXBIZXRXJXIXBPXPMIYGXRQXJXIYEYDRAXPCEMSTKVFVGXEXKXJUBHZXB
      NZLZXIYHXBNZXEXOXJYHOZEIZACJZLZXIYHOZEIZACJZYJYKYOXNYMLZACJZXEYRXNYMACVIX
      AYTYRVHWSWTYSYQACWTXSXJYHENZLXIYHENYSYQWTXIXJYHEDYAVJXSXNUUAYMYBXJYHEPVKX
      IYHEPVBVCVDVLXKXOYIYNYFYIYLXBIZYNXJYHXBPYLMIUUBYNQXJYHYEUBVEZRAYLCEMSTKVK
      YKYPXBIZYRXIYHXBPYPMIUUDYRQXIYHYDUUCRAYPCEMSTKVFVGXEXIDIZXIXIOZEIZACJZXIX
      IXBNZXEUUEUUHXAUUEUUHVHWSUUEXAUUHUUEWTUUGACWTUUEUUGWTUUELZXIXIENUUGUUJXIE
      DWTUUEVMWTUUEVNVOXIXIEPUMVPVQVRVDWSXAUUHUUEXAUUHLWTUUGLZACJZWSUUEWTUUGACV
      IWSUULUUEWSUULLUUKACUQUUEUUKACUJUUKUUEACUUGWTXIEVSZIZUUEXIXIEYDYDWAWTUUNU
      UEWTUUMDXIDEWBWCWDWEWFWGWHVLWIWJUUIUUFXBIZUUHXIXIXBPUUFMIUUOUUHQXIXIYDYDR
      AUUFCEMSTKWLWKWM $.

    $( The relative intersection of a family of equivalence relations is an
       equivalence relation.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    riinerm $p |- ( ( E. y y e. A /\ A. x e. A R Er B ) ->
      ( ( B X. B ) i^i |^|_ x e. A R ) Er B ) $=
      ( va cv wcel wex wer wral wa cxp ciin cin iinerm wb eleq1 cbvexv bitri
      wceq wss erssxp ralimi riinm sylan ereq1 syl sylan2br ancoms mpbird ) BGZ
      CHZBIZDEJZACKZLDDDMZACENZOZJZDURJZABCDEPUPUNUTVAQZUNUPAGZCHZAIZVBVEFGZCHZ
      FIUNVDVGAFVCVFCRSVGUMFBVFULCRSTUPVELUSURUAZVBUPEUQUBZACKVEVHUOVIACDEUCUDA
      UQECUEUFDUSURUGUHUIUJUK $.
  $}

  ${
    $d x y z B $.  $d x y z ph $.  $d x y z R $.
    erinxp.r $e |- ( ph -> R Er A ) $.
    erinxp.a $e |- ( ph -> B C_ A ) $.
    $( A restricted equivalence relation is an equivalence relation.
       (Contributed by Mario Carneiro, 10-Jul-2015.)  (Revised by Mario
       Carneiro, 12-Aug-2015.) $)
    erinxp $p |- ( ph -> ( R i^i ( B X. B ) ) Er B ) $=
      ( vx vy vz wrel cv wbr wa wcel w3a brinxp2 sylib simp2d adantr simp3d cxp
      cin wss inss2 relxp relss mp2 a1i simpr simp1d wer ersym syl3anbrc simprr
      adantrr ertrd sselda erref ex pm4.71rd brin brxp anidm bitri anbi2i iserd
      syl6bbr ) AGHICDCCUAZUBZVIJZAVIVHUCVHJVJDVHUDCCUEVIVHUFUGUHAGKZHKZVILZMZV
      LCNZVKCNZVLVKDLVLVKVILVNVPVOVKVLDLZVNVMVPVOVQOAVMUIVKVLCCDPQZRVNVPVOVQVRU
      JZVNVKVLDBABDUKZVMESVNVPVOVQVRTZULVLVKCCDPUMAVMVLIKZVILZMZMZVPWBCNZVKWBDL
      VKWBVILAVMVPWCVSUOWEVOWFVLWBDLZWEWCVOWFWGOAVMWCUNVLWBCCDPQZRWEVKVLWBDBAVT
      WDESAVMVQWCWAUOWEVOWFWGWHTUPVKWBCCDPUMAVPVKVKDLZVPMZVKVKVILZAVPWIAVPWIAVP
      MVKDBAVTVPESACBVKFUQURUSUTWKWIVKVKVHLZMWJVKVKDVHVAWLVPWIWLVPVPMVPVKVKCCVB
      VPVCVDVEVDVGVF $.
  $}

  $( Restrict the relation in an equivalence class to a base set.  (Contributed
     by Mario Carneiro, 10-Jul-2015.) $)
  ecinxp $p |- ( ( ( R " A ) C_ A /\ B e. A ) ->
      [ B ] R = [ B ] ( R i^i ( A X. A ) ) ) $=
    ( cima wss wcel csn cxp cin cec wceq simpr snssd df-ss sylib imaeq2d ineq1d
    wa imass2 df-ec syl simpl sstrd eqtr2d imainrect syl6eqr 3eqtr4g ) CADZAEZB
    AFZRZCBGZDZCAAHIZULDZBCJBUNJUKUMCULAIZDZAIZUOUKURUMAIZUMUKUQUMAUKUPULCUKULA
    EZUPULKUKBAUIUJLMZULANOPQUKUMAEUSUMKUKUMUHAUKUTUMUHEVAULACSUAUIUJUBUCUMANOU
    DAACULUEUFBCTBUNTUG $.

  ${
    $d x y A $.  $d x B $.  $d x y C $.  $d x y ph $.  $d x y R $.
    $( Restrict the equivalence relation in a quotient set to the base set.
       (Contributed by Mario Carneiro, 23-Feb-2015.) $)
    qsinxp $p |- ( ( R " A ) C_ A ->
        ( A /. R ) = ( A /. ( R i^i ( A X. A ) ) ) ) $=
      ( vy vx cima wss cv cec wceq wrex cab cxp cin cqs wcel wa ecinxp rexbidva
      eqeq2d df-qs abbidv 3eqtr4g ) BAEAFZCGZDGZBHZIZDAJZCKUDUEBAALMZHZIZDAJZCK
      ABNAUINUCUHULCUCUGUKDAUCUEAOPUFUJUDAUEBQSRUADCABTDCAUITUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x R $.  $d x X $.
    $( If an element of a quotient set contains a given element, it is equal to
       the equivalence class of the element.  (Contributed by Mario Carneiro,
       12-Aug-2015.) $)
    qsel $p |- ( ( R Er X /\ B e. ( A /. R ) /\ C e. B ) -> B = [ C ] R ) $=
      ( vx wer cqs wcel cec wceq cv wi eqid eleq2 eqeq1 imbi12d wbr wa cvv syl5
      wb vex elecg mpan2 ibi simpll simpr erthi ex ectocld 3impia ) EDGZBADHZIC
      BIZBCDJZKZCFLZDJZIZUSUPKZMUOUQMUMFBADUNUNNUSBKUTUOVAUQUSBCOUSBUPPQUTURCDR
      ZUMURAIZSZVAUTVBUTURTIUTVBUBFUCCURDUSTUDUEUFVDVBVAVDVBSURCDEUMVCVBUGVDVBU
      HUIUJUAUKUL $.
  $}

  ${
    $d y z A $.  $d x B $.  $d x C $.  $d x D $.  $d x y z ph $.  $d x y z R $.
    $d y z F $.  $d x y z X $.  $d x y z Y $.
    qlift.1 $e |- F = ran ( x e. X |-> <. [ x ] R , A >. ) $.
    qlift.2 $e |- ( ( ph /\ x e. X ) -> A e. Y ) $.
    qlift.3 $e |- ( ph -> R Er X ) $.
    qlift.4 $e |- ( ph -> X e. _V ) $.
    $( ` F ` , a function lift, is a subset of ` R X. S ` .  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    qliftlem $p |- ( ( ph /\ x e. X ) -> [ x ] R e. ( X /. R ) ) $=
      ( cvv wcel cv cec cqs wer erex sylc ecelqsg sylan ) ADLMZBNZFMUCDOFDPMAFD
      QFLMUBJKFDLRSFUCDLTUA $.

    $( ` F ` , a function lift, is a subset of ` R X. S ` .  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    qliftrel $p |- ( ph -> F C_ ( ( X /. R ) X. Y ) ) $=
      ( cv cec cqs qliftlem fliftrel ) ABBLDMCFDNGEFHABCDEFGHIJKOIP $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    qliftel $p |- ( ph -> ( [ C ] R F D <-> E. x e. X ( C R x /\ D = A ) ) ) $=
      ( cec wbr cv wceq wa wrex cqs qliftlem wcel wer adantr simpr erth2 anbi1d
      fliftel rexbidva bitr4d ) ADFNZEGOUKBPZFNZQZECQZRZBHSDULFOZUORZBHSABUMCUK
      EHFTIGHJABCFGHIJKLMUAKUHAURUPBHAULHUBZRZUQUNUOUTDULFHAHFUCUSLUDAUSUEUFUGU
      IUJ $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    qliftel1 $p |- ( ( ph /\ x e. X ) -> [ x ] R F A ) $=
      ( cv cec cqs qliftlem fliftel1 ) ABBLDMCFDNGEFHABCDEFGHIJKOIP $.

    ${
      qliftfun.4 $e |- ( x = y -> A = B ) $.
      $( The function ` F ` is the unique function defined by
         ` F `` [ x ] = A ` , provided that the well-definedness condition
         holds.  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
      qliftfun $p |- ( ph -> ( Fun F <-> A. x A. y ( x R y -> A = B ) ) ) $=
        ( cv cec wceq wi wal wa wfun wral wbr cqs qliftlem fliftfun wcel adantr
        eceq1 wer simpr ercl ercl2 jca ex pm4.71rd simprl pm5.32da bitrd imbi1d
        erth impexp syl6bb 2albidv r2al syl6bbr bitr4d ) AGUABOZFPZCOZFPZQZDEQZ
        RZCHUBBHUBZVHVJFUCZVMRZCSBSZABCVIDVKEHFUDIGHJABDFGHIJKLMUEKVHVJFUINUFAV
        RVHHUGZVJHUGZTZVNRZCSBSVOAVQWBBCAVQWAVLTZVMRWBAVPWCVMAVPWAVPTWCAVPWAAVP
        WAAVPTZVSVTWDVHVJFHAHFUJZVPLUHZAVPUKZULWDVHVJFHWFWGUMUNUOUPAWAVPVLAWATV
        HVJFHAWEWALUHAVSVTUQVAURUSUTWAVLVMVBVCVDVNBCHHVEVFVG $.

      qliftfund.6 $e |- ( ( ph /\ x R y ) -> A = B ) $.
      $( The function ` F ` is the unique function defined by
         ` F `` [ x ] = A ` , provided that the well-definedness condition
         holds.  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
      qliftfund $p |- ( ph -> Fun F ) $=
        ( wfun cv wbr wceq wal wi ex alrimivv qliftfun mpbird ) AGPBQCQFRZDESZU
        AZCTBTAUHBCAUFUGOUBUCABCDEFGHIJKLMNUDUE $.
    $}

    $( The function ` F ` is the unique function defined by
       ` F `` [ x ] = A ` , provided that the well-definedness condition
       holds.  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
    qliftfuns $p |- ( ph -> ( Fun F <->
      A. y A. z ( y R z -> [_ y / x ]_ A = [_ z / x ]_ A ) ) ) $=
      ( cv csb cec cop cmpt crn wcel nfcv nfcsb1v nfop weq eceq1 csbeq1a cbvmpt
      opeq12d rneqi eqtri wral ralrimiva nfel1 eleq1d mpan9 csbeq1 qliftfun
      rspc ) ACDBCNZEOZBDNZEOFGHIGBHBNZFPZEQZRZSCHUSFPZUTQZRZSJVEVHBCHVDVGCVDUA
      BVFUTBVFUABUSEUBZUCBCUDZVCVFEUTVBUSFUEBUSEUFZUHUGUIUJAEITZBHUKUSHTUTITZAV
      LBHKULVLVMBUSHBUTIVIUMVJEUTIVKUNURUOLMBUSVAEUPUQ $.

    $( The domain and range of the function ` F ` .  (Contributed by Mario
       Carneiro, 23-Dec-2016.) $)
    qliftf $p |- ( ph -> ( Fun F <-> F : ( X /. R ) --> Y ) ) $=
      ( vy wfun cv cec cmpt crn wf cqs wceq qliftlem fliftf wrex cab df-qs eqid
      rnmpt eqtr4i a1i feq2d bitr4d ) AEMBFBNDOZPZQZGERFDSZGERABULCUOGEFHABCDEF
      GHIJKUAIUBAUOUNGEUOUNTAUOLNULTBFUCLUDUNBLFDUEBLFULUMUMUFUGUHUIUJUK $.

    qliftval.4 $e |- ( x = C -> A = B ) $.
    qliftval.6 $e |- ( ph -> Fun F ) $.
    $( The value of the function ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    qliftval $p |- ( ( ph /\ C e. X ) -> ( F ` [ C ] R ) = B ) $=
      ( cv cec cqs qliftlem eceq1 fliftval ) ABBPZFQCEFQDHFRIGHEJABCFGHIJKLMSKU
      BEFTNOUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d x y z ps $.
    ecoptocl.1 $e |- S = ( ( B X. C ) /. R ) $.
    ecoptocl.2 $e |- ( [ <. x , y >. ] R = A -> ( ph <-> ps ) ) $.
    ecoptocl.3 $e |- ( ( x e. B /\ y e. C ) -> ph ) $.
    $( Implicit substitution of class for equivalence class of ordered pair.
       (Contributed by NM, 23-Jul-1995.) $)
    ecoptocl $p |- ( A e. S -> ps ) $=
      ( vz cxp cqs wcel cv cec wceq wi wrex elqsi cop eceq1 eqeq2d imbi1d wa wb
      eqid eqcoms syl5ibcom optocl rexlimiv syl eleq2s ) BEFGNZHOZIEUQPEMQZHRZS
      ZMUPUABMUPEHUBUTBMUPECQZDQZUCZHRZSZBTUTBTCDURFGUPUPUIVCURSZVEUTBVFVDUSEVC
      URHUDUEUFVAFPVBGPUGAVEBLABUHVDEKUJUKULUMUNJUO $.
  $}

  ${
    $d x y z w A $.  $d z w B $.  $d x y z w C $.  $d x y z w D $.  $d z w S $.
    $d x y z w R $.  $d x y ps $.  $d z w ch $.
    2ecoptocl.1 $e |- S = ( ( C X. D ) /. R ) $.
    2ecoptocl.2 $e |- ( [ <. x , y >. ] R = A -> ( ph <-> ps ) ) $.
    2ecoptocl.3 $e |- ( [ <. z , w >. ] R = B -> ( ps <-> ch ) ) $.
    2ecoptocl.4 $e |- ( ( ( x e. C /\ y e. D ) /\
                      ( z e. C /\ w e. D ) ) -> ph ) $.
    $( Implicit substitution of classes for equivalence classes of ordered
       pairs.  (Contributed by NM, 23-Jul-1995.) $)
    2ecoptocl $p |- ( ( A e. S /\ B e. S ) -> ch ) $=
      ( wcel wi cv cop cec wceq imbi2d wa ex ecoptocl com12 impcom ) IMRHMRZCUJ
      BSUJCSFGIJKLMNFTZGTZUALUBIUCBCUJPUDUJUKJRULKRUEZBUMASUMBSDEHJKLMNDTZETZUA
      LUBHUCABUMOUDUNJRUOKRUEUMAQUFUGUHUGUI $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d v u C $.  $d x y z w v u D $.
    $d z w v u S $.  $d x y z w v u R $.  $d x y ps $.  $d z w ch $.
    $d v u th $.
    3ecoptocl.1 $e |- S = ( ( D X. D ) /. R ) $.
    3ecoptocl.2 $e |- ( [ <. x , y >. ] R = A -> ( ph <-> ps ) ) $.
    3ecoptocl.3 $e |- ( [ <. z , w >. ] R = B -> ( ps <-> ch ) ) $.
    3ecoptocl.4 $e |- ( [ <. v , u >. ] R = C -> ( ch <-> th ) ) $.
    3ecoptocl.5 $e |- ( ( ( x e. D /\ y e. D ) /\
                      ( z e. D /\ w e. D ) /\ ( v e. D /\ u e. D ) ) -> ph ) $.
    $( Implicit substitution of classes for equivalence classes of ordered
       pairs.  (Contributed by NM, 9-Aug-1995.) $)
    3ecoptocl $p |- ( ( A e. S /\ B e. S /\ C e. S ) -> th ) $=
      ( wcel wa wi cop cec wceq imbi2d 3expib ecoptocl com12 2ecoptocl 3impib
      cv ) KPUBZLPUBZMPUBZDUPUQUCUODUOBUDUOCUDUODUDGHIJLMNNOPQGUNZHUNZUEOUFLUGB
      CUOSUHIUNZJUNZUEOUFMUGCDUOTUHUOURNUBUSNUBUCZUTNUBVANUBUCZUCZBVDAUDVDBUDEF
      KNNOPQEUNZFUNZUEOUFKUGABVDRUHVENUBVFNUBUCVBVCAUAUIUJUKULUKUM $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.  $d x y z w v u .~ $.  $d x y H $.  $d z w v u G $.
    $d x y ph $.  $d z w v u ps $.
    brecop.1 $e |- .~ e. _V $.
    brecop.2 $e |- .~ Er ( G X. G ) $.
    brecop.4 $e |- H = ( ( G X. G ) /. .~ ) $.
    brecop.5 $e |- .<_ = { <. x , y >. | ( ( x e. H /\ y e. H ) /\
                      E. z E. w E. v E. u ( ( x = [ <. z , w >. ] .~ /\
                      y = [ <. v , u >. ] .~ ) /\ ph ) ) } $.
    brecop.6 $e |- ( ( ( ( z e. G /\ w e. G ) /\ ( A e. G /\ B e. G ) ) /\
                       ( ( v e. G /\ u e. G ) /\ ( C e. G /\ D e. G ) ) ) ->
                     ( ( [ <. z , w >. ] .~ = [ <. A , B >. ] .~ /\
                         [ <. v , u >. ] .~ = [ <. C , D >. ] .~ ) ->
                     ( ph <-> ps ) ) ) $.
    $( Binary relation on a quotient set.  Lemma for real number construction.
       (Contributed by NM, 29-Jan-1996.) $)
    brecop $p |- ( ( ( A e. G /\ B e. G ) /\ ( C e. G /\ D e. G ) ) ->
                ( [ <. A , B >. ] .~ .<_ [ <. C , D >. ] .~ <-> ps ) ) $=
      ( wcel wa cop cec wbr cv wceq wex ecopqsi copab df-br eleq2i bitri anbi1d
      wb eqeq1 4exbidv anbi2d opelopab2 syl5bb syl2an opeq12 eceq1d anim12i cxp
      wi opelxpi opelxp wer a1i id ereldm syl5bbr syl5ibr im2anan9 an4s ex mpdd
      com13 pm5.74d cgsex4g eqcom anbi12i biimt anbi12d 3bitr4d bitrd ) INUBJNU
      BUCZKNUBLNUBUCZUCZIJUDZMUEZKLUDZMUEZPUFZWMEUGZFUGZUDZMUEZUHZWOGUGZHUGZUDZ
      MUEZUHZUCZAUCZHUIGUIFUIEUIZBWIWMOUBZWOOUBZWPXIUPWJNIJMOQSUJNKLMOQSUJWPWMW
      OUDZCUGZOUBDUGZOUBUCXMWTUHZXNXEUHZUCZAUCZHUIGUIFUIEUIZUCCDUKZUBZXJXKUCXIW
      PXLPUBYAWMWOPULPXTXLTUMUNXSXAXPUCZAUCZHUIGUIFUIEUIXICDWMWOOOXMWMUHZXRYCEF
      GHYDXQYBAYDXOXAXPXMWMWTUQUOUOURXNWOUHZYCXHEFGHYEYBXGAYEXPXFXAXNWOXEUQUSUO
      URUTVAVBWKWTWMUHZXEWOUHZUCZWKAVGZUCZHUIGUIFUIEUIWKBVGZXIBYIYKYHEFGHIJKLNN
      WQIUHWRJUHUCZYFXBKUHXCLUHUCZYGYLWSWLMWQWRIJVCVDYMXDWNMXBXCKLVCVDVEYHWKABY
      HWKWQNUBWRNUBUCZXBNUBXCNUBUCZUCZABUPZYFWIYNYGWJYOWIYNYFWLNNVFZUBZIJNNVHYN
      WSYRUBYFYSWQWRNNVIYFWSWLMYRYRMVJZYFRVKYFVLVMVNVOWJYOYGWNYRUBZKLNNVHYOXDYR
      UBYGUUAXBXCNNVIYGXDWNMYRYTYGRVKYGVLVMVNVOVPYPWKYHYQYPWKYHYQVGZYNWIYOWJUUB
      UAVQVRVTVSWAWBWKXHYJEFGHWKXGYHAYIXGYHUPWKXAYFXFYGWMWTWCWOXEWCWDVKWKAWEWFU
      RWKBWEWGWH $.
  $}

  ${
    $d p q r s t u w x y z A $.  $d p q r s t u w x y z B $.  $d p q x y z L $.
    $d p q w x y z J $.  $d p q r s t u x y z P $.  $d p q r s t u w x y z R $.
    $d p q w x y z K $.  $d p q r s t u x y z Q $.  $d p q r s t u w x y z S $.
    $d p q r s t u w x y z .+ $.  $d p q r s t u w x y z ph $.
    $d p q r s t u w x y z T $.  $d p q r s t u w z X $.
    $d p q r s t u w z Y $.
    eropr.1 $e |- J = ( A /. R ) $.
    eropr.2 $e |- K = ( B /. S ) $.
    eropr.3 $e |- ( ph -> T e. Z ) $.
    eropr.4 $e |- ( ph -> R Er U ) $.
    eropr.5 $e |- ( ph -> S Er V ) $.
    eropr.6 $e |- ( ph -> T Er W ) $.
    eropr.7 $e |- ( ph -> A C_ U ) $.
    eropr.8 $e |- ( ph -> B C_ V ) $.
    eropr.9 $e |- ( ph -> C C_ W ) $.
    eropr.10 $e |- ( ph -> .+ : ( A X. B ) --> C ) $.
    eropr.11 $e |- ( ( ph /\ ( ( r e. A /\ s e. A ) /\ ( t e. B /\ u e. B ) ) )
                      -> ( ( r R s /\ t S u ) -> ( r .+ t ) T ( s .+ u ) ) ) $.
    $( Lemma for ~ eroprf .  (Contributed by Jeff Madsen, 10-Jun-2010.)
       (Revised by Mario Carneiro, 9-Jul-2014.) $)
    eroveu $p |- ( ( ph /\ ( X e. J /\ Y e. K ) ) -> E! z E. p e. A E. q e. B
                ( ( X = [ p ] R /\ Y = [ q ] S ) /\ z = [ ( p .+ q ) ] T ) ) $=
      ( vw wcel wa cv cec wceq co wrex wex weq wal weu cqs elqsi eleq2s anim12i
      wi adantl reeanv sylibr adantr ecexg elisset 3syl biantrud 2rexbidv mpbid
      19.42v bicomi rexbii rexcom4 bitri sylib eceq1 eqeq2d anbi1d oveq1 eceq1d
      cvv anbi12d anbi2d oveq2 cbvrex2v anbi12i bitr4i wbr wer wss simprll erth
      sseldd simprrl cxp wf fovrnd 3imtr3d eqeq2 biimprcd syl6 impd wb bi2anan9
      eqeq1 imbi12d syl5ibrcom anassrs rexlimdvva syl5bir alrimivv eu4 sylanbrc
      ) AQMUPZRNUPZUQZUQZQUCURZIUSZUTZRUBURZJUSZUTZUQZBURZYJYMHVAZKUSZUTZUQZUBF
      VBZUCEVBZBVCZUUCYPUOURZYSUTZUQZUBFVBUCEVBZUQZBUOVDZVKZUOVEBVEUUCBVFYIYPYT
      BVCZUQZUBFVBZUCEVBZUUDYIYPUBFVBUCEVBZUUOYIYLUCEVBZYOUBFVBZUQZUUPYHUUSAYFU
      UQYGUURUUQQEIVGMUCEQIVHUDVIUURRFJVGNUBFRJVHUEVIVJVLYLYOUCUBEFVMVNYIYPUUMU
      CUBEFYIUULYPYIKSUPZYSWMUPUULAUUTYHUFVOYRSKVPBYSWMVQVRVSVTWAUUOUUBBVCZUCEV
      BUUDUUNUVAUCEUUNUUABVCZUBFVBUVAUUMUVBUBFUVBUUMYPYTBWBWCWDUUAUBBFWEWFWDUUB
      UCBEWEWFWGYIUUKBUOAUUKYHUUIQUAURZIUSZUTZRDURZJUSZUTZUQZYQUVCUVFHVAZKUSZUT
      ZUQZDFVBZQTURZIUSZUTZRCURZJUSZUTZUQZUUEUVOUVRHVAZKUSZUTZUQZCFVBZUQZTEVBUA
      EVBZAUUJUWHUVNUAEVBZUWFTEVBZUQUUIUVNUWFUATEEVMUUCUWIUUHUWJUUAUVMUVEYOUQZY
      QUVCYMHVAZKUSZUTZUQUCUBUADEFUCUAVDZYPUWKYTUWNUWOYLUVEYOUWOYKUVDQYJUVCIWHW
      IWJUWOYSUWMYQUWOYRUWLKYJUVCYMHWKWLWIWNUBDVDZUWKUVIUWNUVLUWPYOUVHUVEUWPYNU
      VGRYMUVFJWHWIWOUWPUWMUVKYQUWPUWLUVJKYMUVFUVCHWPWLWIWNWQUUGUWEUVQYOUQZUUEU
      VOYMHVAZKUSZUTZUQUCUBTCEFUCTVDZYPUWQUUFUWTUXAYLUVQYOUXAYKUVPQYJUVOIWHWIWJ
      UXAYSUWSUUEUXAYRUWRKYJUVOYMHWKWLWIWNUBCVDZUWQUWAUWTUWDUXBYOUVTUVQUXBYNUVS
      RYMUVRJWHWIWOUXBUWSUWCUUEUXBUWRUWBKYMUVRUVOHWPWLWIWNWQWRWSAUWGUUJUATEEUWG
      UVMUWEUQZCFVBDFVBAUVCEUPZUVOEUPZUQZUQZUUJUVMUWEDCFFVMUXGUXCUUJDCFFAUXFUVF
      FUPZUVRFUPZUQZUXCUUJVKAUXFUXJUQZUQZUVMUWEUUJUXLUWEUUJVKUVMUVDUVPUTZUVGUVS
      UTZUQZUWDUQZUVKUUEUTZVKUXLUXOUWDUXQUXLUXOUVKUWCUTZUWDUXQVKUXLUVCUVOIWTZUV
      FUVRJWTZUQUVJUWBKWTUXOUXRUNUXLUXSUXMUXTUXNUXLUVCUVOILALIXAUXKUGVOUXLELUVC
      AELXBUXKUJVOAUXDUXEUXJXCZXEXDUXLUVFUVRJOAOJXAUXKUHVOUXLFOUVFAFOXBUXKUKVOA
      UXFUXHUXIXFZXEXDWNUXLUVJUWBKPAPKXAUXKUIVOUXLGPUVJAGPXBUXKULVOUXLUVCUVFGEF
      HAEFXGGHXHUXKUMVOUYAUYBXIXEXDXJUWDUXQUXRUUEUWCUVKXKXLXMXNUVMUWEUXPUUJUXQU
      VIUWEUXPXOUVLUVIUWAUXOUWDUVEUVQUXMUVHUVTUXNQUVDUVPXQRUVGUVSXQXPWJVOUVLUUJ
      UXQXOUVIYQUVKUUEXQVLXRXSXNXTYAYBYAYBVOYCUUCUUHBUOUUJUUAUUGUCUBEFUUJYTUUFY
      PYQUUEYSXQWOVTYDYE $.

    eropr.12 $e |- .+^ = { <. <. x , y >. , z >. | E. p e. A E. q e. B
                ( ( x = [ p ] R /\ y = [ q ] S ) /\ z = [ ( p .+ q ) ] T ) } $.
    $( Lemma for ~ eroprf .  (Contributed by Jeff Madsen, 10-Jun-2010.)
       (Revised by Mario Carneiro, 30-Dec-2014.) $)
    erovlem $p |- ( ph -> .+^ = ( x e. J , y e. K |->
      ( iota z E. p e. A E. q e. B
        ( ( x = [ p ] R /\ y = [ q ] S ) /\ z = [ ( p .+ q ) ] T ) ) ) ) $=
      ( vw cv cec wceq wa co wrex coprab wcel cio cmpt2 simpl reximi cqs eleq2i
      vex elqs bitri anbi12i reeanv bitr4i sylibr pm4.71ri weu eroveu iota1 syl
      wb eqcom syl6bb pm5.32da syl5bb oprabbidv df-mpt2 nfv nfiota1 nfeq2 eqeq1
      nfan anbi2d cbvoprab3 eqtr4i 3eqtr4g ) ABURZUDURZLUSUTZCURZUCURZMUSUTZVAZ
      DURZXAXDJVBNUSUTZVAZUCHVCZUDGVCZBCDVDWTPVEZXCQVEZVAZXGXKDVFZUTZVAZBCDVDZK
      BCPQXOVGZAXKXQBCDXKXNXKVAAXQXKXNXKXFUCHVCZUDGVCZXNXJXTUDGXIXFUCHXFXHVHVIV
      IXNXBUDGVCZXEUCHVCZVAYAXLYBXMYCXLWTGLVJZVEYBPYDWTUEVKUDGWTLBVLVMVNXMXCHMV
      JZVEYCQYEXCUFVKUCHXCMCVLVMVNVOXBXEUDUCGHVPVQVRVSAXNXKXPAXNVAZXKXOXGUTZXPY
      FXKDVTXKYGWDADEFGHIJLMNOPQRSWTXCTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWAXKDWBWCX
      OXGWEWFWGWHWIUPXSXNUQURZXOUTZVAZBCUQVDXRBCUQPQXOWJXQYJBCDUQXQUQWKXNYIDXND
      WKDYHXOXKDWLWMWOXGYHUTXPYIXNXGYHXOWNWPWQWRWS $.

    eropr.13 $e |- ( ph -> R e. X ) $.
    eropr.14 $e |- ( ph -> S e. Y ) $.
    eropr.15 $e |- L = ( C /. T ) $.
    $( Functionality of an operation defined on equivalence classes.
       (Contributed by Jeff Madsen, 10-Jun-2010.)  (Revised by Mario Carneiro,
       30-Dec-2014.) $)
    eroprf $p |- ( ph -> .+^ : ( J X. K ) --> L ) $=
      ( cxp wf cv cec wceq wa co wrex cio cmpt2 wcel cab wi cqs ad2antrr adantr
      fovrnda ecelqsg syl2anc syl6eleqr eleq1a adantld rexlimdvva abssdv eroveu
      wral syl iotacl sseldd ralrimivva eqid fmpt2 sylib erovlem feq1d mpbird
      weu ) APQVCZRKVDWTRBCPQBVEZUGVEZLVFVGCVEZUFVEZMVFVGVHZDVEZXBXDJVIZNVFZVGZ
      VHZUFHVJUGGVJZDVKZVLZVDZAXLRVMZCQWHBPWHXNAXOBCPQAXAPVMXCQVMVHZVHZXKDVNZRX
      LXQXKDRXQXJXFRVMZUGUFGHXQXBGVMXDHVMVHZVHZXIXSXEYAXHRVMXIXSVOYAXHINVPZRYAN
      UCVMZXGIVMXHYBVMAYCXPXTUJVQXQXBXDIGHJAGHVCIJVDXPUQVRVSIXGNUCVTWAVBWBXHRXF
      WCWIWDWEWFXQXKDWSXLXRVMADEFGHIJLMNOPQSTXAXCUCUDUEUFUGUHUIUJUKULUMUNUOUPUQ
      URWGXKDWJWIWKWLBCPQXLRXMXMWMWNWOAWTRKXMABCDEFGHIJKLMNOPQSTUCUDUEUFUGUHUIU
      JUKULUMUNUOUPUQURUSWPWQWR $.
  $}

  ${
    $d p q r s t u x y z A $.  $d p q r s t u x y z P $.  $d p q r s t u z X $.
    $d p q r s t u x y z .+ $.  $d p q r s t u x y z .~ $.  $d p q x y z J $.
    $d p q r s t u x y z ph $.  $d p q r s t u x y z Q $.
    eropr2.1 $e |- J = ( A /. .~ ) $.
    eropr2.2 $e |- .+^ = { <. <. x , y >. , z >. | E. p e. A E. q e. A
             ( ( x = [ p ] .~ /\ y = [ q ] .~ ) /\ z = [ ( p .+ q ) ] .~ ) } $.
    eropr2.3 $e |- ( ph -> .~ e. X ) $.
    eropr2.4 $e |- ( ph -> .~ Er U ) $.
    eropr2.5 $e |- ( ph -> A C_ U ) $.
    eropr2.6 $e |- ( ph -> .+ : ( A X. A ) --> A ) $.
    eropr2.7 $e |- ( ( ph /\ ( ( r e. A /\ s e. A ) /\ ( t e. A /\ u e. A ) ) )
      -> ( ( r .~ s /\ t .~ u ) -> ( r .+ t ) .~ ( s .+ u ) ) ) $.
    $( Functionality of an operation defined on equivalence classes.
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    eroprf2 $p |- ( ph -> .+^ : ( J X. J ) --> J ) $=
      ( eroprf ) ABCDEFGGGHIJJJKLLLKKMMMNOPQRRTUAUAUAUBUBUBUCUDSTTRUE $.
  $}

  ${
    $d f g h t s r A $.  $d f g h t s r B $.  $d f g h t s r C $.
    $d f g h t s r D $.  $d x y z w v u f g h t s r .+ $.  $d f g h t s r .~ $.
    $d x y z w v u f g h t s r S $.
    ecopopr.1 $e |- .~ = { <. x , y >. | ( ( x e. ( S X. S ) /\ y e. ( S X. S )
          ) /\ E. z E. w E. v E. u ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
          ( z .+ u ) = ( w .+ v ) ) ) } $.
    ${
      $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
      $d x y z w v u D $.
      $( This is the first of several theorems about equivalence relations of
         the kind used in construction of fractions and signed reals, involving
         operations on equivalent classes of ordered pairs.  This theorem
         expresses the relation ` .~ ` (specified by the hypothesis) in terms
         of its operation ` F ` .  (Contributed by NM, 16-Aug-1995.) $)
      ecopoveq $p |- ( ( ( A e. S /\ B e. S ) /\
                     ( C e. S /\ D e. S ) ) ->
          ( <. A , B >. .~ <. C , D >. <-> ( A .+ D ) = ( B .+ C ) ) ) $=
        ( cv co wceq wb wa oveq12 eqeqan12d an42s opbrop ) COZFOZKPZDOZEOZKPZQZ
        GJKPZHIKPZQZABCDEFGHIJLMUDGQZUEJQZUGHQZUHIQZUJUMRUNUOSUPUQSUFUKUIULUDGU
        EJKTUGHUHIKTUAUBNUC $.
    $}

    ${
      ecopopr.com $e |- ( x .+ y ) = ( y .+ x ) $.
      $( Assuming the operation ` F ` is commutative, show that the relation
         ` .~ ` , specified by the first hypothesis, is symmetric.
         (Contributed by NM, 27-Aug-1995.)  (Revised by Mario Carneiro,
         26-Apr-2015.) $)
      ecopovsym $p |- ( A .~ B -> B .~ A ) $=
        ( wbr wcel wa wb cv wceq co vf vg vh cxp cop wex copab opabssxp eqsstri
        brel eqid breq1 breq2 bibi12d ecopoveq vex caovcom eqeq12i eqcom syl6bb
        vt bitri ancoms bitr4d 2optocl syl ibi ) GHJNZHGJNZVHGKKUDZOHVJOPVHVIQZ
        GHVJVJJJARZVJOBRZVJOPVLCRZDRZUESVMERZFRZUESPVNVQITVOVPITSPFUFEUFDUFCUFZ
        PABUGVJVJUDLVRABVJVJUHUIUJUARZUBRZUEZUCRZVARZUEZJNZWDWAJNZQGWDJNZWDGJNZ
        QVKUAUBUCVAGHKKVJVJUKWAGSWEWGWFWHWAGWDJULWAGWDJUMUNWDHSWGVHWHVIWDHGJUMW
        DHGJULUNVSKOVTKOPZWBKOWCKOPZPZWEWBVTITZWCVSITZSZWFWKWEVSWCITZVTWBITZSZW
        NABCDEFVSVTWBWCIJKLUOWQWMWLSWNWOWMWPWLABVSWCIUAUPVAUPMUQABVTWBIUBUPUCUP
        MUQURWMWLUSVBUTWJWIWFWNQABCDEFWBWCVSVTIJKLUOVCVDVEVFVG $.

      ${
        $( Assume the operation is closed. $)
        ecopopr.cl $e |- ( ( x e. S /\ y e. S ) -> ( x .+ y ) e. S ) $.
        $( Assume the operation is associative. $)
        ecopopr.ass $e |- ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) $.
        $( Assume the operation has the cancellation property. $)
        ecopopr.can $e |- ( ( x e. S /\ y e. S ) ->
                   ( ( x .+ y ) = ( x .+ z ) -> y = z ) ) $.
        $( Assuming that operation ` F ` is commutative (second hypothesis),
           closed (third hypothesis), associative (fourth hypothesis), and has
           the cancellation property (fifth hypothesis), show that the relation
           ` .~ ` , specified by the first hypothesis, is transitive.
           (Contributed by NM, 11-Feb-1996.)  (Revised by Mario Carneiro,
           26-Apr-2015.) $)
        ecopovtrn $p |- ( ( A .~ B /\ B .~ C ) -> A .~ C ) $=
          ( wcel wa co vf vg vh vt vs vr cxp w3a wbr cv cop wceq copab opabssxp
          wex eqsstri brel simpld anim12i 3anass sylibr wi breq1 anbi1d imbi12d
          breq2 anbi12d imbi1d anbi2d wb ecopoveq 3adant3 3adant1 oveq12 simp2l
          eqid simp2r simp1l simp3r adantl caov411d simp1r simp3l caov4d eqtr3d
          eqeq12d syl5ibr sylbid impbid1 caovcl syl2anc caovcld caovcand sylibd
          a1i oveq2 3adant2 sylibrd 3optocl mpcom ) GLLUGZRZHXARZIXARZUHZGHKUIZ
          HIKUIZSZGIKUIZXHXBXCXDSZSXEXFXBXGXJXFXBXCGHXAXAKKAUJZXARBUJZXARSXKCUJ
          ZDUJZUKULXLEUJZFUJZUKULSXMXPJTXNXOJTULSFUOEUODUOCUOZSABUMXAXAUGMXQABX
          AXAUNUPZUQURHIXAXAKXRUQUSXBXCXDUTVAUAUJZUBUJZUKZUCUJZUDUJZUKZKUIZYDUE
          UJZUFUJZUKZKUIZSZYAYHKUIZVBGYDKUIZYISZGYHKUIZVBXFHYHKUIZSZYNVBXHXIVBU
          AUBUCUDUEUFGHILXALXAVPYAGULZYJYMYKYNYQYEYLYIYAGYDKVCVDYAGYHKVCVEYDHUL
          ZYMYPYNYRYLXFYIYOYDHGKVFYDHYHKVCVGVHYHIULZYPXHYNXIYSYOXGXFYHIHKVFVIYH
          IGKVFVEXSLRZXTLRZSZYBLRZYCLRZSZYFLRZYGLRZSZUHZYJXSYGJTZXTYFJTZULZYKUU
          IYJYBYCJTZUUJJTZUUMUUKJTZULZUULUUIYJXSYCJTZXTYBJTZULZYBYGJTZYCYFJTZUL
          ZSZUUPUUIYEUUSYIUVBUUBUUEYEUUSVJUUHABCDEFXSXTYBYCJKLMVKVLUUEUUHYIUVBV
          JUUBABCDEFYBYCYFYGJKLMVKVMVGUVCUUPUUIUUQUUTJTZUURUVAJTZULUUQUURUUTUVA
          JVNUUIUUNUVDUUOUVEUUIABCYBYCXSYGLJUUBUUCUUDUUHVOZUUBUUCUUDUUHVQZYTUUA
          UUEUUHVRZXKXLJTZXLXKJTULUUIXKLRZXLLRZSZSNWOZUVIXMJTXKXLXMJTJTULUUIUVJ
          UVKXMLRZUHZSPWOZUUBUUEUUFUUGVSZUVLUVILRUUIOVTZWAUUIXTYCJTYBYFJTJTUUOU
          VEUUIABCXTYCYBYFLJYTUUAUUEUUHWBZUVGUVFUVMUVPUUBUUEUUFUUGWCZUVRWAUUIAB
          CXTYCYBYFLJUVSUVGUVFUVMUVPUVTUVRWDWEWFWGWHUUIABCUUMUUJUUKLLJUVOUVIXKX
          MJTULZXLXMULZVJUUIUVOUWAUWBUVJUVKUWAUWBVBUVNQVLXLXMXKJWPWIVTUUIUUCUUD
          UUMLRUVFUVGABYBYCLJOWJWKUUIYTUUGUUJLRUVHUVQABXSYGLJOWJWKUUIABXTYFLLLJ
          UVRUVSUVTWLWMWNUUBUUHYKUULVJUUEABCDEFXSXTYFYGJKLMVKWQWRWSWT $.

        $( Assuming that operation ` F ` is commutative (second hypothesis),
           closed (third hypothesis), associative (fourth hypothesis), and has
           the cancellation property (fifth hypothesis), show that the relation
           ` .~ ` , specified by the first hypothesis, is an equivalence
           relation.  (Contributed by NM, 16-Feb-1996.)  (Revised by Mario
           Carneiro, 12-Aug-2015.) $)
        ecopover $p |- .~ Er ( S X. S ) $=
          ( vg vh wtru cv wa wbr vf cxp wer wrel wcel cop wceq wex relopabi a1i
          co ecopovsym adantl ecopovtrn wral vex caovcom ecopoveq mpbiri anidms
          wi rgen2a ralxp mpbir rspec copab opabssxp eqsstri ssbri brxp simplbi
          wb breq12 syl impbid1 iserd trud ) IIUBZHUCQUAOPVRHHUDQARZVRUEBRZVRUE
          SVSCRZDRZUFUGVTERZFRZUFUGSWAWDGUKWBWCGUKUGSFUHEUHDUHCUHZSZABHJUIUJUAR
          ZORZHTZWHWGHTQABCDEFWGWHGHIJKULUMWIWHPRZHTSWGWJHTQABCDEFWGWHWJGHIJKLM
          NUNUMQWGVRUEZWGWGHTZWKWLVAQWLUAVRWLUAVRUOWHWJUFZWMHTZPIUOOIUOWNOPIWHI
          UEWJIUESZWNWOWOSWNWHWJGUKWJWHGUKUGABWHWJGOUPPUPKUQABCDEFWHWJWHWJGHIJU
          RUSUTVBWLWNUAOPIIWGWMUGWLWNVLWGWMWGWMHVMUTVCVDVEUJWLWGWGVRVRUBZTZWKHW
          PWGWGHWFABVFWPJWEABVRVRVGVHVIWQWKWKWGWGVRVRVJVKVNVOVPVQ $.
      $}

    $}

    ${
      ecopoprg.com $e |- ( ( x e. S /\ y e. S ) -> ( x .+ y ) = ( y .+ x ) ) $.
      $( Assuming the operation ` F ` is commutative, show that the relation
         ` .~ ` , specified by the first hypothesis, is symmetric.
         (Contributed by Jim Kingdon, 1-Sep-2019.) $)
      ecopovsymg $p |- ( A .~ B -> B .~ A ) $=
        ( wbr wcel wa wb cv wceq co vf vg vh cxp cop wex copab opabssxp eqsstri
        vt brel breq1 breq2 bibi12d adantl simpll simprr caovcomd simplr simprl
        eqid eqeq12d eqcom syl6bb ecopoveq ancoms 3bitr4d 2optocl syl ibi ) GHJ
        NZHGJNZVKGKKUDZOHVMOPVKVLQZGHVMVMJJARZVMOBRZVMOPVOCRZDRZUESVPERZFRZUESP
        VQVTITVRVSITSPFUFEUFDUFCUFZPABUGVMVMUDLWAABVMVMUHUIUKUARZUBRZUEZUCRZUJR
        ZUEZJNZWGWDJNZQGWGJNZWGGJNZQVNUAUBUCUJGHKKVMVMVAWDGSWHWJWIWKWDGWGJULWDG
        WGJUMUNWGHSWJVKWKVLWGHGJUMWGHGJULUNWBKOZWCKOZPZWEKOZWFKOZPZPZWBWFITZWCW
        EITZSZWEWCITZWFWBITZSZWHWIWRXAXCXBSXDWRWSXCWTXBWRABWBWFKIVOKOVPKOPVOVPI
        TVPVOITSWRMUOZWLWMWQUPWNWOWPUQURWRABWCWEKIXEWLWMWQUSWNWOWPUTURVBXCXBVCV
        DABCDEFWBWCWEWFIJKLVEWQWNWIXDQABCDEFWEWFWBWCIJKLVEVFVGVHVIVJ $.

      ${
        $( Assume the operation is closed. $)
        ecopoprg.cl $e |- ( ( x e. S /\ y e. S ) -> ( x .+ y ) e. S ) $.
        $( Assume the operation is associative. $)
        ecopoprg.ass $e |- ( ( x e. S /\ y e. S /\ z e. S ) ->
          ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
        $( Assume the operation has the cancellation property. $)
        ecopoprg.can $e |- ( ( x e. S /\ y e. S /\ z e. S ) ->
                   ( ( x .+ y ) = ( x .+ z ) -> y = z ) ) $.
        $( Assuming that operation ` F ` is commutative (second hypothesis),
           closed (third hypothesis), associative (fourth hypothesis), and has
           the cancellation property (fifth hypothesis), show that the relation
           ` .~ ` , specified by the first hypothesis, is transitive.
           (Contributed by Jim Kingdon, 1-Sep-2019.) $)
        ecopovtrng $p |- ( ( A .~ B /\ B .~ C ) -> A .~ C ) $=
          ( wcel wa co vf vg vh vt vs vr cxp w3a wbr cv cop wceq copab opabssxp
          wex eqsstri brel simpld anim12i 3anass sylibr wi breq1 anbi1d imbi12d
          breq2 anbi12d imbi1d anbi2d wb ecopoveq 3adant3 3adant1 oveq12 simp2l
          eqid simp2r simp1l adantl simp3r caov411d simp1r simp3l caov4d eqtr3d
          eqeq12d syl5ibr sylbid impbid1 caovcl syl2anc caovcld caovcand sylibd
          oveq2 3adant2 sylibrd 3optocl mpcom ) GLLUGZRZHWTRZIWTRZUHZGHKUIZHIKU
          IZSZGIKUIZXGXAXBXCSZSXDXEXAXFXIXEXAXBGHWTWTKKAUJZWTRBUJZWTRSXJCUJZDUJ
          ZUKULXKEUJZFUJZUKULSXLXOJTXMXNJTULSFUOEUODUOCUOZSABUMWTWTUGMXPABWTWTU
          NUPZUQURHIWTWTKXQUQUSXAXBXCUTVAUAUJZUBUJZUKZUCUJZUDUJZUKZKUIZYCUEUJZU
          FUJZUKZKUIZSZXTYGKUIZVBGYCKUIZYHSZGYGKUIZVBXEHYGKUIZSZYMVBXGXHVBUAUBU
          CUDUEUFGHILWTLWTVPXTGULZYIYLYJYMYPYDYKYHXTGYCKVCVDXTGYGKVCVEYCHULZYLY
          OYMYQYKXEYHYNYCHGKVFYCHYGKVCVGVHYGIULZYOXGYMXHYRYNXFXEYGIHKVFVIYGIGKV
          FVEXRLRZXSLRZSZYALRZYBLRZSZYELRZYFLRZSZUHZYIXRYFJTZXSYEJTZULZYJUUHYIY
          AYBJTZUUIJTZUULUUJJTZULZUUKUUHYIXRYBJTZXSYAJTZULZYAYFJTZYBYEJTZULZSZU
          UOUUHYDUURYHUVAUUAUUDYDUURVJUUGABCDEFXRXSYAYBJKLMVKVLUUDUUGYHUVAVJUUA
          ABCDEFYAYBYEYFJKLMVKVMVGUVBUUOUUHUUPUUSJTZUUQUUTJTZULUUPUUQUUSUUTJVNU
          UHUUMUVCUUNUVDUUHABCYAYBXRYFLJUUAUUBUUCUUGVOZUUAUUBUUCUUGVQZYSYTUUDUU
          GVRZXJLRZXKLRZSZXJXKJTZXKXJJTULUUHNVSZUVHUVIXLLRUHZUVKXLJTXJXKXLJTJTU
          LUUHPVSZUUAUUDUUEUUFVTZUVJUVKLRUUHOVSZWAUUHXSYBJTYAYEJTJTUUNUVDUUHABC
          XSYBYAYELJYSYTUUDUUGWBZUVFUVEUVLUVNUUAUUDUUEUUFWCZUVPWAUUHABCXSYBYAYE
          LJUVQUVFUVEUVLUVNUVRUVPWDWEWFWGWHUUHABCUULUUIUUJLLJUVMUVKXJXLJTULZXKX
          LULZVJUUHUVMUVSUVTQXKXLXJJWOWIVSUUHUUBUUCUULLRUVEUVFABYAYBLJOWJWKUUHY
          SUUFUUILRUVGUVOABXRYFLJOWJWKUUHABXSYELLLJUVPUVQUVRWLWMWNUUAUUGYJUUKVJ
          UUDABCDEFXRXSYEYFJKLMVKWPWQWRWS $.

        $( Assuming that operation ` F ` is commutative (second hypothesis),
           closed (third hypothesis), associative (fourth hypothesis), and has
           the cancellation property (fifth hypothesis), show that the relation
           ` .~ ` , specified by the first hypothesis, is an equivalence
           relation.  (Contributed by Jim Kingdon, 1-Sep-2019.) $)
        ecopoverg $p |- .~ Er ( S X. S ) $=
          ( wtru cv wcel wa wceq wbr vf vg vh cxp wer wrel cop wex relopabi a1i
          co ecopovsymg adantl ecopovtrng wi wral simpll simplr caovcomd mpbird
          ecopoveq anidms rgen2a ralxp mpbir rspec copab opabssxp eqsstri ssbri
          wb breq12 brxp simplbi syl impbid1 iserd trud ) IIUDZHUEOUAUBUCVSHHUF
          OAPZVSQBPZVSQRVTCPZDPZUGSWAEPZFPZUGSRWBWEGUKWCWDGUKSRFUHEUHDUHCUHZRZA
          BHJUIUJUAPZUBPZHTZWIWHHTOABCDEFWHWIGHIJKULUMWJWIUCPZHTRWHWKHTOABCDEFW
          HWIWKGHIJKLMNUNUMOWHVSQZWHWHHTZWLWMUOOWMUAVSWMUAVSUPWIWKUGZWNHTZUCIUP
          UBIUPWOUBUCIWIIQZWKIQZRZWOWRWRRZWOWIWKGUKWKWIGUKSWSABWIWKIGVTIQWAIQRV
          TWAGUKWAVTGUKSWSKUMWPWQWRUQWPWQWRURUSABCDEFWIWKWIWKGHIJVAUTVBVCWMWOUA
          UBUCIIWHWNSWMWOVKWHWNWHWNHVLVBVDVEVFUJWMWHWHVSVSUDZTZWLHWTWHWHHWGABVG
          WTJWFABVSVSVHVIVJXAWLWLWHWHVSVSVMVNVOVPVQVR $.
      $}

    $}
  $}

  ${
    $d x y z w v u .+ $.  $d x y z w v u .~ $.  $d x y z w v u S $.
    $d x y z w v u A $.  $d x y z w v u B $.
    th3qlem1.1 $e |- .~ Er S $.
    $( Compatibility assumption. $)
    th3qlem1.3 $e |- ( ( ( y e. S /\ w e. S ) /\ ( z e. S /\ v e. S ) ) ->
                 ( ( y .~ w /\ z .~ v ) -> ( y .+ z ) .~ ( w .+ v ) ) ) $.
    $( Lemma for Exercise 44 version of Theorem 3Q of [Enderton] p. 60.  The
       third hypothesis is the compatibility assumption.  (Contributed by NM,
       3-Aug-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    th3qlem1 $p |- ( ( A e. ( S /. .~ ) /\ B e. ( S /. .~ ) ) -> E* x
       E. y E. z ( ( A = [ y ] .~ /\ B = [ z ] .~ ) /\
       x = [ ( y .+ z ) ] .~ ) ) $=
      ( vu wcel wa cv cec wceq wex ecelqsdm cqs co wi wal ee4anv eleq1 bi2anan9
      wmo an4 wb adantr biimpac anim12i an4s adantl wer a1i wbr simprl cdm erdm
      eqtr2 ax-mp simpll sylancr mpbird simprr simplr eqeltrrd syl22anc syl2anc
      erth mp2and erthi eqeq12 syl5ibrcom expimpd syl5bi exlimdvv syl5bir eqeq1
      alrimivv anbi2d 2exbidv eceq1 eqeq2d oveq12 eceq1d anbi12d cbvex2v syl6bb
      mo4 sylibr ) FJIUAZNZGWNNZOZFBPZIQZRZGCPZIQZRZOZAPZWRXAHUBZIQZRZOZCSBSZFD
      PZIQZRZGEPZIQZRZOZMPZXKXNHUBZIQZRZOZESDSZOZXEXRRZUCZMUDAUDXJAUHWQYFAMYDXI
      YBOZESDSZCSBSWQYEXIYBBCDEUEWQYHYEBCWQYGYEDEYGXDXQOZXHYAOZOWQYEXDXHXQYAUIW
      QYIYJYEWQYIOZYEYJXGXTRZYKWSWNNZXBWNNZOZWSXLRZXBXORZOZYLYIWQYOXDWQYOUJXQWT
      WOYMXCWPYNFWSWNUFGXBWNUFUGUKULYIYRWQWTXMXCXPYRWTXMOYPXCXPOYQFWSXLVBGXBXOV
      BUMUNUOYOYROZXFXSIJJIUPZYSKUQZYSWRXKIURZXAXNIURZXFXSIURZYSUUBYPYOYPYQUSZY
      SWRXKIJUUAYSIUTJRZYMWRJNZYTUUFKJIVAVCZYMYNYRVDZJWRITVEZVLVFYSUUCYQYOYPYQV
      GZYSXAXNIJUUAYSUUFYNXAJNZUUHYMYNYRVHZJXAITVEZVLVFYSUUGXKJNZUULXNJNZUUBUUC
      OUUDUCUUJYSUUFXLWNNUUOUUHYSWSXLWNUUEUUIVIJXKITVEUUNYSUUFXOWNNUUPUUHYSXBXO
      WNUUKUUMVIJXNITVELVJVMVNVKXEXGXRXTVOVPVQVRVSVSVTWBXJYCAMYEXJXDXRXGRZOZCSB
      SYCYEXIUURBCYEXHUUQXDXEXRXGWAWCWDUURYBBCDEWRXKRZXAXNRZOZXDXQUUQYAUUSWTXMU
      UTXCXPUUSWSXLFWRXKIWEWFUUTXBXOGXAXNIWEWFUGUVAXGXTXRUVAXFXSIWRXKXAXNHWGWHW
      FWIWJWKWLWM $.
  $}

  ${
    $d x y z w v u t s f g h .~ $.  $d x y z w v u t s f g h S $.
    $d x y z w v u t s f A $.  $d x y z w v u t s f B $.  $d x y z w v u t C $.
    $d x y z w v u t D $.  $d x y z w v u t s f g h .+ $.
    th3q.1 $e |- .~ e. _V $.
    th3q.2 $e |- .~ Er ( S X. S ) $.
    $( Compatibility assumption. $)
    th3q.4 $e |- ( ( ( ( w e. S /\ v e. S ) /\ ( u e. S /\ t e. S ) )
       /\ ( ( s e. S /\ f e. S ) /\ ( g e. S /\ h e. S ) ) ) ->
       ( ( <. w , v >. .~ <. u , t >. /\ <. s , f >. .~ <. g , h >. ) ->
       ( <. w , v >. .+ <. s , f >. ) .~ ( <. u , t >. .+ <. g , h >. ) ) ) $.
    $( Lemma for Exercise 44 version of Theorem 3Q of [Enderton] p. 60,
       extended to operations on ordered pairs.  The fourth hypothesis is the
       compatibility assumption.  (Contributed by NM, 4-Aug-1995.)  (Revised by
       Mario Carneiro, 12-Aug-2015.) $)
    th3qlem2 $p |- ( ( A e. ( ( S X. S ) /. .~ ) /\ B e. ( ( S X. S ) /. .~ ) )
           -> E* z E. w E. v E. u E. t (
           ( A = [ <. w , v >. ] .~ /\ B = [ <. u , t >. ] .~ ) /\
                  z = [ ( <. w , v >. .+ <. u , t >. ) ] .~ ) ) $=
      ( wcel wa wceq vx vy cxp cqs cv cec co wex wmo cop wbr breq1 anbi1d oveq1
      eqid breq1d imbi12d imbi2d breq2 breq2d anbi2d oveq2 expcom 2optocl com12
      wi imp th3qlem1 opex eceq1 eqeq2d bi2anan9 oveq12 eceq1d anbi12d exlimivv
      vex spc2ev moimi syl ) FJJUCZIUDZRGWBRSFNUEZIUFZTZGUAUEZIUFZTZSZAUEZWCWFH
      UGZIUFZTZSZUAUHNUHZAUIFBUEZCUEZUJZIUFZTZGDUEZEUEZUJZIUFZTZSZWJWRXCHUGZIUF
      ZTZSZEUHDUHZCUHBUHZAUIANUAKUBFGHIWAPWCWARKUEZWARSWFWARUBUEZWARSZWCXMIUKZW
      FXNIUKZSZWKXMXNHUGZIUKZVFZXOWRXCIUKZXQSZWRWFHUGZXCXNHUGZIUKZVFZVFXOWCXCIU
      KZXQSZWKYEIUKZVFZVFXOYAVFBCDEWCXMJJWAWAUOZWRWCTZYGYKXOYMYCYIYFYJYMYBYHXQW
      RWCXCIULUMYMYDWKYEIWRWCWFHUNUPUQURXCXMTZYKYAXOYNYIXRYJXTYNYHXPXQXCXMWCIUS
      UMYNYEXSWKIXCXMXNHUNUTUQURXOWPJRWQJRSXAJRXBJRSSZYGYOYBWCXMUJZLUEZMUEZUJZI
      UKZSZWRYPHUGZXCYSHUGZIUKZVFZVFYOYBWFYSIUKZSZYDUUCIUKZVFZVFYOYGVFNKLMWFXNJ
      JWAYLYPWFTZUUEUUIYOUUJUUAUUGUUDUUHUUJYTUUFYBYPWFYSIULVAUUJUUBYDUUCIYPWFWR
      HVBUPUQURYSXNTZUUIYGYOUUKUUGYCUUHYFUUKUUFXQYBYSXNWFIUSVAUUKUUCYEYDIYSXNXC
      HVBUTUQURYOWCJRXMJRSYQJRYRJRSSUUEQVCVDVEVDVGVHXLWOAXKWOBCXJWODEWNXJNUAWRX
      CWPWQBVQCVQVIXAXBDVQEVQVIWCWRTZWFXCTZSZWIXFWMXIUULWEWTUUMWHXEUULWDWSFWCWR
      IVJVKUUMWGXDGWFXCIVJVKVLUUNWLXHWJUUNWKXGIWCWRWFXCHVMVNVKVOVRVPVPVSVT $.

    ${
      th3q.5 $e |- G = { <. <. x , y >. , z >. | ( ( x e. ( ( S X. S ) /. .~ )
           /\ y e. ( ( S X. S ) /. .~ ) ) /\ E. w E. v E. u E. t ( (
           x = [ <. w , v >. ] .~ /\ y = [ <. u , t >. ] .~ ) /\
           z = [ ( <. w , v >. .+ <. u , t >. ) ] .~ ) ) } $.
      $( Corollary of Theorem 3Q of [Enderton] p. 60.  (Contributed by NM,
         12-Nov-1995.)  (Revised by David Abernethy, 4-Jun-2013.) $)
      th3qcor $p |- Fun G $=
        ( cv wfun cxp cqs wcel wa cop cec co wex coprab wmo wi th3qlem2 moanimv
        wceq mpbir funoprab funeqi ) NUAATZJJUBIUCZUDBTZUTUDUEZUSDTETUFZIUGUOVA
        FTGTUFZIUGUOUECTVCVDHUHIUGUOUEGUIFUIEUIDUIZUEZABCUJZUAVFABCVFCUKVBVECUK
        ULCDEFGUSVAHIJKLMOPQRUMVBVECUNUPUQNVGSURUP $.

      $( Theorem 3Q of [Enderton] p. 60, extended to operations on ordered
         pairs.  (Contributed by NM, 4-Aug-1995.)  (Revised by Mario Carneiro,
         19-Dec-2013.) $)
      th3q $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
                 ( [ <. A , B >. ] .~ G [ <. C , D >. ] .~ ) =
                 [ ( <. A , B >. .+ <. C , D >. ) ] .~ ) $=
        ( wcel wa cop cec cxp cqs cv wceq co wex opelxpi ecelqsi anim12i pm3.2i
        syl eqid opeq12 eceq1 eqeq2d anbi1d oveq1 eceq1d anbi12d spc2egv anbi2d
        wb oveq2 2eximdv sylan9 mp2ani cvv ecexg ax-mp w3a eqeq1 bi2anan9 3impa
        wi 4exbidv th3qlem2 ovig mp3an3 sylc ) HNUDINUDUEZJNUDKNUDUEZUEZHIUFZMU
        GZNNUHZMUIZUDZJKUFZMUGZWMUDZUEWKDUJZEUJZUFZMUGZUKZWPFUJZGUJZUFZMUGZUKZU
        EZWJWOLULZMUGZWTXELULZMUGZUKZUEZGUMFUMZEUMDUMZWKWPRULXJUKZWGWNWHWQWGWJW
        LUDWNHINNUNWLWJMTUOURWHWOWLUDWQJKNNUNWLWOMTUOURUPWIWKWKUKZWPWPUKZUEZXJX
        JUKZXPXRXSWKUSWPUSUQXJUSWGXTYAUEZXBXSUEZXJWTWOLULZMUGZUKZUEZEUMDUMWHXPY
        GYBDEHINNWRHUKWSIUKUEWTWJUKZYGYBVIWRWSHIUTYHYCXTYFYAYHXBXRXSYHXAWKWKWTW
        JMVAVBVCYHYEXJXJYHYDXIMWTWJWOLVDVEVBVFURVGWHYGXODEXNYGFGJKNNXCJUKXDKUKU
        EXEWOUKZXNYGVIXCXDJKUTYIXHYCXMYFYIXGXSXBYIXFWPWPXEWOMVAVBVHYIXLYEXJYIXK
        YDMXEWOWTLVJVEVBVFURVGVKVLVMWNWQXJVNUDZXPXQWAMVNUDYJTXIVNMVOVPAUJZXAUKZ
        BUJZXFUKZUEZCUJZXLUKZUEZGUMFUMEUMDUMXPABCWKWPXJVNWMWMRYKWKUKZYMWPUKZYPX
        JUKZVQYRXNDEFGYSYTUUAYRXNVIYSYTUEYOXHUUAYQXMYSYLXBYTYNXGYKWKXAVRYMWPXFV
        RVSYPXJXLVRVSVTWBCDEFGYKYMLMNOPQSTUAUBWCUCWDWEWF $.
    $}
  $}

  ${
    $d a b c d f u v w x y z C $.  $d a b c d f u v w x y z D $.  $d x y z J $.
    $d a b c d f g h u v w x y z A $.  $d u v w z ch $.  $d f u v w x y z H $.
    $d a b c d f g h u v w x y z B $.  $d f u v w x y z K $.  $d u v w z ps $.
    $d f u v w x y z L $.  $d x y ph $.  $d a b c d f g h s t u v w x y z S $.
    $d a b c d g h s t x y z .+ $.  $d a b c d g h s t x y z .~ $.
    oviec.1 $e |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
        H e. ( S X. S ) ) $.
    oviec.2 $e |- ( ( ( a e. S /\ b e. S ) /\ ( g e. S /\ h e. S ) ) ->
        K e. ( S X. S ) ) $.
    oviec.3 $e |- ( ( ( c e. S /\ d e. S ) /\ ( t e. S /\ s e. S ) ) ->
        L e. ( S X. S ) ) $.
    oviec.4 $e |- .~ e. _V $.
    oviec.5 $e |- .~ Er ( S X. S ) $.
    $( Equivalence relation. $)
    oviec.7 $e |- .~ = { <. x , y >. | ( ( x e. ( S X. S ) /\
                      y e. ( S X. S ) ) /\
                      E. z E. w E. v E. u ( ( x = <. z , w >. /\
                      y = <. v , u >. ) /\ ph ) ) } $.
    $( Substitutions for equivalence relation. $)
    oviec.8 $e |- ( ( ( z = a /\ w = b ) /\ ( v = c /\ u = d ) ) ->
                     ( ph <-> ps ) ) $.
    oviec.9 $e |- ( ( ( z = g /\ w = h ) /\ ( v = t /\ u = s ) ) ->
                     ( ph <-> ch ) ) $.
    $( Pre-operation. $)
    oviec.10 $e |- .+ = { <. <. x , y >. , z >. | ( ( x e. ( S X. S ) /\
                      y e. ( S X. S ) ) /\
                      E. w E. v E. u E. f ( ( x = <. w , v >. /\
                      y = <. u , f >. ) /\ z = J ) ) } $.
    $( Substitutions for pre-operation. $)
    oviec.11 $e |- ( ( ( w = a /\ v = b ) /\ ( u = g /\ f = h ) ) -> J = K ) $.
    oviec.12 $e |- ( ( ( w = c /\ v = d ) /\ ( u = t /\ f = s ) ) -> J = L ) $.
    oviec.13 $e |- ( ( ( w = A /\ v = B ) /\ ( u = C /\ f = D ) ) -> J = H ) $.
    $( Main operation. $)
    oviec.14 $e |- .+^ = { <. <. x , y >. , z >. | ( ( x e. Q /\ y e. Q ) /\
           E. a E. b E. c E. d ( (
           x = [ <. a , b >. ] .~ /\ y = [ <. c , d >. ] .~ ) /\
           z = [ ( <. a , b >. .+ <. c , d >. ) ] .~ ) ) } $.
    $( Quotient class for main operation. $)
    oviec.15 $e |- Q = ( ( S X. S ) /. .~ ) $.
    $( Lemma to establish compatibility of pre-operation. $)
    oviec.16 $e |- ( ( ( ( a e. S /\ b e. S ) /\ ( c e. S /\ d e. S ) ) /\
                       ( ( g e. S /\ h e. S ) /\ ( t e. S /\ s e. S ) ) ) ->
                   ( ( ps /\ ch ) -> K .~ L ) ) $.
    $( Express an operation on equivalence classes of ordered pairs in terms of
       equivalence class of operations on ordered pairs.  See iset.mm for
       additional comments describing the hypotheses.  (Unnecessary distinct
       variable restrictions were removed by David Abernethy, 4-Jun-2013.)
       (Contributed by NM, 6-Aug-1995.)  (Revised by Mario Carneiro,
       4-Jun-2013.) $)
    oviec $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
                ( [ <. A , B >. ] .~ .+^ [ <. C , D >. ] .~ ) =
                   [ H ] .~ ) $=
      ( wcel wa cop cec co wbr opbrop bi2anan9 ovi3 breqan12d an4s 3imtr4d wceq
      cv wb wex coprab cxp cqs eleq2i anbi12i anbi1i oprabbii eqtri th3q eceq1d
      eqtrd ) KSVGLSVGVHMSVGNSVGVHVHZKLVIZRVJMNVIZRVJPVKWOWPOVKZRVJUCRVJDEFUHUI
      UJUKKLMNORSUBJUGPUAUOUPUHVTZSVGUIVTZSVGVHZUJVTZSVGUKVTZSVGVHZVHZUAVTZSVGU
      BVTZSVGVHZJVTZSVGUGVTZSVGVHZVHZVHBCVHUEUFRVLZWRWSVIZXAXBVIZRVLZXEXFVIZXHX
      IVIZRVLZVHXMXPOVKZXNXQOVKZRVLZVFXDXOBXKXRCABDEFGHIWRWSXAXBRSURUQVMACDEFGH
      IXEXFXHXIRSUSUQVMVNWTXGXCXJYAXLWAWTXGVHXCXJVHXSUEXTUFRDEFGHIWRWSXEXFUDUET
      OSUMVAUTVODEFGHIXAXBXHXIUDUFTOSUNVBUTVOVPVQVRPDVTZQVGZEVTZQVGZVHZYBXMRVJV
      SYDXNRVJVSVHFVTXMXNOVKRVJVSVHUKWBUJWBUIWBUHWBZVHZDEFWCYBSSWDRWEZVGZYDYIVG
      ZVHZYGVHZDEFWCVDYHYMDEFYFYLYGYCYJYEYKQYIYBVEWFQYIYDVEWFWGWHWIWJWKWNWQUCRD
      EFGHIKLMNUDUCTOSULVCUTVOWLWM $.
  $}

  ${
    $d x y z w A $.  $d z w B $.  $d x y z w .+ $.  $d x y z w .~ $.
    $d x y z w S $.  $d z w C $.
    ecovcom.1 $e |- C = ( ( S X. S ) /. .~ ) $.
    $( D,G for AFB $)
    ecovcom.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. D , G >. ] .~ ) $.
    $( H,J for BFA $)
    ecovcom.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( x e. S /\ y e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. x , y >. ] .~ ) = [ <. H , J >. ] .~ ) $.
    ecovcom.4 $e |- D = H $.
    ecovcom.5 $e |- G = J $.
    $( Lemma used to transfer a commutative law via an equivalence relation.
       Most uses will want ~ ecovicom instead.  (Contributed by NM,
       29-Aug-1995.)  (Revised by David Abernethy, 4-Jun-2013.) $)
    ecovcom $p |- ( ( A e. C /\ B e. C ) -> ( A .+ B ) = ( B .+ A ) ) $=
      ( wceq cv cop cec co oveq1 oveq2 eqeq12d wcel opeq12 eceq1d mp2an 3eqtr4a
      wa ancoms 2ecoptocl ) AUAZBUAZUBJUCZCUAZDUAZUBJUCZIUDZVAURIUDZTEVAIUDZVAE
      IUDZTEFIUDZFEIUDZTABCDEFKKJGOURETVBVDVCVEUREVAIUEUREVAIUFUGVAFTVDVFVEVGVA
      FEIUFVAFEIUEUGUPKUHUQKUHUMZUSKUHUTKUHUMZUMHLUBZJUCZMNUBZJUCZVBVCHMTZLNTZV
      KVMTRSVNVOUMVJVLJHLMNUIUJUKPVIVHVCVMTQUNULUO $.
  $}

  ${
    $d x y z w A $.  $d z w B $.  $d x y z w .+ $.  $d x y z w .~ $.
    $d x y z w S $.  $d z w C $.
    ecovicom.1 $e |- C = ( ( S X. S ) /. .~ ) $.
    $( D,G for AFB $)
    ecovicom.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. D , G >. ] .~ ) $.
    $( H,J for BFA $)
    ecovicom.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( x e. S /\ y e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. x , y >. ] .~ ) = [ <. H , J >. ] .~ ) $.
    ecovicom.4 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
      D = H ) $.
    ecovicom.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
      G = J ) $.
    $( Lemma used to transfer a commutative law via an equivalence relation.
       (Contributed by Jim Kingdon, 15-Sep-2019.) $)
    ecovicom $p |- ( ( A e. C /\ B e. C ) -> ( A .+ B ) = ( B .+ A ) ) $=
      ( wceq cv cop co oveq1 oveq2 eqeq12d wcel wa opeq12 eceq1d syl2anc ancoms
      cec 3eqtr4d 2ecoptocl ) AUAZBUAZUBJUMZCUAZDUAZUBJUMZIUCZVAURIUCZTEVAIUCZV
      AEIUCZTEFIUCZFEIUCZTABCDEFKKJGOURETVBVDVCVEUREVAIUDUREVAIUEUFVAFTVDVFVEVG
      VAFEIUEVAFEIUDUFUPKUGUQKUGUHZUSKUGUTKUGUHZUHZHLUBZJUMZMNUBZJUMZVBVCVJHMTZ
      LNTZVLVNTRSVOVPUHVKVMJHLMNUIUJUKPVIVHVCVNTQULUNUO $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d x y z w v u C $.
    $d x y z w v u .+ $.  $d x y z w v u .~ $.  $d x y z w v u S $.
    $d z w v u D $.
    ecovass.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    ecovass.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. G , H >. ] .~ ) $.
    ecovass.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. N , Q >. ] .~ ) $.
    ecovass.4 $e |- ( ( ( G e. S /\ H e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. G , H >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. J , K >. ] .~ ) $.
    ecovass.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( N e. S /\ Q e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. N , Q >. ] .~ ) = [ <. L , M >. ] .~ ) $.
    ecovass.6 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( G e. S /\ H e. S ) ) $.
    ecovass.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( N e. S /\ Q e. S ) ) $.
    ecovass.8 $e |- J = L $.
    ecovass.9 $e |- K = M $.
    $( Lemma used to transfer an associative law via an equivalence relation.
       In most cases ~ ecoviass will be more useful.  (Contributed by NM,
       31-Aug-1995.)  (Revised by David Abernethy, 4-Jun-2013.) $)
    ecovass $p |- ( ( A e. D /\ B e. D /\ C e. D ) ->
                 ( ( A .+ B ) .+ C ) = ( A .+ ( B .+ C ) ) ) $=
      ( cv cop cec co wceq oveq1 oveq1d eqeq12d oveq2 oveq2d wcel wa w3a opeq12
      eceq1d mp2an adantr sylan eqtrd 3impa adantl sylan2 3eqtr4a 3ecoptocl
      3impb ) AUKZBUKZULMUMZCUKZDUKZULMUMZKUNZEUKZFUKZULMUMZKUNZVRWAWEKUNZKUNZU
      OGWAKUNZWEKUNZGWGKUNZUOGHKUNZWEKUNZGHWEKUNZKUNZUOWLIKUNZGHIKUNZKUNZUOABCD
      EFGHINMJUBVRGUOZWFWJWHWKWSWBWIWEKVRGWAKUPUQVRGWGKUPURWAHUOZWJWMWKWOWTWIWL
      WEKWAHGKUSUQWTWGWNGKWAHWEKUPUTURWEIUOZWMWPWOWRWEIWLKUSXAWNWQGKWEIHKUSUTUR
      VPNVAVQNVAVBZVSNVAVTNVAVBZWCNVAWDNVAVBZVCQRULZMUMZSTULZMUMZWFWHQSUOZRTUOZ
      XFXHUOUIUJXIXJVBXEXGMQRSTVDVEVFXBXCXDWFXFUOXBXCVBZXDVBWFOPULMUMZWEKUNZXFX
      KWFXMUOXDXKWBXLWEKUCUQVGXKONVAPNVAVBXDXMXFUOUGUEVHVIVJXBXCXDWHXHUOXBXCXDV
      BZVBWHVRUALULMUMZKUNZXHXNWHXPUOXBXNWGXOVRKUDUTVKXNXBUANVALNVAVBXPXHUOUHUF
      VLVIVOVMVN $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d x y z w v u C $.
    $d x y z w v u .+ $.  $d x y z w v u .~ $.  $d x y z w v u S $.
    $d z w v u D $.
    ecoviass.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    ecoviass.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. G , H >. ] .~ ) $.
    ecoviass.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. N , Q >. ] .~ ) $.
    ecoviass.4 $e |- ( ( ( G e. S /\ H e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. G , H >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. J , K >. ] .~ ) $.
    ecoviass.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( N e. S /\ Q e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. N , Q >. ] .~ ) = [ <. L , M >. ] .~ ) $.
    ecoviass.6 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( G e. S /\ H e. S ) ) $.
    ecoviass.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( N e. S /\ Q e. S ) ) $.
    ecoviass.8 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> J = L ) $.
    ecoviass.9 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> K = M ) $.
    $( Lemma used to transfer an associative law via an equivalence relation.
       (Contributed by Jim Kingdon, 16-Sep-2019.) $)
    ecoviass $p |- ( ( A e. D /\ B e. D /\ C e. D ) ->
                 ( ( A .+ B ) .+ C ) = ( A .+ ( B .+ C ) ) ) $=
      ( cv cop cec co wceq oveq1 oveq1d eqeq12d oveq2 oveq2d wcel wa w3a opeq12
      eceq1d syl2anc adantr sylan eqtrd 3impa adantl sylan2 3eqtr4d 3ecoptocl
      3impb ) AUKZBUKZULMUMZCUKZDUKZULMUMZKUNZEUKZFUKZULMUMZKUNZVRWAWEKUNZKUNZU
      OGWAKUNZWEKUNZGWGKUNZUOGHKUNZWEKUNZGHWEKUNZKUNZUOWLIKUNZGHIKUNZKUNZUOABCD
      EFGHINMJUBVRGUOZWFWJWHWKWSWBWIWEKVRGWAKUPUQVRGWGKUPURWAHUOZWJWMWKWOWTWIWL
      WEKWAHGKUSUQWTWGWNGKWAHWEKUPUTURWEIUOZWMWPWOWRWEIWLKUSXAWNWQGKWEIHKUSUTUR
      VPNVAVQNVAVBZVSNVAVTNVAVBZWCNVAWDNVAVBZVCZQRULZMUMZSTULZMUMZWFWHXEQSUOZRT
      UOZXGXIUOUIUJXJXKVBXFXHMQRSTVDVEVFXBXCXDWFXGUOXBXCVBZXDVBWFOPULMUMZWEKUNZ
      XGXLWFXNUOXDXLWBXMWEKUCUQVGXLONVAPNVAVBXDXNXGUOUGUEVHVIVJXBXCXDWHXIUOXBXC
      XDVBZVBWHVRUALULMUMZKUNZXIXOWHXQUOXBXOWGXPVRKUDUTVKXOXBUANVALNVAVBXQXIUOU
      HUFVLVIVOVMVN $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d w v u C $.  $d x y z w v u .+ $.
    $d x y z w v u .~ $.  $d x y z w v u S $.  $d x y z w v u .x. $.
    $d z w v u D $.
    ecovdi.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    $( M,N for BFC $)
    ecovdi.2 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. M , N >. ] .~ ) $.
    $( H,J for AG(BFC) $)
    ecovdi.3 $e |- ( ( ( x e. S /\ y e. S ) /\ ( M e. S /\ N e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. M , N >. ] .~ ) = [ <. H , J >. ] .~ ) $.
    $( W,X for AGB $)
    ecovdi.4 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. z , w >. ] .~ ) = [ <. W , X >. ] .~ ) $.
    $( Y,Z for AGC $)
    ecovdi.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. v , u >. ] .~ ) = [ <. Y , Z >. ] .~ ) $.
    $( K,L for (AGB)F(AGC) $)
    ecovdi.6 $e |- ( ( ( W e. S /\ X e. S ) /\ ( Y e. S /\ Z e. S ) ) ->
 ( [ <. W , X >. ] .~ .+ [ <. Y , Z >. ] .~ ) = [ <. K , L >. ] .~ ) $.
    ecovdi.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( M e. S /\ N e. S ) ) $.
    ecovdi.8 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( W e. S /\ X e. S ) ) $.
    ecovdi.9 $e |- ( ( ( x e. S /\ y e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( Y e. S /\ Z e. S ) ) $.
    ecovdi.10 $e |- H = K $.
    ecovdi.11 $e |- J = L $.
    $( Lemma used to transfer a distributive law via an equivalence relation.
       Most likely ~ ecovidi will be more helpful.  (Contributed by NM,
       2-Sep-1995.)  (Revised by David Abernethy, 4-Jun-2013.) $)
    ecovdi $p |- ( ( A e. D /\ B e. D /\ C e. D ) ->
                 ( A .x. ( B .+ C ) ) = ( ( A .x. B ) .+ ( A .x. C ) ) ) $=
      ( cv cop co wceq oveq1 oveq12d eqeq12d oveq2d oveq2 oveq1d wcel wa opeq12
      cec w3a eceq1d mp2an adantl sylan2 eqtrd 3impb oveqan12d syl2an 3ecoptocl
      3impdi 3eqtr4a ) AUPZBUPZUQLVIZCUPZDUPZUQLVIZEUPZFUPZUQLVIZKURZNURZWDWGNU
      RZWDWJNURZKURZUSGWKNURZGWGNURZGWJNURZKURZUSGHWJKURZNURZGHNURZWRKURZUSGHIK
      URZNURZXBGINURZKURZUSABCDEFGHIMLJUEWDGUSZWLWPWOWSWDGWKNUTXHWMWQWNWRKWDGWG
      NUTWDGWJNUTVAVBWGHUSZWPXAWSXCXIWKWTGNWGHWJKUTVCXIWQXBWRKWGHGNVDVEVBWJIUSZ
      XAXEXCXGXJWTXDGNWJIHKVDVCXJWRXFXBKWJIGNVDVCVBWBMVFWCMVFVGZWEMVFWFMVFVGZWH
      MVFWIMVFVGZVJOPUQZLVIZQRUQZLVIZWLWOOQUSZPRUSZXOXQUSUNUOXRXSVGXNXPLOPQRVHV
      KVLXKXLXMWLXOUSXKXLXMVGZVGWLWDSTUQLVIZNURZXOXTWLYBUSXKXTWKYAWDNUFVCVMXTXK
      SMVFTMVFVGYBXOUSUKUGVNVOVPXKXLXMWOXQUSXKXLVGZXKXMVGZVGWOUAUBUQLVIZUCUDUQL
      VIZKURZXQYCYDWMYEWNYFKUHUIVQYCUAMVFUBMVFVGUCMVFUDMVFVGYGXQUSYDULUMUJVRVOV
      TWAVS $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d w v u C $.  $d x y z w v u .+ $.
    $d x y z w v u .~ $.  $d x y z w v u S $.  $d x y z w v u .x. $.
    $d z w v u D $.
    ecovidi.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    $( M,N for BFC $)
    ecovidi.2 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. M , N >. ] .~ ) $.
    $( H,J for AG(BFC) $)
    ecovidi.3 $e |- ( ( ( x e. S /\ y e. S ) /\ ( M e. S /\ N e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. M , N >. ] .~ ) = [ <. H , J >. ] .~ ) $.
    $( W,X for AGB $)
    ecovidi.4 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. z , w >. ] .~ ) = [ <. W , X >. ] .~ ) $.
    $( Y,Z for AGC $)
    ecovidi.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. v , u >. ] .~ ) = [ <. Y , Z >. ] .~ ) $.
    $( K,L for (AGB)F(AGC) $)
    ecovidi.6 $e |- ( ( ( W e. S /\ X e. S ) /\ ( Y e. S /\ Z e. S ) ) ->
 ( [ <. W , X >. ] .~ .+ [ <. Y , Z >. ] .~ ) = [ <. K , L >. ] .~ ) $.
    ecovidi.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( M e. S /\ N e. S ) ) $.
    ecovidi.8 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( W e. S /\ X e. S ) ) $.
    ecovidi.9 $e |- ( ( ( x e. S /\ y e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( Y e. S /\ Z e. S ) ) $.
    ecovidi.10 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> H = K ) $.
    ecovidi.11 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> J = L ) $.
    $( Lemma used to transfer a distributive law via an equivalence relation.
       (Contributed by Jim Kingdon, 17-Sep-2019.) $)
    ecovidi $p |- ( ( A e. D /\ B e. D /\ C e. D ) ->
                 ( A .x. ( B .+ C ) ) = ( ( A .x. B ) .+ ( A .x. C ) ) ) $=
      ( cv cop co wceq oveq1 oveq12d eqeq12d oveq2d oveq2 oveq1d wcel wa opeq12
      cec w3a eceq1d syl2anc adantl sylan2 eqtrd 3impb oveqan12d syl2an 3eqtr4d
      3impdi 3ecoptocl ) AUPZBUPZUQLVIZCUPZDUPZUQLVIZEUPZFUPZUQLVIZKURZNURZWDWG
      NURZWDWJNURZKURZUSGWKNURZGWGNURZGWJNURZKURZUSGHWJKURZNURZGHNURZWRKURZUSGH
      IKURZNURZXBGINURZKURZUSABCDEFGHIMLJUEWDGUSZWLWPWOWSWDGWKNUTXHWMWQWNWRKWDG
      WGNUTWDGWJNUTVAVBWGHUSZWPXAWSXCXIWKWTGNWGHWJKUTVCXIWQXBWRKWGHGNVDVEVBWJIU
      SZXAXEXCXGXJWTXDGNWJIHKVDVCXJWRXFXBKWJIGNVDVCVBWBMVFWCMVFVGZWEMVFWFMVFVGZ
      WHMVFWIMVFVGZVJZOPUQZLVIZQRUQZLVIZWLWOXNOQUSZPRUSZXPXRUSUNUOXSXTVGXOXQLOP
      QRVHVKVLXKXLXMWLXPUSXKXLXMVGZVGWLWDSTUQLVIZNURZXPYAWLYCUSXKYAWKYBWDNUFVCV
      MYAXKSMVFTMVFVGYCXPUSUKUGVNVOVPXKXLXMWOXRUSXKXLVGZXKXMVGZVGWOUAUBUQLVIZUC
      UDUQLVIZKURZXRYDYEWMYFWNYGKUHUIVQYDUAMVFUBMVFVGUCMVFUDMVFVGYHXRUSYEULUMUJ
      VRVOVTVSWA $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Equinumerosity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c ~~ $.  $( Equinumerosity relation ("approximately equals" symbol) $)
  $c ~<_ $.  $( Dominance relation (curly less-than-or-equal) $)
  $c Fin $.  $( Class of all finite sets. $)

  $( Extend class definition to include the equinumerosity relation
     ("approximately equals" symbol) $)
  cen $a class ~~ $.

  $( Extend class definition to include the dominance relation (curly
     less-than-or-equal) $)
  cdom $a class ~<_ $.

  $( Extend class definition to include the class of all finite sets. $)
  cfn $a class Fin $.

  ${
    $d x y f $.
    $( Define the equinumerosity relation.  Definition of [Enderton] p. 129.
       We define ` ~~ ` to be a binary relation rather than a connective, so
       its arguments must be sets to be meaningful.  This is acceptable because
       we do not consider equinumerosity for proper classes.  We derive the
       usual definition as ~ bren .  (Contributed by NM, 28-Mar-1998.) $)
    df-en $a |- ~~ = { <. x , y >. | E. f f : x -1-1-onto-> y } $.

    $( Define the dominance relation.  Compare Definition of [Enderton]
       p. 145.  Typical textbook definitions are derived as ~ brdom and
       ~ domen .  (Contributed by NM, 28-Mar-1998.) $)
    df-dom $a |- ~<_ = { <. x , y >. | E. f f : x -1-1-> y } $.

    $( Define the (proper) class of all finite sets.  Similar to Definition
       10.29 of [TakeutiZaring] p. 91, whose "Fin(a)" corresponds to
       our " ` a e. Fin ` ".  This definition is meaningful whether or not we
       accept the Axiom of Infinity ~ ax-inf2 .  (Contributed by NM,
       22-Aug-2008.) $)
    df-fin $a |- Fin = { x | E. y e. _om x ~~ y } $.
  $}

  ${
    $d x y f $.  $d x y f $.
    $( Equinumerosity is a relation.  (Contributed by NM, 28-Mar-1998.) $)
    relen $p |- Rel ~~ $=
      ( vx vy vf cv wf1o wex cen df-en relopabi ) ADBDCDECFABGABCHI $.

    $( Dominance is a relation.  (Contributed by NM, 28-Mar-1998.) $)
    reldom $p |- Rel ~<_ $=
      ( vx vy vf cv wf1 wex cdom df-dom relopabi ) ADBDCDECFABGABCHI $.
  $}

  $( If two classes are equinumerous, both classes are sets.  (Contributed by
     AV, 21-Mar-2019.) $)
  encv $p |- ( A ~~ B -> ( A e. _V /\ B e. _V ) ) $=
    ( cen wrel wbr cvv wcel wa relen brrelex12 mpan ) CDABCEAFGBFGHIABCJK $.

  ${
    $d f x y A $.  $d f x y B $.  $d y C $.
    $( Equinumerosity relation.  (Contributed by NM, 15-Jun-1998.) $)
    bren $p |- ( A ~~ B <-> E. f f : A -1-1-onto-> B ) $=
      ( vx vy cen wbr cvv wcel wa cv wf1o wex encv wfn f1ofn syl6eqelr syl wceq
      exbidv cdm fndm vex dmex crn wfo f1ofo forn rnex jca exlimiv f1oeq2 df-en
      f1oeq3 brabg pm5.21nii ) ABFGAHIZBHIZJZABCKZLZCMZABNVAUSCVAUQURVAUTAOZUQA
      BUTPVCAUTUAHAUTUBUTCUCZUDQRVABUTUEZHVAABUTUFVEBSABUTUGABUTUHRUTVDUIQUJUKD
      KZEKZUTLZCMAVGUTLZCMVBDEABHHFVFASVHVICVFAVGUTULTVGBSVIVACVGBAUTUNTDECUMUO
      UP $.

    $( Dominance relation.  (Contributed by NM, 15-Jun-1998.) $)
    brdomg $p |- ( B e. C -> ( A ~<_ B <-> E. f f : A -1-1-> B ) ) $=
      ( vx vy wcel cvv cdom wbr cv wf1 wex wi reldom brrelexi a1i wceq exbidv
      wf f1f cdm fdm vex dmex syl6eqelr syl exlimiv wb f1eq2 f1eq3 df-dom brabg
      expcom pm5.21ndd ) BCGZAHGZABIJZABDKZLZDMZURUQNUPABIOPQVAUQNUPUTUQDUTABUS
      TZUQABUSUAVBAUSUBHABUSUCUSDUDUEUFUGUHQUQUPURVAUIEKZFKZUSLZDMAVDUSLZDMVAEF
      ABHCIVCARVEVFDVCAVDUSUJSVDBRVFUTDVDBAUSUKSEFDULUMUNUO $.

    $( Dominance relation.  (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    brdomi $p |- ( A ~<_ B -> E. f f : A -1-1-> B ) $=
      ( cdom wbr cv wf1 wex cvv wcel wb reldom brrelex2i brdomg syl ibi ) ABDEZ
      ABCFGCHZQBIJQRKABDLMABICNOP $.
  $}

  ${
    $d f x y A $.  $d f x y B $.  $d f w x y z $.
    bren.1 $e |- B e. _V $.
    $( Dominance relation.  (Contributed by NM, 15-Jun-1998.) $)
    brdom $p |- ( A ~<_ B <-> E. f f : A -1-1-> B ) $=
      ( cvv wcel cdom wbr cv wf1 wex wb brdomg ax-mp ) BEFABGHABCIJCKLDABECMN
      $.

    $( Dominance in terms of equinumerosity.  Example 1 of [Enderton] p. 146.
       (Contributed by NM, 15-Jun-1998.) $)
    domen $p |- ( A ~<_ B <-> E. x ( A ~~ x /\ x C_ B ) ) $=
      ( vf cdom wbr cv wf1 wex cen wss brdom wf1o vex f11o exbii bitri bitr4i
      wa excom bren anbi1i 19.41v ) BCFGBCEHZIZEJZBAHZKGZUHCLZTZAJZBCEDMUGBUHUE
      NZUJTZEJZAJZULUGUNAJZEJUPUFUQEABCUEEOPQUNEAUARUKUOAUKUMEJZUJTUOUIURUJBUHE
      UBUCUMUJEUDSQSR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Dominance in terms of equinumerosity, with the sethood requirement
       expressed as an antecedent.  Example 1 of [Enderton] p. 146.
       (Contributed by NM, 24-Apr-2004.) $)
    domeng $p |- ( B e. C -> ( A ~<_ B <-> E. x ( A ~~ x /\ x C_ B ) ) ) $=
      ( vy cv cdom wbr cen wss wex breq2 wceq sseq2 anbi2d exbidv domen vtoclbg
      wa vex ) BEFZGHBAFZIHZUBUAJZSZAKBCGHUCUBCJZSZAKECDUACBGLUACMZUEUGAUHUDUFU
      CUACUBNOPABUAETQR $.
  $}

  ${
    $d f A $.  $d f B $.  $d f F $.
    $( The domain and range of a one-to-one, onto function are equinumerous.
       This variation of ~ f1oeng does not require the Axiom of Replacement.
       (Contributed by NM, 13-Jan-2007.)  (Revised by Mario Carneiro,
       10-Sep-2015.) $)
    f1oen3g $p |- ( ( F e. V /\ F : A -1-1-onto-> B ) -> A ~~ B ) $=
      ( vf wcel wf1o wa cv wex cen wbr f1oeq1 spcegv imp bren sylibr ) CDFZABCG
      ZHABEIZGZEJZABKLRSUBUASECDABTCMNOABEPQ $.

    $( The domain and range of a one-to-one, onto function are equinumerous.
       This variation of ~ f1oeng does not require the Axiom of Replacement.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    f1oen2g $p |- ( ( A e. V /\ B e. W /\ F : A -1-1-onto-> B ) -> A ~~ B ) $=
      ( wcel wf1o w3a cvv cen wbr f1of fex2 syl3an1 3coml simp3 f1oen3g syl2anc
      wf ) ADFZBEFZABCGZHCIFZUBABJKUBTUAUCUBABCSTUAUCABCLABCDEMNOTUAUBPABCIQR
      $.

    $( The domain of a one-to-one function is dominated by its codomain.  This
       variation of ~ f1domg does not require the Axiom of Replacement.
       (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    f1dom2g $p |- ( ( A e. V /\ B e. W /\ F : A -1-1-> B ) -> A ~<_ B ) $=
      ( vf wcel wf1 w3a cdom wbr cv wex cvv wf f1f fex2 syl3an1 3coml simp3 wb
      f1eq1 spcegv sylc brdomg 3ad2ant2 mpbird ) ADGZBEGZABCHZIZABJKZABFLZHZFMZ
      UKCNGZUJUOUJUHUIUPUJABCOUHUIUPABCPABCDEQRSUHUIUJTUNUJFCNABUMCUBUCUDUIUHUL
      UOUAUJABEFUEUFUG $.

    $( The domain and range of a one-to-one, onto function are equinumerous.
       (Contributed by NM, 19-Jun-1998.) $)
    f1oeng $p |- ( ( A e. C /\ F : A -1-1-onto-> B ) -> A ~~ B ) $=
      ( wcel wf1o cvv cen wbr wfo f1ofo fornex syl5 imp f1oen2g 3com23 mpd3an3
      ) ACEZABDFZBGEZABHIZRSTSABDJRTABDKABCDLMNRTSUAABDCGOPQ $.

    $( The domain of a one-to-one function is dominated by its codomain.
       (Contributed by NM, 4-Sep-2004.) $)
    f1domg $p |- ( B e. C -> ( F : A -1-1-> B -> A ~<_ B ) ) $=
      ( vf wcel wf1 cv wex cdom wbr cvv f1dmex wf f1f sylan syldan expcom f1eq1
      fex spcegv syli brdomg sylibrd ) BCFZABDGZABEHZGZEIZABJKUFUEDLFZUIUFUEUJU
      FUEALFZUJABCDMUFABDNUKUJABDOABLDTPQRUHUFEDLABUGDSUAUBABCEUCUD $.
  $}

  ${
    f1oen.1 $e |- A e. _V $.
    $( The domain and range of a one-to-one, onto function are equinumerous.
       (Contributed by NM, 19-Jun-1998.) $)
    f1oen $p |- ( F : A -1-1-onto-> B -> A ~~ B ) $=
      ( cvv wcel wf1o cen wbr f1oeng mpan ) AEFABCGABHIDABECJK $.
  $}

  ${
    f1dom.1 $e |- B e. _V $.
    $( The domain of a one-to-one function is dominated by its codomain.
       (Contributed by NM, 19-Jun-1998.) $)
    f1dom $p |- ( F : A -1-1-> B -> A ~<_ B ) $=
      ( cvv wcel wf1 cdom wbr wi f1domg ax-mp ) BEFABCGABHIJDABECKL $.
  $}

  ${
    $d x y f A $.
    $( Express " ` A ` is finite."  Definition 10.29 of [TakeutiZaring] p. 91
       (whose " ` Fin ` " is a predicate instead of a class).  (Contributed by
       NM, 22-Aug-2008.) $)
    isfi $p |- ( A e. Fin <-> E. x e. _om A ~~ x ) $=
      ( vy cfn wcel cen wbr com wrex cab df-fin eleq2i relen brrelexi rexlimivw
      cv cvv wceq breq1 rexbidv elab3 bitri ) BDEBCPZAPZFGZAHIZCJZEBUDFGZAHIZDU
      GBCAKLUFUICBUHBQEAHBUDFMNOUCBRUEUHAHUCBUDFSTUAUB $.

    $( Equinumerosity implies dominance.  (Contributed by NM, 31-Mar-1998.) $)
    enssdom $p |- ~~ C_ ~<_ $=
      ( vx vy vf cen cdom relen cop wf1o wex copab wcel wf1 f1of1 eximi 3imtr4i
      cv opabid df-en eleq2i df-dom relssi ) ABDEFAPZBPZGZUBUCCPZHZCIZABJZKZUDU
      BUCUELZCIZABJZKZUDDKUDEKUGUKUIUMUFUJCUBUCUEMNUGABQUKABQODUHUDABCRSEULUDAB
      CTSOUA $.
  $}

  $( Equinumerosity implies dominance.  Theorem 15 of [Suppes] p. 94.
     (Contributed by NM, 28-May-1998.) $)
  endom $p |- ( A ~~ B -> A ~<_ B ) $=
    ( cen cdom enssdom ssbri ) CDABEF $.

  $( Equinumerosity is reflexive.  Theorem 1 of [Suppes] p. 92.  (Contributed
     by NM, 18-Jun-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  enrefg $p |- ( A e. V -> A ~~ A ) $=
    ( wcel cen wbr cid cres wf1o f1oi f1oen2g mp3an3 anidms ) ABCZAADEZMMAAFAGZ
    HNAIAAOBBJKL $.

  ${
    enref.1 $e |- A e. _V $.
    $( Equinumerosity is reflexive.  Theorem 1 of [Suppes] p. 92.  (Contributed
       by NM, 25-Sep-2004.) $)
    enref $p |- A ~~ A $=
      ( cvv wcel cen wbr enrefg ax-mp ) ACDAAEFBACGH $.
  $}

  $( Equality implies equinumerosity.  (Contributed by NM, 26-Oct-2003.) $)
  eqeng $p |- ( A e. V -> ( A = B -> A ~~ B ) ) $=
    ( wcel cen wbr wceq enrefg breq2 syl5ibcom ) ACDAAEFABGABEFACHABAEIJ $.

  $( Dominance is reflexive.  (Contributed by NM, 18-Jun-1998.) $)
  domrefg $p |- ( A e. V -> A ~<_ A ) $=
    ( wcel cen wbr cdom enrefg endom syl ) ABCAADEAAFEABGAAHI $.

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d x y ph $.
    en2d.1 $e |- ( ph -> A e. _V ) $.
    en2d.2 $e |- ( ph -> B e. _V ) $.
    en2d.3 $e |- ( ph -> ( x e. A -> C e. _V ) ) $.
    en2d.4 $e |- ( ph -> ( y e. B -> D e. _V ) ) $.
    en2d.5 $e |- ( ph -> ( ( x e. A /\ y = C ) <-> ( y e. B /\ x = D ) ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 27-Jul-2004.)  (Revised by Mario Carneiro,
       12-May-2014.) $)
    en2d $p |- ( ph -> A ~~ B ) $=
      ( cvv wcel cmpt wf1o cen wbr cv imp eqid f1od f1oen2g syl3anc ) ADMNEMNDE
      BDFOZPDEQRHIABCDEFGUEMMUEUAABSDNFMNJTACSENGMNKTLUBDEUEMMUCUD $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d x y ph $.
    en3d.1 $e |- ( ph -> A e. _V ) $.
    en3d.2 $e |- ( ph -> B e. _V ) $.
    en3d.3 $e |- ( ph -> ( x e. A -> C e. B ) ) $.
    en3d.4 $e |- ( ph -> ( y e. B -> D e. A ) ) $.
    en3d.5 $e |- ( ph -> ( ( x e. A /\ y e. B ) -> ( x = D <-> y = C ) ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 27-Jul-2004.)  (Revised by Mario Carneiro,
       12-May-2014.) $)
    en3d $p |- ( ph -> A ~~ B ) $=
      ( cvv wcel cmpt wf1o cen cv imp wceq wbr eqid wa wb f1o2d f1oen2g syl3anc
      ) ADMNEMNDEBDFOZPDEQUAHIABCDEFGUHUHUBABRZDNZFENJSACRZENZGDNKSAUJULUCUIGTU
      KFTUDLSUEDEUHMMUFUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    en2i.1 $e |- A e. _V $.
    en2i.2 $e |- B e. _V $.
    en2i.3 $e |- ( x e. A -> C e. _V ) $.
    en2i.4 $e |- ( y e. B -> D e. _V ) $.
    en2i.5 $e |- ( ( x e. A /\ y = C ) <-> ( y e. B /\ x = D ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 4-Jan-2004.) $)
    en2i $p |- A ~~ B $=
      ( cen wtru cvv wcel a1i cv wi wceq wa wbr wb en2d trud ) CDLUAMABCDEFCNOM
      GPDNOMHPAQZCOZENORMIPBQZDOZFNORMJPUFUGESTUHUEFSTUBMKPUCUD $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    en3i.1 $e |- A e. _V $.
    en3i.2 $e |- B e. _V $.
    en3i.3 $e |- ( x e. A -> C e. B ) $.
    en3i.4 $e |- ( y e. B -> D e. A ) $.
    en3i.5 $e |- ( ( x e. A /\ y e. B ) -> ( x = D <-> y = C ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 19-Jul-2004.) $)
    en3i $p |- A ~~ B $=
      ( cen wbr wtru cvv wcel a1i cv wi wceq wa wb en3d trud ) CDLMNABCDEFCOPNG
      QDOPNHQARZCPZEDPSNIQBRZDPZFCPSNJQUFUHUAUEFTUGETUBSNKQUCUD $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d y z C $.  $d x z D $.  $d x y ph $.
    dom2d.1 $e |- ( ph -> ( x e. A -> C e. B ) ) $.
    dom2d.2 $e |- ( ph -> ( ( x e. A /\ y e. A ) -> ( C = D <-> x = y ) ) ) $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain.  (Contributed by NM,
       24-Jul-2004.) $)
    dom2lem $p |- ( ph -> ( x e. A |-> C ) : A -1-1-> B ) $=
      ( cv cfv wceq wi wral wcel wa imp anbi2d wb eqeq12d cmpt wf ralrimiv eqid
      wf1 fmpt sylib fvmpt2 adantll mpdan adantrr nfv nffvmpt1 nfeq1 nfim eleq1
      imbi1d anbi1d anidm syl6bb fveq2 adantr biimparc ex sylbird pm5.74d bitrd
      chvar adantrl biimpd sylbid ralrimivva nfmpt1 nfcv dff13f sylanbrc ) ADEB
      DFUAZUBZBJZVQKZCJZVQKZLZVSWALZMZCDNBDNDEVQUEAFEOZBDNVRAWFBDHUCBDEFVQVQUDZ
      UFUGAWEBCDDAVSDOZWADOZPZPZWCFGLZWDWKVTFWBGAWHVTFLZWIAWHPZWFWMAWHWFHQWHWFW
      MABDFEVQWGUHUIUJZUKAWIWBGLZWHWNWMMZAWIPZWPMZBCWRWPBWRBULBWBGBDFWAUMUNUOWD
      WQWRWMMWSWDWNWRWMWDWHWIAVSWADUPZRUQWDWRWMWPWDWRWKWMWPSZWDWJWIAWDWJWIWIPWI
      WDWHWIWIWTURWIUSUTRWDWKXAWDWKPVTWBFGWDWCWKVSWAVQVAVBWKWLWDAWJWLWDSIQZVCTV
      DVEVFVGWOVHVITWKWLWDXBVJVKVLBCDEVQBDFVMCVQVNVOVP $.

    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain.  (Contributed by NM,
       24-Jul-2004.)  (Revised by Mario Carneiro, 20-May-2013.) $)
    dom2d $p |- ( ph -> ( B e. R -> A ~<_ B ) ) $=
      ( cmpt wf1 wcel cdom wbr dom2lem f1domg syl5com ) ADEBDFKZLEHMDENOABCDEFG
      IJPDEHSQR $.

    dom3d.3 $e |- ( ph -> A e. V ) $.
    dom3d.4 $e |- ( ph -> B e. W ) $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain.  (Contributed by Mario
       Carneiro, 20-May-2013.) $)
    dom3d $p |- ( ph -> A ~<_ B ) $=
      ( vz cdom wbr wf1 cvv wcel syl cv wex cmpt dom2lem f1f fex2 syl3anc f1eq1
      wf spcegv sylc wb brdomg mpbird ) ADEOPZDENUAZQZNUBZABDFUCZRSZDEUSQZURADE
      USUIZDHSEISZUTAVAVBABCDEFGJKUDZDEUSUETLMDEUSHIUFUGVDUQVANUSRDEUPUSUHUJUKA
      VCUOURULMDEINUMTUN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    dom2.1 $e |- ( x e. A -> C e. B ) $.
    dom2.2 $e |- ( ( x e. A /\ y e. A ) -> ( C = D <-> x = y ) ) $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain. ` C ` and ` D ` can be
       read ` C ( x ) ` and ` D ( y ) ` , as can be inferred from their
       distinct variable conditions.  (Contributed by NM, 26-Oct-2003.) $)
    dom2 $p |- ( B e. V -> A ~<_ B ) $=
      ( wceq wcel cdom wbr wi eqid cv a1i wa wb dom2d ax-mp ) CCJZDGKCDLMNCOUBA
      BCDEFGAPZCKZEDKNUBHQUDBPZCKREFJUCUEJSNUBIQTUA $.

    $d x y V $.  $d x y W $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain. ` C ` and ` D ` can be
       read ` C ( x ) ` and ` D ( y ) ` , as can be inferred from their
       distinct variable conditions.  (Contributed by Mario Carneiro,
       20-May-2013.) $)
    dom3 $p |- ( ( A e. V /\ B e. W ) -> A ~<_ B ) $=
      ( wcel wa cv wi a1i wceq wb simpl simpr dom3d ) CGKZDHKZLZABCDEFGHAMZCKZE
      DKNUCIOUEBMZCKLEFPUDUFPQNUCJOUAUBRUAUBST $.
  $}

  ${
    $d x y $.
    $( Equality implies equinumerosity.  (Contributed by NM, 30-Apr-1998.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    idssen $p |- _I C_ ~~ $=
      ( vx vy cid cen reli cv wbr cop wcel weq vex ideq eqeng ax-mp sylbi df-br
      cvv wi 3imtr3i relssi ) ABCDEAFZBFZCGZUAUBDGZUAUBHZCIUEDIUCABJZUDUAUBBKLU
      AQIUFUDRAKUAUBQMNOUAUBCPUAUBDPST $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A set dominates its subsets.  Theorem 16 of [Suppes] p. 94.
       (Contributed by NM, 19-Jun-1998.)  (Revised by Mario Carneiro,
       24-Jun-2015.) $)
    ssdomg $p |- ( B e. V -> ( A C_ B -> A ~<_ B ) ) $=
      ( wss wcel cdom wbr wa cvv cid cres wf1 ssexg simpr wf ccnv wfun wfo wf1o
      ax-mp f1oi dff1o3 mpbi simpli fof fss mpan funi cnvi mpbir funres11 jctir
      funeqi df-f1 sylibr adantr f1dom2g syl3anc expcom ) ABDZBCEZABFGZUTVAHAIE
      VAABJAKZLZVBABCMUTVANUTVDVAUTABVCOZVCPQZHVDUTVEVFAAVCOZUTVEAAVCRZVGVHVFAA
      VCSVHVFHAUAAAVCUBUCUDAAVCUETAABVCUFUGJPZQZVFVJJQUHVIJUIUMUJAJUKTULABVCUNU
      OUPABVCICUQURUS $.
  $}

  ${
    $d f g x y z $.
    $( Equinumerosity is an equivalence relation.  (Contributed by NM,
       19-Mar-1998.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    ener $p |- ~~ Er _V $=
      ( vx vy vz vf cvv cen wtru a1i wbr wf1o wex bren wcel vex f1oen2g mp3an12
      vg cv syl wa wrel relen ccnv f1ocnv exlimiv sylbi adantl eeanv ccom f1oco
      wer ancoms exlimivv sylbir syl2anb wb enref 2th iserd trud ) EFUKGABCEFFU
      AGUBHARZBRZFIZVBVAFIZGVCVAVBDRZJZDKVDVAVBDLVFVDDVFVBVAVEUCZJZVDVAVBVEUDVB
      EMVAEMZVHVDBNANZVBVAVGEEOPSUEUFUGVCVBCRZFIZTVAVKFIZGVCVAVBQRZJZQKZVBVKVEJ
      ZDKZVMVLVAVBQLVBVKDLVPVRTVOVQTZDKQKVMVOVQQDUHVSVMQDVSVAVKVEVNUIZJZVMVQVOW
      AVAVBVKVEVNUJULVIVKEMWAVMVJCNVAVKVTEEOPSUMUNUOUGVIVAVAFIZUPGVIWBVJVAVJUQU
      RHUSUT $.
  $}

  $( Symmetry of equinumerosity.  Theorem 2 of [Suppes] p. 92.  (Contributed by
     Mario Carneiro, 26-Apr-2015.) $)
  ensymb $p |- ( A ~~ B <-> B ~~ A ) $=
    ( cen wbr wb wtru cvv wer ener a1i ersymb trud ) ABCDBACDEFABCGGCHFIJKL $.

  $( Symmetry of equinumerosity.  Theorem 2 of [Suppes] p. 92.  (Contributed by
     NM, 26-Oct-2003.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  ensym $p |- ( A ~~ B -> B ~~ A ) $=
    ( cen wbr ensymb biimpi ) ABCDBACDABEF $.

  ${
    ensymi.2 $e |- A ~~ B $.
    $( Symmetry of equinumerosity.  Theorem 2 of [Suppes] p. 92.  (Contributed
       by NM, 25-Sep-2004.) $)
    ensymi $p |- B ~~ A $=
      ( cen wbr ensym ax-mp ) ABDEBADECABFG $.
  $}

  ${
    ensymd.1 $e |- ( ph -> A ~~ B ) $.
    $( Symmetry of equinumerosity.  Deduction form of ~ ensym .  (Contributed
       by David Moews, 1-May-2017.) $)
    ensymd $p |- ( ph -> B ~~ A ) $=
      ( cen wbr ensym syl ) ABCEFCBEFDBCGH $.
  $}

  ${
    $d x y z f g h A $.  $d x y z f g B $.  $d x y z f g h C $.
    $( Transitivity of equinumerosity.  Theorem 3 of [Suppes] p. 92.
       (Contributed by NM, 9-Jun-1998.) $)
    entr $p |- ( ( A ~~ B /\ B ~~ C ) -> A ~~ C ) $=
      ( cen wbr wa wi wtru cvv wer ener a1i ertr trud ) ABDEBCDEFACDEGHABCDIIDJ
      HKLMN $.

    $( Transitivity of dominance relation.  Theorem 17 of [Suppes] p. 94.
       (Contributed by NM, 4-Jun-1998.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    domtr $p |- ( ( A ~<_ B /\ B ~<_ C ) -> A ~<_ C ) $=
      ( vx vy vz vg vf vh cdom reldom cv wbr wf1 wex vex brdom wa eeanv ccom
      f1co ancoms coex f1eq1 spcev syl sylibr exlimivv sylbir syl2anb vtoclr )
      DEFABCJKDLZELZJMULUMGLZNZGOZUMFLZHLZNZHOZULUQJMZUMUQJMULUMGEPQUMUQHFPZQUP
      UTRUOUSRZHOGOVAUOUSGHSVCVAGHVCULUQILZNZIOZVAVCULUQURUNTZNZVFUSUOVHULUMUQU
      RUNUAUBVEVHIVGURUNHPGPUCULUQVDVGUDUEUFULUQIVBQUGUHUIUJUK $.
  $}

  ${
    entri.1 $e |- A ~~ B $.
    entri.2 $e |- B ~~ C $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entri $p |- A ~~ C $=
      ( cen wbr entr mp2an ) ABFGBCFGACFGDEABCHI $.
  $}

  ${
    entr2i.1 $e |- A ~~ B $.
    entr2i.2 $e |- B ~~ C $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entr2i $p |- C ~~ A $=
      ( entri ensymi ) ACABCDEFG $.
  $}

  ${
    entr3i.1 $e |- A ~~ B $.
    entr3i.2 $e |- A ~~ C $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entr3i $p |- B ~~ C $=
      ( ensymi entri ) BACABDFEG $.
  $}

  ${
    entr4i.1 $e |- A ~~ B $.
    entr4i.2 $e |- C ~~ B $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entr4i $p |- A ~~ C $=
      ( ensymi entri ) ABCDCBEFG $.
  $}

  $( Transitivity of equinumerosity and dominance.  (Contributed by NM,
     7-Jun-1998.) $)
  endomtr $p |- ( ( A ~~ B /\ B ~<_ C ) -> A ~<_ C ) $=
    ( cen wbr cdom endom domtr sylan ) ABDEABFEBCFEACFEABGABCHI $.

  $( Transitivity of dominance and equinumerosity.  (Contributed by NM,
     7-Jun-1998.) $)
  domentr $p |- ( ( A ~<_ B /\ B ~~ C ) -> A ~<_ C ) $=
    ( cen wbr cdom endom domtr sylan2 ) BCDEABFEBCFEACFEBCGABCHI $.

  $( A one-to-one function's image under a subset of its domain is equinumerous
     to the subset.  (Contributed by Mario Carneiro, 15-May-2015.) $)
  f1imaeng $p |- ( ( F : A -1-1-> B /\ C C_ A /\ C e. V ) ->
    ( F " C ) ~~ C ) $=
    ( wf1 wss wcel w3a cima cres wf1o cen f1ores f1oeng ancoms stoic3 ensymd
    wbr ) ABDFZCAGZCEHZICDCJZTUACUCDCKZLZUBCUCMSZABCDNUBUEUFCUCEUDOPQR $.

  $( A one-to-one function's image under a subset of its domain is equinumerous
     to the subset.  (This version of ~ f1imaen does not need ~ ax-setind .)
     (Contributed by Mario Carneiro, 16-Nov-2014.)  (Revised by Mario Carneiro,
     25-Jun-2015.) $)
  f1imaen2g $p |- ( ( ( F : A -1-1-> B /\ B e. V ) /\ ( C C_ A /\ C e. V ) ) ->
    ( F " C ) ~~ C ) $=
    ( wf1 wcel wa wss cima cvv cres wf1o cen wbr simprr simplr wf f1f crn ssexd
    imassrn frn syl5ss syl ad2antrr f1ores ad2ant2r f1oen2g syl3anc ensymd ) AB
    DFZBEGZHZCAIZCEGZHZHZCDCJZURUPUSKGCUSDCLZMZCUSNOUNUOUPPURUSBEULUMUQQULUSBIZ
    UMUQULABDRZVBABDSVCUSDTBDCUBABDUCUDUEUFUAULUOVAUMUPABCDUGUHCUSUTEKUIUJUK $.

  ${
    f1imaen.1 $e |- C e. _V $.
    $( A one-to-one function's image under a subset of its domain is
       equinumerous to the subset.  (Contributed by NM, 30-Sep-2004.) $)
    f1imaen $p |- ( ( F : A -1-1-> B /\ C C_ A ) -> ( F " C ) ~~ C ) $=
      ( wf1 wss cvv wcel cima cen wbr f1imaeng mp3an3 ) ABDFCAGCHIDCJCKLEABCDHM
      N $.
  $}

  ${
    $d f A $.
    $( The empty set is equinumerous only to itself.  Exercise 1 of
       [TakeutiZaring] p. 88.  (Contributed by NM, 27-May-1998.) $)
    en0 $p |- ( A ~~ (/) <-> A = (/) ) $=
      ( vf c0 cen wbr wceq cv wf1o wex bren ccnv f1ocnv f1o00 simprbi syl sylbi
      exlimiv 0ex enref breq1 mpbiri impbii ) ACDEZACFZUCACBGZHZBIUDACBJUFUDBUF
      CAUEKZHZUDACUELUHUGCFUDAUGMNOQPUDUCCCDECRSACCDTUAUB $.
  $}

  ${
    $d f A $.
    ensn1.1 $e |- A e. _V $.
    $( A singleton is equinumerous to ordinal one.  (Contributed by NM,
       4-Nov-2002.) $)
    ensn1 $p |- { A } ~~ 1o $=
      ( vf csn c0 c1o cen wbr cv wf1o wex cop 0ex f1osn opex f1oeq1 spcev ax-mp
      snex bren mpbir df1o2 breqtrri ) ADZEDZFGUDUEGHUDUECIZJZCKZUDUEAELZDZJZUH
      AEBMNUGUKCUJUIAEBMOSUDUEUFUJPQRUDUECTUAUBUC $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A singleton is equinumerous to ordinal one.  (Contributed by NM,
       23-Apr-2004.) $)
    ensn1g $p |- ( A e. V -> { A } ~~ 1o ) $=
      ( vx cv csn c1o cen wbr wceq sneq breq1d vex ensn1 vtoclg ) CDZEZFGHAEZFG
      HCABOAIPQFGOAJKOCLMN $.
  $}

  $( ` { A , A } ` has only one element.  (Contributed by FL, 15-Feb-2010.) $)
  enpr1g $p |- ( A e. V -> { A , A } ~~ 1o ) $=
    ( wcel cpr csn c1o cen dfsn2 ensn1g syl5eqbrr ) ABCAADAEFGAHABIJ $.

  ${
    $d x f y A $.  $d y ph $.
    $( A set is equinumerous to ordinal one iff it is a singleton.
       (Contributed by NM, 25-Jul-2004.) $)
    en1 $p |- ( A ~~ 1o <-> E. x A = { x } ) $=
      ( vf c1o cen wbr cv csn wceq wex c0 wf1o df1o2 breq2i crn syl 0ex exlimiv
      wcel cvv bren bitri ccnv cfv f1ocnv wfo f1ofo forn cop wf f1of fsn2 rneqd
      simprbi rnsnop syl6eq eqtr3d wfn f1ofn snid funfvex funfni sylancl eqeq2d
      wi sneq spcegv sylc sylbi vex ensn1 breq1 mpbiri impbii ) BDEFZBAGZHZIZAJ
      ZVOBKHZCGZLZCJZVSVOBVTEFWCDVTBEMNBVTCUAUBWBVSCWBVTBWAUCZLZBKWDUDZHZIZVSBV
      TWAUEZWBWEWHWIWEWDOZBWGWEVTBWDUFWJBIVTBWDUGVTBWDUHPWEWJKWFUIHZOWGWEWDWKWE
      VTBWDUJZWDWKIZVTBWDUKWLWFBSWMKBWDQULUNPUMKWFQUOUPUQPWEWFTSZWHVSVEWEWDVTUR
      KVTSWNVTBWDUSKQUTWNVTKWDKWDVAVBVCVRWHAWFTVPWFIVQWGBVPWFVFVDVGPVHRVIVRVOAV
      RVOVQDEFVPAVJVKBVQDEVLVMRVN $.

    $( A set is equinumerous to ordinal one iff it is a singleton.
       (Contributed by Jim Kingdon, 13-Apr-2020.) $)
    en1bg $p |- ( A e. V -> ( A ~~ 1o <-> A = { U. A } ) ) $=
      ( vx wcel c1o cen wbr cuni csn cv wex en1 id unieq vex unisn syl6eq sneqd
      wceq cvv eqtr4d exlimiv sylbi uniexg ensn1g syl breq1 syl5ibrcom impbid2
      ) ABDZAEFGZAAHZIZSZUKACJZIZSZCKUNCALUQUNCUQAUPUMUQMUQULUOUQULUPHUOAUPNUOC
      OPQRUAUBUCUJUKUNUMEFGZUJULTDURABUDULTUEUFAUMEFUGUHUI $.

    $( Two ways to express "exactly one".  (Contributed by Stefan O'Rear,
       28-Oct-2014.) $)
    reuen1 $p |- ( E! x e. A ph <-> { x e. A | ph } ~~ 1o ) $=
      ( vy wreu crab cv csn wceq wex c1o cen wbr reusn en1 bitr4i ) ABCEABCFZDG
      HIDJQKLMABDCNDQOP $.

    $( Two ways to express "exactly one".  (Contributed by Stefan O'Rear,
       28-Oct-2014.) $)
    euen1 $p |- ( E! x ph <-> { x | ph } ~~ 1o ) $=
      ( cvv wreu crab c1o cen wbr weu cab reuen1 reuv rabab breq1i 3bitr3i ) AB
      CDABCEZFGHABIABJZFGHABCKABLPQFGABMNO $.

    $( Two ways to express " ` A ` has a unique element".  (Contributed by
       Mario Carneiro, 9-Apr-2015.) $)
    euen1b $p |- ( A ~~ 1o <-> E! x x e. A ) $=
      ( cv wcel weu cab c1o cen wbr euen1 abid2 breq1i bitr2i ) ACBDZAENAFZGHIB
      GHINAJOBGHABKLM $.
  $}

  $( A singleton contains its sole element.  (Contributed by Stefan O'Rear,
     16-Aug-2015.) $)
  en1uniel $p |- ( S ~~ 1o -> U. S e. S ) $=
    ( c1o cen wbr cuni csn wcel relen brrelexi uniexg snidg 3syl wceq wb simpld
    cvv encv en1bg syl ibi eleqtrrd ) ABCDZAEZUCFZAUBAPGZUCPGUCUDGABCHIAPJUCPKL
    UBAUDMZUBUEUBUFNUBUEBPGABQOAPRSTUA $.

  ${
    $d x y f A $.
    $( A set that dominates ordinal 2 has at least 2 different members.
       (Contributed by NM, 25-Jul-2004.) $)
    2dom $p |- ( 2o ~<_ A -> E. x e. A E. y e. A -. x = y ) $=
      ( vf c2o cdom wbr c0 csn cpr cv wf1 wceq wn wrex cfv wcel ffvelrn sylancl
      notbid wex df2o2 breq1i brdomi sylbi wf f1f 0ex prid1 p0ex prid2 0nep0 wb
      neii f1fveq mpanr12 mtbiri eqeq1 eqeq2 rspc2ev syl3anc exlimiv syl ) ECFG
      ZHHIZJZCDKZLZDUAZAKZBKZMZNZBCOACOZVDVFCFGVIEVFCFUBUCVFCDUDUEVHVNDVHHVGPZC
      QZVEVGPZCQZVOVQMZNZVNVHVFCVGUFZHVFQZVPVFCVGUGZHVEUHUIZVFCHVGRSVHWAVEVFQZV
      RWCHVEUJUKZVFCVEVGRSVHVSHVEMZHVEULUNVHWBWEVSWGUMWDWFVFCHVEVGUOUPUQVMVTVOV
      KMZNABVOVQCCVJVOMVLWHVJVOVKURTVKVQMWHVSVKVQVOUSTUTVAVBVC $.
  $}

  ${
    $d x y z w F $.
    fundmen.1 $e |- F e. _V $.
    $( A function is equinumerous to its domain.  Exercise 4 of [Suppes]
       p. 98.  (Contributed by NM, 28-Jul-2004.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    fundmen $p |- ( Fun F -> dom F ~~ F ) $=
      ( vx vy vz vw cv cop cint cvv wcel a1i ex wi wa wceq wb wex vex adantl
      wfun cdm cfv dmex funfvop wrel funrel elreldm syl cxp df-rel sylib sselda
      wss elvv inteq inteqd op1stb syl6eq eqeq1 syl5ibr opeq1 syl6 imp biimprcd
      eqeq2 ancoms eleq1d funopfv adantr sylbid exp32 com24 imp43 opeq2d eqtr4d
      mpd exlimdvv adantrl funfvex op1stbg sylancr eqtr2d adantrr impbid en3d )
      AUAZCDAUBZACGZWIAUCZHZDGZIZIZWHJKWGABUDLAJKWGBLWGWIWHKZWKAKWIAUEMWGAUFZWL
      AKZWNWHKZNAUGZWPWQWRAWLUHMUIWGWOWQOZWIWNPZWLWKPZQWGWTOXAXBWGWQXAXBNZWOWGW
      QOZWLEGZFGZHZPZFRERZXCXDWLJJUJZKXIWGAXJWLWGWPAXJUNWSAUKULUMEFWLUOULXDXHXC
      EFXDXHXAXBXDXHXAOZOZWLWIXFHZWKXKWLXMPZXDXAXHXNXAXHOZXMXGPZXNXAXHXPXAXHWIX
      EPZXPXHXQXAWNXEPXHWNXGIZIXEXHWMXRWLXGUPUQXEXFESFSURUSWIWNXEUTVAWIXEXFVBVC
      VDXHXPXNNXAXPXNXHXMXGWLVFVETVQZVGTXLWJXFWIWGWQXHXAWJXFPZWGXAXHWQXTWGXAXHW
      QXTNWGXOOWQXMAKZXTXOWQYAQWGXOWLXMAXSVHTWGYAXTNXOWIXFAVIVJVKVLVMVNVOVPVLVR
      VQVSWGWOXBXANWQWGWOOZXBXAYBXBOWNWKIZIZWIXBWNYDPYBXBWMYCWLWKUPUQTYBYDWIPZX
      BYBWIJKWJJKYECSWIAVTWIWJJJWAWBVJWCMWDWEMWF $.
  $}

  ${
    $d x A $.  $d x F $.
    $( A function is equinumerous to its domain.  Exercise 4 of [Suppes]
       p. 98.  (Contributed by NM, 17-Sep-2013.) $)
    fundmeng $p |- ( ( F e. V /\ Fun F ) -> dom F ~~ F ) $=
      ( vx wcel wfun cdm cen wbr cv wceq funeq dmeq breq12d imbi12d vex fundmen
      wi id vtoclg imp ) ABDAEZAFZAGHZCIZEZUDFZUDGHZQUAUCQCABUDAJZUEUAUGUCUDAKU
      HUFUBUDAGUDALUHRMNUDCOPST $.

    $( A relational set is equinumerous to its converse.  (Contributed by Mario
       Carneiro, 28-Dec-2014.) $)
    cnven $p |- ( ( Rel A /\ A e. V ) -> A ~~ `' A ) $=
      ( vx wrel wcel wa ccnv cvv csn cuni cmpt wf1o cen wbr simpr cnvexg adantl
      cv cnvf1o adantr f1oen2g syl3anc ) ADZABEZFUDAGZHEZAUECACRIGJKZLZAUEMNUCU
      DOUDUFUCABPQUCUHUDCASTAUEUGBHUAUB $.
  $}

  $( A function is equinumerate to its domain.  (Contributed by Paul Chapman,
     22-Jun-2011.) $)
  fndmeng $p |- ( ( F Fn A /\ A e. C ) -> A ~~ F ) $=
    ( wfn wcel wa cdm cen wbr wfun fnex fnfun adantr fundmeng syl2anc wb breq1d
    cvv fndm mpbid ) CADZABEZFZCGZCHIZACHIZUCCRECJZUEABCKUAUGUBACLMCRNOUAUEUFPU
    BUAUDACHACSQMT $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y V $.
    $( Two singletons are equinumerous.  (Contributed by NM, 9-Nov-2003.) $)
    en2sn $p |- ( ( A e. C /\ B e. D ) -> { A } ~~ { B } ) $=
      ( wcel csn c1o cen wbr ensn1g ensymd entr syl2an ) ACEAFZGHIGBFZHINOHIBDE
      ZACJPOGBDJKNGOLM $.

    $( A singleton is finite.  (Contributed by Jim Kingdon, 13-Apr-2020.) $)
    snfig $p |- ( A e. V -> { A } e. Fin ) $=
      ( vx wcel csn cv cen wbr com wrex cfn c1o 1onn ensn1g rspcev sylancr isfi
      breq2 sylibr ) ABDZAEZCFZGHZCIJZUAKDTLIDUALGHZUDMABNUCUECLIUBLUAGROPCUAQS
      $.

    $( The class of finite sets is a proper class.  (Contributed by Jeff
       Hankins, 3-Oct-2008.) $)
    fiprc $p |- Fin e/ _V $=
      ( vx vy cv csn wceq wex cab cvv wnel cfn snnex wcel wss snfig ax-mp eleq1
      wn vex mpbiri df-nel exlimiv abssi ssexg mpan con3i 3imtr4i ) ACZBCZDZEZB
      FZAGZHIZJHIZABKULHLZQJHLZQUMUNUPUOULJMUPUOUKAJUJUGJLZBUJUQUIJLZUHHLURBRUH
      HNOUGUIJPSUAUBULJHUCUDUEULHTJHTUFO $.

    $( Equinumerosity of union of disjoint sets.  Theorem 4 of [Suppes] p. 92.
       (Contributed by NM, 11-Jun-1998.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    unen $p |- ( ( ( A ~~ B /\ C ~~ D ) /\
  ( ( A i^i C ) = (/) /\ ( B i^i D ) = (/) ) ) -> ( A u. C ) ~~ ( B u. D ) ) $=
      ( vx vy cen wbr wa cin c0 wceq cun cv wf1o wex wi bren cvv vex eeanv wcel
      unex f1oun f1oen3g sylancr ex exlimivv sylbir syl2anb imp ) ABGHZCDGHZIAC
      JKLBDJKLIZACMZBDMZGHZULABENZOZEPZCDFNZOZFPZUNUQQZUMABERCDFRUTVCIUSVBIZFPE
      PVDUSVBEFUAVEVDEFVEUNUQVEUNIURVAMZSUBUOUPVFOUQURVAETFTUCABCDURVAUDUOUPVFS
      UEUFUGUHUIUJUK $.
  $}

  ${
    $d f x y A $.  $d f x y B $.
    $( A set equinumerous to an inhabited set is inhabited.  (Contributed by
       Jim Kingdon, 19-May-2020.) $)
    enm $p |- ( ( A ~~ B /\ E. x x e. A ) -> E. y y e. B ) $=
      ( vf cv wcel wex cen wbr wi wf1o bren wf f1of wa cfv ffvelrn syl exlimiv
      elex2 ex sylbi com12 impcom ) AFZCGZAHCDIJZBFDGBHZUGUHUIKAUHUGUIUHCDEFZLZ
      EHUGUIKZCDEMUKULEUKCDUJNZULCDUJOUMUGUIUMUGPUFUJQZDGUICDUFUJRBUNDUASUBSTUC
      UDTUE $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    xpsnen.1 $e |- A e. _V $.
    xpsnen.2 $e |- B e. _V $.
    $( A set is equinumerous to its Cartesian product with a singleton.
       Proposition 4.22(c) of [Mendelson] p. 254.  (Contributed by NM,
       4-Jan-2004.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    xpsnen $p |- ( A X. { B } ) ~~ A $=
      ( vy vx vz cv cint cop wcel wceq wex cvv inteq inteqd vex op1stb adantr
      wa csn cxp snex xpex elxp syl6eq syl6eqel exlimivv sylbi opex wb eqvisset
      ancom anass elsn anbi1i 3bitr3i exbii opeq2 eqeq2d anbi1d ceqsexv syl6req
      a1i pm4.71ri bitri 3bitri opeq1 eleq1 anbi12d ceqsexgv syl5bb syl pm4.71i
      pm5.32ri bitr2i en2i ) EFABUAZUBZAEHZIZIZFHZBJZAVRCBDUCUDCVTVSKZVTWCGHZJZ
      LZWCAKZWFVRKZTZTZGMZFMZWBNKZFGVTAVRUEZWLWOFGWHWOWKWHWBWCNWHWBWGIZIWCWHWAW
      QVTWGOPWCWFFQZGQRUFWRUGSUHUIWDNKWIWCBWRDUJVDWEWCWBLZTVTWBBJZLZWBAKZTZWSTZ
      VTWDLZWITZWIXETWSWEXCWSWOWEXCUKFWBULWEWSXFTZFMZWOXCWEWNXHWPWMXGFWMWFBLZWH
      WITZTZGMXFXGWLXKGXJWJTWJXJTWLXKXJWJUMWHWIWJUNWJXIXJGBUOUPUQURXJXFGBDXIWHX
      EWIXIWGWDVTWFBWCUSUTVAVBXFWSXETZWITXGXEXLWIXEWSXEWBWDIZIWCXEWAXMVTWDOPWCB
      WRDRVCZVEUPWSXEWIUNVFVGURVFXFXCFWBNWSXEXAWIXBWSWDWTVTWCWBBVHUTWCWBAVIVJZV
      KVLVMVOXFXFWSTXDXFWSXEWSWIXNSVNWSXFXCXOVOVPXEWIUMVGVQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( A set is equinumerous to its Cartesian product with a singleton.
       Proposition 4.22(c) of [Mendelson] p. 254.  (Contributed by NM,
       22-Oct-2004.) $)
    xpsneng $p |- ( ( A e. V /\ B e. W ) -> ( A X. { B } ) ~~ A ) $=
      ( vx vy cv csn cxp cen wbr wceq xpeq1 id breq12d xpeq2d breq1d vex xpsnen
      sneq vtocl2g ) EGZFGZHZIZUBJKAUDIZAJKABHZIZAJKEFABCDUBALZUEUFUBAJUBAUDMUI
      NOUCBLZUFUHAJUJUDUGAUCBTPQUBUCERFRSUA $.
  $}

  $( One times a cardinal number.  (Contributed by NM, 27-Sep-2004.)  (Revised
     by Mario Carneiro, 29-Apr-2015.) $)
  xp1en $p |- ( A e. V -> ( A X. 1o ) ~~ A ) $=
    ( wcel c1o cxp c0 csn cen df1o2 xpeq2i cvv wbr 0ex xpsneng mpan2 syl5eqbr )
    ABCZADEAFGZEZAHDRAIJQFKCSAHLMAFBKNOP $.

  ${
    $d x y A $.  $d x y B $.
    endisj.1 $e |- A e. _V $.
    endisj.2 $e |- B e. _V $.
    $( Any two sets are equinumerous to disjoint sets.  Exercise 4.39 of
       [Mendelson] p. 255.  (Contributed by NM, 16-Apr-2004.) $)
    endisj $p |- E. x E. y ( ( x ~~ A /\ y ~~ B ) /\ ( x i^i y ) = (/) ) $=
      ( c0 csn cxp cen wbr c1o wa cin wceq cv wex xpsnen xpex breq1 con0 pm3.2i
      0ex elexi xp01disj p0ex snex bi2anan9 ineq12 eqeq1d anbi12d spc2ev mp2an
      1on ) CGHZIZCJKZDLHZIZDJKZMZUPUSNZGOZAPZCJKZBPZDJKZMZVDVFNZGOZMZBQAQUQUTC
      GEUCRDLFLUAUNUDZRUBCDUEVKVAVCMABUPUSCUOEUFSDURFLVLUGSVDUPOZVFUSOZMZVHVAVJ
      VCVMVEUQVNVGUTVDUPCJTVFUSDJTUHVOVIVBGVDUPVFUSUIUJUKULUM $.
  $}

  ${
    $d u v w x y z A $.  $d u v w x y z B $.  $d u v C $.  $d u v w y z F $.
    $d u v w G $.
    xpcomf1o.1 $e |- F = ( x e. ( A X. B ) |-> U. `' { x } ) $.
    $( The canonical bijection from ` ( A X. B ) ` to ` ( B X. A ) ` .
       (Contributed by Mario Carneiro, 23-Apr-2014.) $)
    xpcomf1o $p |- F : ( A X. B ) -1-1-onto-> ( B X. A ) $=
      ( cxp ccnv wf1o cv cuni cmpt wrel relxp cnvf1o ax-mp wceq wb f1oeq1 mpbir
      csn cnvxp f1oeq3 mpbi ) BCFZUDGZDHZUDCBFZDHZUFUDUEAUDAITGJKZHZUDLUJBCMAUD
      NODUIPUFUJQEUDUEDUIROSUEUGPUFUHQBCUAUEUGUDDUBOUC $.

    xpcomco.1 $e |- G = ( y e. B , z e. A |-> C ) $.
    $( Composition with the bijection of ~ xpcomf1o swaps the arguments to a
       mapping.  (Contributed by Mario Carneiro, 30-May-2015.) $)
    xpcomco $p |- ( G o. F ) = ( z e. A , y e. B |-> C ) $=
      ( vu vw vv cv wbr wa wex wceq wcel cvv copab cop ccom cmpt2 cfv wf1o wfun
      cxp cdm wb xpcomf1o f1ofun funbrfv2b mp2b ancom eqcom f1odm ax-mp anbi12i
      eleq2i 3bitri anbi1i anass bitri exbii csn ccnv cuni wal vex mptfvex snex
      mpan2 cnvex uniex mpg breq1 anbi2d ceqsexv elxp nfcv nfmpt22 nfcxfr 19.41
      nfbr nfmpt21 fveq2 opelxpi sneq cnveqd unieqd mp2an syl6eq opex fvmpt syl
      opswapg sylan9eq breq1d coprab df-br df-mpt2 oprabid baib ancoms pm5.32da
      eqtri adantl bitrd pm5.32i bitr3i 3bitr2i opabbii df-co dfoprab2 3eqtr4i
      ) KNZLNZGOZXRMNZHOZPZLQZKMUAXQCNZBNZUBZRZYDDSZYEESZPZXTFRZPZPZBQZCQZKMUAZ
      HGUCCBDEFUDZYCYOKMYCXRXQGUEZRZXQDEUHZSZYAPZPZLQUUAYRXTHOZPZYOYBUUCLYBYSUU
      APZYAPUUCXSUUFYAXSXQGUIZSZYRXRRZPZUUIUUHPUUFYTEDUHZGUFZGUGXSUUJUJADEGIUKZ
      YTUUKGULXQXRGUMUNUUHUUIUOUUIYSUUHUUAYRXRUPUUGYTXQUULUUGYTRUUMYTUUKGUQURUT
      USVAVBYSUUAYAVCVDVEUUBUUELYRANZVFZVGZVHZTSZYRTSZAUURAVIXQTSUUSKVJAYTUUQXQ
      GTTIVKVMUUPUUOUUNAVJVLVNVOVPYSYAUUDUUAXRYRXTHVQVRVSUUEYGYJPZBQZCQZUUDPUVA
      UUDPZCQYOUUAUVBUUDCBXQDEVTVBUVAUUDCCYRXTHCYRWACHBCEDFUDZJBCEDFWBWCCXTWAWE
      WDUVCYNCUVCUUTUUDPZBQYNUUTUUDBBYRXTHBYRWABHUVDJBCEDFWFWCBXTWAWEWDUVEYMBUV
      EYGYJUUDPZPYMYGYJUUDVCYGUVFYLYGYJUUDYKUUTUUDYEYDUBZXTHOZYKUUTYRUVGXTHYGYJ
      YRYFGUEZUVGXQYFGWGYJYFYTSUVIUVGRYDYEDEWHAYFUUQUVGYTGUUNYFRZUUQYFVFZVGZVHZ
      UVGUVJUUPUVLUVJUUOUVKUUNYFWIWJWKYDTSYETSUVMUVGRCVJZBVJZYDYETTWQWLWMIYEYDU
      VOUVNWNWOWPWRWSYJUVHYKUJZYGYIYHUVPUVHYIYHPZYKUVHUVGXTUBZHSUVRUVQYKPZBCMWT
      ZSUVSUVGXTHXAHUVTUVRHUVDUVTJBCMEDFXBXGUTUVSBCMXCVAXDXEXHXIXFXJVDVEXKVEXLV
      AXMKMLHGXNYQYLCBMWTYPCBMDEFXBYLCBMKXOXGXP $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    xpcomen.1 $e |- A e. _V $.
    xpcomen.2 $e |- B e. _V $.
    $( Commutative law for equinumerosity of Cartesian product.  Proposition
       4.22(d) of [Mendelson] p. 254.  (Contributed by NM, 5-Jan-2004.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    xpcomen $p |- ( A X. B ) ~~ ( B X. A ) $=
      ( cxp cvv wcel csn ccnv cuni cmpt wf1o cen wbr xpex eqid xpcomf1o f1oen2g
      vx cv mp3an ) ABEZFGBAEZFGUBUCSUBSTHIJKZLUBUCMNABCDOBADCOSABUDUDPQUBUCUDF
      FRUA $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( Commutative law for equinumerosity of Cartesian product.  Proposition
       4.22(d) of [Mendelson] p. 254.  (Contributed by NM, 27-Mar-2006.) $)
    xpcomeng $p |- ( ( A e. V /\ B e. W ) -> ( A X. B ) ~~ ( B X. A ) ) $=
      ( vx vy cv cxp cen wbr wceq xpeq1 xpeq2 breq12d vex xpcomen vtocl2g ) EGZ
      FGZHZSRHZIJASHZSAHZIJABHZBAHZIJEFABCDRAKTUBUAUCIRASLRASMNSBKUBUDUCUEISBAM
      SBALNRSEOFOPQ $.
  $}

  $( A set is equinumerous to its Cartesian product with a singleton on the
     left.  (Contributed by Stefan O'Rear, 21-Nov-2014.) $)
  xpsnen2g $p |- ( ( A e. V /\ B e. W ) -> ( { A } X. B ) ~~ B ) $=
    ( wcel csn cxp cen wbr cvv snexg xpcomeng sylan xpsneng ancoms entr syl2anc
    wa ) ACEZBDEZRAFZBGZBUAGZHIZUCBHIZUBBHISUAJETUDACKUABJDLMTSUEBADCNOUBUCBPQ
    $.

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    xpassen.1 $e |- A e. _V $.
    xpassen.2 $e |- B e. _V $.
    xpassen.3 $e |- C e. _V $.
    $( Associative law for equinumerosity of Cartesian product.  Proposition
       4.22(e) of [Mendelson] p. 254.  (Contributed by NM, 22-Jan-2004.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    xpassen $p |- ( ( A X. B ) X. C ) ~~ ( A X. ( B X. C ) ) $=
      ( vz vw vv vu csn cdm cuni crn cop wcel uniex wceq wa wex vx cxp xpex cvv
      vy vex snex dmex rnex opex a1i sneq dmeqd unieqd sneqd op1sta sneqi dmeqi
      unieqi eqtri syl6req rneqd rneqi op2nda opeq12d eq2tri anass anbi12i an32
      3bitr4i exbii 19.41v 3bitr3i 2exbii 19.41vv elxp excom anbi1i an12 exrot4
      cv opeq1 eqeq2d anbi1d anbi2d ceqsexv 3bitri 3exbii anbi2i 19.42vv bitr3i
      bitri exrot3 opeq2 en2i ) UAUEABUBZCUBZABCUBZUBZUAWAZKZLZMZKZLZMZXDNZMZXA
      NZMZOZOZUEWAZKZLZMZXNNZMZKZLZMZOZXSNZMZOZWPCABDEUCFUCAWRDBCEFUCUCXLUDPWTW
      QPZXFXKXEXDXCXBXAWTUAUFUGZUHQUGZUHQXHXJXGXDYHUIQXIXAYGUIQUJUJUKYEUDPXMWSP
      ZYBYDXPYAXOXNXMUEUFUGZUHQXTXSXRXQXNYJUIQUGZUHQUJYCXSYKUIQUJUKWTGWAZHWAZOZ
      IWAZOZRZYLAPZYMBPZSZYOCPZSZSZITZHTGTZXMXLRZSZXMYLYMYOOZOZRZYRYSUUASZSZSZI
      TZHTZGTZWTYERZSZYFUUFSYIUUQSUUDUUFSZHTGTUUNUUQSZHTGTUUGUURUUSUUTGHUUCUUFS
      ZITUUMUUQSZITUUSUUTUVAUVBIYQUUFSZUUBSUUJUUQSZUULSUVAUVBUVCUVDUUBUULWTXMYP
      UUIXLYEYQYLXFUUHXKYQXFYPKZLZMZKZLZMZYLYQXEUVIYQXDUVHYQXCUVGYQXBUVFYQXAUVE
      WTYPULZUMUNUOZUMUNUVJYNKZLZMYLUVIUVNUVHUVMUVGYNYNYOYLYMGUFZHUFZUJZIUFZUPU
      QZURUSYLYMUVOUVPUPUTVAYQYMXHYOXJYQXHUVHNZMZYMYQXGUVTYQXDUVHUVLVBUNUWAUVMN
      ZMYMUVTUWBUVHUVMUVSVCUSYLYMUVOUVPVDUTVAYQXJUVENZMYOYQXIUWCYQXAUVEUVKVBUNY
      NYOUVQUVRVDVAVEVEUUJYNYBYOYDUUJYLXPYMYAUUJXPUUIKZLZMYLUUJXOUWEUUJXNUWDXMU
      UIULZUMUNYLUUHUVOYMYOUVPUVRUJZUPVAUUJYAUWDNZMZKZLZMZYMUUJXTUWKUUJXSUWJUUJ
      XRUWIUUJXQUWHUUJXNUWDUWFVBUNUOZUMUNUWLUUHKZLZMYMUWKUWOUWJUWNUWIUUHYLUUHUV
      OUWGVDUQZURUSYMYOUVPUVRUPUTVAVEUUJYDUWJNZMZYOUUJYCUWQUUJXSUWJUWMVBUNUWRUW
      NNZMYOUWQUWSUWJUWNUWPVCUSYMYOUVPUVRVDUTVAVEVFYRYSUUAVGVHYQUUBUUFVIUUJUULU
      UQVIVJVKUUCUUFIVLUUMUUQIVLVMVNUUDUUFGHVOUUNUUQGHVOVMYFUUEUUFYFWTJWAZYOOZR
      ZUWTWPPZUUASSZITJTUXDJTITZUUEJIWTWPCVPUXDJIVQUXEUWTYNRZYTSZUXBUUASZSZHTGT
      ZJTITUXIJTZITHTGTUUEUXDUXJIJUXCUXHSUXGHTGTZUXHSUXDUXJUXCUXLUXHGHUWTABVPVR
      UXBUXCUUAVSUXGUXHGHVOVJVNUXIIJGHVTUXKUUCGHIUXKUXFYTUXHSZSZJTYTYQUUASZSZUU
      CUXIUXNJUXFYTUXHVGVKUXMUXPJYNUVQUXFUXHUXOYTUXFUXBYQUUAUXFUXAYPWTUWTYNYOWB
      WCWDWEWFYTYQUUAVSWGWHWGWGVRYIUUPUUQYIXMYLUWTOZRZYRUWTWRPZSSZJTZGTUUPGJXMA
      WRVPUYAUUOGUYAUWTUUHRZUXRUULSZSZITHTZJTUYDJTZITHTUUOUXTUYEJUXRYRSZUXSSUYG
      UYBUUKSZITHTZSZUXTUYEUXSUYIUYGHIUWTBCVPWIUXRYRUXSVGUYJUYGUYHSZITHTUYEUYGU
      YHHIWJUYKUYDHIUYKUYBUYGUUKSZSUYDUYGUYBUUKVSUYLUYCUYBUXRYRUUKVGWIWLVNWKVMV
      KUYDJHIWMUYFUUMHIUYCUUMJUUHUWGUYBUXRUUJUULUYBUXQUUIXMUWTUUHYLWNWCWDWFVNWG
      VKWLVRVJWO $.
  $}

  ${
    $d f u v w x y z A $.  $d f u v w x y z B $.  $d f u v w x y z C $.
    xpdom.2 $e |- C e. _V $.
    $( Dominance law for Cartesian product.  Proposition 10.33(2) of
       [TakeutiZaring] p. 92.  (Contributed by NM, 24-Jul-2004.)  (Revised by
       Mario Carneiro, 15-Nov-2014.) $)
    xpdom2 $p |- ( A ~<_ B -> ( C X. A ) ~<_ ( C X. B ) ) $=
      ( vf vz vw vv vu cdom cv wa cuni cop cvv wcel wi wceq wb vex vx vy brdomi
      wbr wf1 cxp csn cdm crn cfv wf f1f ffvelrn ex anim2d adantld elxp4 opelxp
      syl 3imtr4g adantl wrex elxp2 fvex opth f1fveq ancoms anbi2d ad2ant2l imp
      syl5bb adantlr dmeqd unieqd op1sta syl6eq op2nda fveq2d opeq12d eqeqan12d
      sneq rneqd ad2antlr eqeq12 syl6bb 3bitr4d exp53 com23 rexlimivv rexlimdvv
      syl2anb com12 reldom brrelexi xpexg sylancr adantr brrelex2i exlimddv
      dom3d ) ABJUDZABEKZUEZCAUFZCBUFZJUDEABEUCXAXCLUAUBXDXEUAKZUGZUHZMZXGUIZMZ
      XBUJZNZUBKZUGZUHZMZXOUIZMZXBUJZNZOOXCXFXDPZXMXEPZQXAXCXFXIXKNRZXICPZXKAPZ
      LZLYEXLBPZLZYBYCXCYGYIYDXCYFYHYEXCABXBUKZYFYHQABXBULYJYFYHABXKXBUMUNUSUOU
      PXFCAUQXIXLCBURUTVAXCYBXNXDPZLZXMYARZXFXNRZSZQXAYLXCYOYBXFFKZGKZNZRZGAVBF
      CVBZXNHKZIKZNZRZIAVBHCVBZXCYOQZYKFGXFCAVCHIXNCAVCYTUUEUUFYTUUDUUFHICAYSUU
      ACPZUUBAPZLZUUDUUFQZQFGCAYPCPZYQAPZLZUUIYSUUJUUMUUIYSUUDXCYOUUMUUILZYSUUD
      LZLXCLYPYQXBUJZNZUUAUUBXBUJZNZRZYPUUARZYQUUBRZLZYMYNUUNXCUUTUVCSZUUOUUNXC
      UVDUULUUHXCUVDQUUKUUGUULUUHLZXCUVDUUTUVAUUPUURRZLUVEXCLZUVCYPUUPUUAUURFTZ
      YQXBOOETGTZVDVEUVGUVFUVBUVAXCUVEUVFUVBSABYQUUBXBVFVGVHVKUNVIVJVLUUOYMUUTS
      UUNXCYSUUDXMUUQYAUUSYSXIYPXLUUPYSXIYRUGZUHZMYPYSXHUVKYSXGUVJXFYRWAZVMVNYP
      YQUVHUVIVOVPYSXKYQXBYSXKUVJUIZMYQYSXJUVMYSXGUVJUVLWBVNYPYQUVHUVIVQVPVRVSU
      UDXQUUAXTUURUUDXQUUCUGZUHZMUUAUUDXPUVOUUDXOUVNXNUUCWAZVMVNUUAUUBHTZITZVOV
      PUUDXSUUBXBUUDXSUVNUIZMUUBUUDXRUVSUUDXOUVNUVPWBVNUUAUUBUVQUVRVQVPVRVSVTWC
      UUOYNUVCSUUNXCUUOYNYRUUCRUVCXFYRXNUUCWDYPYQUUAUUBUVHUVIVEWEWCWFWGWHWIWJVJ
      WKWLVAXAXDOPZXCXACOPZAOPUVTDABJWMWNCAOOWOWPWQXAXEOPZXCXAUWABOPUWBDABJWMWR
      CBOOWOWPWQWTWS $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x V $.  $d x W $.
    $( Dominance law for Cartesian product.  Theorem 6L(c) of [Enderton]
       p. 149.  (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    xpdom2g $p |- ( ( C e. V /\ A ~<_ B ) ->
                  ( C X. A ) ~<_ ( C X. B ) ) $=
      ( vx wcel cdom wbr cxp cv wceq xpeq1 breq12d imbi2d vex xpdom2 vtoclg imp
      wi ) CDFABGHZCAIZCBIZGHZTEJZAIZUDBIZGHZSTUCSECDUDCKZUGUCTUHUEUAUFUBGUDCAL
      UDCBLMNABUDEOPQR $.

    $( Dominance law for Cartesian product.  Theorem 6L(c) of [Enderton]
       p. 149.  (Contributed by NM, 25-Mar-2006.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    xpdom1g $p |- ( ( C e. V /\ A ~<_ B ) ->
                  ( A X. C ) ~<_ ( B X. C ) ) $=
      ( wcel cdom wbr wa cxp cen reldom brrelexi xpcomeng ancoms sylan2 xpdom2g
      cvv brrelex2i domentr syl2anc endomtr ) CDEZABFGZHZACIZCAIZJGZUFBCIZFGZUE
      UHFGUCUBAQEZUGABFKLUJUBUGACQDMNOUDUFCBIZFGUKUHJGZUIABCDPUCUBBQEULABFKRCBD
      QMOUFUKUHSTUEUFUHUAT $.

    $( A set is dominated by its Cartesian product with an inhabited set.
       Exercise 6 of [Suppes] p. 98.  (Contributed by Jim Kingdon,
       15-Apr-2020.) $)
    xpdom3m $p |- ( ( A e. V /\ B e. W /\ E. x x e. B ) ->
        A ~<_ ( A X. B ) ) $=
      ( wcel cv wex cxp cdom wbr wa w3a csn cen xpsneng 3adant2 ensymd cvv wss
      xpexg 3adant3 simp3 snssd xpss2 syl ssdomg endomtr syl2anc 3expia exlimdv
      sylc 3impia ) BDFZCEFZAGZCFZAHBBCIZJKZUNUOLUQUSAUNUOUQUSUNUOUQMZBBUPNZIZO
      KVBURJKZUSUTVBBUNUQVBBOKUOBUPDCPQRUTURSFZVBURTZVCUNUOVDUQBCDEUAUBUTVACTVE
      UTUPCUNUOUQUCUDVACBUEUFVBURSUGULBVBURUHUIUJUKUM $.
  $}

  ${
    xpdom1.2 $e |- C e. _V $.
    $( Dominance law for Cartesian product.  Theorem 6L(c) of [Enderton]
       p. 149.  (Contributed by NM, 28-Sep-2004.)  (Revised by NM,
       29-Mar-2006.)  (Revised by Mario Carneiro, 7-May-2015.) $)
    xpdom1 $p |- ( A ~<_ B -> ( A X. C ) ~<_ ( B X. C ) ) $=
      ( cvv wcel cdom wbr cxp xpdom1g mpan ) CEFABGHACIBCIGHDABCEJK $.
  $}

  ${
    $d A a b c $.  $d B a b c $.  $d F a b c $.
    $( Covering implies injection on power sets.  (Contributed by Stefan
       O'Rear, 6-Nov-2014.)  (Revised by Mario Carneiro, 24-Jun-2015.) $)
    fopwdom $p |- ( ( F e. _V /\ F : A -onto-> B ) -> ~P B ~<_ ~P A ) $=
      ( va vb cvv wcel wa cpw cv cima wss crn syl adantl imaeq2 elpwid foimacnv
      wceq wb wfo ccnv imassrn cdm dfdm4 fof fdm syl5eqr syl5sseq cnvexg adantr
      wf imaexg 3syl mpbird a1d simpllr simplrl syl2anc simplrr 3eqtr3d impbid1
      elpwg ex rnexg forn eleq1d syl5ibcom imp pwexg dmfex sylan2 dom3d ) CFGZA
      BCUAZHZDEBIZAIZCUBZDJZKZVSEJZKZFFVPWAVRGZVTVQGZVPWDWAALZVOWFVNVOVSMZWAAVS
      VTUCVOWGCUDZACUEVOABCULZWHASABCUFZABCUGNUHUIOVPVSFGZWAFGWDWFTVNWKVOCFUJUK
      VSVTFUMWAAFVCUNUOUPVPWEWBVQGZHZWAWCSZVTWBSZTVPWMHZWNWOWPWNWOWPWNHZCWAKZCW
      CKZVTWBWNWRWSSWPWAWCCPOWQVOVTBLWRVTSVNVOWMWNUQZWQVTBVPWEWLWNURQABVTCRUSWQ
      VOWBBLWSWBSWTWQWBBVPWEWLWNUTQABWBCRUSVAVDVTWBVSPVBVDVPBFGZVQFGVNVOXAVNCMZ
      FGVOXACFVEVOXBBFABCVFVGVHVIBFVJNVPAFGZVRFGVOVNWIXCWJABFCVKVLAFVJNVM $.
  $}

  $( Equality-like theorem for equinumerosity.  (Contributed by NM,
     18-Dec-2003.) $)
  enen1 $p |- ( A ~~ B -> ( A ~~ C <-> B ~~ C ) ) $=
    ( cen wbr ensym entr sylan impbida ) ABDEZACDEZBCDEZJBADEKLABFBACGHABCGI $.

  $( Equality-like theorem for equinumerosity.  (Contributed by NM,
     18-Dec-2003.) $)
  enen2 $p |- ( A ~~ B -> ( C ~~ A <-> C ~~ B ) ) $=
    ( cen wbr entr ancoms ensym sylan impbida ) ABDEZCADEZCBDEZLKMCABFGKBADEZML
    ABHMNLCBAFGIJ $.

  $( Equality-like theorem for equinumerosity and dominance.  (Contributed by
     NM, 8-Nov-2003.) $)
  domen1 $p |- ( A ~~ B -> ( A ~<_ C <-> B ~<_ C ) ) $=
    ( cen wbr cdom ensym endomtr sylan impbida ) ABDEZACFEZBCFEZKBADELMABGBACHI
    ABCHJ $.

  $( Equality-like theorem for equinumerosity and dominance.  (Contributed by
     NM, 8-Nov-2003.) $)
  domen2 $p |- ( A ~~ B -> ( C ~<_ A <-> C ~<_ B ) ) $=
    ( cen wbr cdom domentr ancoms ensym sylan impbida ) ABDEZCAFEZCBFEZMLNCABGH
    LBADEZNMABINOMCBAGHJK $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
               Finite sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.
    $( Natural numbers are finite sets.  (Contributed by Stefan O'Rear,
       21-Mar-2015.) $)
    nnfi $p |- ( A e. _om -> A e. Fin ) $=
      ( vx com wcel cv cen wbr wrex cfn enrefg breq2 rspcev mpdan isfi sylibr )
      ACDZABEZFGZBCHZAIDPAAFGZSACJRTBACQAAFKLMBANO $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x C $.
    $( Equinumerous sets have the same finiteness.  (Contributed by NM,
       22-Aug-2008.) $)
    enfi $p |- ( A ~~ B -> ( A e. Fin <-> B e. Fin ) ) $=
      ( vx cen wbr cv com wrex cfn wcel enen1 rexbidv isfi 3bitr4g ) ABDEZACFZD
      EZCGHBPDEZCGHAIJBIJOQRCGABPKLCAMCBMN $.

    $( A set equinumerous to a finite set is finite.  (Contributed by Mario
       Carneiro, 12-Mar-2015.) $)
    enfii $p |- ( ( B e. Fin /\ A ~~ B ) -> A e. Fin ) $=
      ( cen wbr cfn wcel enfi biimparc ) ABCDAEFBEFABGH $.
  $}

  ${
    $d n ph x y z $.
    ssfiexmid.1 $e |- A. x A. y ( ( x e. Fin /\ y C_ x ) -> y e. Fin ) $.
    $( If any subset of a finite set is finite, excluded middle follows.  One
       direction of Theorem 2.1 of [Bauer], p. 485.  (Contributed by Jim
       Kingdon, 19-May-2020.) $)
    ssfiexmid $p |- ( ph \/ -. ph ) $=
      ( vz vn vw c0 cv cen wbr com cfn wcel wss ax-mp wa wi wal wceq crab wn wo
      csn wrex cvv 0ex snfig ssrab2 p0ex eleq1 sseq2 anbi12d imbi1d albidv spcv
      rabex sseq1 anbi2d imbi12d mp2an isfi mpbi 0elnn breq2 en0 syl6bb biimpac
      wral rabeq0 wex wb snm r19.3rmv bitr4i sylib ensym elex2 enm syl2an biidd
      olcd elrab simprbi orcd exlimiv syl jaodan sylan2 ancoms rexlimiva ) AEHU
      DZUAZFIZJKZFLUEZAAUBZUCZWMMNZWPWLMNZWMWLOZWSHUFNWTUGHUFUHPAEWLUIWTCIZWLOZ
      QZXBMNZRZCSZWTXAQZWSRZBIZMNZXBXJOZQZXERZCSZBSXGDXOXGBWLUJXJWLTZXNXFCXPXMX
      DXEXPXKWTXLXCXJWLMUKXJWLXBULUMUNUOUPPXFXICWMAEWLUJUQXBWMTZXDXHXEWSXQXCXAW
      TXBWMWLURUSXBWMMUKUTUPPVAFWMVBVCWOWRFLWOWNLNZWRXRWOWNHTZHWNNZUCWRWNVDWOXS
      WRXTWOXSQZWQAYAWMHTZWQXSWOYBXSWOWMHJKYBWNHWMJVEWMVFVGVHYBWQEWLVIZWQAEWLVJ
      GIWLNGVKWQYCVLGHUGVMWQEGWLVNPVOVPWBWOXTQXBWMNZCVKZWRWOWNWMJKXJWNNBVKYEXTW
      MWNVQBHWNVRBCWNWMVSVTYDWRCYDAWQYDXBWLNAAAEXBWLEIXBTAWAWCWDWEWFWGWHWIWJWKP
      $.
  $}

  $( The empty set is finite.  (Contributed by FL, 14-Jul-2008.) $)
  0fin $p |- (/) e. Fin $=
    ( c0 com wcel cfn peano1 nnfi ax-mp ) ABCADCEAFG $.

$(
###############################################################################
                     REAL AND COMPLEX NUMBERS
###############################################################################

This section derives the basics of real and complex numbers.

To construct the real numbers constructively, we follow two main sources.
The first is Metamath Proof Explorer, which has the advantage of being
already formalized in metamath. Its disadvantage, for our purposes, is that
it assumes the law of the excluded middle throughout. Since we have already
developed natural numbers ( for example, ~ nna0 and similar theorems ), going
from there to positive integers ( ~ df-ni ) and then positive rational numbers
( ~ df-nqqs ) does not involve a major change in approach compared with
the Metamath Proof Explorer.

It is when we proceed to Dedekind cuts that we bring in more material from
Section 11.2 of [HoTT], which focuses on the aspects of Dedekind cuts which
are different without excluded middle. With excluded middle, it is natural
to define the cut as the lower set only (as Metamath Proof Explorer does),
but we define the cut as a pair of both the lower and upper sets, as [HoTT]
does. There are also differences in how we handle order and replacing
"not equal to zero" with "apart from zero".
$)

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
       Construction and axiomatization of real and complex numbers
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
         Dedekind-cut construction of real and complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)

  $c N. $. $( Set of positive integers $)

  $c +N $. $( Positive integer addition $)
  $c .N $. $( Positive integer multiplication $)
  $c <N $. $( Positive integer ordering relation $)

  $c +pQ $. $( Positive pre-fraction addition $)
  $c .pQ $. $( Positive pre-fraction multiplication $)
  $c <pQ $. $( Positive pre-fraction ordering relation $)

  $c ~Q $. $( Equivalence relation to construct positive fractions $)
  $c Q. $. $( Set of positive fractions $)
  $c 1Q $. $( Positive fraction constant 1 $)
  $c +Q $. $( Positive fraction addition $)
  $c .Q $. $( Positive fraction multiplication $)
  $c *Q $. $( Positive fraction reciprocal $)
  $c <Q $. $( Positive fraction ordering relation $)

  $c ~Q0 $. $( Equivalence relation to construct non-negative fractions $)
  $c Q0. $. $( Set of non-negative fractions $)
  $c 0Q0 $. $( Non-negative fraction constant 0 $)
  $c +Q0 $. $( Non-negative fraction addition $)
  $c .Q0 $. $( Non-negative fraction multiplication $)

  $c P. $. $( Set of positive reals $)
  $c 1P $. $( Positive real constant 1 $)
  $c +P. $. $( Positive real addition $)
  $c .P. $. $( Positive real multiplication $)
  $c <P $. $( Positive real ordering relation $)

  $c ~R $. $( Equivalence relation to construct signed reals $)
  $c R. $. $( Set of signed reals $)
  $c 0R $. $( Signed real constant 0 $)
  $c 1R $. $( Signed real constant 1 $)
  $c -1R $. $( Signed real constant minus 1 $)
  $c +R $. $( Signed real addition $)
  $c .R $. $( Signed real multiplication $)
  $c <R $. $( Signed real ordering relation $)
  $c <RR $. $( 'Less than' relation (restricted to non-extended reals) $)

  $c CC $. $( The set of complex numbers (blackboard bold C) $)
  $c RR $. $( The set of real numbers (blackboard bold R) $)
  $c 0 $. $( The real number 0. $)
  $c 1 $. $( The real number 1. $)
  $c _i $. $( Letter i (the imaginary unit = square root of -1) $)
  $c + $. $( Plus (addition) symbol $)
  $c x. $. $( Multiplication symbol (center dot) $)

  $( Extend class notation with new sets (constants) used for positive
     integers: $)

  $( The set of positive integers, which is the set of natural numbers ` _om `
     with 0 removed.

     _Note:  This is the start of the Dedekind-cut construction of real and_
     _complex numbers. $)
  cnpi $a class N. $.
  $( Positive integer addition. $)
  cpli $a class +N $.
  $( Positive integer multiplication. $)
  cmi $a class .N $.
  $( Positive integer ordering relation. $)
  clti $a class <N $.

  $( Extend class notation with new sets (constants) used in construction of
    positive fractions: $)

  $( Positive pre-fraction addition. $)
  cplpq $a class +pQ $.
  $( Positive pre-fraction multiplication. $)
  cmpq $a class .pQ $.
  $( Positive pre-fraction ordering relation. $)
  cltpq $a class <pQ $.
  $( Equivalence class used to construct positive fractions. $)
  ceq $a class ~Q $.
  $( Set of positive fractions. $)
  cnq $a class Q. $.
  $( The positive fraction constant 1. $)
  c1q $a class 1Q $.
  $( Positive fraction addition. $)
  cplq $a class +Q $.
  $( Positive fraction multiplication. $)
  cmq $a class .Q $.
  $( Positive fraction reciprocal operation. $)
  crq $a class *Q $.
  $( Positive fraction ordering relation. $)
  cltq $a class <Q $.

  $( Equivalence class used to construct non-negative fractions. $)
  ceq0 $a class ~Q0 $.
  $( Set of non-negative fractions. $)
  cnq0 $a class Q0. $.
  $( The non-negative fraction constant 0. $)
  c0q0 $a class 0Q0 $.
  $( Non-negative fraction addition. $)
  cplq0 $a class +Q0 $.
  $( Non-negative fraction multiplication. $)
  cmq0 $a class .Q0 $.

  $( Extend class notation with new sets (constants) used in construction of
    positive real numbers: $)

  $( Set of positive reals. $)
  cnp $a class P. $.
  $( Positive real constant 1. $)
  c1p $a class 1P $.
  $( Positive real addition. $)
  cpp $a class +P. $.
  $( Positive real multiplication. $)
  cmp $a class .P. $.
  $( Positive real ordering relation. $)
  cltp $a class <P $.

  $( Extend class notation with new sets (constants) used in construction of
    signed real numbers: $)

  $( Equivalence class used to construct signed reals. $)
  cer $a class ~R $.
  $( Set of signed reals. $)
  cnr $a class R. $.
  $( The signed real constant 0. $)
  c0r $a class 0R $.
  $( The signed real constant 1. $)
  c1r $a class 1R $.
  $( The signed real constant -1. $)
  cm1r $a class -1R $.
  $( Signed real addition. $)
  cplr $a class +R $.
  $( Signed real multiplication. $)
  cmr $a class .R $.
  $( Signed real ordering relation. $)
  cltr $a class <R $.

  $( Define the class of positive integers.  This is a "temporary" set used in
     the construction of complex numbers, and is intended to be used only by
     the construction.  (Contributed by NM, 15-Aug-1995.) $)
  df-ni $a |- N. = ( _om \ { (/) } ) $.

  $( Define addition on positive integers.  This is a "temporary" set used in
     the construction of complex numbers, and is intended to be used only by
     the construction.  (Contributed by NM, 26-Aug-1995.) $)
  df-pli $a |- +N = ( +o |` ( N. X. N. ) ) $.

  $( Define multiplication on positive integers.  This is a "temporary" set
     used in the construction of complex numbers and is intended to be used
     only by the construction.  (Contributed by NM, 26-Aug-1995.) $)
  df-mi $a |- .N = ( .o |` ( N. X. N. ) ) $.

  $( Define 'less than' on positive integers.  This is a "temporary" set used
     in the construction of complex numbers, and is intended to be used only by
     the construction.  (Contributed by NM, 6-Feb-1996.) $)
  df-lti $a |- <N = ( _E i^i ( N. X. N. ) ) $.

  $( Membership in the class of positive integers.  (Contributed by NM,
     15-Aug-1995.) $)
  elni $p |- ( A e. N. <-> ( A e. _om /\ A =/= (/) ) ) $=
    ( cnpi wcel com c0 csn cdif wne wa df-ni eleq2i eldifsn bitri ) ABCADEFGZCA
    DCAEHIBNAJKADELM $.

  $( A positive integer is a natural number.  (Contributed by NM,
     15-Aug-1995.) $)
  pinn $p |- ( A e. N. -> A e. _om ) $=
    ( cnpi com c0 csn cdif df-ni difss eqsstri sseli ) BCABCDEZFCGCKHIJ $.

  $( A positive integer is an ordinal number.  (Contributed by NM,
     23-Mar-1996.) $)
  pion $p |- ( A e. N. -> A e. On ) $=
    ( cnpi wcel com con0 pinn nnon syl ) ABCADCAECAFAGH $.

  $( A positive integer is ordinal.  (Contributed by NM, 29-Jan-1996.) $)
  piord $p |- ( A e. N. -> Ord A ) $=
    ( cnpi wcel com word pinn nnord syl ) ABCADCAEAFAGH $.

  $( The class of positive integers is a set.  (Contributed by NM,
     15-Aug-1995.) $)
  niex $p |- N. e. _V $=
    ( cnpi com omex c0 csn cdif df-ni difss eqsstri ssexi ) ABCABDEZFBGBKHIJ $.

  $( The empty set is not a positive integer.  (Contributed by NM,
     26-Aug-1995.) $)
  0npi $p |- -. (/) e. N. $=
    ( c0 wceq cnpi wcel wn eqid com wne elni simprbi necon2bi ax-mp ) AABACDZEA
    FMAAMAGDAAHAIJKL $.

  ${
    $d x y A $.
    $( Membership in the class of positive integers.  (Contributed by NM,
       27-Nov-1995.) $)
    elni2 $p |- ( A e. N. <-> ( A e. _om /\ (/) e. A ) ) $=
      ( cnpi wcel com c0 wa pinn wceq wn 0npi eleq1 mtbiri con2i wo syl ord mpd
      0elnn sylib wi jca wdc nndceq0 df-dc anim1i ancom andi noel eleq2 pm2.21d
      bitr3i impcom a1i df-ne elni simplbi2 syl5bir adantld jaod adantr impbii
      wne ) ABCZADCZEACZFZVCVDVEAGZVCAEHZIZVEVHVCVHVCEBCJAEBKLMVCVHVEVCVDVHVENV
      GAROPQUAVFVEVHFZVEVIFZNZVCVFVHVINZVEFZVLVDVMVEVDVHUBVMAUCVHUDSUEVNVEVMFVL
      VEVMUFVEVHVIUGUKSVDVLVCTVEVDVJVCVKVJVCTVDVHVEVCVHVEVCVHVEEECEUHAEEUILUJUL
      UMVDVIVCVEVIAEVBZVDVCAEUNVCVDVOAUOUPUQURUSUTQVA $.
  $}

  $( Ordinal 'one' is a positive integer.  (Contributed by NM, 29-Oct-1995.) $)
  1pi $p |- 1o e. N. $=
    ( c1o cnpi wcel com c0 wne 1onn 1n0 elni mpbir2an ) ABCADCAEFGHAIJ $.

  $( Positive integer addition in terms of ordinal addition.  (Contributed by
     NM, 27-Aug-1995.) $)
  addpiord $p |- ( ( A e. N. /\ B e. N. ) -> ( A +N B ) = ( A +o B ) ) $=
    ( cnpi wcel wa cop cxp cpli co coa wceq opelxpi cres cfv fvres df-ov df-pli
    fveq1i eqtri 3eqtr4g syl ) ACDBCDEABFZCCGZDZABHIZABJIZKABCCLUDUBJUCMZNZUBJN
    UEUFUBUCJOUEUBHNUHABHPUBHUGQRSABJPTUA $.

  $( Positive integer multiplication in terms of ordinal multiplication.
     (Contributed by NM, 27-Aug-1995.) $)
  mulpiord $p |- ( ( A e. N. /\ B e. N. ) -> ( A .N B ) = ( A .o B ) ) $=
    ( cnpi wcel wa cop cxp cmi co comu wceq opelxpi cres cfv fvres df-ov fveq1i
    df-mi eqtri 3eqtr4g syl ) ACDBCDEABFZCCGZDZABHIZABJIZKABCCLUDUBJUCMZNZUBJNU
    EUFUBUCJOUEUBHNUHABHPUBHUGRQSABJPTUA $.

  $( 1 is an identity element for multiplication on positive integers.
     (Contributed by NM, 4-Mar-1996.)  (Revised by Mario Carneiro,
     17-Nov-2014.) $)
  mulidpi $p |- ( A e. N. -> ( A .N 1o ) = A ) $=
    ( cnpi wcel c1o cmi co comu wceq 1pi mulpiord mpan2 com pinn nnm1 syl eqtrd
    ) ABCZADEFZADGFZAQDBCRSHIADJKQALCSAHAMANOP $.

  $( Positive integer 'less than' in terms of ordinal membership.  (Contributed
     by NM, 6-Feb-1996.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  ltpiord $p |- ( ( A e. N. /\ B e. N. ) -> ( A <N B <-> A e. B ) ) $=
    ( clti wbr cep cnpi cxp cin wcel wa df-lti breqi brinxp epelg adantl bitr3d
    wb syl5bb ) ABCDABEFFGHZDZAFIZBFIZJZABIZABCSKLUCABEDZTUDABFFEMUBUEUDQUAABFN
    OPR $.

  ${
    $d x y z $.
    $( Positive integer 'less than' is a strict ordering.  (Contributed by NM,
       8-Feb-1996.)  (Proof shortened by Mario Carneiro, 10-Jul-2014.) $)
    ltsopi $p |- <N Or N. $=
      ( vx vy vz cnpi clti wor wtru cv wcel wbr wn wel wb ltpiord adantl wa w3o
      wi com pinn elirrv anidms mtbiri w3a con0 pion ontr1 syl 3ad2ant3 3adant3
      3adant1 anbi12d 3adant2 3imtr4d ispod weq nntri3or syl2an biidd 3orbi123d
      ancoms mpbird issod trud ) DEFGABDEGABCDEAHZDIZVEVEEJZKGVFVGAALZAUAVFVGVH
      MVEVENUBUCOVFBHZDIZCHZDIZUDZVEVIEJZVIVKEJZPZVEVKEJZRGVMABLZBCLZPZACLZVPVQ
      VLVFVTWARZVJVLVKUEIWBVKUFVEVIVKUGUHUIVMVNVRVOVSVFVJVNVRMVLVEVINZUJVJVLVOV
      SMVFVIVKNUKULVFVLVQWAMVJVEVKNUMUNOUOVFVJPZVNABUPZVIVEEJZQZGWDWGVRWEBALZQZ
      VFVESIVISIWIVJVETVITVEVIUQURWDVNVRWEWEWFWHWCWDWEUSVJVFWFWHMVIVENVAUTVBOVC
      VD $.
  $}

  $( Trichotomy for positive integers.  (Contributed by Jim Kingdon,
     21-Sep-2019.) $)
  pitric $p |- ( ( A e. N. /\ B e. N. ) ->
      ( A <N B <-> -. ( A = B \/ B <N A ) ) ) $=
    ( cnpi wcel wa wceq wo wn clti wbr com wb pinn nntri2 syl2an ltpiord ancoms
    orbi2d notbid 3bitr4d ) ACDZBCDZEZABDZABFZBADZGZHZABIJUEBAIJZGZHUAAKDBKDUDU
    HLUBAMBMABNOABPUCUJUGUCUIUFUEUBUAUIUFLBAPQRST $.

  $( Trichotomy for positive integers.  (Contributed by Jim Kingdon,
     21-Sep-2019.) $)
  pitri3or $p |- ( ( A e. N. /\ B e. N. ) ->
      ( A <N B \/ A = B \/ B <N A ) ) $=
    ( cnpi wcel clti wbr wceq w3o com pinn nntri3or syl2an ltpiord biidd ancoms
    wa wb 3orbi123d mpbird ) ACDZBCDZPZABEFZABGZBAEFZHABDZUDBADZHZTAIDBIDUHUAAJ
    BJABKLUBUCUFUDUDUEUGABMUBUDNUATUEUGQBAMORS $.

  $( Less-than for positive integers is decidable.  (Contributed by Jim
     Kingdon, 12-Dec-2019.) $)
  ltdcpi $p |- ( ( A e. N. /\ B e. N. ) -> DECID A <N B ) $=
    ( cnpi wcel wa clti wbr wdc com pinn nndcel syl2an ltpiord dcbid mpbird ) A
    CDZBCDZEZABFGZHABDZHZPAIDBIDUAQAJBJABKLRSTABMNO $.

  $( Positive integer 'less than' is a relation on positive integers.
     (Contributed by NM, 8-Feb-1996.) $)
  ltrelpi $p |- <N C_ ( N. X. N. ) $=
    ( clti cep cnpi cxp cin df-lti inss2 eqsstri ) ABCCDZEIFBIGH $.

  $( Domain of addition on positive integers.  (Contributed by NM,
     26-Aug-1995.) $)
  dmaddpi $p |- dom +N = ( N. X. N. ) $=
    ( coa cnpi cxp cres cdm con0 cin cpli dmres wfn wceq fnoa fndm ax-mp ineq2i
    eqtri df-pli dmeqi wss com wa c0 csn df-ni difss eqsstri omsson sstri anidm
    cdif mpbir xpss12 dfss mpbi 3eqtr4i ) ABBCZDZEZUPFFCZGZHEUPURUPAEZGUTAUPIVA
    USUPAUSJVAUSKLUSAMNOPHUQQRUPUSSZUPUTKBFSZVCUAZVBVDVCBTFBTUBUCZUJTUDTVEUEUFU
    GUHVCUIUKBFBFULNUPUSUMUNUO $.

  $( Domain of multiplication on positive integers.  (Contributed by NM,
     26-Aug-1995.) $)
  dmmulpi $p |- dom .N = ( N. X. N. ) $=
    ( comu cnpi cxp cres cdm con0 cin cmi dmres wfn wceq fnom fndm ax-mp ineq2i
    eqtri df-mi dmeqi wss com wa c0 cdif df-ni difss eqsstri omsson sstri anidm
    csn mpbir xpss12 dfss mpbi 3eqtr4i ) ABBCZDZEZUPFFCZGZHEUPURUPAEZGUTAUPIVAU
    SUPAUSJVAUSKLUSAMNOPHUQQRUPUSSZUPUTKBFSZVCUAZVBVDVCBTFBTUBUJZUCTUDTVEUEUFUG
    UHVCUIUKBFBFULNUPUSUMUNUO $.

  $( Closure of addition of positive integers.  (Contributed by NM,
     18-Oct-1995.) $)
  addclpi $p |- ( ( A e. N. /\ B e. N. ) -> ( A +N B ) e. N. ) $=
    ( cnpi wcel wa cpli co coa addpiord com pinn wne nnacl sylan2 elni2 nnaordi
    c0 wi ne0i syl6 expcom imp32 sylan2b elni sylanbrc sylan eqeltrd ) ACDZBCDZ
    EABFGABHGZCABIUHAJDZUIUJCDZAKUKUIEUJJDZUJQLZULUIUKBJDZUMBKABMNUIUKUOQBDZEUN
    BOUKUOUPUNUOUKUPUNRUOUKEUPAQHGZUJDUNQBAPUJUQSTUAUBUCUJUDUEUFUG $.

  $( Closure of multiplication of positive integers.  (Contributed by NM,
     18-Oct-1995.) $)
  mulclpi $p |- ( ( A e. N. /\ B e. N. ) -> ( A .N B ) e. N. ) $=
    ( cnpi wcel wa cmi co comu mulpiord com wne pinn nnmcl syl2an elni2 simprbi
    c0 adantl wi adantr nnmordi syl21anc mpd ne0i syl elni sylanbrc eqeltrd ) A
    CDZBCDZEZABFGABHGZCABIUKULJDZULQKZULCDUIAJDZBJDZUMUJALZBLZABMNUKAQHGZULDZUN
    UKQBDZUTUJVAUIUJUPVABOPRUKUPUOQADZVAUTSUJUPUIURRUIUOUJUQTUIVBUJUIUOVBAOPTQB
    AUAUBUCULUSUDUEULUFUGUH $.

  $( Addition of positive integers is commutative.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  addcompig $p |- ( ( A e. N. /\ B e. N. ) -> ( A +N B ) = ( B +N A ) ) $=
    ( cnpi wcel wa coa cpli com wceq pinn nnacom syl2an addpiord ancoms 3eqtr4d
    co ) ACDZBCDZEABFPZBAFPZABGPBAGPZQAHDBHDSTIRAJBJABKLABMRQUATIBAMNO $.

  $( Addition of positive integers is associative.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  addasspig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      ( ( A +N B ) +N C ) = ( A +N ( B +N C ) ) ) $=
    ( cnpi wcel w3a coa co cpli com wceq pinn nnaass syl3an wa addclpi addpiord
    sylan oveq1d eqtrd adantr 3impa sylan2 oveq2d adantl 3impb 3eqtr4d ) ADEZBD
    EZCDEZFABGHZCGHZABCGHZGHZABIHZCIHZABCIHZIHZUHAJEUIBJEUJCJEULUNKALBLCLABCMNU
    HUIUJUPULKUHUIOZUJOUPUOCGHZULUSUODEUJUPUTKABPUOCQRUSUTULKUJUSUOUKCGABQSUATU
    BUHUIUJURUNKUHUIUJOZOURAUQGHZUNVAUHUQDEURVBKBCPAUQQUCVAVBUNKUHVAUQUMAGBCQUD
    UETUFUG $.

  $( Multiplication of positive integers is commutative.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  mulcompig $p |- ( ( A e. N. /\ B e. N. ) -> ( A .N B ) = ( B .N A ) ) $=
    ( cnpi wcel wa comu cmi com wceq pinn nnmcom syl2an mulpiord ancoms 3eqtr4d
    co ) ACDZBCDZEABFPZBAFPZABGPBAGPZQAHDBHDSTIRAJBJABKLABMRQUATIBAMNO $.

  $( Multiplication of positive integers is associative.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  mulasspig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. )
      -> ( ( A .N B ) .N C ) = ( A .N ( B .N C ) ) ) $=
    ( cnpi wcel w3a comu co cmi com wceq pinn nnmass syl3an wa mulclpi mulpiord
    sylan oveq1d eqtrd adantr 3impa sylan2 oveq2d adantl 3impb 3eqtr4d ) ADEZBD
    EZCDEZFABGHZCGHZABCGHZGHZABIHZCIHZABCIHZIHZUHAJEUIBJEUJCJEULUNKALBLCLABCMNU
    HUIUJUPULKUHUIOZUJOUPUOCGHZULUSUODEUJUPUTKABPUOCQRUSUTULKUJUSUOUKCGABQSUATU
    BUHUIUJURUNKUHUIUJOZOURAUQGHZUNVAUHUQDEURVBKBCPAUQQUCVAVBUNKUHVAUQUMAGBCQUD
    UETUFUG $.

  $( Multiplication of positive integers is distributive.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  distrpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. )
      -> ( A .N ( B +N C ) ) = ( ( A .N B ) +N ( A .N C ) ) ) $=
    ( cnpi wcel w3a coa co comu cpli cmi wceq pinn nndi mulpiord addpiord eqtrd
    com wa mulclpi syl3an addclpi sylan2 oveq2d adantl syl2an oveqan12d 3eqtr4d
    3impb 3impdi ) ADEZBDEZCDEZFABCGHZIHZABIHZACIHZGHZABCJHZKHZABKHZACKHZJHZUKA
    REULBREUMCREUOURLAMBMCMABCNUAUKULUMUTUOLUKULUMSZSUTAUSIHZUOVDUKUSDEUTVELBCU
    BAUSOUCVDVEUOLUKVDUSUNAIBCPUDUEQUIUKULUMVCURLUKULSZUKUMSZSVCVAVBGHZURVFVADE
    VBDEVCVHLVGABTACTVAVBPUFVFVGVAUPVBUQGABOACOUGQUJUH $.

  $( Addition cancellation law for positive integers.  (Contributed by Jim
     Kingdon, 27-Aug-2019.) $)
  addcanpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
                 ( ( A +N B ) = ( A +N C ) <-> B = C ) ) $=
    ( cnpi wcel w3a cpli co wceq coa addpiord 3adant3 3adant2 eqeq12d wi nnacan
    com pinn biimpd syl3an sylbid oveq2 impbid1 ) ADEZBDEZCDEZFZABGHZACGHZIZBCI
    ZUGUJABJHZACJHZIZUKUGUHULUIUMUDUEUHULIUFABKLUDUFUIUMIUEACKMNUDAQEZUEBQEZUFC
    QEZUNUKOARBRCRUOUPUQFUNUKABCPSTUABCAGUBUC $.

  $( Multiplication cancellation law for positive integers.  (Contributed by
     Jim Kingdon, 29-Aug-2019.) $)
  mulcanpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
                 ( ( A .N B ) = ( A .N C ) <-> B = C ) ) $=
    ( cnpi wcel w3a cmi co wceq wi wa comu mulpiord adantr adantlr eqeq12d pinn
    com c0 elni2 simprbi nnmcan biimpd sylan2 ex syl3an 3exp com4r imp31 sylbid
    pm2.43i 3impa oveq2 impbid1 ) ADEZBDEZCDEZFABGHZACGHZIZBCIZUOUPUQUTVAJUOUPK
    ZUQKZUTABLHZACLHZIZVAVCURVDUSVEVBURVDIUQABMNUOUQUSVEIUPACMOPUOUPUQVFVAJZUOU
    PUQVGJJUOUPUQUOVGUOUPUQUOVGJZUOAREZUPBREZUQCREZVHAQBQCQVIVJVKFZUOVGUOVLSAEZ
    VGUOVIVMATUAVLVMKVFVAABCUBUCUDUEUFUGUHUKUIUJULBCAGUMUN $.

  $( There is no identity element for addition on positive integers.
     (Contributed by NM, 28-Nov-1995.) $)
  addnidpig $p |- ( ( A e. N. /\ B e. N. ) -> -. ( A +N B ) = A ) $=
    ( cnpi wcel wa cpli co wceq coa com wn pinn c0 elni2 wi nnaordi nna0 eleq1d
    word nnord ordirr eleq2 notbid syl5ibrcom sylbid adantl syld expcom sylan2b
    syl con2d imp32 sylan addpiord eqeq1d mtbird ) ACDZBCDZEZABFGZAHABIGZAHZUQA
    JDZURVBKZALURVCBJDZMBDZEVDBNVCVEVFVDVEVCVFVDOVEVCEVFAMIGZVADZVDMBAPVCVHVDOV
    EVCVHAVADZVDVCVGAVAAQRVCVBVIVCVIKVBAADZKZVCASVKATAUAUJVBVIVJVAAAUBUCUDUKUEU
    FUGUHULUIUMUSUTVAAABUNUOUP $.

  ${
    $d x A $.  $d x B $.
    $( Ordering on positive integers in terms of existence of sum.
       (Contributed by NM, 15-Mar-1996.)  (Revised by Mario Carneiro,
       14-Jun-2013.) $)
    ltexpi $p |- ( ( A e. N. /\ B e. N. ) ->
               ( A <N B <-> E. x e. N. ( A +N x ) = B ) ) $=
      ( cnpi wcel wa c0 cv coa wceq com wrex clti wbr cpli pinn nnaordex syl2an
      co wb ltpiord addpiord eqeq1d pm5.32da elni2 anbi1i anass syl6bb rexbidv2
      bitri adantr 3bitr4d ) BDEZCDEZFBCEZGAHZEZBUPISZCJZFZAKLZBCMNBUPOSZCJZADL
      ZUMBKECKEUOVATUNBPCPABCQRBCUAUMVDVATUNUMVCUTADKUMUPDEZVCFVEUSFZUPKEZUTFZU
      MVEVCUSUMVEFVBURCBUPUBUCUDVFVGUQFZUSFVHVEVIUSUPUEUFVGUQUSUGUJUHUIUKUL $.
  $}

  $( Ordering property of addition for positive integers.  (Contributed by Jim
     Kingdon, 31-Aug-2019.) $)
  ltapig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      ( A <N B <-> ( C +N A ) <N ( C +N B ) ) ) $=
    ( cnpi wcel clti wbr cpli co wb wa coa com pinn nnaord ltpiord addclpi wceq
    adantr addpiord syl3an 3expa syl2an adantl eleq12d anandis ancoms 3bitr4d
    bitrd 3impa ) ADEZBDEZCDEZABFGZCAHIZCBHIZFGZJUKULKZUMKABEZCALIZCBLIZEZUNUQU
    KULUMUSVBJZUKAMEULBMEUMCMEVCANBNCNABCOUAUBURUNUSJUMABPSUMURUQVBJZUMUKULVDUM
    UKKZUMULKZKZUQUOUPEZVBVEUODEUPDEUQVHJVFCAQCBQUOUPPUCVGUOUTUPVAVEUOUTRVFCATS
    VFUPVARVECBTUDUEUIUFUGUHUJ $.

  $( Ordering property of multiplication for positive integers.  (Contributed
     by Jim Kingdon, 31-Aug-2019.) $)
  ltmpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      ( A <N B <-> ( C .N A ) <N ( C .N B ) ) ) $=
    ( cnpi wcel clti wbr cmi co wb wa comu com pinn syl2an ltpiord mulclpi wceq
    adantr mulpiord wi c0 elni2 w3a iba nnmord sylan9bbr 3exp1 imp4b syl5bi imp
    adantl eleq12d bitrd anandis ancoms 3bitr4d 3impa ) ADEZBDEZCDEZABFGZCAHIZC
    BHIZFGZJUSUTKZVAKABEZCALIZCBLIZEZVBVEVFVAVGVJJZUSAMEZBMEZVAVKUAUTANBNVACMEZ
    UBCEZKVLVMKVKCUCVLVMVNVOVKVLVMVNVOVKVOVGVGVOKVLVMVNUDVJVOVGUEABCUFUGUHUIUJO
    UKVFVBVGJVAABPSVAVFVEVJJZVAUSUTVPVAUSKZVAUTKZKZVEVCVDEZVJVQVCDEVDDEVEVTJVRC
    AQCBQVCVDPOVSVCVHVDVIVQVCVHRVRCATSVRVDVIRVQCBTULUMUNUOUPUQUR $.

  $( One is less than two (one plus one).  (Contributed by NM, 13-Mar-1996.) $)
  1lt2pi $p |- 1o <N ( 1o +N 1o ) $=
    ( c1o cpli co clti wbr wcel coa c0 com wceq 1onn nna0 ax-mp 0lt1o wb peano1
    nnaord cnpi 1pi mp2an mp3an mpbi eqeltrri addpiord eleqtrri addclpi ltpiord
    mpbir ) AAABCZDEZAUIFZAAAGCZUIAHGCZAULAIFZUMAJKALMHAFZUMULFZNHIFUNUNUOUPOPK
    KHAAQUAUBUCARFZUQUIULJSSAAUDTUEUQUIRFZUJUKOSUQUQURSSAAUFTAUIUGTUH $.

  $( No positive integer is less than one.  (Contributed by Jim Kingdon,
     31-Aug-2019.) $)
  nlt1pig $p |- ( A e. N. -> -. A <N 1o ) $=
    ( cnpi wcel c0 wne c1o clti wbr wn com elni simprbi wceq wa noel wo ltpiord
    wb 1pi mpan2 csuc df-1o eleq2i elsucg syl5bb biimpa ord mpi ex necon3ad mpd
    bitrd ) ABCZADEZAFGHZIUMAJCUNAKLUMUOADUMUOADMZUMUONZADCZIUPAOUQURUPUMUOURUP
    PZUMUOAFCZUSUMFBCUOUTRSAFQTUTADUAZCUMUSFVAAUBUCADBUDUEULUFUGUHUIUJUK $.

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Substitutions. $)
    indpi.1 $e |- ( x = 1o -> ( ph <-> ps ) ) $.
    indpi.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    indpi.3 $e |- ( x = ( y +N 1o ) -> ( ph <-> th ) ) $.
    indpi.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    indpi.5 $e |- ps $.
    $( Induction step. $)
    indpi.6 $e |- ( y e. N. -> ( ch -> th ) ) $.
    $( Principle of Finite Induction on positive integers.  (Contributed by NM,
       23-Mar-1996.) $)
    indpi $p |- ( A e. N. -> ta ) $=
      ( wcel com c0 wceq wo c1o cnpi cv wne wa elni cab csuc wral wss wsbc eqid
      orci nfv nfsbc1v nfor 0ex eqeq1 sbceq1a orbi12d elabf mpbir suceq syl6eqr
      wi df-1o olci 1onn elexi elab syl6eqel a1d a1i wn wb simprbi neneqd biorf
      syl vex syl6bbr cpli co 1pi addclpi mpan2 sylib simprd elabg coa addpiord
      con0 pion oa1suc eqtrd eleq1d 3bitr2d 3imtr3d wdc nndceq0 necon3bd anc2li
      df-dc idd syl6ibr orim2d mpjaod rgen peano5 mp2an sseli abid adantr df-ne
      mpd sylbi adantl mpbird vtoclga ) AEFHUALFUBZUAOXSPOZXSQUCZUDZAXSUEYBAXSQ
      RZASZXTYDYAXTXSYDFUFZOYDPYEXSQYEOZGUBZYEOZYGUGZYEOZVDZGPUHPYEUIYFQQRZAFQU
      JZSZYLYMQUKULYDYNFQYLYMFYLFUMAFQUNUOUPYCYCYLAYMXSQQUQAFQURUSUTVAYKGPYGPOZ
      YGQRZYKYGUAOZYPYKVDYOYPYJYHYPYITYEYPYIQUGTYGQVBVEVCTYEOTQRZBSZBYRMVFYDYSF
      TTPVGVHXSTRYCYRABXSTQUQIUSVIVAVJVKVLYQYKVDYOYQCDYHYJNYQCYPCSZYHYQYPVMZCYT
      VNYQYGQYQYOYGQUCZYGUEZVOVPYPCVQVRYDYTFYGGVSXSYGRYCYPACXSYGQUQJUSVIVTYQDYG
      TWAWBZQRZDSZUUDYEOZYJYQUUEVMDUUFVNYQUUDQYQUUDPOZUUDQUCZYQUUDUAOZUUHUUIUDY
      QTUAOZUUJWCYGTWDWEZUUDUEWFWGVPUUEDVQVRYQUUJUUGUUFVNUULYDUUFFUUDUAXSUUDRYC
      UUEADXSUUDQUQKUSWHVRYQUUDYIYEYQUUDYGTWIWBZYIYQUUKUUDUUMRWCYGTWJWEYQYGWKOU
      UMYIRYGWLYGWMVRWNWOWPWQVLYOYPUUASZYPYQSYOYPWRUUNYGWSYPXBWFYOUUAYQYPYOUUAY
      OUUBUDYQYOUUAUUBYOYPYGQYOYPXCWTXAUUCXDXEXNXFXGGYEXHXIXJYDFXKWFXLYAAYDVNZX
      TYAYCVMUUOXSQXMYCAVQXOXPXQXOXR $.
  $}

  $( A natural number plus a positive integer is a positive integer.
     (Contributed by Jim Kingdon, 10-Nov-2019.) $)
  nnppipi $p |- ( ( A e. _om /\ B e. N. ) -> ( A +o B ) e. N. ) $=
    ( com wcel cnpi wa coa co pinn nnacl sylan2 wss nnaword2 sylan ancoms elni2
    c0 simprbi adantl sseldd sylanbrc ) ACDZBEDZFZABGHZCDZQUEDUEEDUCUBBCDZUFBIZ
    ABJKUDBUEQUCUBBUELZUCUGUBUIUHBAMNOUCQBDZUBUCUGUJBPRSTUEPUA $.

  ${
    $d x y z w v u f $.
    $( Define pre-addition on positive fractions.  This is a "temporary" set
       used in the construction of complex numbers, and is intended to be used
       only by the construction.  This "pre-addition" operation works directly
       with ordered pairs of integers.  The actual positive fraction addition
       ` +Q ` ( ~ df-plqqs ) works with the equivalence classes of these
       ordered pairs determined by the equivalence relation ` ~Q `
       ( ~ df-enq ).  (Analogous remarks apply to the other "pre-" operations
       in the complex number construction that follows.)  From Proposition
       9-2.3 of [Gleason] p. 117.  (Contributed by NM, 28-Aug-1995.) $)
    df-plpq $a |- +pQ = ( x e. ( N. X. N. ) , y e. ( N. X. N. ) |->
      <. ( ( ( 1st ` x ) .N ( 2nd ` y ) ) +N
           ( ( 1st ` y ) .N ( 2nd ` x ) ) ) ,
           ( ( 2nd ` x ) .N ( 2nd ` y ) ) >. ) $.

    $( Define pre-multiplication on positive fractions.  This is a "temporary"
       set used in the construction of complex numbers, and is intended to be
       used only by the construction.  From Proposition 9-2.4 of [Gleason]
       p. 119.  (Contributed by NM, 28-Aug-1995.) $)
    df-mpq $a |- .pQ = ( x e. ( N. X. N. ) , y e. ( N. X. N. ) |->
        <. ( ( 1st ` x ) .N ( 1st ` y ) ) ,
           ( ( 2nd ` x ) .N ( 2nd ` y ) ) >. ) $.

    $( Define pre-ordering relation on positive fractions.  This is a
       "temporary" set used in the construction of complex numbers, and is
       intended to be used only by the construction.  Similar to Definition 5
       of [Suppes] p. 162.  (Contributed by NM, 28-Aug-1995.) $)
    df-ltpq $a |- <pQ = { <. x , y >. |
      ( ( x e. ( N. X. N. ) /\ y e. ( N. X. N. ) ) /\
        ( ( 1st ` x ) .N ( 2nd ` y ) ) <N ( ( 1st ` y ) .N ( 2nd ` x ) ) ) } $.

    $( Define equivalence relation for positive fractions.  This is a
       "temporary" set used in the construction of complex numbers, and is
       intended to be used only by the construction.  From Proposition 9-2.1 of
       [Gleason] p. 117.  (Contributed by NM, 27-Aug-1995.) $)
    df-enq $a |- ~Q = { <. x , y >. | ( ( x e. ( N. X. N. ) /\
                   y e. ( N. X. N. ) ) /\ E. z E. w E. v E. u
                   ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
                   ( z .N u ) = ( w .N v ) ) ) } $.

    $( Define class of positive fractions.  This is a "temporary" set used in
       the construction of complex numbers, and is intended to be used only by
       the construction.  From Proposition 9-2.2 of [Gleason] p. 117.
       (Contributed by NM, 16-Aug-1995.) $)
    df-nqqs $a |- Q. = ( ( N. X. N. ) /. ~Q ) $.

    $( Define addition on positive fractions.  This is a "temporary" set used
       in the construction of complex numbers, and is intended to be used only
       by the construction.  From Proposition 9-2.3 of [Gleason] p. 117.
       (Contributed by NM, 24-Aug-1995.) $)
    df-plqqs $a |- +Q = { <. <. x , y >. , z >. | ( ( x e. Q. /\ y e. Q. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q /\ y = [ <. u , f >. ] ~Q ) /\
               z = [ ( <. w , v >. +pQ <. u , f >. ) ] ~Q ) ) } $.

    $( Define multiplication on positive fractions.  This is a "temporary" set
       used in the construction of complex numbers, and is intended to be used
       only by the construction.  From Proposition 9-2.4 of [Gleason] p. 119.
       (Contributed by NM, 24-Aug-1995.) $)
    df-mqqs $a |- .Q = { <. <. x , y >. , z >. | ( ( x e. Q. /\ y e. Q. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q /\ y = [ <. u , f >. ] ~Q ) /\
               z = [ ( <. w , v >. .pQ <. u , f >. ) ] ~Q ) ) } $.

    $( Define positive fraction constant 1.  This is a "temporary" set used in
       the construction of complex numbers, and is intended to be used only by
       the construction.  From Proposition 9-2.2 of [Gleason] p. 117.
       (Contributed by NM, 29-Oct-1995.) $)
    df-1nqqs $a |- 1Q = [ <. 1o , 1o >. ] ~Q $.

    $( Define reciprocal on positive fractions.  It means the same thing as one
       divided by the argument (although we don't define full division since we
       will never need it).  This is a "temporary" set used in the construction
       of complex numbers, and is intended to be used only by the
       construction.  From Proposition 9-2.5 of [Gleason] p. 119, who uses an
       asterisk to denote this unary operation.  (Contributed by Jim Kingdon,
       20-Sep-2019.) $)
    df-rq $a |- *Q = { <. x , y >. |
        ( x e. Q. /\ y e. Q. /\ ( x .Q y ) = 1Q ) } $.

    $( Define ordering relation on positive fractions.  This is a "temporary"
       set used in the construction of complex numbers, and is intended to be
       used only by the construction.  Similar to Definition 5 of [Suppes]
       p. 162.  (Contributed by NM, 13-Feb-1996.) $)
    df-ltnqqs $a |- <Q = { <. x , y >. | ( ( x e. Q. /\ y e. Q. ) /\
       E. z E. w E. v E. u
       ( ( x = [ <. z , w >. ] ~Q /\ y = [ <. v , u >. ] ~Q ) /\
                ( z .N u ) <N ( w .N v ) ) ) } $.
  $}

  ${
    $d x y z w v u f $.
    $( Alternative definition of pre-addition on positive fractions.
       (Contributed by Jim Kingdon, 12-Sep-2019.) $)
    dfplpq2 $p |- +pQ = { <. <. x , y >. , z >. | ( ( x e. ( N. X. N. ) /\
        y e. ( N. X. N. ) ) /\ E. w E. v E. u E. f ( ( x = <. w , v >. /\
        y = <. u , f >. ) /\ z = <. ( ( w .N f ) +N ( v .N u ) ) ,
        ( v .N f ) >. ) ) } $=
      ( cnpi cv cfv cmi co cpli cop wcel wa wceq wex vex oveq12d cxp c1st cmpt2
      c2nd coprab cplpq df-mpt2 df-plpq 1st2nd2 eqeq1d bi2anan9 anbi1d ad2antlr
      xp1st biimpa simprd opth2 simplbi eleq1d syl mpbid xp2nd ad2antrr simprbi
      simpld mulcompig syl2anc oveq2d opeq1d eqeq2d pm5.32da bitr3d 4exbidv jca
      wb simpll simprr simprl simplr opeq12d copsex4g pm5.32i oprabbii 3eqtr4i
      syl2an ) ABHHUAZWFAIZUBJZBIZUDJZKLZWIUBJZWGUDJZKLZMLZWMWJKLZNZUCWGWFOZWIW
      FOZPZCIZWQQZPZABCUEUFWTWGDIZEIZNZQZWIFIZGIZNZQZPZXAXDXIKLZXEXHKLZMLZXEXIK
      LZNZQZPZGRFRERDRZPZABCUEABCWFWFWQUGABUHYAXCABCWTXTXBWTWHWMNZXFQZWLWJNZXJQ
      ZPZXAXMXHXEKLZMLZXPNZQZPZGRFRERDRZXTXBWTYKXSDEFGWTXLYJPYKXSWTXLYFYJWRXGYC
      WSXKYEWRWGYBXFWGHHUIUJWSWIYDXJWIHHUIUJUKZULWTXLYJXRWTXLPZYIXQXAYNYHXOXPYN
      YGXNXMMYNXHHOZXEHOZYGXNQYNWLHOZYOWSYQWRXLWIHHUNZUMYNYEYQYOVOYNYCYEWTXLYFY
      MUOZUPYEWLXHHYEWLXHQWJXIQWLWJXHXIFSGSUQURUSUTVAYNWMHOZYPWRYTWSXLWGHHVBZVC
      YNYCYTYPVOYNYCYEYSVEYCWMXEHYCWHXDQWMXEQWHWMXDXEDSESUQVDUSUTVAXHXEVFVGVHVI
      VJVKVLVMWRWHHOZYTPYQWJHOZPYLXBVOWSWRUUBYTWGHHUNUUAVNWSYQUUCYRWIHHVBVNYJXB
      DEFGWHWMWLWJHHXDWHQZXEWMQZPZXHWLQZXIWJQZPZPZYIWQXAUUJYHWOXPWPUUJXMWKYGWNM
      UUJXDWHXIWJKUUDUUEUUIVPUUFUUGUUHVQZTUUJXHWLXEWMKUUFUUGUUHVRUUDUUEUUIVSZTT
      UUJXEWMXIWJKUULUUKTVTVJWAWEVLWBWCWD $.
  $}

  ${
    $d x y z w v u f $.
    $( Alternative definition of pre-multiplication on positive fractions.
       (Contributed by Jim Kingdon, 13-Sep-2019.) $)
    dfmpq2 $p |- .pQ = { <. <. x , y >. , z >. | ( ( x e. ( N. X. N. ) /\ y
        e. ( N. X. N. ) ) /\ E. w E. v E. u E. f ( ( x = <. w , v >. /\
        y = <. u , f >. ) /\ z = <. ( w .N u ) , ( v .N f ) >. ) ) } $=
      ( cnpi cv c1st cfv cmi co c2nd cop wcel wa wceq coprab wex cxp cmpt2 cmpq
      df-mpt2 df-mpq 1st2nd2 eqeq1d bi2anan9 anbi1d bicomd 4exbidv wb xp1st jca
      simpll simprl oveq12d simplr simprr opeq12d eqeq2d copsex4g syl2an bitr3d
      xp2nd pm5.32i oprabbii 3eqtr4i ) ABHHUAZVIAIZJKZBIZJKZLMZVJNKZVLNKZLMZOZU
      BVJVIPZVLVIPZQZCIZVRRZQZABCSUCWAVJDIZEIZOZRZVLFIZGIZOZRZQZWBWEWILMZWFWJLM
      ZOZRZQZGTFTETDTZQZABCSABCVIVIVRUDABUEWTWDABCWAWSWCWAVKVOOZWGRZVMVPOZWKRZQ
      ZWQQZGTFTETDTZWSWCWAXFWRDEFGWAWRXFWAWMXEWQVSWHXBVTWLXDVSVJXAWGVJHHUFUGVTV
      LXCWKVLHHUFUGUHUIUJUKVSVKHPZVOHPZQVMHPZVPHPZQXGWCULVTVSXHXIVJHHUMVJHHVEUN
      VTXJXKVLHHUMVLHHVEUNWQWCDEFGVKVOVMVPHHWEVKRZWFVORZQZWIVMRZWJVPRZQZQZWPVRW
      BXRWNVNWOVQXRWEVKWIVMLXLXMXQUOXNXOXPUPUQXRWFVOWJVPLXLXMXQURXNXOXPUSUQUTVA
      VBVCVDVFVGVH $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.
    $( Equivalence relation for positive fractions in terms of positive
       integers.  (Contributed by NM, 27-Aug-1995.) $)
    enqbreq $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
          ( <. A , B >. ~Q <. C , D >. <-> ( A .N D ) = ( B .N C ) ) ) $=
      ( vx vy vz vw vv vu cmi ceq cnpi df-enq ecopoveq ) EFGHIJABCDKLMEFGHIJNO
      $.
  $}

  ${
    $( Equivalence relation for positive fractions in terms of positive
       integers.  (Contributed by Mario Carneiro, 8-May-2013.) $)
    enqbreq2 $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) ) ->
          ( A ~Q B <-> ( ( 1st ` A ) .N ( 2nd ` B ) ) =
                       ( ( 1st ` B ) .N ( 2nd ` A ) ) ) ) $=
      ( cnpi cxp wcel wa ceq wbr c1st cfv c2nd cop cmi wceq 1st2nd2 xp1st xp2nd
      co jca syl2an breqan12d wb enqbreq mulcompig eqeq2d 3bitrd ) ACCDZEZBUGEZ
      FZABGHAIJZAKJZLZBIJZBKJZLZGHZUKUOMRZULUNMRZNZURUNULMRZNUHUIAUMBUPGACCOBCC
      OUAUHUKCEZULCEZFUNCEZUOCEZFUQUTUBUIUHVBVCACCPACCQZSUIVDVEBCCPZBCCQSUKULUN
      UOUCTUJUSVAURUHVCVDUSVANUIVFVGULUNUDTUEUF $.
  $}

  ${
    $d x y z w v u $.
    $( The equivalence relation for positive fractions is an equivalence
       relation.  Proposition 9-2.1 of [Gleason] p. 117.  (Contributed by NM,
       27-Aug-1995.)  (Revised by Mario Carneiro, 6-Jul-2015.) $)
    enqer $p |- ~Q Er ( N. X. N. ) $=
      ( vx vy vz vw vv cmi ceq cnpi df-enq mulcompig mulclpi mulasspig wcel w3a
      vu cv co wceq mulcanpig biimpd ecopoverg ) ABCDEOFGHABCDEOIAPZBPZJUBUCKUB
      UCCPZLUBHMUCHMUDHMNUBUCFQUBUDFQRUCUDRUBUCUDSTUA $.
  $}

  $( Equivalence class equality of positive fractions in terms of positive
     integers.  (Contributed by NM, 29-Nov-1995.) $)
  enqeceq $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q = [ <. C , D >. ] ~Q <->
                ( A .N D ) = ( B .N C ) ) ) $=
    ( cnpi wcel wa cop ceq wbr cec wceq cmi co cxp wer enqer a1i opelxpi adantr
    erth enqbreq bitr3d ) AEFBEFGZCEFDEFGZGZABHZCDHZIJUGIKUHIKLADMNBCMNLUFUGUHI
    EEOZUIIPUFQRUDUGUIFUEABEESTUAABCDUBUC $.

  ${
    $d x y z w v u $.
    $( The equivalence relation for positive fractions exists.  (Contributed by
       NM, 3-Sep-1995.) $)
    enqex $p |- ~Q e. _V $=
      ( vx vy vz vw vv vu ceq cnpi cxp niex xpex cv wcel wa cop wceq cmi co wex
      copab df-enq opabssxp eqsstri ssexi ) GHHIZUEIZUEUEHHJJKZUGKGALZUEMBLZUEM
      NUHCLZDLZOPUIELZFLZOPNUJUMQRUKULQRPNFSESDSCSZNABTUFABCDEFUAUNABUEUEUBUCUD
      $.
  $}

  $( The equivalence relation for positive fractions is decidable.
     (Contributed by Jim Kingdon, 7-Sep-2019.) $)
  enqdc $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
      DECID <. A , B >. ~Q <. C , D >. ) $=
    ( cnpi wcel wa cop ceq wbr wdc cmi co wceq mulclpi pinn nndceq syl2an an42s
    com enqbreq dcbid mpbird ) AEFZBEFZGCEFZDEFZGGZABHCDHIJZKADLMZBCLMZNZKZUDUG
    UEUFUMUDUGGUJEFZUKEFZUMUEUFGADOBCOUNUJTFUKTFUMUOUJPUKPUJUKQRRSUHUIULABCDUAU
    BUC $.

  $( The equivalence relation for positive fractions is decidable.
     (Contributed by Jim Kingdon, 7-Sep-2019.) $)
  enqdc1 $p |- ( ( ( A e. N. /\ B e. N. ) /\ C e. ( N. X. N. ) ) ->
      DECID <. A , B >. ~Q C ) $=
    ( cnpi wcel wa cxp cop ceq wbr wdc c1st cfv xp1st xp2nd jca enqdc sylan2 wb
    c2nd 1st2nd2 breq2d dcbid adantl mpbird ) ADEBDEFZCDDGEZFABHZCIJZKZUHCLMZCT
    MZHZIJZKZUGUFUKDEZULDEZFUOUGUPUQCDDNCDDOPABUKULQRUGUJUOSUFUGUIUNUGCUMUHICDD
    UAUBUCUDUE $.

  ${
    $d x y z w u v $.
    $( The class of positive fractions exists.  (Contributed by NM,
       16-Aug-1995.)  (Revised by Mario Carneiro, 27-Apr-2013.) $)
    nqex $p |- Q. e. _V $=
      ( cnq cnpi cxp ceq cqs cvv df-nqqs niex xpex qsex eqeltri ) ABBCZDEFGLDBB
      HHIJK $.

    $( The empty set is not a positive fraction.  (Contributed by NM,
       24-Aug-1995.)  (Revised by Mario Carneiro, 27-Apr-2013.) $)
    0nnq $p |- -. (/) e. Q. $=
      ( c0 cnq wcel cnpi cxp ceq cqs wne neirr cdm wceq enqer erdm ax-mp elqsn0
      wer mpan mto df-nqqs eleq2i mtbir ) ABCADDEZFGZCZUDAAHZAIFJUBKZUDUEUBFPUF
      LUBFMNUBAFOQRBUCASTUA $.

    $( Positive fraction 'less than' is a relation on positive fractions.
       (Contributed by NM, 14-Feb-1996.)  (Revised by Mario Carneiro,
       27-Apr-2013.) $)
    ltrelnq $p |- <Q C_ ( Q. X. Q. ) $=
      ( vx vy vz vw vv vu cltq cv cnq wcel wa cop ceq cec wceq cmi clti wbr wex
      co copab cxp df-ltnqqs opabssxp eqsstri ) GAHZIJBHZIJKUFCHZDHZLMNOUGEHZFH
      ZLMNOKUHUKPTUIUJPTQRKFSESDSCSZKABUAIIUBABCDEFUCULABIIUDUE $.
  $}

  ${
    $d x y $.
    $( The positive fraction 'one'.  (Contributed by NM, 29-Oct-1995.) $)
    1nq $p |- 1Q e. Q. $=
      ( c1o cop ceq cec cnpi cxp cqs c1q cnq wcel 1pi opelxpi mp2an enqex ax-mp
      ecelqsi df-1nqqs df-nqqs 3eltr4i ) AABZCDZEEFZCGZHITUBJZUAUCJAEJZUEUDKKAA
      EELMUBTCNPOQRS $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z F $.
    $d x y z G $.  $d x y z R $.  $d x y z S $.

    $( Lemma showing compatibility of addition.  (Contributed by NM,
       27-Aug-1995.) $)
    addcmpblnq $p |- ( ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. )
             ) /\ ( ( F e. N. /\ G e. N. ) /\ ( R e. N. /\ S e. N. ) ) ) ->
                ( ( ( A .N D ) = ( B .N C ) /\ ( F .N S ) = ( G .N R ) ) ->
                 <. ( ( A .N G ) +N ( B .N F ) ) , ( B .N G ) >. ~Q
                 <. ( ( C .N S ) +N ( D .N R ) ) , ( D .N S ) >. ) ) $=
      ( vx vy vz cnpi wcel wa cmi co wceq cpli adantl mulclpi distrpig ad2ant2l
      cop ceq wbr w3a simplll simprlr syl2anc simpllr simprll addclpi mulcompig
      cv caovdir2d simplrr mulasspig simprrr caov4d eqtrd oveq1 oveq2 oveqan12d
      oveq12d sylan9eq simplrl simprrl syl3anc adantr eqtr4d syl2an jca anim12i
      wb an42s an4s enqbreq syl mpbird ex ) ALMZBLMZNZCLMZDLMZNZNZGLMZHLMZNZELM
      ZFLMZNZNZNZADOPZBCOPZQZGFOPZHEOPZQZNZAHOPZBGOPZRPZBHOPZUCCFOPZDEOPZRPZDFO
      PZUCUDUEZWOXBNZXKXEXJOPZXFXIOPZQZXLXMWQHFOPZOPZBDOPZWTOPZRPZXNWOXBXMWPXPO
      PZXRWSOPZRPZXTWOXMXCXJOPZXDXJOPZRPYCWOIJKXCXDXJLROIUNZLMZJUNZLMZKUNZLMUFZ
      YFYHYJRPOPYFYHOPZYFYJOPRPQWOYFYHYJUASWOWAWIXCLMZWAWBWFWNUGZWGWHWIWMUHZAHT
      ZUIWOWBWHXDLMZWAWBWFWNUJZWGWHWIWMUKZBGTZUIWFWMXJLMZWCWJWEWLUUAWDWKDFTUBZU
      BYGYINZYFYHRPLMWOYFYHULSUUCYLYHYFOPQWOYFYHUMSZUOWOYDYAYEYBRWOIJKAHDFLOYNY
      OWCWDWEWNUPZUUDYKYLYJOPYFYHYJOPOPQWOYFYHYJUQSZWGWJWKWLURZUUCYLLMWOYFYHTSZ
      USWOIJKBGDFLOYRYSUUEUUDUUFUUGUUHUSVDUTWRXAYAXQYBXSRWPWQXPOVAWSWTXROVBVCVE
      WOXNXTQXBWOXNXFXGOPZXFXHOPZRPZXTWOXFLMZXGLMZXHLMZXNUUKQWOWBWIUULYRYOBHTZU
      IWOWDWLUUMWCWDWEWNVFZUUGCFTZUIWOWEWKUUNUUEWGWJWKWLVGZDETZUIXFXGXHUAVHWOUU
      IXQUUJXSRWOIJKBHCFLOYRYOUUPUUDUUFUUGUUHUSWOIJKBHDELOYRYOUUEUUDUUFUURUUHUS
      VDUTVIVJWOXKXOVNZXBWOXELMZUULNZXILMZUUANZNZUUTWCWJWFWMUVEWCWJNZUVBWFWMNZU
      VDUVFUVAUULWAWIWBWHUVAWAWINYMYQUVAWBWHNYPYTXCXDULVKVOWBWIUULWAWHUUOUBVLUV
      GUVCUUAWDWLWEWKUVCWDWLNUUMUUNUVCWEWKNUUQUUSXGXHULVKVOUUBVLVMVPXEXFXIXJVQV
      RVIVSVT $.

    $( Lemma showing compatibility of multiplication.  (Contributed by NM,
       27-Aug-1995.) $)
    mulcmpblnq $p |- ( ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. )
             ) /\ ( ( F e. N. /\ G e. N. ) /\ ( R e. N. /\ S e. N. ) ) ) ->
                ( ( ( A .N D ) = ( B .N C ) /\ ( F .N S ) = ( G .N R ) ) ->
     <. ( A .N F ) , ( B .N G ) >. ~Q <. ( C .N R ) , ( D .N S ) >. ) ) $=
      ( vx vy vz cmi co wceq wa cnpi wcel mulclpi anim12i an4s cop oveq12 wb cv
      ceq wbr enqbreq simplll simprll simplrr mulcompig adantl mulasspig caov4d
      syl w3a simprrr simpllr simprlr simplrl simprrl eqeq12d bitrd syl5ibr ) A
      DLMZBCLMZNGFLMZHELMZNOAGLMZBHLMZUACELMZDFLMZUAUEUFZAPQZBPQZOZCPQZDPQZOZOZ
      GPQZHPQZOZEPQZFPQZOZOZOZVEVGLMZVFVHLMZNZVEVFVGVHLUBWHVMVIVLLMZVJVKLMZNZWK
      WHVIPQZVJPQZOZVKPQZVLPQZOZOZVMWNUCVPWCVSWFXAVPWCOWQVSWFOWTVNWAVOWBWQVNWAO
      WOVOWBOWPAGRBHRSTVQWDVRWEWTVQWDOWRVRWEOWSCERDFRSTSTVIVJVKVLUGUOWHWLWIWMWJ
      WHIJKAGDFPLVNVOVSWGUHVTWAWBWFUIVPVQVRWGUJIUDZPQZJUDZPQZOZXBXDLMZXDXBLMNWH
      XBXDUKULZXCXEKUDZPQUPXGXILMXBXDXILMLMNWHXBXDXIUMULZVTWCWDWEUQXFXGPQWHXBXD
      RULZUNWHIJKBHCEPLVNVOVSWGURVTWAWBWFUSVPVQVRWGUTXHXJVTWCWDWEVAXKUNVBVCVD
      $.
  $}

  $( Lemma for ~ addpipqqs .  (Contributed by Jim Kingdon, 11-Sep-2019.) $)
  addpipqqslem $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
      <. ( ( A .N D ) +N ( B .N C ) ) , ( B .N D ) >. e. ( N. X. N. ) ) $=
    ( cnpi wcel wa cmi co cop cxp mulclpi addclpi syl2an an42s ad2ant2l opelxpi
    cpli syl2anc ) AEFZBEFZGCEFZDEFZGGADHIZBCHIZRIZEFZBDHIZEFZUFUHJEEKFTUCUAUBU
    GTUCGUDEFUEEFUGUAUBGADLBCLUDUEMNOUAUCUITUBBDLPUFUHEEQS $.

  ${
    $d x y z w v u t s f g h a b c d A $.
    $d x y z w v u t s f g h a b c d B $.
    $d x y z w v u t s f g h a b c d C $.
    $d x y z w v u t s f g h a b c d D $.
    $( Addition of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.) $)
    addpipqqs $p |- ( ( ( A e. N. /\ B e. N. ) /\
                     ( C e. N. /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q +Q [ <. C , D >. ] ~Q ) =
                   [ <. ( ( A .N D ) +N ( B .N C ) ) ,
                              ( B .N D ) >. ] ~Q ) $=
      ( vz vu vw vv va vd vb vc cv cmi co wceq cpli weq wa oveq12 vg vs vh cplq
      vt vx vy cplpq cnq ceq cnpi cop addpipqqslem enqex enqer df-enq eqeqan12d
      vf wb an42s dfplpq2 oveqan12d ad2ant2l opeq12d df-plqqs addcmpblnq oviec
      df-nqqs ) EMZFMZNOZGMZHMZNOZPZIMZJMZNOZKMZLMZNOZPZUAMZUBMZNOZUCMZUEMZNOZP
      ZUFUGEGHFUEABCDUHUDUIUJUKURUAUCADNOZBCNOZQOZBDNOZULVLURMZNOZVMVJNOZQOZVMW
      NNOZULVPWFNOZVSWCNOZQOZVSWFNOZULVTWDNOZVQWGNOZQOZVQWDNOZULUBIKLJABCDUMVPV
      SWCWFUMVTVQWGWDUMUNUOUFUGEGHFUPEIRZFJRZGKRZHLRZVOWBUSXGXHSXIXJSVKVRVNWAVI
      VPVJVQNTVLVSVMVTNTUQUTEUARZFUBRZGUCRZHUERZVOWIUSXKXLSXMXNSVKWEVNWHVIWCVJW
      DNTVLWFVMWGNTUQUTUFUGEGHFURVAGIRZHKRZSFUARZURUCRZSSWQXAWRXBXOXRXPXQWQXAPX
      OXRSXPXQSWOWSWPWTQVLVPWNWFNTVMVSVJWCNTVBUTXPXRWRXBPXOXQVMVSWNWFNTVCVDGLRZ
      HJRZSFUERZURUBRZSSWQXEWRXFXSYBXTYAWQXEPXSYBSXTYASWOXCWPXDQVLVTWNWDNTVMVQV
      JWGNTVBUTXTYBWRXFPXSYAVMVQWNWDNTVCVDVLAPZVMBPZSVJCPZWNDPZSSWQWLWRWMYCYFYD
      YEWQWLPYCYFSYDYESWOWJWPWKQVLAWNDNTVMBVJCNTVBUTYDYFWRWMPYCYEVMBWNDNTVCVDUF
      UGEIKLJVEVHVPVSVTVQWGWDWCWFVFVG $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C y z $.  $d D y z $.
    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by Mario Carneiro, 8-May-2013.) $)
    mulpipq2 $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) ) ->
      ( A .pQ B ) = <. ( ( 1st ` A ) .N ( 1st ` B ) ) ,
                       ( ( 2nd ` A ) .N ( 2nd ` B ) ) >. ) $=
      ( vx vy cnpi wcel c1st cfv cmi co c2nd cop cmpq wceq xp1st mulclpi syl2an
      cvv xp2nd fveq2 cxp wa opexg syl2anc oveq1d opeq12d oveq2d df-mpq ovmpt2g
      cv mpd3an3 ) AEEUAZFZBULFZAGHZBGHZIJZAKHZBKHZIJZLZRFZABMJVANUMUNUBUQEFZUT
      EFZVBUMUOEFUPEFVCUNAEEOBEEOUOUPPQUMUREFUSEFVDUNAEESBEESURUSPQUQUTEEUCUDCD
      ABULULCUJZGHZDUJZGHZIJZVEKHZVGKHZIJZLVAMUOVHIJZURVKIJZLRVEANZVIVMVLVNVOVF
      UOVHIVEAGTUEVOVJURVKIVEAKTUEUFVGBNZVMUQVNUTVPVHUPUOIVGBGTUGVPVKUSURIVGBKT
      UGUFCDUHUIUK $.

    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.)  (Revised by Mario Carneiro,
       8-May-2013.) $)
    mulpipq $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
          ( <. A , B >. .pQ <. C , D >. ) = <. ( A .N C ) , ( B .N D ) >. ) $=
      ( cnpi wcel wa cop cmpq co c1st cfv cmi c2nd cxp opelxpi op1stg oveqan12d
      wceq op2ndg mulpipq2 syl2an opeq12d eqtrd ) AEFBEFGZCEFDEFGZGZABHZCDHZIJZ
      UHKLZUIKLZMJZUHNLZUINLZMJZHZACMJZBDMJZHUEUHEEOZFUIUTFUJUQSUFABEEPCDEEPUHU
      IUAUBUGUMURUPUSUEUFUKAULCMABEEQCDEEQRUEUFUNBUODMABEETCDEETRUCUD $.
  $}

  ${
    $d x y z w v u t s f g h a b c d A $.
    $d x y z w v u t s f g h a b c d B $.
    $d x y z w v u t s f g h a b c d C $.
    $d x y z w v u t s f g h a b c d D $.
    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.) $)
    mulpipqqs $p |- ( ( ( A e. N. /\ B e. N. ) /\
                     ( C e. N. /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q .Q [ <. C , D >. ] ~Q ) =
                   [ <. ( A .N C ) , ( B .N D ) >. ] ~Q ) $=
      ( vz vu vw vv va vd cv cmi co wceq cnpi wcel wa mulclpi weq oveq12d vb vc
      vg vs vh vt vx vy vf cmpq cmq cnq ceq cop opelxpi syl2an an4s enqex enqer
      df-enq simpll simprr simplr simprl eqeq12d dfmpq2 opeq12d df-mqqs df-nqqs
      cxp mulcmpblnq oviec ) EKZFKZLMZGKZHKZLMZNIKZJKZLMZUAKZUBKZLMZNUCKZUDKZLM
      ZUEKZUFKZLMZNUGUHEGHFUFABCDUJUKULUMOUIUCUEACLMZBDLMZUNZVPVNLMZVQUIKZLMZUN
      VSWELMZWBWHLMZUNZWCWILMZVTWFLMZUNZUDIUAUBJAOPZCOPZBOPZDOPZWMOOVJZPZXCXDQW
      KOPWLOPXHXEXFQACRBDRWKWLOOUOUPUQVSOPZWEOPZWBOPZWHOPZWSXGPZXIXJQWQOPWROPXM
      XKXLQVSWERWBWHRWQWROOUOUPUQWCOPZWIOPZVTOPZWFOPZXBXGPZXNXOQWTOPXAOPXRXPXQQ
      WCWIRVTWFRWTXAOOUOUPUQURUSUGUHEGHFUTEISZGUASZQZHUBSZFJSZQZQZVOWAVRWDYEVMV
      SVNVTLXSXTYDVAYAYBYCVBTYEVPWBVQWCLXSXTYDVCYAYBYCVDTVEEUCSZGUESZQZHUFSZFUD
      SZQZQZVOWGVRWJYLVMWEVNWFLYFYGYKVAYHYIYJVBTYLVPWHVQWILYFYGYKVCYHYIYJVDTVEU
      GUHEGHFUIVFGISZHUASZQZFUCSZUIUESZQZQZWNWQWPWRYSVPVSVNWELYMYNYRVAYOYPYQVDT
      YSVQWBWOWHLYMYNYRVCYOYPYQVBTVGGUBSZHJSZQZFUFSZUIUDSZQZQZWNWTWPXAUUFVPWCVN
      WILYTUUAUUEVAUUBUUCUUDVDTUUFVQVTWOWFLYTUUAUUEVCUUBUUCUUDVBTVGVPANZVQBNZQZ
      VNCNZWODNZQZQZWNWKWPWLUUMVPAVNCLUUGUUHUULVAUUIUUJUUKVDTUUMVQBWODLUUGUUHUU
      LVCUUIUUJUUKVBTVGUGUHEIUAUBJVHVIVSWBWCVTWIWFWEWHVKVL $.
  $}

  ${
    $d A x y z w v u f $.  $d B x y z w v u f $.  $d C x y z w v u f $.
    $d D x y z w v u f $.
    $( Ordering of positive fractions in terms of positive integers.
       (Contributed by Jim Kingdon, 14-Sep-2019.) $)
    ordpipqqs $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
        ( [ <. A , B >. ] ~Q <Q [ <. C , D >. ] ~Q <->
          ( A .N D ) <N ( B .N C ) ) ) $=
      ( vx vy vf cv cmi co clti wbr ceq cnpi wcel wa cop cec wceq adantl vz cnq
      vu vw vv cltq enqex enqer df-nqqs df-ltnqqs enqeceq eqcom syl6bb bi2anan9
      wb oveq12 simplll simprlr simplrr mulcompig w3a mulasspig simprrl mulclpi
      caov4d simpllr simprll simplrl simprrr eqeq12d syl5ibr sylbid ltmpig syld
      caovcld caovord3d brecop ) UAHZUCHZIJZUDHZUEHZIJZKLZADIJZBCIJZKLZEFUAUDUE
      UCABCDMNUBUFUGUHUIEFUAUDUEUCUJVRNOZWANOZPZANOZBNOZPZPZWBNOZVSNOZPZCNOZDNO
      ZPZPZPZVRWAQMRABQMRSZWBVSQMRCDQMRSZPZVTWFIJZWCWEIJZSZWDWGUOXBXEVRBIJZWAAI
      JZSZVSCIJZWBDIJZSZPZXHWNXCXKXAXDXNVRWAABUKXAXDXMXLSXNWBVSCDUKXMXLULUMUNXO
      XHXBXIXLIJZXJXMIJZSXIXJXLXMIUPXBXFXPXGXQXBEFGVRVSBCNIWHWIWMXAUQZWNWOWPWTU
      RZWJWKWLXAUSZEHZNOZFHZNOZPZYAYCIJZYCYAIJSXBYAYCUTTZYBYDGHZNOVAZYFYHIJYAYC
      YHIJIJSXBYAYCYHVBTZWNWQWRWSVCZYEYFNOXBYAYCVDTZVEXBEFGWAWBADNIWHWIWMXAVFZW
      NWOWPWTVGZWJWKWLXAVHZYGYJWNWQWRWSVIZYLVEVJVKVLXBEFGVTWFWCWEKNIYIYAYCKLYHY
      AIJYHYCIJKLUOXBYAYCYHVMTXBEFVRVSNNNIYLXRXSVOXBEFBCNNNIYLXTYKVOXBEFWAWBNNN
      IYLYMYNVOYGXBEFADNNNIYLYOYPVOVPVNVQ $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of addition on positive fractions.  (Contributed by NM,
       29-Aug-1995.) $)
    addclnq $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A +Q B ) e. Q. ) $=
      ( vx vy vz vw cnq wcel wa cplq co cnpi ceq cv cop cec df-nqqs cmi mulclpi
      wceq cxp cqs oveq1 eleq1d oveq2 cpli addpipqqs addclpi an42s ad2ant2l jca
      syl2an opelxpi enqex ecelqsi 3syl eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIAB
      JKZLLUAZMUBZGCNZDNZOMPZENZFNZOMPZJKZVBHAVHJKZVBHUTVBHCDEFABLLMGQVEATVIVJV
      BVEAVHJUCUDVHBTVJUTVBVHBAJUEUDVCLHZVDLHZIVFLHZVGLHZIIZVIVCVGRKZVDVFRKZUFK
      ZVDVGRKZOZMPZVBVCVDVFVGUGVOVRLHZVSLHZIVTVAHWAVBHVOWBWCVKVNVLVMWBVKVNIVPLH
      VQLHWBVLVMIVCVGSVDVFSVPVQUHULUIVLVNWCVKVMVDVGSUJUKVRVSLLUMVAVTMUNUOUPUQUR
      QUS $.

    $( Closure of multiplication on positive fractions.  (Contributed by NM,
       29-Aug-1995.) $)
    mulclnq $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A .Q B ) e. Q. ) $=
      ( vx vy vz vw cnq wcel wa cmq co cnpi ceq cop cec df-nqqs wceq eleq1d cmi
      cv cxp oveq1 oveq2 mulpipqqs mulclpi anim12i an4s opelxpi ecelqsi eqeltrd
      cqs enqex 3syl 2ecoptocl syl6eleqr ) AGHBGHIABJKZLLUAZMUKZGCTZDTZNMOZETZF
      TZNMOZJKZURHAVDJKZURHUPURHCDEFABLLMGPVAAQVEVFURVAAVDJUBRVDBQVFUPURVDBAJUC
      RUSLHZUTLHZIVBLHZVCLHZIIZVEUSVBSKZUTVCSKZNZMOZURUSUTVBVCUDVKVLLHZVMLHZIZV
      NUQHVOURHVGVIVHVJVRVGVIIVPVHVJIVQUSVBUEUTVCUEUFUGVLVMLLUHUQVNMULUIUMUJUNP
      UO $.
  $}

  ${
    $d A a v w x $.
    $( Decomposition of a positive fraction into numerator and denominator.
       Lemma for ~ dmaddpq .  (Contributed by Jim Kingdon, 15-Sep-2019.) $)
    dmaddpqlem $p |- ( x e. Q. -> E. w E. v x = [ <. w , v >. ] ~Q ) $=
      ( va cv cop ceq cec wceq wex cnpi cxp cqs cnq wcel wrex elqsi 2eximi syl
      wa elxpi simpl anim1i 19.41vv sylibr simpr eceq1 adantr rexlimiva df-nqqs
      eqtrd eleq2s ) AEZBEZCEZFZGHZIZCJBJZUMKKLZGMZNUMVAOUMDEZGHZIZDUTPUSDUTUMG
      QVDUSDUTVBUTOZVDTZVBUPIZVDTZCJBJZUSVFVGCJBJZVDTVIVEVJVDVEVGUNKOUOKOTZTZCJ
      BJVJBCVBKKUAVLVGBCVGVKUBRSUCVGVDBCUDUEVHURBCVHUMVCUQVGVDUFVGVCUQIVDVBUPGU
      GUHUKRSUISUJUL $.

    $( Decomposition of a positive fraction into numerator and denominator.
       Similar to ~ dmaddpqlem but also shows that the numerator and
       denominator are positive integers.  (Contributed by Jim Kingdon,
       20-Sep-2019.) $)
    nqpi $p |- ( A e. Q. ->
        E. w E. v ( ( w e. N. /\ v e. N. ) /\ A = [ <. w , v >. ] ~Q ) ) $=
      ( va cv cnpi wcel cop ceq cec wceq wex cxp cqs cnq wrex elqsi elxpi syl
      wa anim1i 19.41vv sylibr simplr simpr eceq1 ad2antrr jca 2eximi rexlimiva
      eqtrd df-nqqs eleq2s ) AEZFGBEZFGTZCUNUOHZIJZKZTZBLALZCFFMZINZOCVCGCDEZIJ
      ZKZDVBPVADVBCIQVFVADVBVDVBGZVFTZVDUQKZUPTZVFTZBLALZVAVHVJBLALZVFTVLVGVMVF
      ABVDFFRUAVJVFABUBUCVKUTABVKUPUSVIUPVFUDVKCVEURVJVFUEVIVEURKUPVFVDUQIUFUGU
      KUHUISUJSULUM $.
  $}

  ${
    $d a x y z v w u f $.
    $( Domain of addition on positive fractions.  (Contributed by NM,
       24-Aug-1995.) $)
    dmaddpq $p |- dom +Q = ( Q. X. Q. ) $=
      ( vx vy vw vv vu vf vz cplq cdm cv cnq wcel copab ceq cec wceq wex sylibr
      wa cvv cxp cop cplpq co coprab dmoprab df-plqqs dmaddpqlem anim12i ee4anv
      dmeqi enqex ecexg ax-mp isseti ax-ia3 eximdv mpi 2eximi exrot3 syl 19.42v
      pm4.71i bitr4i opabbii 3eqtr4i df-xp eqtr4i ) HIZAJZKLZBJZKLZSZABMZKKUAVN
      VJCJDJUBZNOPZVLEJFJUBZNOPZSZGJVPVRUCUDZNOZPZSZFQEQZDQCQZSZABGUEZIWGGQZABM
      VIVOWGABGUFHWHABGCDEFUGUKVNWIABVNVNWFGQZSWIVNWJVNVTFQEQZDQCQZWJVNVQDQCQZV
      SFQEQZSWLVKWMVMWNACDUHBEFUHUIVQVSCDEFUJRWLWEGQZDQCQWJWKWOCDWKWDGQZFQEQWOV
      TWPEFVTWCGQWPGWBNTLWBTLULWATNUMUNUOVTWCWDGVTWCUPUQURUSWDGEFUTRUSWEGCDUTRV
      AVCVNWFGVBVDVEVFABKKVGVH $.

    $( Domain of multiplication on positive fractions.  (Contributed by NM,
       24-Aug-1995.) $)
    dmmulpq $p |- dom .Q = ( Q. X. Q. ) $=
      ( vx vy vw vv vu vf vz cmq cdm cv cnq wcel wa ceq cec wceq wex sylibr cvv
      copab cxp cop cmpq coprab dmoprab df-mqqs dmeqi dmaddpqlem anim12i ee4anv
      co enqex ecexg ax-mp isseti ax-ia3 eximdv mpi 2eximi exrot3 19.42v bitr4i
      syl pm4.71i opabbii 3eqtr4i df-xp eqtr4i ) HIZAJZKLZBJZKLZMZABTZKKUAVNVJC
      JDJUBZNOPZVLEJFJUBZNOPZMZGJVPVRUCUKZNOZPZMZFQEQZDQCQZMZABGUDZIWGGQZABTVIV
      OWGABGUEHWHABGCDEFUFUGVNWIABVNVNWFGQZMWIVNWJVNVTFQEQZDQCQZWJVNVQDQCQZVSFQ
      EQZMWLVKWMVMWNACDUHBEFUHUIVQVSCDEFUJRWLWEGQZDQCQWJWKWOCDWKWDGQZFQEQWOVTWP
      EFVTWCGQWPGWBNSLWBSLULWASNUMUNUOVTWCWDGVTWCUPUQURUSWDGEFUTRUSWEGCDUTRVCVD
      VNWFGVAVBVEVFABKKVGVH $.
  $}

  ${
    $d A w x y z $.  $d B w z $.
    $( Addition of positive fractions is commutative.  (Contributed by Jim
       Kingdon, 15-Sep-2019.) $)
    addcomnqg $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A +Q B ) = ( B +Q A ) ) $=
      ( vx vy vz vw cnq cv cmi co cpli cplq cnpi addpipqqs wcel wa wceq mulclpi
      mulcompig ancoms ceq df-nqqs oveqan12d an42s ad2ant2rl ad2ant2lr ad2ant2l
      addcompig syl2anc eqtrd ecovicom ) CDEFABGCHZFHZIJZDHZEHZIJZKJZLUAMUOUMIJ
      ZUPUOIJZUMULIJZKJZUMUOIJZUBULUOUPUMNUPUMULUONULMOZUOMOZPUPMOZUMMOZPPZURVA
      UTKJZVBVDVGVEVFURVIQVDVGPVEVFPUNVAUQUTKULUMSUOUPSUCUDVHVAMOZUTMOZVIVBQVDV
      GVJVEVFVGVDVJUMULRTUEVEVFVKVDVGVFVEVKUPUORTUFVAUTUHUIUJVEVGUSVCQVDVFUOUMS
      UGUK $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f g h $.
    $( Addition of positive fractions is associative.  (Contributed by Jim
       Kingdon, 16-Sep-2019.) $)
    addassnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( ( A +Q B ) +Q C ) = ( A +Q ( B +Q C ) ) ) $=
      ( vx cv cmi co cnpi cpli addpipqqs wcel mulclpi addclpi syl2anc mulcompig
      wa wceq adantl ancoms mulasspig vy vz vw vv vu vf vg cnq cplq ceq df-nqqs
      vh ad2ant2rl ad2ant2lr ad2ant2l simp1l simp2r simp3r simp1r simp2l simp3l
      jca addasspig syl3anc distrpig 3coml sylan2 3impa 3adant2 3adant1 oveq12d
      w3a 3eqtr3d caovdilemd 3adant1l 3adant2l 3adant3r oveq2d 3eqtr4d 3adant3l
      ecoviass ) DUAUBUCUDUEABCUHUIUCEZUEEZFGZUJHDEZWBFGZUAEZUBEZFGZIGZWGWBFGZW
      JWCFGZWKUDEZFGZIGZWKWCFGZWEWDFGZWGWHWCFGZWBWMFGZIGZFGZIGZWGWDFGZWTUKWEWGW
      HWBJWHWBWMWCJWJWKWMWCJWEWGWTWDJWEHKZWGHKZPZWHHKZWBHKZPZPZWJHKZWKHKZXJWFHK
      ZWIHKZXKXDXHXMXEXGWEWBLUMXEXGXNXDXHWGWHLUNWFWIMNXEXHXLXDXGWGWBLUOVBXIWMHK
      ZWCHKZPZPZWTHKZWDHKZXRWRHKZWSHKZXSXGXPYAXHXOWHWCLZUMXHXOYBXGXPWBWMLZUNWRW
      SMNXHXPXTXGXOWBWCLZUOVBXFXIXQVLZWQWGWRFGZIGZWGWSFGZIGZWQYGYIIGZIGZWOXBYFW
      QHKZYGHKZYIHKZYJYLQYFXDXTYMXDXEXIXQUPZYFXHXPXTXFXGXHXQUQZXFXIXOXPURZYENWE
      WDLNYFXEYAYNXDXEXIXQUSZYFXGXPYAXFXGXHXQUTZYRYCNZWGWRLNYFXEYBYOYSYFXHXOYBY
      QXFXIXOXPVAYDNZWGWSLNWQYGYIVCVDYFWLYHWNYIIYFUFUGULWEWGWBWHHIFWCUFEZHKZUGE
      ZHKZPZUUCUUEFGZUUEUUCFGQYFUUCUUEORUUDUUFULEZHKZVLZUUCUUEIGZUUIFGZUUCUUIFG
      ZUUEUUIFGZIGZQYFUUKUUIUULFGZUUIUUCFGZUUIUUEFGZIGZUUMUUPUUJUUDUUFUUQUUTQUU
      IUUCUUEVEVFUUDUUFUUJUUQUUMQZUUJUUGUVAUUGUUJUULHKUVAUUCUUEMUUIUULOVGSVHUUK
      UURUUNUUSUUOIUUDUUJUURUUNQZUUFUUJUUDUVBUUIUUCOSVIUUFUUJUUSUUOQZUUDUUJUUFU
      VCUUIUUEOSVJVKVMRUUKUUHUUIFGUUCUUOFGQYFUUCUUEUUITRUUGUUHHKYFUUCUUELRYPYSY
      QYTYRVNXFXIXOWNYIQZXPXFXHXOUVDXGXEXHXOUVDXDWGWBWMTVOVPVQVKYFXAYKWQIYFXEYA
      YBXAYKQYSUUAUUBWGWRWSVEVDVRVSXFXIXPWPXCQZXOXFXHXPUVEXGXEXHXPUVEXDWGWBWCTV
      OVPVTWA $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Multiplication of positive fractions is commutative.  (Contributed by
       Jim Kingdon, 17-Sep-2019.) $)
    mulcomnqg $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A .Q B ) = ( B .Q A ) ) $=
      ( vx vy vz vw cnq cv cmi co cmq ceq cnpi df-nqqs mulpipqqs wcel mulcompig
      wceq ad2ant2r ad2ant2l ecovicom ) CDEFABGCHZEHZIJZKLMDHZFHZIJZUCUBIJZUFUE
      IJZNUBUEUCUFOUCUFUBUEOUBMPZUCMPZUDUHRUEMPZUFMPZUBUCQSULUMUGUIRUJUKUEUFQTU
      A $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f g h $.
    $( Multiplication of positive fractions is associative.  (Contributed by
       Jim Kingdon, 17-Sep-2019.) $)
    mulassnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( ( A .Q B ) .Q C ) = ( A .Q ( B .Q C ) ) ) $=
      ( vx vy vz vw vv vu cv cmi co cnpi mulpipqqs wa mulclpi ad2ant2r ad2ant2l
      wcel jca cnq cmq ceq df-nqqs 3adant1r 3adant2r 3adant3r 3adant1l 3adant2l
      wceq mulasspig 3adant3l ecoviass ) DEFGHIABCUAUBGJZIJZKLZUCMDJZFJZKLZEJZU
      NKLZUSHJZKLZVAUOKLZUQURVBKLZKLZUTUPKLZVEUDUQUTURUNNURUNVBUONUSVAVBUONUQUT
      VEUPNUQMSZUTMSZOZURMSZUNMSZOZOUSMSZVAMSZVHVKVNVIVLUQURPQVIVLVOVHVKUTUNPRT
      VMVBMSZUOMSZOOVEMSZUPMSZVKVPVRVLVQURVBPQVLVQVSVKVPUNUOPRTVJVMVPVCVFUJZVQV
      JVKVPVTVLVHVKVPVTVIUQURVBUKUEUFUGVJVMVQVDVGUJZVPVJVLVQWAVKVIVLVQWAVHUTUNU
      OUKUHUIULUM $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Lemma for distributive law: cancellation of common factor.  (Contributed
       by NM, 2-Sep-1995.)  (Revised by Mario Carneiro, 8-May-2013.) $)
    mulcanenq $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      <. ( A .N B ) , ( A .N C ) >. ~Q <. B , C >. ) $=
      ( vx vy vz cnpi wcel w3a cmi co cop ceq wbr wceq simp1 cv adantl mulclpi
      wa simp2 simp3 mulcompig mulasspig caov32d anim12i simpr an4s jca enqbreq
      wb 3impdi syl mpbird ) AGHZBGHZCGHZIZABJKZACJKZLBCLMNZUSCJKUTBJKOZURDEFAB
      CGJUOUPUQPUOUPUQUAUOUPUQUBDQZGHZEQZGHZTVCVEJKZVEVCJKOURVCVEUCRVDVFFQZGHIV
      GVHJKVCVEVHJKJKOURVCVEVHUDRUEURUSGHZUTGHZTZUPUQTZTZVAVBUKUOUPUQVMUOUPTZUO
      UQTZTVKVLVNVIVOVJABSACSUFUOUOUPUQVLUOUOTVLUGUHUIULUSUTBCUJUMUN $.
  $}

  ${
    $( Lemma for distributive law: cancellation of common factor.  (Contributed
       by Jim Kingdon, 17-Sep-2019.) $)
    mulcanenqec $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
        [ <. ( A .N B ) , ( A .N C ) >. ] ~Q = [ <. B , C >. ] ~Q ) $=
      ( cnpi wcel w3a cmi co cop ceq cxp wer enqer a1i mulcanenq erthi ) ADEBDE
      CDEFZABGHACGHIBCIJDDKZRJLQMNABCOP $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $d f g h u v w x y z $.
    $( Multiplication of positive fractions is distributive.  (Contributed by
       Jim Kingdon, 17-Sep-2019.) $)
    distrnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( A .Q ( B +Q C ) ) = ( ( A .Q B ) +Q ( A .Q C ) ) ) $=
      ( vf vg vh ceq cnpi cv cmi co cpli wcel cop cec w3a wceq mulclpi adantl
      wa vx vy vz vw vv vu cnq cplq cmq df-nqqs addpipqqs mulpipqqs jca anim12i
      simpl an12 3anass bitr4i sylib an4s mulcanenqec syl eqtr4d addclpi syl2an
      an42s ad2ant2l an42 anbi2i 3bitr4i ancoms distrpig syl3an simp1r 3ad2ant2
      simp1l 3ad2ant3 syl2anc syl3anc oveq1d adantr simpll simplr simprl simprr
      mulasspig mulcompig caov4d eqtr3d 3adant3 3adant2 oveq12d 3eqtr3d ecovidi
      sylbir ) UAUBUCUDUEUFABCUGUHGHUIUBIZUAIZUCIZUFIZJKZUDIZUEIZJKZLKZJKZJKZWP
      WPXAWSJKZJKZJKZWQWRJKZWPWSJKZJKZWPXAJKZWQXBJKZJKZLKZXMXKJKZXDXGXJXMXNXKUJ
      WRXAXBWSUKWQHMZWPHMZTZXDHMZXGHMZTTZWQWPNGOXDXGNGOUIKXEXHNGOZXFXINGOZWQWPX
      DXGULYCXSXEHMZXHHMZPZYEYDQXRYAXSYBYHXRYATZXSYBTZTYFXSYGTZTZYHYIYFYJYKWQXD
      RYJXSYGXSYBUOWPXGRUMUNYLXSYFYGTTYHYFXSYGUPXSYFYGUQURUSUTWPXEXHVAVBVCWQWPW
      RXAULWQWPXBWSULXJXMXNXKUKWRHMZXAHMZTZXBHMZWSHMZTZTZYAYBYMYQYNYPYAYMYQTZWT
      HMZXCHMZYAYNYPTZWRWSRZXAXBRZWTXCVDZVEVFYNYQYBYMYPXAWSRZVGUMXRYMXSYNXJHMZX
      MHMZTXRYMTUUHXSYNTUUIWQWRRWPXARUNUTXRYPXSYQXNHMZXKHMZTXRYPTUUJXSYQTUUKWQX
      BRWPWSRUNUTXTYOYRPZXTYTUUCPZXFXPQXTYTUUCTZTXTYSTUUMUULUUNYSXTYMYQYNYPVHVI
      XTYTUUCUQXTYOYRUQVJZUUMWPWQJKZXDJKZUUPWTJKZUUPXCJKZLKZXFXPXTUUPHMZYTUUAUU
      CUUBUUQUUTQXSXRUVAWPWQRVKUUDUUEUUPWTXCVLVMUUMXSXRYAUUQXFQXRXSYTUUCVNZXRXS
      YTUUCVPUUMUUAUUBYAYTXTUUAUUCUUDVOUUCXTUUBYTUUEVQUUFVRWPWQXDWFVSUUMUURXLUU
      SXOLXTYTUURXLQUUCXTYTTZWQWPJKZWTJKZUURXLXTUVEUURQYTXTUVDUUPWTJWQWPWGVTWAU
      VCDEFWQWPWRWSHJXRXSYTWBXRXSYTWCXTYMYQWDDIZHMZEIZHMZTZUVFUVHJKZUVHUVFJKQZU
      VCUVFUVHWGZSUVGUVIFIZHMPZUVKUVNJKUVFUVHUVNJKJKQZUVCUVFUVHUVNWFZSXTYMYQWEZ
      UVJUVKHMZUVCUVFUVHRZSWHWIWJXTUUCUUSXOQYTXTUUCTZDEFWPWQXAXBHJXRXSUUCWCXRXS
      UUCWBXTYNYPWDZUVJUVLUWAUVMSUVOUVPUWAUVQSXTYNYPWEUVJUVSUWAUVTSWHWKWLWMWOUU
      LUUMXIXQQUUOUUMWPWPJKXGJKZXIXQUUMXSXSYBUWCXIQUVBUVBUUMYNYQYBXTUUCYNYTUWBW
      KZXTYTYQUUCUVRWJZUUGVRWPWPXGWFVSUUMDEFWPWPXAWSHJUVBUVBUWDUVJUVLUUMUVMSUVO
      UVPUUMUVQSUWEUVJUVSUUMUVTSWHWIWOWN $.
  $}

  ${
    $( The equivalence class of ratio 1.  (Contributed by NM, 4-Mar-1996.) $)
    1qec $p |- ( A e. N. -> 1Q = [ <. A , A >. ] ~Q ) $=
      ( cnpi wcel c1q c1o cop ceq cec df-1nqqs cmi wceq 1pi mulcanenqec mp3an23
      co wa mulidpi jca opeq12 eceq1 3syl eqtr3d syl5eq ) ABCZDEEFGHZAAFZGHZIUD
      AEJOZUHFZGHZUEUGUDEBCZUKUJUEKLLAEEMNUDUHAKZULPUIUFKUJUGKUDULULAQZUMRUHUHA
      ASUIUFGTUAUBUC $.
  $}

  ${
    $d x y A $.
    $( Multiplication identity element for positive fractions.  (Contributed by
       NM, 3-Mar-1996.) $)
    mulidnq $p |- ( A e. Q. -> ( A .Q 1Q ) = A ) $=
      ( vx vy cv cop ceq cec c1q cmq co wceq cnpi cnq df-nqqs c1o cmi mulcompig
      wcel 1pi mpan oveq1 id eqeq12d wa df-1nqqs oveq2i mulpipqqs syl5eq adantr
      mpanr12 adantl opeq12d eceq1d mulcanenqec mp3an1 3eqtr2d ecoptocl ) BDZCD
      ZEFGZHIJZUTKAHIJZAKBCALLFMNUTAKZVAVBUTAUTAHIUAVCUBUCURLRZUSLRZUDZVAUROPJZ
      USOPJZEZFGZOURPJZOUSPJZEZFGZUTVFVAUTOOEFGZIJZVJHVOUTIUEUFVFOLRZVQVPVJKSSU
      RUSOOUGUJUHVFVMVIFVFVKVGVLVHVDVKVGKZVEVQVDVRSOURQTUIVEVLVHKZVDVQVEVSSOUSQ
      TUKULUMVQVDVEVNUTKSOURUSUNUOUPUQ $.
  $}

  ${
    $d x y z A $.
    $( Existence of positive fraction reciprocal.  (Contributed by Jim Kingdon,
       20-Sep-2019.) $)
    recexnq $p |- ( A e. Q. -> E. y ( y e. Q. /\ ( A .Q y ) = 1Q ) ) $=
      ( vx vz cv cnq wcel cop ceq cec cmq co c1q wceq wa wex df-nqqs eqeq1d syl
      cnpi oveq1 anbi2d exbidv cxp cqs opelxpi ancoms enqex syl6eleqr mulcompig
      ecelqsi cmi opeq2d eceq1d mulclpi 1qec mulpipqqs an42s 3eqtr4rd jca eleq1
      anidms oveq2 anbi12d spcegv sylc ecoptocl ) AEZFGZCEZDEZHIJZVHKLZMNZOZAPZ
      VIBVHKLZMNZOZAPCDBTTIFQVLBNZVOVSAVTVNVRVIVTVMVQMVLBVHKUARUBUCVJTGZVKTGZOZ
      VKVJHZIJZFGZWFVLWEKLZMNZOZVPWCWETTUDZIUEZFWCWDWJGZWEWKGWBWAWLVKVJTTUFUGWJ
      WDIUHUKSQUIZWCWFWHWMWCVJVKULLZWNHZIJZWNVKVJULLZHZIJZMWGWCWOWRIWCWNWQWNVJV
      KUJUMUNWCWNTGMWPNVJVKUOWNUPSWCWGWSNZWAWBWBWAWTVJVKVKVJUQURVBUSUTVOWIAWEFV
      HWENZVIWFVNWHVHWEFVAXAVMWGMVHWEVLKVCRVDVEVFVG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y z w v $.
    $( Relationship between reciprocal and multiplication on positive
       fractions.  (Contributed by Jim Kingdon, 19-Sep-2019.) $)
    recmulnqg $p |- ( ( A e. Q. /\ B e. Q. ) ->
      ( ( *Q ` A ) = B <-> ( A .Q B ) = 1Q ) ) $=
      ( vy vx vz vw vv cnq wcel wa crq cfv wceq cmq co c1q oveq1 eqeq1d copab
      cv anbi2d eleq1 oveq2 anbi12d wex wmo weu recexnq 1nq mulcomnqg mulassnqg
      mulidnq caovimo eu5 sylanbrc w3a df-rq 3anass opabbii eqtri fvopab3g ibar
      wb adantl bitr4d ) AHIZBHIZJAKLBMVGABNOZPMZJZVICTZHIZDTZVKNOZPMZJZVLAVKNO
      ZPMZJVJDCABHHKVMAMZVOVRVLVSVNVQPVMAVKNQRUAVKBMZVLVGVRVIVKBHUBVTVQVHPVKBAN
      UCRUDVMHIZVPCUEVPCUFVPCUGCVMUHEFGCVMPHNUIETZFTZUJWBWCGTUKWBULUMVPCUNUOKWA
      VLVOUPZDCSWAVPJZDCSDCUQWDWEDCWAVLVOURUSUTVAVGVIVJVCVFVGVIVBVDVE $.
  $}

  ${
    $d A x y z w $.
    $( Closure law for positive fraction reciprocal.  (Contributed by NM,
       6-Mar-1996.)  (Revised by Mario Carneiro, 8-May-2013.) $)
    recclnq $p |- ( A e. Q. -> ( *Q ` A ) e. Q. ) $=
      ( vy cnq wcel cv cmq co c1q wceq wa wex crq cfv recexnq recmulnqg biimpar
      wi eleq1a ad2antlr mpd expl exlimdv ) ACDZBEZCDZAUDFGHIZJZBKALMZCDZBANUCU
      GUIBUCUEUFUIUCUEJZUFJUHUDIZUIUJUKUFAUDOPUEUKUIQUCUFUDCUHRSTUAUBT $.
  $}

  $( A positive fraction times its reciprocal is 1.  (Contributed by NM,
     6-Mar-1996.)  (Revised by Mario Carneiro, 8-May-2013.) $)
  recidnq $p |- ( A e. Q. -> ( A .Q ( *Q ` A ) ) = 1Q ) $=
    ( cnq wcel crq cfv cmq co c1q wceq recclnq wa eqid recmulnqg mpbii mpdan )
    ABCZADEZBCZAQFGHIZAJPRKQQISQLAQMNO $.

  $( Reciprocal of reciprocal of positive fraction.  (Contributed by NM,
     26-Apr-1996.)  (Revised by Mario Carneiro, 29-Apr-2013.) $)
  recrecnq $p |- ( A e. Q. -> ( *Q ` ( *Q ` A ) ) = A ) $=
    ( cnq wcel crq cfv wceq cmq c1q recclnq mulcomnqg mpancom recidnq recmulnqg
    co eqtrd wb mpbird ) ABCZADEZDEAFZSAGNZHFZRUAASGNZHSBCZRUAUCFAIZSAJKALOUDRT
    UBPUESAMKQ $.

  $( Reciprocal of positive fraction one.  (Contributed by Jim Kingdon,
     29-Dec-2019.) $)
  rec1nq $p |- ( *Q ` 1Q ) = 1Q $=
    ( c1q crq cfv cmq co cnq wcel wceq 1nq recclnq ax-mp mulcomnqg mulidnq mp2b
    mp2an recidnq 3eqtr3i ) ABCZADEZARDEZRARFGZAFGZSTHUBUAIAJZKIRALOUBUASRHIUCR
    MNUBTAHIAPKQ $.

  ${
    $d A u v w z $.  $d B u v $.
    $( Trichotomy for positive fractions.  (Contributed by Jim Kingdon,
       21-Sep-2019.) $)
    nqtri3or $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( A <Q B \/ A = B \/ B <Q A ) ) $=
      ( vz vw vu vv cv cop ceq cltq wbr wceq w3o cnpi 3orbi123d wcel wa co clti
      cmi cec cnq df-nqqs breq1 eqeq1 breq2 mulclpi ad2ant2rl ad2ant2lr syl2anc
      eqeq2 pitri3or ordpipqqs enqeceq ancoms mulcompig bitr4d mpbird 2ecoptocl
      wb breq12d ) CGZDGZHIUAZEGZFGZHIUAZJKZVDVGLZVGVDJKZMZAVGJKZAVGLZVGAJKZMAB
      JKZABLZBAJKZMCDEFABNNIUBUCVDALVHVLVIVMVJVNVDAVGJUDVDAVGUEVDAVGJUFOVGBLVLV
      OVMVPVNVQVGBAJUFVGBAUKVGBAJUDOVBNPZVCNPZQZVENPZVFNPZQZQZVKVBVFTRZVCVETRZS
      KZWEWFLZWFWESKZMZWDWENPZWFNPZWJVRWBWKVSWAVBVFUGUHVSWAWLVRWBVCVEUGUIWEWFUL
      UJWDVHWGVIWHVJWIVBVCVEVFUMVBVCVEVFUNWDVJVEVCTRZVFVBTRZSKZWIWCVTVJWOUTVEVF
      VBVCUMUOWDWFWMWEWNSVSWAWFWMLVRWBVCVEUPUIVRWBWEWNLVSWAVBVFUPUHVAUQOURUS $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Less-than for positive fractions is decidable.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    ltdcnq $p |- ( ( A e. Q. /\ B e. Q. ) -> DECID A <Q B ) $=
      ( vx vy vz vw cnq wcel wa cv cnpi cop ceq cec wceq wex cltq wbr wdc nqpi
      anim12i ee4anv sylibr co clti mulclpi ltdcpi syl2an an42s ordpipqqs dcbid
      cmi mpbird ad2ant2r wb breq12 ad2ant2l exlimivv syl ) AGHZBGHZIZCJZKHZDJZ
      KHZIZAVCVELMNZOZIZEJZKHZFJZKHZIZBVKVMLMNZOZIZIZFPEPZDPCPZABQRZSZVBVJDPCPZ
      VRFPEPZIWAUTWDVAWECDATEFBTUAVJVRCDEFUBUCVTWCCDVSWCEFVSWCVHVPQRZSZVGVOWGVI
      VQVGVOIZWGVCVMULUDZVEVKULUDZUERZSZVDVNVFVLWLVDVNIWIKHWJKHWLVFVLIVCVMUFVEV
      KUFWIWJUGUHUIWHWFWKVCVEVKVMUJUKUMUNVSWBWFVIVQWBWFUOVGVOAVHBVPQUPUQUKUMURU
      RUS $.
  $}

  ${
    $d a b c d e f x y z w $.
    $( 'Less than' is a strict ordering on positive fractions.  (Contributed by
       NM, 19-Feb-1996.)  (Revised by Mario Carneiro, 4-May-2013.) $)
    ltsonq $p |- <Q Or Q. $=
      ( vx vy vz cnq cltq wtru cv wcel wbr ceq cnpi wceq wa cmi co clti mulclpi
      wb adantl syl2anc vw va vb vc vd ve vf wor cop cec df-nqqs breq12d notbid
      wn ltsopi ltrelpi soirri ordpipqqs anidms mulcompig breq1d bitrd ecoptocl
      id mtbiri w3a wi breq1 anbi1d imbi12d breq2 anbi12d imbi1d anbi2d 3adant3
      simp1l simp2r simp1r simp2l simp3r ltmpig syl3anc adantrr breqtrd 3adant1
      biimpa adantr simp3l adantrl sotri mulasspig caov411d eqtrd caov4d oveq1d
      caovcomd mpbird 3adant2 ex 3ecoptocl ispod w3o nqtri3or issod trud ) DEUH
      FABDEFABCDEAGZDHZXFXFEIZUNZFCGZUAGZUIJUJZXLEIZUNXICUAXFKKJDUKXLXFLZXMXHXN
      XLXFXLXFEXNVDZXOULUMXJKHZXKKHMZXMXKXJNOZXRPIZXRPKUOUPUQXQXMXJXKNOZXRPIZXS
      XQXMYARXJXKXJXKURUSXQXTXRXRPXJXKUTVAVBVEVCSXGBGZDHZXJDHVFXFYBEIZYBXJEIZMZ
      XFXJEIZVGZFUBGZUCGZUIJUJZUDGZUEGZUIJUJZEIZYNUFGZUGGZUIJUJZEIZMZYKYREIZVGX
      FYNEIZYSMZXFYREIZVGYDYBYREIZMZUUDVGYHUBUCUDUEUFUGXFYBXJKJDUKYKXFLZYTUUCUU
      AUUDUUGYOUUBYSYKXFYNEVHVIYKXFYREVHVJYNYBLZUUCUUFUUDUUHUUBYDYSUUEYNYBXFEVK
      YNYBYREVHVLVMYRXJLZUUFYFUUDYGUUIUUEYEYDYRXJYBEVKVNYRXJXFEVKVJYIKHZYJKHZMZ
      YLKHZYMKHZMZYPKHZYQKHZMZVFZYTUUAUUSYTMZUUAYIYQNOZYJYPNOZPIZUUTUVCYLYMNOZU
      VANOZUVDUVBNOZPIZUUTUVGYLYQNOZYIYMNOZNOZYJYLNOZYMYPNOZNOZPIZUUTUVJUVKUVHN
      OZPIUVOUVMPIZUVNUUTUVJUVHUVKNOZUVOPUUSYOUVJUVQPIZYSUUSYOUVRUUSYOUVIUVKPIZ
      UVRUULUUOYOUVSRUURYIYJYLYMURVOUUSUVIKHZUVKKHZUVHKHZUVSUVRRUUSUUJUUNUVTUUJ
      UUKUUOUURVPZUULUUMUUNUURVQZYIYMQTZUUSUUKUUMUWAUUJUUKUUOUURVRZUULUUMUUNUUR
      VSZYJYLQTZUUSUUMUUQUWBUWGUULUUOUUPUUQVTZYLYQQTZUVIUVKUVHWAWBVBWFWCUUSUVQU
      VOLZYTUUSUWBUWAUWKUWJUWHUVHUVKUTTWGWDUUSYSUVPYOUUSYSUVPUUSYSUVHUVLPIZUVPU
      UOUURYSUWLRUULYLYMYPYQURWEUUSUWBUVLKHZUWAUWLUVPRUWJUUSUUNUUPUWMUWDUULUUOU
      UPUUQWHZYMYPQTUWHUVHUVLUVKWAWBVBWFWIUVJUVOUVMPKUOUPWJTUUSUVGUVNRYTUUSUVEU
      VJUVFUVMPUUSUVEUVIUVHNOUVJUUSABCYLYMYIYQKNUWGUWDUWCXFKHZYBKHZMZXFYBNOZYBX
      FNOLUUSXFYBUTSZUWOUWPXPVFUWRXJNOXFYBXJNONOLUUSXFYBXJWKSZUWIUWQUWRKHUUSXFY
      BQSZWLUUSABUVIUVHKNUWSUWEUWJWPWMUUSUVFYLYJNOZUVLNOUVMUUSABCYLYMYJYPKNUWGU
      WDUWFUWSUWTUWNUXAWNUUSUXBUVKUVLNUUSABYLYJKNUWSUWGUWFWPWOWMULWGWQUUSUVCUVG
      RZYTUUSUVAKHZUVBKHZUVDKHZUXCUUSUUJUUQUXDUWCUWIYIYQQTUUSUUKUUPUXEUWFUWNYJY
      PQTUUSUUMUUNUXFUWGUWDYLYMQTUVAUVBUVDWAWBWGWQUUSUUAUVCRZYTUULUURUXGUUOYIYJ
      YPYQURWRWGWQWSWTSXAXGYCMYDXFYBLYBXFEIXBFXFYBXCSXDXE $.
  $}

  $( Trichotomy for positive integers.  (Contributed by Jim Kingdon,
     21-Sep-2019.) $)
  nqtric $p |- ( ( A e. Q. /\ B e. Q. ) ->
      ( A <Q B <-> -. ( A = B \/ B <Q A ) ) ) $=
    ( cnq cltq ltsonq nqtri3or sotritric ) CABDEABFG $.

  ${
    $d A x y z w v u f g h $.  $d B x y z w v u f g h $.
    $d C x y z w v u f g h $.
    $( Ordering property of addition for positive fractions.  Proposition
       9-2.6(ii) of [Gleason] p. 120.  (Contributed by Jim Kingdon,
       22-Sep-2019.) $)
    ltanqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( A <Q B <-> ( C +Q A ) <Q ( C +Q B ) ) ) $=
      ( vf vg vh cv cltq wbr cplq co wb cnpi wceq wcel cmi cpli mulclpi syl2anc
      clti vx vy vz vw vv vu cop ceq cec cnq df-nqqs breq1 oveq2 breq1d bibi12d
      breq2 breq2d oveq1 breq12d bibi2d w3a addclpi adantl simp3l simp1r simp3r
      wa simp1l caovcld simp2r ordpipqqs syl22anc simp3 simp1 addpipqqs 3adant3
      simp2l simp2 ltmpig syl3anc ltapig mulcompig mulasspig distrpig caovdir2d
      caov4d caovdid caov411d oveq1d eqtrd 3bitr4d 3bitrd 3bitr4rd 3ecoptocl )
      UAGZUBGZUGUHUIZUCGZUDGZUGUHUIZHIZUEGZUFGZUGUHUIZWQJKZXDWTJKZHIZLAWTHIZXDA
      JKZXFHIZLABHIZXIXDBJKZHIZLXKCAJKZCBJKZHIZLUAUBUCUDUEUFABCMUHUJUKWQANZXAXH
      XGXJWQAWTHULXQXEXIXFHWQAXDJUMUNUOWTBNZXHXKXJXMWTBAHUPXRXFXLXIHWTBXDJUMUQU
      OXDCNZXMXPXKXSXIXNXLXOHXDCAJURXDCBJURUSUTWOMOZWPMOZVGZWRMOZWSMOZVGZXBMOZX
      CMOZVGZVAZXBWPPKZXCWOPKZQKZXCWPPKZUGUHUIZXBWSPKZXCWRPKZQKZXCWSPKZUGUHUIZH
      IZYLYRPKZYMYQPKZTIZXGXAYIYLMOYMMOZYQMOYRMOZYTUUCLYIDEYJYKMMMQDGZMOZEGZMOZ
      VGZUUFUUHQKMOYIUUFUUHVBVCZYIYFYAYJMOZYBYEYFYGVDZXTYAYEYHVEZXBWPRSZYIYGXTY
      KMOZYBYEYFYGVFZXTYAYEYHVHZXCWORSZVIYIYGYAUUDUUQUUNXCWPRSZYIDEYOYPMMMQUUKY
      IDEXBWSMMMPUUJUUFUUHPKZMOYIUUFUUHRVCZUUMYBYCYDYHVJZVIZYIYGYCYPMOZUUQYBYCY
      DYHVQZXCWRRSZVIYIYGYDUUEUUQUVCXCWSRSZYLYMYQYRVKVLYIXEYNXFYSHYIYHYBXEYNNYB
      YEYHVMZYBYEYHVNXBXCWOWPVOSYIYHYEXFYSNUVIYBYEYHVRXBXCWRWSVOSUSYIXAWOWSPKZW
      PWRPKZTIZXCXCPKZUVJPKZUVMUVKPKZTIZUUCYBYEXAUVLLYHWOWPWRWSVKVPYIUVJMOZUVKM
      OZUVMMOZUVLUVPLYIXTYDUVQUURUVCWOWSRSYIYAYCUVRUUNUVFWPWRRSYIYGYGUVSUUQUUQX
      CXCRSUVJUVKUVMVSVTYIYKYRPKZYMYPPKZTIZYJYRPKZUVTQKZUWCUWAQKZTIZUVPUUCYIUVT
      MOZUWAMOZUWCMOZUWBUWFLYIUUPUUEUWGUUSUVHYKYRRSYIUUDUVEUWHUUTUVGYMYPRSYIUUL
      UUEUWIUUOUVHYJYRRSUVTUWAUWCWAVTYIUVNUVTUVOUWATYIDEFXCXCWOWSMPUUQUUQUURUUJ
      UVAUUHUUFPKNYIUUFUUHWBVCZUUGUUIFGZMOVAZUVAUWKPKUUFUUHUWKPKPKNYIUUFUUHUWKW
      CVCZUVCUVBWFYIDEFXCXCWPWRMPUUQUUQUUNUWJUWMUVFUVBWFUSYIUUAUWDUUBUWETYIDEFY
      JYKYRMQPUWLUUFUUHUWKQKPKUVAUUFUWKPKQKNYIUUFUUHUWKWDVCZUUOUUSUVHUUKUWJWEYI
      UUBYMYOPKZUWAQKUWEYIDEFYMYOYPMQPQMUWNUUTUVDUVGWGYIUWOUWCUWAQYIDEFXCWPXBWS
      MPUUQUUNUUMUWJUWMUVCUVBWHWIWJUSWKWLWMWN $.

    $( Ordering property of multiplication for positive fractions.  Proposition
       9-2.6(iii) of [Gleason] p. 120.  (Contributed by Jim Kingdon,
       22-Sep-2019.) $)
    ltmnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
      ( A <Q B <-> ( C .Q A ) <Q ( C .Q B ) ) ) $=
      ( vf vg cv cop ceq cec cltq wbr cmq co wb cnpi wceq wcel wa cmi caovcld
      vx vy vz vw vv vu vh cnq df-nqqs breq1 oveq2 breq1d bibi12d breq2 breq12d
      breq2d oveq1 bibi2d w3a clti mulclpi adantl simp1l simp2r simp1r 3ad2ant3
      simp2l ltmpig syl3anc simp3l simp3r mulcompig caov4d oveq1d ancoms bitr4d
      mulasspig ordpipqqs 3adant3 syl22anc 3bitr4d mulpipqqs 3adant2 3ecoptocl
      eqtrd 3adant1 ) UAFZUBFZGHIZUCFZUDFZGHIZJKZUEFZUFFZGHIZWILMZWPWLLMZJKZNAW
      LJKZWPALMZWRJKZNABJKZXAWPBLMZJKZNXCCALMZCBLMZJKZNUAUBUCUDUEUFABCOHUHUIWIA
      PZWMWTWSXBWIAWLJUJXIWQXAWRJWIAWPLUKULUMWLBPZWTXCXBXEWLBAJUNXJWRXDXAJWLBWP
      LUKUPUMWPCPZXEXHXCXKXAXFXDXGJWPCALUQWPCBLUQUOURWGOQZWHOQZRZWJOQZWKOQZRZWN
      OQZWOOQZRZUSZWMWNWGSMZWOWHSMZGHIZWNWJSMZWOWKSMZGHIZJKZWSYAWGWKSMZWHWJSMZU
      TKZYBYFSMZYCYESMZUTKZWMYHYAYKWNWOSMZYISMZYOYJSMZUTKZYNYAYIOQYJOQYOOQZYKYR
      NYADEWGWKOOOSDFZOQZEFZOQZRZYTUUBSMZOQYAYTUUBVAVBZXLXMXQXTVCZXNXOXPXTVDZTY
      ADEWHWJOOOSUUFXLXMXQXTVEZXNXOXPXTVGZTXTXNYSXQWNWOVAVFYIYJYOVHVIYAYLYPYMYQ
      UTYADEUGWNWGWOWKOSXNXQXRXSVJZUUGXNXQXRXSVKZUUDUUEUUBYTSMPYAYTUUBVLVBZUUAU
      UCUGFZOQUSUUEUUNSMYTUUBUUNSMSMPYAYTUUBUUNVQVBZUUHUUFVMYAYMWOWNSMZYJSMZYQY
      ADEUGWOWHWNWJOSUULUUIUUKUUMUUOUUJUUFVMXTXNUUQYQPZXQXSXRUURXSXRRUUPYOYJSWO
      WNVLVNVOVFWEUOVPXNXQWMYKNXTWGWHWJWKVRVSYAYBOQYCOQYEOQYFOQYHYNNYADEWNWGOOO
      SUUFUUKUUGTYADEWOWHOOOSUUFUULUUITYADEWNWJOOOSUUFUUKUUJTYADEWOWKOOOSUUFUUL
      UUHTYBYCYEYFVRVTWAYAWQYDWRYGJXNXTWQYDPZXQXTXNUUSWNWOWGWHWBVOWCXQXTWRYGPZX
      NXTXQUUTWNWOWJWKWBVOWFUOVPWD $.
  $}

  $( Ordering property of addition for positive fractions.  One direction of
     ~ ltanqg .  (Contributed by Jim Kingdon, 9-Dec-2019.) $)
  ltanqi $p |- ( ( A <Q B /\ C e. Q. ) -> ( C +Q A ) <Q ( C +Q B ) ) $=
    ( cltq wbr cnq wcel wa cplq co simpl ltrelnq brel ltanqg 3expa sylan mpbid
    wb ) ABDEZCFGZHSCAIJCBIJDEZSTKSAFGZBFGZHTSUARZABFFDLMUBUCTUDABCNOPQ $.

  $( Ordering property of multiplication for positive fractions.  One direction
     of ~ ltmnqg .  (Contributed by Jim Kingdon, 9-Dec-2019.) $)
  ltmnqi $p |- ( ( A <Q B /\ C e. Q. ) -> ( C .Q A ) <Q ( C .Q B ) ) $=
    ( cltq wbr cnq wcel wa cmq co simpl ltrelnq brel ltmnqg 3expa sylan mpbid
    wb ) ABDEZCFGZHSCAIJCBIJDEZSTKSAFGZBFGZHTSUARZABFFDLMUBUCTUDABCNOPQ $.

  $( Ordering property of addition for positive fractions.  (Contributed by Jim
     Kingdon, 7-Dec-2019.) $)
  lt2addnq $p |- ( ( ( A e. Q. /\ B e. Q. ) /\ ( C e. Q. /\ D e. Q. ) ) ->
      ( ( A <Q B /\ C <Q D ) -> ( A +Q C ) <Q ( B +Q D ) ) ) $=
    ( cnq wcel wa cltq wbr cplq co ltanqg 3expa adantrr wceq addcomnqg ad2ant2r
    wb ancoms ad2ant2lr breq12d bitrd adantll anbi12d ltsonq ltrelnq syl6bi
    sotri ) AEFZBEFZGZCEFZDEFZGZGZABHIZCDHIZGACJKZBCJKZHIZUSBDJKZHIZGURVAHIUOUP
    UTUQVBUOUPCAJKZCBJKZHIZUTUKULUPVERZUMUIUJULVFABCLMNUOVCURVDUSHUIULVCUROZUJU
    MULUIVGCAPSQUJULVDUSOZUIUMULUJVHCBPSTUAUBUJUNUQVBRZUIUNUJVIULUMUJVICDBLMSUC
    UDURUSVAHEUEUFUHUG $.

  $( One is less than two (one plus one).  (Contributed by NM, 13-Mar-1996.)
     (Revised by Mario Carneiro, 10-May-2013.) $)
  1lt2nq $p |- 1Q <Q ( 1Q +Q 1Q ) $=
    ( c1o cop ceq cec cmi co cpli c1q cplq cltq wbr clti cnpi wcel wceq oveq12i
    1pi 3brtr4i wb df-1nqqs 1lt2pi mulidpi ax-mp mulclpi mp2an ltmpig ordpipqqs
    addclpi mp3an mpbi mp4an mpbir addpipqqs eqtri ) AABCDZAAEFZUPGFZUPBCDZHHHI
    FZJUOURJKZAUPEFAUQEFLKZUPUQLKZVAAAAGFUPUQLUAAMNZUPAOQAUBUCZUPAUPAGVDVDPRUPM
    NZUQMNZVCVBVASVCVCVEQQAAUDUEZVEVEVFVGVGUPUPUHUEZQUPUQAUFUIUJVCVCVFVEUTVASQQ
    VHVGAAUQUPUGUKULTUSUOUOIFZURHUOHUOITTPVCVCVCVCVIUROQQQQAAAAUMUKUNR $.

  ${
    $d A r s t $.  $d B r s t $.
    $( The sum of two fractions is greater than one of them.  (Contributed by
       NM, 14-Mar-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    ltaddnq $p |- ( ( A e. Q. /\ B e. Q. ) -> A <Q ( A +Q B ) ) $=
      ( vr vs vt cnq wcel wa cplq co cltq wbr c1q cmq wb addclnq wceq adantl cv
      1nq 1lt2nq mp2an ltmnqg mp3an12 mpbii mulidnq mp3an23 oveq12d eqtrd simpr
      3brtr3d anidms simpl ltanqg syl3anc mpbid addcomnqg w3a addassnqg caov12d
      distrnqg mpbird ) AFGZBFGZHZAABIJZKLZBAIJZBVFIJZKLZVEVFABBIJZIJZVHVIKVEBV
      KKLZVFVLKLZVDVMVCVDBMNJZBMMIJZNJZBVKKVDMVPKLZVOVQKLZUAMFGZVPFGZVDVRVSOTVT
      VTWATTMMPUBMVPBUCUDUEBUFZVDVQVOVOIJZVKVDVTVTVQWCQTTBMMVAUGVDVOBVOBIWBWBUH
      UIUKRVEVDVKFGZVCVMVNOVCVDUJZVDWDVCVDWDBBPULRVCVDUMZBVKAUNUOUPABUQVECDEABB
      FIWFWEWECSZFGZDSZFGZHWGWIIJZWIWGIJQVEWGWIUQRWHWJESZFGURWKWLIJWGWIWLIJIJQV
      EWGWIWLUSRUTUKVEVCVFFGVDVGVJOWFABPWEAVFBUNUOVB $.
  $}

  ${
    $d f g h x y z w v u A $.  $d x y z w v u B $.
    $( Ordering on positive fractions in terms of existence of sum.  Definition
       in Proposition 9-2.6 of [Gleason] p. 119.  (Contributed by Jim Kingdon,
       23-Sep-2019.) $)
    ltexnqq $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( A <Q B <-> E. x e. Q. ( A +Q x ) = B ) ) $=
      ( vu cnq wcel wa cltq wbr cv cplq co wceq wrex cop ceq cec cnpi cmi syl
      vy vz vw vv vf vg vh df-nqqs breq1 oveq1 rexbidv imbi12d breq2 eqeq2 clti
      wi eqeq1d ordpipqqs cpli wex wb mulclpi an42s ltexpi df-rex syl6bb simpll
      anim12i adantr adantrr addpipqqs simplll simpllr simplrr mulcompig adantl
      simpr w3a mulasspig caov12d oveq1d syl2anc simprl distrpig syl3anc eqtr4d
      jca32 opeq1d eceq1d ad2ant2rl addclpi sylan 3jca mulcanenqec eqtrd 3anass
      biimpri adantll anim1i adantrl opeq1 sylan9eqr 3eqtrd cxp opelxpi ecelqsi
      cqs enqex syl6eleqr oveq2 rspcedv mpd ex exlimdv sylbid 2ecoptocl ltaddnq
      syl5ibcom rexlimdva impbid ) BEFZCEFZGBCHIZBAJZKLZCMZAENZUAJZUBJZOPQZUCJZ
      UDJZOPQZHIZYJYDKLZYMMZAENZUPBYMHIZYEYMMZAENZUPYCYGUPUAUBUCUDBCRRPEUHYJBMZ
      YNYRYQYTYJBYMHUIUUAYPYSAEUUAYOYEYMYJBYDKUJUQUKULYMCMZYRYCYTYGYMCBHUMUUBYS
      YFAEYMCYEUNUKULYHRFZYIRFZGZYKRFZYLRFZGZGZYNYHYLSLZYIYKSLZUOIZYQYHYIYKYLUR
      UUIUULDJZRFZUUJUUMUSLZUUKMZGZDUTZYQUUIUULUUPDRNZUURUUIUUJRFZUUKRFZGZUULUU
      SVAUUCUUGUUDUUFUVBUUCUUGGUUTUUDUUFGUVAYHYLVBZYIYKVBVHVCDUUJUUKVDTUUPDRVEV
      FUUIUUQYQDUUIUUQYQUUIUUQGZYJUUMYIYLSLZOZPQZKLZYMMZYQUVDUVHYHUVESLZYIUUMSL
      ZUSLZYIUVESLZOZPQZUUOUVEOZPQZYMUVDUUEUUNUVERFZGZGZUVHUVOMUUIUUNUVTUUPUUIU
      UNGZUUEUUNUVRUUEUUHUUNVGUUIUUNVQUWAUUDUUGGZUVRUUIUWBUUNUUEUUDUUHUUGUUCUUD
      VQUUFUUGVQVHVIYIYLVBZTZWGVJYHYIUUMUVEVKTUVDUVOYIUUOSLZUVMOZPQZUVQUVDUVNUW
      FPUVDUVLUWEUVMUVDUVLYIUUJSLZUVKUSLZUWEUVDUVJUWHUVKUSUVDUEUFUGYHYIYLRSUUCU
      UDUUHUUQVLZUUCUUDUUHUUQVMZUUEUUFUUGUUQVNZUEJZRFZUFJZRFZGUWMUWOSLZUWOUWMSL
      MUVDUWMUWOVOVPUWNUWPUGJZRFVRUWQUWRSLUWMUWOUWRSLSLMUVDUWMUWOUWRVSVPVTWAUVD
      UUDUUTUUNUWEUWIMUWKUVDUUCUUGUUTUWJUWLUVCWBUUIUUNUUPWCZYIUUJUUMWDWEWFWHWIU
      VDUUDUUORFZUVRVRZUWGUVQMUUIUUNUXAUUPUWAUUDUWTUVRUUCUUDUUHUUNVMUUIUUTUUNUW
      TUUCUUGUUTUUDUUFUVCWJUUJUUMWKWLUWDWMVJYIUUOUVEWNTWOUVDUUDUUFUUGVRZUUPGZUV
      QYMMUUIUUPUXCUUNUUIUXBUUPUUDUUHUXBUUCUXBUUDUUHGUUDUUFUUGWPWQWRWSWTUUPUXBU
      VQUUKUVEOZPQYMUUPUVPUXDPUUOUUKUVEXAWIYIYKYLWNXBTXCUVDYPUVIAUVGEUVDUVGRRXD
      ZPXGZEUVDUUNUVRUVGUXFFZUWSUVDUUDUUGUVRUWKUWLUWCWBUVSUVFUXEFUXGUUMUVERRXEU
      XEUVFPXHXFTWBUHXIYDUVGMZYPUVIVAUVDUXHYOUVHYMYDUVGYJKXJUQVPXKXLXMXNXOXOXPY
      AYGYCUPYBYAYFYCAEYAYDEFGBYEHIYFYCBYDXQYECBHUMXRXSVIXT $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Ordering on positive fractions in terms of existence of sum.
       (Contributed by Jim Kingdon, 30-Apr-2020.) $)
    ltexnqi $p |- ( A <Q B -> E. x e. Q. ( A +Q x ) = B ) $=
      ( cnq wcel wa cltq cv cplq co wceq wrex ltrelnq brel ltexnqq biimpd mpcom
      wbr ) BDECDEFZBCGRZBAHIJCKADLZBCDDGMNSTUAABCOPQ $.
  $}

  ${
    $d A x $.
    $( One-half of any positive fraction is a fraction.  (Contributed by Jim
       Kingdon, 23-Sep-2019.) $)
    halfnqq $p |- ( A e. Q. -> E. x e. Q. ( x +Q x ) = A ) $=
      ( cnq wcel c1q cplq co crq cmq wceq 1nq mp2an ax-mp distrnqg mp3an oveq1i
      addclnq oveq2i mulidnq 3eqtr3i cfv wrex recclnq recidnq oveq12i mulassnqg
      eqtri mulcomnqg eqtr3i syl2anc mp2b mp3an23 3eqtr3a mulclnq mpan2 oveq12d
      cv wb id eqeq1d adantl rspcedv mpd ) BCDZBEEFGZHUAZIGZVGFGZBJZAUQZVJFGZBJ
      ZACUBVDBVFVFFGZIGZBEIGVHBVMEBIVEVMIGZVFIGZVEVFIGZVMEVOVEVFIVOVQVQFGZVEVEC
      DZVFCDZVTVOVRJECDZWAVSKKEEQLZVSVTWBVEUCZMZWDVEVFVFNOVQEVQEFVSVQEJWBVEUDMZ
      WEUEUGPVMVQIGZVMEIGZVPVMVQEVMIWERVMVEIGZVFIGZWFVPVMCDZVSVTWIWFJVTVTWJWDWD
      VFVFQZLZWBWDVMVEVFUFOWHVOVFIWJVSWHVOJWLWBVMVEUHLPUIVSWJWGVMJWBVSVTVTWJWCW
      CWKUJVMSUKTWETRVDVTVTVNVHJWDWDBVFVFNULBSUMVDVLVIAVGCVDVTVGCDWDBVFUNUOVJVG
      JZVLVIURVDWMVKVHBWMVJVGVJVGFWMUSZWNUPUTVAVBVC $.

    $( One-half of any positive fraction exists.  Lemma for Proposition
       9-2.6(i) of [Gleason] p. 120.  (Contributed by NM, 16-Mar-1996.)
       (Revised by Mario Carneiro, 10-May-2013.) $)
    halfnq $p |- ( A e. Q. -> E. x ( x +Q x ) = A ) $=
      ( cnq wcel cv cplq co wceq wrex wex halfnqq rexex syl ) BCDAEZNFGBHZACIOA
      JABKOACLM $.
  $}

  ${
    $d x A $.
    $( There is no smallest positive fraction.  (Contributed by Jim Kingdon,
       24-Sep-2019.) $)
    nsmallnqq $p |- ( A e. Q. -> E. x e. Q. x <Q A ) $=
      ( cnq wcel cv cplq co wceq wrex cltq wbr halfnqq ltaddnq anidms syl5ibcom
      breq2 reximia syl ) BCDAEZSFGZBHZACISBJKZACIABLUAUBACSCDZSTJKZUAUBUCUDSSM
      NTBSJPOQR $.

    $( There is no smallest positive fraction.  (Contributed by NM,
       26-Apr-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    nsmallnq $p |- ( A e. Q. -> E. x x <Q A ) $=
      ( cnq wcel cv cltq wbr wrex wex nsmallnqq rexex syl ) BCDAEBFGZACHMAIABJM
      ACKL $.
  $}

  ${
    $d A x y $.
    $( There is a number which is less than half of any positive fraction.  The
       case where ` A ` is one is Lemma 11.4 of [BauerTaylor], p. 50, and they
       use the word "approximate half" for such a number (since there may be
       constructions, for some structures other than the rationals themselves,
       which rely on such an approximate half but do not require division by
       two as seen at ~ halfnqq ).  (Contributed by Jim Kingdon,
       25-Nov-2019.) $)
    subhalfnqq $p |- ( A e. Q. -> E. x e. Q. ( x +Q x ) <Q A ) $=
      ( vy cnq wcel cv cplq co cltq wbr wa wex wrex halfnqq df-rex eximi sylibr
      wceq syl wb adantr ancli sylbi anbi2i exbii exdistr simprl simpll ltaddnq
      sylib syl2anc breq2 ad2antlr mpbid breq1 ad2antll mpbird jca exlimiv ) BD
      EZAFZDEZVAVAGHZBIJZKZALZVDADMUTCFZDEZVGVGGHZBRZKZVBVCVGRZKZKZALZCLZVFUTVK
      VMALZKZCLZVPUTVKVLADMZKZCLZVSUTVJCDMZWBCBNWCVKCLWBVJCDOVKWACVKVTVHVTVJAVG
      NUAUBPUCSWAVRCVTVQVKVLADOUDUEUJVKVMCAUFQVOVFCVNVEAVNVBVDVKVBVLUGVNVDVGBIJ
      ZVNVGVIIJZWDVNVHVHWEVHVJVMUHZWFVGVGUIUKVJWEWDTVHVMVIBVGIULUMUNVLVDWDTVKVB
      VCVGBIUOUPUQURPUSSVDADOQ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( There exists a number between any two positive fractions.  Proposition
       9-2.6(i) of [Gleason] p. 120.  (Contributed by Jim Kingdon,
       24-Sep-2019.) $)
    ltbtwnnqq $p |- ( A <Q B <-> E. x e. Q. ( A <Q x /\ x <Q B ) ) $=
      ( vy vz cltq wbr cv wa cnq wrex wcel cplq wceq ltrelnq brel simpld sylan2
      co adantr ltexnqi wex nsmallnq ltaddnq ancoms ltanqi breq2 adantl addclnq
      wb mpbid breq1 anbi12d rspcedv mp2and 3impa 3coml 3expia exlimdv impancom
      syl5 rexlimdva sylc ltsonq sotri rexlimivw impbii ) BCFGZBAHZFGZVICFGZIZA
      JKZVHBJLZBDHZMSZCNZDJKVMVHVNCJLBCJJFOPQDBCUAVNVQVMDJVNVQVOJLZVMVREHZVOFGZ
      EUBVNVQIZVMEVOUCWAVTVMEVNVQVTVMVTVNVQVMVTVNVQVMVTVNIZVQIZBBVSMSZFGZWDCFGZ
      VMWBWEVQVNVTWEVTVNVSJLZWEVTWGVRVSVOJJFOPQZBVSUDRUETWCWDVPFGZWFWBWIVQVSVOB
      UFTVQWIWFUJWBVPCWDFUGUHUKWCVLWEWFIZAWDJWBWDJLZVQVNVTWKVTVNWGWKWHBVSUIRUET
      VIWDNZVLWJUJWCWLVJWEVKWFVIWDBFUGVIWDCFULUMUHUNUOUPUQURUSVAUTVBVCVLVHAJBVI
      CFJVDOVEVFVG $.

    $( There exists a number between any two positive fractions.  Proposition
       9-2.6(i) of [Gleason] p. 120.  (Contributed by NM, 17-Mar-1996.)
       (Revised by Mario Carneiro, 10-May-2013.) $)
    ltbtwnnq $p |- ( A <Q B <-> E. x ( A <Q x /\ x <Q B ) ) $=
      ( cv cltq wbr wa cnq wrex wcel wex df-rex ltbtwnnqq ltrelnq simprd adantr
      brel pm4.71ri exbii 3bitr4i ) BADZEFZUACEFZGZAHIUAHJZUDGZAKBCEFUDAKUDAHLA
      BCMUDUFAUDUEUBUEUCUBBHJUEBUAHHENQOPRST $.
  $}

  ${
    $d A w x z $.
    $( For any fraction, there is an integer that is greater than it.  This is
       also known as the "archimedean property".  (Contributed by Jim Kingdon,
       1-Dec-2019.) $)
    archnqq $p |- ( A e. Q. -> E. x e. N. A <Q [ <. x , 1o >. ] ~Q ) $=
      ( vz vw wcel cnpi wa ceq wceq c1o cltq wbr co adantr clti comu 1onn sylan
      com c0 cnq cv cop cec wex wrex nqpi cpli 1pi addclpi mpan2 cmi pinn nnacl
      coa sylancl nnm1 syl wss elni2 word nnord ordgt0ge1 biimpa sylbi nnaword1
      adantl wb simprbi sseldd nnmword mp3anl1 syl21anc mpbid eqsstr3d 0lt1o wi
      nna0 nnaordi mpi eqeltrrd mulclpi ltpiord syldan mulpiord addpiord oveq1d
      eqtrd eleq2d bitrd mpbird mulcompig breq2d jctir ordpipqqs mulidpi breq1d
      mpan mpdan breq1 opeq1 eceq1d rspcev syl2anc exlimivv ) BUAECUBZFEZDUBZFE
      ZGZBXFXHUCHUDZIZGZDUECUEBAUBZJUCZHUDZKLZAFUFZCDBUGXMXRCDXMXFJUHMZFEZBXSJU
      CZHUDZKLZXRXJXTXLXGXTXIXGJFEZXTUIXFJUJUKZNZNXMYCXKYBKLZXJYGXLXJYGXFXHXSUL
      MZOLZXJXFXSXHULMZOLZYIXJYKXFXFJUOMZXHPMZEZXJYLYMXFXJYLYLJPMZYMXJYLSEZYOYL
      IXGYPXIXGXFSEZJSEZYPXFUMZQXFJUNUPNZYLUQURXJJXHUSZYOYMUSZXIUUAXGXIXHSEZTXH
      EZGUUAXHUTUUCXHVAZUUDUUAXHVBUUEUUDUUAXHVCVDRVEVGXJUUCYPTYLEZUUAUUBVHZXIUU
      CXGXHUMVGYTXGUUFXIXGXFYLTXGYQYRXFYLUSYSQXFJVFUPXGYQTXFEXFUTVIVJNYRUUCYPUU
      FUUGQJXHYLVKVLVMVNVOXGXFYLEZXIXGYQUUHYSYQXFTUOMZXFYLXFVRYQTJEZUUIYLEZVPYR
      YQUUJUUKVQQTJXFVSWRVTWAURNVJXJYKXFYJEZYNXGXIYJFEZYKUULVHXGXTXIUUMYEXSXHWB
      RXFYJWCWDXJYJYMXFXJYJXSXHPMZYMXGXTXIYJUUNIYEXSXHWERXJXSYLXHPXGXSYLIZXIXGY
      DUUOUIXFJWFUKNWGWHWIWJWKXJYJYHXFOXGXTXIYJYHIYEXSXHWLRWMVNXJYGXFJULMZYHOLZ
      YIXJXTYDGYGUUQVHXJXTYDYFUIWNXFXHXSJWOWSXJUUPXFYHOXGUUPXFIXIXFWPNWQWJWKNXL
      YCYGVHXJBXKYBKWTVGWKXQYCAXSFXNXSIZXPYBBKUURXOYAHXNXSJXAXBWMXCXDXEUR $.
  $}

  ${
    $d A x $.  $d B x $.
    $( A version of the Archimedean property.  This variation is "stronger"
       than ~ archnqq in the sense that we provide an integer which is larger
       than a given rational ` A ` even after being multiplied by a second
       rational ` B ` .  (Contributed by Jim Kingdon, 30-Nov-2019.) $)
    prarloclemarch $p |- ( ( A e. Q. /\ B e. Q. ) ->
        E. x e. N. A <Q ( [ <. x , 1o >. ] ~Q .Q B ) ) $=
      ( cnq wcel wa cmq c1o ceq cltq wbr cnpi wrex mulclnq syl2anc syl3anc wceq
      co syl mulcomnqg crq cfv cv cop cec recclnq sylan2 archnqq simpll cxp cqs
      wb 1pi opelxpi mpan2 enqex ecelqsi df-nqqs syl6eleqr adantl simplr ltmnqg
      c1q mulassnqg recidnq oveq2d mulidnq eqtrd breq12d bitrd biimprd reximdva
      3eqtrd mpd ) BDEZCDEZFZBCUAUBZGRZAUCZHUDZIUEZJKZALMZBWBCGRZJKZALMVQVSDEZW
      DVPVOVRDEZWGCUFZBVRNUGAVSUHSVQWCWFALVQVTLEZFZWFWCWKWFVRBGRZVRWEGRZJKZWCWK
      VOWEDEZWHWFWNULVOVPWJUIZWKWBDEZVPWOWJWQVQWJWBLLUJZIUKZDWJWAWREZWBWSEWJHLE
      WTUMVTHLLUNUOWRWAIUPUQSURUSUTZVOVPWJVAZWBCNOZWKVPWHXBWISZBWEVRVBPWKWLVSWM
      WBJWKWHVOWLVSQXDWPVRBTOWKWMWEVRGRZWBWKWHWOWMXEQXDXCVRWETOWKXEWBCVRGRZGRZW
      BVCGRZWBWKWQVPWHXEXGQXAXBXDWBCVRVDPWKVPXGXHQXBVPXFVCWBGCVEVFSWKWQXHWBQXAW
      BVGSVMVHVIVJVKVLVN $.
  $}

  ${
    $d A x z $.  $d B x z $.  $d C x z $.
    $( Like ~ prarloclemarch but the integer must be at least two, and there is
       also ` B ` added to the right hand side.  These details follow
       straightforwardly but are chosen to be helpful in the proof of
       ~ prarloc .  (Contributed by Jim Kingdon, 25-Nov-2019.) $)
    prarloclemarch2 $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        E. x e. N. ( 1o <N x /\
          A <Q ( B +Q ( [ <. x , 1o >. ] ~Q .Q C ) ) ) ) $=
      ( cnq wcel c1o ceq cmq co cltq wbr clti wa cnpi c2o 1pi syl wceq c0 vz cv
      w3a cop cec cplq wrex prarloclemarch 3adant2 cpli coa com pinn csuc elexi
      sucid df-2o eleqtrri wss 2onn nnaword2 mpan sseld o1p1e2 addpiord addclpi
      mpi mp2an eqeltrri mpan2 eleqtrrd ltpiord mpbird adantl adantrr cmi 0lt1o
      wb nna0 con0 wi 1on onsuci ontr1 ax-mp nnaordi eqeltrrd mulidpi mulcompig
      mpdan eqtr3d 3brtr4d ordpipqqs mpanl2 mpanr2 cxp cqs opelxpi ecelqsi 3syl
      df-nqqs syl6eleqr ltmnqg syl3an1 syl3an2 3anidm12 ancoms mulcomnqg sylan2
      enqex mpbid 3brtr3d 3ad2antl3 ltsonq ltrelnq sotri ex mpd mulclnq ltaddnq
      sylan simpl2 syl2anc breq2d simpr breq2 opeq1 eceq1d oveq1d oveq2d rspcev
      addcomnqg anbi12d mp2and rexlimddv ) BEFZCEFZDEFZUCZBUAUBZGUDZHUEZDIJZKLZ
      GAUBZMLZBCUUEGUDZHUEZDIJZUFJZKLZNZAOUGZUAOYPYRUUDUAOUGYQUABDUHUIYSYTOFZUU
      DNZNZGYTPUJJZMLZBCUUQGUDZHUEZDIJZUFJZKLZUUMYSUUNUURUUDUUNUURYSUUNUURGUUQF
      ZUUNGYTPUKJZUUQUUNYTULFZGUVEFZYTUMZUVFGPFUVGGGUNZPGGOQUOUPZUQURUVFPUVEGPU
      LFZUVFPUVEUSUTPYTVAVBVCVGRUUNPOFZUUQUVESGGUKJZPOVDGGUJJZUVMOGOFZUVOUVNUVM
      SQQGGVEVHUVOUVOUVNOFQQGGVFVHVIVIZYTPVEVJZVKUUNUUQOFZUURUVDVRZUUNUVLUVRUVP
      YTPVFVJZUVOUVRUVSQGUUQVLVBRVMVNVOUUPBUVACUFJZKLZUVCUUPBUVAKLZUVAUWAKLZUWB
      UUPUUCUVAKLZUWCYSUUNUWEUUDYRYPUUNUWEYQYRUUNNZDUUBIJZDUUTIJZUUCUVAKUWFUUBU
      UTKLZUWGUWHKLZUUNUWIYRUUNUWIYTGVPJZGUUQVPJZMLZUUNYTUUQUWKUWLMUUNYTUUQMLZY
      TUUQFZUUNYTUVEUUQUUNUVFYTUVEFUVHUVFYTTUKJZYTUVEYTVSUVFTPFZUWPUVEFZTUVIPTG
      FZGUVIFZTUVIFZVQUVJUVIVTFUWSUWTNUXAWAGWBWCTGUVIWDWEVHUQURUVKUVFUWQUWRWAUT
      TPYTWFVBVGWGRUVQVKUUNUVRUWNUWOVRUVTYTUUQVLWJVMYTWHUUNUUQGVPJZUWLUUQUUNUVR
      UXBUWLSZUVTUVRUVOUXCQUUQGWIVJRUUNUVRUXBUUQSUVTUUQWHRWKWLUUNUVRUWIUWMVRZUV
      TUUNUVRUVOUXDQUUNUVOUVRUVONUXDQYTGUUQGWMWNWOWJVMVNUUNYRUWIUWJVRZUUNYRUXEU
      UNUUNUUTEFZYRUXEUUNUUTOOWPZHWQZEUUNUVRUUSUXGFZUUTUXHFUVTUVRUVOUXIQUUQGOOW
      RVJUXGUUSHXJWSWTXAXBZUUNUUBEFZUXFYRUXEUUNUUBUXHEUUNUUAUXGFZUUBUXHFUUNUVOU
      XLQYTGOOWRVJUXGUUAHXJWSRXAXBZUUBUUTDXCXDXEXFXGXKUUNYRUXKUWGUUCSUXMDUUBXHX
      IUUNYRUXFUWHUVASUXJDUUTXHXIXLXMVOUUOUWEUWCWAZYSUUDUXNUUNUUDUWEUWCBUUCUVAK
      EXNXOXPXQVNVNXRYSUUNUWDUUDYSUUNNZUVAEFZYQUWDYRYPUUNUXPYQUUNYRUXPUUNUXFYRU
      XPUXJUUTDXSYAXGXMZYPYQYRUUNYBZUVACXTYCVOBUVAUWAKEXNXOXPYCYSUUNUWBUVCVRUUD
      UXOUWAUVBBKUXOUXPYQUWAUVBSUXQUXRUVACYLYCYDVOXKYSUUNUURUVCNZUUMWAZUUDUXOUU
      NUVRUXTYSUUNYEUVTUVRUXSUUMUULUXSAUUQOUUEUUQSZUUFUURUUKUVCUUEUUQGMYFUYAUUJ
      UVBBKUYAUUIUVACUFUYAUUHUUTDIUYAUUGUUSHUUEUUQGYGYHYIYJYDYMYKXQWTVOYNYO $.
  $}

  ${
    $d A x y $.  $d B y $.
    $( Ordering property of reciprocal for positive fractions.  For a
       simplified version of the forward implication, see ~ ltrnqi .
       (Contributed by Jim Kingdon, 29-Dec-2019.) $)
    ltrnqg $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( A <Q B <-> ( *Q ` B ) <Q ( *Q ` A ) ) ) $=
      ( cnq wcel cltq wbr crq cfv cmq co recclnq mulclnq wceq mulcomnqg syl2anc
      mulassnqg syl3anc c1q recidnq oveq2d wa syl2an ltmnqg simpl adantr adantl
      mpd3an3 3eqtr2d mulidnq syl sylan9eq eqtrd simpr sylan9eqr 3eqtrd breq12d
      wb bitrd ) ACDZBCDZUAZABEFZAGHZBGHZIJZAIJZVEBIJZEFZVDVCEFUSUTVECDZVBVHUQU
      SVCCDZVDCDZVIUTAKZBKZVCVDLUBZABVEUCUGVAVFVDVGVCEVAVFVDAVCIJZIJZVDVAVFAVEI
      JZVOVDIJZVPVAVIUSVFVQMVNUSUTUDZVEANOVAUSVJVKVRVQMVSUSVJUTVLUEZUTVKUSVMUFZ
      AVCVDPQVAVOCDZVKVRVPMVAUSVJWBVSVTAVCLOWAVOVDNOUHUSUTVPVDRIJZVDUSVORVDIAST
      UTVKWCVDMVMVDUIUJUKULVAVGVCVDBIJZIJZVCBVDIJZIJZVCVAVJVKUTVGWEMVTWAUSUTUMZ
      VCVDBPQVAWDWFVCIVAVKUTWDWFMWAWHVDBNOTUTUSWGVCRIJZVCUTWFRVCIBSTUSVJWIVCMVL
      VCUIUJUNUOUPUR $.

    $( Ordering property of reciprocal for positive fractions.  For the
       converse, see ~ ltrnqg .  (Contributed by Jim Kingdon, 24-Sep-2019.) $)
    ltrnqi $p |- ( A <Q B -> ( *Q ` B ) <Q ( *Q ` A ) ) $=
      ( cltq wbr crq cfv cnq wcel wa wb ltrelnq brel ltrnqg syl ibi ) ABCDZBEFA
      EFCDZPAGHBGHIPQJABGGCKLABMNO $.
  $}

  ${
    $d A l u $.
    $( The canonical embedding of positive integers into positive fractions.
       (Contributed by Jim Kingdon, 26-Apr-2020.) $)
    nnnq $p |- ( A e. N. -> [ <. A , 1o >. ] ~Q e. Q. ) $=
      ( cnpi wcel c1o cop ceq cec cxp cqs cnq 1pi opelxpi mpan2 ecelqsi df-nqqs
      enqex syl syl6eleqr ) ABCZADEZFGZBBHZFIZJSTUBCZUAUCCSDBCUDKADBBLMUBTFPNQO
      R $.
  $}

  ${
    $( Ordering of positive integers via ` <N ` or ` <Q ` is equivalent.
       (Contributed by Jim Kingdon, 3-Oct-2020.) $)
    ltnnnq $p |- ( ( A e. N. /\ B e. N. ) -> ( A <N B <->
        [ <. A , 1o >. ] ~Q <Q [ <. B , 1o >. ] ~Q ) ) $=
      ( cnpi wcel wa c1o cop ceq cec cltq wbr cmi co clti wb simpl wceq mulidpi
      1pi syl simpr ordpipqqs syl22anc mulcompig sylancr eqtrd breq12d bitr2d
      a1i ) ACDZBCDZEZAFGHIBFGHIJKZAFLMZFBLMZNKZABNKULUJFCDZUKUQUMUPOUJUKPZUQUL
      SUIZUJUKUAZUSAFBFUBUCULUNAUOBNULUJUNAQURARTULUOBFLMZBULUQUKUOVAQSUTFBUDUE
      ULUKVABQUTBRTUFUGUH $.
  $}

  ${
    $d x y z w v u f $.
    $( Define equivalence relation for non-negative fractions.  This is a
       "temporary" set used in the construction of complex numbers, and is
       intended to be used only by the construction.  (Contributed by Jim
       Kingdon, 2-Nov-2019.) $)
    df-enq0 $a |- ~Q0 = { <. x , y >. | ( ( x e. ( _om X. N. ) /\
                   y e. ( _om X. N. ) ) /\ E. z E. w E. v E. u
                   ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
                   ( z .o u ) = ( w .o v ) ) ) } $.

    $( Define class of non-negative fractions.  This is a "temporary" set used
       in the construction of complex numbers, and is intended to be used only
       by the construction.  (Contributed by Jim Kingdon, 2-Nov-2019.) $)
    df-nq0 $a |- Q0. = ( ( _om X. N. ) /. ~Q0 ) $.

    $( Define non-negative fraction constant 0.  This is a "temporary" set used
       in the construction of complex numbers, and is intended to be used only
       by the construction.  (Contributed by Jim Kingdon, 5-Nov-2019.) $)
    df-0nq0 $a |- 0Q0 = [ <. (/) , 1o >. ] ~Q0 $.

    $( Define addition on non-negative fractions.  This is a "temporary" set
       used in the construction of complex numbers, and is intended to be used
       only by the construction.  (Contributed by Jim Kingdon, 2-Nov-2019.) $)
    df-plq0 $a |- +Q0 = { <. <. x , y >. , z >. | ( ( x e. Q0. /\ y e. Q0. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
           z = [ <. ( ( w .o f ) +o ( v .o u ) ) ,
             ( v .o f ) >. ] ~Q0 ) ) } $.

    $( Define multiplication on non-negative fractions.  This is a "temporary"
       set used in the construction of complex numbers, and is intended to be
       used only by the construction.  (Contributed by Jim Kingdon,
       2-Nov-2019.) $)
    df-mq0 $a |- .Q0 = { <. <. x , y >. , z >. | ( ( x e. Q0. /\ y e. Q0. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
               z = [ <. ( w .o u ) , ( v .o f ) >. ] ~Q0 ) ) } $.
  $}

  ${
    $d x y z w v u f $.
    $( Multiplication on non-negative fractions.  This definition is similar to
       ~ df-mq0 but expands ` Q0. ` (Contributed by Jim Kingdon,
       22-Nov-2019.) $)
    dfmq0qs $p |- .Q0 = { <. <. x , y >. , z >. |
      ( ( x e. ( ( _om X. N. ) /. ~Q0 ) /\ y e. ( ( _om X. N. ) /. ~Q0 ) ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
               z = [ <. ( w .o u ) , ( v .o f ) >. ] ~Q0 ) ) } $=
      ( cv cnq0 wcel wa cop ceq0 cec wceq comu co wex coprab df-nq0 com cxp cqs
      cmq0 cnpi df-mq0 eleq2i anbi12i anbi1i oprabbii eqtri ) UDAHZIJZBHZIJZKZU
      LDHZEHZLMNOUNFHZGHZLMNOKCHUQUSPQURUTPQLMNOKGRFRERDRZKZABCSULUAUEUBMUCZJZU
      NVCJZKZVAKZABCSABCDEFGUFVBVGABCUPVFVAUMVDUOVEIVCULTUGIVCUNTUGUHUIUJUK $.

    $( Addition on non-negative fractions.  This definition is similar to
       ~ df-plq0 but expands ` Q0. ` (Contributed by Jim Kingdon,
       24-Nov-2019.) $)
    dfplq0qs $p |- +Q0 = { <. <. x , y >. , z >. |
      ( ( x e. ( ( _om X. N. ) /. ~Q0 ) /\ y e. ( ( _om X. N. ) /. ~Q0 ) ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
           z = [ <. ( ( w .o f ) +o ( v .o u ) ) ,
             ( v .o f ) >. ] ~Q0 ) ) } $=
      ( cv cnq0 wcel wa cop ceq0 cec wceq comu co wex coprab df-nq0 coa com cxp
      cplq0 cnpi cqs df-plq0 eleq2i anbi12i anbi1i oprabbii eqtri ) UDAHZIJZBHZ
      IJZKZUMDHZEHZLMNOUOFHZGHZLMNOKCHURVAPQUSUTPQUAQUSVAPQLMNOKGRFRERDRZKZABCS
      UMUBUEUCMUFZJZUOVDJZKZVBKZABCSABCDEFGUGVCVHABCUQVGVBUNVEUPVFIVDUMTUHIVDUO
      TUHUIUJUKUL $.
  $}

  ${
    $d u v w x y z $.
    $( Equivalence on positive fractions in terms of equivalence on
       non-negative fractions.  (Contributed by Jim Kingdon, 12-Nov-2019.) $)
    enq0enq $p |- ~Q = ( ~Q0 i^i ( ( N. X. N. ) X. ( N. X. N. ) ) ) $=
      ( vx vy vz vw vv vu cnpi cv com wcel wa wceq co copab bitr4i anbi1i anass
      wex 3bitr3i 19.42vv ceq0 cxp cin cop ceq df-enq0 df-xp ineq12i inopab cmi
      comu an32 an4 wss pinn ssriv xpss1 ax-mp sseli anbi12i bitri eleq1 opelxp
      pm4.71ri syl6bb bi2anan9 pm5.32i wb mulpiord eqeqan12d an42s anbi2i ancom
      2exbii opabbii df-enq eqtr4i 3eqtrri ) UAGGUBZVSUBZUCAHZIGUBZJZBHZWBJZKZW
      ACHZDHZUDZLZWDEHZFHZUDZLZKZWGWLUKMZWHWKUKMZLZKZFRERZDRCRZKZABNZWAVSJZWDVS
      JZKZABNZUCXBXFKZABNZUEUAXCVTXGABCDEFUFABVSVSUGUHXBXFABUIXIXFWOWGWLUJMZWHW
      KUJMZLZKZFRERZDRCRKZABNUEXHXOABXHXFXAKZXOXHWFXFKZXAKXPWFXAXFULXQXFXAXQWCX
      DKZWEXEKZKXFWCWEXDXEUMXDXRXEXSXDWCVSWBWAGIUNVSWBUNAGIWAUOUPGIGUQURZUSVDXE
      WEVSWBWDXTUSVDUTOPVAXFWTKZDRCRXFXNKZDRCRXPXOYAYBCDXFWSKZFRERXFXMKZFRERYAY
      BYCYDEFXFWOKZWRKZYEXLKZYCYDWOXFKZWRKZYHXLKZYFYGYIWOWGGJZWHGJZKZWKGJZWLGJZ
      KZKZKZXLKZYJYIWOYQXLKZKZYSYIWOYQWRKZKZUUAYIYRWRKUUCYHYRWRWOXFYQWJXDYMWNXE
      YPWJXDWIVSJYMWAWIVSVBWGWHGGVCVEWNXEWMVSJYPWDWMVSVBWKWLGGVCVEVFVGZPWOYQWRQ
      VAYTUUBWOYQXLWRYKYOYLYNXLWRVHYKYOKYLYNKXJWPXKWQWGWLVIWHWKVIVJVKVGVLOWOYQX
      LQOYHYRXLUUDPOYHYEWRWOXFVMZPYHYEXLUUEPSXFWOWRQXFWOXLQSVNXFWSEFTXFXMEFTSVN
      XFWTCDTXFXNCDTSVAVOABCDEFVPVQVR $.
  $}

  ${
    $d f a b c d u v w x y z $.  $d g a b c d u v w x y z $.
    $( The equivalence relation for non-negative fractions is symmetric.  Lemma
       for ~ enq0er .  (Contributed by Jim Kingdon, 14-Nov-2019.) $)
    enq0sym $p |- ( f ~Q0 g -> g ~Q0 f ) $=
      ( vc vd va vb vz vw vv vu cv com wcel wa wceq comu co wex anbi1d anbi12d
      vx vy ceq0 wbr cnpi cxp cop vex eleq1 eqeq1 4exbidv anbi2d df-enq0 biimpi
      brab opeq12 eqeq2d simpl oveq1d simpr eqeq12d oveq2d cbvex4v anbi2i sylib
      19.42vv sylibr 2exbii pm3.22 adantr ad2antrl simprr opelxp syl6bb biimpcd
      wb im2anan9 adantrr pinn nnmcom sylan2 sylan eqeqan12d an42s mpbid eqcomd
      imp syl jca32 2eximi exrot4 biimpri sylan2br sylbi ) AKZBKZUCUDZWPLUEUFZM
      ZWOWRMZNZWPCKZDKZUGZOZWOEKZFKZUGZOZNZXBXGPQZXCXFPQZOZNZNZDRCRZFRERZWPWOUC
      UDZWQWTWSNZXIXENZXFXCPQZXGXBPQZOZNZNZDRCRZFRERZXQWQXSYDDRCRZNZFRERZYGWQXS
      YHFRERZNZYJWQXSWOGKZHKZUGZOZWPIKZJKZUGZOZNZYMYRPQZYNYQPQZOZNZJRIRHRGRZNZY
      LWQUUGUAKZWRMZUBKZWRMZNZUUHYOOZUUJYSOZNZUUDNZJRIRHRGRZNZWTUUKNZYPUUNNZUUD
      NZJRIRHRGRZNUUGUAUBWOWPUCAUHZBUHZUUHWOOZUULUUSUUQUVBUVEUUIWTUUKUUHWOWRUIS
      UVEUUPUVAGHIJUVEUUOUUTUUDUVEUUMYPUUNUUHWOYOUJSSUKTUUJWPOZUUSXSUVBUUFUVFUU
      KWSWTUUJWPWRUIULUVFUVAUUEGHIJUVFUUTUUAUUDUVFUUNYTYPUUJWPYSUJULSUKTUAUBGHI
      JUMZUOUNUUFYKXSUUEXIYTNZXFYRPQZXGYQPQZOZNYDGHIJEFCDYMXFOZYNXGOZNZUUAUVHUU
      DUVKUVNYPXIYTUVNYOXHWOYMYNXFXGUPUQSUVNUUBUVIUUCUVJUVNYMXFYRPUVLUVMURUSUVN
      YNXGYQPUVLUVMUTUSVATYQXBOZYRXCOZNZUVHXTUVKYCUVQYTXEXIUVQYSXDWPYQYRXBXCUPU
      QULUVQUVIYAUVJYBUVQYRXCXFPUVOUVPUTVBUVQYQXBXGPUVOUVPURVBVATVCVDVEXSYHEFVF
      VGYFYIEFXSYDCDVFVHVGYFXPEFYEXOCDYEXAXJXMXSXAYDWTWSVIVJXTXJXSYCXIXEVIVKYEX
      LXKYEYCXLXKOZXSXTYCVLYEXFLMZXGUEMZNZXBLMZXCUEMZNZNZYCUVRVPZXSXTUWEYCXSXTU
      WEWTXIUWAWSXEUWDXIWTUWAXIWTXHWRMUWAWOXHWRUIXFXGLUEVMVNVOXEWSUWDXEWSXDWRMU
      WDWPXDWRUIXBXCLUEVMVNVOVQWGVRUVSUWCUVTUWBUWFUVSUWCNUVTUWBNYAXLYBXKUWCUVSX
      CLMYAXLOXCVSXFXCVTWAUVTXGLMUWBYBXKOXGVSXGXBVTWBWCWDWHWEWFWIWJWJWHXQXOFRER
      ZDRCRZXRXOEFCDWKUWHXAXNFRERZNZDRCRZXRUWGUWJCDXAXNEFVFVHUWKXAUWIDRCRZNXRXA
      UWICDVFUWLXAWPYOOZWOYSOZNZUUDNZJRIRHRGRZXRUWPXEUWNNZXBYRPQZXCYQPQZOZNXNGH
      IJCDEFYMXBOZYNXCOZNZUWOUWRUUDUXAUXDUWMXEUWNUXDYOXDWPYMYNXBXCUPUQSUXDUUBUW
      SUUCUWTUXDYMXBYRPUXBUXCURUSUXDYNXCYQPUXBUXCUTUSVATYQXFOZYRXGOZNZUWRXJUXAX
      MUXGUWNXIXEUXGYSXHWOYQYRXFXGUPUQULUXGUWSXKUWTXLUXGYRXGXBPUXEUXFUTVBUXGYQX
      FXCPUXEUXFURVBVATVCXRXAUWQNZUURWSUUKNZUWMUUNNZUUDNZJRIRHRGRZNUXHUAUBWPWOU
      CUVDUVCUUHWPOZUULUXIUUQUXLUXMUUIWSUUKUUHWPWRUISUXMUUPUXKGHIJUXMUUOUXJUUDU
      XMUUMUWMUUNUUHWPYOUJSSUKTUUJWOOZUXIXAUXLUWQUXNUUKWTWSUUJWOWRUIULUXNUXKUWP
      GHIJUXNUXJUWOUUDUXNUUNUWNUWMUUJWOYSUJULSUKTUVGUOWLWMWNWNWNWH $.
  $}

  ${
    $d f u v w x y z $.
    $( The equivalence relation for non-negative fractions is reflexive.  Lemma
       for ~ enq0er .  (Contributed by Jim Kingdon, 14-Nov-2019.) $)
    enq0ref $p |- ( f e. ( _om X. N. ) <-> f ~Q0 f ) $=
      ( vz vw vv vu vx vy cv com cnpi wcel ceq0 wceq comu wex vex anbi2d anbi1d
      wa co cxp wbr elxpi ee4anv sylanbrc eqtr2 opth sylib oveq1 oveq2 sylan9eq
      cop equcoms syl ancli ad2ant2r pinn nnmcom sylan2 eqeq2d ancoms ad2ant2lr
      wb ad2ant2l mpbid 2eximi eleq1 eqeq1 4exbidv anbi12d df-enq0 anidm anbi1i
      brab bitri sylibr simplbi impbii ) AHZIJUAZKZVSVSLUBZWAWAVSBHZCHZULZMZVSD
      HZEHZULZMZSZWCWHNTZWDWGNTZMZSZEODOZCOBOZSZWBWAWQWAWFWCIKZWDJKZSZSZWJWGIKZ
      WHJKZSZSZSZEODOZCOBOZWQWAXBCOBOXFEODOXIBCVSIJUCDEVSIJUCXBXFBCDEUDUEXHWPBC
      XGWODEXGWKWLWGWDNTZMZSZWOWFWJXLXAXEWKXKWKWCWGMZWDWHMZSZXKWKWEWIMXOVSWEWIU
      FWCWDWGWHBPCPUGUHXMXNWLWGWHNTZXJWCWGWHNUIXPXJMECWHWDWGNUJUMUKUNUOUPXGXKWN
      WKXAXEXKWNVCZWFWJWTXCXQWSXDXCWTXQXCWTSXJWMWLWTXCWDIKXJWMMWDUQWGWDURUSUTVA
      VBVDQVEVFVFUNUOWBWAWASZWQSZWRFHZVTKZGHZVTKZSZXTWEMZYBWIMZSZWNSZEODOCOBOZS
      WAYCSZWFYFSZWNSZEODOCOBOZSXSFGVSVSLAPZYNXTVSMZYDYJYIYMYOYAWAYCXTVSVTVGRYO
      YHYLBCDEYOYGYKWNYOYEWFYFXTVSWEVHRRVIVJYBVSMZYJXRYMWQYPYCWAWAYBVSVTVGQYPYL
      WOBCDEYPYKWKWNYPYFWJWFYBVSWIVHQRVIVJFGBCDEVKVNXRWAWQWAVLVMVOZVPWBWAWQYQVQ
      VR $.
  $}

  ${
    $d a b c d e f s t u v w x y z $.  $d a b c d e g s t u v w x y z $.
    $d a b c d e h s t u v w x y z $.
    $( The equivalence relation for non-negative fractions is transitive.
       Lemma for ~ enq0er .  (Contributed by Jim Kingdon, 14-Nov-2019.) $)
    enq0tr $p |- ( ( f ~Q0 g /\ g ~Q0 h ) -> f ~Q0 h ) $=
      ( vz vw vs vt vv vu va vb cv wa com wcel wceq comu co wex c0 vx vy vc wbr
      vd ve ceq0 cnpi cxp cop w3a vex eleq1 anbi1d eqeq1 4exbidv anbi12d anbi2d
      df-enq0 anbi12i biimpi an4 sylib 3anass anass anbi2i anidm anbi1i 3bitr2i
      bitr4i sylibr ee8anv 19.42vvvv 2exbii bitri 3simpb adantr simplll simprlr
      brab jca adantl oveq1 simpl3 eqeltrrd opelxp simprd pinn syl nnm0r eqeq2d
      wo syl5ib wb simprr eqtr2 opth eqeqan12d ad2ant2lr ad2ant2r mpbird eqeq1d
      sylibd simpllr simpl2 simpld nnm00 syl2anc wn elni2 simprbi biorf sylibrd
      n0i 3syl simpl1 nnm0 oveq2 syl5ibrcom syld orcom syl6bb jcad eqtr3 eqcomd
      syl6 simplr oveq12d nnmcl nnmcom nnmass caov13d caovassd 3eqtr3d syl31anc
      nnmcan mpbid caov12d 2eximi exlimivv 3jca sylan ex 0elnn mpjaod jca32 ) A
      LZBLZUGUDZUUHCLZUGUDZMZUUGNUHUIZOZUUJUUMOZMZUUGDLZELZUJZPZUUJFLZGLZUJZPZM
      ZUUQUVBQRZUURUVAQRZPZMZMZGSFSZESDSZUUGUUJUGUDZUULUUNUUHUUMOZUUOUKZUUTUUHH
      LZILZUJZPZMZUUQUVQQRZUURUVPQRZPZMZUUHJLZKLZUJZPZUVDMZUWEUVBQRZUWFUVAQRZPZ
      MZMZMZGSFSZKSJSZISHSZESDSZUVLUULUVOUWNGSFSKSJSZISHSESDSZMZUWSUULUVOUWDISH
      SESDSZUWMGSFSKSJSZMZMZUXBUULUUNUVNMZUVNUUOMZMZUXEMZUXFUULUXGUXCMZUXHUXDMZ
      MZUXJUULUXMUUIUXKUUKUXLUALZUUMOZUBLZUUMOZMZUXNUUSPZUXPUVRPZMZUWCMZISHSESD
      SZMUUNUXQMZUUTUXTMZUWCMZISHSESDSZMUXKUAUBUUGUUHUGAULZBULZUXNUUGPZUXRUYDUY
      CUYGUYJUXOUUNUXQUXNUUGUUMUMUNZUYJUYBUYFDEHIUYJUYAUYEUWCUYJUXSUUTUXTUXNUUG
      UUSUOZUNUNUPUQUXPUUHPZUYDUXGUYGUXCUYMUXQUVNUUNUXPUUHUUMUMURUYMUYFUWDDEHIU
      YMUYEUVTUWCUYMUXTUVSUUTUXPUUHUVRUOURUNUPUQUAUBDEHIUSVTUXRUXNUWGPZUXPUVCPZ
      MZUWLMZGSFSKSJSZMUVNUXQMZUWHUYOMZUWLMZGSFSKSJSZMUXLUAUBUUHUUJUGUYICULZUXN
      UUHPZUXRUYSUYRVUBVUDUXOUVNUXQUXNUUHUUMUMUNVUDUYQVUAJKFGVUDUYPUYTUWLVUDUYN
      UWHUYOUXNUUHUWGUOUNUNUPUQUXPUUJPZUYSUXHVUBUXDVUEUXQUUOUVNUXPUUJUUMUMZURVU
      EVUAUWMJKFGVUEUYTUWIUWLVUEUYOUVDUWHUXPUUJUVCUOZURUNUPUQUAUBJKFGUSVTUTVAUX
      GUXCUXHUXDVBVCUVOUXIUXEUVOUUNUXHMZUXIUUNUVNUUOVDUXIUUNUVNUXHMZMUUNUVNUVNM
      ZUUOMZMVUHUUNUVNUXHVEVUKVUIUUNUVNUVNUUOVEVFVUKUXHUUNVUJUVNUUOUVNVGVHVFVIV
      JVHVKUXAUXEUVOUWDUWMDEHIJKFGVLVFVKUWSUVOUWTMZISHSZESDSUXBUWRVUMDEUWQVULHI
      UVOUWNKFGJVMVNVNUVOUWTEHIDVMVOVKUWRUVKDEUWQUVKHIUWPUVKJKUWOUVJFGUWOUUPUVE
      UVHUVOUUPUWNUUNUVNUUOVPVQUWNUVEUVOUWNUUTUVDUUTUVSUWCUWMVRZUWDUWHUVDUWLVSZ
      WAWBUWOUVPTPZUVHTUVPOZUWOVUPUVGTPZUVFTPZMZUVHUWOVUPVURVUSUWOVUPUVATPZVURU
      WOVUPUVQTPZVVAWLZVVAUWOVUPUVQUVAQRZTPZVVCUWOVUPUVPUVBQRZTPZVVEVUPVVFTUVBQ
      RZPUWOVVGUVPTUVBQWCUWOVVHTVVFUWOUVBNOZVVHTPZUWOUVBUHOZVVIUWOUVANOZVVKUWOU
      VCUUMOVVLVVKMUWOUUJUVCUUMUWNUVDUVOVUOWBUUNUVNUUOUWNWDWEUVAUVBNUHWFVCZWGUV
      BWHWIZUVBWJWIZWKWMUWNVVGVVEWNUVOUWNVVFVVDTUWNVVFVVDPZUWLUWDUWIUWLWOUVTUWI
      VVPUWLWNZUWCUWLUVSUWHVVQUUTUVDUVSUWHMZUVPUWEPZUVQUWFPZMZVVQVVRUVRUWGPVWAU
      UHUVRUWGWPUVPUVQUWEUWFHULIULWQVCVVSVVTVVFUWJVVDUWKUVPUWEUVBQWCUVQUWFUVAQW
      CWRWIWSWTXAZXBWBXCUWOUVQNOZVVLVVEVVCWNUWOUVQUHOZVWCUWOUVPNOZVWDUWOUVRUUMO
      VWEVWDMUWOUUHUVRUUMUWNUVSUVOUUTUVSUWCUWMXDWBUUNUVNUUOUWNXEWEUVPUVQNUHWFVC
      ZWGZUVQWHWIZUWOVVLVVKVVMXFZUVQUVAXGXHXCUWOTUVQOZVVBXIZVVAVVCWNUWOVWDVWJVW
      GVWDVWCVWJUVQXJXKWIZUVQTXNZVVBVVAXLXOXMUWOVURVVAUURTQRZTPZUWOUURNOZVWOUWO
      UURUHOZVWPUWOUUQNOZVWQUWOUUSUUMOVWRVWQMUWOUUGUUSUUMUWNUUTUVOVUNWBUUNUVNUU
      OUWNXPWEUUQUURNUHWFVCZWGUURWHWIZUURXQWIZVVAUVGVWNTUVATUURQXRXBXSXTUWOVUPU
      UQTPZVUSUWOVUPVXBVVBWLZVXBUWOVUPUWATPZVXCUWOVUPUWBTPZVXDVUPUWBVWNPUWOVXEU
      VPTUURQXRUWOVWNTUWBVXAWKWMUWOUWAUWBTUVOUVTUWCUWMVSXBXMUWOVWRVWCVXDVXCWNUW
      OVWRVWQVWSXFZVWHUUQUVQXGXHXCUWOVWJVWKVXBVXCWNVWLVWMVWKVXBVVBVXBWLVXCVVBVX
      BXLVVBVXBYAYBXOXMUWOVUSVXBVVJVVOVXBUVFVVHTUUQTUVBQWCXBXSXTYCVUTUVGUVFUVGU
      VFTYDYEYFUWOVUQUVHUWOVUQMUVPUVFQRZUVPUVGQRZPZUVHUWOVXIVUQUWOUUQVVFQRZUVAU
      WBQRZVXGVXHUWOUVQVXJQRZUVQVXKQRZPZVXJVXKPZUWOVVFUWAQRZVVDUWBQRZVXLVXMUWNV
      XPVXQPUVOUWNVVFVVDUWAUWBQVWBUVTUWCUWMYGYHWBUWOUCUEUFVVFUUQUVQNQUWOVWEVVIV
      VFNOZUWOVWEVWDVWFXFZVVNUVPUVBYIXHZVXFVWHUCLZNOZUELZNOZMVYAVYCQRZVYCVYAQRP
      UWOVYAVYCYJWBZVYBVYDUFLZNOUKVYEVYGQRVYAVYCVYGQRQRPUWOVYAVYCVYGYKWBZYLUWOU
      CUEUFUVQUVAUWBNQVYHVWHVWIUWOVWPVWEUWBNOZVWTVXSUURUVPYIXHZYMYNUWOVWCVXJNOZ
      VXKNOZVWJVXNVXOWNVWHUWOVWRVXRVYKVXFVXTUUQVVFYIXHUWOVVLVYIVYLVWIVYJUVAUWBY
      IXHVWLUVQVXJVXKYPYOYQUWOUCUEUFUUQUVPUVBNQVXFVXSVVNVYFVYHYRUWOUCUEUFUVAUUR
      UVPNQVWIVWTVXSVYFVYHYLYNVQUWOVWEUVFNOZUVGNOZUKVUQVXIUVHWNUWOVWEVYMVYNVXSU
      WOVWRVVIVYMVXFVVNUUQUVBYIXHUWOVWPVVLVYNVWTVWIUURUVAYIXHUUAUVPUVFUVGYPUUBY
      QUUCUWOVWEVUPVUQWLVXSUVPUUDWIUUEUUFYSYTYTYSWIUVLUUPUVIGSFSESDSZMZUVMUUPUV
      IEFGDVMUXRUXSUYOMZUVHMZGSFSESDSZMUYDUUTUYOMZUVHMZGSFSESDSZMVYPUAUBUUGUUJU
      GUYHVUCUYJUXRUYDVYSWUBUYKUYJVYRWUADEFGUYJVYQVYTUVHUYJUXSUUTUYOUYLUNUNUPUQ
      VUEUYDUUPWUBVYOVUEUXQUUOUUNVUFURVUEWUAUVIDEFGVUEVYTUVEUVHVUEUYOUVDUUTVUGU
      RUNUPUQUAUBDEFGUSVTVJVC $.
  $}

  ${
    $d f g h x y z w v u $.
    $( The equivalence relation for non-negative fractions is an equivalence
       relation.  (Contributed by Jim Kingdon, 12-Nov-2019.) $)
    enq0er $p |- ~Q0 Er ( _om X. N. ) $=
      ( vf vg vh vx vy vz vw vv vu ceq0 wtru cv wcel wa cop wceq comu wex wbr
      co com cnpi cxp wer df-enq0 relopabi a1i enq0sym adantl enq0tr wb enq0ref
      wrel iserd trud ) UAUBUCZJUDKABCUPJJUMKDLZUPMELZUPMNUQFLZGLZOPURHLZILZOPN
      USVBQTUTVAQTPNIRHRGRFRNDEJDEFGHIUEUFUGALZBLZJSZVDVCJSKABUHUIVEVDCLZJSNVCV
      FJSKABCUJUIVCUPMVCVCJSUKKAULUGUNUO $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.
    $( Equivalence relation for non-negative fractions in terms of natural
       numbers.  (Contributed by NM, 27-Aug-1995.) $)
    enq0breq $p |- ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. ) ) ->
          ( <. A , B >. ~Q0 <. C , D >. <-> ( A .o D ) = ( B .o C ) ) ) $=
      ( vz vw vv vu com wcel cnpi wa cop cv wceq comu co wex cvv anbi1d vx ceq0
      vy cxp wbr wb oveq12 eqeqan12d an42s copsex4g opexg eleq1 4exbidv anbi12d
      anbi2d eqeq1 df-enq0 brabg syl2an opelxpi anim12i biantrurd 3bitr4d ) AIJ
      BKJLZCIJDKJLZLZABMZIKUDZJZCDMZVHJZLZVGENZFNZMZOZVJGNZHNZMZOZLZVMVRPQZVNVQ
      PQZOZLZHRGRFRERZLZVLADPQZBCPQZOZLVGVJUBUEZWJVFWFWJVLWDWJEFGHABCDIKVMAOZVR
      DOZVNBOZVQCOZWDWJUFWLWMLWNWOLWBWHWCWIVMAVRDPUGVNBVQCPUGUHUIUJUOVDVGSJVJSJ
      WKWGUFVEABIKUKCDIKUKUANZVHJZUCNZVHJZLZWPVOOZWRVSOZLZWDLZHRGRFRERZLVIWSLZV
      PXBLZWDLZHRGRFRERZLWGUAUCVGVJSSUBWPVGOZWTXFXEXIXJWQVIWSWPVGVHULTXJXDXHEFG
      HXJXCXGWDXJXAVPXBWPVGVOUPTTUMUNWRVJOZXFVLXIWFXKWSVKVIWRVJVHULUOXKXHWEEFGH
      XKXGWAWDXKXBVTVPWRVJVSUPUOTUMUNUAUCEFGHUQURUSVFVLWJVDVIVEVKABIKUTCDIKUTVA
      VBVC $.
  $}

  $( Equivalence class equality of non-negative fractions in terms of natural
     numbers.  (Contributed by Jim Kingdon, 24-Nov-2019.) $)
  enq0eceq $p |- ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q0 = [ <. C , D >. ] ~Q0 <->
                ( A .o D ) = ( B .o C ) ) ) $=
    ( com wcel cnpi wa cop ceq0 wbr cec wceq comu co cxp wer enq0er a1i opelxpi
    adantr erth enq0breq bitr3d ) AEFBGFHZCEFDGFHZHZABIZCDIZJKUHJLUIJLMADNOBCNO
    MUGUHUIJEGPZUJJQUGRSUEUHUJFUFABEGTUAUBABCDUCUD $.

  ${
    $d u v w x y z $.
    $( A non-negative fraction is a positive fraction if its numerator and
       denominator are positive integers.  (Contributed by Jim Kingdon,
       10-Nov-2019.) $)
    nqnq0pi $p |- ( ( A e. N. /\ B e. N. ) ->
        [ <. A , B >. ] ~Q0 = [ <. A , B >. ] ~Q ) $=
      ( vy vx vz vw vu vv cnpi wcel wa cop ceq0 wceq cv wex com wb c0 wn opelxp
      cec cxp cin ceq cima wss wbr vex elima2 elxp anbi1i 19.41vv bitr4i simplr
      breq1 adantr biimpa wer enq0er simpr ercl2 sylib 19.42vv sylanbrc syl2anc
      id a1i wne simprrl wo comu co simprbi neneqd ad2antrr ad2antll jca pm4.56
      elni pinn nnm00 mtbird ad2ant2rl breq2 biimpac ad2ant2lr enq0breq sylanl1
      mpbid eqeq1d mtbid sylan sylibr simprd neneqad simprrr ad2antrl mpbir2and
      eleq1 syl6bb exlimivv syl sylbi exlimiv ssriv ecinxp sylbir enq0enq eceq2
      mpan ax-mp syl6eqr ) AIJBIJKZABLZMUBZXOMIIUCZXQUCUDZUBZXOUEUBZXNXOXQJZXPX
      SNZABIIUAMXQUFZXQUGYAYBCYCXQCOZYCJDOZXQJZYEYDMUHZKZDPYDXQJZDYDMXQCUIUJYHY
      IDYHYEEOZFOZLZNZYJIJZYKIJZKZKZYGKZFPEPZYIYHYQFPEPZYGKYSYFYTYGEFYEIIUKULYQ
      YGEFUMUNYRYIEFYRYPYLYDMUHZKZYDGOZHOZLZNZUUCQJZUUDIJZKZKZKZHPGPZYIYRYPUUAU
      ULYMYPYGUOYQYGUUAYMYGUUARYPYEYLYDMUPUQURUUBUUBUUJHPGPZUULUUBVGUUBYDQIUCZJ
      UUMUUBYLYDMUUNUUNMUSUUBUTVHYPUUAVAVBGHYDQIUKVCUUBUUJGHVDVEVFUUKYIGHUUKYIU
      UCIJZUUHUUKUUGUUCSVIUUOUUBUUFUUGUUHVJUUKUUCSUUKYKSNZTZUUCSNZTZUUKUUPUURVK
      ZTUUQUUSKUUKYKUUCVLVMZSNZUUTUUKYJUUDVLVMZSNZUVBYPUUIUVDTUUAUUFYPUUIKZUVDY
      JSNZUUDSNZVKZUVEUVFTZUVGTZKUVHTUVEUVIUVJYNUVIYOUUIYNYJSYNYJQJZYJSVIYJVTVN
      VOVPUUHUVJYPUUGUUHUUDSUUHUUDQJZUUDSVIUUDVTVNVOVQVRUVFUVGVSVCUVEUVKUVLUVDU
      VHRYNUVKYOUUIYJWAZVPUUHUVLYPUUGUUDWAVQYJUUDWBVFWCWDUUKUVCUVASUUKYLUUEMUHZ
      UVCUVANZUUAUUFUVNYPUUIUUFUUAUVNYDUUEYLMWEWFWGYPUUIUVNUVORZUUAUUFYNUVKYOUU
      IUVPUVMYJYKUUCUUDWHWIWDWJWKWLYPUUIUVBUUTRZUUAUUFYOUUGUVQYNUUHYOYKQJUUGUVQ
      YKWAYKUUCWBWMWGWDWLUUPUURVSWNWOWPUUCVTVEUUBUUFUUGUUHWQUUFYIUUOUUHKZRUUBUU
      IUUFYIUUEXQJUVRYDUUEXQWTUUCUUDIIUAXAWRWSXBXCXBXDXEXDXFXQXOMXGXKXHUEXRNXTX
      SNXIUEXRXOXJXLXM $.
  $}

  ${
    $d x y z w v u $.
    $( The equivalence relation for positive fractions exists.  (Contributed by
       Jim Kingdon, 18-Nov-2019.) $)
    enq0ex $p |- ~Q0 e. _V $=
      ( vv vu vx vy vz vw ceq0 com cnpi cxp omex xpex cv wcel cop wceq comu wex
      wa co niex copab df-enq0 opabssxp eqsstri ssexi ) GHIJZUGJZUGUGHIKUALZUIL
      GAMZUGNBMZUGNSUJCMZDMZOPUKEMZFMZOPSULUOQTUMUNQTPSFRERDRCRZSABUBUHABCDEFUC
      UPABUGUGUDUEUF $.
  $}

  $( The class of positive fractions exists.  (Contributed by Jim Kingdon,
     18-Nov-2019.) $)
  nq0ex $p |- Q0. e. _V $=
    ( cnq0 com cnpi cxp ceq0 cqs cvv df-nq0 omex niex xpex qsex eqeltri ) ABCDZ
    EFGHNEBCIJKLM $.

  ${
    $d u v x y $.
    $( A positive fraction is a non-negative fraction.  (Contributed by Jim
       Kingdon, 18-Nov-2019.) $)
    nqnq0 $p |- Q. C_ Q0. $=
      ( vy vx vu vv cnq cnq0 cv wcel cnpi ceq cec wceq wa ceq0 adantl wb adantr
      wex mpbird com cxp cqs wrex df-nqqs eleq2i vex elqs df-rex 3bitri nqnq0pi
      cop elxpi eceq1 eqeq12d pinn opelxpi sylan eleq1 enq0ex ecelqsi syl6eleqr
      df-nq0 syl eqeltrrd exlimivv exlimiv sylbi ssriv ) AEFAGZEHZBGZIIUAZHZVIV
      KJKZLZMZBRZVIFHZVJVIVLJUBZHVOBVLUCVQEVSVIUDUEBVLVIJAUFUGVOBVLUHUIVPVRBVPV
      RVNFHZVMVTVOVMVKCGZDGZUKZLZWAIHZWBIHZMZMZDRCRVTCDVKIIULWHVTCDWHVKNKZVNFWH
      WIVNLZWCNKZWCJKZLZWGWMWDWAWBUJOWDWJWMPWGWDWIWKVNWLVKWCNUMVKWCJUMUNQSWHVKT
      IUAZHZWIFHWHWOWCWNHZWGWPWDWEWATHWFWPWAUOWAWBTIUPUQOWDWOWPPWGVKWCWNURQSWOW
      IWNNUBFWNVKNUSUTVBVAVCVDVEVCQVOVRVTPVMVIVNFUROSVFVGVH $.
  $}

  ${
    $d A a v w x $.
    $( Decomposition of a non-negative fraction into numerator and
       denominator.  (Contributed by Jim Kingdon, 24-Nov-2019.) $)
    nq0nn $p |- ( A e. Q0. ->
        E. w E. v ( ( w e. _om /\ v e. N. ) /\ A = [ <. w , v >. ] ~Q0 ) ) $=
      ( va cv com wcel cnpi cop ceq0 cec wceq wex cxp cqs cnq0 wrex elqsi syl
      wa elxpi anim1i sylibr simplr simpr eceq1 ad2antrr eqtrd 2eximi rexlimiva
      19.41vv jca df-nq0 eleq2s ) AEZFGBEZHGTZCUOUPIZJKZLZTZBMAMZCFHNZJOZPCVDGC
      DEZJKZLZDVCQVBDVCCJRVGVBDVCVEVCGZVGTZVEURLZUQTZVGTZBMAMZVBVIVKBMAMZVGTVMV
      HVNVGABVEFHUAUBVKVGABUKUCVLVAABVLUQUTVJUQVGUDVLCVFUSVKVGUEVJVFUSLUQVGVEUR
      JUFUGUHULUISUJSUMUN $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.  $d F x y z $.
    $d G x y z $.  $d R x y z $.  $d S x y z $.
    $( Lemma showing compatibility of addition on non-negative fractions.
       (Contributed by Jim Kingdon, 23-Nov-2019.) $)
    addcmpblnq0 $p |- ( ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. )
             ) /\ ( ( F e. _om /\ G e. N. ) /\ ( R e. _om /\ S e. N. ) ) ) ->
                ( ( ( A .o D ) = ( B .o C ) /\ ( F .o S ) = ( G .o R ) ) ->
        <. ( ( A .o G ) +o ( B .o F ) ) , ( B .o G ) >. ~Q0
         <. ( ( C .o S ) +o ( D .o R ) ) , ( D .o S ) >. ) ) $=
      ( vx vy com wcel cnpi wa comu co wceq coa nnmcl syl2anc vz cop wbr cv w3a
      ceq0 nndi adantl simplll simprlr pinn syl simpllr simprll simplrr simprrr
      nnacl nnmcom caovdir2d nnmass caov4d eqtrd oveq1 oveq2 oveqan12d sylan9eq
      oveq12d simplrl simprrl syl3anc adantr mulpiord mulclpi eqeltrrd ad2ant2l
      eqtr4d wb cmi ad2ant2r enq0breq syl22anc mpbird ex ) AKLZBMLZNZCKLZDMLZNZ
      NZGKLZHMLZNZEKLZFMLZNZNZNZADOPZBCOPZQZGFOPZHEOPZQZNZAHOPZBGOPZRPZBHOPZUBC
      FOPZDEOPZRPZDFOPZUBUFUCZWRXENZXNXHXMOPZXIXLOPZQZXOXPWTHFOPZOPZBDOPZXCOPZR
      PZXQWRXEXPWSXSOPZYAXBOPZRPZYCWRXPXFXMOPZXGXMOPZRPYFWRIJUAXFXGXMKROIUDZKLZ
      JUDZKLZUAUDZKLUEZYIYKYMRPOPYIYKOPZYIYMOPRPQWRYIYKYMUGUHWRWDHKLZXFKLZWDWEW
      IWQUIZWRWLYPWJWKWLWPUJHUKULZAHSTZWRBKLZWKXGKLZWRWEUUAWDWEWIWQUMBUKULZWJWK
      WLWPUNZBGSTZWRDKLZFKLZXMKLWRWHUUFWFWGWHWQUODUKULZWRWOUUGWJWMWNWOUPFUKULZD
      FSTYJYLNZYIYKRPKLWRYIYKUQUHUUJYOYKYIOPQWRYIYKURUHZUSWRYGYDYHYERWRIJUAAHDF
      KOYRYSUUHUUKYNYOYMOPYIYKYMOPOPQWRYIYKYMUTUHZUUIUUJYOKLWRYIYKSUHZVAWRIJUAB
      GDFKOUUCUUDUUHUUKUULUUIUUMVAVGVBXAXDYDXTYEYBRWSWTXSOVCXBXCYAOVDVEVFWRXQYC
      QXEWRXQXIXJOPZXIXKOPZRPZYCWRXIKLZXJKLZXKKLZXQUUPQWRUUAYPUUQUUCYSBHSTWRWGU
      UGUURWFWGWHWQVHZUUICFSTZWRUUFWNUUSUUHWJWMWNWOVIZDESTZXIXJXKUGVJWRUUNXTUUO
      YBRWRIJUABHCFKOUUCYSUUTUUKUULUUIUUMVAWRIJUABHDEKOUUCYSUUHUUKUULUVBUUMVAVG
      VBVKVPWRXNXRVQZXEWRXHKLZXIMLZXLKLZXMMLZUVDWRYQUUBUVEYTUUEXFXGUQTWFWMUVFWI
      WPWEWLUVFWDWKWEWLNBHVRPXIMBHVLBHVMVNVOVSWRUURUUSUVGUVAUVCXJXKUQTWIWPUVHWF
      WMWHWOUVHWGWNWHWONDFVRPXMMDFVLDFVMVNVOVOXHXIXLXMVTWAVKWBWC $.

    $( Lemma showing compatibility of multiplication on non-negative
       fractions.  (Contributed by Jim Kingdon, 20-Nov-2019.) $)
    mulcmpblnq0 $p |- ( ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. )
             ) /\ ( ( F e. _om /\ G e. N. ) /\ ( R e. _om /\ S e. N. ) ) ) ->
                ( ( ( A .o D ) = ( B .o C ) /\ ( F .o S ) = ( G .o R ) ) ->
     <. ( A .o F ) , ( B .o G ) >. ~Q0 <. ( C .o R ) , ( D .o S ) >. ) ) $=
      ( vx vy vz comu co wceq wa com wcel cnpi syl pinn cop wbr oveq12 wb nnmcl
      cmi mulpiord mulclpi eqeltrrd anim12i enq0breq simplll simprll simplrr cv
      ceq0 an4s nnmcom adantl w3a nnmass simprrr caov4d simpllr simprlr simplrl
      simprrl eqeq12d bitrd syl5ibr ) ADLMZBCLMZNGFLMZHELMZNOAGLMZBHLMZUACELMZD
      FLMZUAUPUBZAPQZBRQZOZCPQZDRQZOZOZGPQZHRQZOZEPQZFRQZOZOZOZVKVMLMZVLVNLMZNZ
      VKVLVMVNLUCWNVSVOVRLMZVPVQLMZNZWQWNVOPQZVPRQZOZVQPQZVRRQZOZOZVSWTUDWBWIWE
      WLXGWBWIOXCWEWLOXFVTWGWAWHXCVTWGOXAWAWHOZXBAGUEXHBHUFMVPRBHUGBHUHUIUJUQWC
      WJWDWKXFWCWJOXDWDWKOZXECEUEXIDFUFMVRRDFUGDFUHUIUJUQUJUQVOVPVQVRUKSWNWRWOW
      SWPWNIJKAGDFPLVTWAWEWMULWFWGWHWLUMWNWDDPQWBWCWDWMUNDTSIUOZPQZJUOZPQZOZXJX
      LLMZXLXJLMNWNXJXLURUSZXKXMKUOZPQUTXOXQLMXJXLXQLMLMNWNXJXLXQVAUSZWNWKFPQWF
      WIWJWKVBFTSXNXOPQWNXJXLUEUSZVCWNIJKBHCEPLWNWABPQVTWAWEWMVDBTSWNWHHPQWFWGW
      HWLVEHTSWBWCWDWMVFXPXRWFWIWJWKVGXSVCVHVIVJ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Lemma for distributive law: cancellation of common factor.  (Contributed
       by Jim Kingdon, 29-Nov-2019.) $)
    mulcanenq0ec $p |- ( ( A e. N. /\ B e. _om /\ C e. N. ) ->
        [ <. ( A .o B ) , ( A .o C ) >. ] ~Q0 = [ <. B , C >. ] ~Q0 ) $=
      ( vx vy vz cnpi wcel com w3a comu co cop ceq0 cxp wceq pinn cv wa adantl
      wer enq0er a1i wbr 3ad2ant1 simp2 3ad2ant3 nnmcom nnmass caov32d wb nnmcl
      sylan cmi mulpiord mulclpi eqeltrrd anim12i simpr jca 3impdi enq0breq syl
      an4s mpbird erthi ) AGHZBIHZCGHZJZABKLZACKLZMZBCMZNIGOZVONUAVJUBUCVJVMVNN
      UDZVKCKLVLBKLPZVJDEFABCIKVGVHAIHZVIAQZUEVGVHVIUFVIVGCIHVHCQUGDRZIHZERZIHZ
      SVTWBKLZWBVTKLPVJVTWBUHTWAWCFRZIHJWDWEKLVTWBWEKLKLPVJVTWBWEUITUJVJVKIHZVL
      GHZSZVHVISZSZVPVQUKVGVHVIWJVGVHSZVGVISZSWHWIWKWFWLWGVGVRVHWFVSABULUMWLACU
      NLVLGACUOACUPUQURVGVGVHVIWIVGVGSWIUSVDUTVAVKVLBCVBVCVEVF $.
  $}

  ${
    $d x y z w v u t s q f g h a b c d A $.
    $d x y z w v u t s q f g h a b c d B $.

    $( Decomposing non-negative fractions into natural numbers.  Lemma for
       ~ addnnnq0 and ~ mulnnnq0 .  (Contributed by Jim Kingdon,
       23-Nov-2019.) $)
    nnnq0lem1 $p |- ( (
        ( A e. ( ( _om X. N. ) /. ~Q0 ) /\ B e. ( ( _om X. N. ) /. ~Q0 ) )
        /\ ( ( ( A = [ <. w , v >. ] ~Q0 /\ B = [ <. u , t >. ] ~Q0 )
          /\ z = [ C ] ~Q0 )
        /\ ( ( A = [ <. s , f >. ] ~Q0 /\ B = [ <. g , h >. ] ~Q0 )
          /\ q = [ D ] ~Q0 ) ) ) -> (
        ( ( ( w e. _om /\ v e. N. ) /\ ( s e. _om /\ f e. N. ) )
          /\ ( ( u e. _om /\ t e. N. ) /\ ( g e. _om /\ h e. N. ) ) )
        /\ ( ( w .o f ) = ( v .o s ) /\ ( u .o h ) = ( t .o g ) ) ) ) $=
      ( com ceq0 wcel wa cv wceq cnpi cxp cqs cop cec comu cdm wer enq0er ax-mp
      co erdm simpll simplll eleq1d adantl mpbid ecelqsdm sylancr sylib simprll
      wb opelxp jca simplr simpllr simprlr wbr eqtr3d a1i erth enq0breq syl2anc
      mpbird jca31 ) FOUAUBZPUCZQZGVQQZRZFBSZCSZUDZPUEZTZGDSZESZUDZPUEZTZRASHPU
      ETZRZFMSZJSZUDZPUEZTZGKSZLSZUDZPUEZTZRNSIPUETZRZRZRZWAOQWBUAQRZWMOQWNUAQR
      ZRWFOQWGUAQRZWROQWSUAQRZRWAWNUFUKWBWMUFUKTZWFWSUFUKWGWRUFUKTZRXFXGXHXFWCV
      PQZXGXFPUGVPTZWDVQQZXMVPPUHZXNUIVPPULUJZXFVRXOVRVSXEUMZXEVRXOVBVTXEFWDVQW
      EWJWKXDUNZUOUPUQVPWCPURUSZWAWBOUAVCUTZXFWOVPQZXHXFXNWPVQQZYBXQXFVRYCXRXEV
      RYCVBVTXEFWPVQWLWQXBXCVAZUOUPUQVPWOPURUSWMWNOUAVCUTZVDXFXIXJXFWHVPQZXIXFX
      NWIVQQZYFXQXFVSYGVRVSXEVEZXEVSYGVBVTXEGWIVQWEWJWKXDVFZUOUPUQVPWHPURUSZWFW
      GOUAVCUTZXFWTVPQZXJXFXNXAVQQZYLXQXFVSYMYHXEVSYMVBVTXEGXAVQWLWQXBXCVGZUOUP
      UQVPWTPURUSWRWSOUAVCUTZVDXFXKXLXFWCWOPVHZXKXFYPWDWPTZXEYQVTXEFWDWPXSYDVIU
      PXFWCWOPVPXPXFUIVJZXTVKVNXFXGXHYPXKVBYAYEWAWBWMWNVLVMUQXFWHWTPVHZXLXFYSWI
      XATZXEYTVTXEGWIXAYIYNVIUPXFWHWTPVPYRYJVKVNXFXIXJYSXLVBYKYOWFWGWRWSVLVMUQV
      DVO $.
  $}

  ${
    $d A f g h q s t u v w z $.  $d B f g h q s t u v w z $.
    $( There is at most one result from adding non-negative fractions.
       (Contributed by Jim Kingdon, 23-Nov-2019.) $)
    addnq0mo $p |- ( ( A e. ( ( _om X. N. ) /. ~Q0 ) /\
        B e. ( ( _om X. N. ) /. ~Q0 ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~Q0 /\ B = [ <. u , t >. ] ~Q0 )
        /\ z = [ <. ( ( w .o t ) +o ( v .o u ) ) , ( v .o t ) >. ] ~Q0 ) ) $=
      ( vq vs vf ceq0 wcel wa cv cop cec wceq comu co wex vg vh com cxp cqs coa
      wi wal wmo wer enq0er a1i wbr nnnq0lem1 addcmpblnq0 imp syl erthi simprlr
      cnpi simprrr 3eqtr4d expr exlimdvv ex alrimivv opeq12 eceq1d eqeq2d simpl
      anbi1d oveq1d oveq12d opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i imbi1i
      impd simpr 2albii sylibr eqeq1 4exbidv mo4 ) FUCUTUDZKUEZLGWILMZFBNZCNZOZ
      KPZQZGDNZENZOZKPZQZMZANZWKWQRSZWLWPRSZUFSZWLWQRSZOZKPZQZMZETDTZCTBTZXAHNZ
      XHQZMZETDTCTBTZMZXBXMQZUGZHUHAUHZXLAUIWJXLFINZJNZOZKPZQZGUANZUBNZOZKPZQZM
      ZXMYAYGRSZYBYFRSZUFSZYBYGRSZOZKPZQZMZUBTUATZJTITZMZXRUGZHUHAUHXTWJUUCAHWJ
      XLUUAXRWJXKUUAXRUGZBCWJXJUUDDEWJXJUUDWJXJMZYTXRIJUUEYSXRUAUBWJXJYSXRWJXJY
      SMMZXHYQXBXMUUFXGYPKWHWHKUJUUFUKULUUFWKUCLWLUTLMYAUCLYBUTLMMWPUCLWQUTLMYF
      UCLYGUTLMMMZWKYBRSWLYARSQWPYGRSWQYFRSQMZMXGYPKUMZABCDEFGXGYPJUAUBIHUNUUGU
      UHUUIWKWLYAYBYFYGWPWQUOUPUQURWJXAXIYSUSWJXJYKYRVAVBVCVDVDVEVDVDWAVFXSUUCA
      HXQUUBXRXPUUAXLXOYEWTMZXMYAWQRSZYBWPRSZUFSZYBWQRSZOZKPZQZMYSBCDEIJUAUBWKY
      AQZWLYBQZMZXAUUJXNUUQUUTWOYEWTUUTWNYDFUUTWMYCKWKWLYAYBVGVHVIVKUUTXHUUPXMU
      UTXGUUOKUUTXEUUMXFUUNUUTXCUUKXDUULUFUUTWKYAWQRUURUUSVJVLUUTWLYBWPRUURUUSW
      BZVLVMUUTWLYBWQRUVAVLVNVHVIVOWPYFQZWQYGQZMZUUJYKUUQYRUVDWTYJYEUVDWSYIGUVD
      WRYHKWPWQYFYGVGVHVIVPUVDUUPYQXMUVDUUOYPKUVDUUMYNUUNYOUVDUUKYLUULYMUFUVDWQ
      YGYARUVBUVCWBZVQUVDWPYFYBRUVBUVCVJVQVMUVDWQYGYBRUVEVQVNVHVIVOVRVSVTWCWDXL
      XPAHXRXJXOBCDEXRXIXNXAXBXMXHWEVPWFWGWD $.

    $( There is at most one result from multiplying non-negative fractions.
       (Contributed by Jim Kingdon, 20-Nov-2019.) $)
    mulnq0mo $p |- ( ( A e. ( ( _om X. N. ) /. ~Q0 ) /\
        B e. ( ( _om X. N. ) /. ~Q0 ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~Q0 /\ B = [ <. u , t >. ] ~Q0 )
        /\ z = [ <. ( w .o u ) , ( v .o t ) >. ] ~Q0 ) ) $=
      ( vq vs vf ceq0 wcel wa cv cop cec wceq comu co wex vg vh com cnpi cxp wi
      cqs wal wmo wer a1i wbr nnnq0lem1 mulcmpblnq0 imp simprlr simprrr 3eqtr4d
      enq0er syl erthi expr exlimdvv alrimivv opeq12 eceq1d eqeq2d anbi1d simpl
      ex impd oveq1d opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i imbi1i 2albii
      simpr sylibr eqeq1 4exbidv mo4 ) FUCUDUEZKUGZLGWGLMZFBNZCNZOZKPZQZGDNZENZ
      OZKPZQZMZANZWIWNRSZWJWORSZOZKPZQZMZETDTZCTBTZWSHNZXDQZMZETDTCTBTZMZWTXIQZ
      UFZHUHAUHZXHAUIWHXHFINZJNZOZKPZQZGUANZUBNZOZKPZQZMZXIXQYBRSZXRYCRSZOZKPZQ
      ZMZUBTUATZJTITZMZXNUFZHUHAUHXPWHYQAHWHXHYOXNWHXGYOXNUFZBCWHXFYRDEWHXFYRWH
      XFMZYNXNIJYSYMXNUAUBWHXFYMXNWHXFYMMMZXDYKWTXIYTXCYJKWFWFKUJYTUSUKYTWIUCLW
      JUDLMXQUCLXRUDLMMWNUCLWOUDLMYBUCLYCUDLMMMZWIXRRSWJXQRSQWNYCRSWOYBRSQMZMXC
      YJKULZABCDEFGXCYJJUAUBIHUMUUAUUBUUCWIWJXQXRYBYCWNWOUNUOUTVAWHWSXEYMUPWHXF
      YGYLUQURVBVCVCVJVCVCVKVDXOYQAHXMYPXNXLYOXHXKYAWRMZXIXQWNRSZXRWORSZOZKPZQZ
      MYMBCDEIJUAUBWIXQQZWJXRQZMZWSUUDXJUUIUULWMYAWRUULWLXTFUULWKXSKWIWJXQXRVEV
      FVGVHUULXDUUHXIUULXCUUGKUULXAUUEXBUUFUULWIXQWNRUUJUUKVIVLUULWJXRWORUUJUUK
      WAVLVMVFVGVNWNYBQZWOYCQZMZUUDYGUUIYLUUOWRYFYAUUOWQYEGUUOWPYDKWNWOYBYCVEVF
      VGVOUUOUUHYKXIUUOUUGYJKUUOUUEYHUUFYIUUOWNYBXQRUUMUUNVIVPUUOWOYCXRRUUMUUNW
      AVPVMVFVGVNVQVRVSVTWBXHXLAHXNXFXKBCDEXNXEXJWSWTXIXDWCVOWDWEWB $.
  $}

  ${
    $d x y z w v u t s f g h a b c d A $.
    $d x y z w v u t s f g h a b c d B $.
    $d x y z w v u t s f g h a b c d C $.
    $d x y z w v u t s f g h a b c d D $.

    $( Addition of non-negative fractions in terms of natural numbers.
       (Contributed by Jim Kingdon, 22-Nov-2019.) $)
    addnnnq0 $p |- ( ( ( A e. _om /\ B e. N. ) /\
                     ( C e. _om /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q0 +Q0 [ <. C , D >. ] ~Q0 ) =
                   [ <. ( ( A .o D ) +o ( B .o C ) ) ,
                              ( B .o D ) >. ] ~Q0 ) $=
      ( vw vv vu vt com wcel cnpi wa cop ceq0 cec cv wceq comu co wex vx vy cxp
      vz cqs coa cplq0 opelxpi enq0ex ecelqsi anim12i eqid pm3.2i opeq12 eceq1d
      eqeq2d anbi1d simpl oveq1d oveq12d opeq12d anbi12d spc2egv anbi2d 2eximdv
      syl simpr oveq2d sylan9 mp2ani cvv wi ecexg ax-mp w3a simp1 simp2 4exbidv
      eqeq1d simp3 addnq0mo dfplq0qs ovig mp3an3 sylc ) AIJBKJLZCIJDKJLZLZABMZN
      OZIKUCZNUEZJZCDMZNOZWLJZLWJEPZFPZMZNOZQZWOGPZHPZMZNOZQZLZADRSZBCRSZUFSZBD
      RSZMZNOZWQXCRSZWRXBRSZUFSZWRXCRSZMZNOZQZLZHTGTZFTETZWJWOUGSXMQZWFWMWGWPWF
      WIWKJWMABIKUHWKWINUIUJVFWGWNWKJWPCDIKUHWKWNNUIUJVFUKWHWJWJQZWOWOQZLZXMXMQ
      ZYCYEYFWJULWOULUMXMULWFYGYHLZXAYFLZXMWQDRSZWRCRSZUFSZWRDRSZMZNOZQZLZFTETW
      GYCYRYIEFABIKWQAQZWRBQZLZYJYGYQYHUUAXAYEYFUUAWTWJWJUUAWSWINWQWRABUNUOUPUQ
      UUAYPXMXMUUAYOXLNUUAYMXJYNXKUUAYKXHYLXIUFUUAWQADRYSYTURUSUUAWRBCRYSYTVGZU
      SUTUUAWRBDRUUBUSVAUOUPVBVCWGYRYBEFYAYRGHCDIKXBCQZXCDQZLZXGYJXTYQUUEXFYFXA
      UUEXEWOWOUUEXDWNNXBXCCDUNUOUPVDUUEXSYPXMUUEXRYONUUEXPYMXQYNUUEXNYKXOYLUFU
      UEXCDWQRUUCUUDVGZVHUUEXBCWRRUUCUUDURVHUTUUEXCDWRRUUFVHVAUOUPVBVCVEVIVJWMW
      PXMVKJZYCYDVLNVKJUUGUIXLVKNVMVNUAPZWTQZUBPZXEQZLZUDPZXSQZLZHTGTFTETYCUAUB
      UDWJWOXMVKWLWLUGUUHWJQZUUJWOQZUUMXMQZVOZUUOYAEFGHUUSUULXGUUNXTUUSUUIXAUUK
      XFUUSUUHWJWTUUPUUQUURVPVSUUSUUJWOXEUUPUUQUURVQVSVBUUSUUMXMXSUUPUUQUURVTVS
      VBVRUDEFGHUUHUUJWAUAUBUDEFGHWBWCWDWE $.

    $( Multiplication of non-negative fractions in terms of natural numbers.
       (Contributed by Jim Kingdon, 19-Nov-2019.) $)
    mulnnnq0 $p |- ( ( ( A e. _om /\ B e. N. ) /\
                     ( C e. _om /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q0 .Q0 [ <. C , D >. ] ~Q0 ) =
                   [ <. ( A .o C ) , ( B .o D ) >. ] ~Q0 ) $=
      ( vw vv vu vt com wcel cnpi wa cop ceq0 cec cv wceq comu co wex vx vy cxp
      vz cqs cmq0 opelxpi enq0ex ecelqsi syl anim12i pm3.2i opeq12 eceq1 eqeq2d
      eqid wb anbi1d vex opth oveq1 adantr adantl opeq12d sylbi anbi12d spc2egv
      eceq1d anbi2d oveq2 2eximdv sylan9 mp2ani cvv wi ecexg ax-mp w3a bi2anan9
      eqeq1 3impa 4exbidv mulnq0mo dfmq0qs ovig mp3an3 sylc ) AIJBKJLZCIJDKJLZL
      ZABMZNOZIKUCZNUEZJZCDMZNOZWNJZLWLEPZFPZMZNOZQZWQGPZHPZMZNOZQZLZACRSZBDRSZ
      MZNOZWSXDRSZWTXERSZMZNOZQZLZHTGTZFTETZWLWQUFSXMQZWHWOWIWRWHWKWMJWOABIKUGW
      MWKNUHUIUJWIWPWMJWRCDIKUGWMWPNUHUIUJUKWJWLWLQZWQWQQZLZXMXMQZYAYCYDWLUPWQU
      PULXMUPWHYEYFLZXCYDLZXMWSCRSZWTDRSZMZNOZQZLZFTETWIYAYNYGEFABIKWSAQZWTBQZL
      ZXAWKQZYNYGUQWSWTABUMYRYHYEYMYFYRXCYCYDYRXBWLWLXAWKNUNUOURYRYLXMXMYRYKXLN
      YRYQYKXLQWSWTABEUSFUSUTYQYIXJYJXKYOYIXJQYPWSACRVAVBYPYJXKQYOWTBDRVAVCVDVE
      VHUOVFUJVGWIYNXTEFXSYNGHCDIKXDCQZXEDQZLZXFWPQZXSYNUQXDXECDUMUUBXIYHXRYMUU
      BXHYDXCUUBXGWQWQXFWPNUNUOVIUUBXQYLXMUUBXPYKNUUBUUAXPYKQXDXECDGUSHUSUTUUAX
      NYIXOYJYSXNYIQYTXDCWSRVJVBYTXOYJQYSXEDWTRVJVCVDVEVHUOVFUJVGVKVLVMWOWRXMVN
      JZYAYBVONVNJUUCUHXLVNNVPVQUAPZXBQZUBPZXGQZLZUDPZXQQZLZHTGTFTETYAUAUBUDWLW
      QXMVNWNWNUFUUDWLQZUUFWQQZUUIXMQZVRUUKXSEFGHUULUUMUUNUUKXSUQUULUUMLUUHXIUU
      NUUJXRUULUUEXCUUMUUGXHUUDWLXBVTUUFWQXGVTVSUUIXMXQVTVSWAWBUDEFGHUUDUUFWCUA
      UBUDEFGHWDWEWFWG $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of addition on non-negative fractions.  (Contributed by Jim
       Kingdon, 29-Nov-2019.) $)
    addclnq0 $p |- ( ( A e. Q0. /\ B e. Q0. ) -> ( A +Q0 B ) e. Q0. ) $=
      ( vx vy vz vw cnq0 wcel wa cplq0 co com cnpi ceq0 cv cop df-nq0 wceq comu
      cec cxp cqs oveq1 eleq1d oveq2 coa addnnnq0 pinn nnmcl sylan2 sylan nnacl
      syl2an cmi mulpiord mulclpi eqeltrrd ad2ant2l opelxpi enq0ex ecelqsi 3syl
      an42s jca eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIABJKZLMUAZNUBZGCOZDOZPNTZE
      OZFOZPNTZJKZVJHAVPJKZVJHVHVJHCDEFABLMNGQVMARVQVRVJVMAVPJUCUDVPBRVRVHVJVPB
      AJUEUDVKLHZVLMHZIVNLHZVOMHZIIZVQVKVOSKZVLVNSKZUFKZVLVOSKZPZNTZVJVKVLVNVOU
      GWCWFLHZWGMHZIWHVIHWIVJHWCWJWKVSWBVTWAWJVSWBIWDLHZWELHZWJVTWAIWBVSVOLHWLV
      OUHVKVOUIUJVTVLLHWAWMVLUHVLVNUIUKWDWEULUMVCVTWBWKVSWAVTWBIVLVOUNKWGMVLVOU
      OVLVOUPUQURVDWFWGLMUSVIWHNUTVAVBVEVFQVG $.

    $( Closure of multiplication on non-negative fractions.  (Contributed by
       Jim Kingdon, 30-Nov-2019.) $)
    mulclnq0 $p |- ( ( A e. Q0. /\ B e. Q0. ) -> ( A .Q0 B ) e. Q0. ) $=
      ( vx vy vz vw cnq0 wcel wa cmq0 co com cnpi ceq0 cv cop cec df-nq0 eleq1d
      wceq cxp cqs oveq1 oveq2 comu mulnnnq0 nnmcl cmi mulpiord mulclpi anim12i
      eqeltrrd an4s opelxpi enq0ex ecelqsi 3syl eqeltrd 2ecoptocl syl6eleqr ) A
      GHBGHIABJKZLMUAZNUBZGCOZDOZPNQZEOZFOZPNQZJKZVCHAVIJKZVCHVAVCHCDEFABLMNGRV
      FATVJVKVCVFAVIJUCSVIBTVKVAVCVIBAJUDSVDLHZVEMHZIVGLHZVHMHZIIZVJVDVGUEKZVEV
      HUEKZPZNQZVCVDVEVGVHUFVPVQLHZVRMHZIZVSVBHVTVCHVLVNVMVOWCVLVNIWAVMVOIZWBVD
      VGUGWDVEVHUHKVRMVEVHUIVEVHUJULUKUMVQVRLMUNVBVSNUOUPUQURUSRUT $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.

    $( A positive fraction plus a non-negative fraction is a positive
       fraction.  (Contributed by Jim Kingdon, 30-Nov-2019.) $)
    nqpnq0nq $p |- ( ( A e. Q. /\ B e. Q0. ) -> ( A +Q0 B ) e. Q. ) $=
      ( vx vy vz vw cnq wcel wa cv cnpi cop ceq cec wceq com wex cplq0 syl2anc
      co cnq0 ceq0 nqpi nq0nn anim12i ee4anv sylibr coa oveq12 ad2ant2l nqnq0pi
      comu oveq1d adantr addnnnq0 sylanl1 eqtr3d ad2ant2r eqtrd cxp nnmcl sylan
      pinn cqs ad2ant2lr cmi mulpiord mulclpi eqeltrrd ad2ant2rl nnacom nnppipi
      sylan2 opelxpi enqex ecelqsi syl df-nqqs syl6eleqr eleq1d mpbird exlimivv
      wb eqeltrd ) AGHZBUAHZIZCJZKHZDJZKHZIZAWHWJLZMNZOZIZEJZPHZFJZKHZIZBWQWSLU
      BNZOZIZIZFQEQZDQCQZABRTZGHZWGWPDQCQZXDFQEQZIXGWEXJWFXKCDAUCEFBUDUEWPXDCDE
      FUFUGXFXICDXEXIEFXEXHWHWSULTZWJWQULTZUHTZWJWSULTZLZUBNZGXEXHWNXBRTZXQWOXC
      XHXROWLXAAWNBXBRUIUJWLXAXRXQOWOXCWLXAIZWMUBNZXBRTZXRXQWLYAXROXAWLXTWNXBRW
      HWJUKUMUNWIWHPHWKXAYAXQOWHVCWHWJWQWSUOUPUQURUSWLXAXQGHZWOXCXSYBXPMNZGHZXS
      YCKKUTZMVDZGXSXPYEHZYCYFHXSXNKHZXOKHZYGXSXMXLUHTZXNKXSXMPHZXLKHZYJXNOZWKW
      RYKWIWTWKWJPHWRYKWJVCWJWQVAVBVEZWIWTYLWKWRWIWTIWHWSVFTXLKWHWSVGWHWSVHVIVJ
      ZYLYKXLPHYMXLVCXMXLVKVMSXSYKYLYJKHYNYOXMXLVLSVIZWKWTYIWIWRWKWTIWJWSVFTXOK
      WJWSVGWJWSVHVIUJZXNXOKKVNSYEXPMVOVPVQVRVSXSYHYIYBYDWCYPYQYHYIIXQYCGXNXOUK
      VTSWAURWDWBWBVQ $.
  $}

  ${
    $d A u v w z $.  $d B u v w z $.

    $( Addition of positive fractions is equal with ` +Q ` or ` +Q0 ` .
       (Contributed by Jim Kingdon, 10-Nov-2019.) $)
    nqnq0a $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A +Q B ) = ( A +Q0 B ) ) $=
      ( vz vw vv vu wcel wa cv cnpi cop ceq cec wceq wex cplq co cplq0 ceq0 cmi
      cnq nqpi anim12i ee4anv sylibr oveq12 cpli coa mulclpi ad2ant2rl addpiord
      comu ad2ant2lr syl2anc mulpiord oveq12d ad2ant2l opeq12d eceq1d addpipqqs
      eqtrd addclpi nqnq0pi eqtr4d com anim1i addnnnq0 syl2an 3eqtr4d sylan9eqr
      pinn adantr eqeq2d adantl anbi12d pm5.32i sylbir an4s exlimivv syl ) AUAG
      ZBUAGZHZCIZJGZDIZJGZHZAWDWFKZLMZNZHZEIZJGZFIZJGZHZBWMWOKZLMZNZHZHZFOEOZDO
      COZABPQZABRQZNZWCWLDOCOZXAFOEOZHXDWAXHWBXICDAUBEFBUBUCWLXACDEFUDUEXCXGCDX
      BXGEFWHWQWKWTXGWHWQHZWKWTHZHZXEWISMZWRSMZRQZXFXKXJXEWJWSPQZXOAWJBWSPUFXJW
      DWOTQZWFWMTQZUGQZWFWOTQZKZSMZWDWOULQZWFWMULQZUHQZWFWOULQZKZSMZXPXOXJYAYGS
      XJXSYEXTYFXJXSXQXRUHQZYEXJXQJGZXRJGZXSYINWEWPYJWGWNWDWOUIUJZWGWNYKWEWPWFW
      MUIUMZXQXRUKUNXJXQYCXRYDUHWEWPXQYCNWGWNWDWOUOUJWGWNXRYDNWEWPWFWMUOUMUPVAW
      GWPXTYFNWEWNWFWOUOUQURUSXJXPYALMZYBWDWFWMWOUTXJXSJGZXTJGZYBYNNXJYJYKYOYLY
      MXQXRVBUNWGWPYPWEWNWFWOUIUQXSXTVCUNVDWHWDVEGZWGHWMVEGZWPHXOYHNWQWEYQWGWDV
      KVFWNYRWPWMVKVFWDWFWMWOVGVHVIVJXLXJAXMNZBXNNZHZHXFXONZXJUUAXKXJYSWKYTWTXJ
      XMWJAWHXMWJNWQWDWFVCVLVMXJXNWSBWQXNWSNWHWMWOVCVNVMVOVPUUAUUBXJAXMBXNRUFVN
      VQVDVRVSVSVT $.
  $}

  ${
    $d A a b c d x y z w v u $.  $d B a b c d x y z w v u $.
    $( Multiplication of positive fractions is equal with ` .Q ` or ` .Q0 ` .
       (Contributed by Jim Kingdon, 10-Nov-2019.) $)
    nqnq0m $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A .Q B ) = ( A .Q0 B ) ) $=
      ( vz vw vv vu wcel wa cv cnpi cop ceq cec wceq wex cmq cmq0 ceq0 nqnq0pi
      co cnq nqpi anim12i ee4anv sylibr comu mulpiord ad2ant2r ad2ant2l opeq12d
      oveq12 cmi eceq1d mulpipqqs mulclpi syl2anc eqtr4d com pinn anim1i syl2an
      mulnnnq0 3eqtr4d adantr eqeq2d adantl anbi12d pm5.32i sylbir exlimivv syl
      sylan9eqr an4s ) AUAGZBUAGZHZCIZJGZDIZJGZHZAVQVSKZLMZNZHZEIZJGZFIZJGZHZBW
      FWHKZLMZNZHZHZFOEOZDOCOZABPTZABQTZNZVPWEDOCOZWNFOEOZHWQVNXAVOXBCDAUBEFBUB
      UCWEWNCDEFUDUEWPWTCDWOWTEFWAWJWDWMWTWAWJHZWDWMHZHZWRWBRMZWKRMZQTZWSXDXCWR
      WCWLPTZXHAWCBWLPUKXCVQWFULTZVSWHULTZKZRMZVQWFUFTZVSWHUFTZKZRMZXIXHXCXLXPR
      XCXJXNXKXOVRWGXJXNNVTWIVQWFUGUHVTWIXKXONVRWGVSWHUGUIUJUMXCXIXLLMZXMVQVSWF
      WHUNXCXJJGZXKJGZXMXRNVRWGXSVTWIVQWFUOUHVTWIXTVRWGVSWHUOUIXJXKSUPUQWAVQURG
      ZVTHWFURGZWIHXHXQNWJVRYAVTVQUSUTWGYBWIWFUSUTVQVSWFWHVBVAVCVLXEXCAXFNZBXGN
      ZHZHWSXHNZXCYEXDXCYCWDYDWMXCXFWCAWAXFWCNWJVQVSSVDVEXCXGWLBWJXGWLNWAWFWHSV
      FVEVGVHYEYFXCAXFBXGQUKVFVIUQVMVJVJVK $.
  $}

  ${
    $d A v w $.
    $( Multiplication with zero for non-negative fractions.  (Contributed by
       Jim Kingdon, 5-Nov-2019.) $)
    nq0m0r $p |- ( A e. Q0. -> ( 0Q0 .Q0 A ) = 0Q0 ) $=
      ( vw vv wcel cv com cnpi wa cop ceq0 cec wceq c0q0 cmq0 co c0 comu peano1
      c1o 1pi cnq0 wex nq0nn df-0nq0 oveq12 mpan mpanl12 sylan9eqr nnm0r oveq1d
      mulnnnq0 1onn ax-mp syl6eq adantr cmi mulpiord mulclpi eqeltrrd pinn nnm0
      adantl eqtr4d wb syl6eqel enq0eceq mpanr12 syl2an mpbird syl6eqr exlimivv
      3syl eqtrd syl ) AUADBEZFDZCEZGDZHZAVOVQIJKZLZHZCUBBUBMANOZMLZBCAUCWBWDBC
      WBWCPVOQOZSVQQOZIJKZMWAVSWCPSIJKZVTNOZWGMWHLWAWCWILUDMWHAVTNUEUFPFDZSGDZV
      SWIWGLRTPSVOVQUKUGUHVSWGMLWAVSWGWHMVSWGWHLZWESQOZWFPQOZLZVSWMPWNVPWMPLVRV
      PWMPSQOZPVPWEPSQVOUIZUJSFDWPPLULSUIUMUNUOVRWNPLZVPVRWFGDZWFFDWRWKVRWSTWKV
      RHSVQUPOWFGSVQUQSVQURUSUFZWFUTWFVAVLVBVCVPWEFDZWSWLWOVDZVRVPWEPFWQRVEWTXA
      WSHWJWKXBRTWEWFPSVFVGVHVIUDVJUOVMVKVN $.

    $( Addition with zero for non-negative fractions.  (Contributed by Jim
       Kingdon, 5-Nov-2019.) $)
    nq0a0 $p |- ( A e. Q0. -> ( A +Q0 0Q0 ) = A ) $=
      ( vw vv wcel cv com cnpi wa cop ceq0 cec wceq c0q0 cplq0 c1o comu coa syl
      co c0 cnq0 wex nq0nn df-0nq0 oveq12 peano1 1pi addnnnq0 mpanr12 sylan9eqr
      mpan2 pinn nnm0 oveq2d nnm1 oveq1d nna0 eqtrd adantl eceq1d eqeq2d eqtr4d
      opeq12d biimpar exlimivv ) AUADBEZFDZCEZGDZHZAVFVHIZJKZLZHZCUBBUBAMNSZALZ
      BCAUCVNVPBCVNVOVFOPSZVHTPSZQSZVHOPSZIZJKZAVMVJVOVLTOIJKZNSZWBVMMWCLVOWDLU
      DAVLMWCNUEUKVJTFDOGDWDWBLUFUGVFVHTOUHUIUJVJAWBLVMVJWBVLAVJWAVKJVJVSVFVTVH
      VIVGVSVQTQSZVFVIVHFDZVSWELVHULZWFVRTVQQVHUMUNRVGWEVFTQSVFVGVQVFTQVFUOUPVF
      UQURUJVIVTVHLZVGVIWFWHWGVHUORUSVCUTVAVDVBVER $.
  $}

  $( Addition of non-negative fractions with a common denominator.  You can add
     two fractions with the same denominator by adding their numerators and
     keeping the same denominator.  (Contributed by Jim Kingdon,
     1-Dec-2019.) $)
  nnanq0 $p |- ( ( N e. _om /\ M e. _om /\ A e. N. ) ->
      [ <. ( N +o M ) , A >. ] ~Q0 =
      ( [ <. N , A >. ] ~Q0 +Q0 [ <. M , A >. ] ~Q0 ) ) $=
    ( com wcel cnpi w3a cop ceq0 cec cplq0 co comu wceq addnnnq0 3impdir nnmcom
    coa pinn sylan2 3adant2 oveq1d nndi 3coml syl3an3 eqtr4d opeq1d simp3 nnacl
    eceq1d 3adant3 mulcanenq0ec syl3anc 3eqtrrd ) CDEZBDEZAFEZGZCAHIJBAHIJKLZCA
    MLZABMLZRLZAAMLZHZIJZACBRLZMLZVCHZIJZVFAHIJZUOUQUPUSVENCABAOPURVDVHIURVBVGV
    CURVBACMLZVARLZVGURUTVKVARUOUQUTVKNZUPUQUOADEZVMASZCAQTUAUBUQUOUPVNVGVLNZVO
    VNUOUPVPACBUCUDUEUFUGUJURUQVFDEZUQVIVJNUOUPUQUHZUOUPVQUQCBUIUKVRAVFAULUMUN
    $.

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $d f g h u v w x y z $.
    $( Multiplication of non-negative fractions is distributive.  (Contributed
       by Jim Kingdon, 27-Nov-2019.) $)
    distrnq0 $p |- ( ( A e. Q0. /\ B e. Q0. /\ C e. Q0. ) ->
        ( A .Q0 ( B +Q0 C ) ) = ( ( A .Q0 B ) +Q0 ( A .Q0 C ) ) ) $=
      ( cnq0 wcel cplq0 co cmq0 wceq wa cop ceq0 cec com cnpi comu nnmcl adantl
      cv syl vz vw vv vu vx vy vf vg vh df-nq0 oveq1 oveq2d oveq2 oveq1d imbi2d
      wi eqeq12d oveq12d w3a coa an42 anbi2i 3anass 3bitr4i sylan ancoms sylan2
      pinn syl3an simp1r simp1l 3ad2ant2 3ad2ant3 nnacl syl2anc syl3an1 syl3anc
      nnmass nnmcom adantr simpll ad2antlr simprl simprr caov4d 3adant3 3adant2
      nndi eqtr3d 3eqtr3d sylbir cmi mulpiord ad2ant2lr 3adant1 eqeltrrd opeq12
      mulclpi eceq1d addnnnq0 syl2an an42s ad2ant2l eleq1d mpbid mulnnnq0 simpl
      wb jca anim12i an12 bitr4i sylib an4s mulcanenq0ec eqtr4d eqtrd oveqan12d
      3impb 3impdi 3eqtr4d 3expib ecoptocl com12 2ecoptocl 3impib ) ADEZBDEZCDE
      ZABCFGZHGZABHGZACHGZFGZIZYHYIJYGYOYGAUASZUBSZKLMZUCSZUDSZKLMZFGZHGZAYRHGZ
      AUUAHGZFGZIZUPYGABUUAFGZHGZYLUUEFGZIZUPYGYOUPUAUBUCUDBCNOLDUJYRBIZUUGUUKY
      GUULUUCUUIUUFUUJUULUUBUUHAHYRBUUAFUKULUULUUDYLUUEFYRBAHUMUNUQUOUUACIZUUKY
      OYGUUMUUIYKUUJYNUUMUUHYJAHUUACBFUMULUUMUUEYMYLFUUACAHUMULUQUOYGYPNEZYQOEZ
      JZYSNEZYTOEZJZJZUUGUUTUESZUFSZKLMZUUBHGZUVCYRHGZUVCUUAHGZFGZIZUPUUTUUGUPU
      EUFANOLDUJUVCAIZUVHUUGUUTUVIUVDUUCUVGUUFUVCAUUBHUKUVIUVEUUDUVFUUEFUVCAYRH
      UKUVCAUUAHUKURUQUOUVANEZUVBOEZJZUUPUUSUVHUVLUUPUUSUSZUVBUVAYPYTPGZYQYSPGZ
      UTGZPGZPGZUVBUVBYQYTPGZPGZPGZKZLMZUVAYPPGZUVBYTPGZPGZUVBYQPGZUVAYSPGZPGZU
      TGZUWGUWEPGZKZLMZUVDUVGUVMUVRUWJIZUWAUWKIZUWCUWMIUVMUVLUUNUURJZUUOUUQJZUS
      ZUWNUVLUWPUWQJZJUVLUUTJZUWRUVMUWSUUTUVLUUNUURUUOUUQVAVBUVLUWPUWQVCUVLUUPU
      USVCVDZUWRUVBUVAPGZUVPPGZUXBUVNPGZUXBUVOPGZUTGZUVRUWJUVLUXBNEZUWPUVNNEZUW
      QUVONEZUXCUXFIUVKUVJUXGUVKUVBNEZUVJUXGUVBVHZUVBUVAQVEVFUURUUNYTNEZUXHYTVH
      ZYPYTQVGZUUOYQNEZUUQUXIYQVHZYQYSQVEZUXBUVNUVOWHVIUWRUVKUVJUVPNEZUXCUVRIZU
      VJUVKUWPUWQVJZUVJUVKUWPUWQVKUWRUXHUXIUXRUWPUVLUXHUWQUXNVLUWQUVLUXIUWPUXQV
      MUVNUVOVNZVOUVKUXJUVJUXRUXSUXKUVBUVAUVPVRVPVQUWRUXDUWFUXEUWIUTUVLUWPUXDUW
      FIUWQUVLUWPJZUVAUVBPGZUVNPGZUXDUWFUVLUYDUXDIUWPUVLUYCUXBUVNPUVKUVJUXJUYCU
      XBIUXKUVAUVBVSVGUNVTUYBUGUHUIUVAUVBYPYTNPUVJUVKUWPWAUVKUXJUVJUWPUXKWBUVLU
      UNUURWCUGSZNEZUHSZNEZJZUYEUYGPGZUYGUYEPGIZUYBUYEUYGVSZRUYFUYHUISZNEUSZUYJ
      UYMPGUYEUYGUYMPGPGIZUYBUYEUYGUYMVRZRUYBUURUXLUVLUUNUURWDZUXMTUYIUYJNEZUYB
      UYEUYGQZRWEWIWFUVLUWQUXEUWIIUWPUVLUWQJZUGUHUIUVBUVAYQYSNPUVKUXJUVJUWQUXKW
      BUVJUVKUWQWAUYTUUOUXOUVLUUOUUQWCZUXPTUYIUYKUYTUYLRUYNUYOUYTUYPRUVLUUOUUQW
      DUYIUYRUYTUYSRWEWGURWJWKUVMUWRUWOUXAUWRUVBUVBPGUVSPGZUWAUWKUWRUXJUXJUVSNE
      VUBUWAIUWRUVKUXJUXTUXKTZVUCUWRYQYTWLGZUVSNUWPUWQVUDUVSIZUVLUURUUOVUEUUNUU
      QUUOUURVUEYQYTWMZVFWNWOUWRVUDOEZVUDNEUWRUUOUURVUGUVLUWQUUOUWPVUAWGZUVLUWP
      UURUWQUYQWFZYQYTWRZVOVUDVHTWPUVBUVBUVSVRVQUWRUGUHUIUVBUVBYQYTNPVUCVUCUWRU
      UOUXOVUHUXPTUYIUYKUWRUYLRUYNUYOUWRUYPRUWRUURUXLVUIUXMTUYIUYRUWRUYSRWEWIWK
      UWNUWOJUWBUWLLUVRUWAUWJUWKWQWSVOUVLUUPUUSUVDUWCIUWTUVDUVCUVPUVSKLMZHGZUWC
      UUTUVDVULIUVLUUTUUBVUKUVCHYPYQYSYTWTULRUUTUVLUXRUVSOEZJZVULUWCIUUTUXRVUMU
      UNUURUUOUUQUXRUWPUXHUXIUXRUWQUXNUXQUYAXAXBUUTVUGVUMUUOUURVUGUUNUUQVUJXCUU
      OUURVUGVUMXHUUNUUQUUOUURJVUDUVSOVUFXDXCXEXIUVLVUNJZVULUVQUVTKLMZUWCUVAUVB
      UVPUVSXFVUOUVKUVQNEZUVTOEZUSZUWCVUPIUVJUXRUVKVUMVUSUVJUXRJZUVKVUMJZJVUQUV
      KVURJZJZVUSVUTVUQVVAVVBUVAUVPQVVAUVKVURUVKVUMXGVVAUVBUVSWLGUVTOUVBUVSWMUV
      BUVSWRWPXIXJVVCUVKVUQVURJJVUSVUQUVKVURXKUVKVUQVURVCXLXMXNUVBUVQUVTXOTXPVG
      XQXSUVLUUPUUSUVGUWMIUVLUUPJZUVLUUSJZJUVGUWDUWGKLMZUWHUWEKLMZFGZUWMVVDVVEU
      VEVVFUVFVVGFUVAUVBYPYQXFUVAUVBYSYTXFXRVVDUWDNEZUWGOEZJZUWHNEZUWEOEZJZVVHU
      WMIVVEUVJUUNUVKUUOVVKUVJUUNJVVIUVKUUOJZVVJUVAYPQVVOUVBYQWLGUWGOUVBYQWMUVB
      YQWRWPXJXNUVJUUQUVKUURVVNUVJUUQJVVLUVKUURJZVVMUVAYSQVVPUVBYTWLGUWEOUVBYTW
      MUVBYTWRWPXJXNUWDUWGUWHUWEWTXAXQXTYAYBYCYDYEYDYF $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Multiplication of non-negative fractions is commutative.  (Contributed
       by Jim Kingdon, 27-Nov-2019.) $)
    mulcomnq0 $p |- ( ( A e. Q0. /\ B e. Q0. ) ->
        ( A .Q0 B ) = ( B .Q0 A ) ) $=
      ( vx vy vz vw cv cop ceq0 cec cmq0 co wceq com cnpi oveq1 oveq2 wcel comu
      wa cnq0 df-nq0 eqeq12d nnmcom ad2ant2r pinn syl2an ad2ant2l opeq12 eceq1d
      syl2anc mulnnnq0 ancoms 3eqtr4d 2ecoptocl ) CGZDGZHIJZEGZFGZHIJZKLZVAURKL
      ZMAVAKLZVAAKLZMABKLZBAKLZMCDEFABNOIUAUBURAMVBVDVCVEURAVAKPURAVAKQUCVABMVD
      VFVEVGVABAKQVABAKPUCUPNRZUQORZTZUSNRZUTORZTZTZUPUSSLZUQUTSLZHZIJZUSUPSLZU
      TUQSLZHZIJZVBVCVNVOVSMZVPVTMZVRWBMVHVKWCVIVLUPUSUDUEVIVLWDVHVKVIUQNRUTNRW
      DVLUQUFUTUFUQUTUDUGUHWCWDTVQWAIVOVPVSVTUIUJUKUPUQUSUTULVMVJVCWBMUSUTUPUQU
      LUMUNUO $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f g h $.

    $( A natural number closure law.  Lemma for ~ addassnq0 .  (Contributed by
       Jim Kingdon, 3-Dec-2019.) $)
    addassnq0lemcl $p |- (
        ( ( I e. _om /\ J e. N. ) /\ ( K e. _om /\ L e. N. ) ) ->
        ( ( ( I .o L ) +o ( J .o K ) ) e. _om /\ ( J .o L ) e. N. ) ) $=
      ( com wcel cnpi wa comu co coa pinn nnmcl ad2ant2rl sylan ad2ant2lr nnacl
      sylan2 syl2anc cmi mulpiord mulclpi eqeltrrd ad2ant2l jca ) AEFZBGFZHCEFZ
      DGFZHHZADIJZBCIJZKJEFZBDIJZGFZUJUKEFZULEFZUMUFUIUPUGUHUIUFDEFUPDLADMRNUGU
      HUQUFUIUGBEFUHUQBLBCMOPUKULQSUGUIUOUFUHUGUIHBDTJUNGBDUABDUBUCUDUE $.

    $( Addition of non-negaative fractions is associative.  (Contributed by Jim
       Kingdon, 29-Nov-2019.) $)
    addassnq0 $p |- ( ( A e. Q0. /\ B e. Q0. /\ C e. Q0. ) ->
        ( ( A +Q0 B ) +Q0 C ) = ( A +Q0 ( B +Q0 C ) ) ) $=
      ( cnq0 wcel cplq0 co wceq wa cv cop ceq0 cec wi com cnpi comu coa syl2anc
      nnmcl vz vw vv vu vx vy vf vg vh df-nq0 oveq2 oveq1d oveq1 oveq2d eqeq12d
      imbi2d w3a simp1l simp2r simp3r simp1r simp2l simp3l nnaass nnmcom adantl
      pinn syl3anc nndir nnmass caovdilemd oveq12d nndi 3eqtr4d opeq12 addnnnq0
      syl eceq1d adantr addassnq0lemcl sylan eqtrd 3impa sylan2 3expib ecoptocl
      3impb com12 2ecoptocl 3impib ) ADEZBDEZCDEZABFGZCFGZABCFGZFGZHZWLWMIWKWRW
      KAUAJZUBJZKLMZFGZUCJZUDJZKLMZFGZAXAXEFGZFGZHZNWKWNXEFGZABXEFGZFGZHZNWKWRN
      UAUBUCUDBCOPLDUJXABHZXIXMWKXNXFXJXHXLXNXBWNXEFXABAFUKULXNXGXKAFXABXEFUMUN
      UOUPXECHZXMWRWKXOXJWOXLWQXECWNFUKXOXKWPAFXECBFUKUNUOUPWKWSOEZWTPEZIZXCOEZ
      XDPEZIZIZXIYBUEJZUFJZKLMZXAFGZXEFGZYEXGFGZHZNYBXINUEUFAOPLDUJYEAHZYIXIYBY
      JYGXFYHXHYJYFXBXEFYEAXAFUMULYEAXGFUMUOUPYCOEZYDPEZIZXRYAYIYMXRYAUQZYCWTQG
      YDWSQGRGZXDQGZYDWTQGZXCQGZRGZYQXDQGZKZLMZYCWTXDQGZQGZYDWSXDQGZWTXCQGZRGZQ
      GZRGZYDUUCQGZKZLMZYGYHYNYSUUIHZYTUUJHZUUBUULHYNUUDYDUUEQGZRGZYDUUFQGZRGZU
      UDUUOUUQRGZRGZYSUUIYNUUDOEZUUOOEZUUQOEZUURUUTHYNYKUUCOEZUVAYKYLXRYAURZYNW
      TOEZXDOEZUVDYNXQUVFYMXPXQYAUSWTVGVQZYNXTUVGYMXRXSXTUTXDVGVQZWTXDTSYCUUCTS
      YNYDOEZUUEOEZUVBYNYLUVJYKYLXRYAVAYDVGVQZYNXPUVGUVKYMXPXQYAVBZUVIWSXDTSZYD
      UUETSYNUVJUUFOEZUVCUVLYNUVFXSUVOUVHYMXRXSXTVCZWTXCTSZYDUUFTSUUDUUOUUQVDVH
      YNYPUUPYRUUQRYNUGUHUIYCYDWTWSORQXDUGJZOEZUHJZOEZIZUVRUVTQGZUVTUVRQGHYNUVR
      UVTVEVFUVSUWAUIJZOEUQZUVRUVTRGUWDQGUVRUWDQGUVTUWDQGZRGHYNUVRUVTUWDVIVFUWE
      UWCUWDQGUVRUWFQGHYNUVRUVTUWDVJVFUWBUWCOEYNUVRUVTTVFUVEUVLUVHUVMUVIVKYNUVJ
      UVFXSYRUUQHUVLUVHUVPYDWTXCVJVHVLYNUUHUUSUUDRYNUVJUVKUVOUUHUUSHUVLUVNUVQYD
      UUEUUFVMVHUNVNYNUVJUVFUVGUUNUVLUVHUVIYDWTXDVJVHUUMUUNIUUAUUKLYSYTUUIUUJVO
      VRSYMXRYAYGUUBHYMXRIZYAIYGYOYQKLMZXEFGZUUBUWGYGUWIHYAUWGYFUWHXEFYCYDWSWTV
      PULVSUWGYOOEYQPEIYAUWIUUBHYCYDWSWTVTYOYQXCXDVPWAWBWCYMXRYAYHUULHYMYBIYHYE
      UUGUUCKLMZFGZUULYBYHUWKHYMYBXGUWJYEFWSWTXCXDVPUNVFYBYMUUGOEUUCPEIUWKUULHW
      SWTXCXDVTYCYDUUGUUCVPWDWBWGVNWEWFWHWIWHWJ $.
  $}

  $( Multiplication of non-negative fractions is distributive.  Version of
     ~ distrnq0 with the multiplications commuted.  (Contributed by Jim
     Kingdon, 29-Nov-2019.) $)
  distnq0r $p |- ( ( A e. Q0. /\ B e. Q0. /\ C e. Q0. ) ->
      ( ( B +Q0 C ) .Q0 A ) = ( ( B .Q0 A ) +Q0 ( C .Q0 A ) ) ) $=
    ( cnq0 wcel w3a cplq0 co cmq0 distrnq0 wceq addclnq0 mulcomnq0 sylan2 3impb
    wa 3adant3 3adant2 oveq12d 3eqtr3d ) ADEZBDEZCDEZFZABCGHZIHZABIHZACIHZGHUEA
    IHZBAIHZCAIHZGHABCJUAUBUCUFUIKZUBUCPUAUEDEULBCLAUEMNOUDUGUJUHUKGUAUBUGUJKUC
    ABMQUAUCUHUKKUBACMRST $.

  ${
    $( Addition of one to the numerator of a fraction whose denominator is
       one.  (Contributed by Jim Kingdon, 26-Apr-2020.) $)
    addpinq1 $p |- ( A e. N. ->
        [ <. ( A +N 1o ) , 1o >. ] ~Q = ( [ <. A , 1o >. ] ~Q +Q 1Q ) ) $=
      ( cnpi wcel c1o cop ceq cec c1q cplq co cmi cpli df-1nqqs oveq2i wceq 1pi
      wa addpipqqs mulidpi ax-mp mpan2 syl5eq eceq1 syl6eq oveq1d opeq1d eceq1d
      mpanr12 opeq12i eqtr2d ) ABCZADEFGZHIJZADKJZDLJZDEZFGZADLJZDEZFGUKUMUNDDK
      JZLJZUTEZFGZUQUKUMULDDEFGZIJZVCHVDULIMNUKDBCZVEVCOZPUKVFQVFVFVGPPADDDRUHU
      AUBVBUPOVCUQOVAUOUTDUTDUNLVFUTDOPDSTZNVHUIVBUPFUCTUDUKUPUSFUKUOURDUKUNADL
      ASUEUFUGUJ $.
  $}

  ${
    $d A w z $.
    $( Multiply a non-negative fraction by two.  (Contributed by Jim Kingdon,
       29-Nov-2019.) $)
    nq02m $p |- ( A e. Q0. ->
        ( [ <. 2o , 1o >. ] ~Q0 .Q0 A ) = ( A +Q0 A ) ) $=
      ( vz vw wcel cv com cnpi wa cop ceq0 cec wceq wex c2o c1o cmq0 cplq0 comu
      co adantr cnq0 nq0nn coa 2onn mulnnnq0 mpanl12 nn2m pinn 1onn nnmcom mpan
      1pi nnm1 eqtrd adantl opeq12d eceq1d nnanq0 3anidm12 3eqtrd oveq2 oveq12d
      syl wb id eqeq12d mpbird exlimivv ) AUADBEZFDZCEZGDZHZAVIVKIJKZLZHZCMBMNO
      IJKZAPSZAAQSZLZBCAUBVPVTBCVPVTVQVNPSZVNVNQSZLZVMWCVOVMWANVIRSZOVKRSZIZJKZ
      VIVIUCSZVKIZJKZWBNFDOGDVMWAWGLUDULNOVIVKUEUFVMWFWIJVMWDWHWEVKVJWDWHLVLVIU
      GTVLWEVKLZVJVLVKFDZWKVKUHWLWEVKORSZVKOFDWLWEWMLUIOVKUJUKVKUMUNVCUOUPUQVJV
      LWJWBLVKVIVIURUSUTTVOVTWCVDVMVOVRWAVSWBAVNVQPVAVOAVNAVNQVOVEZWNVBVFUOVGVH
      VC $.
  $}

  ${
    $d l u q r $.
    $( Define the set of positive reals.  A "Dedekind cut" is a partition of
       the positive rational numbers into two classes such that all the numbers
       of one class are less than all the numbers of the other.

       Here we follow the definition of a Dedekind cut from Definition 11.2.1
       of [HoTT], p.  (varies) with the one exception that we define it over
       positive rational numbers rather than all rational numbers.

       A Dedekind cut is an ordered pair of a lower set ` l ` and an upper set
       ` u ` which is inhabited ( ` E. q e. Q. q e. l /\ E. r e. Q. r e. u ` ),
       rounded ( ` A. q e. Q. ( q e. l <-> E. r e. Q. ( q <Q r /\ r e. l ) ) `
       and likewise for ` u ` ), disjoint
       ( ` A. q e. Q. -. ( q e. l /\ q e. u ) ` ) and located
       ( ` A. q e. Q. A. r e. Q. ( q <Q r -> ( q e. l \/ r e. u ) ) ` ).  See
       HoTT for more discussion of those terms and different ways of defining
       Dedekind cuts.

       (Note:  This is a "temporary" definition used in the construction of
       complex numbers, and is intended to be used only by the construction.)
       (Contributed by Jim Kingdon, 25-Sep-2019.) $)
    df-inp $a |- P. = { <. l , u >. | ( ( ( l C_ Q. /\ u C_ Q. ) /\
      ( E. q e. Q. q e. l /\ E. r e. Q. r e. u ) ) /\ (
      ( A. q e. Q. ( q e. l <-> E. r e. Q. ( q <Q r /\ r e. l ) ) /\
        A. r e. Q. ( r e. u <-> E. q e. Q. ( q <Q r /\ q e. u ) ) ) /\
      A. q e. Q. -. ( q e. l /\ q e. u ) /\
      A. q e. Q. A. r e. Q. ( q <Q r -> ( q e. l \/ r e. u ) )
      ) ) } $.
  $}

  ${
    $d l u $.
    $( Define the positive real constant 1.  This is a "temporary" set used in
       the construction of complex numbers and is intended to be used only by
       the construction.  (Contributed by Jim Kingdon, 25-Sep-2019.) $)
    df-i1p $a |- 1P = <. { l | l <Q 1Q } , { u | 1Q <Q u } >. $.
  $}

  ${
    $d x y q r s $.
    $( Define addition on positive reals.  From Section 11.2.1 of [HoTT], p.
       (varies).  We write this definition to closely resemble the definition
       in HoTT although some of the conditions are redundant (for example,
       ` r e. ( 1st `` x ) ` implies ` r e. Q. ` ) and can be simplified as
       shown at ~ genpdf .

       This is a "temporary" set used in the construction of complex numbers,
       and is intended to be used only by the construction.  (Contributed by
       Jim Kingdon, 26-Sep-2019.) $)
    df-iplp $a |- +P. = ( x e. P. , y e. P. |->
      <. { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 1st ` x ) /\
        s e. ( 1st ` y ) /\ q = ( r +Q s ) ) } ,
        { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 2nd ` x ) /\
        s e. ( 2nd ` y ) /\ q = ( r +Q s ) ) } >. ) $.

    $( Define multiplication on positive reals.  Here we use a simple
       definition which is similar to ~ df-iplp or the definition of
       multiplication on positive reals in Metamath Proof Explorer.  This is as
       opposed to the more complicated definition of multiplication given in
       Section 11.2.1 of [HoTT], p.  (varies), which appears to be motivated by
       handling negative numbers or handling modified Dedekind cuts in which
       locatedness is omitted.

       This is a "temporary" set used in the construction of complex numbers,
       and is intended to be used only by the construction.  (Contributed by
       Jim Kingdon, 29-Sep-2019.) $)
    df-imp $a |- .P. = ( x e. P. , y e. P. |->
      <. { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 1st ` x ) /\
        s e. ( 1st ` y ) /\ q = ( r .Q s ) ) } ,
        { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 2nd ` x ) /\
        s e. ( 2nd ` y ) /\ q = ( r .Q s ) ) } >. ) $.
  $}

  ${
    $d x y q $.
    $( Define ordering on positive reals.  We define ` x <P y ` if there is a
       positive fraction ` q ` which is an element of the upper cut of ` x `
       and the lower cut of ` y ` .  From the definition of < in Section 11.2.1
       of [HoTT], p.  (varies).

       This is a "temporary" set used in the construction of complex numbers,
       and is intended to be used only by the construction.  (Contributed by
       Jim Kingdon, 29-Sep-2019.) $)
    df-iltp $a |- <P = { <. x , y >. | ( ( x e. P. /\ y e. P. ) /\
      E. q e. Q. ( q e. ( 2nd ` x ) /\ q e. ( 1st ` y ) ) ) } $.
  $}

  ${
    $d l u q r $.
    $( Lemma for proving existence of reals.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    npsspw $p |- P. C_ ( ~P Q. X. ~P Q. ) $=
      ( vl vu vq vr cv cnq wss wa wcel wrex cltq wbr wb wral wn wo wi w3a copab
      selpw cpw cnp cxp simpll anbi12i sylibr ssopab2i df-inp df-xp 3sstr4i ) A
      EZFGZBEZFGZHZCEZUKIZCFJDEZUMIZDFJHZHUQUPURKLZURUKIHDFJMCFNUSVAUPUMIZHCFJM
      DFNHUQVBHOCFNVAUQUSPQDFNCFNRZHZABSUKFUAZIZUMVEIZHZABSUBVEVEUCVDVHABVDUOVH
      UOUTVCUDVFULVGUNAFTBFTUEUFUGBDCAUHABVEVEUIUJ $.
  $}

  $( Two reals are equal if and only if their lower and upper cuts are.
     (Contributed by Jim Kingdon, 11-Dec-2019.) $)
  preqlu $p |- ( ( A e. P. /\ B e. P. ) -> ( A = B <->
      ( ( 1st ` A ) = ( 1st ` B ) /\ ( 2nd ` A ) = ( 2nd ` B ) ) ) ) $=
    ( cnp wcel wa wceq c1st cfv c2nd cop cnq cpw npsspw sseli 1st2nd2 eqeqan12d
    cxp syl wb xp1st xp2nd opthg syl2anc adantr bitrd ) ACDZBCDZEABFAGHZAIHZJZB
    GHZBIHZJZFZUHUKFUIULFEZUFUGAUJBUMUFAKLZUPQZDZAUJFCUQAMNZAUPUPORUGBUQDBUMFCU
    QBMNBUPUPORPUFUNUOSZUGUFUHUPDZUIUPDZUTUFURVAUSAUPUPTRUFURVBUSAUPUPUARUHUIUK
    ULUPUPUBUCUDUE $.

  ${
    $d l q r u $.
    $( The class of positive reals is a set.  (Contributed by NM,
       31-Oct-1995.) $)
    npex $p |- P. e. _V $=
      ( cnp cnq cpw cxp nqex pwex xpex npsspw ssexi ) ABCZJDJJBEFZKGHI $.
  $}

  ${
    $d l u q r L $.  $d l u q r U $.
    $( Membership in positive reals.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    elinp $p |- ( <. L , U >. e. P. <-> ( ( ( L C_ Q. /\ U C_ Q. ) /\
        ( E. q e. Q. q e. L /\ E. r e. Q. r e. U ) ) /\ (
        ( A. q e. Q. ( q e. L <-> E. r e. Q. ( q <Q r /\ r e. L ) ) /\
          A. r e. Q. ( r e. U <-> E. q e. Q. ( q <Q r /\ q e. U ) ) ) /\
        A. q e. Q. -. ( q e. L /\ q e. U ) /\
        A. q e. Q. A. r e. Q. ( q <Q r -> ( q e. L \/ r e. U ) )
        ) ) ) $=
      ( vl vu wcel cvv wa cnq wss cv wrex wb wral anbi1d rexbidv anbi12d anbi2d
      eleq2 cop cnp cltq wbr wn wo wi w3a cpw npsspw sseli opelxp sylib anim12i
      cxp elex syl nqex ssex ad2antrr copab df-inp eleq2i sseq1 bibi12d ralbidv
      notbid orbi1d imbi2d 2ralbidv 3anbi123d orbi2d opelopabg syl5bb pm5.21nii
      wceq ) BAUAZUBGZBHGZAHGZIZBJKZAJKZIZDLZBGZDJMZCLZAGZCJMZIZIZWFWEWHUCUDZWH
      BGZIZCJMZNZDJOZWIWMWEAGZIZDJMZNZCJOZIZWFWSIZUEZDJOZWMWFWIUFZUGZCJODJOZUHZ
      IZVRBJUIZGZAXMGZIZWAVRVQXMXMUOZGXPUBXQVQUJUKBAXMXMULUMXNVSXOVTBXMUPAXMUPU
      NUQWDWAWKXKWBVSWCVTBJURUSAJURUSUNUTVRVQELZJKZFLZJKZIZWEXRGZDJMZWHXTGZCJMZ
      IZIZYCWMWHXRGZIZCJMZNZDJOZYEWMWEXTGZIZDJMZNZCJOZIZYCYNIZUEZDJOZWMYCYEUFZU
      GZCJODJOZUHZIZEFVAZGWAXLUBUUHVQFCDEVBVCUUGWBYAIZWGYFIZIZWRYRIZWFYNIZUEZDJ
      OZWMWFYEUFZUGZCJODJOZUHZIXLEFBAHHXRBVPZYHUUKUUFUUSUUTYBUUIYGUUJUUTXSWBYAX
      RBJVDPUUTYDWGYFUUTYCWFDJXRBWETZQPRUUTYSUULUUBUUOUUEUURUUTYMWRYRUUTYLWQDJU
      UTYCWFYKWPUVAUUTYJWOCJUUTYIWNWMXRBWHTSQVEVFPUUTUUAUUNDJUUTYTUUMUUTYCWFYNU
      VAPVGVFUUTUUDUUQDCJJUUTUUCUUPWMUUTYCWFYEUVAVHVIVJVKRXTAVPZUUKWLUUSXKUVBUU
      IWDUUJWKUVBYAWCWBXTAJVDSUVBYFWJWGUVBYEWICJXTAWHTZQSRUVBUULXDUUOXGUURXJUVB
      YRXCWRUVBYQXBCJUVBYEWIYPXAUVCUVBYOWTDJUVBYNWSWMXTAWETZSQVEVFSUVBUUNXFDJUV
      BUUMXEUVBYNWSWFUVDSVGVFUVBUUQXIDCJJUVBUUPXHWMUVBYEWIWFUVCVLVIVJVKRVMVNVO
      $.
  $}

  ${
    $( A positive real is an ordered pair of a lower cut and an upper cut.
       (Contributed by Jim Kingdon, 27-Sep-2019.) $)
    prop $p |- ( A e. P. -> <. ( 1st ` A ) , ( 2nd ` A ) >. e. P. ) $=
      ( cnp wcel c1st cfv c2nd cop cnq cpw cxp npsspw sseli 1st2nd2 syl biimpcd
      wceq eleq1 mpd ) ABCZAADEAFEGZPZTBCZSAHIZUCJZCUABUDAKLAUCUCMNUASUBATBQOR
      $.
  $}

  ${
    $d l u q r A $.
    $( Membership in positive reals, using ` 1st ` and ` 2nd ` to refer to the
       lower and upper cut.  (Contributed by Jim Kingdon, 3-Oct-2019.) $)
    elnp1st2nd $p |- ( A e. P. <-> ( (
        A e. ( ~P Q. X. ~P Q. ) /\
        ( E. q e. Q. q e. ( 1st ` A ) /\ E. r e. Q. r e. ( 2nd ` A ) ) ) /\ (
        ( A. q e. Q. ( q e. ( 1st ` A ) <->
            E. r e. Q. ( q <Q r /\ r e. ( 1st ` A ) ) ) /\
          A. r e. Q. ( r e. ( 2nd ` A ) <->
            E. q e. Q. ( q <Q r /\ q e. ( 2nd ` A ) ) ) ) /\
        A. q e. Q. -. ( q e. ( 1st ` A ) /\ q e. ( 2nd ` A ) ) /\
        A. q e. Q. A. r e. Q. ( q <Q r ->
          ( q e. ( 1st ` A ) \/ r e. ( 2nd ` A ) ) )
        ) ) ) $=
      ( cnp wcel cnq cpw cxp cv c1st cfv wrex wral wss simprd jca elpwid anim1i
      wa wb c2nd cltq wbr wn wo wi w3a npsspw sseli cop prop elinp sylib simpld
      wceq 1st2nd2 ad2antrr xp1st xp2nd sylibr eqeltrd impbii ) ADEZAFGZVDHZEZC
      IZAJKZEZCFLBIZAUAKZEZBFLSZSZVIVGVJUBUCZVJVHESBFLTCFMVLVOVGVKEZSCFLTBFMSVI
      VPSUDCFMVOVIVLUEUFBFMCFMUGZSZVCVNVQVCVFVMDVEAUHUIVCVHFNZVKFNZSZVMVCWAVMSZ
      VQVCVHVKUJZDEZWBVQSZAUKVKVHBCULZUMZUNOPVCWBVQWGOPVRAWCDVFAWCUOVMVQAVDVDUP
      UQVRWEWDVNWBVQVFWAVMVFVSVTVFVHFAVDVDURQVFVKFAVDVDUSQPRRWFUTVAVB $.
  $}

  ${
    $d x y L $.  $d U x y $.
    $( A positive real's lower cut is inhabited.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    prml $p |- ( <. L , U >. e. P. -> E. x e. Q. x e. L ) $=
      ( vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a elinp
      simplrl sylbi ) CBEFGCHIBHIJZAKZCGZAHLZDKZBGZDHLZJJUFUEUHMNZUHCGJDHLOAHPU
      IUKUEBGZJAHLODHPJUFULJQAHPUKUFUIRSDHPAHPTZJUGBCDAUAUDUGUJUMUBUC $.

    $( A positive real's upper cut is inhabited.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    prmu $p |- ( <. L , U >. e. P. -> E. x e. Q. x e. U ) $=
      ( vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a elinp
      simplrr sylbi ) CBEFGCHIBHIJZDKZCGZDHLZAKZBGZAHLZJJUFUEUHMNZUHCGJAHLODHPU
      IUKUEBGZJDHLOAHPJUFULJQDHPUKUFUIRSAHPDHPTZJUJBCADUAUDUGUJUMUBUC $.

    $( A positive real's lower cut is a subset of the positive fractions.  It
       would presumably be possible to also prove ` L C. Q. ` , but we only
       need ` L C_ Q. ` so far.  (Contributed by Jim Kingdon, 28-Sep-2019.) $)
    prssnql $p |- ( <. L , U >. e. P. -> L C_ Q. ) $=
      ( vx vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a
      elinp simplll sylbi ) BAEFGBHIZAHIZJCKZBGZCHLDKZAGZDHLJZJUGUFUHMNZUHBGJDH
      LOCHPUIUKUFAGZJCHLODHPJUGULJQCHPUKUGUIRSDHPCHPTZJUDABDCUAUDUEUJUMUBUC $.

    $( A positive real's upper cut is a subset of the positive fractions.  It
       would presumably be possible to also prove ` U C. Q. ` , but we only
       need ` U C_ Q. ` so far.  (Contributed by Jim Kingdon, 28-Sep-2019.) $)
    prssnqu $p |- ( <. L , U >. e. P. -> U C_ Q. ) $=
      ( vx vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a
      elinp simpllr sylbi ) BAEFGBHIZAHIZJCKZBGZCHLDKZAGZDHLJZJUGUFUHMNZUHBGJDH
      LOCHPUIUKUFAGZJCHLODHPJUGULJQCHPUKUGUIRSDHPCHPTZJUEABDCUAUDUEUJUMUBUC $.
  $}

  $( An element of a positive real's lower cut is a positive fraction.
     (Contributed by Jim Kingdon, 28-Sep-2019.) $)
  elprnql $p |- ( ( <. L , U >. e. P. /\ B e. L ) -> B e. Q. ) $=
    ( cop cnp wcel cnq prssnql sselda ) CBDEFCGABCHI $.

  $( An element of a positive real's upper cut is a positive fraction.
     (Contributed by Jim Kingdon, 28-Sep-2019.) $)
  elprnqu $p |- ( ( <. L , U >. e. P. /\ B e. U ) -> B e. Q. ) $=
    ( cop cnp wcel cnq prssnqu sselda ) CBDEFBGABCHI $.

  $( The empty set is not a positive real.  (Contributed by NM,
     15-Nov-1995.) $)
  0npr $p |- -. (/) e. P. $=
    ( vx c0 cnp wcel c1st cfv c2nd cop cv cnq wrex noel 1st0 eleq2i mtbir rexex
    wex nex mto prml prop ) BCDBEFZBGFZHCDZUDAIZUBDZAJKZUGUFAQUFAUFUEBDUELUBBUE
    MNORUFAJPSAUCUBTSBUAS $.

  ${
    $d b c L $.  $d b c U $.  $d b c B $.  $d b c C $.
    $( A lower cut is closed downwards under the positive fractions.
       (Contributed by Jim Kingdon, 28-Sep-2019.) $)
    prcdnql $p |- ( ( <. L , U >. e. P. /\ B e. L ) ->
        ( C <Q B -> C e. L ) ) $=
      ( vc vb wcel wa cltq wbr cnq ltrelnq brel cv wi wceq eleq1 wrex wb wral
      cop cnp simpld adantl breq1 imbi12d imbi2d ancomd an42 anbi12d rspcev wss
      breq2 wn wo w3a elinp simpr1l sylbi r19.21bi syl5ibrcom 3impb 3com12 impd
      3expib syl5bi mpand com12 ancoms vtoclg mpcom ex ) DCUAUBGZADGZHZBAIJZBDG
      ZBKGZVOVPHVQVPVRVOVPVRAKGZBAKKILMUCUDVRVOVPVQVOENZAIJZVTDGZOZOVOVPVQOZOEB
      KVTBPZWCWDVOWEWAVPWBVQVTBAIUEVTBDQUFUGVNVMWCWAVNVMHZWBWAVSVTKGZHZWFWBWAWG
      VSVTAKKILMUHWHWFHVSVNHZVMWGHZHWAWBVSWGVNVMUIWAWIWJWBWAVSVNWJWBOZVSWAVNWKV
      SWAVNWKVSWAVNHZHWBWJVTFNZIJZWMDGZHZFKRZWPWLFAKWMAPWNWAWOVNWMAVTIUMWMADQUJ
      UKVMWBWQSZEKVMDKULCKULHWBEKRWMCGZFKRHHZWREKTZWSWNVTCGZHEKRSFKTZHWBXBHUNEK
      TZWNWBWSUOOFKTEKTZUPHXACDFEUQXAXCXDXEWTURUSUTVAVBVCVEVDVFVGVHVIVJVDVKVL
      $.
  $}

  ${
    $d b c L $.  $d b c U $.  $d b c B $.  $d b c C $.
    $( An upper cut is closed upwards under the positive fractions.
       (Contributed by Jim Kingdon, 25-Nov-2019.) $)
    prcunqu $p |- ( ( <. L , U >. e. P. /\ C e. U ) ->
        ( C <Q B -> B e. U ) ) $=
      ( vb vc wcel wa cltq wbr cnq ltrelnq brel cv wi wceq eleq1 wrex wb wral
      cop cnp simprd adantl breq2 imbi12d imbi2d breq1 anbi12d rspcev wss wn wo
      an42 w3a elinp simpr1r sylbi r19.21bi syl5ibrcom 3impb 3com12 3expib impd
      syl5bi mpand com12 ancoms vtoclg mpcom ex ) DCUAUBGZBCGZHZBAIJZACGZAKGZVN
      VOHVPVOVQVNVOBKGZVQBAKKILMUCUDVQVNVOVPVNBENZIJZVSCGZOZOVNVOVPOZOEAKVSAPZW
      BWCVNWDVTVOWAVPVSABIUEVSACQUFUGVMVLWBVTVMVLHZWAVTVRVSKGZHZWEWABVSKKILMWGW
      EHVRVMHZVLWFHZHVTWAVRWFVMVLUNVTWHWIWAVTVRVMWIWAOZVRVTVMWJVRVTVMWJVRVTVMHZ
      HWAWIFNZVSIJZWLCGZHZFKRZWOWKFBKWLBPWMVTWNVMWLBVSIUHWLBCQUIUJVLWAWPSZEKVLD
      KUKCKUKHWLDGZFKRWAEKRHHZWRWMVSDGHEKRSFKTZWQEKTZHWRWNHULFKTZWMWRWAUMOEKTFK
      TZUOHXACDEFUPWTXAXBXCWSUQURUSUTVAVBVCVDVEVFVGVHVIVDVJVK $.
  $}

  $( A positive fraction not in a lower cut is an upper bound.  (Contributed by
     Jim Kingdon, 29-Sep-2019.) $)
  prubl $p |- ( ( ( <. L , U >. e. P. /\ B e. L ) /\ C e. Q. ) ->
      ( -. C e. L -> B <Q C ) ) $=
    ( cop cnp wcel wa cnq wn wceq cltq wbr wo eleq1 biimpcd adantl prcdnql jaod
    wi con3d adantr wb elprnql nqtric sylan sylibrd ) DCEFGZADGZHZBIGZHBDGZJZAB
    KZBALMZNZJZABLMZUJUMUQTUKUJUPULUJUNULUOUIUNULTUHUNUIULABDOPQABCDRSUAUBUJAIG
    UKURUQUCACDUDABUEUFUG $.

  ${
    $d C q $.  $d L q r $.  $d U q r $.
    $( An element of a lower cut is less than an element of the corresponding
       upper cut.  (Contributed by Jim Kingdon, 15-Oct-2019.) $)
    prltlu $p |- ( ( <. L , U >. e. P. /\ B e. L /\ C e. U ) -> B <Q C ) $=
      ( vq vr wcel w3a wn cltq wbr wa wi cnq cv wral wss wrex wb eleq1 simp3 wo
      cop elprnqu 3adant2 elinp simpr2 sylbi 3ad2ant1 wceq anbi12d notbid rspcv
      cnp sylc ancom notbii imnan bitr4i sylib mpd 3simpa prubl syl2anc ) DCUCU
      NGZADGZBCGZHZBDGZIZABJKZVHVGVJVEVFVGUAVHVIVGLZIZVGVJMZVHBNGZEOZDGZVPCGZLZ
      IZENPZVMVEVGVOVFBCDUDUEZVEVFWAVGVEDNQCNQLVQENRFOZCGZFNRLLZVQVPWCJKZWCDGLF
      NRSENPWDWFVRLENRSFNPLZWAWFVQWDUBMFNPENPZHLWACDFEUFWEWGWAWHUGUHUIVTVMEBNVP
      BUJZVSVLWIVQVIVRVGVPBDTVPBCTUKULUMUOVMVGVILZIVNVLWJVIVGUPUQVGVIURUSUTVAVH
      VEVFLVOVJVKMVEVFVGVBWBABCDVCVDVA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y L $.  $d x y U $.
    $( A lower cut has no largest member.  (Contributed by Jim Kingdon,
       29-Sep-2019.) $)
    prnmaxl $p |- ( ( <. L , U >. e. P. /\ B e. L ) -> E. x e. L B <Q x ) $=
      ( vy cop wcel wa cv cltq wbr wex wrex cnq wb wral wi wss df-rex sylibr wn
      cnp elprnql wo w3a elinp simpr1l sylbi eleq1 breq1 anbi1d rexbidv bibi12d
      wceq rspcv bi1 syl56 impd mpcom sylib ltrelnq brel simprd pm4.71ri anbi1i
      ancom anass 3bitr3i exbii ) DCFUBGZBDGZHZAIZDGZBVMJKZHZALZVOADMVLVMNGZVOV
      NHZHZALZVQVLVSANMZWABNGZVLWBBCDUCWCVJVKWBVJEIZDGZWDVMJKZVNHZANMZOZENPZWCV
      KWBOZVKWBQVJDNRCNRHWEENMVMCGZANMHHZWJWLWFWDCGZHENMOANPZHWEWNHUAENPZWFWEWL
      UDQANPENPZUEHWJCDAEUFWJWOWPWQWMUGUHWIWKEBNWDBUNZWEVKWHWBWDBDUIWRWGVSANWRW
      FVOVNWDBVMJUJUKULUMUOVKWBUPUQURUSVSANSUTVPVTAVSVRVOHZVNHVPVTVOWSVNVOVRVOW
      CVRBVMNNJVAVBVCVDVEVOVNVFVRVOVNVGVHVITVOADST $.

    $( An upper cut has no smallest member.  (Contributed by Jim Kingdon,
       7-Nov-2019.) $)
    prnminu $p |- ( ( <. L , U >. e. P. /\ B e. U ) -> E. x e. U x <Q B ) $=
      ( vy cop wcel wa cv cltq wbr wex wrex cnq wb wral wi wss df-rex sylibr wn
      cnp elprnqu wo w3a elinp simpr1r sylbi eleq1 breq2 anbi1d rexbidv bibi12d
      wceq rspcv bi1 syl56 impd mpcom sylib ltrelnq brel simpld pm4.71ri anbi1i
      ancom anass 3bitr3i exbii ) DCFUBGZBCGZHZAIZCGZVMBJKZHZALZVOACMVLVMNGZVOV
      NHZHZALZVQVLVSANMZWABNGZVLWBBCDUCWCVJVKWBVJEIZCGZVMWDJKZVNHZANMZOZENPZWCV
      KWBOZVKWBQVJDNRCNRHVMDGZANMWEENMHHZWLWFWDDGHENMOANPZWJHWLVNHUAANPZWFWLWEU
      DQENPANPZUEHWJCDEAUFWNWJWOWPWMUGUHWIWKEBNWDBUNZWEVKWHWBWDBCUIWQWGVSANWQWF
      VOVNWDBVMJUJUKULUMUOVKWBUPUQURUSVSANSUTVPVTAVSVRVOHZVNHVPVTVOWRVNVOVRVOVR
      WCVMBNNJVAVBVCVDVEVOVNVFVRVOVNVGVHVITVOACST $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y L $.  $d x y U $.
    $( A lower cut has no largest member.  Addition version.  (Contributed by
       Jim Kingdon, 29-Sep-2019.) $)
    prnmaddl $p |- ( ( <. L , U >. e. P. /\ B e. L ) ->
        E. x e. Q. ( B +Q x ) e. L ) $=
      ( vy cop cnp wcel wa cv cltq wbr wrex cplq co prnmaxl wceq ltexnqi eleq1a
      cnq reximdv syl5 rexlimiv syl ) DCFGHBDHIBEJZKLZEDMBAJNOZDHZATMZEBCDPUFUI
      EDUFUGUEQZATMUEDHZUIABUERUKUJUHATUEDUGSUAUBUCUD $.
  $}

  ${
    $d A q r $.  $d B q r $.  $d L q r $.  $d U q r $.
    $( A Dedekind cut is located.  (Contributed by Jim Kingdon,
       23-Oct-2019.) $)
    prloc $p |- ( ( <. L , U >. e. P. /\ A <Q B ) -> ( A e. L \/ B e. U ) ) $=
      ( vq vr wcel cltq wbr wa cv wo wi cnq wral wss wrex wb simpr adantl elinp
      cop cnp wn w3a simpr3 sylbi adantr ltrelnq brel simpld wceq breq1d eleq1d
      orbi1d imbi12d ralbidv rspcdv simprd breq2d orbi2d syld mp2d ) DCUBUCGZAB
      HIZJZEKZFKZHIZVGDGZVHCGZLZMZFNOZENOZVEADGZBCGZLZVDVOVEVDDNPCNPJVJENQVKFNQ
      JJZVJVIVHDGJFNQRENOVKVIVGCGZJENQRFNOJZVJVTJUDENOZVOUEJVOCDFEUAVSWAWBVOUFU
      GUHVDVESVFVOAVHHIZVPVKLZMZFNOZVEVRMZVFVNWFEANVEANGZVDVEWHBNGZABNNHUIUJZUK
      TVFVGAULZJZVMWEFNWLVIWCVLWDWLVGAVHHVFWKSZUMWLVJVPVKWLVGADWMUNUOUPUQURVFWE
      WGFBNVEWIVDVEWHWIWJUSTVFVHBULZJZWCVEWDVRWOVHBAHVFWNSZUTWOVKVQVPWOVHBCWPUN
      VAUPURVBVC $.
  $}

  ${
    $d A q r $.  $d B q r $.  $d L q r $.  $d U q r $.
    $( A Dedekind cut is disjoint.  (Contributed by Jim Kingdon,
       15-Dec-2019.) $)
    prdisj $p |- ( ( <. L , U >. e. P. /\ A e. Q. ) ->
        -. ( A e. L /\ A e. U ) ) $=
      ( vq vr cop cnp wcel cnq wa wn cv wi wceq eleq1 anbi2d wss wrex wb wral
      anbi12d notbid imbi12d cltq wbr wo w3a elinp simpr2 sylbi r19.21bi vtoclg
      anabsi7 ) CBFGHZAIHZACHZABHZJZKZUNDLZIHZJZUTCHZUTBHZJZKZMUNUOJZUSMDAIUTAN
      ZVBVGVFUSVHVAUOUNUTAIOPVHVEURVHVCUPVDUQUTACOUTABOUAUBUCUNVFDIUNCIQBIQJVCD
      IRELZBHZEIRJJZVCUTVIUDUEZVICHJEIRSDITVJVLVDJDIRSEITJZVFDITZVLVCVJUFMEITDI
      TZUGJVNBCEDUHVKVMVNVOUIUJUKULUM $.
  $}

  ${
    $( Two possible ways of contracting an interval which straddles a Dedekind
       cut.  Lemma for ~ prarloc .  (Contributed by Jim Kingdon,
       10-Nov-2019.) $)
    prarloclemlt $p |- ( ( ( X e. _om
        /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
        /\ y e. _om ) ->
        ( A +Q ( [ <. ( y +o 1o ) , 1o >. ] ~Q .Q P ) ) <Q
        ( A +Q ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) ) $=
      ( com wcel cnq wa c1o coa co ceq c2o wbr cnpi 1pi wceq syl2anc cop cnp cv
      w3a cec cmq cltq cplq cmi clti 2onn nnacl mpan2 nnaword1 sylan csuc elexi
      wss 1onn sucid df-2o eleqtrri wi nnaordi mpan mpi adantr sseldd ancoms wb
      nnppipi adantl o1p1e2 eqeltrri pinn nnacom sylan2 eqeltrrd ltpiord mpbird
      mp2an syl mulidpi mulcompig sylancl eqtr3d breq12d simpr ordpipqqs mpanl2
      mpanr2 adantlr cxp opelxpi enqex ecelqsi df-nqqs syl6eleqr simplr3 ltmnqg
      cqs syl3anc mpbid mulcomnqg mulclnq simplr1 simplr2 elprnql ltanqg ) FGHZ
      EDUAUBHZBEHZCIHZUDZJAUCZGHZJZXOKLMZKUAZNUEZCUFMZXOOLMZFLMZKUAZNUEZCUFMZUG
      PZBYAUHMBYFUHMUGPZXQCXTUFMZCYEUFMZUGPZYGXQXTYEUGPZYKXJXPYLXNXJXPJZYLXRKUI
      MZKYCUIMZUJPZYMYPXRYCUJPZYMYQXRYCHZXPXJYRXPXJJYBYCXRXPYBGHZXJYBYCURXPOGHZ
      YSUKXOOULUMYBFUNUOXPXRYBHZXJXPKOHZUUAKKUPOKKGUSUQUTVAVBYTXPUUBUUAVCUKKOXO
      VDVEVFVGVHVIYMXRQHZYCQHZYQYRVJXPUUCXJXPKQHZUUCRXOKVKUMZVLZYMFYBLMZYCQXPXJ
      YSUUHYCSXPYBQHZYSXPOQHUUIKKLMZOQVMKGHUUEUUJQHUSRKKVKWAVNXOOVKUMZYBVOWBFYB
      VPVQXPXJUUIUUHQHUUKFYBVKVQVRZXRYCVSTVTYMYNXRYOYCUJYMUUCYNXRSUUGXRWCWBYMYC
      KUIMZYOYCYMUUDUUEUUMYOSUULRYCKWDWEYMUUDUUMYCSUULYCWCWBWFWGVTYMXPUUDYLYPVJ
      ZXJXPWHUULXPUUCUUDUUNUUFUUCUUDUUEUUNRUUCUUEUUDUUEJUUNRXRKYCKWIWJWKUOTVTWL
      XQXTIHZYEIHZXMYLYKVJXJXPUUOXNYMXTQQWMZNXAZIYMXSUUQHZXTUURHYMUUCUUEUUSUUGR
      XRKQQWNWEUUQXSNWOWPWBWQWRWLZXJXPUUPXNYMYEUURIYMYDUUQHZYEUURHYMUUDUUEUVAUU
      LRYCKQQWNWEUUQYDNWOWPWBWQWRWLZXKXLXMXJXPWSZXTYECWTXBXCXQYIYAYJYFUGXQXMUUO
      YIYASUVCUUTCXTXDTXQXMUUPYJYFSUVCUVBCYEXDTWGXCXQYAIHZYFIHZBIHZYGYHVJXQUUOX
      MUVDUUTUVCXTCXETXQUUPXMUVEUVBUVCYECXETXQXKXLUVFXKXLXMXJXPXFXKXLXMXJXPXGBD
      EXHTYAYFBXIXBXC $.
  $}

  ${
    $d A f g h y z $.  $d L f g h y z $.  $d P f g h y z $.  $d U f g h y z $.
    $d X f g h y z $.
    $( Contracting the lower side of an interval which straddles a Dedekind
       cut.  Lemma for ~ prarloc .  (Contributed by Jim Kingdon,
       10-Nov-2019.) $)
    prarloclemlo $p |- ( ( ( X e. _om
      /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
      /\ y e. _om ) -> (
      ( A +Q ( [ <. ( y +o 1o ) , 1o >. ] ~Q .Q P ) ) e. L -> (
        ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
          /\ ( A +Q
            ( [ <. ( ( y +o 2o ) +o suc X ) , 1o >. ] ~Q .Q P ) ) e. U ) ->
        E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ) ) $=
      ( com wcel cop wa c1o coa co ceq cec cmq cplq c2o wceq oveq1d vf vg vh vz
      cnp cnq w3a cv ceq0 cmq0 cplq0 csuc wrex nnaass adantl simpr 1onn sylancl
      wi nnacl 2onn a1i simpll caovassd nnacom caov4d caovcomd con0 nnon oa1suc
      eqtrd oveq2d 3eqtr2rd opeq1d eceq1d eleq1d biimpd simplr1 simplr2 elprnql
      3syl syl2anc cnpi cxp 1pi nnppipi opelxpi mpan2 cqs enqex ecelqsi df-nqqs
      syl6eleqr simplr3 mulclnq nqnq0a nqnq0m nqnq0pi eqtr4d anbi1d opeq1 oveq1
      anbi12d rspcev ex syl sylbid cbvrexv syl6ib sylan2d expdimp adantld ) FGH
      ZEDIUEHZBEHZCUFHZUGZJZAUHZGHZJZBXSKLMZKIZNOZCPMZQMZEHZBXSKIZUIOZCUJMZUKMZ
      EHZBXSRLMZFULZLMZKIZNOZCPMZQMZDHZJYLBYMFLMZKIZNOZCPMZQMZDHZJZAGUMZUSYAYGJ
      YTUUHYLYAYGYTUUHYAYTBYBRLMZFLMZKIZNOZCPMZQMZDHZYGUUHYAYTUUOYAYSUUNDYAYRUU
      MBQYAYQUULCPYAYPUUKNYAYOUUJKYAUUJYBRFLMLMYMKFLMZLMYOYAUAUBUCYBRFGLUAUHZGH
      ZUBUHZGHZUCUHZGHUGUUQUUSLMZUVALMUUQUUSUVALMLMSYAUUQUUSUVAUNUOZYAXTKGHZYBG
      HZXRXTUPZUQXSKUTURZRGHYAVAVBZXMXQXTVCZVDYAUAUBUCXSRKFGLUVFUVHUVDYAUQVBZUU
      RUUTJZUVBUUSUUQLMSYAUUQUUSVEUOZUVCUVIUVKUVBGHYAUUQUUSUTUOVFYAUUPYNYMLYAUU
      PFKLMZYNYAUAUBKFGLUVLUVJUVIVGYAXMFVHHUVMYNSUVIFVIFVJWAVKVLVMVNVOTVLVPVQYA
      YGUUOJZBUDUHZKIZUIOZCUJMZUKMZEHZBUVORLMZFLMZKIZNOZCPMZQMZDHZJZUDGUMZUUHYA
      UVNBYCUIOZCUJMZUKMZEHZUUOJZUWIYAYGUWMUUOYAYFUWLEYAYFBYEUKMZUWLYABUFHZYEUF
      HZYFUWOSYAXNXOUWPXNXOXPXMXTVRXNXOXPXMXTVSBDEVTWBYAYDUFHZXPUWQYAYBWCHZYCWC
      WCWDZHZUWRYAXTKWCHZUWSUVFWEXSKWFURZUWSUXBUXAWEYBKWCWCWGWHUXAYDUWTNWIUFUWT
      YCNWJWKWLWMWAZXNXOXPXMXTWNZYDCWOWBBYEWPWBYAYEUWKBUKYAYEYDCUJMZUWKYAUWRXPY
      EUXFSUXDUXEYDCWQWBYAUWJYDCUJYAUWSUXBUWJYDSUXCWEYBKWRURTWSVLVKVPWTYAUVEUWN
      UWIUSUVGUVEUWNUWIUWHUWNUDYBGUVOYBSZUVTUWMUWGUUOUXGUVSUWLEUXGUVRUWKBUKUXGU
      VQUWJCUJUXGUVPYCUIUVOYBKXAVOTVLVPUXGUWFUUNDUXGUWEUUMBQUXGUWDUULCPUXGUWCUU
      KNUXGUWBUUJKUXGUWAUUIFLUVOYBRLXBTVNVOTVLVPXCXDXEXFXGUWHUUGUDAGUVOXSSZUVTY
      LUWGUUFUXHUVSYKEUXHUVRYJBUKUXHUVQYICUJUXHUVPYHUIUVOXSKXAVOTVLVPUXHUWFUUED
      UXHUWEUUDBQUXHUWDUUCCPUXHUWCUUBNUXHUWBUUAKUXHUWAYMFLUVOXSRLXBTVNVOTVLVPXC
      XHXIXJXKXLXE $.
  $}

  ${
    $( Contracting the upper side of an interval which straddles a Dedekind
       cut.  Lemma for ~ prarloc .  (Contributed by Jim Kingdon,
       10-Nov-2019.) $)
    prarloclemup $p |- ( ( ( X e. _om
      /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
      /\ y e. _om ) -> (
      ( A +Q ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U -> (
        ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
          /\ ( A +Q
            ( [ <. ( ( y +o 2o ) +o suc X ) , 1o >. ] ~Q .Q P ) ) e. U ) ->
        E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ) ) $=
      ( com wcel cop cnp cnq w3a wa coa co c1o ceq cec cmq cplq ceq0 cmq0 cplq0
      cv c2o csuc wrex simpllr simprl simplr rspe syl12anc exp31 ) FGHEDIJHBEHC
      KHLMZAUDZGHZMZBUOUENOZFNOPIQRCSOTODHZBUOPIUARCUBOUCOEHZBURFUFNOPIQRCSOTOD
      HZMZUTUSMZAGUGZUQUSMZVBMUPUTUSVDUNUPUSVBUHVEUTVAUIUQUSVBUJVCAGUKULUM $.
  $}

  ${
    $d A y $.  $d L y $.  $d P y $.  $d U y $.  $d X y $.
    $( Induction step for ~ prarloclem3 .  (Contributed by Jim Kingdon,
       9-Nov-2019.) $)
    prarloclem3step $p |- (
      ( ( X e. _om /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
      /\ E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o suc X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ->
      E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( com wcel cop wa c1o cec co coa ceq cmq cplq wrex wi ex cnp cnq w3a ceq0
      cmq0 cplq0 c2o csuc nfv nfre1 prarloclemlo prarloclemup cltq prarloclemlt
      cv wbr wo prloc 3ad2ant1 ad2antlr mpd mpjaod rexlimd imp ) FGHZEDIUAHZBEH
      ZCUBHZUCZJZBAUOZKIUDLCUEMUFMEHZBVKUGNMZFUHNMKIOLCPMQMDHJZAGRVLBVMFNMKIOLC
      PMQMZDHZJZAGRZVJVNVRAGVJAUIVQAGUJVJVKGHZVNVRSZVJVSJZBVKKNMKIOLCPMQMZEHZVT
      VPABCDEFUKABCDEFULWAWBVOUMUPZWCVPUQZABCDEFUNVIWDWESZVEVSVFVGWFVHVFWDWEWBV
      ODEURTUSUTVAVBTVCVD $.
  $}

  ${
    $d A j x y z $.  $d L j x y z $.  $d P j x y z $.  $d U j x y z $.
    $d X x y $.
    $( Contracting an interval which straddles a Dedekind cut.  Lemma for
       ~ prarloc .  (Contributed by Jim Kingdon, 27-Oct-2019.) $)
    prarloclem3 $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\
      ( X e. _om /\ P e. Q. ) /\
      E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ->
      E. j e. _om ( ( A +Q0 ( [ <. j , 1o >. ] ~Q0 .Q0 P ) ) e. L /\
        ( A +Q ( [ <. ( j +o 2o ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( cop wcel wa com c1o cec co coa ceq cmq cplq wrex wi vx vz cnp ceq0 cmq0
      cnq cv cplq0 c2o simprl simpll simplr simprr w3a wceq oveq2 opeq1d eceq1d
      oveq1d oveq2d eleq1d anbi2d rexbidv imbi1d imbi2d c0 csuc 2onn nnacl nna0
      mpan2 rexbiia opeq1 oveq1 anbi12d cbvrexv bitri biimpi prarloclem3step ex
      syl a1i imim1d finds2 vtoclga imp syl13anc 3impia ) FDHUCIZBFIZJZGKIZCUFI
      ZJZBAUGZLHZUDMZCUENZUHNZFIZBWOUIONZGONZLHZPMZCQNZRNZDIZJZAKSZBEUGZLHZUDMZ
      CUENZUHNZFIZBXJUIONZLHZPMZCQNZRNZDIZJZEKSZWKWNJWLWIWJWMXIYCTZWKWLWMUJWIWJ
      WNUKWIWJWNULWKWLWMUMWLWIWJWMUNZYDYEWTBXAUAUGZONZLHZPMZCQNZRNZDIZJZAKSZYCT
      ZTYEYDTUAGKYFGUOZYOYDYEYPYNXIYCYPYMXHAKYPYLXGWTYPYKXFDYPYJXEBRYPYIXDCQYPY
      HXCPYPYGXBLYFGXAOUPUQURUSUTVAVBVCVDVEYOWTBXAVFONZLHZPMZCQNZRNZDIZJZAKSZYC
      TZWTBXAUBUGZONZLHZPMZCQNZRNZDIZJZAKSZYCTZWTBXAUUFVGZONZLHZPMZCQNZRNZDIZJZ
      AKSZYCTZYEUAUBYFVFUOZYNUUDYCUVFYMUUCAKUVFYLUUBWTUVFYKUUADUVFYJYTBRUVFYIYS
      CQUVFYHYRPUVFYGYQLYFVFXAOUPUQURUSUTVAVBVCVDYFUUFUOZYNUUNYCUVGYMUUMAKUVGYL
      UULWTUVGYKUUKDUVGYJUUJBRUVGYIUUICQUVGYHUUHPUVGYGUUGLYFUUFXAOUPUQURUSUTVAV
      BVCVDYFUUPUOZYNUVDYCUVHYMUVCAKUVHYLUVBWTUVHYKUVADUVHYJUUTBRUVHYIUUSCQUVHY
      HUURPUVHYGUUQLYFUUPXAOUPUQURUSUTVAVBVCVDUUEYEUUDYCUUDWTBXALHZPMZCQNZRNZDI
      ZJZAKSYCUUCUVNAKWOKIZUUBUVMWTUVOUUAUVLDUVOYTUVKBRUVOYSUVJCQUVOYRUVIPUVOYQ
      XALUVOUIKIZYQXAUOZVHUVOUVPJXAKIUVQWOUIVIXAVJWAVKUQURUSUTVAVBVLUVNYBAEKWOX
      JUOZWTXOUVMYAUVRWSXNFUVRWRXMBUHUVRWQXLCUEUVRWPXKUDWOXJLVMURUSUTVAUVRUVLXT
      DUVRUVKXSBRUVRUVJXRCQUVRUVIXQPUVRXAXPLWOXJUIOVNUQURUSUTVAVOVPVQVRWBUUFKIZ
      YEUUOUVETUVSYEJZUVDUUNYCUVTUVDUUNABCDFUUFVSVTWCVTWDWEWFWGWH $.
  $}

  ${
    $d A j x y $.  $d L j x y $.  $d P j x y $.  $d U j x y $.
    $( A slight rearrangement of ~ prarloclem3 .  Lemma for ~ prarloc .
       (Contributed by Jim Kingdon, 4-Nov-2019.) $)
    prarloclem4 $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\ P e. Q. ) -> (
      E. x e. _om E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o x ) , 1o >. ] ~Q .Q P ) ) e. U ) ->
      E. j e. _om ( ( A +Q0 ( [ <. j , 1o >. ] ~Q0 .Q0 P ) ) e. L /\
        ( A +Q ( [ <. ( j +o 2o ) , 1o >. ] ~Q .Q P ) ) e. U )
      ) ) $=
      ( cop wcel wa cv c1o ceq0 cec cmq0 co cplq0 c2o coa com cnp cnq cplq wrex
      ceq cmq wi prarloclem3 3expia ancom2s anassrs rexlimdva ) GEHUAICGIJZDUBI
      ZJCBKZLHMNDOPQPGICUORSPAKZSPLHUENDUFPUCPEIJBTUDZCFKZLHMNDOPQPGICURRSPLHUE
      NDUFPUCPEIJFTUDZATUMUNUPTIZUQUSUGZUMUTUNVAUMUTUNJUQUSBCDEFGUPUHUIUJUKUL
      $.
  $}

  ${
    $d N x $.
    $( Subtracting two from a positive integer.  Lemma for ~ prarloc .
       (Contributed by Jim Kingdon, 5-Nov-2019.) $)
    prarloclemn $p |- ( ( N e. N. /\ 1o <N N ) ->
      E. x e. _om ( 2o +o x ) = N ) $=
      ( cnpi wcel c1o clti wbr wa csuc wss c2o cv coa co wceq com wrex mpan syl
      wb simpl 1pi ltpiord biimpa word wi piord ordsucss sylc df-2o sseq1i pinn
      2onn nnawordex adantr syl5bbr mpbid ) BCDZEBFGZHZEIZBJZKALMNBOAPQZUTUREBD
      ZVBURUSUAURUSVDECDURUSVDTUBEBUCRUDURBUEVDVBUFBUGEBUHSUIVBKBJZUTVCKVABUJUK
      URVEVCTZUSURBPDZVFBULKPDVGVFUMAKBUNRSUOUPUQ $.
  $}

  ${
    $d A x y $.  $d L x y $.  $d N x $.  $d P x y $.  $d U x y $.
    $( A substitution of zero for ` y ` and ` N ` minus two for ` x ` .  Lemma
       for ~ prarloc .  (Contributed by Jim Kingdon, 4-Nov-2019.) $)
    prarloclem5 $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\
      ( N e. N. /\ P e. Q. /\ 1o <N N ) /\
      ( A +Q ( [ <. N , 1o >. ] ~Q .Q P ) ) e. U ) ->
      E. x e. _om E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o x ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( cop wcel c1o ceq cec cmq co c2o coa wceq com c0 c0q0 cnp wa cnq wbr w3a
      cnpi clti cplq wrex ceq0 cmq0 cplq0 prarloclemn 3adant2 3ad2ant2 3ad2ant1
      cv elprnql simp22 cnq0 nqnq0 sseli nq0a0 syl df-0nq0 oveq1i nq0m0r oveq2d
      syl5reqr sylan9req syl2anc simp1r eqeltrrd 2onn nna0r ax-mp eqeq1i opeq1d
      biimpri eceq1d oveq1d eleq1d biimprcd 3ad2ant3 peano1 opeq1 oveq1 anbi12d
      wi rspcev mpan syl6an reximdv mpd ) FEHUAIZCFIZUBZGUFIZDUCIZJGUGUDZUEZCGJ
      HZKLZDMNZUHNZEIZUEZOAUQZPNZGQZARUIZCBUQZJHZUJLZDUKNZULNZFIZCXLOPNZXHPNZJH
      ZKLZDMNZUHNZEIZUBZBRUIZARUIXAWQXKXFWRWTXKWSAGUMUNUOXGXJYFARXGCSJHZUJLZDUK
      NZULNZFIZXJCSOPNZXHPNZJHZKLZDMNZUHNZEIZYFXGCYJFXGCUCIZWSCYJQWQXAYSXFCEFUR
      UPWQWRWSWTXFUSYSWSCCTULNZYJYSCUTIYTCQUCUTCVAVBCVCVDWSTYICULWSYITDUKNZTTYH
      DUKVEVFWSDUTIUUATQUCUTDVAVBDVGVDVIVHVJVKWOWPXAXFVLVMXFWQXJYRWIXAXJYRXFXJY
      QXEEXJYPXDCUHXJYOXCDMXJYNXBKXJYMGJYMGQXJYMXIGYLOXHPORIYLOQVNOVOVPVFVQVSVR
      VTWAVHWBWCWDSRIYKYRUBZYFWEYEUUBBSRXLSQZXQYKYDYRUUCXPYJFUUCXOYICULUUCXNYHD
      UKUUCXMYGUJXLSJWFVTWAVHWBUUCYCYQEUUCYBYPCUHUUCYAYODMUUCXTYNKUUCXSYMJUUCXR
      YLXHPXLSOPWGWAVRVTWAVHWBWHWJWKWLWMWN $.
  $}

  ${
    $d A j x y $.  $d L j x y $.  $d N j x $.  $d P j x y $.  $d U j x y $.
    $( A special case of Lemma 6.16 from [BauerTaylor], p. 32.  Given evenly
       spaced rational numbers from ` A ` to ` A +Q ( N .Q P ) ` (which are in
       the lower and upper cuts, respectively, of a real number), there are a
       pair of numbers, two positions apart in the even spacing, which straddle
       the cut.  (Contributed by Jim Kingdon, 22-Oct-2019.) $)
    prarloclem $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\
      ( N e. N. /\ P e. Q. /\ 1o <N N ) /\
      ( A +Q ( [ <. N , 1o >. ] ~Q .Q P ) ) e. U ) ->
      E. j e. _om ( ( A +Q0 ( [ <. j , 1o >. ] ~Q0 .Q0 P ) ) e. L /\
        ( A +Q ( [ <. ( j +o 2o ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( vy vx cop wcel wa c1o ceq cec cmq co cplq cv coa com cnp cnpi clti ceq0
      cnq wbr w3a cmq0 cplq0 c2o wrex prarloclem5 prarloclem4 3ad2antr2 3adant3
      wi mpd ) ECIUAJAEJKZFUBJZBUEJZLFUCUFZUGZAFLIMNBOPQPCJZUGAGRZLIUDNBUHPUIPE
      JAVDUJSPHRSPLIMNBOPQPCJKGTUKHTUKZADRZLIUDNBUHPUIPEJAVFUJSPLIMNBOPQPCJKDTU
      KZHGABCEFULURVBVEVGUPZVCURUSUTVHVAHGABCDEUMUNUOUQ $.
  $}

  ${
    $( Some calculations for ~ prarloc .  (Contributed by Jim Kingdon,
       26-Oct-2019.) $)
    prarloclemcalc $p |- ( ( (
      A = ( X +Q0 ( [ <. M , 1o >. ] ~Q0 .Q0 Q ) )
      /\
      B = ( X +Q ( [ <. ( M +o 2o ) , 1o >. ] ~Q .Q Q ) ) )
    /\ (
      ( Q e. Q. /\ ( Q +Q Q ) <Q P )
      /\ ( X e. Q. /\ M e. _om )
    ) ) -> B <Q ( A +Q P ) ) $=
      ( c1o ceq0 cmq0 co cplq0 wceq c2o wa cnq wcel syl2anc cnq0 cnpi syl mpan2
      cop cec coa ceq cmq cplq wbr simprll nqnq0a oveq2d simpll simprrl simprrr
      cltq com cxp cqs 1pi opelxpi enq0ex ecelqsi df-nq0 syl6eleqr nqnq0 sseldi
      mulclnq0 nqpnq0nq eqeltrd addclnq simplr c0 wne 2onn 2on0 nnppipi sylancl
      mpbir2an enqex df-nqqs mulclnq nqnq0m nqnq0pi oveq1d eqtr4d 3eqtrd nnanq0
      elni mp2an ax-mp eleqtrri distnq0r eqtrd nq02m addclnq0 addassnq0 syl3anc
      mp3an3 wb oveq1 eqeq2d mpbird 3eqtr4rd simprlr ltrelnq ltanqg 3expa mpbid
      brel eqbrtrd ) AFEGUBZHUCZDIJZKJZLZBFEMUDJZGUBZUEUCZDUFJZUGJZLZNZDOPZDDUG
      JZCUOUHZNZFOPZEUPPZNZNZNZBAYDUGJZACUGJZUOYKAYDKJZADDKJZKJZYLBYKYDYOAKYKYC
      YCYDYOLYBYCYEYIUIZYQDDUJQUKYKAOPZYDOPZYLYNLYKAXNOXOYAYJULZYKYGXMRPZXNOPYB
      YFYGYHUMZYKXLRPZDRPZUUAYKYHUUCYBYFYGYHUNZYHXLUPSUQZHURZRYHXKUUFPZXLUUGPYH
      GSPZUUHUSEGUPSUTUAUUFXKHVAVBTVCVDTZYKORDVEYQVFZXLDVGQZFXMVHQVIZYKYCYCYSYQ
      YQDDVJQAYDUJQYKBYPLZBXNYOKJZLZYKBFXQHUCZDIJZKJZFXMMGUBZHUCZDIJZKJZKJZUUOY
      KBXTFXSKJZUUSXOYAYJVKYKYGXSOPZXTUVELUUBYKXROPZYCUVFYKYHUVGUUEYHXRSSUQZUEU
      RZOYHXQUVHPZXRUVIPYHXPSPZUUIUVJYHMSPZUVKUVLMUPPZMVLVMVNVOMWHVREMVPUAZUSXP
      GSSUTVQUVHXQUEVSVBTVTVDTZYQXRDWAQFXSUJQYKXSUURFKYKXSXRDIJZUURYKUVGYCXSUVP
      LUVOYQXRDWBQYKUUQXRDIYKYHUUQXRLZUUEYHUVKUUIUVQUVNUSXPGWCVQTWDWEUKWFYKUURU
      VCFKYKUURXLUVAKJZDIJZUVCYKUUQUVRDIYKYHUVMUUQUVRLZUUEVNYHUVMUUIUVTUSGMEWGW
      RVQWDYKUUDUUCUVSUVCLZUUKUUJUUDUUCUVARPUWAUVAUUGRUUTUUFPZUVAUUGPUVMUUIUWBV
      NUSMGUPSUTWIUUFUUTHVAVBWJVCWKDXLUVAWLWRQWMUKYKUVDFXMYOKJZKJZUUOYKUUDUVDUW
      DLUUKUUDUVCUWCFKUUDUVBYOXMKDWNUKUKTYKFRPUUAYORPZUUOUWDLYKORFVEUUBVFUULYKU
      UDUUDUWEUUKUUKDDWOQFXMYOWPWQWEWFYKXOUUNUUPWSYTXOYPUUOBAXNYOKWTXATXBXCYKYE
      YLYMUOUHZYBYCYEYIXDZYKYSCOPZNZYRYEUWFWSZYKYEUWIUWGYDCOOUOXEXITUUMYSUWHYRU
      WJYDCAXFXGQXHXJ $.
  $}

  ${
    $d L a b m n q x y $.  $d P a b m n q x y $.  $d U a b m n q x y $.
    $( A Dedekind cut is arithmetically located.  Part of Proposition 11.15 of
       [BauerTaylor], p. 52, slightly modified.  It states that given a
       tolerance ` P ` , there are elements of the lower and upper cut which
       are within that tolerance of each other.

       Usually, proofs will be shorter if they use ~ prarloc2 instead.
       (Contributed by Jim Kingdon, 22-Oct-2019.) $)
    prarloc $p |- ( ( <. L , U >. e. P. /\ P e. Q. ) ->
        E. a e. L E. b e. U b <Q ( a +Q P ) ) $=
      ( vx vy vq vn vm wcel cnq wa cv co wex wrex df-rex sylib anbi2d cplq cltq
      cop cnp wbr w3a cnpi c1o clti ceq cec prml adantr subhalfnqq adantl ancli
      cmq prmu 19.42v sylibr eeeanv syl3anbrc prarloclemarch2 3adant1r 3adant2r
      3com12 3adant3r 3adant3l 2eximi eximi com ceq0 cmq0 cplq0 c2o coa simpl1l
      simp3rl simp3rr simp3ll simpl1r simprl simprrl simprrr wi simpl2r prcunqu
      3jca syl2anc mpd prarloclem syl231anc wceq eleq1 anbi1d ceqsexgv biimprcd
      exbidv sylc exbii simprl2 simprl3 simprl1 prarloclemcalc syl12anc ancom1s
      jca simpl anasss syl exlimiv exlimivv 3syl excom anbi2i bitr4i ) CBUCUDKZ
      ALKZMZDNZCKZENZBKZYBXTAUAOUBUEZMZMZEPZDPZYDEBQZDCQZXSYFDPEPZYHXSFNZLKZYLC
      KZMZGNZLKZYPBKZMZXSHNZLKZYTYTUAOAUBUEZMZMZUFZHPGPZFPZUUEINZUGKZUHUUHUIUEZ
      YPYLUUHUHUCUJUKYTUQOUAOZUBUEZMZMZMZIPZHPZGPZFPYKXSYOFPZYSGPZUUDHPZUUGXQUU
      SXRXQYNFLQUUSFBCULYNFLRSUMXQUUTXRXQYRGLQUUTGBCURYRGLRSUMXSXSUUCHPZMUVAXSU
      VBXSUUBHLQZUVBXRUVCXQHAUNUOUUBHLRSUPXSUUCHUSUTYOYSUUDFGHVAVBUUFUURFUUEUUP
      GHUUEUUEUUNIPZMUUPUUEUVDYOYSUUCUVDXSYOYSUUAUVDUUBYOYQUUAUVDYRYMYQUUAUVDYN
      YQYMUUAUVDYQYMUUAUFUUMIUGQUVDIYPYLYTVCUUMIUGRSVFVDVEVGVHUPUUEUUNIUSUTVIVJ
      UUQYKFGUUOYKHIUUOYMUUAUUBUFZJNZVKKZYLUVFUHUCVLUKYTVMOVNOZCKZYLUVFVOVPOUHU
      CUJUKYTUQOUAOZBKZMZMZMZJPZYKUUOUVEUVMJPZMUVOUUOUVEUVPUUOYMUUAUUBYMYNYSUUD
      UUNVQUUEUUAUUNUUAUUBXSYOYSVRUMZUUEUUBUUNUUAUUBXSYOYSVSUMWHUUOUVLJVKQZUVPU
      UOXQYNUUIUUAUUJUUKBKZUVRUUEXQUUNXQXRUUCYOYSVTUMZYMYNYSUUDUUNWAUUEUUIUUMWB
      UVQUUEUUIUUJUULWCUUOUULUVSUUEUUIUUJUULWDUUOXQYRUULUVSWEUVTYQYRYOUUDUUNWFU
      UKYPBCWGWIWJYLYTBJCUUHWKWLUVLJVKRSXGUVEUVMJUSUTUVNYKJUVNYBUVJWMZXTUVHWMZU
      VEUVGYAYCMZMZMZMZMZDPZEPZYKUVNUWAUWFDPZMZEPZUWIUVNUWBUVEUVGYAUVKMZMZMZMZD
      PZUVKUWLUVNUVIUWQUVEUVGUVIUVKWCUVIUWQUVNUWOUVNDUVHCUWBUWNUVMUVEUWBUWMUVLU
      VGUWBYAUVIUVKXTUVHCWNWOTTWPWQWJUVEUVGUVIUVKWDUVKUWLUWQUWJUWQEUVJBUWAUWFUW
      PDUWAUWEUWOUWBUWAUWDUWNUVEUWAUWCUWMUVGUWAYCUVKYAYBUVJBWNTTTTWRWPWQWSUWHUW
      KEUWAUWFDUSWTUTUWGYFEDUWAUWBUWEYFUWBUWAUWEYFUWBUWAMZUWEMZYAYEUWEYAUWRUVEU
      VGYAYCWCUOUWSYCYDUWEYCUWRUVEUVGYAYCWDUOUWSUWRUUCYMUVGMYDUWRUWEXHUWSUUAUUB
      YMUUAUUBUWDUWRXAYMUUAUUBUWDUWRXBXGUWSYMUVGYMUUAUUBUWDUWRXCUWRUVEUVGUWCWCX
      GXTYBAYTUVFYLXDXEXGXGXFXIVIXJXKXJXLXLXMYFEDXNSYHYAYIMZDPYJYGUWTDYGYAYEEPZ
      MUWTYAYEEUSYIUXAYAYDEBRXOXPWTYIDCRXPS $.
  $}

  ${
    $d L a b m n q x y $.  $d P a b m n q x y $.  $d U a b m n q x y $.
    $( A Dedekind cut is arithmetically located.  This is a variation of
       ~ prarloc which only constructs one (named) point and is therefore often
       easier to work with.  It states that given a tolerance ` P ` , there are
       elements of the lower and upper cut which are exactly that tolerance
       from each other.  (Contributed by Jim Kingdon, 26-Dec-2019.) $)
    prarloc2 $p |- ( ( <. L , U >. e. P. /\ P e. Q. ) ->
        E. a e. L ( a +Q P ) e. U ) $=
      ( vb cop cnp wcel cnq wa cv cplq co cltq wbr prarloc wi prcunqu rexlimdva
      wrex reximdv adantr mpd ) CBFGHZAIHZJEKZDKALMZNOZEBTZDCTZUGBHZDCTZABCDEPU
      DUJULQUEUDUIUKDCUDUHUKEBUGUFBCRSUAUBUC $.
  $}

  ${
    $d q x y $.
    $( Positive real 'less than' is a relation on positive reals.  (Contributed
       by NM, 14-Feb-1996.) $)
    ltrelpr $p |- <P C_ ( P. X. P. ) $=
      ( vx vy vq cltp cv cnp wcel c2nd cfv c1st cnq wrex copab df-iltp opabssxp
      wa cxp eqsstri ) DAEZFGBEZFGPCEZSHIGUATJIGPCKLZPABMFFQABCNUBABFFOR $.
  $}

  ${
    $d A q x y $.  $d B q x y $.
    $( More convenient form of ~ df-iltp .  (Contributed by Jim Kingdon,
       15-Dec-2019.) $)
    ltdfpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A <P B <->
        E. q e. Q. ( q e. ( 2nd ` A ) /\ q e. ( 1st ` B ) ) ) ) $=
      ( vx vy cltp wbr cop cv cnp wcel wa c2nd cfv c1st wrex wceq fveq2d eleq2d
      cnq copab df-br df-iltp eleq2i bitri simpl simpr anbi12d rexbidv syl5bb
      opelopab2a ) ABFGZABHZDIZJKEIZJKLCIZUNMNZKZUPUOONZKZLZCTPZLDEUAZKZAJKBJKL
      UPAMNZKZUPBONZKZLZCTPZULUMFKVDABFUBFVCUMDECUCUDUEVBVJDEABJJUNAQZUOBQZLZVA
      VICTVMURVFUTVHVMUQVEUPVMUNAMVKVLUFRSVMUSVGUPVMUOBOVKVLUGRSUHUIUKUJ $.
  $}

  ${
    $d A s $.  $d ph q r s $.
    genpdflem.r $e |- ( ( ph /\ r e. A ) -> r e. Q. ) $.
    genpdflem.s $e |- ( ( ph /\ s e. B ) -> s e. Q. ) $.
    $( Simplification of upper or lower cut expression.  Lemma for ~ genpdf .
       (Contributed by Jim Kingdon, 30-Sep-2019.) $)
    genpdflem $p |- ( ph -> { q e. Q. | E. r e. Q. E. s e. Q.
        ( r e. A /\ s e. B /\ q = ( r G s ) ) } =
        { q e. Q. | E. r e. A E. s e. B q = ( r G s ) } ) $=
      ( cv wcel cnq wrex wa wex ex pm4.71rd anbi1d exbidv df-rex co wceq 3anass
      w3a rexbii r19.42v bitri anass exbii bitr4i syl6bbr rexbidv bitrd rabbidv
      syl6rbbr ) AFJZBKZEJZCKZGJUPURDUAUBZUDZELMZFLMZUTECMZFBMZGLAVCUSUTNZELMZF
      BMZVEAVCUQVGNZFOZVHAVJUPLKZUQNZVGNZFOZVCAVIVMFAUQVLVGAUQVKAUQVKHPQRSVCVKV
      INZFOZVNVCVIFLMVPVBVIFLVBUQVFNZELMVIVAVQELUQUSUTUCUEUQVFELUFUGUEVIFLTUGVM
      VOFVKUQVGUHUIUJUOVGFBTUKAVGVDFBAVGVFEOZVDAVRURLKZUSNZUTNZEOZVGAVFWAEAUSVT
      UTAUSVSAUSVSIPQRSVGVSVFNZEOWBVFELTWAWCEVSUSUTUHUIUJUOUTECTUKULUMUN $.
  $}

  ${
    $d q r s v w $.
    genpdf.1 $e |- F = ( w e. P. , v e. P. |->
      <. { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 1st ` w ) /\
        s e. ( 1st ` v ) /\ q = ( r G s ) ) } ,
        { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 2nd ` w ) /\
        s e. ( 2nd ` v ) /\ q = ( r G s ) ) } >. ) $.
    $( Simplified definition of addition or multiplication on positive reals.
       (Contributed by Jim Kingdon, 30-Sep-2019.) $)
    genpdf $p |- F = ( w e. P. , v e. P. |-> <.
        { q e. Q. | E. r e. ( 1st ` w ) E. s e. ( 1st ` v ) q = ( r G s ) } ,
        { q e. Q. | E. r e. ( 2nd ` w ) E. s e. ( 2nd ` v ) q = ( r G s ) }
        >. ) $=
      ( cnp cv c1st cfv wcel w3a cnq wrex crab c2nd cop sylan wceq prop elprnql
      co cmpt2 wa adantlr adantll genpdflem elprnqu opeq12d mpt2eq3ia eqtri ) C
      ABIIFJZAJZKLZMZEJZBJZKLZMZGJUNURDUDUAZNEOPFOPGOQZUNUORLZMZURUSRLZMZVBNEOP
      FOPGOQZSZUEABIIVBEUTPFUPPGOQZVBEVFPFVDPGOQZSZUEHABIIVIVLUOIMZUSIMZUFZVCVJ
      VHVKVOUPUTDEFGVMUQUNOMZVNVMUPVDSIMZUQVPUOUBZUNVDUPUCTUGVNVAUROMZVMVNUTVFS
      IMZVAVSUSUBZURVFUTUCTUHUIVOVDVFDEFGVMVEVPVNVMVQVEVPVRUNVDUPUJTUGVNVGVSVMV
      NVTVGVSWAURVFUTUJTUHUIUKULUM $.
  $}

  ${
    $d x y z f g q r s A $.  $d x y z f g q r s B $.
    $d x y z f g w v q r s G $.  $d f g F $.
    genp.1 $e |- F = ( w e. P. , v e. P. |->
      <. { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 1st ` w ) /\
        z e. ( 1st ` v ) /\ x = ( y G z ) ) } ,
        { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 2nd ` w ) /\
        z e. ( 2nd ` v ) /\ x = ( y G z ) ) } >. ) $.
    genp.2 $e |- ( ( y e. Q. /\ z e. Q. ) -> ( y G z ) e. Q. ) $.
    $( Value of general operation (addition or multiplication) on positive
       reals.  (Contributed by Jim Kingon, 3-Oct-2019.) $)
    genipv $p |- ( ( A e. P. /\ B e. P. ) -> ( A F B ) = <.
        { q e. Q. | E. r e. ( 1st ` A ) E. s e. ( 1st ` B ) q = ( r G s ) } ,
        { q e. Q. | E. r e. ( 2nd ` A ) E. s e. ( 2nd ` B ) q = ( r G s ) }
        >. ) $=
      ( wcel wceq cfv wrex cnq crab vf vg cnp wa co c1st c2nd cop oveq1 rexeqdv
      cv fveq2 rabbidv opeq12d eqeq12d oveq2 rexbidv cvv cxp a1i cab rabssab wi
      nqex elprnql sylan eleq1 syl5ibrcom syl2an rexlimdvva abssdv syl5ss ssexd
      prop an4s elprnqu opelxp sylanbrc ovmpt2g mpd3an3 vtocl2ga eqeq1 2rexbidv
      genpdf eqeq2d cbvrex2v syl6bb cbvrabv opeq12i syl6eq ) FUCOGUCOUDFGHUEZAU
      KZBUKZCUKZIUEZPZCGUFQZRZBFUFQZRZASTZWPCGUGQZRZBFUGQZRZASTZUHZLUKZKUKZJUKZ
      IUEZPZJWQRKWSRZLSTZXLJXBRKXDRZLSTZUHUAUKZUBUKZHUEZWPCXRUFQZRZBXQUFQZRZAST
      ZWPCXRUGQZRZBXQUGQZRZASTZUHZPZFXRHUEZYABWSRZASTZYFBXDRZASTZUHZPWKXGPUAUBF
      GUCUCXQFPZXSYLYJYQXQFXRHUIYRYDYNYIYPYRYCYMASYRYABYBWSXQFUFULUJUMYRYHYOASY
      RYFBYGXDXQFUGULUJUMUNUOXRGPZYLWKYQXGXRGFHUPYSYNXAYPXFYSYMWTASYSYAWRBWSYSW
      PCXTWQXRGUFULUJUQUMYSYOXEASYSYFXCBXDYSWPCYEXBXRGUGULUJUQUMUNUOXQUCOZXRUCO
      ZYJURURUSZOZYKYTUUAUDZYDUROYIUROUUCUUDYDSURSUROUUDVDUTZUUDYDYCAVASYCASVBU
      UDYCASUUDWPWLSOZBCYBXTYTWMYBOZUUAWNXTOZWPUUFVCZYTUUGUDWMSOZWNSOZUUIUUAUUH
      UDYTYBYGUHUCOZUUGUUJXQVNZWMYGYBVEVFUUAXTYEUHUCOZUUHUUKXRVNZWNYEXTVEVFUUJU
      UKUDUUFWPWOSONWLWOSVGVHZVIVOVJVKVLVMUUDYISURUUEUUDYIYHAVASYHASVBUUDYHASUU
      DWPUUFBCYGYEYTWMYGOZUUAWNYEOZUUIYTUUQUDUUJUUKUUIUUAUURUDYTUULUUQUUJUUMWMY
      GYBVPVFUUAUUNUURUUKUUOWNYEXTVPVFUUPVIVOVJVKVLVMYDYIURURVQVRDEXQXRUCUCWPCE
      UKZUFQZRZBDUKZUFQZRZASTZWPCUUSUGQZRZBUVBUGQZRZASTZUHYJHUVABYBRZASTZUVGBYG
      RZASTZUHUUBUVBXQPZUVEUVLUVJUVNUVOUVDUVKASUVOUVABUVCYBUVBXQUFULUJUMUVOUVIU
      VMASUVOUVGBUVHYGUVBXQUGULUJUMUNUUSXRPZUVLYDUVNYIUVPUVKYCASUVPUVAYABYBUVPW
      PCUUTXTUUSXRUFULUJUQUMUVPUVMYHASUVPUVGYFBYGUVPWPCUVFYEUUSXRUGULUJUQUMUNDE
      HICBAMWDVSVTWAXAXNXFXPWTXMALSWLXHPZWTXHWOPZCWQRBWSRXMUVQWPUVRBCWSWQWLXHWO
      WBZWCUVRXLXHXIWNIUEZPZBCKJWSWQWMXIPWOUVTXHWMXIWNIUIWEZWNXJPUVTXKXHWNXJXII
      UPWEZWFWGWHXEXOALSUVQXEUVRCXBRBXDRXOUVQWPUVRBCXDXBUVSWCUVRXLUWABCKJXDXBUW
      BUWCWFWGWHWIWJ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.  $d G x y z $.
    genplt2i.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
      ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
    genplt2i.com $e |- ( ( x e. Q. /\ y e. Q. ) -> ( x G y ) = ( y G x ) ) $.
    $( Operating on both sides of two inequalities, when the operation is
       consistent with ` <Q ` .  (Contributed by Jim Kingdon, 6-Oct-2019.) $)
    genplt2i $p |- ( ( A <Q B /\ C <Q D ) -> ( A G C ) <Q ( B G D ) ) $=
      ( cltq wbr wa co cnq cv wcel adantl ltrelnq syl2an simpl wb simpll simplr
      w3a brel simprl wceq caovord2d mpbid simpr simprr caovordd ltsonq syl2anc
      sotri ) DEKLZFGKLZMZDFHNZEFHNZKLZVAEGHNZKLZUTVCKLUSUQVBUQURUAUSABCDEFKOHA
      PZOQZBPZOQZCPZOQUEVEVGKLVIVEHNVIVGHNKLUBUSIRZUQDOQZEOQZMZFOQZGOQZMZVKURDE
      OOKSUFZFGOOKSUFZVKVLVPUCTUQVMVPVLURVQVRVKVLVPUDTZUQVMVPVNURVQVRVMVNVOUGTZ
      VFVHMVEVGHNVGVEHNUHUSJRUIUJUSURVDUQURUKUSABCFGEKOHVJVTUQVMVPVOURVQVRVMVNV
      OULTVSUMUJUTVAVCKOUNSUPUO $.
  $}

  ${
    $d x y z f g h w v q A $.  $d x y z f g h w v q B $.
    $d x y z f g h w v q G $.  $d f g q F $.  $d f g h C $.  $d f g h D $.
    genpelvl.1 $e |- F = ( w e. P. , v e. P. |->
      <. { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 1st ` w ) /\
        z e. ( 1st ` v ) /\ x = ( y G z ) ) } ,
        { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 2nd ` w ) /\
        z e. ( 2nd ` v ) /\ x = ( y G z ) ) } >. ) $.
    $( Set containing the result of adding or multiplying positive reals.
       (Contributed by Jim Kingdon, 5-Dec-2019.) $)
    genpelxp $p |- ( ( A e. P. /\ B e. P. ) ->
        ( A F B ) e. ( ~P Q. X. ~P Q. ) ) $=
      ( cnp wcel cv c1st cfv w3a cnq wrex crab c2nd wceq cop cpw cxp wss ssrab2
      wa co nqex elpw2 mpbir opelxpi mp2an fveq2 eleq2d 3anbi1d rabbidv opeq12d
      2rexbidv 3anbi2d ovmpt2g mp3an3 syl6eqel ) FKLZGKLZUGFGHUHZBMZFNOZLZCMZGN
      OZLZAMVGVJIUHUAZPZCQRBQRZAQSZVGFTOZLZVJGTOZLZVMPZCQRBQRZAQSZUBZQUCZWEUDZV
      DVEWDWFLZVFWDUAVPWELZWCWELZWGWHVPQUEVOAQUFVPQUIUJUKWIWCQUEWBAQUFWCQUIUJUK
      VPWCWEWEULUMZDEFGKKVGDMZNOZLZVJEMZNOZLZVMPZCQRBQRZAQSZVGWKTOZLZVJWNTOZLZV
      MPZCQRBQRZAQSZUBWDHVIWPVMPZCQRBQRZAQSZVRXCVMPZCQRBQRZAQSZUBWFWKFUAZWSXIXF
      XLXMWRXHAQXMWQXGBCQQXMWMVIWPVMXMWLVHVGWKFNUNUOUPUSUQXMXEXKAQXMXDXJBCQQXMX
      AVRXCVMXMWTVQVGWKFTUNUOUPUSUQURWNGUAZXIVPXLWCXNXHVOAQXNXGVNBCQQXNWPVLVIVM
      XNWOVKVJWNGNUNUOUTUSUQXNXKWBAQXNXJWABCQQXNXCVTVRVMXNXBVSVJWNGTUNUOUTUSUQU
      RJVAVBWJVC $.

    genpelvl.2 $e |- ( ( y e. Q. /\ z e. Q. ) -> ( y G z ) e. Q. ) $.
    $( Membership in lower cut of general operation (addition or
       multiplication) on positive reals.  (Contributed by Jim Kingdon,
       2-Oct-2019.) $)
    genpelvl $p |- ( ( A e. P. /\ B e. P. ) -> ( C e. ( 1st ` ( A F B ) ) <->
        E. g e. ( 1st ` A ) E. h e. ( 1st ` B ) C = ( g G h ) ) ) $=
      ( vf wcel wa cnq cfv wrex cnp co c1st cv wceq crab c2nd cop genipv fveq2d
      rabex op1st syl6eq eleq2d elrabi syl6bi elprnql sylan caovcl syl2an eleq1
      nqex prop an4s syl5ibrcom rexlimdvva wb eqeq1 2rexbidv elrab3 sylan9bb ex
      pm5.21ndd ) FUAPZGUAPZQZHRPZHFGKUBZUCSZPZHIUDZJUDZLUBZUEZJGUCSZTIFUCSZTZV
      PVTHOUDZWCUEZJWETIWFTZORUFZPZVQVPVSWKHVPVSWKWIJGUGSZTIFUGSZTZORUFZUHZUCSW
      KVPVRWQUCABCDEFGKLJIOMNUIUJWKWPWJORVBUKWOORVBUKULUMUNZWJOHRUOUPVPWDVQIJWF
      WEVPWAWFPZWBWEPZQQVQWDWCRPZVNWSVOWTXAVNWSQWARPZWBRPZXAVOWTQVNWFWNUHUAPWSX
      BFVCWAWNWFUQURVOWEWMUHUAPWTXCGVCWBWMWEUQURBCWAWBRLNUSUTVDHWCRVAVEVFVPVQVT
      WGVGVPVTWLVQWGWRWJWGOHRWHHUEWIWDIJWFWEWHHWCVHVIVJVKVLVM $.

    $( Membership in upper cut of general operation (addition or
       multiplication) on positive reals.  (Contributed by Jim Kingdon,
       15-Oct-2019.) $)
    genpelvu $p |- ( ( A e. P. /\ B e. P. ) -> ( C e. ( 2nd ` ( A F B ) ) <->
        E. g e. ( 2nd ` A ) E. h e. ( 2nd ` B ) C = ( g G h ) ) ) $=
      ( vf wcel wa cnq cfv wrex cnp co c2nd cv wceq crab c1st cop genipv fveq2d
      rabex op2nd syl6eq eleq2d elrabi syl6bi elprnqu sylan caovcl syl2an eleq1
      nqex prop an4s syl5ibrcom rexlimdvva wb eqeq1 2rexbidv elrab3 sylan9bb ex
      pm5.21ndd ) FUAPZGUAPZQZHRPZHFGKUBZUCSZPZHIUDZJUDZLUBZUEZJGUCSZTIFUCSZTZV
      PVTHOUDZWCUEZJWETIWFTZORUFZPZVQVPVSWKHVPVSWIJGUGSZTIFUGSZTZORUFZWKUHZUCSW
      KVPVRWQUCABCDEFGKLJIOMNUIUJWPWKWOORVBUKWJORVBUKULUMUNZWJOHRUOUPVPWDVQIJWF
      WEVPWAWFPZWBWEPZQQVQWDWCRPZVNWSVOWTXAVNWSQWARPZWBRPZXAVOWTQVNWNWFUHUAPWSX
      BFVCWAWFWNUQURVOWMWEUHUAPWTXCGVCWBWEWMUQURBCWAWBRLNUSUTVDHWCRVAVEVFVPVQVT
      WGVGVPVTWLVQWGWRWJWGOHRWHHUEWIWDIJWFWEWHHWCVHVIVJVKVLVM $.

    $( Pre-closure law for general operation on lower cuts.  (Contributed by
       Jim Kingdon, 2-Oct-2019.) $)
    genpprecll $p |- ( ( A e. P. /\ B e. P. ) ->
        ( ( C e. ( 1st ` A ) /\ D e. ( 1st ` B ) ) ->
        ( C G D ) e. ( 1st ` ( A F B ) ) ) ) $=
      ( vg vh c1st cfv wcel wa co cnp cv wceq wrex eqid rspceov mp3an3 genpelvl
      syl5ibr ) HFPQZRZIGPQZRZSHIKTZFGJTPQRFUARGUARSUNNUBOUBKTUCOULUDNUJUDZUKUM
      UNUNUCUOUNUENOUJULHIUNKUFUGABCDEFGUNNOJKLMUHUI $.

    $( Pre-closure law for general operation on upper cuts.  (Contributed by
       Jim Kingdon, 7-Nov-2019.) $)
    genppreclu $p |- ( ( A e. P. /\ B e. P. ) ->
        ( ( C e. ( 2nd ` A ) /\ D e. ( 2nd ` B ) ) ->
        ( C G D ) e. ( 2nd ` ( A F B ) ) ) ) $=
      ( vg vh c2nd cfv wcel wa co cnp cv wceq wrex eqid rspceov mp3an3 genpelvu
      syl5ibr ) HFPQZRZIGPQZRZSHIKTZFGJTPQRFUARGUARSUNNUBOUBKTUCOULUDNUJUDZUKUM
      UNUNUCUOUNUENOUJULHIUNKUFUGABCDEFGUNNOJKLMUHUI $.

    $( Domain of general operation on positive reals.  (Contributed by Jim
       Kingdon, 2-Oct-2019.) $)
    genipdm $p |- dom F = ( P. X. P. ) $=
      ( cnp cv c1st cfv wcel w3a cnq wrex crab c2nd nqex co wceq cop rabex opex
      dmmpt2 ) DEJJBKZDKZLMNCKZEKZLMNAKUGUIGUAUBZOCPQBPQZAPRZUGUHSMNUIUJSMNUKOC
      PQBPQZAPRZUCFHUMUOULAPTUDUNAPTUDUEUF $.

    $( The lower cut produced by addition or multiplication on positive reals
       is inhabited.  (Contributed by Jim Kingdon, 5-Oct-2019.) $)
    genpml $p |- ( ( A e. P. /\ B e. P. ) ->
        E. q e. Q. q e. ( 1st ` ( A F B ) ) ) $=
      ( vf vg cnp wcel wa cv cfv cnq c1st co wrex wex c2nd prop prml rexex 3syl
      cop adantr ad2antlr genpprecll imp elprnql sylan anim12i an4s caovcl wceq
      syl simpr eleq1d rspcedv mpd anassrs exlimddv ) FOPZGOPZQZMRZFUASZPZJRZFG
      HUBUASZPZJTUCZMVHVMMUDZVIVHVLFUESZUJOPZVMMTUCVRFUFZMVSVLUGVMMTUHUIUKVJVMQ
      NRZGUASZPZVQNVIWDNUDZVHVMVIWCGUESZUJOPZWDNTUCWEGUFZNWFWCUGWDNTUHUIULVJVMW
      DVQVJVMWDQZQZVKWBIUBZVOPZVQVJWIWLABCDEFGVKWBHIKLUMUNWJVPWLJWKTWJVKTPZWBTP
      ZQZWKTPVHVMVIWDWOVHVMQWMVIWDQWNVHVTVMWMWAVKVSVLUOUPVIWGWDWNWHWBWFWCUOUPUQ
      URBCVKWBTILUSVAWJVNWKUTZQVNWKVOWJWPVBVCVDVEVFVGVG $.

    $( The upper cut produced by addition or multiplication on positive reals
       is inhabited.  (Contributed by Jim Kingdon, 5-Dec-2019.) $)
    genpmu $p |- ( ( A e. P. /\ B e. P. ) ->
        E. q e. Q. q e. ( 2nd ` ( A F B ) ) ) $=
      ( vf vg cnp wcel wa cv cfv cnq c2nd co wrex wex c1st prop prmu rexex 3syl
      cop adantr ad2antlr genppreclu imp elprnqu sylan anim12i an4s caovcl wceq
      syl simpr eleq1d rspcedv mpd anassrs exlimddv ) FOPZGOPZQZMRZFUASZPZJRZFG
      HUBUASZPZJTUCZMVHVMMUDZVIVHFUESZVLUJOPZVMMTUCVRFUFZMVLVSUGVMMTUHUIUKVJVMQ
      NRZGUASZPZVQNVIWDNUDZVHVMVIGUESZWCUJOPZWDNTUCWEGUFZNWCWFUGWDNTUHUIULVJVMW
      DVQVJVMWDQZQZVKWBIUBZVOPZVQVJWIWLABCDEFGVKWBHIKLUMUNWJVPWLJWKTWJVKTPZWBTP
      ZQZWKTPVHVMVIWDWOVHVMQWMVIWDQWNVHVTVMWMWAVKVLVSUOUPVIWGWDWNWHWBWCWFUOUPUQ
      URBCVKWBTILUSVAWJVNWKUTZQVNWKVOWJWPVBVCVDVEVFVGVG $.

    ${
      $d F h $.
      genpcdl.2 $e |- ( ( ( ( A e. P. /\ g e. ( 1st ` A ) ) /\
                       ( B e. P. /\ h e. ( 1st ` B ) ) ) /\ x e. Q. ) ->
                       ( x <Q ( g G h ) -> x e. ( 1st ` ( A F B ) ) ) ) $.
      $( Downward closure of an operation on positive reals.  (Contributed by
         Jim Kingdon, 14-Oct-2019.) $)
      genpcdl $p |- ( ( A e. P. /\ B e. P. ) -> ( f e. ( 1st ` ( A F B ) ) ->
                   ( x <Q f -> x e. ( 1st ` ( A F B ) ) ) ) ) $=
        ( wcel wa cv cltq wi cnp wbr c1st cfv cnq ltrelnq brel simpld wceq wrex
        co genpelvl adantr breq2 biimpd sylan9r exp31 impancom rexlimdvv sylbid
        wb an4s ex syl5 com34 pm2.43d com23 ) FUAPZGUAPZQZARZHRZSUBZVLFGKUKUCUD
        ZPZVKVNPZVJVMVOVPTVJVMVOVMVPVMVKUEPZVJVOVMVPTZTZVMVQVLUEPVKVLUEUESUFUGU
        HVJVQVSVJVQQZVOVLIRZJRZLUKZUIZJGUCUDZUJIFUCUDZUJZVRVJVOWGVAVQABCDEFGVLI
        JKLMNULUMVTWDVRIJWFWEVJWAWFPZWBWEPZQVQWDVRTZVHWHVIWIVQWJTVHWHQVIWIQQZVQ
        WDVRWDVMVKWCSUBZWKVQQVPWDVMWLVLWCVKSUNUOOUPUQVBURUSUTVCVDVEVFVG $.
    $}

    ${
      $d F h $.
      genpcuu.2 $e |- ( ( ( ( A e. P. /\ g e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ h e. ( 2nd ` B ) ) ) /\ x e. Q. ) ->
                       ( ( g G h ) <Q x -> x e. ( 2nd ` ( A F B ) ) ) ) $.
      $( Upward closure of an operation on positive reals.  (Contributed by Jim
         Kingdon, 8-Nov-2019.) $)
      genpcuu $p |- ( ( A e. P. /\ B e. P. ) -> ( f e. ( 2nd ` ( A F B ) ) ->
                   ( f <Q x -> x e. ( 2nd ` ( A F B ) ) ) ) ) $=
        ( wcel wa cv cltq wi cnp wbr c2nd cfv cnq ltrelnq brel simprd wceq wrex
        co genpelvu adantr breq1 biimpd sylan9r exp31 impancom rexlimdvv sylbid
        wb an4s ex syl5 com34 pm2.43d com23 ) FUAPZGUAPZQZHRZARZSUBZVKFGKUKUCUD
        ZPZVLVNPZVJVMVOVPTVJVMVOVMVPVMVLUEPZVJVOVMVPTZTZVMVKUEPVQVKVLUEUESUFUGU
        HVJVQVSVJVQQZVOVKIRZJRZLUKZUIZJGUCUDZUJIFUCUDZUJZVRVJVOWGVAVQABCDEFGVKI
        JKLMNULUMVTWDVRIJWFWEVJWAWFPZWBWEPZQVQWDVRTZVHWHVIWIVQWJTVHWHQVIWIQQZVQ
        WDVRWDVMWCVLSUBZWKVQQVPWDVMWLVKWCVLSUNUOOUPUQVBURUSUTVCVDVEVFVG $.
    $}

    ${
      $d A a b c d q r v w x y z $.  $d B a b c d f g h q r v w x y z $.
      $d C f g h x y z $.  $d D f g h x y z $.
      $d F a b c d f g h q r v w x y z $.  $d G a b c d f g h q r v w x y z $.
      genprndl.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
        ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
      genprndl.com $e |- ( ( x e. Q. /\ y e. Q. ) ->
        ( x G y ) = ( y G x ) ) $.
      genprndl.lower $e |- ( ( ( ( A e. P. /\ g e. ( 1st ` A ) ) /\
                       ( B e. P. /\ h e. ( 1st ` B ) ) ) /\ x e. Q. ) ->
                       ( x <Q ( g G h ) -> x e. ( 1st ` ( A F B ) ) ) ) $.
      $( The lower cut produced by addition or multiplication on positive reals
         is rounded.  (Contributed by Jim Kingdon, 7-Oct-2019.) $)
      genprndl $p |- ( ( A e. P. /\ B e. P. ) ->
          A. q e. Q. ( q e. ( 1st ` ( A F B ) ) <->
            E. r e. Q. ( q <Q r /\ r e. ( 1st ` ( A F B ) ) ) ) ) $=
        ( wcel wa vc vd va vb cnp cv co c1st cfv cltq wbr wrex wb wceq genpelvl
        cnq wex r2ex syl6bb biimpa adantrl c2nd prop prnmaxl sylan anim12i an4s
        wi cop reeanv sylibr genplt2i reximi syl adantrr breq1 biimprd ad2antll
        reximdv mpd exlimdvv adantr genpprecll imp elprnql caovcl breq2 anbi12d
        eleq1 adantl rspcedv mpan2d rexlimdvva expr wal genpcdl alrimdv imbi12d
        ex cbvalv syl6ib syl6 impd ancomsd ad2antrr rexlimdva impbid ralrimiva
        sp ) FUESZGUESZTZMUFZFGJUGUHUIZSZXMLUFZUJUKZXPXNSZTZLUPULZUMMUPXLXMUPSZ
        TZXOXTXLYAXOXTXLYAXOTZTZXMUAUFZUBUFZKUGZUJUKZUBGUHUIZULZUAFUHUIZULZXTYD
        UCUFZYKSZUDUFZYISZTZXMYMYOKUGZUNZTZUDUQUCUQZYLXLXOUUAYAXLXOUUAXLXOYSUDY
        IULUCYKULUUAABCDEFGXMUCUDJKNOUOYSUCUDYKYIURUSUTVAXLUUAYLVHYCXLYTYLUCUDX
        LYTYLXLYTTYRYGUJUKZUBYIULZUAYKULZYLXLYQUUDYSXLYQTZYMYEUJUKZYOYFUJUKZTZU
        BYIULZUAYKULZUUDUUEUUFUAYKULZUUGUBYIULZTZUUJXJYNXKYPUUMXJYNTUUKXKYPTUUL
        XJYKFVBUIZVIUESZYNUUKFVCZUAYMUUNYKVDVEXKYIGVBUIZVIUESZYPUULGVCZUBYOUUQY
        IVDVEVFVGUUFUUGUAUBYKYIVJVKUUIUUCUAYKUUHUUBUBYIABCYMYEYOYFKPQVLVMVMVNVO
        YSUUDYLVHXLYQYSUUCYJUAYKYSUUBYHUBYIYSYHUUBXMYRYGUJVPVQVSVSVRVTWSWAWBVTX
        LYLXTVHYCXLYHXTUAUBYKYIXLYEYKSZYFYISZTZTZYHYGXNSZXTXLUVBUVDABCDEFGYEYFJ
        KNOWCWDUVCXSYHUVDTZLYGUPUVCYEUPSZYFUPSZTZYGUPSXJUUTXKUVAUVHXJUUTTUVFXKU
        VATUVGXJUUOUUTUVFUUPYEUUNYKWEVEXKUURUVAUVGUUSYFUUQYIWEVEVFVGBCYEYFUPKOW
        FVNXPYGUNZXSUVEUMUVCUVIXQYHXRUVDXPYGXMUJWGXPYGXNWIWHWJWKWLWMWBVTWNYBXSX
        OLUPXLXSXOVHYAXPUPSXLXRXQXOXLXRXQXOXLXRXQXOVHZMWOZUVJXLXRAUFZXPUJUKZUVL
        XNSZVHZAWOUVKXLXRUVOAABCDEFGLHIJKNORWPWQUVOUVJAMUVLXMUNUVMXQUVNXOUVLXMX
        PUJVPUVLXMXNWIWRWTXAUVJMXIXBXCXDXEXFXGXH $.
    $}

    ${
      $d A a b c d q r v w x y z $.  $d B a b c d f g h q r v w x y z $.
      $d C f g h x y z $.  $d D f g h x y z $.
      $d F a b c d f g h q r v w x y z $.  $d G a b c d f g h q r v w x y z $.
      genprndu.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
        ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
      genprndu.com $e |- ( ( x e. Q. /\ y e. Q. ) ->
        ( x G y ) = ( y G x ) ) $.
      genprndu.upper $e |- ( ( ( ( A e. P. /\ g e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ h e. ( 2nd ` B ) ) ) /\ x e. Q. ) ->
                       ( ( g G h ) <Q x -> x e. ( 2nd ` ( A F B ) ) ) ) $.
      $( The upper cut produced by addition or multiplication on positive reals
         is rounded.  (Contributed by Jim Kingdon, 7-Oct-2019.) $)
      genprndu $p |- ( ( A e. P. /\ B e. P. ) ->
          A. r e. Q. ( r e. ( 2nd ` ( A F B ) ) <->
            E. q e. Q. ( q <Q r /\ q e. ( 2nd ` ( A F B ) ) ) ) ) $=
        ( wcel wa vc vd va vb cnp cv co c2nd cfv cltq wbr wrex wb wceq genpelvu
        cnq wex r2ex syl6bb biimpa adantrl c1st prop prnminu sylan anim12i an4s
        wi cop reeanv sylibr genplt2i reximi syl adantrr breq2 biimprd ad2antll
        reximdv mpd exlimdvv adantr genppreclu imp elprnqu caovcl breq1 anbi12d
        eleq1 adantl rspcedv mpan2d rexlimdvva expr wal genpcuu alrimdv imbi12d
        ex cbvalv syl6ib syl6 impd ancomsd ad2antrr rexlimdva impbid ralrimiva
        sp ) FUESZGUESZTZLUFZFGJUGUHUIZSZMUFZXMUJUKZXPXNSZTZMUPULZUMLUPXLXMUPSZ
        TZXOXTXLYAXOXTXLYAXOTZTZUAUFZUBUFZKUGZXMUJUKZUBGUHUIZULZUAFUHUIZULZXTYD
        UCUFZYKSZUDUFZYISZTZXMYMYOKUGZUNZTZUDUQUCUQZYLXLXOUUAYAXLXOUUAXLXOYSUDY
        IULUCYKULUUAABCDEFGXMUCUDJKNOUOYSUCUDYKYIURUSUTVAXLUUAYLVHYCXLYTYLUCUDX
        LYTYLXLYTTYGYRUJUKZUBYIULZUAYKULZYLXLYQUUDYSXLYQTZYEYMUJUKZYFYOUJUKZTZU
        BYIULZUAYKULZUUDUUEUUFUAYKULZUUGUBYIULZTZUUJXJYNXKYPUUMXJYNTUUKXKYPTUUL
        XJFVBUIZYKVIUESZYNUUKFVCZUAYMYKUUNVDVEXKGVBUIZYIVIUESZYPUULGVCZUBYOYIUU
        QVDVEVFVGUUFUUGUAUBYKYIVJVKUUIUUCUAYKUUHUUBUBYIABCYEYMYFYOKPQVLVMVMVNVO
        YSUUDYLVHXLYQYSUUCYJUAYKYSUUBYHUBYIYSYHUUBXMYRYGUJVPVQVSVSVRVTWSWAWBVTX
        LYLXTVHYCXLYHXTUAUBYKYIXLYEYKSZYFYISZTZTZYHYGXNSZXTXLUVBUVDABCDEFGYEYFJ
        KNOWCWDUVCXSYHUVDTZMYGUPUVCYEUPSZYFUPSZTZYGUPSXJUUTXKUVAUVHXJUUTTUVFXKU
        VATUVGXJUUOUUTUVFUUPYEYKUUNWEVEXKUURUVAUVGUUSYFYIUUQWEVEVFVGBCYEYFUPKOW
        FVNXPYGUNZXSUVEUMUVCUVIXQYHXRUVDXPYGXMUJWGXPYGXNWIWHWJWKWLWMWBVTWNYBXSX
        OMUPXLXSXOVHYAXPUPSXLXRXQXOXLXRXQXOXLXRXQXOVHZLWOZUVJXLXRXPAUFZUJUKZUVL
        XNSZVHZAWOUVKXLXRUVOAABCDEFGMHIJKNORWPWQUVOUVJALUVLXMUNUVMXQUVNXOUVLXMX
        PUJVPUVLXMXNWIWRWTXAUVJLXIXBXCXDXEXFXGXH $.
    $}

    ${
      $d A a b c d f g h q v w x y z $.  $d B a b c d f g h q v w x y z $.
      $d C f g h $.  $d D f g h $.  $d F a b c d f g q $.
      $d G a b c d f g h q v w x y z $.
      genpdisj.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
        ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
      genpdisj.com $e |-
        ( ( x e. Q. /\ y e. Q. ) -> ( x G y ) = ( y G x ) ) $.
      $( The lower and upper cuts produced by addition or multiplication on
         positive reals are disjoint.  (Contributed by Jim Kingdon,
         15-Oct-2019.) $)
      genpdisj $p |- ( ( A e. P. /\ B e. P. ) -> A. q e. Q.
          -. ( q e. ( 1st ` ( A F B ) ) /\ q e. ( 2nd ` ( A F B ) ) ) ) $=
        ( va vb vc vd wcel wa cnp cv co c1st cfv c2nd wn cnq wceq wex wfal wrex
        genpelvl r2ex syl6bb genpelvu anbi12d ee4anv syl6bbr biimpa wbr an4 cop
        cltq prop prltlu 3expib syl im2anan9 genplt2i syl6 syl5bir imp adantrlr
        wi adantlr adantrrr eqtr2 ad2ant2l adantl ltsonq soirri breq2 pm2.21fal
        ltrelnq mtbii ex exlimdvv mpd inegd ralrimivw ) FUASZGUASZTZJUBZFGHUCZU
        DUESZWOWPUFUESZTZUGJUHWNWSWNWSTZOUBZFUDUEZSZPUBZGUDUEZSZTZWOXAXDIUCZUIZ
        TZQUBZFUFUEZSZRUBZGUFUEZSZTZWOXKXNIUCZUIZTZTZRUJQUJZPUJOUJZUKWNWSYCWNWS
        XJPUJOUJZXTRUJQUJZTYCWNWQYDWRYEWNWQXIPXEULOXBULYDABCDEFGWOOPHIKLUMXIOPX
        BXEUNUOWNWRXSRXOULQXLULYEABCDEFGWOQRHIKLUPXSQRXLXOUNUOUQXJXTOPQRURUSUTW
        TYBUKOPWTYAUKQRWTYAUKWTYATZXHXRVDVAZWTXJXQYGXSWTXGXQYGXIWNXGXQTZYGWSWNY
        HYGYHXCXMTZXFXPTZTZWNYGXCXMXFXPVBWNYKXAXKVDVAZXDXNVDVAZTYGWLYIYLWMYJYMW
        LXBXLVCUASZYIYLVOFVEYNXCXMYLXAXKXLXBVFVGVHWMXEXOVCUASZYJYMVOGVEYOXFXPYM
        XDXNXOXEVFVGVHVIABCXAXKXDXNIMNVJVKVLVMVPVNVQYFXHXRUIZYGUGYAYPWTXIXSYPXG
        XQWOXHXRVRVSVTYPXHXHVDVAYGXHVDUHWAWEWBXHXRXHVDWCWFVHWDWGWHWHWIWJWK $.
    $}

    ${
      $d A f g h t q v w x y z $.  $d B f g h t q v w x y z $.
      $d C f g h t v w x y z $.  $d D f g h $.  $d F f g h t q v w x y z $.
      $d G f g h t q v w x y z $.
      genpassg.4 $e |- dom F = ( P. X. P. ) $.
      genpassg.5 $e |- ( ( f e. P. /\ g e. P. ) -> ( f F g ) e. P. ) $.
      genpassg.6 $e |- ( ( f e. Q. /\ g e. Q. /\ h e. Q. ) ->
          ( ( f G g ) G h ) = ( f G ( g G h ) ) ) $.
      $( Associativity of lower cuts.  Lemma for ~ genpassg .  (Contributed by
         Jim Kingdon, 11-Dec-2019.) $)
      genpassl $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
          ( 1st ` ( ( A F B ) F C ) ) = ( 1st ` ( A F ( B F C ) ) ) ) $=
        ( vt wa cnp wcel w3a co c1st cfv cv wceq wrex cnq c2nd cop prop elprnql
        wb sylan r19.41v oveq2 adantr adantl eqtr4d eqeq2d expcom pm5.32d 3expa
        wex sylan2 anassrs rexbidva syl5rbbr an32s syl6bb exbidv caovcl elisset
        an31s syl biantrurd 19.41v syl6bbr ancoms df-rex genpelvl anbi1d syl5bb
        rexcom4 3bitr4rd 3impb 3adant3 3impa oveq1 rexbidv pm5.32i exbii rexbii
        bitri 3bitr4d eqrdv ) FUAUBZGUAUBZHUAUBZUCZAFGLUDZHLUDUEUFZFGHLUDZLUDUE
        UFZXBAUGZIUGZSUGZMUDZUHZSXEUEUFZUIZIFUEUFZUIZXGXHJUGZMUDZKUGZMUDZUHZKHU
        EUFZUIZJGUEUFZUIZIXNUIZXGXFUBZXGXDUBZWSWTXAXOYEUOZWTXATZWSYHYIWSTXMYDIX
        NYIWSXHXNUBZXMYDUOZWSYJTZYIXHUJUBZYKWSXNFUKUFZULUAUBYJYMFUMXHYNXNUNUPZY
        IYMTZXIXPXRMUDZUHZXTTZKYAUIZJYCUIZSVFZYRKYAUIZJYCUIZXKTZSVFZYDXMYPUUAUU
        ESYMXAWTUUAUUEUOYMXATZWTTZUUAUUCXKTZJYCUIUUEUUHYTUUIJYCUUGWTXPYCUBZYTUU
        IUOZWTUUJTZUUGXPUJUBZUUKWTYCGUKUFZULUAUBUUJUUMGUMXPUUNYCUNUPZYMUUMXAUUK
        UUIYRXKTZKYAUIYMUUMTZXATZYTYRXKKYAUQUURUUPYSKYAUUQXAXRYAUBZUUPYSUOZXAUU
        STZUUQXRUJUBZUUTXAYAHUKUFZULUAUBUUSUVBHUMXRUVCYAUNUPZYMUUMUVBUUTYMUUMUV
        BUCZYRXKXTYRUVEXKXTUOYRUVETZXJXSXGUVFXJXHYQMUDZXSYRXJUVGUHUVEXIYQXHMURU
        SUVEXSUVGUHYRRUTVAVBVCVDVEVGVHVIVJVKVGVHVIUUCXKJYCUQVLVPVMYIYDUUBUOYMYI
        YDYTSVFZJYCUIZUUBXAWTYDUVIUOXAWTTYBUVHJYCXAWTUUJYBUVHUOZUULXAUUMUVJUUOU
        UMXAUVJUUMXATZYBYSSVFZKYAUIUVHUVKXTUVLKYAUUMXAUUSXTUVLUOZUVAUUMUVBUVMUV
        DUUMUVBTZXTYRSVFZXTTUVLUVNUVOXTUVNYQUJUBUVOBCXPXRUJMOVNSYQUJVOVQVRYRXTS
        VSVTVGVHVIYSKSYAWFVLWAVGVHVIWAYTJSYCWFVLUSYIXMUUFUOYMXMXIXLUBZXKTZSVFYI
        UUFXKSXLWBYIUVQUUESYIUVPUUDXKABCDEGHXIJKLMNOWCWDVMWEUSWGVGVHVIWAWHWSWTX
        AYFXOUOZYIWSXEUAUBUVRIJGHUALQVNABCDEFXEXGISLMNOWCVGWHXBXGXIXRMUDZUHZKYA
        UIZSXCUEUFZUIZXIXQUHZJYCUIZIXNUIZUWATZSVFZYGYEUWCXIUWBUBZUWATZSVFXBUWHU
        WASUWBWBXBUWJUWGSXBUWIUWFUWAWSWTUWIUWFUOXAABCDEFGXIIJLMNOWCWIWDVMWEWSWT
        XAYGUWCUOZWSWTTXCUAUBXAUWKIJFGUALQVNABCDEXCHXGSKLMNOWCUPWJWSWTYEUWHUOZX
        AWTWSUWLWTWSTZYEUWDUWATZJYCUIZIXNUIZSVFZUWHUWMYEUWOSVFZIXNUIUWQUWMYDUWR
        IXNWTWSYJYDUWRUOZYLWTYMUWSYOYMWTUWSYMWTTZYDUWNSVFZJYCUIUWRUWTYBUXAJYCYM
        WTUUJYBUXAUOZUULYMUUMUXBUUOUUQYBUWDSVFZYBTZUXAUUQUXCYBUUQXQUJUBUXCBCXHX
        PUJMOVNSXQUJVOVQVRUXAUWDYBTZSVFUXDUWNUXESUWDUWAYBUWDUVTXTKYAUWDUVSXSXGX
        IXQXRMWKVBWLWMWNUWDYBSVSWPVTVGVHVIUWNJSYCWFVLWAVGVHVIUWOISXNWFVLUWPUWGS
        UWPUWEUWATZIXNUIUWGUWOUXFIXNUWDUWAJYCUQWOUWEUWAIXNUQWPWNVLWAWIWQWGWR $.

      $( Associativity of upper cuts.  Lemma for ~ genpassg .  (Contributed by
         Jim Kingdon, 11-Dec-2019.) $)
      genpassu $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
          ( 2nd ` ( ( A F B ) F C ) ) = ( 2nd ` ( A F ( B F C ) ) ) ) $=
        ( vt wa cnp wcel w3a co c2nd cfv cv wceq wrex cnq c1st cop prop elprnqu
        wb sylan r19.41v oveq2 adantr adantl eqtr4d eqeq2d expcom pm5.32d 3expa
        wex sylan2 anassrs rexbidva syl5rbbr an32s syl6bb exbidv caovcl elisset
        an31s syl biantrurd 19.41v syl6bbr ancoms df-rex genpelvu anbi1d syl5bb
        rexcom4 3bitr4rd 3impb 3adant3 3impa oveq1 rexbidv pm5.32i exbii rexbii
        bitri 3bitr4d eqrdv ) FUAUBZGUAUBZHUAUBZUCZAFGLUDZHLUDUEUFZFGHLUDZLUDUE
        UFZXBAUGZIUGZSUGZMUDZUHZSXEUEUFZUIZIFUEUFZUIZXGXHJUGZMUDZKUGZMUDZUHZKHU
        EUFZUIZJGUEUFZUIZIXNUIZXGXFUBZXGXDUBZWSWTXAXOYEUOZWTXATZWSYHYIWSTXMYDIX
        NYIWSXHXNUBZXMYDUOZWSYJTZYIXHUJUBZYKWSFUKUFZXNULUAUBYJYMFUMXHXNYNUNUPZY
        IYMTZXIXPXRMUDZUHZXTTZKYAUIZJYCUIZSVFZYRKYAUIZJYCUIZXKTZSVFZYDXMYPUUAUU
        ESYMXAWTUUAUUEUOYMXATZWTTZUUAUUCXKTZJYCUIUUEUUHYTUUIJYCUUGWTXPYCUBZYTUU
        IUOZWTUUJTZUUGXPUJUBZUUKWTGUKUFZYCULUAUBUUJUUMGUMXPYCUUNUNUPZYMUUMXAUUK
        UUIYRXKTZKYAUIYMUUMTZXATZYTYRXKKYAUQUURUUPYSKYAUUQXAXRYAUBZUUPYSUOZXAUU
        STZUUQXRUJUBZUUTXAHUKUFZYAULUAUBUUSUVBHUMXRYAUVCUNUPZYMUUMUVBUUTYMUUMUV
        BUCZYRXKXTYRUVEXKXTUOYRUVETZXJXSXGUVFXJXHYQMUDZXSYRXJUVGUHUVEXIYQXHMURU
        SUVEXSUVGUHYRRUTVAVBVCVDVEVGVHVIVJVKVGVHVIUUCXKJYCUQVLVPVMYIYDUUBUOYMYI
        YDYTSVFZJYCUIZUUBXAWTYDUVIUOXAWTTYBUVHJYCXAWTUUJYBUVHUOZUULXAUUMUVJUUOU
        UMXAUVJUUMXATZYBYSSVFZKYAUIUVHUVKXTUVLKYAUUMXAUUSXTUVLUOZUVAUUMUVBUVMUV
        DUUMUVBTZXTYRSVFZXTTUVLUVNUVOXTUVNYQUJUBUVOBCXPXRUJMOVNSYQUJVOVQVRYRXTS
        VSVTVGVHVIYSKSYAWFVLWAVGVHVIWAYTJSYCWFVLUSYIXMUUFUOYMXMXIXLUBZXKTZSVFYI
        UUFXKSXLWBYIUVQUUESYIUVPUUDXKABCDEGHXIJKLMNOWCWDVMWEUSWGVGVHVIWAWHWSWTX
        AYFXOUOZYIWSXEUAUBUVRIJGHUALQVNABCDEFXEXGISLMNOWCVGWHXBXGXIXRMUDZUHZKYA
        UIZSXCUEUFZUIZXIXQUHZJYCUIZIXNUIZUWATZSVFZYGYEUWCXIUWBUBZUWATZSVFXBUWHU
        WASUWBWBXBUWJUWGSXBUWIUWFUWAWSWTUWIUWFUOXAABCDEFGXIIJLMNOWCWIWDVMWEWSWT
        XAYGUWCUOZWSWTTXCUAUBXAUWKIJFGUALQVNABCDEXCHXGSKLMNOWCUPWJWSWTYEUWHUOZX
        AWTWSUWLWTWSTZYEUWDUWATZJYCUIZIXNUIZSVFZUWHUWMYEUWOSVFZIXNUIUWQUWMYDUWR
        IXNWTWSYJYDUWRUOZYLWTYMUWSYOYMWTUWSYMWTTZYDUWNSVFZJYCUIUWRUWTYBUXAJYCYM
        WTUUJYBUXAUOZUULYMUUMUXBUUOUUQYBUWDSVFZYBTZUXAUUQUXCYBUUQXQUJUBUXCBCXHX
        PUJMOVNSXQUJVOVQVRUXAUWDYBTZSVFUXDUWNUXESUWDUWAYBUWDUVTXTKYAUWDUVSXSXGX
        IXQXRMWKVBWLWMWNUWDYBSVSWPVTVGVHVIUWNJSYCWFVLWAVGVHVIUWOISXNWFVLUWPUWGS
        UWPUWEUWATZIXNUIUWGUWOUXFIXNUWDUWAJYCUQWOUWEUWAIXNUQWPWNVLWAWIWQWGWR $.

      $( Associativity of an operation on reals.  (Contributed by Jim Kingdon,
         11-Dec-2019.) $)
      genpassg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
          ( ( A F B ) F C ) = ( A F ( B F C ) ) ) $=
        ( cnp wcel w3a co wceq c1st cfv genpassl genpassu wa caovcl sylan 3impa
        c2nd wb sylan2 3impb preqlu syl2anc mpbir2and ) FSTZGSTZHSTZUAZFGLUBZHL
        UBZFGHLUBZLUBZUCZVDUDUEVFUDUEUCZVDULUEVFULUEUCZABCDEFGHIJKLMNOPQRUFABCD
        EFGHIJKLMNOPQRUGVBVDSTZVFSTZVGVHVIUHUMUSUTVAVJUSUTUHVCSTVAVJIJFGSLQUIIJ
        VCHSLQUIUJUKUSUTVAVKUTVAUHUSVESTVKIJGHSLQUIIJFVESLQUIUNUOVDVFUPUQUR $.
    $}
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d G w y z $.  $d L w y z $.  $d S w y z $.
    $d U w y z $.  $d X w y z $.  $d g h u v w x y z $.
    $( Lemma to prove downward closure in positive real addition.  (Contributed
       by Jim Kingdon, 7-Dec-2019.) $)
    addnqprllem $p |- ( ( ( <. L , U >. e. P. /\ G e. L ) /\ X e. Q. ) ->
        ( X <Q S -> ( ( X .Q ( *Q ` S ) ) .Q G ) e. L ) ) $=
      ( vy vz vw wcel wa cnq cltq wbr cmq co wb adantl cv syl2anc c1q cop simpr
      cnp crq cfv ltrnqi ltrelnq brel simprd recclnq syl simplr syl3anc mulclnq
      ltmnqg w3a elprnql ad2antrr wceq mulcomnqg caovord2d bitrd syl5ib recidnq
      mpd oveq1d 1nq mpan mulidnq eqtrd sylan9eqr breq2d mpbid wi prcdnql ex )
      DBUAUCICDIJZEKIZJZEALMZEAUDUEZNOZCNOZDIZVSVTJZWCCLMZWDWEWCEEUDUEZNOZCNOZL
      MZWFWEVTWJVSVTUBVTWAWGLMZWEWJEAUFWEWKWBWHLMZWJWEWAKIZWGKIZVRWKWLPWEAKIZWM
      WEVRWOVTVRWOJVSEAKKLUGUHQUIAUJUKZWEVRWNVQVRVTULZEUJUKZWQWAWGEUOUMWEFGHWBW
      HCLKNFRZKIZGRZKIZHRZKIUPWSXALMXCWSNOXCXANOLMPWEWSXAXCUOQWEVRWMWBKIWQWPEWA
      UNSWEVRWNWHKIWQWREWGUNSVQCKIZVRVTCBDUQURZWTXBJWSXANOXAWSNOUSWEWSXAUTQVAVB
      VCVEWEXDVRWJWFPXEWQXDVRJWICWCLVRXDWITCNOZCVRWHTCNEVDVFXDXFCTNOZCTKIXDXFXG
      USVGTCUTVHCVIVJVKVLSVMVQWFWDVNVRVTCWCBDVOURVEVP $.

    $( Lemma to prove upward closure in positive real addition.  (Contributed
       by Jim Kingdon, 7-Dec-2019.) $)
    addnqprulem $p |- ( ( ( <. L , U >. e. P. /\ G e. U ) /\ X e. Q. ) ->
        ( S <Q X -> ( ( X .Q ( *Q ` S ) ) .Q G ) e. U ) ) $=
      ( vy vz vw wcel wa cnq cltq wbr cmq co wb adantl cv syl2anc c1q cop simpr
      cnp crq cfv ltrnqi simplr recclnq syl ltrelnq brel simpld syl3anc mulclnq
      ltmnqg w3a elprnqu ad2antrr wceq mulcomnqg caovord2d bitrd syl5ib recidnq
      mpd oveq1d 1nq mpan mulidnq eqtrd sylan9eqr breq1d mpbid wi prcunqu ex )
      DBUAUCICBIJZEKIZJZAELMZEAUDUEZNOZCNOZBIZVSVTJZCWCLMZWDWEEEUDUEZNOZCNOZWCL
      MZWFWEVTWJVSVTUBVTWGWALMZWEWJAEUFWEWKWHWBLMZWJWEWGKIZWAKIZVRWKWLPWEVRWMVQ
      VRVTUGZEUHUIZWEAKIZWNWEWQVRVTWQVRJVSAEKKLUJUKQULAUHUIZWOWGWAEUOUMWEFGHWHW
      BCLKNFRZKIZGRZKIZHRZKIUPWSXALMXCWSNOXCXANOLMPWEWSXAXCUOQWEVRWMWHKIWOWPEWG
      UNSWEVRWNWBKIWOWREWAUNSVQCKIZVRVTCBDUQURZWTXBJWSXANOXAWSNOUSWEWSXAUTQVAVB
      VCVEWEXDVRWJWFPXEWOXDVRJWICWCLVRXDWITCNOZCVRWHTCNEVDVFXDXFCTNOZCTKIXDXFXG
      USVGTCUTVHCVIVJVKVLSVMVQWFWDVNVRVTWCCBDVOURVEVP $.
  $}

  ${
    $d x y z w v u g h $.  $d q r s x y A $.  $d q r s x y B $.
    $( Lemma to prove downward closure in positive real addition.  (Contributed
       by Jim Kingdon, 5-Dec-2019.) $)
    addnqprl $p |- ( ( ( ( A e. P. /\ G e. ( 1st ` A ) ) /\
                       ( B e. P. /\ H e. ( 1st ` B ) ) ) /\ X e. Q. ) ->
                       ( X <Q ( G +Q H ) -> X e. ( 1st ` ( A +P. B ) ) ) ) $=
      ( vr vs cnp wcel c1st cfv wa cnq cplq co cmq wi simpl wceq c1q vq vx cltq
      vy wbr crq cpp c2nd prop addnqprllem sylanl1 adantlr adantll jcad anim12i
      cop df-iplp cv addclnq genpprecll 3syl syld simpr sylan ad2antrr ad2antlr
      elprnql syl2anc recclnq mulassnqg syl3anc mulclnq mulcomnqg recidnq eqtrd
      syl distrnqg oveq2d mulidnq adantl 3eqtr3d eleq1d sylibd ) AHIZCAJKZIZLZB
      HIZDBJKZIZLZLZEMIZLZECDNOZUCUEZEWOUFKZPOZCPOZWRDPOZNOZABUGOJKZIZEXBIWNWPW
      SWEIZWTWIIZLZXCWNWPXDXEWGWMWPXDQZWKWDWEAUHKZUPHIZWFWMXGAUIZWOXHCWEEUJUKUL
      WKWMWPXEQZWGWHWIBUHKZUPHIZWJWMXKBUIZWOXLDWIEUJUKUMUNWNWLWDWHLXFXCQWLWMRWG
      WDWKWHWDWFRWHWJRUOUAFGUBUDABWSWTUGNUBUDGFUAUQFURGURUSUTVAVBWNXAEXBWNWRWOP
      OZEWQWOPOZPOZXAEWNWMWQMIZWOMIZXOXQSWLWMVCZWNXSXRWNCMIZDMIZXSWGYAWKWMWDXIW
      FYAXJCXHWEVGVDVEZWKYBWGWMWHXMWJYBXNDXLWIVGVDVFZCDUSVHZWOVIVPZYEEWQWOVJVKW
      NWRMIZYAYBXOXASWNWMXRYGXTYFEWQVLVHYCYDWRCDVQVKWNXQETPOZEWNXPTEPWNXPWOWQPO
      ZTWNXRXSXPYISYFYEWQWOVMVHWNXSYITSYEWOVNVPVOVRWMYHESWLEVSVTVOWAWBWC $.

    $( Lemma to prove upward closure in positive real addition.  (Contributed
       by Jim Kingdon, 5-Dec-2019.) $)
    addnqpru $p |- ( ( ( ( A e. P. /\ G e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ H e. ( 2nd ` B ) ) ) /\ X e. Q. ) ->
                       ( ( G +Q H ) <Q X -> X e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( vr vs cnp wcel c2nd cfv wa cnq cplq co cmq wi simpl wceq c1q vq vx cltq
      vy wbr crq cpp c1st prop addnqprulem sylanl1 adantlr adantll jcad anim12i
      cop df-iplp cv addclnq genppreclu 3syl syld simpr sylan ad2antrr ad2antlr
      elprnqu syl2anc recclnq mulassnqg syl3anc mulclnq mulcomnqg recidnq eqtrd
      syl distrnqg oveq2d mulidnq adantl 3eqtr3d eleq1d sylibd ) AHIZCAJKZIZLZB
      HIZDBJKZIZLZLZEMIZLZCDNOZEUCUEZEWOUFKZPOZCPOZWRDPOZNOZABUGOJKZIZEXBIWNWPW
      SWEIZWTWIIZLZXCWNWPXDXEWGWMWPXDQZWKWDAUHKZWEUPHIZWFWMXGAUIZWOWECXHEUJUKUL
      WKWMWPXEQZWGWHBUHKZWIUPHIZWJWMXKBUIZWOWIDXLEUJUKUMUNWNWLWDWHLXFXCQWLWMRWG
      WDWKWHWDWFRWHWJRUOUAFGUBUDABWSWTUGNUBUDGFUAUQFURGURUSUTVAVBWNXAEXBWNWRWOP
      OZEWQWOPOZPOZXAEWNWMWQMIZWOMIZXOXQSWLWMVCZWNXSXRWNCMIZDMIZXSWGYAWKWMWDXIW
      FYAXJCWEXHVGVDVEZWKYBWGWMWHXMWJYBXNDWIXLVGVDVFZCDUSVHZWOVIVPZYEEWQWOVJVKW
      NWRMIZYAYBXOXASWNWMXRYGXTYFEWQVLVHYCYDWRCDVQVKWNXQETPOZEWNXPTEPWNXPWOWQPO
      ZTWNXRXSXPYISYFYEWQWOVMVHWNXSYITSYEWOVNVPVOVRWMYHESWLEVSVTVOWAWBWC $.
  $}

  ${
    $d D f g h $.  $d E f g h $.  $d P f g h $.  $d f g h ph $.
    addlocprlem.a $e |- ( ph -> A e. P. ) $.
    addlocprlem.b $e |- ( ph -> B e. P. ) $.
    addlocprlem.qr $e |- ( ph -> Q <Q R ) $.
    addlocprlem.p $e |- ( ph -> P e. Q. ) $.
    addlocprlem.qppr $e |- ( ph -> ( Q +Q ( P +Q P ) ) = R ) $.
    addlocprlem.dlo $e |- ( ph -> D e. ( 1st ` A ) ) $.
    addlocprlem.uup $e |- ( ph -> U e. ( 2nd ` A ) ) $.
    addlocprlem.du $e |- ( ph -> U <Q ( D +Q P ) ) $.
    addlocprlem.elo $e |- ( ph -> E e. ( 1st ` B ) ) $.
    addlocprlem.tup $e |- ( ph -> T e. ( 2nd ` B ) ) $.
    addlocprlem.et $e |- ( ph -> T <Q ( E +Q P ) ) $.
    $( Lemma for ~ addlocpr .  The ` Q <Q ( D +Q E ) ` case.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlemlt $p |- ( ph ->
        ( Q <Q ( D +Q E ) -> Q e. ( 1st ` ( A +P. B ) ) ) ) $=
      ( cnp wcel c1st cfv wa cnq cplq co cltq wbr cpp wi jca ltrelnq simpld syl
      brel addnqprl syl21anc ) ABUBUCZDBUDUEUCZUFCUBUCZJCUDUEUCZUFFUGUCZFDJUHUI
      UJUKFBCULUIUDUEUCUMAVAVBKPUNAVCVDLSUNAFGUJUKZVEMVFVEGUGUCFGUGUGUJUOURUPUQ
      BCDJFUSUT $.

    $( Lemma for ~ addlocpr .  This is a step used in both the
       ` Q = ( D +Q E ) ` and ` ( D +Q E ) <Q Q ` cases.  (Contributed by Jim
       Kingdon, 7-Dec-2019.) $)
    addlocprlemeqgt $p |- ( ph ->
        ( U +Q T ) <Q ( ( D +Q E ) +Q ( P +Q P ) ) ) $=
      ( vf vg vh cplq co cltq wbr cnq wcel wa wi c1st cfv c2nd cop cnp prop syl
      elprnqu syl2anc elprnql addclnq lt2addnq syl22anc mp2and addcomnqg adantl
      cv wceq w3a addassnqg caov4d breqtrd ) AIHUEUFZDEUEUFZJEUEUFZUEUFZDJUEUFE
      EUEUFUEUFUGAIVPUGUHZHVQUGUHZVOVRUGUHZRUAAIUIUJZVPUIUJZHUIUJZVQUIUJZVSVTUK
      WAULABUMUNZBUOUNZUPUQUJZIWGUJWBABUQUJWHKBURUSZQIWGWFUTVAADUIUJZEUIUJZWCAW
      HDWFUJWJWIPDWGWFVBVAZNDEVCVAACUMUNZCUOUNZUPUQUJZHWNUJWDACUQUJWOLCURUSZTHW
      NWMUTVAAJUIUJZWKWEAWOJWMUJWQWPSJWNWMVBVAZNJEVCVAIVPHVQVDVEVFAUBUCUDDEJEUI
      UEWLNWRUBVIZUIUJZUCVIZUIUJZUKZWSXAUEUFZXAWSUEUFVJAWSXAVGVHWTXBUDVIZUIUJVK
      XDXEUEUFWSXAXEUEUFUEUFVJAWSXAXEVLVHNXCXDUIUJAWSXAVCVHVMVN $.

    $( Lemma for ~ addlocpr .  The ` Q = ( D +Q E ) ` case.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlemeq $p |- ( ph ->
        ( Q = ( D +Q E ) -> R e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( cplq co wceq cpp c2nd cfv wcel wa cltq wbr addlocprlemeqgt adantr oveq1
      sylan9req breqtrrd wi cnp cnq jca ltrelnq simprd syl addnqpru syl21anc ex
      brel mpd ) AFDJUBUCZUDZGBCUEUCUFUGUHZAVJUIZIHUBUCZGUJUKZVKVLVMVIEEUBUCZUB
      UCZGUJAVMVPUJUKVJABCDEFGHIJKLMNOPQRSTUAULUMAVJGFVOUBUCVPOFVIVOUBUNUOUPAVN
      VKUQZVJABURUHZIBUFUGUHZUICURUHZHCUFUGUHZUIGUSUHZVQAVRVSKQUTAVTWALTUTAFGUJ
      UKZWBMWCFUSUHWBFGUSUSUJVAVGVBVCBCIHGVDVEUMVHVF $.

    $( Lemma for ~ addlocpr .  The ` ( D +Q E ) <Q Q ` case.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlemgt $p |- ( ph ->
        ( ( D +Q E ) <Q Q -> R e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( cplq co cltq wbr cpp c2nd cfv wcel wa addlocprlemeqgt adantr cnq wb cop
      c1st cnp prop syl elprnql syl2anc addclnq ltrelnq brel simpld ltanqg wceq
      syl3anc addcomnqg breq12d bitrd biimpa breq2d mpbid ltsonq sotri addnqpru
      jca wi simprd syl21anc mpd ex ) ADJUBUCZFUDUEZGBCUFUCUGUHUIZAWEUJZIHUBUCZ
      GUDUEZWFWGWHWDEEUBUCZUBUCZUDUEZWKGUDUEZUJWIWGWLWMAWLWEABCDEFGHIJKLMNOPQRS
      TUAUKULWGWKFWJUBUCZUDUEZWMAWEWOAWEWJWDUBUCZWJFUBUCZUDUEZWOAWDUMUIZFUMUIZW
      JUMUIZWEWRUNADUMUIZJUMUIZWSABUPUHZBUGUHZUOUQUIZDXDUIXBABUQUIZXFKBURUSPDXE
      XDUTVAACUPUHZCUGUHZUOUQUIZJXHUIXCACUQUIZXJLCURUSSJXIXHUTVADJVBVAZAWTGUMUI
      ZAFGUDUEWTXMUJMFGUMUMUDVCVDUSZVEZAEUMUIZXPXANNEEVBVAZWDFWJVFVHAWPWKWQWNUD
      AXAWSWPWKVGXQXLWJWDVIVAAXAWTWQWNVGXQXOWJFVIVAVJVKVLAWOWMUNWEAWNGWKUDOVMUL
      VNVRWHWKGUDUMVOVCVPUSAWIWFVSZWEAXGIXEUIZUJXKHXIUIZUJXMXRAXGXSKQVRAXKXTLTV
      RAWTXMXNVTBCIHGVQWAULWBWC $.

    $( Lemma for ~ addlocpr .  The result, in deduction form.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlem $p |- ( ph ->
        ( Q e. ( 1st ` ( A +P. B ) ) \/ R e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( cplq co cltq wbr wceq w3o cpp c1st cfv wcel c2nd wo ltrelnq brel simpld
      cnq syl cop cnp prop elprnql syl2anc nqtri3or addlocprlemlt addlocprlemeq
      addclnq orc syl6 olc addlocprlemgt 3jaod mpd ) AFDJUBUCZUDUEZFVNUFZVNFUDU
      EZUGZFBCUHUCZUIUJUKZGVSULUJUKZUMZAFUQUKZVNUQUKZVRAFGUDUEZWCMWEWCGUQUKFGUQ
      UQUDUNUOUPURADUQUKZJUQUKZWDABUIUJZBULUJZUSUTUKZDWHUKWFABUTUKWJKBVAURPDWIW
      HVBVCACUIUJZCULUJZUSUTUKZJWKUKWGACUTUKWMLCVAURSJWLWKVBVCDJVGVCFVNVDVCAVOW
      BVPVQAVOVTWBABCDEFGHIJKLMNOPQRSTUAVEVTWAVHVIAVPWAWBABCDEFGHIJKLMNOPQRSTUA
      VFWAVTVJZVIAVQWAWBABCDEFGHIJKLMNOPQRSTUAVKWNVIVLVM $.
  $}

  ${
    $d A d e h p q r t u $.  $d B d e h p q r t u $.
    $( Locatedness of addition on positive reals.  Lemma 11.16 in
       [BauerTaylor], p. 53.  The proof in BauerTaylor relies on signed
       rationals, so we replace it with another proof which applies ~ prarloc
       to both ` A ` and ` B ` , and uses ~ nqtri3or rather than ~ prloc to
       decide whether ` q ` is too big to be in the lower cut of ` A +P. B `
       (and deduce that if it is, then ` r ` must be in the upper cut).  What
       the two proofs have in common is that they take the difference between
       ` q ` and ` r ` to determine how tight a range they need around the real
       numbers.  (Contributed by Jim Kingdon, 5-Dec-2019.) $)
    addlocpr $p |- ( ( A e. P. /\ B e. P. ) ->
        A. q e. Q. A. r e. Q. ( q <Q r ->
          ( q e. ( 1st ` ( A +P. B ) ) \/ r e. ( 2nd ` ( A +P. B ) ) ) ) ) $=
      ( vp vh vu vd vt ve cnp wcel wa cv co cfv cnq cplq wrex adantr wbr cpp wo
      cltq c1st c2nd wi w3a ltexnqq biimpa 3adant1 halfnqq ad2antrl cop prarloc
      wceq prop sylan adantlr 3ad2antl1 ad2ant2r adantll ad2antrr simpld simprd
      simpll1 simpll3 simplrl simplrr wb eqeq1d ad2antll mpbird simprll simprlr
      oveq2 simprr addlocprlem expr rexlimdvva mpd rexlimddv 3expia ralrimivva
      ) AKLZBKLZMZDNZCNZUDUAZWHABUBOZUEPLWIWKUFPLUCZUGDCQQWGWHQLWIQLMZWJWLWGWMW
      JUHZWHENZROZWIUPZWLEQWMWJWQEQSZWGWMWJWREWHWIUIUJUKWNWOQLZWQMZMZFNZXBROZWO
      UPZWLFQWSXDFQSWNWQFWOULUMXAXBQLZXDMZMZGNZHNZXBROUDUAZGAUFPZSHAUEPZSZWLWNX
      EXMWTXDWGWMXEXMWJWEXEXMWFWEXLXKUNKLXEXMAUQXBXKXLHGUOURUSUTVAXGXJWLHGXLXKX
      GXIXLLZXHXKLZMZXJWLXGXPXJMZMZINZJNZXBROUDUAZIBUFPZSJBUEPZSZWLXGYDXQWNXEYD
      WTXDWGWMXEYDWJWFXEYDWEWFYCYBUNKLXEYDBUQXBYBYCJIUOURVBUTVATXRYAWLJIYCYBXRX
      TYCLZXSYBLZMZYAWLXRYGYAMZMZABXIXBWHWIXSXHXTYIWEWFXGWGXQYHWGWMWJWTXFVFVCZV
      DYIWEWFYJVEXGWJXQYHWGWMWJWTXFVGVCXRXEYHXAXEXDXQVHTXGWHXCROZWIUPZXQYHXGYLW
      QWNWSWQXFVIXDYLWQVJXAXEXDYKWPWIXCWOWHRVPVKVLVMVCXRXNYHXGXNXOXJVNTXRXOYHXG
      XNXOXJVOTXGXPXJYHVIXRYEYFYAVNXRYEYFYAVOXRYGYAVQVRVSVTWAVSVTWAWBWBWCWD $.
  $}

  ${
    $d x y z w v f g h q r A $.  $d x y z w v f g h q r B $.
    $( Closure of addition on positive reals.  First statement of Proposition
       9-3.5 of [Gleason] p. 123.  Combination of Lemma 11.13 and Lemma 11.16
       in [BauerTaylor], p. 53.  (Contributed by NM, 13-Mar-1996.) $)
    addclpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) e. P. ) $=
      ( vq vr vx vy vz vw vv vg vh cnp wcel wa cpp cnq cv wrex wral cplq co cpw
      cxp c1st cfv c2nd cltq wbr wb wn wo wi w3a df-iplp genpelxp genpml genpmu
      addclnq ltanqg addcomnqg addnqprl genprndl addnqpru genprndu jca genpdisj
      jca32 addlocpr 3jca elnp1st2nd sylanbrc ) ALMBLMNZABOUAZPUBZVNUCMZCQZVMUD
      UEZMZCPRZDQZVMUFUEZMZDPRZNNVRVPVTUGUHZVTVQMNDPRUICPSZWBWDVPWAMZNCPRUIDPSZ
      NZVRWFNUJCPSZWDVRWBUKULDPSCPSZUMVMLMVLVOVSWCEFGHIABOTHIGFEUNZUOEFGHIABOTC
      WKFQZGQZURZUPEFGHIABOTDWKWNUQVGVLWHWIWJVLWEWGEFGHIABJKOTDCWKWNEQZWLWMUSZW
      OWLUTZABJQZKQZWOVAVBEFGHIABJKOTDCWKWNWPWQABWRWSWOVCVDVEEFGHIABOTCWKWNWPWQ
      VFABDCVHVIVMDCVJVK $.
  $}

  ${
    $d x y z f g h A $.  $d x y z f g h B $.  $d x y z w v u f g h $.
    $( Value of addition on positive reals.  (Contributed by Jim Kingdon,
       8-Dec-2019.) $)
    plpvlu $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) = <.
        { x e. Q. | E. y e. ( 1st ` A ) E. z e. ( 1st ` B ) x = ( y +Q z ) } ,
        { x e. Q. | E. y e. ( 2nd ` A ) E. z e. ( 2nd ` B ) x = ( y +Q z ) }
        >. ) $=
      ( vf vg vh vw vv cpp cplq df-iplp cv addclnq genipv ) FGHIJDEKLCBAIJHGFMG
      NHNOP $.

    $( Value of multiplication on positive reals.  (Contributed by Jim Kingdon,
       8-Dec-2019.) $)
    mpvlu $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) = <.
        { x e. Q. | E. y e. ( 1st ` A ) E. z e. ( 1st ` B ) x = ( y .Q z ) } ,
        { x e. Q. | E. y e. ( 2nd ` A ) E. z e. ( 2nd ` B ) x = ( y .Q z ) }
        >. ) $=
      ( vf vg vh vw vv cmp cmq df-imp cv mulclnq genipv ) FGHIJDEKLCBAIJHGFMGNH
      NOP $.

    $( Domain of addition on positive reals.  (Contributed by NM,
       18-Nov-1995.) $)
    dmplp $p |- dom +P. = ( P. X. P. ) $=
      ( vv vw vz vx vy cpp cplq df-iplp cv addclnq genipdm ) ABCDEFGDECBAHBICIJ
      K $.

    $( Domain of multiplication on positive reals.  (Contributed by NM,
       18-Nov-1995.) $)
    dmmp $p |- dom .P. = ( P. X. P. ) $=
      ( vv vw vz vx vy cmp cmq df-imp cv mulclnq genipdm ) ABCDEFGDECBAHBICIJK
      $.
  $}

  ${
    $d A x y z n r q $.
    $( A cut produced from a rational is inhabited.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprm $p |- ( A e. Q. -> ( E. q e. Q. q e. { x | x <Q A }
        /\ E. r e. Q. r e. { x | A <Q x } ) ) $=
      ( vn cnq wcel cv cltq wbr cab wrex vex elab rexbii sylibr cnpi c1o ceq wa
      nsmallnqq breq1 cop cec wex archnqq sylib cxp cqs 1pi opelxpi ecelqsi syl
      df-rex enqex mpan2 df-nqqs syl6eleqr breq2 rspcev sylan exlimiv jca ) BFG
      ZDHZAHZBIJZAKGZDFLZCHZBVFIJZAKGZCFLZVDVEBIJZDFLVIDBUAVHVNDFVGVNAVEDMVFVEB
      IUBNOPVDBVJIJZCFLZVMVDEHZQGZBVQRUCZSUDZIJZTZEUEZVPVDWAEQLWCEBUFWAEQUNUGWB
      VPEVRVTFGWAVPVRVTQQUHZSUIZFVRRQGZVTWEGZUJVRWFTVSWDGWGVQRQQUKWDVSSUOULUMUP
      UQURVOWACVTFVJVTBIUSUTVAVBUMVLVOCFVKVOAVJCMVFVJBIUSNOPVC $.

    $( A cut produced from a rational is rounded.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprrnd $p |- ( A e. Q. -> ( A. q e. Q. ( q e. { x | x <Q A }
        <-> E. r e. Q. ( q <Q r /\ r e. { x | x <Q A } ) )
        /\ A. r e. Q. ( r e. { x | A <Q x }
        <-> E. q e. Q. ( q <Q r /\ q e. { x | A <Q x } ) ) ) ) $=
      ( cnq wcel cv cltq wbr cab wa wrex wral ltbtwnnqq rexbii vex breq2 anbi2i
      wb elab ancom bitri 3bitr4i rgenw a1i breq1 jctil ) BEFZCGZBAGZHIZAJZFZDG
      ZUIHIZUNULFZKZDELZSZCEMZUNUJBHIZAJZFZUOUIVBFZKZCELZSZDEMUTUHUSCEBUIHIZUOB
      UNHIZKZDELZUMURVHVIUOKZDELVKDBUINVLVJDEVIUOUAOUBUKVHAUICPZUJUIBHQTUQVJDEU
      PVIUOUKVIAUNDPZUJUNBHQTROUCUDUEVGDEUNBHIZUOUIBHIZKZCELVCVFCUNBNVAVOAUNVNU
      JUNBHUFTVEVQCEVDVPUOVAVPAUIVMUJUIBHUFTROUCUDUG $.

    $( A cut produced from a rational is disjoint.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprdisj $p |- ( A e. Q. -> A. q e. Q.
        -. ( q e. { x | x <Q A } /\ q e. { x | A <Q x } ) ) $=
      ( cv cltq wbr cab wcel wa cnq wral ltsonq ltrelnq son2lpi vex breq1 breq2
      wn elab anbi12i mtbir rgenw a1i ) CDZADZBEFZAGHZUDBUEEFZAGHZIZRZCJKBJHUKC
      JUJUDBEFZBUDEFZIUDBEJLMNUGULUIUMUFULAUDCOZUEUDBEPSUHUMAUDUNUEUDBEQSTUAUBU
      C $.

    $( A cut produced from a rational is located.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprloc $p |- ( A e. Q. -> A. q e. Q. A. r e. Q. ( q <Q r
        -> ( q e. { x | x <Q A } \/ r e. { x | A <Q x } ) ) ) $=
      ( cnq wcel cv cltq wbr cab wo wi wral wceq w3o vex breq1 elab ralrimiva
      wa nqtri3or ancoms ad2antrr biimpri orcd a1i simpr syl5ibcom breq2 sylbir
      olc syl6 ltsonq ltrelnq sotri syl expcom adantl 3jaod mpd ex ) BEFZDGZCGZ
      HIZVCAGZBHIZAJFZVDBVFHIZAJFZKZLZCEMDEVBVCEFZTZVLCEVNVDEFZTZVEVKVPVETZVCBH
      IZVCBNZBVCHIZOZVKVNWAVOVEVMVBWAVCBUAUBUCVQVRVKVSVTVRVKLVQVRVHVJVHVRVGVRAV
      CDPVFVCBHQRUDUEUFVQVSBVDHIZVKVQVEVSWBVPVEUGVCBVDHQUHWBVJVKVIWBAVDCPVFVDBH
      UIRVJVHUKUJZULVEVTVKLVPVTVEVKVTVETWBVKBVCVDHEUMUNUOWCUPUQURUSUTVASS $.

    $( The canonical embedding of the rationals into the reals, expressed with
       the same variable for the lower and upper cuts.  (Contributed by Jim
       Kingdon, 8-Dec-2019.) $)
    nqprxx $p |- ( A e. Q. -> <. { x | x <Q A } , { x | A <Q x } >. e. P. ) $=
      ( vq vr cnq wcel cv cltq wbr cab wa wrex wb wral wn wo ltrelnq brel abssi
      wss w3a cop cnp nqprm simpld simprd pm3.2i jctil nqprrnd nqprdisj nqprloc
      wi 3jca elinp sylanbrc ) BEFZAGZBHIZAJZETZBUQHIZAJZETZKZCGZUSFZCELDGZVBFZ
      DELKZKVFVEVGHIZVGUSFKDELMCENVHVJVEVBFZKCELMDENKZVFVKKOCENZVJVFVHPULDENCEN
      ZUAUSVBUBUCFUPVIVDABDCUDUTVCURAEURUQEFZUPUQBEEHQRUESVAAEVAUPVOBUQEEHQRUFS
      UGUHUPVLVMVNABDCUIABCUJABDCUKUMVBUSDCUNUO $.
  $}

  ${
    $d A l u $.
    $( The canonical embedding of the rationals into the reals.  (Contributed
       by Jim Kingdon, 24-Jun-2020.) $)
    nqprlu $p |- ( A e. Q. -> <. { l | l <Q A } , { u | A <Q u } >. e. P. ) $=
      ( cnq wcel cv cltq wbr cab cop cnp breq2 cbvabv opeq2i nqprxx syl5eqelr )
      BDECFZBGHCIZBAFZGHZAIZJRBQGHZCIZJKUCUARUBTCAQSBGLMNCBOP $.
  $}

  ${
    $( The class of rationals less than a given rational is a set.
       (Contributed by Jim Kingdon, 13-Dec-2019.) $)
    ltnqex $p |- { x | x <Q A } e. _V $=
      ( cv cltq wbr cab cnq nqex wcel ltrelnq brel simpld abssi ssexi ) ACZBDEZ
      AFGHPAGPOGIBGIOBGGDJKLMN $.

    $( The class of rationals greater than a given rational is a set.
       (Contributed by Jim Kingdon, 13-Dec-2019.) $)
    gtnqex $p |- { x | A <Q x } e. _V $=
      ( cv cltq wbr cab cnq nqex wcel ltrelnq brel simprd abssi ssexi ) BACZDEZ
      AFGHPAGPBGIOGIBOGGDJKLMN $.
  $}

  ${
    $d A l u x $.  $d B x $.
    $( Comparing a fraction to a real can be done by whether it is an element
       of the lower cut, or by ` <P ` .  (Contributed by Jim Kingdon,
       8-Jul-2020.) $)
    nqprl $p |- ( ( A e. Q. /\ B e. P. ) -> ( A e. ( 1st ` B ) <->
        <. { l | l <Q A } , { u | A <Q u } >. <P B ) ) $=
      ( vx cnq wcel cnp wa cfv cv cltq wbr cab cop wi c2nd wrex sylan elprnql
      c1st cltp prop prnmaxl wex ad2ant2r vex breq2 biimpri ltnqex gtnqex op2nd
      elab eleq2i sylibr ad2antll simprl 19.8a syl12anc df-rex wb nqprlu ltdfpr
      simpl syl2anc adantr mpbird rexlimddv adantl biimpa bitri biimpi ad2antrl
      ex simpllr simprrr prcdnql mpd impbid ) BFGZCHGZIZBCUAJZGZDKBLMDNZBAKZLMZ
      ANZOZCUBMZWAWDWJPVTWAWDWJWAWDIZBEKZLMZWJEWCWAWCCQJZOHGZWDWMEWCRCUCZEBWNWC
      UDSWKWLWCGZWMIZIZWJWLWIQJZGZWQIZEFRZWSWLFGZXBIZEUEZXCWSXDXAWQXFWAWQXDWDWM
      WAWOWQXDWPWLWNWCTSUFWMXAWKWQWMWLWHGZXAXGWMWGWMAWLEUGWFWLBLUHUMZUIWTWHWLWE
      WHDBUJABUKULUNZUOUPWKWQWMUQXEEURUSXBEFUTUOWKWJXCVAZWRWKVTWAXJWAWOWDVTWPBW
      NWCTSWAWDVDVTWIHGWAXJABDVBWICEVCSZVEVFVGVHVNVIWBWJWDWBWJIZXBWDEFWBWJXCXKV
      JXLXEIZWMWDXEWMXLXAWMXDWQXAWMXAXGWMXIXHVKVLVMVIXMWAWQWMWDPZVTWAWJXEVOXLXD
      XAWQVPWAWOWQXNWPWLBWNWCVQSVEVRVHVNVS $.
  $}

  ${
    $d A l u $.
    $( The canonical embedding of positive integers into the positive reals.
       (Contributed by Jim Kingdon, 23-Apr-2020.) $)
    nnprlu $p |- ( A e. N. -> <. { l | l <Q [ <. A , 1o >. ] ~Q } ,
        { u | [ <. A , 1o >. ] ~Q <Q u } >. e. P. ) $=
      ( cnpi wcel c1o cop ceq cec cnq cv cltq wbr cab cnp nnnq nqprlu syl ) BDE
      BFGHIZJECKSLMCNSAKLMANGOEBPASCQR $.
  $}

  ${
    $d x y $.
    $( The positive real number 'one'.  (Contributed by NM, 13-Mar-1996.)
       (Revised by Mario Carneiro, 12-Jun-2013.) $)
    1pr $p |- 1P e. P. $=
      ( vx vy c1p cv c1q cltq wbr cab cop cnp df-i1p cnq wcel 1nq ax-mp eqeltri
      nqprlu ) CADEFGAHEBDFGBHIZJBAKELMRJMNBEAQOP $.

    $( The lower cut of the positive real number 'one'.  (Contributed by Jim
       Kingdon, 28-Dec-2019.) $)
    1prl $p |- ( 1st ` 1P ) = { x | x <Q 1Q } $=
      ( vy c1p c1st cfv cv c1q cltq wbr df-i1p fveq2i ltnqex gtnqex op1st eqtri
      cab cop ) CDEAFGHIAPZGBFHIBPZQZDERCTDBAJKRSAGLBGMNO $.

    $( The upper cut of the positive real number 'one'.  (Contributed by Jim
       Kingdon, 28-Dec-2019.) $)
    1pru $p |- ( 2nd ` 1P ) = { x | 1Q <Q x } $=
      ( vy c1p c2nd cfv cv c1q cltq wbr df-i1p fveq2i ltnqex gtnqex op2nd eqtri
      cab cop ) CDEBFGHIBPZGAFHIAPZQZDESCTDABJKRSBGLAGMNO $.
  $}

  ${
    $d A f g h l r s t u x y $.  $d B f g h l r s t u x y $.
    $( Lemma for ~ addnqpr .  The reverse subset relationship for the lower
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemrl $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 1st ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) C_
        ( 1st ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        ) $=
      ( vr vs vt vg vh cnq wcel wa cv cltq wbr cab cop c1st cfv breq1 vf vx cpp
      vy co cplq wceq wrex cnp wb nqprlu df-iplp addclnq genpelvl syl2an biimpa
      ltnqex gtnqex op1st elab2 biimpi ad2antrl adantr ad2antll wi ltrelnq brel
      vex syl lt2addnq syl2anc mp2and adantl mpbird sylibr rexlimdvva mpd ssrdv
      ex ) BJKZCJKZLZEDMZBNOZDPZBAMZNOAPZQZWCCNOZDPZCWFNOAPZQZUCUERSZWCBCUFUEZN
      OZDPZWNWFNOAPZQRSZWBEMZWMKZWSWRKZWBWTLZWSFMZGMZUFUEZUGZGWLRSZUHFWHRSZUHZX
      AWBWTXIVTWHUIKWLUIKWTXIUJWAABDUKACDUKUAHIUBUDWHWLWSFGUCUFUBUDIHUAULHMIMUM
      UNUOUPXBXFXAFGXHXGXBXCXHKZXDXGKZLLZXFXAXLXFLZWSWNNOZXAXMXNXEWNNOZXMXCBNOZ
      XDCNOZXOXLXPXFXJXPXBXKXJXPWDXPDXCXHFVHWCXCBNTWEWGDBUQABURUSUTVAVBVCZXLXQX
      FXKXQXBXJXKXQWIXQDXDXGGVHWCXDCNTWJWKDCUQACURUSUTVAVDVCZXMXCJKVTLZXDJKWALZ
      XPXQLXOVEXMXPXTXRXCBJJNVFVGVIXMXQYAXSXDCJJNVFVGVIXCBXDCVJVKVLXFXNXOUJXLWS
      XEWNNTVMVNWOXNDWSWREVHWCWSWNNTWPWQDWNUQAWNURUSUTVOVSVPVQVSVR $.

    $( Lemma for ~ addnqpr .  The reverse subset relationship for the upper
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemru $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 2nd ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) C_
        ( 2nd ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        ) $=
      ( vr vs vt vg vh cnq wcel wa cv cltq wbr cab cop c2nd cfv breq2 vf vx cpp
      vy co cplq wceq wrex cnp wb nqprlu df-iplp addclnq genpelvu syl2an biimpa
      ltnqex gtnqex op2nd elab2 biimpi ad2antrl adantr ad2antll wi ltrelnq brel
      vex syl lt2addnq syl2anc mp2and adantl mpbird sylibr rexlimdvva mpd ssrdv
      ex ) BJKZCJKZLZEDMZBNODPZBAMZNOZAPZQZWCCNODPZCWENOZAPZQZUCUERSZWCBCUFUEZN
      ODPZWNWENOZAPZQRSZWBEMZWMKZWSWRKZWBWTLZWSFMZGMZUFUEZUGZGWLRSZUHFWHRSZUHZX
      AWBWTXIVTWHUIKWLUIKWTXIUJWAABDUKACDUKUAHIUBUDWHWLWSFGUCUFUBUDIHUAULHMIMUM
      UNUOUPXBXFXAFGXHXGXBXCXHKZXDXGKZLLZXFXAXLXFLZWNWSNOZXAXMXNWNXENOZXMBXCNOZ
      CXDNOZXOXLXPXFXJXPXBXKXJXPWFXPAXCXHFVHWEXCBNTWDWGDBUQABURUSUTVAVBVCZXLXQX
      FXKXQXBXJXKXQWJXQAXDXGGVHWEXDCNTWIWKDCUQACURUSUTVAVDVCZXMVTXCJKLZWAXDJKLZ
      XPXQLXOVEXMXPXTXRBXCJJNVFVGVIXMXQYAXSCXDJJNVFVGVIBXCCXDVJVKVLXFXNXOUJXLWS
      XEWNNTVMVNWPXNAWSWREVHWEWSWNNTWOWQDWNUQAWNURUSUTVOVSVPVQVSVR $.

    $( Lemma for ~ addnqpr .  The forward subset relationship for the lower
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemfl $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 1st ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        C_ ( 1st ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) ) $=
      ( vr cnq wcel wa cv co cltq wbr cab cop c1st cfv c2nd wn syl cnp cplq cpp
      addnqprlemru wor ltsonq addclnq sonr sylancr cvv ltrelnq brel simpld elex
      breq2 elab3 sylnibr ltnqex gtnqex eleq2i ssneldd adantr wo nqprlu addclpr
      op2nd syl2an prop vex breq1 op1st elab2 biimpi prloc ecased ex ssrdv ) BF
      GZCFGZHZEDIZBCUAJZKLZDMZWAAIZKLZAMZNZOPZVTBKLDMBWDKLAMNZVTCKLDMCWDKLAMNZU
      BJZOPZVSEIZWHGZWMWLGZVSWNHWOWAWKQPZGZVSWQRWNVSWPWGQPZWAABCDUCVSWAWFGZWAWR
      GVSWAWAKLZWSVSFKUDWAFGZWTRUEBCUFFWAKUGUHWEWTAWAWTXAWAUIGWTXAXAWAWAFFKUJUK
      ULWAFUMSWDWAWAKUNUOUPWRWFWAWCWFDWAUQZAWAURZVEUSUPUTVAVSWLWPNTGZWMWAKLZWOW
      QVBWNVSWKTGZXDVQWITGWJTGXFVRABDVCACDVCWIWJVDVFWKVGSWNXEWBXEDWMWHEVHVTWMWA
      KVIWCWFXBXCVJVKVLWMWAWPWLVMVFVNVOVP $.

    $( Lemma for ~ addnqpr .  The forward subset relationship for the upper
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemfu $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 2nd ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        C_ ( 2nd ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) ) $=
      ( vr cnq wcel wa cv co cltq wbr cab cop c2nd cfv c1st wn syl cnp cplq cpp
      addnqprlemrl wor ltsonq addclnq sonr sylancr cvv ltrelnq brel simpld elex
      breq1 elab3 sylnibr ltnqex gtnqex eleq2i ssneldd adantr wo nqprlu addclpr
      op1st syl2an prop vex breq2 op2nd elab2 biimpi prloc orcomd ecased ssrdv
      ex ) BFGZCFGZHZEDIZBCUAJZKLZDMZWBAIZKLZAMZNZOPZWABKLDMBWEKLAMNZWACKLDMCWE
      KLAMNZUBJZOPZVTEIZWIGZWNWMGZVTWOHZWPWBWLQPZGZVTWSRWOVTWRWHQPZWBABCDUCVTWB
      WDGZWBWTGVTWBWBKLZXAVTFKUDWBFGZXBRUEBCUFFWBKUGUHWCXBDWBXBXCWBUIGXBXCXCWBW
      BFFKUJUKULWBFUMSWAWBWBKUNUOUPWTWDWBWDWGDWBUQZAWBURZVEUSUPUTVAWQWSWPVTWRWM
      NTGZWBWNKLZWSWPVBWOVTWLTGZXFVRWJTGWKTGXHVSABDVCACDVCWJWKVDVFWLVGSWOXGWFXG
      AWNWIEVHWEWNWBKVIWDWGXDXEVJVKVLWBWNWMWRVMVFVNVOVQVP $.

    $( Addition of fractions embedded into positive reals.  One can either add
       the fractions as fractions, or embed them into positive reals and add
       them as positive reals, and get the same result.  (Contributed by Jim
       Kingdon, 19-Aug-2020.) $)
    addnqpr $p |- ( ( A e. Q. /\ B e. Q. ) ->
        <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. =
        ( <. { l | l <Q A } , { u | A <Q u } >. +P.
          <. { l | l <Q B } , { u | B <Q u } >. ) ) $=
      ( cnq wcel wa cv co cltq wbr cab cop wceq c1st cfv c2nd eqssd cnp nqprlu
      cpp addnqprlemfl addnqprlemrl addnqprlemfu addnqprlemru wb addclnq syl2an
      cplq syl addclpr preqlu syl2anc mpbir2and ) BEFZCEFZGZDHZBCUIIZJKDLUSAHZJ
      KALMZURBJKDLBUTJKALMZURCJKDLCUTJKALMZUAIZNZVAOPZVDOPZNZVAQPZVDQPZNZUQVFVG
      ABCDUBABCDUCRUQVIVJABCDUDABCDUERUQVASFZVDSFZVEVHVKGUFUQUSEFVLBCUGAUSDTUJU
      OVBSFVCSFVMUPABDTACDTVBVCUKUHVAVDULUMUN $.
  $}

  ${
    $d A f g h l r s t u x y $.
    $( Addition of one to a fraction embedded into a positive real.  One can
       either add the fraction one to the fraction, or the positive real one to
       the positive real, and get the same result.  Special case of
       ~ addnqpr .  (Contributed by Jim Kingdon, 26-Apr-2020.) $)
    addnqpr1 $p |- ( A e. Q. ->
        <. { l | l <Q ( A +Q 1Q ) } , { u | ( A +Q 1Q ) <Q u } >. =
        ( <. { l | l <Q A } , { u | A <Q u } >. +P. 1P ) ) $=
      ( cnq wcel cv c1q cplq co cltq wbr cab cop cpp c1p wceq 1nq addnqpr mpan2
      df-i1p oveq2i syl6eqr ) BDEZCFZBGHIZJKCLUEAFZJKALMZUDBJKCLBUFJKALMZUDGJKC
      LGUFJKALMZNIZUHONIUCGDEUGUJPQABGCRSOUIUHNACTUAUB $.
  $}

  ${
    $d A m $.  $d B m $.  $d C m $.
    $( Approximate division for positive rationals.  Proposition 12.7 of
       [BauerTaylor], p. 55 (a special case where ` A ` and ` B ` are positive,
       as well as ` C ` ).  Our proof is simpler than the one in BauerTaylor
       because we have reciprocals.  (Contributed by Jim Kingdon,
       8-Dec-2019.) $)
    appdivnq $p |- ( ( A <Q B /\ C e. Q. ) ->
        E. m e. Q. ( A <Q ( m .Q C ) /\ ( m .Q C ) <Q B ) ) $=
      ( cltq wbr cnq wcel wa cmq co adantr ltmnqg syl3anc syl2anc c1q mulcomnqg
      wb wceq bitrd crq cv wrex simpl ltrelnq brel simpld simprd recclnq adantl
      cfv mpbid ltbtwnnqq sylib mulclnq simpr simplr recidnq ad2antlr mulassnqg
      oveq1d 1nq mpan mulidnq syl 3eqtr3d breq1d breq2d anbi12d biimpd reximdva
      eqtrd mpd ) ABEFZCGHZIZCUAUKZAJKZDUBZEFZVSVQBJKZEFZIZDGUCZAVSCJKZEFZWEBEF
      ZIZDGUCVPVRWAEFZWDVPVNWIVNVOUDVPAGHZBGHZVQGHZVNWIRVPWJWKVNWJWKIVOABGGEUEU
      FLZUGZVPWJWKWMUHZVOWLVNCUIUJZABVQMNULDVRWAUMUNVPWCWHDGVPVSGHZIZWCWHWRWCAC
      VSJKZEFZWSBEFZIWHWRVTWTWBXAWRVTCVRJKZWSEFZWTWRVRGHZWQVOVTXCRWRWLWJXDVPWLW
      QWPLZVPWJWQWNLZVQAUOOVPWQUPZVNVOWQUQZVRVSCMNWRXBAWSEWRCVQJKZAJKZPAJKZXBAV
      OXJXKSVNWQVOXIPAJCURZVAUSWRVOWLWJXJXBSXHXEXFCVQAUTNWRWJXKASXFWJXKAPJKZAPG
      HZWJXKXMSVBPAQVCAVDVLVEVFVGTWRWBWSCWAJKZEFZXAWRWQWAGHZVOWBXPRXGWRWLWKXQXE
      VPWKWQWOLZVQBUOOXHVSWACMNWRXOBWSEWRXIBJKZPBJKZXOBVOXSXTSVNWQVOXIPBJXLVAUS
      WRVOWLWKXSXOSXHXEXRCVQBUTNWRWKXTBSXRWKXTBPJKZBXNWKXTYASVBPBQVCBVDVLVEVFVH
      TVIWRWTWFXAWGWRWSWEAEWRVOWQWSWESXHXGCVSQOZVHWRWSWEBEYBVGVITVJVKVM $.
  $}

  ${
    $d B m x $.  $d C m x $.
    $( Approximate division for positive rationals.  This can be thought of as
       a variation of ~ appdivnq in which ` A ` is zero, although it can be
       stated and proved in terms of positive rationals alone, without zero as
       such.  (Contributed by Jim Kingdon, 9-Dec-2019.) $)
    appdiv0nq $p |- ( ( B e. Q. /\ C e. Q. ) ->
        E. m e. Q. ( m .Q C ) <Q B ) $=
      ( vx cnq wcel wa cv cltq wbr cmq co wrex nsmallnqq adantr appdivnq reximi
      simpr syl ancoms ad2ant2l rexlimddv ) AEFZBEFZGDHZAIJZCHBKLZAIJZCEMZDEUCU
      FDEMUDDANOUDUFUIUCUEEFUFUDUIUFUDGUEUGIJZUHGZCEMUIUEABCPUKUHCEUJUHRQSTUAUB
      $.
  $}

  ${
    prmuloclemcalc.ru $e |- ( ph -> R <Q U ) $.
    prmuloclemcalc.udp $e |- ( ph -> U <Q ( D +Q P ) ) $.
    prmuloclemcalc.axb $e |- ( ph -> ( A +Q X ) = B ) $.
    prmuloclemcalc.pbrx $e |- ( ph -> ( P .Q B ) <Q ( R .Q X ) ) $.
    prmuloclemcalc.a $e |- ( ph -> A e. Q. ) $.
    prmuloclemcalc.b $e |- ( ph -> B e. Q. ) $.
    prmuloclemcalc.d $e |- ( ph -> D e. Q. ) $.
    prmuloclemcalc.p $e |- ( ph -> P e. Q. ) $.
    prmuloclemcalc.x $e |- ( ph -> X e. Q. ) $.
    $( Calculations for ~ prmuloc .  (Contributed by Jim Kingdon,
       9-Dec-2019.) $)
    prmuloclemcalc $p |- ( ph -> ( U .Q A ) <Q ( D .Q B ) ) $=
      ( co cltq syl2anc cmq wbr cplq oveq2d cnq wcel wceq wa ltrelnq syl simprd
      brel distrnqg syl3anc eqtr3d ltmnqi breqtrd eqbrtrrd mulclnq ltanqi sotri
      mulcomnqg ltsonq simpld 3brtr3d addcomnqg wb ltanqg mpbird ) AGBUARZCDUAR
      ZDCUARZSAVJVKSUBZGHUARZVJUCRZVNVKUCRZSUBZAVJVNUCRZVKVNUCRZVOVPSAGCUARZVRV
      SSAGBHUCRZUARZVTVRAWACGUAKUDAGUEUFZBUEUFZHUEUFZWBVRUGAFUEUFZWCAFGSUBZWFWC
      UHIFGUEUESUIULUJZUKZMQGBHUMUNUOACGUARZVTVSSACUEUFZWCWJVTUGNWICGVBTAWJVKFH
      UARZUCRZSUBZWMVSSUBZWJVSSUBAWJVKCEUARZUCRZSUBWQWMSUBZWNAWJCDEUCRZUARZWQSA
      GWSSUBWKWJWTSUBJNGWSCUPTAWKDUEUFZEUEUFZWTWQUGNOPCDEUMUNUQAWPWLSUBVKUEUFZW
      RAECUARZWPWLSAXBWKXDWPUGPNECVBTLURAWKXAXCNOCDUSTZWPWLVKUTTWJWQWMSUEVCUIVA
      TAWLVNSUBXCWOAHFUARZHGUARZWLVNSAWGWEXFXGSUBIQFGHUPTAWEWFXFWLUGQAWFWCWHVDH
      FVBTAWEWCXGVNUGQWIHGVBTVEXEWLVNVKUTTWJWMVSSUEVCUIVATURURAVJUEUFZVNUEUFZVR
      VOUGAWCWDXHWIMGBUSTZAWCWEXIWIQGHUSTZVJVNVFTAXCXIVSVPUGXEXKVKVNVFTVEAXHXCX
      IVMVQVGXJXEXKVJVKVNVHUNVIAWKXAVKVLUGNOCDVBTUQ $.
  $}

  ${
    $d A d p r u x $.  $d B d p r u x $.  $d L d p r u x $.  $d U d p r u x $.
    $( Positive reals are multiplicatively located.  Lemma 12.8 of
       [BauerTaylor], p. 56.  (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    prmuloc $p |- ( ( <. L , U >. e. P. /\ A <Q B ) -> E. d e. Q. E. u e. Q.
        ( d e. L /\ u e. U /\ ( u .Q A ) <Q ( d .Q B ) ) ) $=
      ( vx vr vp wcel cltq wbr wa cv co cmq cnq wrex ad2antrr adantlr cplq wceq
      cop cnp ltexnqi adantl prml simprl simplrl mulclnq syl2anc ltrelnq simprd
      w3a brel ad3antlr appdiv0nq prarloc ad2ant2r r2ex elprnql adantrr simplll
      wex sylib elprnqu prltlu 3adant1r 3adant2l 3adant3l simprr simplrr simpld
      3expa prmuloclemcalc df-3an sylanbrc jca31 2eximdv mpd sylibr rexlimddv
      ex ) EDUCUDJZBCKLZMZBGNZUAOCUBZFNZEJZANZDJZWKBPOWICPOKLZUNZAQRFQRZGQWEWHG
      QRWDGBCUEUFWFWGQJZWHMZMZHNZEJZWOHQWDWTHQRWEWQHDEUGSWRWSQJZWTMZMZINZCPOWSW
      GPOZKLZWOIQXCXEQJZCQJZXFIQRXCXAWPXGWRXAWTUHWFWPWHXBUIZWSWGUJUKWEXHWDWQXBW
      EBQJZXHBCQQKULUOZUMUPZXECIUQUKXCXDQJZXFMZMZWIQJZWKQJZMWNMZAVDFVDZWOXOWJWL
      MZWKWIXDUAOKLZMZAVDFVDZXSXOYAADRFERZYCWRXMYDXBXFWFXMYDWQWDXMYDWEXDDEFAURT
      TUSYAFAEDUTVEXOYBXRFAXOYBXRXOYBMZXPXQWNXOXTXPYAXCWJXPXNWLWRWJXPXBWFWJXPWQ
      WDWJXPWEWIDEVATTTUSVBZYEWDWLXQXCWDXNYBWDWEWQXBVCSYEWJWLXOXTYAUHZUMWKDEVFU
      KYEXTWMWNYGYEBCWIXDWSWKWGXCXTWSWKKLZXNYAWRXBXTYHWFXBXTYHWQWFXBWLYHWJWFWTW
      LYHXAWDWTWLYHWEWSWKDEVGVHVIVJVHVNUSXOXTYAVKXCWHXNYBWFWPWHXBVLSXCXMXFYBVLX
      CXJXNYBWEXJWDWQXBWEXJXHXKVMUPSXCXHXNYBXLSYFXCXMXFYBUIXCWPXNYBXISVOWJWLWMV
      PVQVRWCVSVTWNFAQQUTWAWBWBWB $.
  $}

  ${
    $d B x y $.  $d L x y $.  $d U x y $.
    $( Positive reals are multiplicatively located.  This is a variation of
       ~ prmuloc which only constructs one (named) point and is therefore often
       easier to work with.  It states that given a ratio ` B ` , there are
       elements of the lower and upper cut which have exactly that ratio
       between them.  (Contributed by Jim Kingdon, 28-Dec-2019.) $)
    prmuloc2 $p |- ( ( <. L , U >. e. P. /\ 1Q <Q B ) ->
        E. x e. L ( x .Q B ) e. U ) $=
      ( vy cop wcel c1q cltq wbr wa cv cmq co cnq wrex wi syl2anc mpd ex simpr1
      cnp w3a prmuloc nfv nfre1 simpr3 wceq wb simplrr mulidnq breq1 3syl mpbid
      simplll simpr2 prcunqu rspe anassrs rexlimdva rexlimd ) DCFUBGZHBIJZKZALZ
      DGZELZCGZVGHMNZVEBMNZIJZUCZEOPZAOPVJCGZADPZEHBCDAUDVDVMVOAOVDAUEVNADUFVDV
      EOGZVMVOQVDVPKVLVOEOVDVPVGOGZVLVOQVDVPVQKZKZVLVOVSVLKZVFVNVOVSVFVHVKUAVTV
      GVJIJZVNVTVKWAVSVFVHVKUGVTVQVIVGUHVKWAUIVDVPVQVLUJVGUKVIVGVJIULUMUNVTVBVH
      WAVNQVBVCVRVLUOVSVFVHVKUPVJVGCDUQRSVNADURRTUSUTTVAS $.
  $}

  ${
    $d A g h u v w x y z $.  $d B g h u v w x y z $.  $d G w y z $.
    $d H w y z $.  $d X w y z $.
    $( Lemma to prove downward closure in positive real multiplication.
       (Contributed by Jim Kingdon, 10-Dec-2019.) $)
    mulnqprl $p |- ( ( ( ( A e. P. /\ G e. ( 1st ` A ) ) /\
                       ( B e. P. /\ H e. ( 1st ` B ) ) ) /\ X e. Q. ) ->
                       ( X <Q ( G .Q H ) -> X e. ( 1st ` ( A .P. B ) ) ) ) $=
      ( vy vz vw cnp wcel cfv wa cnq cmq co cltq wbr syl wceq c1q vx vv crq cmp
      c1st cv w3a ltmnqg adantl simpr c2nd prop elprnql sylan ad2antrr ad2antlr
      cop mulclnq syl2anc recclnq mulcomnqg caovord2d mulassnqg syl3anc recidnq
      wb oveq2d mulidnq 3eqtrd breq2d bitrd wi prcdnql sylbid df-imp genpprecll
      exp4b com34 imp32 adantlr adantr syld eqtrd eleq1d sylibd ) AIJZCAUEKZJZL
      ZBIJZDBUEKZJZLZLZEMJZLZECDNOZPQZEDUCKZNOZDNOZABUDOUEKZJZEXBJWPWRWTWGJZXCW
      PWRWTCPQZXDWPWRWTWQWSNOZPQXEWPFGHEWQWSPMNFUFZMJZGUFZMJZHUFZMJUGXGXIPQXKXG
      NOXKXINOPQVFWPXGXIXKUHUIWNWOUJZWPCMJZDMJZWQMJWIXMWMWOWFWGAUKKZUQIJZWHXMAU
      LZCXOWGUMUNUOZWMXNWIWOWJWKBUKKZUQIJWLXNBULDXSWKUMUNUPZCDURUSWPXNWSMJZXTDU
      TRZXHXJLXGXINOXIXGNOSWPXGXIVAUIVBWPXFCWTPWPXFCDWSNOZNOZCTNOZCWPXMXNYAXFYD
      SXRXTYBCDWSVCVDWPXNYDYESXTXNYCTCNDVEZVGRWPXMYECSXRCVHRVIVJVKWIXEXDVLZWMWO
      WFXPWHYGXQCWTXOWGVMUNUOVNWNXDXCVLZWOWFWMYHWHWFWJWLYHWFWJXDWLXCWFWJXDWLXCU
      AFGHUBABWTDUDNHUBGFUAVOXGXIURVPVQVRVSVTWAWBWPXAEXBWPXAEWSDNOZNOZETNOZEWPW
      OYAXNXAYJSXLYBXTEWSDVCVDWPYITENWPYIYCTWPYAXNYIYCSYBXTWSDVAUSWPXNYCTSXTYFR
      WCVGWOYKESWNEVHUIVIWDWE $.

    $( Lemma to prove upward closure in positive real multiplication.
       (Contributed by Jim Kingdon, 10-Dec-2019.) $)
    mulnqpru $p |- ( ( ( ( A e. P. /\ G e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ H e. ( 2nd ` B ) ) ) /\ X e. Q. ) ->
                       ( ( G .Q H ) <Q X -> X e. ( 2nd ` ( A .P. B ) ) ) ) $=
      ( vy vz vw cnp wcel cfv wa cnq cmq co cltq wbr syl wceq c1q vx vv crq cmp
      c2nd cv w3a wb ltmnqg adantl c1st cop prop elprnqu sylan ad2antrr mulclnq
      ad2antlr syl2anc simpr recclnq mulcomnqg caovord2d syl3anc recidnq oveq2d
      mulassnqg mulidnq 3eqtrd breq1d bitrd wi prcunqu sylbid df-imp genppreclu
      exp4b com34 imp32 adantlr adantr syld eqtrd eleq1d sylibd ) AIJZCAUEKZJZL
      ZBIJZDBUEKZJZLZLZEMJZLZCDNOZEPQZEDUCKZNOZDNOZABUDOUEKZJZEXBJWPWRWTWGJZXCW
      PWRCWTPQZXDWPWRWQWSNOZWTPQXEWPFGHWQEWSPMNFUFZMJZGUFZMJZHUFZMJUGXGXIPQXKXG
      NOXKXINOPQUHWPXGXIXKUIUJWPCMJZDMJZWQMJWIXLWMWOWFAUKKZWGULIJZWHXLAUMZCWGXN
      UNUOUPZWMXMWIWOWJBUKKZWKULIJWLXMBUMDWKXRUNUOURZCDUQUSWNWOUTZWPXMWSMJZXSDV
      ARZXHXJLXGXINOXIXGNOSWPXGXIVBUJVCWPXFCWTPWPXFCDWSNOZNOZCTNOZCWPXLXMYAXFYD
      SXQXSYBCDWSVGVDWPXMYDYESXSXMYCTCNDVEZVFRWPXLYECSXQCVHRVIVJVKWIXEXDVLZWMWO
      WFXOWHYGXPWTCWGXNVMUOUPVNWNXDXCVLZWOWFWMYHWHWFWJWLYHWFWJXDWLXCWFWJXDWLXCU
      AFGHUBABWTDUDNHUBGFUAVOXGXIUQVPVQVRVSVTWAWBWPXAEXBWPXAEWSDNOZNOZETNOZEWPW
      OYAXMXAYJSXTYBXSEWSDVGVDWPYITENWPYIYCTWPYAXMYIYCSYBXSWSDVBUSWPXMYCTSXSYFR
      WCVFWOYKESWNEVHUJVIWDWE $.
  $}

  ${
    $d D x y z $.  $d E x y z $.  $d T x y z $.  $d U x y z $.  $d ph x y z $.
    mullocprlem.ab $e |- ( ph -> ( A e. P. /\ B e. P. ) ) $.
    mullocprlem.uqedu $e |- ( ph -> ( U .Q Q ) <Q ( E .Q ( D .Q U ) ) ) $.
    mullocprlem.edutdu $e |- ( ph ->
      ( E .Q ( D .Q U ) ) <Q ( T .Q ( D .Q U ) ) ) $.
    mullocprlem.tdudr $e |- ( ph -> ( T .Q ( D .Q U ) ) <Q ( D .Q R ) ) $.
    mullocprlem.qr $e |- ( ph -> ( Q e. Q. /\ R e. Q. ) ) $.
    mullocprlem.duq $e |- ( ph -> ( D e. Q. /\ U e. Q. ) ) $.
    mullocprlem.du $e |- ( ph -> ( D e. ( 1st ` A ) /\ U e. ( 2nd ` A ) ) ) $.
    mullocprlem.et $e |- ( ph -> ( E e. Q. /\ T e. Q. ) ) $.
    $( Calculations for ~ mullocpr .  (Contributed by Jim Kingdon,
       10-Dec-2019.) $)
    mullocprlem $p |- ( ph -> ( Q e. ( 1st ` ( A .P. B ) ) \/
        R e. ( 2nd ` ( A .P. B ) ) ) ) $=
      ( wcel co cmq vx vy vz c1st cfv cmp c2nd wo wa cltq wbr cnq simpld simprd
      cv wceq mulcomnqg adantl w3a mulassnqg caov13d breqtrd wb mulclnq syl2anc
      ltmnqg syl3anc mpbird adantr cnp wi jca anim1i mulnqprl syl21anc mpd orcd
      caov12d breq1d bitr4d eqbrtrrd mulnqpru olcd syl breq12d bitrd prop prloc
      cop sylan mpjaodan ) AICUDUEZRZEBCUFSZUDUERZFWNUGUERZUHGCUGUEZRZAWMUIZWOW
      PWSEDITSZUJUKZWOAXAWMAXAHETSZHWTTSZUJUKZAXBIDHTSZTSZXCUJKAUAUBUCIDHULTAIU
      LRZGULRZQUMZADULRZHULRZOUMZAXJXKOUNZUAUOZULRZUBUOZULRZUIXNXPTSZXPXNTSUPAX
      NXPUQURZXOXQUCUOZULRUSXRXTTSXNXPXTTSTSUPAXNXPXTUTURZVAVBAEULRZWTULRZXKXAX
      DVCAYBFULRZNUMZAXJXGYCXLXIDIVDVEXMEWTHVFVGVHVIWSBVJRZDBUDUERZUIZCVJRZWMUI
      YBXAWOVKAYHWMAYFYGAYFYIJUMZAYGHBUGUERZPUMVLVIAYIWMAYFYIJUNZVMAYBWMYEVIBCD
      IEVNVOVPVQAWRUIZWPWOYMHGTSZFUJUKZWPAYOWRAGHTSZYNFUJAXHXKYPYNUPAXGXHQUNZXM
      GHUQVEAYPFUJUKZGXETSZDFTSZUJUKZMAYRDYPTSZYTUJUKZUUAAYPULRZYDXJYRUUCVCAXHX
      KUUDYQXMGHVDVEAYBYDNUNZXLYPFDVFVGAYSUUBYTUJAUAUBUCGDHULTYQXLXMXSYAVRVSVTV
      HWAVIYMYFYKUIZYIWRUIYDYOWPVKAUUFWRAYFYKYJAYGYKPUNVLVIAYIWRYLVMAYDWRUUEVIB
      CHGFWBVOVPWCAYIIGUJUKZWMWRUHZYLAUUGXFYSUJUKZLAUUGXEITSZXEGTSZUJUKZUUIAXGX
      HXEULRZUUGUULVCXIYQAXJXKUIUUMODHVDWDZIGXEVFVGAUUJXFUUKYSUJAUUMXGUUJXFUPUU
      NXIXEIUQVEAUUMXHUUKYSUPUUNYQXEGUQVEWEWFVHYIWLWQWIVJRUUGUUHCWGIGWQWLWHWJVE
      WK $.
  $}

  ${
    $d A d e h p q r t u $.  $d B d e h p q r t u $.
    $( Locatedness of multiplication on positive reals.  Lemma 12.9 in
       [BauerTaylor], p. 56 (but where both ` A ` and ` B ` are positive, not
       just ` A ` ).  (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    mullocpr $p |- ( ( A e. P. /\ B e. P. ) ->
        A. q e. Q. A. r e. Q. ( q <Q r ->
          ( q e. ( 1st ` ( A .P. B ) ) \/ r e. ( 2nd ` ( A .P. B ) ) ) ) ) $=
      ( vd vu ve vt cnp wcel wa cv cltq wbr co cfv cnq cmq wrex ad2antrr cmp wo
      c1st c2nd wi w3a wex prop prmuloc sylan r2ex sylib adantlr simprr3 simprl
      cop mulclnq syl appdivnq syl2anc simprrr simplll ad2antlr simprrl simpllr
      adantr ad2antll simplrl jca mullocprlem rexlimddv exlimdvv mpd ralrimivva
      3simpa ex ) AIJZBIJZKZDLZCLZMNZVTABUAOZUCPJWAWCUDPJUBZUEDCQQVSVTQJWAQJKZK
      ZWBWDWFWBKZELZQJFLZQJKZWHAUCPZJZWIAUDPZJZWIVTROZWHWAROZMNZUFZKZFUGEUGZWDV
      SWBWTWEVQWBWTVRVQWBKWRFQSEQSZWTVQWKWMUPIJWBXAAUHFVTWAWMWKEUIUJWREFQQUKULU
      MUMWGWSWDEFWGWSWDWGWSKZWOGLZWHWIROZROZMNZXEWPMNZKZWDGQXBWQXDQJZXHGQSWLWNW
      QWJWGUNXBWJXIWGWJWRUOZWHWIUQURZWOWPXDGUSUTXBXCQJZXHKZKZXEHLZXDROZMNZXPWPM
      NZKZWDHQXNXGXIXSHQSXBXLXFXGVAXBXIXMXKVFXEWPXDHUSUTXNXOQJZXSKZKZABWHVTWAXO
      WIXCXBVSXMYAVSWEWBWSVBTXMXFXBYAXLXFXGUOVCXNXTXQXRVDXNXTXQXRVAXBWEXMYAVSWE
      WBWSVETXBWJXMYAXJTXBWLWNKZXMYAWRYCWGWJWLWNWQVOVGTYBXLXTXBXLXHYAVHXNXTXSUO
      VIVJVKVKVPVLVMVPVN $.
  $}

  ${
    $d A q r t u v w x y z $.  $d B q r t u v w x y z $.
    $( Closure of multiplication on positive reals.  First statement of
       Proposition 9-3.7 of [Gleason] p. 124.  (Contributed by NM,
       13-Mar-1996.) $)
    mulclpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) e. P. ) $=
      ( vq vr vx vy vz vw vv vu vt cnp wcel wa cmp cnq cv wrex wral cmq cpw cxp
      co c1st cfv c2nd cltq wbr wb wn w3a df-imp genpelxp mulclnq genpml genpmu
      wo wi jca32 ltmnqg mulcomnqg mulnqprl genprndl mulnqpru genprndu genpdisj
      jca mullocpr 3jca elnp1st2nd sylanbrc ) ALMBLMNZABOUCZPUAZVNUBMZCQZVMUDUE
      ZMZCPRZDQZVMUFUEZMZDPRZNNVRVPVTUGUHZVTVQMNDPRUICPSZWBWDVPWAMZNCPRUIDPSZNZ
      VRWFNUJCPSZWDVRWBUQURDPSCPSZUKVMLMVLVOVSWCEFGHIABOTHIGFEULZUMEFGHIABOTCWK
      FQZGQZUNZUOEFGHIABOTDWKWNUPUSVLWHWIWJVLWEWGEFGHIABJKOTDCWKWNEQZWLWMUTZWOW
      LVAZABJQZKQZWOVBVCEFGHIABJKOTDCWKWNWPWQABWRWSWOVDVEVGEFGHIABOTCWKWNWPWQVF
      ABDCVHVIVMDCVJVK $.
  $}

  ${
    $d f g h v w x y z A $.  $d f g h v w x y z B $.  $d f g h v w x y z C $.
    $( Addition of positive reals is commutative.  Proposition 9-3.5(ii) of
       [Gleason] p. 123.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    addcomprg $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) = ( B +P. A ) ) $=
      ( vx vy vz cnp wcel wa cv wceq cfv wrex cnq crab cop sylan sylan2 anassrs
      co rexbidva cplq c1st c2nd wb prop elprnql addcomnqg eqeq2d ancoms rexcom
      cpp syl6bb rabbidv elprnqu opeq12d plpvlu 3eqtr4rd ) AFGZBFGZHZCIZDIZEIZU
      ASZJZEAUBKZLZDBUBKZLZCMNZVEEAUCKZLZDBUCKZLZCMNZOZVAVCVBUASZJZDVHLEVFLZCMN
      ZVRDVMLEVKLZCMNZOBAUKSZABUKSUTVJVTVOWBUTVIVSCMUTVIVREVFLZDVHLVSUTVGWDDVHU
      RUSVBVHGZVGWDUDZUSWEHURVBMGZWFUSVHVMOFGZWEWGBUEZVBVMVHUFPWGURWFWGURHZVEVR
      EVFWGURVCVFGZVEVRUDZURWKHWGVCMGZWLURVFVKOFGZWKWMAUEZVCVKVFUFPWGWMHVDVQVAV
      BVCUGUHZQRTUIQRTVRDEVHVFUJULUMUTVNWACMUTVNVREVKLZDVMLWAUTVLWQDVMURUSVBVMG
      ZVLWQUDZUSWRHURWGWSUSWHWRWGWIVBVMVHUNPWGURWSWJVEVREVKWGURVCVKGZWLURWTHWGW
      MWLURWNWTWMWOVCVKVFUNPWPQRTUIQRTVRDEVMVKUJULUMUOUSURWCVPJCDEBAUPUICEDABUP
      UQ $.

    $( Addition of positive reals is associative.  Proposition 9-3.5(i) of
       [Gleason] p. 123.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    addassprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( ( A +P. B ) +P. C ) = ( A +P. ( B +P. C ) ) ) $=
      ( vx vy vz vw vv vf vg vh cplq df-iplp cv addclnq dmplp addclpr addassnqg
      cpp genpassg ) DEFGHABCIJKSLGHFEDMENFNOPINZJNZQUAUBKNRT $.

    $( Multiplication of positive reals is commutative.  Proposition 9-3.7(ii)
       of [Gleason] p. 124.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    mulcomprg $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) = ( B .P. A ) ) $=
      ( vx vz vy cnp wcel wa cv wceq cfv wrex cnq crab cop sylan sylan2 anassrs
      co rexbidva cmq c1st c2nd cmp prop elprnql mulcomnqg eqeq2d ancoms rexcom
      wb syl6bb rabbidv elprnqu opeq12d mpvlu 3eqtr4rd ) AFGZBFGZHZCIZDIZEIZUAS
      ZJZEAUBKZLZDBUBKZLZCMNZVEEAUCKZLZDBUCKZLZCMNZOZVAVCVBUASZJZDVHLEVFLZCMNZV
      RDVMLEVKLZCMNZOBAUDSZABUDSUTVJVTVOWBUTVIVSCMUTVIVREVFLZDVHLVSUTVGWDDVHURU
      SVBVHGZVGWDUKZUSWEHURVBMGZWFUSVHVMOFGZWEWGBUEZVBVMVHUFPWGURWFWGURHZVEVREV
      FWGURVCVFGZVEVRUKZURWKHWGVCMGZWLURVFVKOFGZWKWMAUEZVCVKVFUFPWGWMHVDVQVAVBV
      CUGUHZQRTUIQRTVRDEVHVFUJULUMUTVNWACMUTVNVREVKLZDVMLWAUTVLWQDVMURUSVBVMGZV
      LWQUKZUSWRHURWGWSUSWHWRWGWIVBVMVHUNPWGURWSWJVEVREVKWGURVCVKGZWLURWTHWGWMW
      LURWNWTWMWOVCVKVFUNPWPQRTUIQRTVRDEVMVKUJULUMUOUSURWCVPJCDEBAUPUICEDABUPUQ
      $.

    $( Multiplication of positive reals is associative.  Proposition 9-3.7(i)
       of [Gleason] p. 124.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    mulassprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( ( A .P. B ) .P. C ) = ( A .P. ( B .P. C ) ) ) $=
      ( vx vy vz vw vv vf vg vh cmp cmq df-imp cv mulclnq dmmp mulclpr genpassg
      mulassnqg ) DEFGHABCIJKLMGHFEDNEOFOPQIOZJOZRUAUBKOTS $.
  $}

  ${
    $d x y z w v u f g h A $.  $d x y z w v u f g h B $.
    $d x y z w v u f g h C $.
    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem1prl $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 1st ` ( A .P. ( B +P. C ) ) ) C_
          ( 1st ` ( ( A .P. B ) +P. ( A .P. C ) ) ) ) $=
      ( vw vx vv vf vg vh vy vz cnp wcel co cmp c1st cfv cv cmq wa w3a cpp wceq
      wrex wb addclpr df-imp mulclnq genpelvl sylan2 3impb cplq df-iplp addclnq
      3adant1 adantr cnq c2nd prop elprnql sylan 3ad2antl1 adantrr anim12i an4s
      cop 3adantl1 ad2ant2r 3anass sylanbrc simprr simpr oveq2 biimpac distrnqg
      wi eqeq2d syl5ib sylc mulclpr 3adant3 ad2antrr simpll genpprecll adantlrr
      3adant2 impl simplr imp syl22anc eqeltrd exp32 rexlimdvv com34 impd ssrdv
      sylbid ) ALMZBLMZCLMZUAZDABCUBNZONPQZABONZACONZUBNPQZXADRZXCMZXGERZFRZSNZ
      UCZFXBPQZUDEAPQZUDZXGXFMZWRWSWTXHXOUEZWSWTTWRXBLMXQBCUFGHIJKAXBXGEFOSJKIH
      GUGZHRZIRZUHZUIUJUKXAXLXPEFXNXMXAXIXNMZXJXMMZXLXPVPXAYBXLYCXPXAYBXLYCXPVP
      XAYBXLTZTZYCXJJRZKRZULNZUCZKCPQZUDJBPQZUDZXPXAYCYLUEZYDWSWTYMWRGHIDEBCXJJ
      KUBULDEIHGUMZXSXTUNZUIUOUPYEYIXPJKYKYJYEYFYKMZYGYJMZTZYIXPYEYRYITZTZXGXIY
      FSNZXIYGSNZULNZXFYTXIUQMZYFUQMZYGUQMZUAZXLYITZXGUUCUCZYTUUDUUEUUFTZUUGYEU
      UDYSXAYBUUDXLWRWSYBUUDWTWRXNAURQZVFLMYBUUDAUSXIUUKXNUTVAVBVCUPXAYRUUJYDYI
      WSWTYRUUJWRWSYPWTYQUUJWSYPTUUEWTYQTUUFWSYKBURQZVFLMYPUUEBUSYFUULYKUTVAWTY
      JCURQZVFLMYQUUFCUSYGUUMYJUTVAVDVEVGVHUUDUUEUUFVIVJYEXLYSYIXAYBXLVKYRYIVLV
      DUUHXGXIYHSNZUCZUUGUUIYIXLUUOYIXKUUNXGXJYHXISVMVQVNUUGUUNUUCXGXIYFYGVOVQV
      RVSYTXDLMZXELMZUUAXDPQMZUUBXEPQMZUUCXFMZXAUUPYDYSWRWSUUPWTABVTWAWBXAUUQYD
      YSWRWTUUQWSACVTWFWBYSYEYPUURYPYQYIWCXAYBYPUURXLXAYBYPUURWRWSYBYPTUURVPWTG
      HIJKABXIYFOSXRYAWDWAWGWEUJYSYEYQUUSYPYQYIWHXAYBYQUUSXLXAYBYQUUSWRWTYBYQTU
      USVPWSGHIJKACXIYGOSXRYAWDWFWGWEUJUUPUUQTUURUUSTUUTGHIDEXDXEUUAUUBUBULYNYO
      WDWIWJWKWLWMWQWLWNWOWMWQWP $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem1pru $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 2nd ` ( A .P. ( B +P. C ) ) ) C_
          ( 2nd ` ( ( A .P. B ) +P. ( A .P. C ) ) ) ) $=
      ( vw vx vv vf vg vh vy vz cnp wcel co cmp c2nd cfv cv cmq wa w3a cpp wceq
      wrex wb addclpr df-imp mulclnq genpelvu sylan2 3impb cplq df-iplp addclnq
      3adant1 adantr cnq c1st prop elprnqu sylan 3ad2antl1 adantrr anim12i an4s
      cop 3adantl1 ad2ant2r 3anass sylanbrc simprr simpr oveq2 biimpac distrnqg
      wi eqeq2d syl5ib sylc mulclpr 3adant3 ad2antrr simpll genppreclu adantlrr
      3adant2 impl simplr imp syl22anc eqeltrd exp32 rexlimdvv com34 impd ssrdv
      sylbid ) ALMZBLMZCLMZUAZDABCUBNZONPQZABONZACONZUBNPQZXADRZXCMZXGERZFRZSNZ
      UCZFXBPQZUDEAPQZUDZXGXFMZWRWSWTXHXOUEZWSWTTWRXBLMXQBCUFGHIJKAXBXGEFOSJKIH
      GUGZHRZIRZUHZUIUJUKXAXLXPEFXNXMXAXIXNMZXJXMMZXLXPVPXAYBXLYCXPXAYBXLYCXPVP
      XAYBXLTZTZYCXJJRZKRZULNZUCZKCPQZUDJBPQZUDZXPXAYCYLUEZYDWSWTYMWRGHIDEBCXJJ
      KUBULDEIHGUMZXSXTUNZUIUOUPYEYIXPJKYKYJYEYFYKMZYGYJMZTZYIXPYEYRYITZTZXGXIY
      FSNZXIYGSNZULNZXFYTXIUQMZYFUQMZYGUQMZUAZXLYITZXGUUCUCZYTUUDUUEUUFTZUUGYEU
      UDYSXAYBUUDXLWRWSYBUUDWTWRAURQZXNVFLMYBUUDAUSXIXNUUKUTVAVBVCUPXAYRUUJYDYI
      WSWTYRUUJWRWSYPWTYQUUJWSYPTUUEWTYQTUUFWSBURQZYKVFLMYPUUEBUSYFYKUULUTVAWTC
      URQZYJVFLMYQUUFCUSYGYJUUMUTVAVDVEVGVHUUDUUEUUFVIVJYEXLYSYIXAYBXLVKYRYIVLV
      DUUHXGXIYHSNZUCZUUGUUIYIXLUUOYIXKUUNXGXJYHXISVMVQVNUUGUUNUUCXGXIYFYGVOVQV
      RVSYTXDLMZXELMZUUAXDPQMZUUBXEPQMZUUCXFMZXAUUPYDYSWRWSUUPWTABVTWAWBXAUUQYD
      YSWRWTUUQWSACVTWFWBYSYEYPUURYPYQYIWCXAYBYPUURXLXAYBYPUURWRWSYBYPTUURVPWTG
      HIJKABXIYFOSXRYAWDWAWGWEUJYSYEYQUUSYPYQYIWHXAYBYQUUSXLXAYBYQUUSWRWTYBYQTU
      USVPWSGHIJKACXIYGOSXRYAWDWFWGWEUJUUPUUQTUURUUSTUUTGHIDEXDXEUUAUUBUBULYNYO
      WDWIWJWKWLWMWQWLWNWOWMWQWP $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem4prl $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
         ( ( x e. ( 1st ` A ) /\ y e. ( 1st ` B ) ) /\
           ( f e. ( 1st ` A ) /\ z e. ( 1st ` C ) ) ) ) ->
         ( ( x .Q y ) +Q ( f .Q z ) ) e. ( 1st ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vu cnp wcel cv wa cltq cmq co cplq cnq syl2anc vg vh w3a c1st cfv
      wbr wo cpp cmp wn ltmnqg adantl simp1 simpll c2nd cop prop elprnql syl2an
      wb sylan simprl simpl2 simprlr mulcomnqg caovord2d ltanqg mulclnq simprrr
      wceq simpl3 addcomnqg bitrd simpl1 addclpr 3adant1 adantr mulclpr syl3anc
      distrnqg simprrl df-iplp addclnq genpprecll imp syl22anc eqeltrrd prcdnql
      wi df-imp sylbid simprll ltsonq nqtri3or sotritrieq oveq1 oveq2d sylan9eq
      jaod ex sylbird wdc ltdcnq ancoms dcor sylc df-dc sylib mpjaod ) DKLZEKLZ
      FKLZUCZAMZDUDUEZLZBMZEUDUEZLZNZGMZXOLZCMZFUDUEZLZNZNZNZXNYAOUFZYAXNOUFZUG
      ZXNXQPQZYAYCPQZRQZDEFUHQZUIQZUDUEZLZYKUJZYHYIYRYJYHYIYNYAXQPQZYMRQZOUFZYR
      YHYIYLYTOUFUUBYHHIJXNYAXQOSPHMZSLZIMZSLZJMZSLUCZUUCUUEOUFZUUGUUCPQUUGUUEP
      QOUFUTYHUUCUUEUUGUKULZXMXJXPXNSLZYGXJXKXLUMZXPXSYFUNXJXODUOUEZUPKLZXPUUKD
      UQZXNUUMXOURVAUSZXMXJYBYASLZYGUULXTYBYEVBXJUUNYBUUQUUOYAUUMXOURVAUSZYHXKX
      SXQSLZXJXKXLYGVCZXMXPXSYFVDZXKXREUOUEZUPKLXSUUSEUQXQUVBXRURVATZUUDUUFNZUU
      CUUEPQUUEUUCPQVJYHUUCUUEVEULZVFYHHIJYLYTYMOSRUUHUUIUUGUUCRQUUGUUERQOUFUTY
      HUUCUUEUUGVGULYHUUKUUSYLSLZUUPUVCXNXQVHTZYHUUQUUSYTSLUURUVCYAXQVHTYHUUQYC
      SLZYMSLZUURYHXLYEUVHXJXKXLYGVKZXMXTYBYEVIZXLYDFUOUEZUPKLYEUVHFUQYCUVLYDUR
      VATZYAYCVHTZUVDUUCUUERQUUEUUCRQVJYHUUCUUEVLULVFVMYHYPKLZUUAYQLZUUBYRWIZYH
      XJYOKLZUVOXJXKXLYGVNZXMUVRYGXKXLUVRXJEFVOVPVQZDYOVRTZYHYAXQYCRQZPQZUUAYQY
      HUUQUUSUVHUWCUUAVJUURUVCUVMYAXQYCVTVSYHXJUVRYBUWBYOUDUELZUWCYQLZUVSUVTXMX
      TYBYEWAYHXKXLXSYEUWDUUTUVJUVAUVKXKXLNXSYENUWDHUAUBJIEFXQYCUHRJIUBUAHWBUAM
      ZUBMZWCWDWEWFZXJUVRNZYBUWDNUWEHUAUBJIDYOYAUWBUIPJIUBUAHWJZUWFUWGVHZWDWEWF
      WGUVOYQYPUOUEZUPKLZUVPUVQYPUQZUUAYNUWLYQWHVATWKYHYJYNYLXNYCPQZRQZOUFZYRYH
      YJYMUWOOUFZUWQYHHIJYAXNYCOSPUUJUURUUPUVMUVEVFYHUVIUWOSLZUVFUWRUWQUTUVNYHU
      UKUVHUWSUUPUVMXNYCVHTUVGYMUWOYLVGVSVMYHUVOUWPYQLZUWQYRWIZUWAYHXNUWBPQZUWP
      YQYHUUKUUSUVHUXBUWPVJUUPUVCUVMXNXQYCVTVSZYHXJUVRXPUWDUXBYQLZUVSUVTXMXPXSY
      FWLUWHUWIXPUWDNUXDHUAUBJIDYOXNUWBUIPUWJUWKWDWEWFZWGUVOUWMUWTUXAUWNUWPYNUW
      LYQWHVATWKWSYHYSXNYAVJZYRYHUUKUUQUXFYSUTUUPUURSXNYAOWMXNYAWNWOTYHUXFYRYHU
      XFNUXBYNYQYHUXFUXBUWPYNUXCUXFUWOYMYLRXNYAYCPWPWQWRYHUXDUXFUXEVQWGWTXAYHYK
      XBZYKYSUGYHUUKUUQUXGUUPUURUUKUUQNYIXBYJXBZUXGXNYAXCUUQUUKUXHYAXNXCXDYIYJX
      EXFTYKXGXHXI $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem4pru $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
         ( ( x e. ( 2nd ` A ) /\ y e. ( 2nd ` B ) ) /\
           ( f e. ( 2nd ` A ) /\ z e. ( 2nd ` C ) ) ) ) ->
         ( ( x .Q y ) +Q ( f .Q z ) ) e. ( 2nd ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vu cnp wcel cv wa cltq cmq co cplq cnq syl2anc vg vh w3a c2nd cfv
      wbr wo cpp cmp wn ltmnqg adantl simp1 simpll c1st cop prop elprnqu syl2an
      wb sylan simprl simpl3 simprrr mulcomnqg caovord2d mulclnq simpl2 simprlr
      wceq ltanqg syl3anc bitrd simpl1 addclpr 3adant1 mulclpr distrnqg simprll
      wi adantr df-iplp addclnq genppreclu imp syl22anc df-imp eqeltrrd prcunqu
      sylbid addcomnqg simprrl ltsonq nqtri3or sotritrieq oveq1 oveq2d sylan9eq
      jaod ex sylbird wdc ltdcnq ancoms dcor sylc df-dc sylib mpjaod ) DKLZEKLZ
      FKLZUCZAMZDUDUEZLZBMZEUDUEZLZNZGMZXOLZCMZFUDUEZLZNZNZNZXNYAOUFZYAXNOUFZUG
      ZXNXQPQZYAYCPQZRQZDEFUHQZUIQZUDUEZLZYKUJZYHYIYRYJYHYIYLXNYCPQZRQZYNOUFZYR
      YHYIYTYMOUFZUUBYHHIJXNYAYCOSPHMZSLZIMZSLZJMZSLUCZUUDUUFOUFZUUHUUDPQUUHUUF
      PQOUFUTYHUUDUUFUUHUKULZXMXJXPXNSLZYGXJXKXLUMZXPXSYFUNXJDUOUEZXOUPKLZXPUUL
      DUQZXNXOUUNURVAUSZXMXJYBYASLZYGUUMXTYBYEVBXJUUOYBUURUUPYAXOUUNURVAUSZYHXL
      YEYCSLZXJXKXLYGVCZXMXTYBYEVDZXLFUOUEZYDUPKLYEUUTFUQYCYDUVCURVATZUUEUUGNZU
      UDUUFPQUUFUUDPQVJYHUUDUUFVEULZVFYHYTSLZYMSLZYLSLZUUCUUBUTYHUULUUTUVGUUQUV
      DXNYCVGTYHUURUUTUVHUUSUVDYAYCVGTZYHUULXQSLZUVIUUQYHXKXSUVKXJXKXLYGVHZXMXP
      XSYFVIZXKEUOUEZXRUPKLXSUVKEUQXQXRUVNURVATZXNXQVGTZYTYMYLVKVLVMYHYPKLZUUAY
      QLZUUBYRVTZYHXJYOKLZUVQXJXKXLYGVNZXMUVTYGXKXLUVTXJEFVOVPWAZDYOVQTZYHXNXQY
      CRQZPQZUUAYQYHUULUVKUUTUWEUUAVJUUQUVOUVDXNXQYCVRVLZYHXJUVTXPUWDYOUDUELZUW
      EYQLZUWAUWBXMXPXSYFVSYHXKXLXSYEUWGUVLUVAUVMUVBXKXLNXSYENUWGHUAUBJIEFXQYCU
      HRJIUBUAHWBUAMZUBMZWCWDWEWFZXJUVTNZXPUWGNUWHHUAUBJIDYOXNUWDUIPJIUBUAHWGZU
      WIUWJVGZWDWEWFZWHUVQYPUOUEZYQUPKLZUVRUVSYPUQZYNUUAYQUWPWIVATWJYHYJYAXQPQZ
      YMRQZYNOUFZYRYHYJUWSYLOUFUXAYHHIJYAXNXQOSPUUKUUSUUQUVOUVFVFYHHIJUWSYLYMOS
      RUUIUUJUUHUUDRQUUHUUFRQOUFUTYHUUDUUFUUHVKULYHUURUVKUWSSLUUSUVOYAXQVGTUVPU
      VJUVEUUDUUFRQUUFUUDRQVJYHUUDUUFWKULVFVMYHUVQUWTYQLZUXAYRVTZUWCYHYAUWDPQZU
      WTYQYHUURUVKUUTUXDUWTVJUUSUVOUVDYAXQYCVRVLYHXJUVTYBUWGUXDYQLZUWAUWBXMXTYB
      YEWLUWKUWLYBUWGNUXEHUAUBJIDYOYAUWDUIPUWMUWNWDWEWFWHUVQUWQUXBUXCUWRYNUWTYQ
      UWPWIVATWJWSYHYSXNYAVJZYRYHUULUURUXFYSUTUUQUUSSXNYAOWMXNYAWNWOTYHUXFYRYHU
      XFNUWEYNYQYHUXFUWEUUAYNUWFUXFYTYMYLRXNYAYCPWPWQWRYHUWHUXFUWOWAWHWTXAYHYKX
      BZYKYSUGYHUULUURUXGUUQUUSUULUURNYIXBYJXBZUXGXNYAXCUURUULUXHYAXNXCXDYIYJXE
      XFTYKXGXHXI $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem5prl $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 1st ` ( ( A .P. B ) +P. ( A .P. C ) ) ) C_
        ( 1st ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vf vg vh vx vy vz cnp wcel cmp co c1st cfv cv wrex wa vu w3a cplq
      cpp wb mulclpr 3adant3 3adant2 df-iplp addclnq genpelvl syl2anc wi df-imp
      cmq mulclnq anbi2d distrlem4prl oveq12 eqeq2d eleq1 syl6bi imp syl5ibrcom
      wceq exp4b com3l com23 rexlimivv rexlimdvv com3r sylbid impd ssrdv ) ALMZ
      BLMZCLMZUBZDABNOZACNOZUDOPQZABCUDONOPQZVRDRZWAMZWCERZUARZUCOZVEZUAVTPQZSE
      VSPQZSZWCWBMZVRVSLMZVTLMZWDWKUEVOVPWMVQABUFUGVOVQWNVPACUFUHFGHIJVSVTWCEUA
      UDUCIJHGFUIGRZHRZUJUKULVRWHWLEUAWJWIVRWEWJMZWFWIMZTWQWFFRZKRZUOOZVEZKCPQZ
      SFAPQZSZTWHWLUMZVRWRXEWQVOVQWRXEUEVPIGHDEACWFFKNUODEHGIUNWOWPUPZUKUHUQVRW
      QXEXFVRWQWEIRZJRZUOOZVEZJBPQZSIXDSZXEXFUMVOVPWQXMUEVQFGHDEABWEIJNUODEHGFU
      NXGUKUGXMXEVRXFXMXBVRXFUMZFKXDXCXKWSXDMWTXCMTZXBXNUMZUMIJXDXLXHXDMXIXLMTZ
      XOXKXPXQXOXKXBXNVRXQXOTZXKXBTZXFVRXRXSWHWLVRXRTWLXSWHTXJXAUCOZWBMZIJKABCF
      URXSWHWLYAUEZXSWHWCXTVEYBXSWGXTWCWEXJWFXAUCUSUTWCXTWBVAVBVCVDVFVGVFVHVIVJ
      VKVLVMVLVJVLVN $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem5pru $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 2nd ` ( ( A .P. B ) +P. ( A .P. C ) ) ) C_
        ( 2nd ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vf vg vh vx vy vz cnp wcel cmp co c2nd cfv cv wrex wa vu w3a cplq
      cpp wb mulclpr 3adant3 3adant2 df-iplp addclnq genpelvu syl2anc wi df-imp
      cmq mulclnq anbi2d distrlem4pru oveq12 eqeq2d eleq1 syl6bi imp syl5ibrcom
      wceq exp4b com3l com23 rexlimivv rexlimdvv com3r sylbid impd ssrdv ) ALMZ
      BLMZCLMZUBZDABNOZACNOZUDOPQZABCUDONOPQZVRDRZWAMZWCERZUARZUCOZVEZUAVTPQZSE
      VSPQZSZWCWBMZVRVSLMZVTLMZWDWKUEVOVPWMVQABUFUGVOVQWNVPACUFUHFGHIJVSVTWCEUA
      UDUCIJHGFUIGRZHRZUJUKULVRWHWLEUAWJWIVRWEWJMZWFWIMZTWQWFFRZKRZUOOZVEZKCPQZ
      SFAPQZSZTWHWLUMZVRWRXEWQVOVQWRXEUEVPIGHDEACWFFKNUODEHGIUNWOWPUPZUKUHUQVRW
      QXEXFVRWQWEIRZJRZUOOZVEZJBPQZSIXDSZXEXFUMVOVPWQXMUEVQFGHDEABWEIJNUODEHGFU
      NXGUKUGXMXEVRXFXMXBVRXFUMZFKXDXCXKWSXDMWTXCMTZXBXNUMZUMIJXDXLXHXDMXIXLMTZ
      XOXKXPXQXOXKXBXNVRXQXOTZXKXBTZXFVRXRXSWHWLVRXRTWLXSWHTXJXAUCOZWBMZIJKABCF
      URXSWHWLYAUEZXSWHWCXTVEYBXSWGXTWCWEXJWFXAUCUSUTWCXTWBVAVBVCVDVFVGVFVHVIVJ
      VKVLVMVLVJVLVN $.
  $}

  ${
    $( Multiplication of positive reals is distributive.  Proposition
       9-3.7(iii) of [Gleason] p. 124.  (Contributed by Jim Kingdon,
       12-Dec-2019.) $)
    distrprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( A .P. ( B +P. C ) ) = ( ( A .P. B ) +P. ( A .P. C ) ) ) $=
      ( cnp wcel w3a cpp cmp wceq c1st cfv c2nd distrlem1prl distrlem5prl eqssd
      co distrlem1pru addclpr syl2anc mulclpr distrlem5pru wa simp1 simp2 simp3
      wb preqlu mpbir2and ) ADEZBDEZCDEZFZABCGPZHPZABHPZACHPZGPZIZUNJKZUQJKZIZU
      NLKZUQLKZIZULUSUTABCMABCNOULVBVCABCQABCUAOULUNDEZUQDEZURVAVDUBUFULUIUMDEZ
      VEUIUJUKUCZULUJUKVGUIUJUKUDZUIUJUKUEZBCRSAUMTSULUODEZUPDEZVFULUIUJVKVHVIA
      BTSULUIUKVLVHVJACTSUOUPRSUNUQUGSUH $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( If a positive real is less than a second positive real, its lower cut is
       a subset of the second's lower cut.  (Contributed by Jim Kingdon,
       23-Dec-2019.) $)
    ltprordil $p |- ( A <P B -> ( 1st ` A ) C_ ( 1st ` B ) ) $=
      ( vx vy cltp wbr cv c2nd cfv wcel c1st wa wss cnq cnp wrex adantr cop syl
      prop ltrelpr brel ltdfpr biimpd mpcom simpll simpr simprrl simpld syl3an1
      cltq prltlu syl3anc wi simprrr simprd prcdnql sylan syl2anc mpd rexlimddv
      ex ssrdv ) ABEFZCGZAHIZJZVEBKIZJZLZAKIZVHMCNAOJZBOJZLZVDVJCNPZABOOEUAUBZV
      NVDVOABCUCUDUEVDVENJZVJLZLZDVKVHVSDGZVKJZVTVHJZVSWALZVTVEUKFZWBWCVDWAVGWD
      VDVRWAUFZVSWAUGVSVGWAVDVQVGVIUHQVDVKVFROJZWAVGWDVDVLWFVDVLVMVPUIATSVTVEVF
      VKULUJUMWCVDVIWDWBUNZWEVSVIWAVDVQVGVIUOQVDVHBHIZROJZVIWGVDVMWIVDVLVMVPUPB
      TSVEVTWHVHUQURUSUTVBVCVA $.
  $}

  ${
    $d x y z w v u f g h A $.
    $( Lemma for ~ 1idpr .  (Contributed by Jim Kingdon, 13-Dec-2019.) $)
    1idprl $p |- ( A e. P. -> ( 1st ` ( A .P. 1P ) ) = ( 1st ` A ) ) $=
      ( vf vg vw vy wcel c1p co cfv cv cmq wceq wrex cltq wbr wa cnq c1q adantl
      wb vx vu vv vz cnp cmp c1st wss ssid rexss ax-mp r19.42v 1pr c2nd elprnql
      cop prop sylan mpan w3a 3ad2ant3 1prl abeq2i ltmnqg mp3an2 ancoms mulidnq
      breq1 breq2d adantr bitrd syl5rbb 3adant3 syl3an1 syl3an2 3expia pm5.32rd
      1nq rexbidva syl5rbbr syl5bb df-imp mulclnq genpelvl mpan2 prnmaxl wi crq
      ltrelnq brel simpl simpr recclnq mulcomnqg caovord2d recidnq biimpd mpcom
      sylan2 elab2g mpbird mulassnqg caov12d oveq2d 3eqtrrd oveq2 eqeq2d rspcev
      syl syl2anc a1i ancld reximia ex prcdnql adantrd rexlimdva impbid 3bitr4d
      eqrdv ) AUEFZUAAGUFHUGIZAUGIZYAUAJZBJZCJZKHZLZCGUGIZMZBYCMZYDYENOZYJPZBYC
      MZYDYBFZYDYCFZYAYJYMBYCYJYFYIFZYHPZCYIMZYAYEYCFZPZYMYIYIUHYJYSTYIUIYHCYIY
      IUJUKYMYLYHPZCYIMUUAYSYLYHCYIULUUAUUBYRCYIUUAYQPYHYLYQUUAYQYHYLYQTZYQUUAY
      FQFZYHUUCGUEFZYQUUDUMUUEYIGUNIZUPUEFYQUUDGUQYFUUFYIUOURUSUUAYEQFZUUDYHUUC
      YAYCAUNIZUPUEFZYTUUGAUQZYEUUHYCUOURUUGUUDYHUTYLYGYENOZYQYHUUGYLUUKTUUDYDY
      GYENVHVAUUGUUDUUKYQTYHYQYFRNOZUUGUUDPZUUKUULCYICVBZVCUUMUULYGYERKHZNOZUUK
      UUDUUGUULUUPTZUUDRQFUUGUUQVRYFRYEVDVEVFUUGUUPUUKTUUDUUGUUOYEYGNYEVGVIVJVK
      VLVMVKVNVOVPVQVSVTWAVSYAUUEYOYKTUMDUBUCEUDAGYDBCUFKEUDUCUBDWBUBJUCJWCWDWE
      YAYPYNYAYPYNYAYPPYLBYCMZYNYAUUIYPUURUUJBYDUUHYCWFURYLYMBYCYTYLYJYLYJWGYTY
      LYDYEWHIZKHZYIFZYDYEUUTKHZLZYJYLUVAUUTRNOZYDQFZUUGPZYLUVDYDYEQQNWIWJZUVFY
      LUVDUVFYLUUTYEUUSKHZNOZUVDUVFEUDDYDYEUUSNQKEJZQFZUDJZQFZDJZQFUTZUVJUVLNOU
      VNUVJKHUVNUVLKHNOTUVFUVJUVLUVNVDSUVEUUGWKZUVEUUGWLZUUGUUSQFZUVEYEWMZSZUVK
      UVMPUVJUVLKHZUVLUVJKHLUVFUVJUVLWNSZWOUUGUVIUVDTUVEUUGUVHRUUTNYEWPZVISVKWQ
      WRYLUUTQFZUVAUVDTYLUVFUWDUVGUUGUVEUVRUWDUVSYDUUSWCWSXIUULUVDCUUTYIQYFUUTR
      NVHUUNWTXIXAYLUVFUVCUVGUVFUVBYDUVHKHZYDRKHZYDUVFEUDDYEYDUUSQKUVQUVPUVTUWB
      UVOUWAUVNKHUVJUVLUVNKHKHLUVFUVJUVLUVNXBSXCUUGUWEUWFLUVEUUGUVHRYDKUWCXDSUV
      EUWFYDLUUGYDVGVJXEXIYHUVCCUUTYIYFUUTLYGUVBYDYFUUTYEKXFXGXHXJXKXLXMXIXNYAY
      MYPBYCUUAYLYPYJYAUUIYTYLYPWGUUJYEYDUUHYCXOURXPXQXRXSXT $.

    $( Lemma for ~ 1idpr .  (Contributed by Jim Kingdon, 13-Dec-2019.) $)
    1idpru $p |- ( A e. P. -> ( 2nd ` ( A .P. 1P ) ) = ( 2nd ` A ) ) $=
      ( vf vh vw vy wcel c1p co cfv cv cmq wceq wrex cltq wbr wa cnq c1q adantl
      wb vx vu vv vz cnp cmp c2nd wss ssid rexss ax-mp r19.42v 1pr c1st elprnqu
      cop prop sylan mpan w3a 3ad2ant3 1pru abeq2i ltmnqg mp3an1 ancoms mulidnq
      breq2 breq1d adantr bitrd syl5rbb 3adant3 syl3an1 syl3an2 3expia pm5.32rd
      1nq rexbidva syl5rbbr syl5bb df-imp mulclnq genpelvu mpan2 prnminu wi crq
      ltrelnq brel ancomd simpr simpl recclnq mulcomnqg caovord2d recidnq mpcom
      biimpd sylan2 elab2g mpbird mulassnqg caov12d oveq2d 3eqtrrd oveq2 eqeq2d
      3syl syl rspcev syl2anc ancld reximia ex prcunqu adantrd rexlimdva impbid
      a1i 3bitr4d eqrdv ) AUEFZUAAGUFHUGIZAUGIZYCUAJZBJZCJZKHZLZCGUGIZMZBYEMZYG
      YFNOZYLPZBYEMZYFYDFZYFYEFZYCYLYOBYEYLYHYKFZYJPZCYKMZYCYGYEFZPZYOYKYKUHYLU
      UATYKUIYJCYKYKUJUKYOYNYJPZCYKMUUCUUAYNYJCYKULUUCUUDYTCYKUUCYSPYJYNYSUUCYS
      YJYNYSTZYSUUCYHQFZYJUUEGUEFZYSUUFUMUUGGUNIZYKUPUEFYSUUFGUQYHYKUUHUOURUSUU
      CYGQFZUUFYJUUEYCAUNIZYEUPUEFZUUBUUIAUQZYGYEUUJUOURUUIUUFYJUTYNYGYINOZYSYJ
      UUIYNUUMTUUFYFYIYGNVHVAUUIUUFUUMYSTYJYSRYHNOZUUIUUFPZUUMUUNCYKCVBZVCUUOUU
      NYGRKHZYINOZUUMUUFUUIUUNUURTZRQFUUFUUIUUSVRRYHYGVDVEVFUUIUURUUMTUUFUUIUUQ
      YGYINYGVGVIVJVKVLVMVKVNVOVPVQVSVTWAVSYCUUGYQYMTUMDUBUCEUDAGYFBCUFKEUDUCUB
      DWBUBJUCJWCWDWEYCYRYPYCYRYPYCYRPYNBYEMZYPYCUUKYRUUTUULBYFYEUUJWFURYNYOBYE
      UUBYNYLYNYLWGUUBYNYFYGWHIZKHZYKFZYFYGUVBKHZLZYLYNUVCRUVBNOZYFQFZUUIPZYNUV
      FYNUUIUVGYGYFQQNWIWJWKZUVHYNUVFUVHYNYGUVAKHZUVBNOZUVFUVHEUDDYGYFUVANQKEJZ
      QFZUDJZQFZDJZQFUTZUVLUVNNOUVPUVLKHUVPUVNKHNOTUVHUVLUVNUVPVDSUVGUUIWLZUVGU
      UIWMZUUIUVAQFZUVGYGWNZSZUVMUVOPUVLUVNKHZUVNUVLKHLUVHUVLUVNWOSZWPUUIUVKUVF
      TUVGUUIUVJRUVBNYGWQZVISVKWSWRYNUVHUVBQFZUVCUVFTUVIUUIUVGUVTUWFUWAYFUVAWCW
      TUUNUVFCUVBYKQYHUVBRNVHUUPXAXIXBYNUVHUVEUVIUVHUVDYFUVJKHZYFRKHZYFUVHEUDDY
      GYFUVAQKUVRUVSUWBUWDUVQUWCUVPKHUVLUVNUVPKHKHLUVHUVLUVNUVPXCSXDUUIUWGUWHLU
      VGUUIUVJRYFKUWEXESUVGUWHYFLUUIYFVGVJXFXJYJUVECUVBYKYHUVBLYIUVDYFYHUVBYGKX
      GXHXKXLXTXMXNXJXOYCYOYRBYEUUCYNYRYLYCUUKUUBYNYRWGUULYFYGYEUUJXPURXQXRXSYA
      YB $.

    $( 1 is an identity element for positive real multiplication.  Theorem
       9-3.7(iv) of [Gleason] p. 124.  (Contributed by NM, 2-Apr-1996.) $)
    1idpr $p |- ( A e. P. -> ( A .P. 1P ) = A ) $=
      ( cnp wcel c1p cmp co wceq c1st cfv 1idprl 1idpru wa wb 1pr mulclpr mpan2
      c2nd preqlu mpancom mpbir2and ) ABCZADEFZAGZUBHIAHIGZUBQIAQIGZAJAKUBBCZUA
      UCUDUELMUADBCUFNADOPUBARST $.
  $}

  ${
    $d q r s t u $.
    $( Positive real 'less than' is a partial ordering.  Remark ("< is
       transitive and irreflexive") preceding Proposition 11.2.3 of [HoTT], p.
       (varies).  Lemma for ~ ltsopr .  (Contributed by Jim Kingdon,
       15-Dec-2019.) $)
    ltpopr $p |- <P Po P. $=
      ( vq vr cnp cltp wtru cv wcel wbr c2nd cfv c1st wa cnq wrex cop wb ltdfpr
      prop wi mpd vs vt vu wpo wn prdisj sylnib nrexdv anidms mtbird adantl w3a
      sylan ancom 3adant3 3adant1 anbi12d reeanv syl6bbr biimpa simprll syl3an1
      cltq prltlu 3adant3r 3adant2l 3ad2antl2 adantlr prcdnql adantrl 3ad2antl3
      3expb jca ex rexlimdvw reximdv 3adant2 biimprd adantr ispod trud ) CDUDEU
      AUBUCCDUAFZCGZWBWBDHZUEEWCWDAFZWBIJZGZWEWBKJZGZLZAMNZWCWJAMWCWEMGZLWIWGLZ
      WJWCWHWFOCGWLWMUEWBRWEWFWHUFUMWIWGUNUGUHWCWDWKPWBWBAQUIUJUKWCUBFZCGZUCFZC
      GZULZWBWNDHZWNWPDHZLZWBWPDHZSEWRXAXBWRXALZWGWEWPKJZGZLZAMNZXBXCWGWEWNKJZG
      ZLZBFZWNIJZGZXKXDGZLZLZBMNZAMNZXGWRXAXRWRXAXJAMNZXOBMNZLXRWRWSXSWTXTWCWOW
      SXSPWQWBWNAQUOWOWQWTXTPWCWNWPBQUPUQXJXOABMMURUSUTXCXQXFAMXCXPXFBMXCXPXFXC
      XPLZWGXEXCWGXIXOVAYAWEXKVCHZXEWRXPYBXAWOWCXPYBWQWOXJXOYBWOXIXOYBWGWOXIXMY
      BXNWOXHXLOCGXIXMYBWNRWEXKXLXHVDVBVEVFVLVGVHWRXPYBXESZXAWQWCXPYCWOWQXOYCXJ
      WQXNYCXMWQXDWPIJZOCGXNYCWPRXKWEYDXDVIUMVJVJVKVHTVMVNVOVPTWRXGXBSXAWRXBXGW
      CWQXBXGPWOWBWPAQVQVRVSTVNUKVTWA $.
  $}

  ${
    $d q r s x y z $.
    $( Positive real 'less than' is a weak linear order (in the sense of
       ~ df-iso ).  Proposition 11.2.3 of [HoTT], p.  (varies).  (Contributed
       by Jim Kingdon, 16-Dec-2019.) $)
    ltsopr $p |- <P Or P. $=
      ( vx vy vz vq vr vs cnp cltp cv wbr wi wcel cfv wa cnq wrex cltq sylan ex
      mpd wor wpo wo wral ltpopr w3a c2nd wb ltdfpr 3adant3 cop prnminu prnmaxl
      c1st prop anim12i an4s reeanv sylibr 3adantl3 ltsonq ltrelnq sotri adantl
      prloc 3ad2antl3 adantr ad2antrr wex elprnqu ax-ia3 19.8a syl6an 3ad2antl1
      imp df-rex biimprd 3adant2 adantrr elprnql pm3.21 3adant1 adantrl orim12d
      3ad2antl2 ancoms adantlr rexlimdvva rexlimdvw sylbid df-iso mpbir2an
      rgen3 ) GHUAGHUBAIZBIZHJZWNCIZHJZWQWOHJZUCZKZCGUDBGUDAGUDUEXAABCGGGWNGLZW
      OGLZWQGLZUFZWPDIZWNUGMZLZXFWOUNMZLZNZDOPZWTXBXCWPXLUHXDWNWODUIUJXEXKWTDOX
      EXKWTXEXKNZEIZXFQJZXFFIZQJZNZFXIPEXGPZWTXBXCXKXSXDXBXCNXKNXOEXGPZXQFXIPZN
      ZXSXBXHXCXJYBXBXHNXTXCXJNYAXBWNUNMZXGUKGLZXHXTWNUOZEXFXGYCULRXCXIWOUGMZUK
      GLZXJYAWOUOZFXFYFXIUMRUPUQXOXQEFXGXIURUSUTXMXRWTEFXGXIXMXNXGLZXPXILZNZNZX
      RWTYLXRNZXNWQUNMZLZXPWQUGMZLZUCZWTYMXNXPQJZYRXRYSYLXNXFXPQOVAVBVCVDXMYSYR
      KZYKXRXEYTXKXEYSYRXDXBYSYRXCXDYNYPUKGLYSYRWQUOXNXPYPYNVERVFSVGVHTYLYRWTKZ
      XRXEYKUUAXKXEYKNYOWRYQWSXEYIYOWRKYJXEYINZYOWRUUBYONZYIYONZEOPZWRUUCXNOLZU
      UDNZEVIZUUEUUBYOUUHXBXCYIYOUUHKXDXBYINUUFYOUUDUUHXBYDYIUUFYEXNXGYCVJRYIYO
      UUDKXBYIYOVKVDUUGEVLVMVNVOUUDEOVPUSXEUUEWRKZYIYOXBXDUUIXCXBXDNWRUUEWNWQEU
      IVQVRVHTSVSXEYJYQWSKYIXEYJNZYQWSUUJYQNZYQYJNZFOPZWSUUKXPOLZUULNZFVIZUUMUU
      JYQUUPXCXBYJYQUUPKXDXCYJNUUNYQUULUUPXCYGYJUUNYHXPYFXIVTRYJYQUULKXCYJYQWAV
      DUUOFVLVMWEVOUULFOVPUSXEUUMWSKZYJYQXCXDUUQXBXDXCUUQXDXCNWSUUMWQWOFUIVQWFW
      BVHTSWCWDWGVGTSWHTSWIWJWMABCGHWKWL $.
  $}

  ${
    $d A f g h x y p q r $.  $d B f g h x y p q r $.
    $( The sum of two positive reals is greater than one of them.  Proposition
       9-3.5(iii) of [Gleason] p. 123.  (Contributed by NM, 26-Mar-1996.)
       (Revised by Mario Carneiro, 12-Jun-2013.) $)
    ltaddpr $p |- ( ( A e. P. /\ B e. P. ) -> A <P ( A +P. B ) ) $=
      ( vp vq vr vf vg vh cnp wcel wa cv c1st cfv cnq wrex c2nd cop prop sylan
      vx vy cpp co cltp wbr prml syl cplq cltq prarloc ad2ant2r elprnqu adantlr
      adantl ad2ant2rl adantr simplrr wi simprl simplr jca df-iplp addclnq syl5
      genpprecll imdistani addclpr prcdnql anassrs imp rspe wb ltdfpr ad3antrrr
      syl12anc syldan mpbird ex rexlimdvva mpd rexlimddv ) AIJZBIJZKZCLZBMNZJZA
      ABUCUDZUEUFZCOWDWHCOPZWCWDWGBQNZRIJWKBSCWLWGUGUHUOWEWFOJZWHKZKZDLZELZWFUI
      UDZUJUFZDAQNZPEAMNZPZWJWCWMXBWDWHWCXAWTRIJZWMXBASZWFWTXAEDUKTULWOWSWJEDXA
      WTWOWQXAJZWPWTJZKZKZWSWJXHWSKZWJXFWPWIMNZJZKZDOPZXIWPOJZXFXKXMXHXNWSWEXFX
      NWNXEWCXFXNWDWCXCXFXNXDWPWTXAUMTUNUPUQWOXEXFWSURXHWSXKWEWNXGWSXKUSZWEWNXG
      KZKWEWRXJJZKXOWEXPXQXPXEWHKWEXQXPXEWHWNXEXFUTWMWHXGVAVBFGHUAUBABWQWFUCUIU
      AUBHGFVCGLHLVDVFVEVGWEWIIJZXQXOABVHZXRXJWIQNZRIJXQXOWISWRWPXTXJVITTUHVJVK
      XLDOVLVPWEWJXMVMZWNXGWSWCWDXRYAXSAWIDVNVQVOVRVSVTWAWB $.
  $}

  ${
    $d x y z w u v f g h q r s t A $.  $d x y z w u v f g h q r s t B $.
    $d x y z w u v f g h q r s t C $.
    ltexprlem.1 $e |- C = <. { x e. Q. | E. y (
      y e. ( 2nd ` A ) /\ ( y +Q x ) e. ( 1st ` B ) ) } , { x e. Q. | E. y (
      y e. ( 1st ` A ) /\ ( y +Q x ) e. ( 2nd ` B ) ) } >. $.
    $( Element in lower cut of the constructed difference.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemell $p |- ( q e. ( 1st ` C ) <-> ( q e. Q. /\
        E. y ( y e. ( 2nd ` A ) /\ ( y +Q q ) e. ( 1st ` B ) ) ) ) $=
      ( cv c2nd cfv wcel cplq co c1st wa wex cnq crab nqex rabex wceq oveq2 cop
      eleq1d anbi2d exbidv fveq2i op1st eqtri elrab2 ) BHZCIJKZUKAHZLMZDNJZKZOZ
      BPZULUKFHZLMZUOKZOZBPAUSQENJZUMUSUAZUQVBBVDUPVAULVDUNUTUOUMUSUKLUBUDUEUFV
      CURAQRZUKCNJKUNDIJKOBPZAQRZUCZNJVEEVHNGUGVEVGURAQSTVFAQSTUHUIUJ $.

    $( Element in upper cut of the constructed difference.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemelu $p |- ( r e. ( 2nd ` C ) <-> ( r e. Q. /\
        E. y ( y e. ( 1st ` A ) /\ ( y +Q r ) e. ( 2nd ` B ) ) ) ) $=
      ( cv c1st cfv wcel cplq co c2nd wa wex cnq crab nqex rabex wceq oveq2 cop
      eleq1d anbi2d exbidv fveq2i op2nd eqtri elrab2 ) BHZCIJKZUKAHZLMZDNJZKZOZ
      BPZULUKFHZLMZUOKZOZBPAUSQENJZUMUSUAZUQVBBVDUPVAULVDUNUTUOUMUSUKLUBUDUEUFV
      CUKCNJKUNDIJKOBPZAQRZURAQRZUCZNJVGEVHNGUGVFVGVEAQSTURAQSTUHUIUJ $.

    $( Our constructed difference is inhabited.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemm $p |- ( A <P B -> ( E. q e. Q. q e. ( 1st ` C ) /\
        E. r e. Q. r e. ( 2nd ` C ) ) ) $=
      ( vw cv cfv wcel cnq wrex wa wex cnp sylan syl sylibr cltp c1st c2nd cplq
      wbr co ltrelpr brel ltdfpr biimpd mpcom simprrl simprd wceq cltq cop prop
      prnmaxl ltexnqi reximi sylib r19.42v exbii eleq1 biimparc exlimiv adantrl
      df-rex jca expr reximdva mpd rexbii rexcom simpld elprnqu pm4.71rd anbi1d
      ex anass syl6bb exbidv rexbidv syl6bbr mpbird ltexprlemell wss ssid rexss
      wb ax-mp bitr4i nfv nfre1 prmu rexex 3syl prml adantr w3a 3adant3 elprnql
      simp3 3adant2 addcomnqg syl2anc ltaddnq eqeltrrd 19.8a ltexprlemelu 3expa
      wi prcunqu exlimddv exlimdd ) CDUAUEZGJZEUBKLZGMNZFJZEUCKLZFMNZXPBJZCUCKZ
      LZYCXQUDUFZDUBKZLZOZBPZGMNZXSXPYKYIBMNZGMNZXPYIGMNZBMNZYMXPYEYHGMNZOZBMNZ
      YOXPYEYCYGLZOZBMNZYRCQLZDQLZOZXPUUACDQQUAUGUHZUUDXPUUACDBUIUJUKXPYTYQBMXP
      YCMLZYTYQXPUUFYTOOYEYPXPUUFYEYSULXPYTYPUUFXPYSYPYEXPUUCYSYPXPUUBUUCUUEUMZ
      UUCYSOZIJZYGLZYFUUIUNZOZGMNZIPZYPUUHUUJUUKGMNZOZIPZUUNUUHUUOIYGNZUUQUUHYC
      UUIUOUEZIYGNZUURUUCYGDUCKZUPQLZYSUUTDUQZIYCUVAYGURRUUSUUOIYGGYCUUIUSUTSUU
      OIYGVHVAUUMUUPIUUJUUKGMVBVCTUUMYPIUULYHGMUUKYHUUJYFUUIYGVDVEUTVFSRVGVGVIV
      JVKVLYNYQBMYEYHGMVBVMTYIBGMMVNVAXPYKUUFYIOZBPZGMNYMXPYJUVEGMXPYIUVDBXPYIU
      UFYEOZYHOUVDXPYEUVFYHXPYEUUFXPYEUUFXPUUBYEUUFXPUUBUUCUUEVOZUUBCUBKZYDUPQL
      ZYEUUFCUQZYCYDUVHVPRRVSVQVRUUFYEYHVTWAWBWCYLUVEGMYIBMVHVMWDWEXSXQMLYJOZGM
      NZYKXRUVKGMABCDEGHWFVMMMWGYKUVLWJMWHYJGMMWIWKWLTXPXTUVALZYBFXPFWMYAFMWNXP
      UUCUVBUVMFPZUUGUVCUVBUVMFMNUVNFUVAYGWOUVMFMWPSWQXPUVMOZXTMLZYAOZFPZYBUVOU
      VPYAUVRXPUUCUVMUVPUUGUUCUVBUVMUVPUVCXTUVAYGVPRRZUVOYCUVHLZYABXPUVTBPZUVMX
      PUUBUVTBMNZUWAUVGUUBUVIUWBUVJBYDUVHWRSUVTBMWPWQWSXPUVMUVTYAXPUVMUVTWTZUVP
      UVTYCXTUDUFZUVALZOZBPZOYAUWCUVPUWGXPUVMUVPUVTUVSXAZUWCUVTUWEUWGXPUVMUVTXC
      UWCXTYCUDUFZUWDUVAUWCUVPUUFUWIUWDUNUWHXPUVTUUFUVMXPUUBUVTUUFUVGUUBUVIUVTU
      UFUVJYCYDUVHXBRRXDZXTYCXEXFUWCXTUWIUOUEZUWIUVALZUWCUVPUUFUWKUWHUWJXTYCXGX
      FXPUVMUWKUWLXLZUVTXPUUCUVMUWMUUGUUCUVBUVMUWMUVCUWIXTUVAYGXMRRXAVLXHUWFBXI
      XFVIABCDEFHXJTXKXNUVQFXIXFYAFMVHTXOVI $.

    $( The lower cut of our constructed difference is open.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemopl $p |- ( ( A <P B /\ q e. Q. /\ q e. ( 1st ` C ) )
        -> E. r e. Q. ( q <Q r /\ r e. ( 1st ` C ) ) ) $=
      ( vs wbr cv cnq wcel cfv cltq wa wrex wex cnp syl2anc cltp c1st c2nd cplq
      ltexprlemell simprbi 19.42v anbi2i bitri ltrelpr brel simprd prop prnmaxl
      co cop sylan adantrl wceq simpld ad2antrr simplrr elprnqu simplrl ltaddnq
      simprr ltsonq ltrelnq sotri wb simprl elprnql ltexnqq mpbid adantr ltanqg
      breqtrrd syl3anc mpbird eqeltrd jca jca32 reximdva rexlimddv eximi sylbir
      expr mpd rexcom4 sylibr rexbii sylib sylanr2 3impb ) CDUAJZGKZLMZWPEUBNZM
      ZWPFKZOJZWTWRMZPZFLQZWSWOWQBKZCUCNZMZXEWPUDUOZDUBNZMZPZBRZXDWSWQXLABCDEGH
      UEUFWOWQXLPZPZXAWTLMZXGXEWTUDUOZXIMZPZBRPZPZFLQZXDXNXAXOXRPZPZBRZFLQZYAXN
      YCFLQZBRZYEXNWOWQXKPZPZBRZYGYJWOYHBRZPXNWOYHBUGYKXMWOWQXKBUGUHUIYIYFBYIXH
      IKZOJZYFIXIWOXKYMIXIQZWQWOXJYNXGWODSMZXJYNWOCSMZYOCDSSUAUJUKZULZYOXIDUCNZ
      UPSMZXJYNDUMZIXHYSXIUNUQUQURURYIYLXIMZYMPZPZXPYLUSZFLQZYFUUDXEYLOJZUUFUUD
      XEXHOJZYMUUGUUDXELMZWQUUHUUDYPXGUUIWOYPYHUUCWOYPYOYQUTVAUUDXGXJWOWQXKUUCV
      BUTZYPCUBNZXFUPSMXGUUICUMXEXFUUKVCUQTZWOWQXKUUCVDZXEWPVETYIUUBYMVFXEXHYLO
      LVGVHVITUUDUUIYLLMZUUGUUFVJUULUUDYOUUBUUNWOYOYHUUCYRVAYIUUBYMVKYOYTUUBUUN
      UUAYLYSXIVLUQTFXEYLVMTVNUUDUUEYCFLUUDXOUUEYCUUDXOUUEPZPZXAXOXRUUPXAXHXPOJ
      ZUUPXHYLXPOYIUUBYMUUOVBUUDXOUUEVFZVQUUPWQXOUUIXAUUQVJUUDWQUUOUUMVOUUDXOUU
      EVKZUUDUUIUUOUULVOWPWTXEVPVRVSUUSUUPXGXQUUDXGUUOUUJVOUUPXPYLXIUURYIUUBYMU
      UOVDVTWAWBWGWCWHWDWEWFYCFBLWIWJYDXTFLYDXAYBBRZPXTXAYBBUGUUTXSXAXOXRBUGUHU
      IWKWLXCXTFLXBXSXAABCDEFHUEUHWKWJWMWN $.

    $( The lower cut of our constructed difference is lower.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemlol $p |- ( ( A <P B /\ q e. Q. ) ->
        ( E. r e. Q. ( q <Q r /\ r e. ( 1st ` C ) ) -> q e. ( 1st ` C ) ) ) $=
      ( wbr cv cnq wcel wa c1st cfv wex cnp sylan 19.42v bitr4i cltp co simprrr
      cltq c2nd cplq simplr simpld simprl ltrelpr brel cop prop elprnqu syl2anc
      simpll ltanqi wi simprd syl prcdnql mpd jca32 ltexprlemell anbi2i 3imtr4i
      eximi ex rexlimdvw ) CDUAIZGJZKLZMZVKFJZUDIZVNENOZLZMZVKVPLZFKVMVRVSVMVOV
      NKLZBJZCUEOZLZWAVNUFUBZDNOZLZMZMZMZMZBPZVLWCWAVKUFUBZWELZMZMZBPZVMVRMZVSW
      JWOBWJVLWCWMVJVLWIUGWJWCWFVMVOVTWGUCZUHZWJWLWDUDIZWMWJVOWAKLZWTVMVOWHUIWJ
      VJWCXAVJVLWIUPZWSVJCQLZWCXAVJXCDQLZCDQQUAUJUKZUHXCCNOZWBULQLWCXACUMWAWBXF
      UNRRUOVKVNWAUQUOWJXDWFWTWMURZWJVJXDXBVJXCXDXEUSUTWJWCWFWRUSXDWEDUEOZULQLW
      FXGDUMWDWLXHWEVARUOVBVCVGWQVMWIBPZMWKVRXIVMVRVOWHBPZMXIVQXJVOVQVTWGBPMXJA
      BCDEFHVDVTWGBSTVEVOWHBSTVEVMWIBSTVSVLWNBPMWPABCDEGHVDVLWNBSTVFVHVI $.

    $( The upper cut of our constructed difference is open.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemopu $p |- ( ( A <P B /\ r e. Q. /\ r e. ( 2nd ` C ) )
        -> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` C ) ) ) $=
      ( vs wbr cv cnq wcel cfv cltq wa wrex wex cnp adantr vt cltp c2nd c1st co
      cplq ltexprlemelu simprbi 19.42v anbi2i bitri cop ltrelpr brel simprd syl
      prnminu sylan adantrl ltdfpr biimpd mpcom ad2antrr simpld simplrr simprrl
      prop prltlu syl3an1 syl3anc simplll simprrr simplrl ltrelnq sotri syl2anc
      ltsonq rexlimddv wb elprnql elprnqu ad2ant2r ltexnqq mpbid simprr eqbrtrd
      wceq simprl ltanqg mpbird eqeltrd jca jca32 reximdva eximi sylbir rexcom4
      expr mpd sylibr rexbii sylib sylanr2 3impb ) CDUBJZFKZLMZXFEUCNZMZGKZXFOJ
      ZXJXHMZPZGLQZXIXEXGBKZCUDNZMZXOXFUFUEZDUCNZMZPZBRZXNXIXGYBABCDEFHUGUHXEXG
      YBPZPZXKXJLMZXQXOXJUFUEZXSMZPZBRPZPZGLQZXNYDXKYEYHPZPZBRZGLQZYKYDYMGLQZBR
      ZYOYDXEXGYAPZPZBRZYQYTXEYRBRZPYDXEYRBUIUUAYCXEXGYABUIUJUKYSYPBYSIKZXROJZY
      PIXSXEYAUUCIXSQZXGXEXTUUDXQXEDUDNZXSULSMZXTUUDXEDSMZUUFXECSMZUUGCDSSUBUMU
      NZUODVGUPZIXRXSUUEUQURUSUSYSUUBXSMZUUCPZPZYFUUBWGZGLQZYPUUMXOUUBOJZUUOUUM
      UAKZCUCNZMZUUQUUEMZPZUUPUALXEUVAUALQZYRUULUUHUUGPZXEUVBUUIUVCXEUVBCDUAUTV
      AVBVCUUMUUQLMZUVAPZPZXOUUQOJZUUQUUBOJZUUPUVFUUHXQUUSUVGUUMUUHUVEXEUUHYRUU
      LXEUUHUUGUUIVDVCZTUUMXQUVEUUMXQXTXEXGYAUULVEVDZTUUMUVDUUSUUTVFUUHXPUURULS
      MZXQUUSUVGCVGZXOUUQUURXPVHVIVJUVFXEUUTUUKUVHXEYRUULUVEVKUUMUVDUUSUUTVLYSU
      UKUUCUVEVMXEUUFUUTUUKUVHUUJUUQUUBXSUUEVHVIVJXOUUQUUBOLVQVNVOVPVRUUMXOLMZU
      UBLMZUUPUUOVSUUMUUHXQUVMUVIUVJUUHUVKXQUVMUVLXOUURXPVTURVPZXEUUKUVNYRUUCXE
      UUFUUKUVNUUJUUBXSUUEWAURWBGXOUUBWCVPWDUUMUUNYMGLUUMYEUUNYMUUMYEUUNPZPZXKY
      EYHUVQXKYFXROJZUVQYFUUBXROUUMYEUUNWEZYSUUKUUCUVPVEWFUVQYEXGUVMXKUVRVSUUMY
      EUUNWHZUUMXGUVPXEXGYAUULVMTUUMUVMUVPUVOTXJXFXOWIVJWJUVTUVQXQYGUUMXQUVPUVJ
      TUVQYFUUBXSUVSYSUUKUUCUVPVMWKWLWMWRWNWSVRWOWPYMGBLWQWTYNYJGLYNXKYLBRZPYJX
      KYLBUIUWAYIXKYEYHBUIUJUKXAXBXMYJGLXLYIXKABCDEGHUGUJXAWTXCXD $.

    $( The upper cut of our constructed difference is upper.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemupu $p |- ( ( A <P B /\ r e. Q. ) -> (
        E. q e. Q. ( q <Q r /\ q e. ( 2nd ` C ) ) ->
        r e. ( 2nd ` C ) ) ) $=
      ( wbr cv cnq wcel wa c2nd cfv wex cnp syl2anc 19.42v bitr4i simplr simpld
      cltp cltq c1st cplq simprrr simprl simpll simprrl adantl cop ltrelpr brel
      co prop syl elprnql sylan ltanqi wi simprd prcunqu mpd jca32 ltexprlemelu
      eximi anbi2i 3imtr4i ex rexlimdvw ) CDUCIZFJZKLZMZGJZVMUDIZVPENOZLZMZVMVR
      LZGKVOVTWAVOVQVPKLZBJZCUEOZLZWCVPUFUOZDNOZLZMZMZMZMZBPZVNWEWCVMUFUOZWGLZM
      ZMZBPZVOVTMZWAWLWQBWLVNWEWOVLVNWKUAWLWEWHVOVQWBWIUGZUBWLWFWNUDIZWOWLVQWCK
      LZXAVOVQWJUHWLVLWEXBVLVNWKUIZWKWEVOVQWBWEWHUJUKVLWDCNOZULQLZWEXBVLCQLZXEV
      LXFDQLZCDQQUCUMUNZUBCUPUQWCXDWDURUSRVPVMWCUTRWLXGWHXAWOVAZWLVLXGXCVLXFXGX
      HVBUQWLWEWHWTVBXGDUEOZWGULQLWHXIDUPWNWFWGXJVCUSRVDVEVGWSVOWKBPZMWMVTXKVOV
      TVQWJBPZMXKVSXLVQVSWBWIBPMXLABCDEGHVFWBWIBSTVHVQWJBSTVHVOWKBSTWAVNWPBPMWR
      ABCDEFHVFVNWPBSTVIVJVK $.

    $( Our constructed difference is rounded.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemrnd $p |- ( A <P B -> ( A. q e. Q. ( q e. ( 1st ` C )
        <-> E. r e. Q. ( q <Q r /\ r e. ( 1st ` C ) ) )
        /\ A. r e. Q. ( r e. ( 2nd ` C )
        <-> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` C ) ) ) ) ) $=
      ( wbr cv cfv wcel wa cnq wrex wb wral 3expia impbid ralrimiva cltp c1st
      cltq c2nd ltexprlemopl ltexprlemlol ltexprlemopu ltexprlemupu jca ) CDUAI
      ZGJZEUBKZLZUKFJZUCIZUNULLMFNOZPZGNQUNEUDKZLZUOUKURLMGNOZPZFNQUJUQGNUJUKNL
      ZMUMUPUJVBUMUPABCDEFGHUERABCDEFGHUFSTUJVAFNUJUNNLZMUSUTUJVCUSUTABCDEFGHUG
      RABCDEFGHUHSTUI $.

    $( Our constructed difference is disjoint.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemdisj $p |- ( A <P B -> A. q e. Q.
        -. ( q e. ( 1st ` C ) /\ q e. ( 2nd ` C ) ) ) $=
      ( vz wbr cv cfv wcel wa wn cnq cplq co cltq cnp wex vf cltp c1st c2nd wal
      vg ltsonq ltrelnq son2lpi cop ltrelpr brel simprd prop syl prltlu syl3an1
      vh 3expb adantlr adantrll adantrrl w3a ltanqg adantl simpld elprnqu sylan
      ad2ant2r adantrr elprnql adantrl simplr addcomnqg caovord2d mpbird 3com23
      wb wceq adantrlr adantrrr mtoi alrimivv ltexprlemell ltexprlemelu anbi12i
      jca ex anandi bitr4i baib eleq1 oveq1 eleq1d anbi12d cbvexv anbi2i syl6bb
      eeanv syl6bbr notbid alnex albii bitri ralrimiva ) CDUBIZFJZEUCKLZXGEUDKL
      ZMZNZFOXFXGOLZMZXKBJZCUDKZLZXNXGPQZDUCKZLZMZHJZCUCKZLZYAXGPQZDUDKZLZMZMZN
      ZHUEZBUEZXMYIBHXMYHXNYARIZYAXNRIZMZXNYAROUGUHUIXMYHYNXMYHMZYLYMYOYLXQYDRI
      ZXMXTYFYPYCXMXSYFYPXPXFXSYFMYPXLXFXSYFYPXFXRYEUJSLZXSYFYPXFDSLZYQXFCSLZYR
      CDSSUBUKULZUMDUNUOXQYDYEXRUPUQUSUTVAVBYOUAUFURXNYAXGROPUAJZOLZUFJZOLZURJZ
      OLVCUUAUUCRIUUEUUAPQUUEUUCPQRIVRYOUUAUUCUUEVDVEXMXTXNOLZYGXFXPUUFXLXSXFYB
      XOUJSLZXPUUFXFYSUUGXFYSYRYTVFCUNUOZXNXOYBVGVHVIVJXMYGYAOLZXTXFYCUUIXLYFXF
      UUGYCUUIUUHYAXOYBVKVHVIVLXFXLYHVMUUBUUDMUUAUUCPQUUCUUAPQVSYOUUAUUCVNVEVOV
      PXMXTYCYMYFXMXPYCYMXSXFXPYCMYMXLXFXPYCYMXFYCXPYMXFUUGYCXPYMUUHYAXNXOYBUPU
      QVQUSUTVTWAWGWHWBWCXLXKYKVRXFXLXKYHHTZBTZNZYKXLXJUUKXLXJXTBTZYGHTZMZUUKXL
      XJUUMXNYBLZXQYELZMZBTZMZUUOXJXLUUTXJXLUUMMZXLUUSMZMXLUUTMXHUVAXIUVBABCDEF
      GWDABCDEFGWEWFXLUUMUUSWIWJWKUUSUUNUUMUURYGBHXNYAVSZUUPYCUUQYFXNYAYBWLUVCX
      QYDYEXNYAXGPWMWNWOWPWQWRXTYGBHWSWTXAYKUUJNZBUEUULYJUVDBYHHXBXCUUJBXBXDWTV
      EVPXE $.

    $( Our constructed difference is located.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemloc $p |- ( A <P B -> A. q e. Q. A. r e. Q. ( q <Q r
        -> ( q e. ( 1st ` C ) \/ r e. ( 2nd ` C ) ) ) ) $=
      ( vz wbr cv cltq wcel wo cnq wa cplq co wrex wb vw vf vg vh cltp c1st cfv
      c2nd wi wral wceq ltexnqi adantl cnp ltrelpr brel simpld cop prop prarloc
      sylan ad2ant2r simprd ad2antrr w3a ltanqg elprnqu adantlr elprnql simplrl
      ad2ant2rl addclnq syl2anc ltrelnq addcomnqg syl3anc oveq2d simplrr 3eqtrd
      caovord2d addassnqg breq2d bitrd biimpa prloc anassrs reximdva prml rexex
      ex 3syl r19.45mv adantr prmu r19.9rmv orbi2d r19.43 syl6rbbr rexbidv ibar
      wex orbi12d syl ltexprlemell ltexprlemelu eleq1 oveq1 eleq1d cbvexv bitri
      anbi12d anbi2i orbi12i syl6bbr 3bitr4rd sylibrd mpd rexlimddv ralrimivw
      df-rex ) CDUEJZGKZFKZLJZYBEUFUGMZYCEUHUGMZNZUIZFOUJGOYAYHFOYAYDYGYAYDPZYB
      UAKZQRZYCUKZYGUAOYDYLUAOSYAUAYBYCULUMYIYJOMZYLPZPZBKZIKZYJQRZLJZBCUHUGZSZ
      ICUFUGZSZYGYAYMUUCYDYLYACUNMZYMUUCYAUUDDUNMZCDUNUNUEUOUPZUQZUUDUUBYTURUNM
      ZYMUUCCUSZYJYTUUBIBUTVAVAVBYOUUCYPYBQRZDUFUGZMZYQYCQRZDUHUGZMZNZBYTSZIUUB
      SZYGYOUUAUUQIUUBYOYQUUBMZPYSUUPBYTYOUUSYPYTMZYSUUPUIYOUUSUUTPZPZYSUUPUVBY
      SPUUEUUJUUMLJZUUPYOUUEUVAYSYAUUEYDYNYAUUDUUEUUFVCVDVDUVBYSUVCUVBYSUUJYRYB
      QRZLJUVCUVBUBUCUDYPYRYBLOQUBKZOMZUCKZOMZUDKZOMVEUVEUVGLJUVIUVEQRUVIUVGQRL
      JTUVBUVEUVGUVIVFUMYIUUTYPOMZYNUUSYAUUTUVJYDYAUUDUUTUVJUUGUUDUUHUUTUVJUUIY
      PYTUUBVGVAVAVHVKUVBYQOMZYMYROMYIUUSUVKYNUUTYAUUSUVKYDYAUUDUUSUVKUUGUUDUUH
      UUSUVKUUIYQYTUUBVIVAVAVHVBZYIYMYLUVAVJZYQYJVLVMYIYBOMZYNUVAYDUVNYAYDUVNYC
      OMZYBYCOOLVNUPZUQUMVDZUVFUVHPUVEUVGQRUVGUVEQRUKUVBUVEUVGVOUMVTUVBUVDUUMUU
      JLUVBUVDYQYJYBQRZQRZYQYKQRUUMUVBUVKYMUVNUVDUVSUKUVLUVMUVQYQYJYBWAVPUVBUVR
      YKYQQUVBYMUVNUVRYKUKUVMUVQYJYBVOVMVQUVBYKYCYQQYIYMYLUVAVRVQVSWBWCWDUUEUUK
      UUNURUNMUVCUUPDUSUUJUUMUUNUUKWEVAVMWJWFWGWGYIYGUURTYNYIUULBYTSZUUONZIUUBS
      ZUVTUUOIUUBSZNZUURYGYAUWBUWDTZYDYAUUDUUSIXAZUWEUUGUUDUUHUUSIOSUWFUUIIYTUU
      BWHUUSIOWIWKUVTUUOIUUBWLWKWMYAUURUWBTYDYAUUQUWAIUUBYAUUDAKYTMZAXAZUUQUWAT
      UUGUUDUUHUWGAOSUWHUUIAYTUUBWNUWGAOWIWKUWHUWAUVTUUOBYTSZNUUQUWHUUOUWIUVTUU
      OBAYTWOWPUULUUOBYTWQWRWKWSWMYDYGUWDTYAYDYGUUTUULPBXAZUUSUUOPZIXAZNZUWDYDU
      WMUVNUWJPZUVOUWLPZNZYGYDUVNUVOPZUWMUWPTUVPUWQUWJUWNUWLUWOUVNUWJUWNTUVOUVN
      UWJWTWMUVOUWLUWOTUVNUVOUWLWTUMXBXCYEUWNYFUWOABCDEGHXDYFUVOYPUUBMZYPYCQRZU
      UNMZPZBXAZPUWOABCDEFHXEUXBUWLUVOUXAUWKBIYPYQUKZUWRUUSUWTUUOYPYQUUBXFUXCUW
      SUUMUUNYPYQYCQXGXHXKXIXLXJXMWRUVTUWJUWCUWLUULBYTXTUUOIUUBXTXMXNUMXOWMXPXQ
      XRWJXSXS $.

    $( Our constructed difference is a positive real.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlempr $p |- ( A <P B -> C e. P. ) $=
      ( vq vr wbr cnq wcel cv c1st cfv wrex c2nd wa wb wral wex cltp cpw cxp wn
      cltq wo wi w3a cnp ltexprlemm cplq crab cop wss ssrab2 nqex elpw2 opelxpi
      co mpbir mp2an eqeltri jctil ltexprlemrnd ltexprlemdisj ltexprlemloc 3jca
      elnp1st2nd sylanbrc ) CDUAIZEJUBZVKUCZKZGLZEMNZKZGJOHLZEPNZKZHJOQZQVPVNVQ
      UEIZVQVOKQHJORGJSVSWAVNVRKZQGJORHJSQZVPWBQUDGJSZWAVPVSUFUGHJSGJSZUHEUIKVJ
      VTVMABCDEHGFUJEBLZCPNKWFALUKUSZDMNKQBTZAJULZWFCMNKWGDPNKQBTZAJULZUMZVLFWI
      VKKZWKVKKZWLVLKWMWIJUNWHAJUOWIJUPUQUTWNWKJUNWJAJUOWKJUPUQUTWIWKVKVKURVAVB
      VCVJWCWDWEABCDEHGFVDABCDEGFVEABCDEHGFVFVGEHGVHVI $.

    $( Lemma for ~ ltexpri .  One directon of our result for lower cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemfl $p |- ( A <P B -> ( 1st ` ( A +P. C ) ) C_ ( 1st ` B ) ) $=
      ( vz vw vu vf wbr co cfv cv wcel cplq cnp wa cnq cltq vg vh cltp cpp c1st
      wceq wrex ltrelpr brel simpld ltexprlempr df-iplp addclnq genpelvl simprr
      wb syl2anc c2nd wex ltexprlemell biimpi ad2antlr adantl simprd w3a prltlu
      cop prop syl3an1 3adant2r 3adant3r ltanqg ltrelnq elprnql adantrl adantrr
      syl sylan 3adant3 addcomnqg caovord2d wi prcdnql 3adant2 sylbid mpd 3expa
      exlimddv eqeltrd expr rexlimdvva ssrdv ) CDUCKZGCEUDLUEMZDUEMZWMGNZWNOZWP
      HNZINZPLZUFZIEUEMZUGHCUEMZUGZWPWOOZWMCQOZEQOZWQXDUPWMXFDQOZCDQQUCUHUIZUJZ
      ABCDEFUKZJUAUBGBCEWPHIUDPGBUBUAJULUANZUBNZUMUNUQWMXAXEHIXCXBWMWRXCOZWSXBO
      ZRZXAXEWMXPXARZRZWPWTWOWMXPXAUOXRBNZCURMZOZXSWSPLZWOOZRZWTWOOZBXRWSSOZYDB
      USZXQYFYGRZWMXOYHXNXAXOYHABCDEIFUTVAVBVCVDWMXQYDYEWMXQYDVEZWRXSTKZYEWMXQY
      AYJYCWMXPYAYJXAWMXNYAYJXOWMXCXTVGQOZXNYAYJWMXFYKXJCVHVQWRXSXTXCVFVIVJVJVK
      ZYIYJWTYBTKZYEYIJUAUBWRXSWSTSPJNZSOZXLSOZXMSOVEYNXLTKXMYNPLXMXLPLTKUPYIYN
      XLXMVLVCYIWRSOZXSSOZYIYJYQYRRYLWRXSSSTVMUIVQZUJYIYQYRYSVDWMXQYFYDWMXPYFXA
      WMXOYFXNWMXBEURMZVGQOZXOYFWMXGUUAXKEVHVQWSYTXBVNVRVOVPVSYOYPRYNXLPLXLYNPL
      UFYIYNXLVTVCWAWMYDYMYEWBZXQWMYCUUBYAWMWODURMZVGQOZYCUUBWMXHUUDWMXFXHXIVDD
      VHVQYBWTUUCWOWCVRVOWDWEWFWGWHWIWJWKWEWL $.

    $( Lemma for ~ ltexpri .  Reverse directon of our result for lower cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemrl $p |- ( A <P B -> ( 1st ` B ) C_ ( 1st ` ( A +P. C ) ) ) $=
      ( vv vz cfv co cv wcel wa cplq cnq cnp syl sylan syl2anc ad2antrr vw cltp
      vu vs vf vg vh wbr c1st cpp c2nd cop wrex ltrelpr brel prop prnmaddl cltq
      simprd simpld prarloc ad2ant2r wceq w3o simplll simplrl elprnql ad3antrrr
      adantr nqtri3or wb ltexnqq biimpa simprr wex simprl simpr simplrr prcunqu
      wi mpd addcomnqg adantl w3a addassnqg caov32d oveq1 eleq1d mpbird eqeltrd
      eleq1 anbi12d spcegv anabsi5 ltexprlemell sylanbrc ltexprlempr genpprecll
      df-iplp addclnq mp2and eqeltrrd rexlimddv ex ltaddpr ltprordil sseld sylc
      prcdnql sylsyld 3jaod rexlimdvva ssrdv ) CDUBUHZUADUIIZCEUJJZUIIZXNUAKZXO
      LZXRXQLZXNXSMZXRGKZNJZXOLZXTGOXNXODUKIZULPLZXSYDGOUMXNDPLZYFXNCPLZYGCDPPU
      BUNUOZUSDUPQZGXRYEXOUQRYAYBOLZYDMZMZUCKZHKZYBNJZURUHZUCCUKIZUMHCUIIZUMZXT
      XNYKYTXSYDXNYSYRULPLZYKYTXNYHUUAXNYHYGYIUTZCUPQZYBYRYSHUCVARVBYMYQXTHUCYS
      YRYMYOYSLZYNYRLZMZMZYQXTUUGYQMZYOXRURUHZYOXRVCZXRYOURUHZVDZXTUUHYOOLZXROL
      ZUULUUHXNUUDUUMUUGXNYQXNXSYLUUFVEZVIZYMUUDUUEYQVFZXNUUAUUDUUMUUCYOYRYSVGR
      SZYAUUNYLUUFYQXNYFXSUUNYJXRYEXOVGRVHZYOXRVJSUUHUUIXTUUJUUKUUHUUIXTUUHUUIM
      ZYOUDKZNJZXRVCZXTUDOUUHUUIUVCUDOUMZUUHUUMUUNUUIUVDVKUURUUSUDYOXRVLSVMUUTU
      VAOLZUVCMZMZUVBXRXQUUTUVEUVCVNZUVGUUDUVAEUIILZUVBXQLZUUHUUDUUIUVFUUQTUVGU
      VEBKZYRLZUVKUVANJZXOLZMZBVOZUVIUUTUVEUVCVPZUVGYPYRLZYPUVANJZXOLZUVPUUHUVR
      UUIUVFUUHYQUVRUUGYQVQUUHXNUUEYQUVRVTZUUPYMUUDUUEYQVRXNUUAUUEUWAUUCYPYNYRY
      SVSRSWATUVGUVSUVBYBNJZXOUVGUEUFUGYOYBUVAONUUHUUMUUIUVFUURTUUGYKYQUUIUVFYA
      YKYDUUFVFVHUVQUEKZOLZUFKZOLZMUWCUWENJZUWEUWCNJVCUVGUWCUWEWBWCUWDUWFUGKZOL
      WDUWGUWHNJUWCUWEUWHNJNJVCUVGUWCUWEUWHWEWCWFUVGUWBXOLZYDUUGYDYQUUIUVFYAYKY
      DUUFVRVHUVGUVCUWIYDVKUVHUVCUWBYCXOUVBXRYBNWGWHQWIWJUVRUVTUVPUVOUVRUVTMBYP
      YRUVKYPVCZUVLUVRUVNUVTUVKYPYRWKUWJUVMUVSXOUVKYPUVANWGWHWLWMWNSABCDEUDFWOW
      PUVGYHEPLZUUDUVIMUVJVTUUHYHUUIUVFUUHXNYHUUPUUBQTUUHUWKUUIUVFUUHXNUWKUUPAB
      CDEFWQZQTHUEGAUACEYOUVAUJNAUAGUEHWSUWCYBWTWRSXAXBXCXDUUHUUJXTUUHUUJMZXNXR
      YSLZXTUUGXNYQUUJUUOTUWMYOXRYSUUHUUJVQUUHUUDUUJUUQVIXBXNCXPUBUHZUWNXTVTXNY
      HUWKUWOUUBUWLCEXESUWOYSXQXRCXPXFXGQZXHXDUUHXNUUKUWNXTUUPUUHXNUUDUUKUWNVTZ
      UUPUUQXNUUAUUDUWQUUCYOXRYRYSXIRSUWPXJXKWAXDXLWAXCXDXM $.

    $( Lemma for ~ ltexpri .  One direction of our result for upper cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemfu $p |- ( A <P B -> ( 2nd ` ( A +P. C ) ) C_ ( 2nd ` B ) ) $=
      ( vz vw vu vf wbr co cfv cv wcel cplq cnp wa cnq cltq vg vh cltp cpp c2nd
      wceq wrex ltrelpr brel simpld ltexprlempr df-iplp addclnq genpelvu simprr
      wb syl2anc c1st wex ltexprlemelu biimpi ad2antlr simprd adantl w3a prltlu
      cop prop syl syl3an1 3com23 3adant2r ltanqg elprnql sylan adantrr 3adant2
      3adant3r elprnqu 3adant3 adantrl addcomnqg caovord2d prcunqu sylbid 3expa
      wi mpd exlimddv eqeltrd expr rexlimdvva ssrdv ) CDUCKZGCEUDLUEMZDUEMZWNGN
      ZWOOZWQHNZINZPLZUFZIEUEMZUGHCUEMZUGZWQWPOZWNCQOZEQOZWRXEUPWNXGDQOZCDQQUCU
      HUIZUJZABCDEFUKZJUAUBGBCEWQHIUDPGBUBUAJULUANZUBNZUMUNUQWNXBXFHIXDXCWNWSXD
      OZWTXCOZRZXBXFWNXQXBRZRZWQXAWPWNXQXBUOXSBNZCURMZOZXTWTPLZWPOZRZXAWPOZBXRY
      EBUSZWNXRWTSOZYGXPYHYGRZXOXBXPYIABCDEIFUTVAVBVCVDWNXRYEYFWNXRYEVEZXTWSTKZ
      YFWNXRYBYKYDWNXQYBYKXBWNXOYBYKXPWNYBXOYKWNYAXDVGQOZYBXOYKWNXGYLXKCVHVIZXT
      WSXDYAVFVJVKVLVLVRYJYKYCXATKZYFYJJUAUBXTWSWTTSPJNZSOZXMSOZXNSOVEYOXMTKXNY
      OPLXNXMPLTKUPYJYOXMXNVMVDWNYEXTSOZXRWNYBYRYDWNYLYBYRYMXTXDYAVNVOVPVQWNXRW
      SSOZYEWNXQYSXBWNXOYSXPWNYLXOYSYMWSXDYAVSVOVPVPVTWNXRYHYEWNXQYHXBWNXPYHXOW
      NEURMZXCVGQOZXPYHWNXHUUAXLEVHVIWTXCYTVSVOWAVPVTYPYQRYOXMPLXMYOPLUFYJYOXMW
      BVDWCWNYEYNYFWGZXRWNYDUUBYBWNDURMZWPVGQOZYDUUBWNXIUUDWNXGXIXJVCDVHVIXAYCW
      PUUCWDVOWAVQWEWHWFWIWJWKWLWEWM $.

    $( Lemma for ~ ltexpri .  One direction of our result for upper cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemru $p |- ( A <P B -> ( 2nd ` B ) C_ ( 2nd ` ( A +P. C ) ) ) $=
      ( vv vz wbr cfv co cv wcel wa cltq cnp syl cplq cnq ad2antrr vw cltp c2nd
      vt vu vs vq vf vg vh cpp c1st wrex ltrelpr brel simprd prop prnminu sylan
      cop wceq simprr wb elprnqu ad2ant2r adantr ltexnqq syl2anc simpld prarloc
      mpbid adantlr simplll ltdfpr biimpd mpcom simplrl simprrl syl3an1 syl3anc
      prltlu simprrr ltsonq ltrelnq sotri rexlimddv ltexnqi oveq1 eqeq1d mpbird
      simplrr elprnql simprl addcomnqg adantl w3a addassnqg caov32d prcunqu mpd
      simpr wi wex eqeltrd eleq1 eleq1d anbi12d spcegv ltexprlemelu ltexprlempr
      anabsi5 sylanbrc df-iplp addclnq genppreclu mp2and eqeltrrd ex rexlimdvva
      ssrdv ) CDUBIZUADUCJZCEUKKUCJZYAUALZYBMZYDYCMZYAYENZUDLZYDOIZYFUDYBYADULJ
      ZYBUTPMZYEYIUDYBUMYADPMZYKYACPMZYLCDPPUBUNUOZUPDUQQZUDYDYBYJURUSYGYHYBMZY
      INZNZYHGLZRKZYDVAZYFGSYRYIUUAGSUMZYGYPYIVBYRYHSMZYDSMZYIUUBVCYAYPUUCYEYIY
      AYKYPUUCYOYHYBYJVDUSVEYGUUDYQYAYKYEUUDYOYDYBYJVDUSVFGYHYDVGVHVKYRYSSMZUUA
      NZNZUELZHLZYSRKZOIZUECUCJZUMHCULJZUMZYFYGUUEUUNYQUUAYAUUEUUNYEYAUUMUULUTP
      MZUUEUUNYAYMUUOYAYMYLYNVIZCUQQZYSUULUUMHUEVJUSVLVEUUGUUKYFHUEUUMUULUUGUUI
      UUMMZUUHUULMZNZNZUUKYFUVAUUKNZUUIUFLZRKZYHVAZYFUFSUVBUUIYHOIZUVEUFSUMUVBU
      GLZUULMZUVGYJMZNZUVFUGSUVBYAUVJUGSUMZUUGYAUUTUUKYAYEYQUUFVMZTZYMYLNZYAUVK
      YNUVNYAUVKCDUGVNVOVPQUVBUVGSMZUVJNZNZUUIUVGOIZUVGYHOIZUVFUVQYAUURUVHUVRUV
      AYAUUKUVPUUGYAUUTUVLVFZTZUVBUURUVPUUGUURUUSUUKVQZVFUVBUVOUVHUVIVRYAUUOUUR
      UVHUVRUUQUUIUVGUULUUMWAVSVTUVQYAUVIYPUVSUWAUVBUVOUVHUVIWBUVAYPUUKUVPUUGYP
      UUTYGYPYIUUFVQVFZTYAYKUVIYPUVSYOUVGYHYBYJWAVSVTUUIUVGYHOSWCWDWEVHWFUFUUIY
      HWGQUVBUVCSMZUVENZNZUVDYSRKZYDYCUWFUWGYDVAZUUAUVAUUAUUKUWEYRUUEUUAUUTWKTU
      WFUVEUWHUUAVCUVBUWDUVEVBZUVEUWGYTYDUVDYHYSRWHWIQWJUWFUUJUVCRKZUWGYCUWFUHU
      IUJUUIYSUVCSRUVAUUISMZUUKUWEYRUUTUWKUUFYGUURUWKYQUUSYAUURUWKYEYAUUOUURUWK
      UUQUUIUULUUMWLUSVLVEVLTUVAUUEUUKUWEYRUUEUUAUUTVQTUVBUWDUVEWMZUHLZSMZUILZS
      MZNUWMUWORKZUWOUWMRKVAUWFUWMUWOWNWOUWNUWPUJLZSMWPUWQUWRRKUWMUWOUWRRKRKVAU
      WFUWMUWOUWRWQWOWRUWFUUJUULMZUVCEUCJMZUWJYCMZUVBUWSUWEUVBUUKUWSUVAUUKXAUVB
      YAUUSUUKUWSXBZUVMUUGUURUUSUUKWKYAUUOUUSUXBUUQUUJUUHUULUUMWSUSVHWTVFUWFUWD
      BLZUUMMZUXCUVCRKZYBMZNZBXCZUWTUWLUWFUURUVDYBMZUXHUVBUURUWEUWBVFUWFUVDYHYB
      UWIUVAYPUUKUWEUWCTXDUURUXIUXHUXGUURUXINBUUIUUMUXCUUIVAZUXDUURUXFUXIUXCUUI
      UUMXEUXJUXEUVDYBUXCUUIUVCRWHXFXGXHXKVHABCDEUFFXIXLUWFYMEPMZUWSUWTNUXAXBUW
      FYAYMUVAYAUUKUWEUVTTZUUPQUWFYAUXKUXLABCDEFXJQHUHGAUACEUUJUVCUKRAUAGUHHXMU
      WMYSXNXOVHXPXQXQWFXRXSWTWFWFXRXT $.
  $}

  ${
    $d x y z u v A $.  $d x y z u v B $.
    $( Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by NM,
       13-May-1996.)  (Revised by Mario Carneiro, 14-Jun-2013.) $)
    ltexpri $p |- ( A <P B -> E. x e. P. ( A +P. x ) = B ) $=
      ( vz vy vu vv cv c2nd cfv wcel cplq co wa wex cnq crab cnp wceq eleq1d wb
      cltp wbr c1st cop cpp wrex simpr oveq12d anbi12d cbvexdva cbvrabv opeq12i
      simpl ltexprlempr ltexprlemfl ltexprlemrl ltexprlemfu ltexprlemru ltrelpr
      eqssd simpld addclpr syl2anc simprd preqlu mpbir2and oveq2 eqeq1d rspcev
      brel ) BCUBUCZDHZBIJZKZVMEHZLMZCUDJZKZNZDOZEPQZVMBUDJZKZVQCIJZKZNZDOZEPQZ
      UEZRKZBWJUFMZCSZBAHZUFMZCSZARUGFGBCWJWBGHZVNKZWQFHZLMZVRKZNZGOZFPQWIWQWCK
      ZWTWEKZNZGOZFPQWAXCEFPVPWSSZVTXBDGXHVMWQSZNZVOWRVSXAXJVMWQVNXHXIUHZTXJVQW
      TVRXJVMWQVPWSLXKXHXIUNUIZTUJUKULWHXGEFPXHWGXFDGXJWDXDWFXEXJVMWQWCXKTXJVQW
      TWEXLTUJUKULUMZUOZVLWMWLUDJZVRSZWLIJZWESZVLXOVRFGBCWJXMUPFGBCWJXMUQVAVLXQ
      WEFGBCWJXMURFGBCWJXMUSVAVLWLRKZCRKZWMXPXRNUAVLBRKZWKXSVLYAXTBCRRUBUTVKZVB
      XNBWJVCVDVLYAXTYBVEWLCVFVDVGWPWMAWJRWNWJSWOWLCWNWJBUFVHVIVJVD $.
  $}

  ${
    $d A f g h q r s t u v w $.  $d B f g h q r s t u v w $.
    $d C f g h q r s t u v w $.
    $( Lemma for ~ addcanprg .  (Contributed by Jim Kingdon, 25-Dec-2019.) $)
    addcanprleml $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
        ( A +P. B ) = ( A +P. C ) ) -> ( 1st ` B ) C_ ( 1st ` C ) ) $=
      ( vf vg vh cnp wcel co wceq cfv cplq cnq c2nd syl adantr syl2anc ad2antrr
      wa cv vv vw vt vu vr vs w3a cpp c1st wrex cop prop prnmaddl sylan adantlr
      3ad2antl2 simprl halfnqq simplll simp1d prarloc2 wn simp2d addclpr simplr
      elprnql simplrl addclnq simplrr df-iplp genpprecll imp syl22anc addcomnqg
      prdisj adantl addassnqg caov4d simprr oveq2d syl3anc 3eqtrd wi genppreclu
      simpr simp3d mp2and eqeltrrd ad3antrrr fveq2 eleq2d mpbird jca mtand cltq
      wb wbr wo ltaddnq prloc ecased rexlimddv ex ssrdv ) AGHZBGHZCGHZUGZABUHIZ
      ACUHIZJZSZUABUIKZCUIKZXLUATZXMHZXOXNHZXLXPSZXOUBTZLIZXMHZXQUBMXHXPYAUBMUJ
      ZXKXFXEXPYBXGXFXMBNKZUKGHZXPYBBULZUBXOYCXMUMUNUPUOXRXSMHZYASZSZUCTZYILIZX
      SJZXQUCMYHYFYKUCMUJXRYFYAUQUCXSUROYHYIMHZYKSZSZUDTZYILIZANKZHZXQUDAUIKZYN
      YSYQUKGHZYLYRUDYSUJYNXEYTYNXEXFXGYHXHYMXHXKXPYGUSZPUTAULZOYHYLYKUQZYIYQYS
      UDVAQYNYOYSHZYRSZSZXQXOYILIZCNKZHZUUFUUIYOXTLIZXIUIKZHZUUJXINKZHZSZUUFUUK
      UUMUKGHZUUJMHZUUOVBUUFXIGHZUUPUUFXEXFUURUUFXEXFXGYHXHYMUUEUUARZUTZUUFXEXF
      XGUUSVCZABVDQXIULOUUFYOMHZXTMHZUUQUUFYTUUDUVBUUFXEYTUUTUUBOYNUUDYRUQYOYQY
      SVFQZUUFXOMHZYFUVCUUFYDXPUVEUUFXFYDUVAYEOYHXPYMUUEXLXPYGVERXOYCXMVFQZYNYF
      UUEXRYFYAYMVGZPXOXSVHQYOXTVHQUUJUUMUUKVOQUUFUUISZUULUUNUVHXEXFUUDYAUULUUF
      XEUUIUUTPZUUFXFUUIUVAPYNUUDYRUUIVGYNYAUUEUUIXRYFYAYMVIRXEXFSUUDYASUULDEFU
      EUFABYOXTUHLUEUFFEDVJZETZFTZVHZVKVLVMUVHUUNUUJXJNKZHZUVHYPUUGLIZUUJUVNUVH
      UVPYOXOLIZYJLIUVQXSLIZUUJUVHDEFYOYIXOYIMLUUFUVBUUIUVDPZYNYLUUEUUIUUCRZUUF
      UVEUUIUVFPZDTZMHZUVKMHZSZUWBUVKLIZUVKUWBLIJUVHUWBUVKVNVPUWCUWDUVLMHUGUWFU
      VLLIUWBUVKUVLLILIJUVHUWBUVKUVLVQVPUVTUWEUWFMHUVHUWBUVKVHVPVRUVHYJXSUVQLYN
      YKUUEUUIYHYLYKVSRVTUVHUVBUVEYFUVRUUJJUVSUWAYNYFUUEUUIUVGRYOXOXSVQWAWBUVHY
      RUUIUVPUVNHZYNUUDYRUUIVIUUFUUIWEUVHXEXGYRUUISUWGWCUVIUUFXGUUIUUFXEXFXGUUS
      WFZPDEFUEUFACYPUUGUHLUVJUVMWDQWGWHUVHXKUUNUVOWPYNXKUUEUUIXLXKXPYGYMXHXKWE
      WIRXKUUMUVNUUJXIXJNWJWKOWLWMWNUUFXNUUHUKGHZXOUUGWOWQZXQUUIWRUUFXGUWIUWHCU
      LOUUFUVEYLUWJUVFYHYLYKUUEVGXOYIWSQXOUUGUUHXNWTQXAXBXBXBXCXD $.

    $( Lemma for ~ addcanprg .  (Contributed by Jim Kingdon, 25-Dec-2019.) $)
    addcanprlemu $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
        ( A +P. B ) = ( A +P. C ) ) -> ( 2nd ` B ) C_ ( 2nd ` C ) ) $=
      ( vr vw cnp wcel co wceq wa cfv cv cltq wbr c1st adantlr cplq cnq syl2anc
      syl vv vt vu vf vg vh vq vs w3a cpp c2nd wrex cop prnminu sylan 3ad2antl2
      prop simprr ltexnqi simprl halfnqq adantrr 3ad2antl1 wn simplll ad3antrrr
      prarloc2 simp1d addclpr elprnql simplrl addclnq elprnqu addassnqg syl3anc
      simp2d prdisj addcomnqg oveq2d adantr wi simp3d df-iplp genpprecll mp2and
      eqtrd simpr eqeltrd wb eleq2d ad7antlr mpbird genppreclu ancomsd ad2antrr
      fveq2 3adant3 imp adantrlr anassrs ad2ant2rl jca mtand wo ltaddnq simplrr
      breqtrd ltanqi prloc orcomd ecased rexlimddv ex ssrdv ) AFGZBFGZCFGZUIZAB
      UJHZACUJHZIZJZUABUKKZCUKKZYBUALZYCGZYEYDGZYBYFJZDLZYEMNZYGDYCXRYFYJDYCULZ
      YAXPXOYFYKXQXPBOKZYCUMFGZYFYKBUQZDYEYCYLUNUOUPPYHYIYCGZYJJZJZYIELZQHZYEIZ
      YGERYQYJYTERULYHYOYJUREYIYEUSTYQYRRGZYTJZJZUBLZUUDQHZYRIZYGUBRUUCUUAUUFUB
      RULYQUUAYTUTUBYRVATUUCUUDRGZUUFJZJZUCLZUUDQHZAUKKZGZYGUCAOKZYQUUHUUMUCUUN
      ULZUUBYHUUHUUOYPYBUUHUUOYFXRUUHUUOYAXOXPUUHUUOXQXOUUGUUOUUFXOUUNUULUMFGZU
      UGUUOAUQZUUDUULUUNUCVGUOVBVCPPPPUUIUUJUUNGZUUMJZJZYGYIUUDQHZCOKZGZUUTUVCU
      UKYIQHZXSOKZGZUVDXSUKKZGZJZUUTUVEUVGUMFGZUVDRGZUVIVDUUTXSFGZUVJUUTXOXPUVL
      UUTXOXPXQYQXRUUBUUHUUSXRYAYFYPVEVFZVHZUUTXOXPXQUVMVPZABVISXSUQTUUTUUKRGZY
      IRGZUVKUUTUUJRGZUUGUVPUUTUUPUURUVRUUTXOUUPUVNUUQTUUIUURUUMUTUUJUULUUNVJSZ
      UUCUUGUUFUUSVKZUUJUUDVLSUUTYMYOUVQUUTXPYMUVOYNTYQYOUUBUUHUUSYHYOYJUTVFYIY
      CYLVMSZUUKYIVLSUVDUVGUVEVQSUUTUVCJZUVFUVHUWBUVFUVDXTOKZGZUWBUVDUUJUVAQHZU
      WCUUTUVDUWEIUVCUUTUVDUUJUUDYIQHZQHZUWEUUTUVRUUGUVQUVDUWGIUVSUVTUWAUUJUUDY
      IVNVOUUTUUGUVQUWGUWEIUVTUWAUUGUVQJUWFUVAUUJQUUDYIVRVSSWFVTUWBUURUVCUWEUWC
      GZUUIUURUUMUVCVKUUTUVCWGUWBXOXQUURUVCJUWHWAUUTXOUVCUVNVTUUTXQUVCUUTXOXPXQ
      UVMWBZVTUDUEUFUGUHACUUJUVAUJQUGUHUFUEUDWCZUELUFLVLZWDSWEWHYAUVFUWDWIXRYFY
      PUUBUUHUUSUVCYAUVEUWCUVDXSXTOWPWJWKWLUUTUVHUVCUUCUUSUVHUUHYQUUMUVHUUBUURY
      HYPUUMUVHYHYOUUMUVHYJYHYOUUMJZUVHXRUWLUVHWAZYAYFXOXPUWMXQXOXPJUUMYOUVHUDU
      EUFUGUHABUUKYIUJQUWJUWKWMWNWQWOWRWSWTXAPVTXBXCUUTUVCYGUUTUVBYDUMFGZUVAYEM
      NUVCYGXDUUTXQUWNUWICUQTUUTUVAYSYEMUUTUUDYRMNUVQUVAYSMNUUTUUDUUEYRMUUTUUGU
      UGUUDUUEMNUVTUVTUUDUUDXESUUCUUGUUFUUSXFXGUWAUUDYRYIXHSUUCYTUUHUUSYQUUAYTU
      RWOXGUVAYEYDUVBXISXJXKXLXLXLXLXMXN $.
  $}

  $( Addition cancellation law for positive reals.  Proposition 9-3.5(vi) of
     [Gleason] p. 123.  (Contributed by Jim Kingdon, 24-Dec-2019.) $)
  addcanprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
                 ( ( A +P. B ) = ( A +P. C ) -> B = C ) ) $=
    ( cnp wcel w3a cpp co wceq wa c1st cfv addcanprleml wss 3ancomb eqcom sylbi
    c2nd eqssd addcanprlemu anbi12i jca wb preqlu 3adant1 adantr mpbird ex ) AD
    EZBDEZCDEZFZABGHZACGHZIZBCIZULUOJZUPBKLZCKLZIZBRLZCRLZIZJZUQUTVCUQURUSABCMU
    QUIUKUJFZUNUMIZJZUSURNULVEUOVFUIUJUKOUMUNPUAZACBMQSUQVAVBABCTUQVGVBVANVHACB
    TQSUBULUPVDUCZUOUJUKVIUIBCUDUEUFUGUH $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Lemma for Proposition 9-3.5(v) of [Gleason] p. 123.  (Contributed by NM,
       8-Apr-1996.) $)
    ltaprlem $p |- ( C e. P. -> ( A <P B ->
                    ( C +P. A ) <P ( C +P. B ) ) ) $=
      ( vx cltp wbr cnp wcel cpp co wa cv wceq wrex ltexpri adantr ltrelpr brel
      simplr syl2anc simpld addclpr simprl ltaddpr syl3anc oveq2 ad2antll eqtrd
      addassprg breqtrd rexlimddv expcom ) ABEFZCGHZCAIJZCBIJZEFZUMUNKZADLZIJZB
      MZUQDGUMVADGNUNDABOPURUSGHZVAKZKZUOUOUSIJZUPEVDUOGHZVBUOVEEFVDUNAGHZVFUMU
      NVCSZURVGVCUMVGUNUMVGBGHABGGEQRUAPPZCAUBTURVBVAUCZUOUSUDTVDVECUTIJZUPVDUN
      VGVBVEVKMVHVIVJCAUSUIUEVAVKUPMURVBUTBCIUFUGUHUJUKUL $.

    $( Ordering property of addition.  Proposition 9-3.5(v) of [Gleason]
       p. 123.  (Contributed by Jim Kingdon, 26-Dec-2019.) $)
    ltaprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( A <P B <-> ( C +P. A ) <P ( C +P. B ) ) ) $=
      ( vx cnp wcel w3a cltp wbr cpp co wi ltaprlem 3ad2ant3 wa cv wceq ltexpri
      wrex syl2anc adantl simpl1 simprl ltaddpr addassprg 3com12 adantrr simprr
      3expa eqtr3d 3adantl2 simpl3 addclpr simpl2 addcanprg syl3anc mpd breqtrd
      adantlr rexlimddv ex impbid ) AEFZBEFZCEFZGZABHIZCAJKZCBJKZHIZVEVCVGVJLVD
      ABCMNVFVJVGVFVJOVHDPZJKZVIQZVGDEVJVMDESVFDVHVIRUAVFVKEFZVMOZVGVJVFVOOZAAV
      KJKZBHVPVCVNAVQHIVCVDVEVOUBZVFVNVMUCZAVKUDTVPCVQJKZVIQZVQBQZVCVEVOWAVDVCV
      EOZVOOVLVTVIWCVNVLVTQZVMVCVEVNWDVEVCVNWDCAVKUEUFUIUGWCVNVMUHUJUKVPVEVQEFZ
      VDWAWBLVCVDVEVOULVPVCVNWEVRVSAVKUMTVCVDVEVOUNCVQBUOUPUQURUSUTVAVB $.
  $}

  ${
    $d A f g $.  $d B f g $.  $d C f g $.  $d D f g $.
    $( Strong extensionality of addition (ordering version).  This is similar
       to ~ addext but for positive reals and based on less-than rather than
       apartness.  (Contributed by Jim Kingdon, 17-Feb-2020.) $)
    addextpr $p |- ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) ) ->
        ( ( A +P. B ) <P ( C +P. D ) -> ( A <P C \/ B <P D ) ) ) $=
      ( vf vg cnp wcel wa cpp co cltp wbr wo addclpr adantl syl3anc wb ltaprg
      cv wi adantr simprl simplr syl2anc wor w3a ltsopr sowlin mpan simpll wceq
      addcomprg caovcomd breq12d bitr4d simprr orbi12d sylibrd ) AGHZBGHZIZCGHZ
      DGHZIZIZABJKZCDJKZLMZVGCBJKZLMZVJVHLMZNZACLMZBDLMZNVFVGGHZVHGHZVJGHZVIVMU
      AZVBVPVEABOUBVEVQVBCDOPVFVCVAVRVBVCVDUCZUTVAVEUDZCBOUEGLUFVPVQVRUGVSUHGVG
      VHVJLUIUJQVFVNVKVOVLVFVNBAJKZBCJKZLMZVKVFUTVCVAVNWDRUTVAVEUKZVTWAACBSQVFV
      GWBVJWCLVFEFABGJETZGHFTZGHIWFWGJKWGWFJKULVFWFWGUMPZWEWAUNVFEFCBGJWHVTWAUN
      UOUPVFVAVDVCVOVLRWAVBVCVDUQVTBDCSQURUS $.
  $}

  ${
    $d q r x y z w v u f g h A $.  $d q r x y z w v u f g B $.  $d x y C $.
    recexpr.1 $e |- B = <.
      { x | E. y ( x <Q y /\ ( *Q ` y ) e. ( 2nd ` A ) ) } ,
      { x | E. y ( y <Q x /\ ( *Q ` y ) e. ( 1st ` A ) ) } >. $.
    $( Membership in the lower cut of ` B ` .  Lemma for ~ recexpr .
       (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemell $p |- ( C e. ( 1st ` B ) <->
        E. y ( C <Q y /\ ( *Q ` y ) e. ( 2nd ` A ) ) ) $=
      ( c1st cfv wcel cvv cv cltq wbr wa wex cnq ltrelnq brel adantr exlimiv
      crq c2nd elex simpld syl wceq breq1 anbi1d exbidv fveq2i nqex abssi ssexi
      cab cop simprd op1st eqtri elab2g pm5.21nii ) EDGHZIEJIZEBKZLMZVCUAHZCUBH
      IZNZBOZEVAUCVGVBBVDVBVFVDEPIZVBVDVIVCPIZEVCPPLQRUDEPUCUESTAKZVCLMZVFNZBOZ
      VHAEVAJVKEUFZVMVGBVOVLVDVFVKEVCLUGUHUIVAVNAUNZVCVKLMZVECGHIZNZBOZAUNZUOZG
      HVPDWBGFUJVPWAVPPUKVNAPVMVKPIZBVLWCVFVLWCVJVKVCPPLQRUDSTULUMWAPUKVTAPVSWC
      BVQWCVRVQVJWCVCVKPPLQRUPSTULUMUQURUSUT $.

    $( Membership in the upper cut of ` B ` .  Lemma for ~ recexpr .
       (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemelu $p |- ( C e. ( 2nd ` B ) <->
        E. y ( y <Q C /\ ( *Q ` y ) e. ( 1st ` A ) ) ) $=
      ( c2nd cfv wcel cvv cv cltq wbr wa wex cnq ltrelnq brel adantr exlimiv
      crq c1st elex simprd syl wceq breq2 anbi1d exbidv cab fveq2i simpld abssi
      cop nqex ssexi op2nd eqtri elab2g pm5.21nii ) EDGHZIEJIZBKZELMZVCUAHZCUBH
      IZNZBOZEVAUCVGVBBVDVBVFVDEPIZVBVDVCPIZVIVCEPPLQRUDEPUCUESTVCAKZLMZVFNZBOZ
      VHAEVAJVKEUFZVMVGBVOVLVDVFVKEVCLUGUHUIVAVKVCLMZVECGHIZNZBOZAUJZVNAUJZUNZG
      HWADWBGFUKVTWAVTPUOVSAPVRVKPIZBVPWCVQVPWCVJVKVCPPLQRULSTUMUPWAPUOVNAPVMWC
      BVLWCVFVLVJWCVCVKPPLQRUDSTUMUPUQURUSUT $.

    $( ` B ` is inhabited.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemm $p |- ( A e. P. -> ( E. q e. Q. q e. ( 1st ` B ) /\
        E. r e. Q. r e. ( 2nd ` B ) ) ) $=
      ( wcel cv cfv cnq wrex wa crq cltq wbr syl wi eleq1d c1q cnp c1st recclnq
      c2nd cop prop prmu nsmallnqq adantr wex recrecnq wceq breq2 fveq2 anbi12d
      anbi2d spcegv sylbird recexprlemell syl6ibr expcomd imp reximdv rexlimiva
      mpd 3syl prml co 1nq addclnq sylancl ltaddnq rspcev syl2anc recexprlemelu
      cplq breq1 jca ) CUAHZFIZDUBJHZFKLZEIZDUDJHZEKLZVSCUBJZCUDJZUEUAHZAIZWGHZ
      AKLWBCUFZAWGWFUGWJWBAKWIKHZWJMZVTWINJZOPZFKLZWBWLWPWJWLWNKHZWPWIUCZFWNUHQ
      UIWMWOWAFKWLWJWOWARWLWOWJWAWLWOWJMZVTBIZOPZWTNJZWGHZMZBUJZWAWLWSWOWNNJZWG
      HZMZXEWLXGWJWOWLXFWIWGWIUKZSUPWLWQXHXERWRXDXHBWNKWTWNULZXAWOXCXGWTWNVTOUM
      XJXBXFWGWTWNNUNZSUOUQQURABCDVTGUSUTVAVBVCVEVDVFVSWHWIWFHZAKLWEWKAWGWFVGXL
      WEAKWLXLMZWNWCOPZEKLZWEWLXOXLWLWNTVPVHZKHZWNXPOPZXOWLWQTKHZXQWRVIWNTVJVKW
      LWQXSXRWRVIWNTVLVKXNXREXPKWCXPWNOUMVMVNUIXMXNWDEKWLXLXNWDRWLXNXLWDWLXNXLM
      ZWTWCOPZXBWFHZMZBUJZWDWLXTXNXFWFHZMZYDWLYEXLXNWLXFWIWFXISUPWLWQYFYDRWRYCY
      FBWNKXJYAXNYBYEWTWNWCOVQXJXBXFWFXKSUOUQQURABCDWCGVOUTVAVBVCVEVDVFVR $.

    $( The lower cut of ` B ` is open.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemopl $p |- ( ( A e. P. /\ q e. Q. /\ q e. ( 1st ` B ) )
        -> E. r e. Q. ( q <Q r /\ r e. ( 1st ` B ) ) ) $=
      ( cv c1st cfv wcel cnp cltq wbr wa cnq wrex crq wex recexprlemell adantll
      c2nd ltbtwnnqq biimpi simpll 19.8a sylibr jca reximdv mpan9 exlimiv sylbi
      expcom 3ad2ant3 ) FHZDIJZKZCLKUOEHZMNZURUPKZOZEPQZUOPKUQUOBHZMNZVCRJCUBJK
      ZOZBSVBABCDUOGTVFVBBVDUSURVCMNZOZEPQZVEVBVDVIEUOVCUCUDVEVHVAEPVHVEVAVHVEO
      USUTUSVGVEUEVGVEUTUSVGVEOZVJBSUTVJBUFABCDURGTUGUAUHUMUIUJUKULUN $.

    $( The lower cut of ` B ` is lower.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemlol $p |- ( ( A e. P. /\ q e. Q. ) ->
        ( E. r e. Q. ( q <Q r /\ r e. ( 1st ` B ) ) -> q e. ( 1st ` B ) ) ) $=
      ( cv cltq wbr c1st cfv wcel wa cnq wrex wi cnp wex recexprlemell crq c2nd
      ltsonq ltrelnq sotri ex anim1d eximdv 3imtr4g imp rexlimivw a1i ) FHZEHZI
      JZUNDKLZMZNZEOPUMUPMZQCRMUMOMNURUSEOUOUQUSUOUNBHZIJZUTUALCUBLMZNZBSUMUTIJ
      ZVBNZBSUQUSUOVCVEBUOVAVDVBUOVAVDUMUNUTIOUCUDUEUFUGUHABCDUNGTABCDUMGTUIUJU
      KUL $.

    $( The upper cut of ` B ` is open.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemopu $p |- ( ( A e. P. /\ r e. Q. /\ r e. ( 2nd ` B ) )
        -> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` B ) ) ) $=
      ( cv c2nd cfv wcel cnp cltq wbr wa cnq wrex crq wex recexprlemelu adantlr
      c1st ltbtwnnqq biimpi simplr 19.8a sylibr jca reximdv mpan9 exlimiv sylbi
      expcom 3ad2ant3 ) EHZDIJZKZCLKFHZUOMNZURUPKZOZFPQZUOPKUQBHZUOMNZVCRJCUBJK
      ZOZBSVBABCDUOGTVFVBBVDVCURMNZUSOZFPQZVEVBVDVIFVCUOUCUDVEVHVAFPVHVEVAVHVEO
      USUTVGUSVEUEVGVEUTUSVGVEOZVJBSUTVJBUFABCDURGTUGUAUHUMUIUJUKULUN $.

    $( The upper cut of ` B ` is upper.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemupu $p |- ( ( A e. P. /\ r e. Q. ) -> (
        E. q e. Q. ( q <Q r /\ q e. ( 2nd ` B ) ) -> r e. ( 2nd ` B ) ) ) $=
      ( cv cltq wbr c2nd cfv wcel wa cnq wrex wi cnp wex recexprlemelu crq c1st
      ltsonq ltrelnq sotri expcom anim1d eximdv 3imtr4g imp rexlimivw a1i ) FHZ
      EHZIJZUMDKLZMZNZFOPUNUPMZQCRMUNOMNURUSFOUOUQUSUOBHZUMIJZUTUALCUBLMZNZBSUT
      UNIJZVBNZBSUQUSUOVCVEBUOVAVDVBVAUOVDUTUMUNIOUCUDUEUFUGUHABCDUMGTABCDUNGTU
      IUJUKUL $.

    $( ` B ` is rounded.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemrnd $p |- ( A e. P. -> ( A. q e. Q. ( q e. ( 1st ` B )
        <-> E. r e. Q. ( q <Q r /\ r e. ( 1st ` B ) ) )
        /\ A. r e. Q. ( r e. ( 2nd ` B )
        <-> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` B ) ) ) ) ) $=
      ( cnp wcel cv c1st cfv wa cnq wrex wb wral 3expia impbid ralrimiva cltq
      wbr c2nd recexprlemopl recexprlemlol recexprlemopu recexprlemupu jca ) CH
      IZFJZDKLZIZUJEJZUAUBZUMUKIMENOZPZFNQUMDUCLZIZUNUJUQIMFNOZPZENQUIUPFNUIUJN
      IZMULUOUIVAULUOABCDEFGUDRABCDEFGUESTUIUTENUIUMNIZMURUSUIVBURUSABCDEFGUFRA
      BCDEFGUGSTUH $.

    $( ` B ` is disjoint.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemdisj $p |- ( A e. P. -> A. q e. Q.
        -. ( q e. ( 1st ` B ) /\ q e. ( 2nd ` B ) ) ) $=
      ( vz cnp wcel cv c1st cfv wa wn cnq cltq wbr crq wal wex ltsonq wi simprr
      c2nd ltrelnq son2lpi simplr jca prltlu syl3an1 3expb sylan2 simprl simpll
      cop prop sotri syl2anc ltrnqi syl adantl ex adantr alrimivv recexprlemell
      mtoi recexprlemelu anbi12i breq1 fveq2 eleq1d anbi12d cbvexv anbi2i bitri
      wceq eeanv bitr4i notbii alnex albii sylibr ralrimiva ) CHIZEJZDKLIZWEDUD
      LIZMZNZEOWDWEOIZMZWEBJZPQZWLRLZCUDLZIZMZGJZWEPQZWRRLZCKLZIZMZMZNZGSZBSZWI
      WKXEBGWKXDWTWNPQZWNWTPQZMZWTWNPOUAUEUFWDXDXJUBWJWDXDXJWDXDMXHXIXDWDXBWPMX
      HXDXBWPWQWSXBUCWMWPXCUGUHWDXBWPXHWDXAWOUOHIXBWPXHCUPWTWNWOXAUIUJUKULXDXIW
      DXDWRWLPQZXIXDWSWMXKWQWSXBUMWMWPXCUNWRWEWLPOUAUEUQURWRWLUSUTVAUHVBVCVFVDW
      IXDGTZBTZNZXGWHXMWHWQBTZXCGTZMZXMWHXOWLWEPQZWNXAIZMZBTZMXQWFXOWGYAABCDWEF
      VEABCDWEFVGVHYAXPXOXTXCBGWLWRVPZXRWSXSXBWLWRWEPVIYBWNWTXAWLWRRVJVKVLVMVNV
      OWQXCBGVQVRVSXGXLNZBSXNXFYCBXDGVTWAXLBVTVOVRWBWC $.

    $( ` B ` is located.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemloc $p |- ( A e. P. -> A. q e. Q. A. r e. Q. ( q <Q r
        -> ( q e. ( 1st ` B ) \/ r e. ( 2nd ` B ) ) ) ) $=
      ( vu vv wcel cv cltq wbr cfv cnq wa crq sylan adantlr syl c1st c2nd wo wi
      cnp wral wrex prop prnmaxl simprr wceq elprnql ad2ant2r recrecnq breqtrrd
      cop wb recclnq ltrelnq brel adantl ad2antrr simprd ltrnqg syl2anc eqeltrd
      mpbird simprl wex breq1 fveq2 eleq1d anbi12d spcegv recexprlemelu syl6ibr
      mp2and rexlimddv olcd prnminu elprnqu eqbrtrd simpld recexprlemell ltrnqi
      breq2 orcd prloc syl2an mpjaodan ex ralrimivw ) CUEJZFKZEKZLMZWNDUANJZWOD
      UBNJZUCZUDZEOUFFOWMWTEOWMWPWSWMWPPZWOQNZCUANZJZWSWNQNZCUBNZJZXAXDPZWRWQXH
      XBHKZLMZWRHXCWMXDXJHXCUGZWPWMXCXFUPUEJZXDXKCUHZHXBXFXCUIRSXHXIXCJZXJPZPZX
      IQNZWOLMZXQQNZXCJZWRXPXRXBXSLMZXPXBXIXSLXHXNXJUJXPXIOJZXSXIUKXAXOYBXDWMXN
      YBWPXJWMXLXNYBXMXIXFXCULRUMSZXIUNTZUOXPXQOJZWOOJZXRYAUQXPYBYEYCXIURTZXPWN
      OJZYFXAYHYFPZXDXOWPYIWMWNWOOOLUSUTVAZVBVCXQWOVDVEVGXPXSXIXCYDXHXNXJVHVFXP
      YEXRXTPZWRUDYGYEYKBKZWOLMZYLQNZXCJZPZBVIWRYPYKBXQOYLXQUKZYMXRYOXTYLXQWOLV
      JYQYNXSXCYLXQQVKVLVMVNABCDWOGVOVPTVQVRVSXAXGPZWQWRYRIKZXELMZWQIXFWMXGYTIX
      FUGZWPWMXLXGUUAXMIXEXFXCVTRSYRYSXFJZYTPZPZWNYSQNZLMZUUEQNZXFJZWQUUDUUFUUG
      XELMZUUDUUGYSXELUUDYSOJZUUGYSUKXAUUBUUJXGYTWMUUBUUJWPWMXLUUBUUJXMYSXFXCWA
      RSUMZYSUNTZYRUUBYTUJWBUUDYHUUEOJZUUFUUIUQUUDYHYFXAYIXGUUCYJVBWCUUDUUJUUMU
      UKYSURTZWNUUEVDVEVGUUDUUGYSXFUULYRUUBYTVHVFUUDUUMUUFUUHPZWQUDUUNUUMUUOWNY
      LLMZYNXFJZPZBVIWQUURUUOBUUEOYLUUEUKZUUPUUFUUQUUHYLUUEWNLWFUUSYNUUGXFYLUUE
      QVKVLVMVNABCDWNGWDVPTVQVRWGWMXLXBXELMXDXGUCWPXMWNWOWEXBXEXFXCWHWIWJWKWLWL
      $.

    $( ` B ` is a positive real.  Lemma for ~ recexpr .  (Contributed by Jim
       Kingdon, 27-Dec-2019.) $)
    recexprlempr $p |- ( A e. P. -> B e. P. ) $=
      ( vq vr cnp wcel cnq cv c1st cfv wrex c2nd wa cltq wbr wb wral cpw cxp wn
      wo w3a recexprlemm crq wex cab cop wss ltrelnq brel simpld adantr exlimiv
      abssi nqex elpw2 mpbir opelxpi mp2an eqeltri recexprlemrnd recexprlemdisj
      wi simprd jctil recexprlemloc 3jca elnp1st2nd sylanbrc ) CHIZDJUAZVNUBZIZ
      FKZDLMZIZFJNGKZDOMZIZGJNPZPVSVQVTQRZVTVRIPGJNSFJTWBWDVQWAIZPFJNSGJTPZVSWE
      PUCFJTZWDVSWBUDVFGJTFJTZUEDHIVMWCVPABCDGFEUFDAKZBKZQRZWJUGMZCOMIZPZBUHZAU
      IZWJWIQRZWLCLMIZPZBUHZAUIZUJZVOEWPVNIZXAVNIZXBVOIXCWPJUKWOAJWNWIJIZBWKXEW
      MWKXEWJJIZWIWJJJQULUMUNUOUPUQWPJURUSUTXDXAJUKWTAJWSXEBWQXEWRWQXFXEWJWIJJQ
      ULUMVGUOUPUQXAJURUSUTWPXAVNVNVAVBVCVHVMWFWGWHABCDGFEVDABCDFEVEABCDGFEVIVJ
      DGFVKVL $.

    $( The lower cut of one is a subset of the lower cut of ` A .P. B ` .
       Lemma for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlem1ssl $p |- ( A e. P. ->
        ( 1st ` 1P ) C_ ( 1st ` ( A .P. B ) ) ) $=
      ( vw vz vf wcel cfv co cv c1q cltq wbr wa crq cmq wceq cnq vv vg cnp c1st
      vh vu c1p cmp 1prl abeq2i c2nd wrex rec1nq ltrnqi syl5eqbrr prop prmuloc2
      cop sylan sylan2 prnmaxl ad2ant2r w3a elprnql 3adant3 simp1r ltrelnq brel
      simpld syl simp3 simp2r simpr wb ltmnqg adantl simprl simprd recclnq 3syl
      ad2antrr simplr mulcomnqg caovord2d syl5ib 1nq mulidnq ax-mp mpdan eqtr3d
      recidnq oveqan12d adantr simpll mulassnqg mulclnq caov4d syl5reqr syl2anc
      recmulnqg mpbird eleq1d biimprd wi wex breq2 anbi12d spcegv recexprlemell
      fveq2 syl6ibr syl2and mpd syl22anc 3ad2ant3 mpan2 oveq1d syl3an2 3anidm12
      3eqtr2d eqeq2d rspcev 3expia reximdv recexprlempr df-imp genpelvl sylibrd
      oveq2 rexlimddv ex syl5bi ssrdv ) CUCIZFUGUDJZCDUHKUDJZFLZYOIYQMNOZYNYQYP
      IZYRFYOFUIUJYNYRYSYNYRPZUALZYQQJZRKZCUKJZIZYSUACUDJZYRYNMUUBNOZUUEUAUUFUL
      ZYRMMQJUUBNUMYQMUNUOYNUUFUUDURUCIZUUGUUHCUPZUAUUBUUDUUFUQUSUTYTUUAUUFIZUU
      EPZPZUUAGLZNOZGUUFULZYSYNUUKUUPYRUUEYNUUIUUKUUPUUJGUUAUUDUUFVAUSVBUUMUUPY
      QUUNALZRKZSZADUDJZULZGUUFULZYSUUMUUOUVAGUUFYTUULUUOUVAYTUULUUOVCZUUNQJZYQ
      RKZUUTIZYQUUNUVERKZSZUVAUVCUUATIZYQTIZUUOUUEUVFYTUULUVIUUOYNUUKUVIYRUUEYN
      UUIUUKUVIUUJUUAUUDUUFVDUSVBVEUVCYRUVJYNYRUULUUOVFYRUVJMTIZYQMTTNVGVHVIVJZ
      YTUULUUOVKYTUUKUUEUUOVLUVIUVJPZUUOUUEPZPZUVNUVFUVMUVNVMUVOUUOUVEUUAQJZYQR
      KZNOZUUEUVQQJZUUDIZUVFUUOUVDUVPNOUVOUVRUUAUUNUNUVOHUBUEUVDUVPYQNTRHLZTIZU
      BLZTIZUELZTIVCZUWAUWCNOUWEUWARKUWEUWCRKNOVNUVOUWAUWCUWEVOVPUVOUUOUUNTIZUV
      DTIZUVMUUOUUEVQUUOUVIUWGUUAUUNTTNVGVHVRZUUNVSZVTUVIUVPTIZUVJUVNUUAVSZWAZU
      VIUVJUVNWBZUWBUWDPZUWAUWCRKZUWCUWARKSUVOUWAUWCWCVPZWDWEUVOUVTUUEUVOUVSUUC
      UUDUVOUVSUUCSZUVQUUCRKZMSZUVOMMMRKZUWSUVKUXAMSWFMWGWHUVOUVPUUARKZYQUUBRKZ
      RKZUXAUWSUVMUXDUXASUVNUVIUVJUXBMUXCMRUVIUUAUVPRKZUXBMUVIUWKUXEUXBSUWLUUAU
      VPWCWIUUAWKWJYQWKWLWMUVOHUBUEUVPUUAYQUUBTRUWMUVIUVJUVNWNUWNUWQUWFUWPUWERK
      UWAUWCUWERKRKSUVOUWAUWCUWEWOVPUVOUVJUUBTIZUWNYQVSZVJUWOUWPTIUVOUWAUWCWPZV
      PWQWJWRUVMUWRUWTVNZUVNUVMUVQTIZUUCTIZUXIUVIUWKUVJUXJUWLUVPYQWPUSZUVJUVIUX
      FUXKUXGUUAUUBWPUTUVQUUCWTWSWMXAXBXCUVMUVRUVTPZUVFXDUVNUVMUXMUVEBLZNOZUXNQ
      JZUUDIZPZBXEZUVFUVMUXJUXMUXSXDUXLUXRUXMBUVQTUXNUVQSZUXOUVRUXQUVTUXNUVQUVE
      NXFUXTUXPUVSUUDUXNUVQQXJXBXGXHVJABCDUVEEXIXKWMXLXMXNUVCUWGUVJUVHUUOYTUWGU
      ULUWIXOUVLUWGUVJPYQMYQRKZUUNUVDRKZYQRKZUVGUVJYQUYASUWGUVJYQMRKZYQUYAYQWGU
      VJUVKUYDUYASWFYQMWCXPWJVPUWGUYCUYASUVJUWGUYBMYQRUUNWKXQWMUWGUVJUYCUVGSZUW
      GUWGUWHUVJUYEUWJUUNUVDYQWOXRXSXTWSUUSUVHAUVEUUTUUQUVESUURUVGYQUUQUVEUUNRY
      IYAYBWSYCYDYNYSUVBVNZYRUULYNDUCIUYFABCDEYEUFHUBBFCDYQGAUHRBFUBHUFYFUXHYGW
      IWAYHXMYJYKYLYM $.

    $( The upper cut of one is a subset of the upper cut of ` A .P. B ` .
       Lemma for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlem1ssu $p |- ( A e. P. ->
        ( 2nd ` 1P ) C_ ( 2nd ` ( A .P. B ) ) ) $=
      ( vw vf vg wcel cfv co cv c1q cltq wbr wa cmq wceq cnq syl vv vz cnp c2nd
      vh vu c1p cmp 1pru abeq2i c1st wrex prop prmuloc2 sylan prnminu ad2ant2rl
      cop w3a simp3 simp2l elprnql ad2ant2r 3adant3 simp1r ltrelnq brel recclnq
      crq simprd mulassnqg syl3anc oveq2d 3eqtrd eleq1d mpbird ltrnqi wb ltmnqg
      recidnq mulidnq adantl mulclnq simpld mulcomnqg caovord2d 1nq ax-mp mpdan
      syl2anc syl5ib eqtr3d oveqan12d caov4d syl5reqr caovcld recmulnqg biimprd
      wex breq1 fveq2 anbi12d spcegv recexprlemelu syl6ibr syl2and mp2and mpan2
      oveq1d adantr syl3an2 3anidm12 3eqtr2d oveq2 eqeq2d rspcev 3expia reximdv
      wi recexprlempr df-imp genpelvu ad2antrr sylibrd mpd rexlimddv ex syl5bi
      ssrdv ) CUCIZFUGUDJZCDUHKUDJZFLZYKIMYMNOZYJYMYLIZYNFYKFUIUJYJYNYOYJYNPZUA
      LZYMQKZCUDJZIZYOUACUKJZYJUUAYSURUCIZYNYTUAUUAULCUMZUAYMYSUUAUNUOYPYQUUAIZ
      YTPZPZUBLZYRNOZUBYSULZYOYJYTUUIYNUUDYJUUBYTUUIUUCUBYRYSUUAUPUOUQUUFUUIYMU
      UGALZQKZRZADUDJZULZUBYSULZYOUUFUUHUUNUBYSYPUUEUUHUUNYPUUEUUHUSZUUGVIJZYMQ
      KZUUMIZYMUUGUURQKZRZUUNUUPUUHYRYMVIJZQKZUUAIZUUSYPUUEUUHUTZUUPUVDUUDYPUUD
      YTUUHVAUUPUVCYQUUAUUPUVCYQYMUVBQKZQKZYQMQKZYQUUPYQSIZYMSIZUVBSIZUVCUVGRYP
      UUEUVIUUHYJUUDUVIYNYTYJUUBUUDUVIUUCYQYSUUAVBUOVCVDZUUPYNUVJYJYNUUEUUHVEYN
      MSIZUVJMYMSSNVFVGVJTZUUPUVJUVKUVNYMVHTZYQYMUVBVKVLUUPUVFMYQQUUPUVJUVFMRUV
      NYMVTZTVMUUPUVIUVHYQRUVLYQWATVNVOVPUUPUUHYRVIJZYMQKZUURNOZUVDUVRVIJZUUAIZ
      UUSUUHUVQUUQNOUUPUVSUUGYRVQUUPGHUEUVQUUQYMNSQGLZSIZHLZSIZUELZSIUSZUWBUWDN
      OUWFUWBQKUWFUWDQKNOVRUUPUWBUWDUWFVSWBUUPYRSIZUVQSIZUUPUVIUVJUWHUVLUVNYQYM
      WCWJZYRVHZTZUUPUUGSIZUUQSIZUUPUUHUWMUVEUUHUWMUWHUUGYRSSNVFVGWDTZUUGVHZTUV
      NUWCUWEPZUWBUWDQKZUWDUWBQKRUUPUWBUWDWEWBZWFWKUUPUWAUVDUUPUVTUVCUUAUUPUVTU
      VCRZUVRUVCQKZMRZUUPMMMQKZUXAUVMUXCMRWGMWAWHUUPUVQYRQKZUVFQKZUXCUXAUUPUWHU
      VJUXEUXCRUWJUVNUWHUVJUXDMUVFMQUWHYRUVQQKZUXDMUWHUWIUXFUXDRUWKYRUVQWEWIYRV
      TWLUVPWMWJUUPGHUEUVQYRYMUVBSQUWLUWJUVNUWSUWGUWRUWFQKUWBUWDUWFQKQKRUUPUWBU
      WDUWFVKWBUVOUWQUWRSIUUPUWBUWDWCZWBZWNWLWOUUPUVRSIZUVCSIUWTUXBVRUUPGHUVQYM
      SSSQUXHUWLUVNWPZUUPGHYRUVBSSSQUXHUWJUVOWPUVRUVCWQWJVPVOWRUUPUVSUWAPZBLZUU
      RNOZUXLVIJZUUAIZPZBWSZUUSUUPUXIUXKUXQXSUXJUXPUXKBUVRSUXLUVRRZUXMUVSUXOUWA
      UXLUVRUURNWTUXRUXNUVTUUAUXLUVRVIXAVOXBXCTABCDUUREXDXEXFXGUUPUWMUVJUVAUWOU
      VNUWMUVJPYMMYMQKZUUGUUQQKZYMQKZUUTUVJYMUXSRUWMUVJYMMQKZYMUXSYMWAUVJUVMUYB
      UXSRWGYMMWEXHWLWBUWMUYAUXSRUVJUWMUXTMYMQUUGVTXIXJUWMUVJUYAUUTRZUWMUWMUWNU
      VJUYCUWPUUGUUQYMVKXKXLXMWJUULUVAAUURUUMUUJUURRUUKUUTYMUUJUURUUGQXNXOXPWJX
      QXRYJYOUUOVRZYNUUEYJDUCIUYDABCDEXTUFGHBFCDYMUBAUHQBFHGUFYAUXGYBWIYCYDYEYF
      YGYHYI $.

    $( The lower cut of ` A .P. B ` is a subset of the lower cut of one.  Lemma
       for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemss1l $p |- ( A e. P. ->
        ( 1st ` ( A .P. B ) ) C_ ( 1st ` 1P ) ) $=
      ( vw vz vq wcel co c1st cfv cv c1q cltq wbr cmq wi wa cnq vu cnp cmp wceq
      vf vg c1p wrex wb recexprlempr df-imp mulclnq genpelvl mpdan crq c2nd wex
      recexprlemell ltrelnq brel simprd prop elprnql sylan ltmnqi expcom adantr
      cop prltlu syl3an1 3expia mulcomnqg recidnq breq12d sylibd ancoms anim12d
      syl syld ltsonq sotri syl6 exp4b syl5 pm2.43d impd exlimdv breq1 biimprcd
      syl5bi expimpd rexlimdvv sylbid 1prl abeq2i syl6ibr ssrdv ) CUBIZFCDUCJKL
      ZUGKLZWRFMZWSIZXANOPZXAWTIWRXBXAGMZHMZQJZUDZHDKLZUHGCKLZUHZXCWRDUBIXBXJUI
      ABCDEUJUAUEUFBFCDXAGHUCQBFUFUEUAUKUEMUFMULUMUNWRXGXCGHXIXHWRXDXIIZXEXHIZX
      GXCRZWRXKSZXLXFNOPZXMXLXEBMZOPZXPUOLZCUPLZIZSZBUQXNXOABCDXEEURXNYAXOBXNXQ
      XTXOXNXQXTXORZXQXPTIZXNXQYBRXQXETIYCXEXPTTOUSUTVAXNYCXQXTXOXNYCSZYAXFXDXP
      QJZOPZYENOPZSXOYDXQYFXTYGXNXQYFRZYCXNXDTIZYHWRXIXSVHUBIZXKYICVBZXDXSXIVCV
      DZXQYIYFXEXPXDVEVFVRVGYDXTXDXROPZYGXNXTYMRYCWRXKXTYMWRYJXKXTYMYKXDXRXSXIV
      IVJVKVGXNYIYCYMYGRZYLYCYIYNYCYISZYMXPXDQJZXPXRQJZOPZYGYCYMYRRYIYMYCYRXDXR
      XPVEVFVGYOYPYEYQNOXPXDVLYCYQNUDYIXPVMVGVNVOVPVDVSVQXFYENOTVTUSWAWBWCWDWEW
      FWGWJXGXCXOXAXFNOWHWIWBWKWLWMXCFWTFWNWOWPWQ $.

    $( The upper cut of ` A .P. B ` is a subset of the upper cut of one.  Lemma
       for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemss1u $p |- ( A e. P. ->
        ( 2nd ` ( A .P. B ) ) C_ ( 2nd ` 1P ) ) $=
      ( vw vz vq wcel co c2nd cfv cv c1q cltq wbr cmq wi wa cnq vu cnp cmp wceq
      vf vg c1p wrex wb recexprlempr df-imp mulclnq genpelvu mpdan crq c1st wex
      recexprlemelu ltrelnq brel simpld prop elprnqu sylan ltmnqi expcom adantr
      cop syl prltlu syl3an1 3com23 3expia recidnq mulcomnqg sylibd ancoms syld
      breq12d anim12d ltsonq sotri syl6 exp4b syl5 pm2.43d exlimdv syl5bi breq2
      impd biimprcd expimpd rexlimdvv sylbid 1pru abeq2i syl6ibr ssrdv ) CUBIZF
      CDUCJKLZUGKLZWSFMZWTIZNXBOPZXBXAIWSXCXBGMZHMZQJZUDZHDKLZUHGCKLZUHZXDWSDUB
      IXCXKUIABCDEUJUAUEUFBFCDXBGHUCQBFUFUEUAUKUEMUFMULUMUNWSXHXDGHXJXIWSXEXJIZ
      XFXIIZXHXDRZWSXLSZXMNXGOPZXNXMBMZXFOPZXQUOLZCUPLZIZSZBUQXOXPABCDXFEURXOYB
      XPBXOXRYAXPXOXRYAXPRZXRXQTIZXOXRYCRXRYDXFTIXQXFTTOUSUTVAXOYDXRYAXPXOYDSZY
      BXEXQQJZXGOPZNYFOPZSXPYEXRYGYAYHXOXRYGRZYDXOXETIZYIWSXTXJVHUBIZXLYJCVBZXE
      XJXTVCVDZXRYJYGXQXFXEVEVFVIVGYEYAXSXEOPZYHXOYAYNRYDWSXLYAYNWSYAXLYNWSYKYA
      XLYNYLXSXEXJXTVJVKVLVMVGXOYJYDYNYHRZYMYDYJYOYDYJSZYNXQXSQJZXQXEQJZOPZYHYD
      YNYSRYJYNYDYSXSXEXQVEVFVGYPYQNYRYFOYDYQNUDYJXQVNVGXQXEVOVSVPVQVDVRVTYHYGX
      PNYFXGOTWAUSWBVQWCWDWEWFWJWGWHXHXDXPXBXGNOWIWKWCWLWMWNXDFXAFWOWPWQWR $.

    $( ` B ` is the reciprocal of ` A ` .  Lemma for ~ recexpr .  (Contributed
       by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemex $p |- ( A e. P. -> ( A .P. B ) = 1P ) $=
      ( cnp wcel cmp c1p wceq c1st cfv c2nd recexprlemss1l recexprlem1ssl eqssd
      co recexprlemss1u recexprlem1ssu wa recexprlempr mulclpr mpdan 1pr preqlu
      wb sylancl mpbir2and ) CFGZCDHQZIJZUJKLZIKLZJZUJMLZIMLZJZUIULUMABCDENABCD
      EOPUIUOUPABCDERABCDESPUIUJFGZIFGUKUNUQTUFUIDFGURABCDEUACDUBUCUDUJIUEUGUH
      $.
  $}

  ${
    $d A x u v w z $.
    $( The reciprocal of a positive real exists.  Part of Proposition 9-3.7(v)
       of [Gleason] p. 124.  (Contributed by NM, 15-May-1996.)  (Revised by
       Mario Carneiro, 12-Jun-2013.) $)
    recexpr $p |- ( A e. P. -> E. x e. P. ( A .P. x ) = 1P ) $=
      ( vz vw vu vv cnp wcel cv cltq wbr crq cfv wa wex cab cmp co c1p wceq cop
      c2nd c1st wrex breq12 simpr fveq2d eleq1d anbi12d cbvexdva cbvabv breq12d
      simpl opeq12i recexprlempr recexprlemex oveq2 eqeq1d rspcev syl2anc ) BGH
      CIZDIZJKZVBLMZBUBMZHZNZDOZCPZVBVAJKZVDBUCMZHZNZDOZCPZUAZGHBVPQRZSTZBAIZQR
      ZSTZAGUDEFBVPVIEIZFIZJKZWCLMZVEHZNZFOZEPVOWCWBJKZWEVKHZNZFOZEPVHWHCEVAWBT
      ZVGWGDFWMVBWCTZNZVCWDVFWFVAWBVBWCJUEWOVDWEVEWOVBWCLWMWNUFZUGZUHUIUJUKVNWL
      CEWMVMWKDFWOVJWIVLWJWOVBWCVAWBJWPWMWNUMULWOVDWEVKWQUHUIUJUKUNZUOEFBVPWRUP
      WAVRAVPGVSVPTVTVQSVSVPBQUQURUSUT $.
  $}

  ${
    $d A f g h s t u v x $.  $d B f g h s t u v x $.
    $( Lemma for ~ aptipr .  (Contributed by Jim Kingdon, 28-Jan-2020.) $)
    aptiprleml $p |- ( ( A e. P. /\ B e. P. /\ -. B <P A ) ->
        ( 1st ` A ) C_ ( 1st ` B ) ) $=
      ( vs vt vu vv cnp wcel wbr cfv cv wa cltq wrex sylan cplq co wceq syl2anc
      cnq vx vf vg vh cltp wn w3a c1st c2nd cop prop prnmaxl ad2ant2rl ad2antll
      wi ltexnqi simplr ad2antrr simprl prarloc2 adantr simpll ad3antrrr simprr
      w3o elprnql nqtri3or simplrl addclnq wb ltanqg adantl addcomnqg caovord2d
      simplrr eqeltrd prcdnql sylbid jctild eleq1 rspcev ltdfpr mpbird pm2.21dd
      imp anbi12d ex syl5ibcom 3jaod mpd rexlimddv expr 3impa ssrdv ) AGHZBGHZB
      AUEIZUFZUGUAAUHJZBUHJZWOWPWRUAKZWSHZXAWTHZUOWOWPLZWRXBXCXDWRXBLZLZXACKZMI
      ZXCCWSWOXBXHCWSNZWPWRWOWSAUIJZUJGHZXBXIAUKZCXAXJWSULOUMXFXGWSHZXHLZLZXADK
      ZPQZXGRZXCDTXHXRDTNXFXMDXAXGUPUNXOXPTHZXRLZLZEKZXPPQZBUIJZHZXCEWTYAWPXSYE
      EWTNZXFWPXNXTWOWPXEUQURZXOXSXRUSWPWTYDUJGHZXSYFBUKZXPYDWTEUTOSYAYBWTHZYEL
      ZLZYBXAMIZYBXARZXAYBMIZVEZXCYLYBTHZXATHZYPYLWPYJYQYAWPYKYGVAZYAYJYEUSZWPY
      HYJYQYIYBYDWTVFOSZYLWOXBYRXFWOXNXTYKWOWPXEVBVCZXFXBXNXTYKXDWRXBVDVCWOXKXB
      YRXLXAXJWSVFOSZYBXAVGSYLYMXCYNYOYLYMXCYLYMLZWQXCUUDWQFKZYDHZUUEWSHZLZFTNZ
      UUDYCTHZYEYCWSHZLZUUIUUDYQXSUUJYLYQYMUUAVAYLXSYMXOXSXRYKVHZVAYBXPVISYLYMU
      ULYLYMUUKYEYLYMYCXQMIZUUKYLUBUCUDYBXAXPMTPUBKZTHZUCKZTHZUDKZTHUGUUOUUQMIU
      USUUOPQUUSUUQPQMIVJYLUUOUUQUUSVKVLUUAUUCUUMUUPUURLUUOUUQPQUUQUUOPQRYLUUOU
      UQVMVLVNYLWOXQWSHZUUNUUKUOZUUBYLXQXGWSXOXSXRYKVOXOXMXTYKXFXMXHUSURVPWOXKU
      UTUVAXLXQYCXJWSVQOSVRYAYJYEVDVSWEUUHUULFYCTUUEYCRUUFYEUUGUUKUUEYCYDVTUUEY
      CWSVTWFWASYLWQUUIVJZYMYLWPWOUVBYSUUBBAFWBSVAWCXOWRXTYKYMXDWRXBXNVHVCWDWGY
      LYJYNXCYTYBXAWTVTWHYLWPYJYOXCUOZYSYTWPYHYJUVCYIYBXAYDWTVQOSWIWJWKWKWKWLWM
      WN $.

    $( Lemma for ~ aptipr .  (Contributed by Jim Kingdon, 28-Jan-2020.) $)
    aptiprlemu $p |- ( ( A e. P. /\ B e. P. /\ -. B <P A ) ->
        ( 2nd ` B ) C_ ( 2nd ` A ) ) $=
      ( vs vt vu cnp wcel wbr cfv cv cltq wrex sylan cplq cnq syl2anc ad3antrrr
      wa co adantr vx vf vg vh cltp wn w3a c2nd c1st cop prop prnminu 3ad2antl2
      wceq simprr ltexnqi syl simpl1 ad2antrr simprl prarloc2 w3o simpr elprnqu
      simpl2 elprnql addclnq nqtri3or wi simplrr breq1 biimprd wb ltanqg adantl
      imp addcomnqg caovord2d mpbird prcdnql mpd rspe syl12anc simpll3 pm2.21dd
      ltdfpr ex eleq1 syl5ibrcom prcunqu 3jaod rexlimddv ssrdv ) AFGZBFGZBAUEHZ
      UFZUGZUABUHIZAUHIZWRUAJZWSGZXAWTGZWRXBRZCJZXAKHZXCCWSWOWNXBXFCWSLZWQWOBUI
      IZWSUJFGZXBXGBUKZCXAWSXHULMUMXDXEWSGZXFRZRZXEDJZNSZXAUNZXCDOXMXFXPDOLXDXK
      XFUODXEXAUPUQXMXNOGZXPRZRZEJZXNNSZWTGZXCEAUIIZXSWNXQYBEYCLZXDWNXLXRWNWOWQ
      XBURZUSXMXQXPUTZWNYCWTUJFGZXQYDAUKZXNWTYCEVAMPXSXTYCGZYBRZRZXAYAKHZXAYAUN
      ZYAXAKHZVBZXCYKXAOGZYAOGZYOYKWOXBYPXDWOXLXRYJWNWOWQXBVEZQZXDXBXLXRYJWRXBV
      CQWOXIXBYPXJXAWSXHVDMPYKXTOGZXQYQYKWNYIYTXDWNXLXRYJYEQZXSYIYBUTZWNYGYIYTY
      HXTWTYCVFMPZXSXQYJYFTZXTXNVGPXAYAVHPYKYLXCYMYNYKYLXCYKYLRZWPXCUUEWPXKXEYC
      GZRZCOLZUUEXEOGZXKUUFUUHXMUUIXRYJYLXMWOXKUUIXDWOXLYRTXDXKXFUTZWOXIXKUUIXJ
      XEWSXHVDMPQZXMXKXRYJYLUUJQUUEXEXTKHZUUFUUEUULXOYAKHZYKYLUUMYKXPYLUUMVIXMX
      QXPYJVJXPUUMYLXOXAYAKVKVLUQVPUUEUBUCUDXEXTXNKONUBJZOGZUCJZOGZUDJZOGUGUUNU
      UPKHUURUUNNSUURUUPNSKHVMUUEUUNUUPUURVNVOUUKYKYTYLUUCTYKXQYLUUDTUUOUUQRUUN
      UUPNSUUPUUNNSUNUUEUUNUUPVQVOVRVSUUEWNYIUULUUFVIZYKWNYLUUATZYKYIYLUUBTWNYG
      YIUUSYHXTXEWTYCVTMPWAUUGCOWBWCUUEWOWNWPUUHVMYKWOYLYSTUUTBACWFPVSXMWQXRYJY
      LWNWOWQXBXLWDQWEWGYKXCYMYBXSYIYBUOZXAYAWTWHWIYKWNYBYNXCVIZUUAUVAWNYGYBUVB
      YHXAYAWTYCWJMPWKWAWLWLWLWGWM $.

    $( Apartness of positive reals is tight.  (Contributed by Jim Kingdon,
       28-Jan-2020.) $)
    aptipr $p |- ( ( A e. P. /\ B e. P. /\ -. ( A <P B \/ B <P A ) )
        -> A = B ) $=
      ( cnp wcel cltp wbr wo wn w3a wceq c1st cfv c2nd simp1 aptiprleml syl3anc
      wss wa eqssd aptiprlemu simp2 ioran biimpi 3ad2ant3 simprd simpld 3adant3
      wb preqlu mpbir2and ) ACDZBCDZABEFZBAEFZGHZIZABJZAKLZBKLZJZAMLZBMLZJZUPUR
      USUPUKULUNHZURUSQUKULUONZUKULUOUAZUPUMHZVDUOUKVGVDRZULUOVHUMUNUBUCUDZUEZA
      BOPUPULUKVGUSURQVFVEUPVGVDVIUFZBAOPSUPVAVBUPULUKVGVAVBQVFVEVKBATPUPUKULVD
      VBVAQVEVFVJABTPSUKULUQUTVCRUHUOABUIUGUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Ordering property of multiplication.  (Contributed by Jim Kingdon,
       18-Feb-2020.) $)
    ltmprr $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( ( C .P. A ) <P ( C .P. B ) -> A <P B ) ) $=
      ( vy vx cnp wcel cmp co cltp wbr wa cv c1p wceq syl2anc syl3anc mulcomprg
      cpp oveq1d w3a wrex recexpr 3ad2ant3 adantr ltexpri simplll simp1d simprl
      ad2antlr simplrl mulclpr ltaddpr simprr oveq2d distrprg mulassprg simplrr
      simp3d eqtrd 1pr mpan2 1idpr eqtr3d syl 3eqtr2d 3eqtr3d breqtrd rexlimddv
      simp2d ex ) AFGZBFGZCFGZUAZCAHIZCBHIZJKZABJKZVOVRLZCDMZHIZNOZVSDFVOWCDFUB
      ZVRVNVLWDVMDCUCUDUEVTWAFGZWCLZLZVPEMZSIZVQOZVSEFVRWJEFUBVOWFEVPVQUFUJWGWH
      FGZWJLZLZAAWAWHHIZSIZBJWMVLWNFGZAWOJKWMVLVMVNVOVRWFWLUGZUHZWMWEWKWPVTWEWC
      WLUKZWGWKWJUIZWAWHULPAWNUMPWMWAWIHIZWAVQHIZWOBWMWIVQWAHWGWKWJUNUOWMXAWAVP
      HIZWNSIZWACHIZAHIZWNSIWOWMWEVPFGZWKXAXDOWSWMVNVLXGWMVLVMVNWQUSZWRCAULPWTW
      AVPWHUPQWMXFXCWNSWMWEVNVLXFXCOWSXHWRWACAUQQTWMXFAWNSWMXFNAHIZAWMXENAHWMXE
      WBNWMWEVNXEWBOWSXHWACRPVTWEWCWLURUTZTWMVLXIAOWRVLANHIZXIAVLNFGZXKXIOVAANR
      VBAVCVDVEUTTVFWMXEBHIZNBHIZXBBWMXENBHXJTWMWEVNVMXMXBOWSXHWMVLVMVNWQVJZWAC
      BUQQWMVMXNBOXOVMBNHIZXNBVMXLXPXNOVABNRVBBVCVDVEVGVGVHVIVIVK $.
  $}

  ${
    $d A l u w x z $.
    $( For any positive real, there is an integer that is greater than it.
       This is also known as the "archimedean property".  The integer ` x ` is
       embedded into the reals as described at ~ nnprlu .  (Contributed by Jim
       Kingdon, 22-Apr-2020.) $)
    archpr $p |- ( A e. P. -> E. x e. N. A <P
        <. { l | l <Q [ <. x , 1o >. ] ~Q } ,
          { u | [ <. x , 1o >. ] ~Q <Q u } >. ) $=
      ( vz vw cnp wcel cv cfv cop cltq wbr cab cnpi wrex cnq c1st wa ad2antrr
      c2nd c1o ceq cec cltp prop syl archnqq ad2antrl simprl simprr simpr breq1
      vex ltnqex gtnqex op1st elab2 sylibr weq eleq1 anbi12d rspcev syl12anc wb
      prmu simplll nnprlu ad2antlr ltdfpr syl2anc mpbird reximdva mpd rexlimddv
      ex ) CGHZEIZCUAJZHZCDIZAIZUBKUCUDZLMZDNZWCBILMBNZKZUEMZAOPZEQVQCRJZVSKGHV
      TEQPCUFEVSWJVFUGVQVRQHZVTSZSZVRWCLMZAOPZWIWKWOVQVTAVRUHUIWMWNWHAOWMWBOHZS
      ZWNWHWQWNSZWHFIZVSHZWSWGRJZHZSZFQPZWRWKVTVRXAHZXDWMWKWPWNVQWKVTUJTWMVTWPW
      NVQWKVTUKTWRWNXEWQWNULWDWNDVRXAEUNWAVRWCLUMWEWFDWCUOBWCUPUQURUSXCVTXESFVR
      QFEUTWTVTXBXEWSVRVSVAWSVRXAVAVBVCVDWRVQWGGHZWHXDVEVQWLWPWNVGWPXFWMWNBWBDV
      HVICWGFVJVKVLVPVMVNVO $.
  $}

  ${
    $d L f g h $.  $d Q f g h l u $.  $d R f g h l u $.  $d S f g h l u $.
    $d f g h ph $.
    cauappcvgprlemcan.l $e |- ( ph -> L e. P. ) $.
    cauappcvgprlemcan.s $e |- ( ph -> S e. Q. ) $.
    cauappcvgprlemcan.r $e |- ( ph -> R e. Q. ) $.
    cauappcvgprlemcan.q $e |- ( ph -> Q e. Q. ) $.
    $( Lemma for ~ cauappcvgprlemladdrl .  Cancelling a term from both sides.
       (Contributed by Jim Kingdon, 15-Aug-2020.) $)
    cauappcvgprlemcan $p |- ( ph -> (
        ( R +Q Q ) e. ( 1st ` ( L +P. <. { l | l <Q ( S +Q Q ) } ,
          { u | ( S +Q Q ) <Q u } >. ) ) <->
        R e. ( 1st ` ( L +P. <. { l | l <Q S } ,
          { u | S <Q u } >. ) ) ) ) $=
      ( cltq wbr cab cpp co cltp wcel cnp syl2anc vf vg vh cv cop c1st cfv cplq
      w3a wb ltaprg adantl cnq nqprlu addclpr wa wceq addcomprg caovord2d nqprl
      addnqpr oveq2d breq12d addclnq addassprg syl3anc breq2d 3bitr4d 3bitr4rd
      syl ) AGUDZDLMGNDBUDZLMBNUEZFVKELMGNEVLLMBNUEZOPZQMZVMVKCLMGNCVLLMBNUEZOP
      ZVOVQOPZQMZDVOUFUGRZDCUHPZFVKECUHPZLMGNWCVLLMBNUEZOPZUFUGRZAUAUBUCVMVOVQQ
      SOUAUDZSRZUBUDZSRZUCUDZSRUIWGWIQMWKWGOPWKWIOPQMUJAWGWIWKUKULADUMRZVMSRJBD
      GUNVJAFSRZVNSRZVOSRZHAEUMRZWNIBEGUNVJZFVNUOTZACUMRZVQSRZKBCGUNVJZWHWJUPWG
      WIOPWIWGOPUQAWGWIURULUSAWLWOWAVPUJJWRBDVOGUTTAVKWBLMGNWBVLLMBNUEZWEQMZVRF
      VNVQOPZOPZQMWFVTAXBVRWEXEQAWLWSXBVRUQJKBDCGVATAWDXDFOAWPWSWDXDUQIKBECGVAT
      VBVCAWBUMRZWESRZWFXCUJAWLWSXFJKDCVDTAWMWDSRZXGHAWCUMRZXHAWPWSXIIKECVDTBWC
      GUNVJFWDUOTBWBWEGUTTAVSXEVRQAWMWNWTVSXEUQHWQXAFVNVQVEVFVGVHVI $.
  $}

  ${
    $d A p $.
    cauappcvgpr.f $e |- ( ph -> F : Q. --> Q. ) $.
    cauappcvgpr.app $e |- ( ph -> A. p e. Q. A. q e. Q. (
      ( F ` p ) <Q ( ( F ` q ) +Q ( p +Q q ) ) /\
      ( F ` q ) <Q ( ( F ` p ) +Q ( p +Q q ) ) ) ) $.
    cauappcvgpr.bnd $e |- ( ph -> A. p e. Q. A <Q ( F ` p ) ) $.
    ${
      $d L p q $.  $d ph p q $.
      cauappcvgpr.lim $e |- L = <.
        { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( F ` q ) } ,
        { u e. Q. | E. q e. Q. ( ( F ` q ) +Q q ) <Q u }
        >. $.

      ${
        $d L r s t f g h x y $.  $d A p s x $.  $d F l u p q r s t f g h x y $.
        $d ph r s t f g h x y $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is inhabited.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemm $p |- ( ph -> ( E. s e. Q. s e. ( 1st ` L )
            /\ E. r e. Q. r e. ( 2nd ` L ) ) ) $=
          ( wcel cnq cplq c1q cltq wbr cv c1st cfv wrex c2nd co wceq wral fveq2
          1nq breq2d rspcv mpsyl ltrelnq brel simpld halfnqq wa simplr ad2antrr
          syl wi ad2antlr mpd wb breq1 adantl mpbird oveq2 breq12d rspcev oveq1
          syl2anc breq1d crab cop fveq2i nqex rabex op1st eqtri elrab2 sylanbrc
          rexbidv ex reximdva a1i ffvelrnd addclnq ltaddnq id breq2 op2nd eleq1
          oveq12d jca ) AFUAZEUBUCZOZFPUDZGUAZEUEUCZOZGPUDZAWQWQQUFZCUGZFPUDZWT
          ACPOZXGACRDUCZSTZXHRPOZACIUAZDUCZSTZIPUHZXJUJMXNXJIRPXLRUGXMXICSXLRDU
          IUKULUMXJXHXIPOZCXIPPSUNUOUPVAFCUQVAAXFWSFPAWQPOZURZXFWSXRXFURZXQWQHU
          AZQUFZXTDUCZSTZHPUDZWSAXQXFUSZXSXQXEWQDUCZSTZYDYEXSYGCYFSTZXSXOYHAXOX
          QXFMUTXQXOYHVBAXFXNYHIWQPXLWQUGXMYFCSXLWQDUIUKULVCVDXFYGYHVEXRXECYFSV
          FVGVHYCYGHWQPXTWQUGYAXEYBYFSXTWQWQQVIXTWQDUIVJVKVMJUAZXTQUFZYBSTZHPUD
          ZYDJWQPWRYIWQUGZYKYCHPYMYJYAYBSYIWQXTQVLVNWDWRYLJPVOZYBXTQUFZBUAZSTZH
          PUDZBPVOZVPZUBUCYNEYTUBNVQYNYSYLJPVRVSZYRBPVRVSZVTWAWBWCWEWFVDAXIRQUF
          ZRQUFZPOZUUDXBOZXDAUUCPOZXKUUEAXPXKUUGAPPRDKXKAUJWGZWHUUHXIRWIVMZUUHU
          UCRWIVMZAUUEYOUUDSTZHPUDZUUFUUJAXKUUCUUDSTZUULUUHAUUGXKUUMUUIUUHUUCRW
          JVMUUKUUMHRPXTRUGZYOUUCUUDSUUNYBXIXTRQXTRDUIUUNWKWOVNVKVMYRUULBUUDPXB
          YPUUDUGYQUUKHPYPUUDYOSWLWDXBYTUEUCYSEYTUENVQYNYSUUAUUBWMWAWBWCXCUUFGU
          UDPXAUUDXBWNVKVMWP $.

        $( Lemma for ~ cauappcvgpr .  The lower cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemopl $p |- ( ( ph /\ s e. ( 1st ` L ) ) ->
            E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) $=
          ( wa cplq cltq wbr cnq wrex vt cv c1st cfv wcel co wceq oveq1 rexbidv
          breq1d crab cop fveq2i rabex op1st eqtri elrab2 simprbi adantl simprr
          nqex ltbtwnnqq sylib simplrl simplbi ad3antlr ltaddnq syl2anc breqtrd
          addcomnqg simprrl ltsonq ltrelnq sotri wb simprl mpbid ad2antrr simpr
          ltexnqq breqtrrd simplr ltanqg syl3anc mpbird simprrr eqtr3d sylanbrc
          rspe jca ex reximdva mpd rexlimddv ) AFUBZEUCUDZUEZOZWOHUBZPUFZWSDUDZ
          QRZWOGUBZQRZXCWPUEZOZGSTZHSWQXBHSTZAWQWOSUEZXHJUBZWSPUFZXAQRZHSTZXHJW
          OSWPXJWOUGZXLXBHSXNXKWTXAQXJWOWSPUHUJUIWPXMJSUKZXAWSPUFBUBQRHSTZBSUKZ
          ULZUCUDXOEXRUCNUMXOXQXMJSVAUNXPBSVAUNUOUPZUQZURUSWRWSSUEZXBOZOZWTUAUB
          ZQRZYDXAQRZOZXGUASYCXBYGUASTWRYAXBUTUAWTXAVBVCYCYDSUEZYGOZOZWSXCPUFZY
          DUGZGSTZXGYJWSYDQRZYMYJWSWTQRYEYNYJWSWSWOPUFZWTQYJYAXIWSYOQRWRYAXBYIV
          DZWQXIAYBYIWQXIXHXTVEVFZWSWOVGVHYJYAXIYOWTUGYPYQWSWOVJVHVIYCYHYEYFVKZ
          WSWTYDQSVLVMVNVHYJYAYHYNYMVOYPYCYHYGVPGWSYDVTVHVQYJYLXFGSYJXCSUEZOZYL
          XFYTYLOZXDXEUUAXDYOYKQRZUUAYOYDYKQUUAYEYOYDQRYJYEYSYLYRVRUUAWTYOYDQUU
          AXIYAWTYOUGYJXIYSYLYQVRZYJYAYSYLYPVRZWOWSVJVHUJVQYTYLVSZWAUUAXIYSYAXD
          UUBVOUUCYJYSYLWBZUUDWOXCWSWCWDWEUUAYSXCWSPUFZXAQRZHSTZXEUUFUUAYAUUHUU
          IUUDUUAUUHYFYJYFYSYLYCYHYEYFWFVRUUAUUGYDXAQUUAYKUUGYDUUAYAYSYKUUGUGUU
          DUUFWSXCVJVHUUEWGUJWEUUHHSWIVHXMUUIJXCSWPXJXCUGZXLUUHHSUUJXKUUGXAQXJX
          CWSPUHUJUIXSUQWHWJWKWLWMWNWN $.

        $( Lemma for ~ cauappcvgpr .  The lower cut of the putative limit is
           lower.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemlol $p |- ( ( ph /\ s <Q r /\ r e. ( 1st ` L ) ) ->
            s e. ( 1st ` L ) ) $=
          ( cv cltq wbr wcel cnq cplq vf vg vh c1st cfv w3a wrex ltrelnq simpld
          co brel 3ad2ant2 weq oveq1 breq1d rexbidv crab cop fveq2i rabex op1st
          nqex eqtri elrab2 simprbi 3ad2ant3 wa simpll2 wb ltanqg adantl simprd
          ad2antrr simplr addcomnqg caovord2d mpbid ltsonq sylancom ex reximdva
          wceq sotri mpd sylanbrc ) AFOZGOZPQZWGEUDUEZRZUFZWFSRZWFHOZTUJZWMDUEZ
          PQZHSUGZWFWIRWHAWLWJWHWLWGSRZWFWGSSPUHUKZUIULZWKWGWMTUJZWOPQZHSUGZWQW
          JAXCWHWJWRXCJOZWMTUJZWOPQZHSUGZXCJWGSWIJGUMZXFXBHSXHXEXAWOPXDWGWMTUNU
          OUPWIXGJSUQZWOWMTUJBOPQHSUGZBSUQZURZUDUEXIEXLUDNUSXIXKXGJSVBUTXJBSVBU
          TVAVCZVDVEVFWKXBWPHSWKWMSRZVGZXBWPXOXBWNXAPQZWPXOXBVGZWHXPAWHWJXNXBVH
          XQUAUBUCWFWGWMPSTUAOZSRZUBOZSRZUCOZSRUFXRXTPQYBXRTUJYBXTTUJPQVIXQXRXT
          YBVJVKWKWLXNXBWTVMWKWRXNXBWHAWRWJWHWLWRWSVLULVMWKXNXBVNXSYAVGXRXTTUJX
          TXRTUJWBXQXRXTVOVKVPVQWNXAWOPSVRUHWCVSVTWAWDXGWQJWFSWIJFUMZXFWPHSYCXE
          WNWOPXDWFWMTUNUOUPXMVDWE $.

        $( Lemma for ~ cauappcvgpr .  The upper cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemopu $p |- ( ( ph /\ r e. ( 2nd ` L ) ) ->
            E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) $=
          ( cv wcel wa cltq cnq wrex c2nd cfv cplq co wbr weq breq2 rexbidv cop
          crab fveq2i nqex rabex op2nd eqtri elrab2 simprbi adantl simprr sylib
          ltbtwnnqq simplr simplrl adantr simprl rspe syl2anc sylanbrc reximdva
          jca ex mpd rexlimddv ) AGOZEUAUBZPZQZHOZDUBZVRUCUDZVNRUEZFOZVNRUEZWBV
          OPZQZFSTZHSVPWAHSTZAVPVNSPWGVTBOZRUEZHSTZWGBVNSVOBGUFWIWAHSWHVNVTRUGU
          HVOJOVRUCUDVSRUEHSTZJSUJZWJBSUJZUIZUAUBWMEWNUANUKWLWMWKJSULUMWJBSULUM
          UNUOZUPUQURVQVRSPZWAQQZVTWBRUEZWCQZFSTZWFWQWAWTVQWPWAUSFVTVNVAUTWQWSW
          EFSWQWBSPZQZWSWEXBWSQZWCWDXBWRWCUSXCXAWRHSTZWDWQXAWSVBXCWPWRXDXBWPWSV
          QWPWAXAVCVDXBWRWCVEWRHSVFVGWJXDBWBSVOBFUFWIWRHSWHWBVTRUGUHWOUPVHVJVKV
          IVLVM $.

        $( Lemma for ~ cauappcvgpr .  The upper cut of the putative limit is
           upper.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemupu $p |- ( ( ph /\ s <Q r /\ s e. ( 2nd ` L ) ) ->
            r e. ( 2nd ` L ) ) $=
          ( cv cltq wbr wcel cnq wrex c2nd cfv w3a cplq ltrelnq simprd 3ad2ant2
          brel weq breq2 rexbidv crab cop fveq2i nqex rabex op2nd eqtri simprbi
          co elrab2 3ad2ant3 wi ltsonq sotri expcom reximdv mpd sylanbrc ) AFOZ
          GOZPQZVJEUAUBZRZUCZVKSRZHOZDUBZVQUDUTZVKPQZHSTZVKVMRVLAVPVNVLVJSRZVPV
          JVKSSPUEUHUFUGVOVSVJPQZHSTZWAVNAWDVLVNWBWDVSBOZPQZHSTZWDBVJSVMBFUIWFW
          CHSWEVJVSPUJUKVMJOVQUDUTVRPQHSTZJSULZWGBSULZUMZUAUBWJEWKUANUNWIWJWHJS
          UOUPWGBSUOUPUQURZVAUSVBVOWCVTHSVLAWCVTVCVNWCVLVTVSVJVKPSVDUEVEVFUGVGV
          HWGWABVKSVMBGUIWFVTHSWEVKVSPUJUKWLVAVI $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is rounded.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemrnd $p |- ( ph -> ( A. s e. Q. ( s e. ( 1st ` L ) <->
              E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) /\
            A. r e. Q. ( r e. ( 2nd ` L ) <->
              E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) ) ) $=
          ( cv cfv wcel wa cnq wrex c1st cltq wb wral c2nd cauappcvgprlemopl ex
          cauappcvgprlemlol 3expib rexlimdvw impbid ralrimivw cauappcvgprlemopu
          wbr cauappcvgprlemupu jca ) AFOZEUAPZQZUQGOZUBUNZUTURQZRZGSTZUCZFSUDU
          TEUEPZQZVAUQVFQZRZFSTZUCZGSUDAVEFSAUSVDAUSVDABCDEFGHIJKLMNUFUGAVCUSGS
          AVAVBUSABCDEFGHIJKLMNUHUIUJUKULAVKGSAVGVJAVGVJABCDEFGHIJKLMNUMUGAVIVG
          FSAVAVHVGABCDEFGHIJKLMNUOUIUJUKULUP $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is disjoint.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemdisj $p |- ( ph -> A. s e. Q.
            -. ( s e. ( 1st ` L ) /\ s e. ( 2nd ` L ) ) ) $=
          ( wcel wa cnq cplq co cltq wbr vf vg vh cv c1st cfv c2nd wn wrex wfal
          wral simpl ralimi syl adantr weq oveq1 breq1d rexbidv crab cop fveq2i
          nqex rabex op1st eqtri elrab2 simprbi oveq2 fveq2 breq12d sylib breq2
          cbvrexv anim12i reeanv sylibr adantl r19.29d2r simprl jca wi ad3antlr
          op2nd simplbi simplr addclnq syl2anc ad3antrrr ffvelrnd simpr wor w3a
          wf ltsonq sotr mpan syl3anc syl5 simprr jcad wceq addcomnqg addassnqg
          a1i caov12d anbi1d sylibd ltanqg sylibrd so2nr pm2.21d syld rexlimdva
          wb mpd inegd ralrimivw ) AFUDZEUEUFZNZXSEUGUFZNZOZUHFPAYDAYDOZHUDZDUF
          ZGUDZDUFZYFYHQRZQRZSTZXSYFQRZYGSTZYIYHQRZXSSTZOZOZGPUIZHPUIUJYEYLYQHG
          PPAYLGPUKZHPUKZYDAYLYIYGYJQRSTZOZGPUKZHPUKUUAKUUDYTHPUUCYLGPYLUUBULUM
          UMUNUOYDYQGPUIHPUIZAYDYNHPUIZYPGPUIZOUUEYAUUFYCUUGYAXSYHQRZYISTZGPUIZ
          UUFYAXSPNZUUJIUDZYHQRZYISTZGPUIZUUJIXSPXTIFUPZUUNUUIGPUUPUUMUUHYISUUL
          XSYHQUQURUSXTUUOIPUTZYOBUDZSTZGPUIZBPUTZVAZUEUFUUQEUVBUEMVBUUQUVAUUOI
          PVCVDZUUTBPVCVDZVEVFVGZVHUUIYNGHPGHUPUUHYMYIYGSYHYFXSQVIYHYFDVJVKVNVL
          YCUUKUUGUUTUUGBXSPYBBFUPUUSYPGPUURXSYOSVMUSYBUVBUGUFUVAEUVBUGMVBUUQUV
          AUVCUVDWDVFVGVHVOYNYPHGPPVPVQVRVSYEYSUJHPYEYFPNZOZYRUJGPUVGYHPNZOZYRX
          SYOSTZYPOZUJUVIYRYFXSQRZYFYOQRZSTZYPOZUVKUVIYRYMYKSTZYPOUVOUVIYRUVPYP
          YRYNYLOZUVIUVPYRYNYLYLYNYPVTYLYQULWAUVIYMPNZYGPNZYKPNZUVQUVPWBZUVIUUK
          UVFUVRYDUUKAUVFUVHYAUUKYCYAUUKUUJUVEWEUOWCZYEUVFUVHWFZXSYFWGWHUVIPPYF
          DAPPDWNYDUVFUVHJWIZUWCWJUVIYIPNZYJPNZUVTUVIPPYHDUWDUVGUVHWKZWJZUVIUVF
          UVHUWFUWCUWGYFYHWGWHYIYJWGWHPSWLZUVRUVSUVTWMUWAWOPYMYGYKSWPWQWRWSYRYP
          WBUVIYLYNYPWTXEXAUVIUVPUVNYPUVIYMUVLYKUVMSUVIUUKUVFYMUVLXBUWBUWCXSYFX
          CWHUVIUAUBUCYIYFYHPQUWHUWCUWGUAUDZPNZUBUDZPNZOUWJUWLQRZUWLUWJQRXBUVIU
          WJUWLXCVRUWKUWMUCUDZPNWMUWNUWOQRUWJUWLUWOQRQRXBUVIUWJUWLUWOXDVRXFVKXG
          XHUVIUVJUVNYPUVIUUKYOPNZUVFUVJUVNXOUWBUVIUWEUVHUWPUWHUWGYIYHWGWHZUWCX
          SYOYFXIWRXGXJUVIUVKUJUVIUUKUWPUVKUHZUWBUWQUWIUUKUWPOUWRWOPXSYOSXKWQWH
          XLXMXNXNXPXQXR $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is located.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemloc $p |- ( ph -> A. s e. Q. A. r e. Q.
            ( s <Q r -> ( s e. ( 1st ` L ) \/ r e. ( 2nd ` L ) ) ) ) $=
          ( cltq wbr wcel cnq cplq co vy vx vf vg vh cv c1st c2nd wo wi wa wceq
          wrex ltexnqi adantl subhalfnqq ad2antrl simprr simplrl adantr syl2anc
          cfv ltanqi simplrr breqtrd simprl addclnq wf ad4antr ffvelrnd wor w3a
          ltsonq sowlin mpan syl3anc simpr addassnqg breq1d mpbird wb addcomnqg
          ltanqg caovord2d oveq2 fveq2 breq12d rspcev oveq1 rexbidv crab fveq2i
          mpd cop nqex rabex op1st eqtri elrab2 sylanbrc ex oveq12d sylan breq2
          id op2nd orim12d rexlimddv ralrimivva ) AFUFZGUFZOPZXJEUGVBZQZXKEUHVB
          ZQZUIZUJFGRRAXJRQZXKRQZUKZUKZXLXQYAXLUKZXJUAUFZSTZXKULZXQUARXLYEUARUM
          YAUAXJXKUNUOYBYCRQZYEUKZUKZUBUFZYISTZYCOPZXQUBRYFYKUBRUMYBYEUBYCUPUQY
          HYIRQZYKUKZUKZXJYJSTZYIDVBZYISTZOPZYQXKOPZUIZXQYNYOXKOPZYTYNYOYDXKOYN
          YKXRYOYDOPYHYLYKURYHXRYMYBXRYGAXRXSXLUSUTUTZYJYCXJVCVAYBYFYEYMVDVEYNY
          ORQZXSYQRQZUUAYTUJZYNXRYJRQZUUCUUBYNYLYLUUFYHYLYKVFZUUGYIYIVGVAXJYJVG
          VAYHXSYMYBXSYGAXRXSXLVDUTUTZYNYPRQZYLUUDYNRRYIDARRDVHXTXLYGYMKVIUUGVJ
          ZUUGYPYIVGVAROVKUUCXSUUDVLUUEVMRYOXKYQOVNVOVPWMYNYRXNYSXPYNYRXNYNYRUK
          ZXRXJHUFZSTZUULDVBZOPZHRUMZXNYNXRYRUUBUTZUUKYLXJYISTZYPOPZUUPYHYLYKYR
          USZUUKUUSUURYISTZYQOPZUUKUVBYRYNYRVQUUKUVAYOYQOUUKXRYLYLUVAYOULUUQUUT
          UUTXJYIYIVRVPVSVTUUKUCUDUEUURYPYIORSUCUFZRQZUDUFZRQZUEUFZRQVLUVCUVEOP
          UVGUVCSTUVGUVESTOPWAUUKUVCUVEUVGWCUOUUKXRYLUURRQUUQUUTXJYIVGVAYNUUIYR
          UUJUTUUTUVDUVFUKUVCUVESTUVEUVCSTULUUKUVCUVEWBUOWDVTUUOUUSHYIRUULYIULZ
          UUMUURUUNYPOUULYIXJSWEUULYIDWFZWGWHVAJUFZUULSTZUUNOPZHRUMZUUPJXJRXMUV
          JXJULZUVLUUOHRUVNUVKUUMUUNOUVJXJUULSWIVSWJXMUVMJRWKZUUNUULSTZBUFZOPZH
          RUMZBRWKZWNZUGVBUVOEUWAUGNWLUVOUVTUVMJRWOWPZUVSBRWOWPZWQWRWSWTXAYNYSX
          PYNYSUKXSUVPXKOPZHRUMZXPYNXSYSUUHUTYNYLYSUWEUUGUWDYSHYIRUVHUVPYQXKOUV
          HUUNYPUULYISUVIUVHXEXBVSWHXCUVSUWEBXKRXOUVQXKULUVRUWDHRUVQXKUVPOXDWJX
          OUWAUHVBUVTEUWAUHNWLUVOUVTUWBUWCXFWRWSWTXAXGWMXHXHXAXI $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is a positive real.
           (Contributed by Jim Kingdon, 20-Jun-2020.) $)
        cauappcvgprlemcl $p |- ( ph -> L e. P. ) $=
          ( vs vr cnq wcel cv wrex wa wral cpw cxp c1st cfv c2nd cltq wbr wb wn
          wo wi w3a cnp cauappcvgprlemm cplq co crab cop wss ssrab2 elpw2 mpbir
          nqex opelxpi mp2an eqeltri jctil cauappcvgprlemrnd cauappcvgprlemdisj
          cauappcvgprlemloc 3jca elnp1st2nd sylanbrc ) AEOUAZVNUBZPZMQZEUCUDZPZ
          MORNQZEUEUDZPZNORSZSVSVQVTUFUGZVTVRPSNORUHMOTWBWDVQWAPZSMORUHNOTSZVSW
          ESUIMOTZWDVSWBUJUKNOTMOTZULEUMPAWCVPABCDEMNFGHIJKLUNEHQFQZUOUPWIDUDZU
          FUGFORZHOUQZWJWIUOUPBQUFUGFORZBOUQZURZVOLWLVNPZWNVNPZWOVOPWPWLOUSWKHO
          UTWLOVCVAVBWQWNOUSWMBOUTWNOVCVAVBWLWNVNVNVDVEVFVGAWFWGWHABCDEMNFGHIJK
          LVHABCDEMFGHIJKLVIABCDEMNFGHIJKLVJVKENMVLVM $.
      $}

      ${
        $d F f g h l u p q r s t v $.  $d L f g h q r s t $.
        $d L f g h s t v x y $.  $d S f g h l q r s t u $.
        $d S f g h l s t u v x y $.  $d ph f g h q r s t v $.
        cauappcvgprlemladd.s $e |- ( ph -> S e. Q. ) $.
        $( Lemma for ~ cauappcvgprlemladd .  The forward subset relationship
           for the upper cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
        cauappcvgprlemladdfu $p |- ( ph ->
            ( 2nd ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) C_
            ( 2nd ` <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) ) $=
          ( cltq wbr co cplq cnq wcel vr vs vt vf vg vh vx cab cop cpp c2nd cfv
          vy cv wrex crab wa cnp wb cauappcvgprlemcl nqprlu syl df-iplp addclnq
          genpelvu syl2anc biimpa breq2 rexbidv fveq2i rabex op2nd eqtri elrab2
          wceq nqex biimpi adantr adantl simpld vex ltnqex gtnqex elab2 ltrelnq
          brel sylbi simprd ad2antll mpbird ad2antrr ad5antr wf simplr ffvelrnd
          eleq1 ltanqg syl3anc mpbid simpr w3a addcomnqg caovord2d ltsonq sotri
          simpllr breqtrrd ex reximdva mpd sylanbrc rexlimdvva ssrdv ) AUAFIUNZ
          DOPIUHZDBUNZOPZBUHZUIZUJQUKULZXNGUNZRQZYAEULZDRQOPGSUOZISUPZYCYARQZDR
          QZXPOPZGSUOZBSUPZUIUKULZAUAUNZXTTZYLYKTZAYMUQZYLUBUNZUCUNZRQZVOZUCXSU
          KULZUOUBFUKULZUOZYNAYMUUBAFURTXSURTZYMUUBUSABCEFGHIJKLMUTADSTZUUCNBDI
          VAVBUDUEUFUGUMFXSYLUBUCUJRUGUMUFUEUDVCUEUNZUFUNZVDVEVFVGYOYSYNUBUCUUA
          YTYOYPUUATZYQYTTZUQZUQZYSYNUUJYSUQZYLSTZYGYLOPZGSUOZYNUUKUULYRSTZUUKY
          PSTZYQSTZUUOUUKUUPYFYPOPZGSUOZUUJUUPUUSUQZYSUUIUUTYOUUGUUTUUHUUGUUTYF
          XPOPZGSUOZUUSBYPSUUAXPYPVOUVAUURGSXPYPYFOVHVIUUAYBYCOPGSUOZISUPZUVBBS
          UPZUIZUKULUVEFUVFUKMVJUVDUVEUVCISVPVKUVBBSVPVKVLVMVNVQVRVSVRZVTZUUJUU
          QYSUUHUUQYOUUGUUHUUDUUQUUHDYQOPZUUDUUQUQXQUVIBYQYTUCWAXPYQDOVHXOXRIDW
          BBDWCVLWDZDYQSSOWEWFWGWHWIVRZYPYQVDVFYSUULUUOUSUUJYLYRSWPVSWJUUKUUSUU
          NUUKUUPUUSUVGWHUUKUURUUMGSUUKYASTZUQZUURUUMUVMUURUQZYGYRYLOUVNYGYFYQR
          QZOPZUVOYROPZYGYROPUVNUVIUVPUUKUVIUVLUURUUJUVIYSUUHUVIYOUUGUUHUVIUVJV
          QWIVRWKUVNUUDUUQYFSTZUVIUVPUSAUUDYMUUIYSUVLUURNWLUUKUUQUVLUURUVKWKZUV
          NYCSTUVLUVRUVNSSYAEASSEWMYMUUIYSUVLUURJWLUUKUVLUURWNZWOUVTYCYAVDVFZDY
          QYFWQWRWSUVNUURUVQUVMUURWTUVNUDUEUFYFYPYQOSRUDUNZSTZUUESTZUUFSTXAUWBU
          UEOPUUFUWBRQUUFUUERQOPUSUVNUWBUUEUUFWQVSUWAUUKUUPUVLUURUVHWKUVSUWCUWD
          UQUWBUUERQUUEUWBRQVOUVNUWBUUEXBVSXCWSYGUVOYROSXDWEXEVFUUJYSUVLUURXFXG
          XHXIXJYIUUNBYLSYKXPYLVOYHUUMGSXPYLYGOVHVIYEYJYDISVPVKYIBSVPVKVLVNXKXH
          XLXJXHXM $.

        $( Lemma for ~ cauappcvgprlemladd .  The forward subset relationship
           for the lower cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
        cauappcvgprlemladdfl $p |- ( ph ->
            ( 1st ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) C_
            ( 1st ` <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) ) $=
          ( cltq co cplq cnq wcel wa vr vs vt vf vg vh vx vy cv wbr cab cop cpp
          c1st cfv wrex crab cnp wb cauappcvgprlemcl nqprlu syl df-iplp addclnq
          genpelvl syl2anc biimpa oveq1 breq1d rexbidv fveq2i rabex op1st eqtri
          wceq nqex elrab2 biimpi ad2antrl adantr simpld vex breq1 ltnqex elab2
          gtnqex ad2antll ltrelnq eleq1 adantl mpbird simprd ad2antrr addcomnqg
          simplr w3a addassnqg caov32d simpr wi lt2addnq syl2anr mp2and adantlr
          brel eqbrtrrd ad3antlr ex reximdva mpd sylanbrc rexlimdvva ssrdv ) AU
          AFIUIZDOUJZIUKZDBUIZOUJBUKZULZUMPUNUOZXNGUIZQPZYAEUOZDQPZOUJZGRUPZIRU
          QZYCYAQPZDQPXQOUJGRUPZBRUQZULUNUOZAUAUIZXTSZYLYKSZAYMTZYLUBUIZUCUIZQP
          ZVOZUCXSUNUOZUPUBFUNUOZUPZYNAYMUUBAFURSXSURSZYMUUBUSABCEFGHIJKLMUTADR
          SZUUCNBDIVAVBUDUEUFUGUHFXSYLUBUCUMQUGUHUFUEUDVCUEUIZUFUIZVDVEVFVGYOYS
          YNUBUCUUAYTYOYPUUASZYQYTSZTTZYSYNUUIYSTZYLRSZYLYAQPZYDOUJZGRUPZYNUUJU
          UKYRRSZUUJYPRSZYQRSZUUOUUJUUPYPYAQPZYCOUJZGRUPZUUIUUPUUTTZYSUUGUVAYOU
          UHUUGUVAYBYCOUJZGRUPZUUTIYPRUUAXNYPVOZUVBUUSGRUVDYBUURYCOXNYPYAQVHVIV
          JUUAUVCIRUQZYHXQOUJGRUPZBRUQZULZUNUOUVEFUVHUNMVKUVEUVGUVCIRVPVLUVFBRV
          PVLVMVNVQVRVSVTZWAZUUJUUQUUDUUJYQDOUJZUUQUUDTZUUIUVKYSUUHUVKYOUUGUUHU
          VKXOUVKIYQYTUCWBXNYQDOWCXPXRIDWDBDWFVMWEVRWGZVTYQDRROWHXEVBZWAZYPYQVD
          VFYSUUKUUOUSUUIYLYRRWIWJWKUUJUUTUUNUUJUUPUUTUVIWLUUJUUSUUMGRUUJYARSZT
          ZUUSUUMUVQUUSTZUUMYRYAQPZYDOUJZUVRUURYQQPZUVSYDOUVRUDUEUFYPYAYQRQUUJU
          UPUVPUUSUVJWMUUJUVPUUSWOUUJUUQUVPUUSUVOWMUDUIZRSZUUERSZTUWBUUEQPZUUEU
          WBQPVOUVRUWBUUEWNWJUWCUWDUUFRSWPUWEUUFQPUWBUUEUUFQPQPVOUVRUWBUUEUUFWQ
          WJWRUUJUUSUWAYDOUJZUVPUUJUUSTUUSUVKUWFUUJUUSWSUUIUVKYSUUSUVMWMUUSUURR
          SYCRSTUVLUUSUVKTUWFWTUUJUURYCRROWHXEUVNUURYCYQDXAXBXCXDXFYSUUMUVTUSUU
          IUVPUUSYSUULUVSYDOYLYRYAQVHVIXGWKXHXIXJYFUUNIYLRYKXNYLVOZYEUUMGRUWGYB
          UULYDOXNYLYAQVHVIVJYGYJYFIRVPVLYIBRVPVLVMVQXKXHXLXJXHXM $.

        $( Lemma for ~ cauappcvgprlemladd .  The reverse subset relationship
           for the upper cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
        cauappcvgprlemladdru $p |- ( ph ->
            ( 2nd ` <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) C_
            ( 2nd ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) ) $=
          ( cplq co cltq wbr cnq wcel vr vv vf vg vh cfv wrex crab cop c2nd cab
          cv cpp weq breq2 rexbidv nqex rabex op2nd elrab2 cauappcvgprlemladdfl
          wa c1st wn wss oveq2 fveq2 oveq1d breq12d cbvrexv a1i rabbiia oveq12d
          wb id breq1d opeq12i fveq2i syl6sseq adantr wceq wf ad2antrr ffvelrnd
          simplr addassnqg syl3anc addclnq syl2anc sylancom eqeltrrd wor ltsonq
          simpr so2nr mpan addcomnqg adantl w3a caov32d ltanqg caovord2d biimpd
          3bitr2d wral oveq1 oveq2d breq2d anbi12d ralbidv rspcv mpd rsp simpld
          wi sylc breqtrd jctird mtod nrexdv ffvelrnda elrab3 syl mtbird eleq2i
          op1st sylnibr ssneldd adantlr wo cauappcvgprlemcl nqprlu addclpr prop
          cnp prloc sylan orcomd ecased ex rexlimdva expimpd syl5bi ssrdv ) AUA
          IULZGULZOPZUUFEUFZDOPZQRZGSUGZISUHZUUHUUFOPZDOPZBULZQRZGSUGZBSUHZUIZU
          JUFZFUUEDQRIUKDUUOQRBUKUIZUMPZUJUFZUAULZUUTTUVDSTZUUNUVDQRZGSUGZVBAUV
          DUVCTZUUQUVGBUVDSUUTBUAUNUUPUVFGSUUOUVDUUNQUOUPUULUURUUKISUQURUUQBSUQ
          URUSUTAUVEUVGUVHAUVEVBZUVFUVHGSUVIUUFSTZVBZUVFUVHUVKUVFVBZUVHUUNUVBVC
          UFZTZUVKUVNVDZUVFAUVJUVOUVEAUVJVBZUVMUUEUBULZOPZUVQEUFZDOPZQRZUBSUGZI
          SUHZUVSUVQOPZDOPZUUOQRZUBSUGZBSUHZUIZVCUFZUUNAUVMUWJVEUVJAUVMUUSVCUFU
          WJABCDEFGHIJKLMNVAUUSUWIVCUULUWCUURUWHUUKUWBISUUKUWBVNUUESTUUJUWAGUBS
          GUBUNZUUGUVRUUIUVTQUUFUVQUUEOVFUWKUUHUVSDOUUFUVQEVGZVHVIVJVKVLUUQUWGB
          SUUQUWGVNUUOSTUUPUWFGUBSUWKUUNUWEUUOQUWKUUMUWDDOUWKUUHUVSUUFUVQOUWLUW
          KVOVMVHVPVJVKVLVQVRVSVTUVPUUNUWCTZUUNUWJTUVPUWMUUNUVQOPZUVTQRZUBSUGZU
          VPUWOUBSUVPUVQSTZVBZUWOUUHUUFUVQOPZOPZUVSQRZUVSUWTQRZVBZUWRUWTSTZUVSS
          TZUXCVDZUWRUUMUVQOPZUWTSUWRUUHSTZUVJUWQUXGUWTWAUWRSSUUFEASSEWBUVJUWQJ
          WCZAUVJUWQWEZWDZUXJUVPUWQWNZUUHUUFUVQWFWGZUVPUWQUUMSTZUXGSTUWRUXHUVJU
          XNUXKUXJUUHUUFWHZWIZUUMUVQWHWJZWKUWRSSUVQEUXIUXLWDZSQWLUXDUXEVBUXFWMS
          UWTUVSQWOWPWIUWRUWOUXAUXBUWRUWOUXAUWRUWOUXGDOPZUVTQRUXGUVSQRUXAUWRUWN
          UXSUVTQUWRUCUDUEUUMDUVQSOUXPADSTZUVJUWQNWCZUXLUCULZSTZUDULZSTZVBUYBUY
          DOPZUYDUYBOPWAUWRUYBUYDWQWRZUYCUYEUEULZSTWSZUYFUYHOPUYBUYDUYHOPOPWAUW
          RUYBUYDUYHWFWRWTVPUWRUCUDUEUXGUVSDQSOUYIUYBUYDQRUYHUYBOPUYHUYDOPQRVNU
          WRUYBUYDUYHXAWRUXQUXRUYAUYGXBUWRUXGUWTUVSQUXMVPXDXCUWRUVSUUHUVQUUFOPZ
          OPZUWTQUWRUVSUYKQRZUUHUVSUYJOPZQRZUWRUYLUYNVBZGSXEZUVJUYOUWRHULZEUFZU
          UHUYQUUFOPZOPZQRZUUHUYRUYSOPZQRZVBZGSXEZHSXEZUYPAVUFUVJUWQKWCUWQVUFUY
          PXOUVPVUEUYPHUVQSHUBUNZVUDUYOGSVUGVUAUYLVUCUYNVUGUYRUVSUYTUYKQUYQUVQE
          VGZVUGUYSUYJUUHOUYQUVQUUFOXFZXGVIVUGVUBUYMUUHQVUGUYRUVSUYSUYJOVUHVUIV
          MXHXIXJXKWRXLUXJUYOGSXMXPXNUWRUYJUWSUUHOUWRUWQUVJUYJUWSWAUXLUXJUVQUUF
          WQWIXGXQXRXSXTUVPUUNSTZUWMUWPVNUVPUXNUXTVUJAUVJUXHUXNASSUUFEJYAUXOWJA
          UXTUVJNVTUUMDWHWIUWBUWPIUUNSUUEUUNWAZUWAUWOUBSVUKUVRUWNUVTQUUEUUNUVQO
          XFVPUPYBYCYDUWJUWCUUNUWCUWHUWBISUQURUWGBSUQURYFYEYGYHYIVTUVLUVNUVHUVI
          UVFUVNUVHYJZUVJAUVFVULUVEAUVMUVCUIYOTZUVFVULAUVBYOTZVUMAFYOTUVAYOTZVU
          NABCEFGHIJKLMYKAUXTVUONBDIYLYCFUVAYMWIUVBYNYCUUNUVDUVCUVMYPYQYIYIYRYS
          YTUUAUUBUUCUUD $.

        ${
          $d F f g h l p q r s t u v b $.  $d L f g h s t v x y b $.
          $d S f g h l s t u v x y b $.  $d S p $.  $d b f g h p ph q r $.
          $d b u $.  $d ph q r s t v $.
          $( Lemma for ~ cauappcvgprlemladd .  The forward subset relationship
             for the lower cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
          cauappcvgprlemladdrl $p |- ( ph ->
              ( 1st ` <.
              { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
              { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
              >. ) C_
              ( 1st ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) ) $=
            ( cplq co cltq wbr cnq wcel vr vb vf vg vh cv cfv wrex crab cop cab
            c1st cpp wa oveq1 breq1d rexbidv nqex rabex op1st elrab2 c2nd wn wf
            weq ad3antrrr ffvelrnda simplr addclnq sylan syl2anc adantr simpllr
            ffvelrnd wor ltsonq mpan wceq sylancom addassnqg syl3anc w3a ltanqg
            so2nr adantl addcomnqg caovord2d oveq2d 3bitr4rd simpr eqtrd biimpd
            bitrd wral fveq2 breq12d oveq12d breq2d anbi12d ralbidv rspcv mpan9
            wb rsp sylc simprd breqtrd jctird mtod nrexdv intnand oveq2 cbvralv
            ralbii sylibr cbvrexv rabbiia id opeq12i eqtri cauappcvgprlemladdfu
            a1i sseld breq2 op2nd syl6ib cnp wo cauappcvgprlemcl nqprlu addclpr
            syl prop prloc ecased cauappcvgprlemcan mpbid ex rexlimdva expimpd
            syl5bi ssrdv ) AUAIUFZGUFZOPZUUDEUGZDOPZQRZGSUHZISUIZUUFUUDOPZDOPBU
            FZQRGSUHZBSUIZUJULUGZFUUCDQRIUKDUULQRBUKUJUMPULUGZUAUFZUUOTUUQSTZUU
            QUUDOPZUUGQRZGSUHZUNAUUQUUPTZUUIUVAIUUQSUUOIUAVEZUUHUUTGSUVCUUEUUSU
            UGQUUCUUQUUDOUOUPUQUUJUUNUUIISURUSUUMBSURUSUTVAAUURUVAUVBAUURUNZUUT
            UVBGSUVDUUDSTZUNZUUTUVBUVFUUTUNZUUSFUUCDUUDOPZQRIUKUVHUULQRBUKUJZUM
            PZULUGZTZUVBUVGUVLUUGUVJVBUGZTZUVGUVNUUGSTZUBUFZEUGZUVPOPZUVHOPZUUG
            QRZUBSUHZUNZUVGUWAUVOUVGUVTUBSUVGUVPSTZUNZUVTUVQUUDUVPOPZOPZUUFQRZU
            UFUWFQRZUNZUWDUWFSTZUUFSTZUWIVCZUWDUVQSTZUWESTZUWJUVGSSUVPEASSEVDZU
            URUVEUUTJVFZVGZUVGUVEUWCUWNUVDUVEUUTVHZUUDUVPVIVJUVQUWEVIVKUWDSSUUD
            EUVGUWOUWCUWPVLUVDUVEUUTUWCVMZVNZSQVOUWJUWKUNUWLVPSUWFUUFQWDVQVKUWD
            UVTUWGUWHUWDUVTUWGUWDUVTUVRUUDOPZUUFQRZUWGUWDUXADOPZUUGQRUVRUUDDOPZ
            OPZUUGQRUXBUVTUWDUXCUXEUUGQUWDUVRSTZUVEDSTZUXCUXEVRUVGUWCUWMUXFUWQU
            VQUVPVIVSZUWSUVGUXGUWCAUXGUURUVEUUTNVFZVLZUVRUUDDVTWAUPUWDUCUDUEUXA
            UUFDQSOUCUFZSTZUDUFZSTZUEUFZSTWBUXKUXMQRUXOUXKOPUXOUXMOPQRXCUWDUXKU
            XMUXOWCWEUWDUXFUVEUXASTUXHUWSUVRUUDVIVKUWTUXJUXLUXNUNUXKUXMOPUXMUXK
            OPVRUWDUXKUXMWFWEWGUWDUVSUXEUUGQUWDUVHUXDUVROUWDUXGUVEUVHUXDVRUXJUW
            SDUUDWFVKWHUPWIUWDUXAUWFUUFQUWDUXAUVQUVPUUDOPZOPZUWFUWDUWMUWCUVEUXA
            UXQVRUWQUVGUWCWJZUWSUVQUVPUUDVTWAUWDUXPUWEUVQOUWDUWCUVEUXPUWEVRUXRU
            WSUVPUUDWFVKWHZWKUPWMWLUWDUUFUXQUWFQUWDUVQUUFUXPOPZQRZUUFUXQQRZUWDU
            YAUYBUNZGSWNZUVEUYCUVGHUFZEUGZUUFUYEUUDOPZOPZQRZUUFUYFUYGOPZQRZUNZG
            SWNZHSWNZUWCUYDAUYNUURUVEUUTKVFZUYMUYDHUVPSHUBVEZUYLUYCGSUYPUYIUYAU
            YKUYBUYPUYFUVQUYHUXTQUYEUVPEWOZUYPUYGUXPUUFOUYEUVPUUDOUOZWHWPUYPUYJ
            UXQUUFQUYPUYFUVQUYGUXPOUYQUYRWQWRWSWTXAXBUWSUYCGSXDXEXFUXSXGXHXIXJX
            KUVGUVNUUGUUCUVPOPZUVQUVHOPQRUBSUHZISUIZUVSUULQRZUBSUHZBSUIZUJVBUGZ
            TUWBUVGUVMVUEUUGUVGBCUVHEFUBHIUWPUVGUYNUYFUVQUYEUVPOPZOPZQRZUVQUYFV
            UFOPZQRZUNZUBSWNZHSWNUYOVULUYMHSVUKUYLUBGSUBGVEZVUHUYIVUJUYKVUMVUGU
            YHUYFQVUMUVQUUFVUFUYGOUVPUUDEWOZUVPUUDUYEOXLZWQWRVUMUVQUUFVUIUYJQVU
            NVUMVUFUYGUYFOVUOWHWPWSXMXNXOACUYFQRHSWNUURUVEUUTLVFFUUEUUFQRZGSUHZ
            ISUIZUUKUULQRZGSUHZBSUIZUJUYSUVQQRZUBSUHZISUIZUVRUULQRZUBSUHZBSUIZU
            JMVURVVDVVAVVGVUQVVCISVUQVVCXCUUCSTVUPVVBGUBSGUBVEZUUEUYSUUFUVQQUUD
            UVPUUCOXLUUDUVPEWOZWPXPYBXQVUTVVFBSVUTVVFXCUULSTVUSVVEGUBSVVHUUKUVR
            UULQVVHUUFUVQUUDUVPOVVIVVHXRWQUPXPYBXQXSXTUVGUXGUVEUVHSTZUXIUWRDUUD
            VIVKZYAYCVUCUWABUUGSVUEUULUUGVRVUBUVTUBSUULUUGUVSQYDUQVUAVUDUYTISUR
            USVUCBSURUSYEVAYFXIUVFUUTUVJYGTZUVLUVNYHZUVGFYGTZUVIYGTZVVLAVVNUURU
            VEUUTABCEFGHIJKLMYIVFZUVGVVJVVOVVKBUVHIYJYLFUVIYKVKVVLUVKUVMUJYGTUU
            TVVMUVJYMUUSUUGUVMUVKYNVJVSYOUVGBUUDUUQDFIVVPUXIAUURUVEUUTVMUWRYPYQ
            YRYSYTUUAUUB $.
        $}

        ${
          $d S p $.

          $( Lemma for ~ cauappcvgpr .  This takes ` L ` and offsets it by the
             positive fraction ` S ` .  (Contributed by Jim Kingdon,
             23-Jun-2020.) $)
          cauappcvgprlemladd $p |- ( ph ->
            ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) = <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) $=
            ( co cfv cnq wceq wcel syl cltq wbr cab cop cpp cplq wrex crab c1st
            c2nd cauappcvgprlemladdfl cauappcvgprlemladdrl cauappcvgprlemladdfu
            cv eqssd cauappcvgprlemladdru wa wb cauappcvgprlemcl nqprlu addclpr
            cnp syl2anc cpw cxp npsspw sseli 1st2nd2 ssrab2 elpw2 mpbir opelxpi
            wss nqex mp2an mp1i eqeq12d xp1st xp2nd opthg bitrd mpbir2and ) AFI
            UNZDUAUBIUCDBUNZUAUBBUCUDZUEOZWCGUNZUFOWGEPZDUFOUAUBGQUGZIQUHZWHWGU
            FODUFOWDUAUBGQUGZBQUHZUDZRZWFUIPZWMUIPZRZWFUJPZWMUJPZRZAWOWPABCDEFG
            HIJKLMNUKABCDEFGHIJKLMNULUOAWRWSABCDEFGHIJKLMNUMABCDEFGHIJKLMNUPUOA
            WFVBSZWNWQWTUQZURAFVBSWEVBSZXAABCEFGHIJKLMUSADQSXCNBDIUTTFWEVAVCXAW
            NWOWRUDZWPWSUDZRZXBXAWFXDWMXEXAWFQVDZXGVEZSZWFXDRVBXHWFVFVGZWFXGXGV
            HTWMXHSZWMXERXAWJXGSZWLXGSZXKXLWJQVMWIIQVIWJQVNVJVKXMWLQVMWKBQVIWLQ
            VNVJVKWJWLXGXGVLVOWMXGXGVHVPVQXAWOXGSZWRXGSZXFXBURXAXIXNXJWFXGXGVRT
            XAXIXOXJWFXGXGVSTWOWRWPWSXGXGVTVCWATWB $.
        $}
      $}

      ${
        $d F f g h p q l u x $.  $d L q x $.  $d Q f g h p q l u x $.
        $d R f g h p q l u x $.  $d ph f g h q x $.
        cauappcvgprlem.q $e |- ( ph -> Q e. Q. ) $.
        cauappcvgprlem.r $e |- ( ph -> R e. Q. ) $.
        $( Lemma for ~ cauappcvgpr .  Part of showing the putative limit to be
           a limit.  (Contributed by Jim Kingdon, 23-Jun-2020.) $)
        cauappcvgprlem1 $p |- ( ph ->
            <. { l | l <Q ( F ` Q ) } , { u | ( F ` Q ) <Q u } >. <P
            ( L +P.
            <. { l | l <Q ( Q +Q R ) } , { u | ( Q +Q R ) <Q u } >. ) ) $=
          ( cplq co cltq cnq vx vf vg vh cfv cv wbr cab cop c1st wcel cltp wrex
          cpp wceq halfnqq syl wa simprl wral adantr fveq2 oveq1 oveq2d breq12d
          wi oveq12d breq2d anbi12d oveq2 rspc2v syl2anc mpd simpld wf ffvelrnd
          addassnqg syl3anc breqtrrd wb ltanqg adantl addcomnqg caovord2d mpbid
          w3a addclnq simprr 3eqtrd breqtrd oveq1d rexlimddv cauappcvgprlemladd
          rspcev crab fveq2d nqex rabex op1st syl6eq eleq2d breq1d elrab3 bitrd
          rexbidv mpbird cnp cauappcvgprlemcl nqprlu addclpr nqprl ) ADFUEZGJUF
          ZDEQRZSUGJUHXNBUFZSUGBUHUIZUNRZUJUEZUKZXMXLSUGJUHXLXOSUGBUHUIXQULUGZA
          XSXLHUFZQRZYAFUEZXNQRZSUGZHTUMZAUAUFZYGQRZEUOZYFUATAETUKZYIUATUMPUAEU
          PUQAYGTUKZYIURZURZYKXLYGQRZYGFUEZXNQRZSUGZYFAYKYIUSZYMYNYODQRZYGQRZYG
          QRZYPSYMXLYTSUGYNUUASUGYMXLYODYGQRZQRZYTSYMXLUUCSUGZYOXLUUBQRZSUGZYMI
          UFZFUEZYCUUGYAQRZQRZSUGZYCUUHUUIQRZSUGZURZHTUTITUTZUUDUUFURZAUUOYLLVA
          YMDTUKZYKUUOUUPVFAUUQYLOVAZYRUUNUUPXLYCDYAQRZQRZSUGZYCXLUUSQRZSUGZURI
          HDYGTTUUGDUOZUUKUVAUUMUVCUVDUUHXLUUJUUTSUUGDFVBZUVDUUIUUSYCQUUGDYAQVC
          ZVDVEUVDUULUVBYCSUVDUUHXLUUIUUSQUVEUVFVGVHVIYAYGUOZUVAUUDUVCUUFUVGUUT
          UUCXLSUVGYCYOUUSUUBQYAYGFVBZYAYGDQVJZVGVHUVGYCYOUVBUUESUVHUVGUUSUUBXL
          QUVIVDVEVIVKVLVMVNYMYOTUKZUUQYKYTUUCUOYMTTYGFATTFVOYLKVAYRVPZUURYRYOD
          YGVQVRVSYMUBUCUDXLYTYGSTQUBUFZTUKZUCUFZTUKZUDUFZTUKWFUVLUVNSUGUVPUVLQ
          RUVPUVNQRSUGVTYMUVLUVNUVPWAWBAXLTUKZYLATTDFKOVPZVAYMYSTUKZYKYTTUKYMUV
          JUUQUVSUVKUURYODWGVLZYRYSYGWGVLYRUVMUVOURUVLUVNQRUVNUVLQRUOYMUVLUVNWC
          WBWDWEYMUUAYSYHQRZYSEQRZYPYMUVSYKYKUUAUWAUOUVTYRYRYSYGYGVQVRYMYHEYSQA
          YKYIWHVDYMUVJUUQYJUWBYPUOUVKUURAYJYLPVAYODEVQVRWIWJYEYQHYGTUVGYBYNYDY
          PSYAYGXLQVJUVGYCYOXNQUVHWKVEWNVLWLAXSXLXMYAQRZYDSUGZHTUMZJTWOZUKZYFAX
          RUWFXLAXRUWFYCYAQRXNQRXOSUGHTUMZBTWOZUIZUJUEUWFAXQUWJUJABCXNFGHIJKLMN
          AUUQYJXNTUKZOPDEWGVLZWMWPUWFUWIUWEJTWQWRUWHBTWQWRWSWTXAAUVQUWGYFVTUVR
          UWEYFJXLTXMXLUOZUWDYEHTUWMUWCYBYDSXMXLYAQVCXBXEXCUQXDXFAUVQXQXGUKZXSX
          TVTUVRAGXGUKXPXGUKZUWNABCFGHIJKLMNXHAUWKUWOUWLBXNJXIUQGXPXJVLBXLXQJXK
          VLWE $.

        $( Lemma for ~ cauappcvgpr .  Part of showing the putative limit to be
           a limit.  (Contributed by Jim Kingdon, 23-Jun-2020.) $)
        cauappcvgprlem2 $p |- ( ph ->
          L <P <. { l | l <Q ( ( F ` Q ) +Q ( Q +Q R ) ) } ,
          { u | ( ( F ` Q ) +Q ( Q +Q R ) ) <Q u } >. ) $=
          ( cltq wbr cnq wcel vx cfv cplq co cv wa cab cop cltp ltaddnq syl2anc
          wrex ffvelrnd ltanqi ltbtwnnqq sylib c2nd simprl adantr simprrl fveq2
          c1st wceq oveq12d breq1d rspcev breq2 rexbidv crab fveq2i rabex op2nd
          id nqex eqtri elrab2 sylanbrc simprrr breq1 elab sylibr ltnqex gtnqex
          vex op1st syl6eleqr rspe syl12anc cnp cauappcvgprlemcl addclnq nqprlu
          wb syl ltdfpr mpbird rexlimddv ) ADFUBZDUCUDZUAUEZQRZWTWRDEUCUDZUCUDZ
          QRZUFZGJUEZXCQRZJUGZXCBUEZQRBUGZUHZUIRZUASAWSXCQRZXEUASULADXBQRZWRSTZ
          XMADSTZESTZXNOPDEUJUKASSDFKOUMZDXBWRUNUKUAWSXCUOUPAWTSTZXEUFZUFZXLWTG
          UQUBZTZWTXKVBUBZTZUFZUASULZYAXSYCYEYGAXSXEURZYAXSHUEZFUBZYIUCUDZWTQRZ
          HSULZYCYHYAXPXAYMAXPXTOUSAXSXAXDUTYLXAHDSYIDVCZYKWSWTQYNYJWRYIDUCYIDF
          VAYNVMVDVEVFUKYKXIQRZHSULZYMBWTSYBXIWTVCYOYLHSXIWTYKQVGVHYBXFYIUCUDYJ
          QRHSULZJSVIZYPBSVIZUHZUQUBYSGYTUQNVJYRYSYQJSVNVKYPBSVNVKVLVOVPVQYAWTX
          HYDYAXDWTXHTAXSXAXDVRXGXDJWTUAWDXFWTXCQVSVTWAXHXJJXCWBBXCWCWEWFYFUASW
          GWHYAGWITZXKWITZXLYGWMAUUAXTABCFGHIJKLMNWJUSAUUBXTAXCSTZUUBAXOXBSTZUU
          CXRAXPXQUUDOPDEWKUKWRXBWKUKBXCJWLWNUSGXKUAWOUKWPWQ $.
      $}

      ${
        $d F l p q r u x y $.  $d L q r x y $.  $d ph x y q $.
        $( Lemma for ~ cauappcvgpr .  The putative limit is a limit.
           (Contributed by Jim Kingdon, 20-Jun-2020.) $)
        cauappcvgprlemlim $p |- ( ph -> A. q e. Q. A. r e. Q. (
            <. { l | l <Q ( F ` q ) } , { u | ( F ` q ) <Q u } >. <P
              ( L +P. <. { l | l <Q ( q +Q r ) } ,
                { u | ( q +Q r ) <Q u } >. ) /\
            L <P <. { l | l <Q ( ( F ` q ) +Q ( q +Q r ) ) } ,
              { u | ( ( F ` q ) +Q ( q +Q r ) ) <Q u } >. ) ) $=
          ( cltq wbr cab cplq co cltp cnq vx vy cv cfv cop cpp wral wcel adantr
          wa simprl simprr cauappcvgprlem1 cauappcvgprlem2 jca ralrimivva fveq2
          weq breq2d abbidv breq1d opeq12d oveq1 oveq2d breq12d oveq12d anbi12d
          wf oveq2 cbvral2v sylib ) AIUCZUAUCZDUDZNOZIPZVNBUCZNOZBPZUEZEVLVMUBU
          CZQRZNOZIPZWBVQNOZBPZUEZUFRZSOZEVLVNWBQRZNOZIPZWJVQNOZBPZUEZSOZUJZUBT
          UGUATUGVLGUCZDUDZNOZIPZWSVQNOZBPZUEZEVLWRFUCZQRZNOZIPZXFVQNOZBPZUEZUF
          RZSOZEVLWSXFQRZNOZIPZXNVQNOZBPZUEZSOZUJZFTUGGTUGAWQUAUBTTAVMTUHZWATUH
          ZUJZUJZWIWPYEBCVMWADEGHIATTDVHYDJUIZAHUCZDUDZWSYGWRQRZQRNOWSYHYIQRNOU
          JGTUGHTUGYDKUIZACYHNOHTUGYDLUIZMAYBYCUKZAYBYCULZUMYEBCVMWADEGHIYFYJYK
          MYLYMUNUOUPWQYAXDEVLWRWAQRZNOZIPZYNVQNOZBPZUEZUFRZSOZEVLWSYNQRZNOZIPZ
          UUBVQNOZBPZUEZSOZUJUAUBGFTTUAGURZWIUUAWPUUHUUIVTXDWHYTSUUIVPXAVSXCUUI
          VOWTIUUIVNWSVLNVMWRDUQZUSUTUUIVRXBBUUIVNWSVQNUUJVAUTVBUUIWGYSEUFUUIWD
          YPWFYRUUIWCYOIUUIWBYNVLNVMWRWAQVCZUSUTUUIWEYQBUUIWBYNVQNUUKVAUTVBVDVE
          UUIWOUUGESUUIWLUUDWNUUFUUIWKUUCIUUIWJUUBVLNUUIVNWSWBYNQUUJUUKVFZUSUTU
          UIWMUUEBUUIWJUUBVQNUULVAUTVBUSVGUBFURZUUAXMUUHXTUUMYTXLXDSUUMYSXKEUFU
          UMYPXHYRXJUUMYOXGIUUMYNXFVLNWAXEWRQVIZUSUTUUMYQXIBUUMYNXFVQNUUNVAUTVB
          VDUSUUMUUGXSESUUMUUDXPUUFXRUUMUUCXOIUUMUUBXNVLNUUMYNXFWSQUUNVDZUSUTUU
          MUUEXQBUUMUUBXNVQNUUOVAUTVBUSVGVJVK $.
      $}
    $}

    ${
      $d F q y z $.  $d F r y z $.  $d F u $.  $d F p $.  $d F l $.
      $d l q y z $.  $d l r y z $.  $d q u y z $.  $d r u y z $.  $d q r $.
      $d p u $.  $d p r $.  $d p q $.  $d l u $.  $d l p $.  $d ph q $.
      $d ph p $.  $d p z $.  $d q z $.
      $( A Cauchy approximation has a limit.  A Cauchy approximation, here
         ` F ` , is similar to a Cauchy sequence but is indexed by the desired
         tolerance (that is, how close together terms needs to be) rather than
         by natural numbers.  This is basically Theorem 11.2.12 of [HoTT], p.
         (varies) with a few differences such as that we are proving the
         existence of a limit without anything about how fast it converges
         (that is, mere existence instead of existence, in HoTT terms), and
         that the codomain of ` F ` is ` Q. ` rather than ` P. ` .  We also
         specify that every term needs to be larger than a fraction ` A ` , to
         avoid the case where we have positive fractions which converge to zero
         (which is not a positive real).  (Contributed by Jim Kingdon,
         19-Jun-2020.) $)
      cauappcvgpr $p |- ( ph -> E. y e. P. A. q e. Q. A. r e. Q. (
          <. { l | l <Q ( F ` q ) } , { u | ( F ` q ) <Q u } >. <P
            ( y +P. <. { l | l <Q ( q +Q r ) } ,
            { u | ( q +Q r ) <Q u } >. ) /\
          y <P <. { l | l <Q ( ( F ` q ) +Q ( q +Q r ) ) } ,
            { u | ( ( F ` q ) +Q ( q +Q r ) ) <Q u } >. ) ) $=
        ( cv cplq co cltq wbr cnq cab cltp vz cfv wrex crab cop cnp wcel cpp wa
        wral wb wceq oveq2 fveq2 breq12d cbvrexv a1i rabbiia id oveq12d opeq12i
        breq1d cauappcvgprlemcl cauappcvgprlemlim oveq1 breq2d anbi12d 2ralbidv
        breq1 rspcev syl2anc ) AIMZUAMZNOZVMEUBZPQZUARUCZIRUDZVOVMNOZCMZPQZUARU
        CZCRUDZUEZUFUGVLGMZEUBZPQISWFVTPQCSUEZWDVLWEFMNOZPQISWHVTPQCSUEZUHOZTQZ
        WDVLWFWHNOZPQISWLVTPQCSUEZTQZUIZFRUJGRUJZWGBMZWIUHOZTQZWQWMTQZUIZFRUJGR
        UJZBUFUCACDEWDGHIJKLVRVLWENOZWFPQZGRUCZIRUDWCWFWENOZVTPQZGRUCZCRUDVQXEI
        RVQXEUKVLRUGVPXDUAGRVMWEULZVNXCVOWFPVMWEVLNUMVMWEEUNZUOUPUQURWBXHCRWBXH
        UKVTRUGWAXGUAGRXIVSXFVTPXIVOWFVMWENXJXIUSUTVBUPUQURVAZVCACDEWDFGHIJKLXK
        VDXBWPBWDUFWQWDULZXAWOGFRRXLWSWKWTWNXLWRWJWGTWQWDWIUHVEVFWQWDWMTVIVGVHV
        JVK $.
    $}
  $}

  ${
    $d A j $.
    $( Archimedean principle for fractions (reciprocal version).  (Contributed
       by Jim Kingdon, 27-Sep-2020.) $)
    archrecnq $p |- ( A e. Q. -> E. j e. N.
        ( *Q ` [ <. j , 1o >. ] ~Q ) <Q A ) $=
      ( cnq wcel crq cfv c1o cop ceq cec cltq wbr cnpi wrex recclnq archnqq syl
      cv wa wb nnnq ltrnqg syl2an recrecnq breq2d adantr bitrd rexbidva mpbid )
      ACDZAEFZBRZGHIJZKLZBMNZUMEFZAKLZBMNUJUKCDZUOAOZBUKPQUJUNUQBMUJULMDZSUNUPU
      KEFZKLZUQUJURUMCDUNVBTUTUSULUAUKUMUBUCUJVBUQTUTUJVAAUPKAUDUEUFUGUHUI $.
  $}

  ${
    caucvgprlemk.jk $e |- ( ph -> J <N K ) $.
    caucvgprlemk.jkq $e |- ( ph ->
      ( *Q ` [ <. J , 1o >. ] ~Q ) <Q Q ) $.
    $( Lemma for ~ caucvgpr .  Reciprocals of positive integers decrease as the
       positive integers increase.  (Contributed by Jim Kingdon,
       9-Oct-2020.) $)
    caucvgprlemk $p |- ( ph ->
        ( *Q ` [ <. K , 1o >. ] ~Q ) <Q Q ) $=
      ( c1o cop ceq cec crq cfv cltq wbr clti cnpi wcel wa wb syl ltrelpi mpbid
      brel ltnnnq ltrnqi cnq ltsonq ltrelnq sotri syl2anc ) ADGHIJZKLZCGHIJZKLZ
      MNZUNBMNULBMNAUMUKMNZUOACDONZUPEACPQDPQRZUQUPSAUQURECDPPOUAUCTCDUDTUBUMUK
      UETFULUNBMUFUGUHUIUJ $.
  $}

  ${
    $d A j $.
    caucvgpr.f $e |- ( ph -> F : N. --> Q. ) $.
    caucvgpr.cau $e |- ( ph ->
      A. n e. N. A. k e. N. ( n <N k ->
      ( ( F ` n ) <Q ( ( F ` k ) +Q ( *Q ` [ <. n , 1o >. ] ~Q ) ) /\
        ( F ` k ) <Q ( ( F ` n ) +Q ( *Q ` [ <. n , 1o >. ] ~Q ) ) ) ) ) $.
    ${
      $d F a b k $.  $d F f g h $.  $d F a k n $.  $d J a b $.  $d J f g h $.
      $d K a b $.  $d K f g h $.  $d S f g h $.  $d f g h ph $.
      caucvgprlemnkj.k $e |- ( ph -> K e. N. ) $.
      caucvgprlemnkj.j $e |- ( ph -> J e. N. ) $.
      caucvgprlemnkj.s $e |- ( ph -> S e. Q. ) $.
      $( Lemma for ~ caucvgpr .  Part of disjointness.  (Contributed by Jim
         Kingdon, 23-Oct-2020.) $)
      caucvgprlemnkj $p |- ( ph -> -.
          ( ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) <Q ( F ` K ) /\
          ( ( F ` J ) +Q ( *Q ` [ <. J , 1o >. ] ~Q ) ) <Q S ) ) $=
        ( clti wbr cplq co cltq wa cnq cnpi va vb vf vg c1o cop ceq cec crq cfv
        vh wn wceq ltsonq ltrelnq son2lpi simprl cv wi breq1 fveq2 opeq1 eceq1d
        wral fveq2d oveq2d breq12d oveq12d breq2d anbi12d imbi12d oveq1d breq1d
        breq2 cbvral2v sylib wcel rspc2v syl2anc mpd imp simpld adantr sotri wb
        ltanqg adantl ad2antrr ffvelrnd nnnq recclnq addcomnqg caovord2d mpbird
        w3a 3syl ltaddnq simprr jca ex mtoi anbi1d addclnq syl6bi jctird simprd
        bitrd w3o pitri3or mpjao3dan ) AGFMNZBGUEUFZUGUHZUIUJZOPZGEUJZQNZFEUJZF
        UEUFZUGUHZUIUJZOPZBQNZRZULGFUMZFGMNZAXKRZYDBXRQNZXRBQNZRZBXRQSUNUOUPYGY
        DYJYGYDRZYHYIYKYHXOXRXNOPZQNZYKXQXPYLQNZYMYGXQYCUQYGYNYDYGYNXRXPXNOPZQN
        ZAXKYNYPRZAUAURZUBURZMNZYREUJZYSEUJZYRUEUFZUGUHZUIUJZOPZQNZUUBUUAUUEOPZ
        QNZRZUSZUBTVDUATVDZXKYQUSZADURZCURZMNZUUNEUJZUUOEUJZUUNUEUFZUGUHZUIUJZO
        PZQNZUURUUQUVAOPZQNZRZUSZCTVDDTVDUULIUVGUUKYRUUOMNZUUAUURUUEOPZQNZUURUU
        HQNZRZUSDCUAUBTTUUNYRUMZUUPUVHUVFUVLUUNYRUUOMUTUVMUVCUVJUVEUVKUVMUUQUUA
        UVBUVIQUUNYREVAZUVMUVAUUEUUROUVMUUTUUDUIUVMUUSUUCUGUUNYRUEVBVCVEZVFVGUV
        MUVDUUHUURQUVMUUQUUAUVAUUEOUVNUVOVHVIVJVKUUOYSUMZUVHYTUVLUUJUUOYSYRMVNU
        VPUVJUUGUVKUUIUVPUVIUUFUUAQUVPUURUUBUUEOUUOYSEVAZVLVIUVPUURUUBUUHQUVQVM
        VJVKVOVPZAGTVQZFTVQZUULUUMUSJKUUKUUMGYSMNZXPUUBXNOPZQNZUUBYOQNZRZUSUAUB
        GFTTYRGUMZYTUWAUUJUWEYRGYSMUTUWFUUGUWCUUIUWDUWFUUAXPUUFUWBQYRGEVAZUWFUU
        EXNUUBOUWFUUDXMUIUWFUUCXLUGYRGUEVBVCVEZVFVGUWFUUHYOUUBQUWFUUAXPUUEXNOUW
        GUWHVHVIVJVKYSFUMZUWAXKUWEYQYSFGMVNUWIUWCYNUWDYPUWIUWBYLXPQUWIUUBXRXNOY
        SFEVAZVLVIUWIUUBXRYOQUWJVMVJVKVRVSVTWAWBWCXOXPYLQSUNUOWDVSYKUCUDUKBXRXN
        QSOUCURZSVQZUDURZSVQZUKURZSVQWOZUWKUWMQNUWOUWKOPUWOUWMOPQNWEZYKUWKUWMUW
        OWFZWGABSVQZXKYDLWHAXRSVQZXKYDATSFEHKWIZWHZAXNSVQZXKYDAUVSXMSVQUXCJGWJX
        MWKWPZWHUWLUWNRZUWKUWMOPUWMUWKOPUMZYKUWKUWMWLZWGWMWNYKXRYBQNZYCYIYKUWTY
        ASVQZUXHUXBAUXIXKYDAUVTXTSVQUXIKFWJXTWKWPZWHXRYAWQVSYGXQYCWRXRYBBQSUNUO
        WDVSWSWTXAAYERZYDBYAOPZYAOPZBQNZBUXMQNZRUXMBQSUNUOUPUXKYDUXNUXOUXKYDUXM
        YBQNZYCRZUXNUXKYDUXLXRQNZYCRZUXQYEYDUXSWEAYEXQUXRYCYEXOUXLXPXRQYEXNYABO
        YEXMXTUIYEXLXSUGGFUEVBVCVEVFGFEVAVGXBWGUXKUXRUXPYCAUXRUXPWEYEAUCUDUKUXL
        XRYAQSOUWPUWQAUWRWGAUWSUXIUXLSVQZLUXJBYAXCVSZUXAUXJUXEUXFAUXGWGWMWCXBXG
        UXMYBBQSUNUOWDXDAUXOYEABUXLQNZUXLUXMQNZUXOAUWSUXIUYBLUXJBYAWQVSAUXTUXIU
        YCUYAUXJUXLYAWQVSBUXLUXMQSUNUOWDVSWCXEXAAYFRZYDBYBQNZYCRZBYBQSUNUOUPUYD
        YDUYFUYDYDRZUYEYCUYGBXOQNZXOYBQNZUYEUYGUWSUXCUYHAUWSYFYDLWHAUXCYFYDUXDW
        HBXNWQVSUYGXQXPYBQNZUYIUYDXQYCUQUYDUYJYDUYDXRXPYAOPZQNZUYJAYFUYLUYJRZAU
        ULYFUYMUSZUVRAUVTUVSUULUYNUSKJUUKUYNFYSMNZXRUUBYAOPZQNZUUBYBQNZRZUSUAUB
        FGTTYRFUMZYTUYOUUJUYSYRFYSMUTUYTUUGUYQUUIUYRUYTUUAXRUUFUYPQYRFEVAZUYTUU
        EYAUUBOUYTUUDXTUIUYTUUCXSUGYRFUEVBVCVEZVFVGUYTUUHYBUUBQUYTUUAXRUUEYAOVU
        AVUBVHVIVJVKYSGUMZUYOYFUYSUYMYSGFMVNVUCUYQUYLUYRUYJVUCUYPUYKXRQVUCUUBXP
        YAOYSGEVAZVLVIVUCUUBXPYBQVUDVMVJVKVRVSVTWAXFWCXOXPYBQSUNUOWDVSBXOYBQSUN
        UOWDVSUYDXQYCWRWSWTXAAUVSUVTXKYEYFXHJKGFXIVSXJ $.
    $}

    ${
      $d B f g h $.  $d B k n $.  $d F f g h $.  $d F k n $.  $d J f g h $.
      $d J k n $.  $d f g h ph $.
      caucvgprlemnbj.b $e |- ( ph -> B e. N. ) $.
      caucvgprlemnbj.j $e |- ( ph -> J e. N. ) $.
      $( Lemma for ~ caucvgpr .  Non-existence of two elements of the sequence
         which are too far from each other.  (Contributed by Jim Kingdon,
         18-Oct-2020.) $)
      caucvgprlemnbj $p |- ( ph ->
          -. ( ( ( F ` B ) +Q ( *Q ` [ <. B , 1o >. ] ~Q ) )
            +Q ( *Q ` [ <. J , 1o >. ] ~Q ) )
            <Q ( F ` J ) ) $=
        ( cplq co cltq wbr clti wa cnpi wcel syl2anc cnq vf cfv c1o cop ceq cec
        vg vh wn wceq cv wi wral breq1 fveq2 opeq1 eceq1d fveq2d oveq2d breq12d
        crq oveq12d breq2d anbi12d imbi12d breq2 oveq1d breq1d mpd imp ffvelrnd
        rspc2v simprd nnnq recclnq 3syl addclnq ltaddnq adantr ltrelnq sotri wb
        ltsonq adantl mpbid simpld w3a ltanqg addcomnqg caovord2d w3o mpjao3dan
        pitri3or wor so2nr mpan imnan sylibr ) AFEUBZBEUBZBUCUDZUEUFZVAUBZKLZFU
        CUDZUEUFZVAUBZKLZMNZXHWSMNZUIZABFONZXIBFUJZFBONZAXLPZWSXDMNZXDXHMNZXIXO
        WTWSXCKLZMNZXPAXLXSXPPZADUKZCUKZONZYAEUBZYBEUBZYAUCUDZUEUFZVAUBZKLZMNZY
        EYDYHKLZMNZPZULZCQUMDQUMZXLXTULZHABQRZFQRZYOYPULIJYNYPBYBONZWTYEXCKLZMN
        ZYEXDMNZPZULDCBFQQYABUJZYCYSYMUUCYABYBOUNUUDYJUUAYLUUBUUDYDWTYIYTMYABEU
        OZUUDYHXCYEKUUDYGXBVAUUDYFXAUEYABUCUPUQURZUSUTUUDYKXDYEMUUDYDWTYHXCKUUE
        UUFVBVCVDVEYBFUJZYSXLUUCXTYBFBOVFUUGUUAXSUUBXPUUGYTXRWTMUUGYEWSXCKYBFEU
        OZVGVCUUGYEWSXDMUUHVHVDVEVLSVIVJVMAXQXLAXDTRZXGTRZXQAWTTRZXCTRZUUIAQTBE
        GIVKZAYQXBTRUULIBVNXBVOVPZWTXCVQSZAYRXFTRUUJJFVNXFVOVPZXDXGVRSZVSWSXDXH
        MTWCVTWAZSAXMPZXPXQXIUUSWTXDMNZXPAUUTXMAUUKUULUUTUUMUUNWTXCVRSZVSXMUUTX
        PWBAXMWTWSXDMBFEUOVHWDWEAXQXMUUQVSUURSAXNPZWSWTXGKLZMNZUVCXHMNZXIUVBUVD
        WTWSXGKLZMNZAXNUVDUVGPZAYOXNUVHULZHAYRYQYOUVIULJIYNUVIFYBONZWSYEXGKLZMN
        ZYEUVFMNZPZULDCFBQQYAFUJZYCUVJYMUVNYAFYBOUNUVOYJUVLYLUVMUVOYDWSYIUVKMYA
        FEUOZUVOYHXGYEKUVOYGXFVAUVOYFXEUEYAFUCUPUQURZUSUTUVOYKUVFYEMUVOYDWSYHXG
        KUVPUVQVBVCVDVEYBBUJZUVJXNUVNUVHYBBFOVFUVRUVLUVDUVMUVGUVRUVKUVCWSMUVRYE
        WTXGKYBBEUOZVGVCUVRYEWTUVFMUVSVHVDVEVLSVIVJWFAUVEXNAUUTUVEUVAAUAUGUHWTX
        DXGMTKUAUKZTRZUGUKZTRZUHUKZTRWGUVTUWBMNUWDUVTKLUWDUWBKLMNWBAUVTUWBUWDWH
        WDUUMUUOUUPUWAUWCPUVTUWBKLUWBUVTKLUJAUVTUWBWIWDWJWEVSWSUVCXHMTWCVTWASAY
        QYRXLXMXNWKIJBFWMSWLAXIXJPUIZXIXKULAWSTRZXHTRZUWEAQTFEGJVKAUUIUUJUWGUUO
        UUPXDXGVQSTMWNUWFUWGPUWEWCTWSXHMWOWPSXIXJWQWRVI $.
    $}

    caucvgpr.bnd $e |- ( ph -> A. j e. N. A <Q ( F ` j ) ) $.

    ${
      caucvgpr.lim $e |- L = <.
        { l e. Q. | E. j e. N.
          ( l +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) <Q ( F ` j ) } ,
        { u e. Q. | E. j e. N.
          ( ( F ` j ) +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) <Q u }
        >. $.

      ${
        $d A s $.  $d F j l $.  $d F r $.  $d F j u $.  $d L r $.  $d j ph s $.
        $d l s $.
        $( Lemma for ~ caucvgpr .  The putative limit is inhabited.
           (Contributed by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemm $p |- ( ph -> ( E. s e. Q. s e. ( 1st ` L )
              /\ E. r e. Q. r e. ( 2nd ` L ) ) ) $=
          ( wcel cnq c1o cltq cnpi cv c1st cfv wrex c2nd cplq wceq wbr wral 1pi
          fveq2 breq2d rspcv mpsyl ltrelnq brel simpld halfnqq 3syl cop ceq cec
          co wa crq simplr archrecnq syl simpr wb nnnq recclnq ad2antrr syl3anc
          ltanqg mpbid simpllr breqtrd wi rsp ad4antr mpd ltsonq sotri reximdva
          syl2anc ex oveq1 breq1d rexbidv crab fveq2i nqex rabex op1st sylanbrc
          elrab2 c1q a1i ffvelrnd addclnq sylancl df-1nqqs rec1nq eqtr3i oveq2i
          eqtri ltaddnq syl5eqbr opeq1 eceq1d fveq2d oveq12d rspcev breq2 op2nd
          1nq eleq1 jca ) AIUAZHUBUCZPZIQUDZJUAZHUEUCZPZJQUDZAXTXTUFVCZCUGZIQUD
          ZYCACRGUCZSUHZCQPZYJRTPZACDUAZGUCZSUHZDTUIZYLUJNYQYLDRTYORUGZYPYKCSYO
          RGUKZULUMUNYLYMYKQPZCYKQQSUOUPUQICURUSAYIYBIQAXTQPZVDZYIYBUUCYIVDZUUB
          XTYORUTZVAVBZVEUCZUFVCZYPSUHZDTUDZYBAUUBYIVFZUUDUUGXTSUHZDTUDZUUJUUDU
          UBUUMUUKXTDVGVHUUDUULUUIDTUUDYOTPZVDZUULUUIUUOUULVDZUUHCSUHYQUUIUUPUU
          HYHCSUUPUULUUHYHSUHZUUOUULVIUUPUUGQPZUUBUUBUULUUQVJUUPUUNUUFQPUURUUDU
          UNUULVFZYOVKUUFVLUSUUDUUBUUNUULUUKVMZUUTUUGXTXTVOVNVPUUCYIUUNUULVQVRU
          UPUUNYQUUSAUUNYQVSZUUBYIUUNUULAYRUVANYQDTVTVHWAWBUUHCYPSQWCUOWDWFWGWE
          WBKUAZUUGUFVCZYPSUHZDTUDZUUJKXTQYAUVBXTUGZUVDUUIDTUVFUVCUUHYPSUVBXTUU
          GUFWHWIWJYAUVEKQWKZYPUUGUFVCZBUAZSUHZDTUDZBQWKZUTZUBUCUVGHUVMUBOWLUVG
          UVLUVEKQWMWNZUVKBQWMWNZWOXGWQWPWGWEWBAYKWRUFVCZWRUFVCZQPZUVQYEPZYGAUV
          PQPZWRQPZUVRAUUAUWAUVTATQRGLYNAUJWSZWTXQYKWRXAXBZXQUVPWRXAXBZAUVRUVHU
          VQSUHZDTUDZUVSUWDAYNYKRRUTZVAVBZVEUCZUFVCZUVQSUHZUWFUWBAUWJUVPUVQSUWI
          WRYKUFWRVEUCUWIWRWRUWHVEXCWLXDXEXFAUVTUWAUVPUVQSUHUWCXQUVPWRXHXBXIUWE
          UWKDRTYSUVHUWJUVQSYSYPYKUUGUWIUFYTYSUUFUWHVEYSUUEUWGVAYORRXJXKXLXMWIX
          NWFUVKUWFBUVQQYEUVIUVQUGUVJUWEDTUVIUVQUVHSXOWJYEUVMUEUCUVLHUVMUEOWLUV
          GUVLUVNUVOXPXGWQWPYFUVSJUVQQYDUVQYEXRXNWFXS $.
      $}

      ${
        $d F f g h l r $.  $d F r s t $.  $d F u $.  $d L f g h j r t $.
        $d L s $.  $d j l r s $.  $d j ph f g h r t $.  $d ph s $.
        $d f g h s t $.  $d j u r s $.
        $( Lemma for ~ caucvgpr .  The lower cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemopl $p |- ( ( ph /\ s e. ( 1st ` L ) ) ->
            E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) $=
          ( wa cltq wbr cnq cnpi vt c1st cfv wcel c1o cop ceq cec crq cplq wrex
          cv co wceq oveq1 breq1d rexbidv crab fveq2i rabex op1st eqtri simprbi
          nqex elrab2 adantl simprr ltbtwnnqq simplrl nnnq recclnq 3syl simplbi
          sylib ad3antlr ltaddnq syl2anc addcomnqg breqtrd simprrl ltsonq sotri
          ltrelnq wb simprl ltexnqq mpbid ad2antrr eqbrtrrd simpr simplr ltanqg
          breqtrrd syl3anc mpbird simprrr eqtr3d rspe sylanbrc jca reximdva mpd
          ex rexlimddv ) AIULZHUBUCZUDZPZXEDULZUEUFUGUHZUIUCZUJUMZXIGUCZQRZXEJU
          LZQRZXOXFUDZPZJSUKZDTXGXNDTUKZAXGXESUDZXTKULZXKUJUMZXMQRZDTUKZXTKXESX
          FYBXEUNZYDXNDTYFYCXLXMQYBXEXKUJUOUPUQXFYEKSURZXMXKUJUMBULQRDTUKZBSURZ
          UFZUBUCYGHYJUBOUSYGYIYEKSVDUTYHBSVDUTVAVBZVEZVCVFXHXITUDZXNPZPZXLUAUL
          ZQRZYPXMQRZPZXSUASYOXNYSUASUKXHYMXNVGUAXLXMVHVNYOYPSUDZYSPZPZXKXOUJUM
          ZYPUNZJSUKZXSUUBXKYPQRZUUEUUBXKXLQRYQUUFUUBXKXKXEUJUMZXLQUUBXKSUDZYAX
          KUUGQRUUBYMXJSUDUUHXHYMXNUUAVIZXIVJXJVKVLZXGYAAYNUUAXGYAXTYLVMVOZXKXE
          VPVQUUBUUHYAUUGXLUNUUJUUKXKXEVRVQVSYOYTYQYRVTZXKXLYPQSWAWCWBVQUUBUUHY
          TUUFUUEWDUUJYOYTYSWEJXKYPWFVQWGUUBUUDXRJSUUBXOSUDZPZUUDXRUUNUUDPZXPXQ
          UUOXPUUGUUCQRZUUOUUGYPUUCQUUOXLUUGYPQUUOYAUUHXLUUGUNUUBYAUUMUUDUUKWHZ
          UUBUUHUUMUUDUUJWHZXEXKVRVQUUBYQUUMUUDUULWHWIUUNUUDWJZWMUUOYAUUMUUHXPU
          UPWDUUQUUBUUMUUDWKZUURXEXOXKWLWNWOUUOUUMXOXKUJUMZXMQRZDTUKZXQUUTUUOYM
          UVBUVCUUBYMUUMUUDUUIWHUUOUVBYRUUBYRUUMUUDYOYTYQYRWPWHUUOUVAYPXMQUUOUU
          CUVAYPUUOUUHUUMUUCUVAUNUURUUTXKXOVRVQUUSWQUPWOUVBDTWRVQYEUVCKXOSXFYBX
          OUNZYDUVBDTUVDYCUVAXMQYBXOXKUJUOUPUQYKVEWSWTXCXAXBXDXD $.

        $( Lemma for ~ caucvgpr .  The lower cut of the putative limit is
           lower.  (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemlol $p |- ( ( ph /\ s <Q r /\ r e. ( 1st ` L ) ) ->
            s e. ( 1st ` L ) ) $=
          ( cv cltq wcel cnq cplq vf vg vh wbr c1st cfv w3a c1o cop ceq cec crq
          co cnpi wrex ltrelnq brel simpld 3ad2ant2 oveq1 breq1d rexbidv fveq2i
          weq crab nqex rabex op1st eqtri elrab2 simprbi 3ad2ant3 wa simpll2 wb
          ltanqg adantl ad2antrr simprd simplr nnnq recclnq 3syl wceq addcomnqg
          caovord2d mpbid ltsonq sotri sylancom ex reximdva mpd sylanbrc ) AIPZ
          JPZQUDZWPHUEUFZRZUGZWOSRZWODPZUHUIUJUKZULUFZTUMZXBGUFZQUDZDUNUOZWOWRR
          WQAXAWSWQXAWPSRZWOWPSSQUPUQZURUSZWTWPXDTUMZXFQUDZDUNUOZXHWSAXNWQWSXIX
          NKPZXDTUMZXFQUDZDUNUOZXNKWPSWRKJVDZXQXMDUNXSXPXLXFQXOWPXDTUTVAVBWRXRK
          SVEZXFXDTUMBPQUDDUNUOZBSVEZUIZUEUFXTHYCUEOVCXTYBXRKSVFVGYABSVFVGVHVIZ
          VJVKVLWTXMXGDUNWTXBUNRZVMZXMXGYFXMXEXLQUDZXGYFXMVMZWQYGAWQWSYEXMVNYHU
          AUBUCWOWPXDQSTUAPZSRZUBPZSRZUCPZSRUGYIYKQUDYMYITUMYMYKTUMQUDVOYHYIYKY
          MVPVQWTXAYEXMXKVRWTXIYEXMWQAXIWSWQXAXIXJVSUSVRYHYEXCSRXDSRWTYEXMVTXBW
          AXCWBWCYJYLVMYIYKTUMYKYITUMWDYHYIYKWEVQWFWGXEXLXFQSWHUPWIWJWKWLWMXRXH
          KWOSWRKIVDZXQXGDUNYNXPXEXFQXOWOXDTUTVAVBYDVJWN $.

        $( Lemma for ~ caucvgpr .  The upper cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemopu $p |- ( ( ph /\ r e. ( 2nd ` L ) ) ->
            E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) $=
          ( wa cltq cnq wrex cnpi cv c2nd cfv wcel c1o cop ceq cec crq cplq wbr
          co weq breq2 rexbidv crab fveq2i nqex rabex op2nd eqtri elrab2 adantl
          simprbi simprr ltbtwnnqq sylib simplr simplrl adantr syl2anc sylanbrc
          simprl rspe jca ex reximdva mpd rexlimddv ) AJUAZHUBUCZUDZPZDUAZGUCZW
          DUEUFUGUHUIUCZUJULZVTQUKZIUAZVTQUKZWIWAUDZPZIRSZDTWBWHDTSZAWBVTRUDWNW
          GBUAZQUKZDTSZWNBVTRWABJUMWPWHDTWOVTWGQUNUOWAKUAWFUJULWEQUKDTSZKRUPZWQ
          BRUPZUFZUBUCWTHXAUBOUQWSWTWRKRURUSWQBRURUSUTVAZVBVDVCWCWDTUDZWHPPZWGW
          IQUKZWJPZIRSZWMXDWHXGWCXCWHVEIWGVTVFVGXDXFWLIRXDWIRUDZPZXFWLXIXFPZWJW
          KXIXEWJVEXJXHXEDTSZWKXDXHXFVHXJXCXEXKXIXCXFWCXCWHXHVIVJXIXEWJVMXEDTVN
          VKWQXKBWIRWABIUMWPXEDTWOWIWGQUNUOXBVBVLVOVPVQVRVS $.

        $( Lemma for ~ caucvgpr .  The upper cut of the putative limit is
           upper.  (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemupu $p |- ( ( ph /\ s <Q r /\ s e. ( 2nd ` L ) ) ->
            r e. ( 2nd ` L ) ) $=
          ( cv cltq wbr cnq cnpi c2nd cfv wcel w3a c1o cop ceq cec cplq co wrex
          crq ltrelnq brel simprd 3ad2ant2 breq2 rexbidv crab fveq2i nqex rabex
          weq op2nd eqtri elrab2 simprbi 3ad2ant3 ltsonq sotri reximdv sylanbrc
          wi expcom mpd ) AIPZJPZQRZVPHUAUBZUCZUDZVQSUCZDPZGUBZWCUEUFUGUHULUBZU
          IUJZVQQRZDTUKZVQVSUCVRAWBVTVRVPSUCZWBVPVQSSQUMUNUOUPWAWFVPQRZDTUKZWHV
          TAWKVRVTWIWKWFBPZQRZDTUKZWKBVPSVSBIVCWMWJDTWLVPWFQUQURVSKPWEUIUJWDQRD
          TUKZKSUSZWNBSUSZUFZUAUBWQHWRUAOUTWPWQWOKSVAVBWNBSVAVBVDVEZVFVGVHWAWJW
          GDTVRAWJWGVMVTWJVRWGWFVPVQQSVIUMVJVNUPVKVOWNWHBVQSVSBJVCWMWGDTWLVQWFQ
          UQURWSVFVL $.
      $}

      ${
        $d L r s $.  $d ph r s $.  $d F l r $.  $d F s u $.  $d L j r $.
        $d j l r s $.  $d j ph r $.  $d j r u $.
        $( Lemma for ~ caucvgpr .  The putative limit is rounded.  (Contributed
           by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemrnd $p |- ( ph -> ( A. s e. Q. ( s e. ( 1st ` L ) <->
              E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) /\
            A. r e. Q. ( r e. ( 2nd ` L ) <->
              E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) ) ) $=
          ( cv cfv wcel wa cnq c1st cltq wbr wrex caucvgprlemopl caucvgprlemlol
          wb wral c2nd ex 3expib rexlimdvw impbid caucvgprlemopu caucvgprlemupu
          ralrimivw jca ) AIPZHUAQZRZURJPZUBUCZVAUSRZSZJTUDZUGZITUHVAHUIQZRZVBU
          RVGRZSZITUDZUGZJTUHAVFITAUTVEAUTVEABCDEFGHIJKLMNOUEUJAVDUTJTAVBVCUTAB
          CDEFGHIJKLMNOUFUKULUMUPAVLJTAVHVKAVHVKABCDEFGHIJKLMNOUNUJAVJVHITAVBVI
          VHABCDEFGHIJKLMNOUOUKULUMUPUQ $.
      $}

      ${
        $d F j k $.  $d F j l $.  $d F j u $.  $d F n $.  $d L j k $.
        $d j k ph s $.  $d l s $.  $d s u $.  $d k n $.
        $( Lemma for ~ caucvgpr .  The putative limit is disjoint.
           (Contributed by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemdisj $p |- ( ph -> A. s e. Q.
            -. ( s e. ( 1st ` L ) /\ s e. ( 2nd ` L ) ) ) $=
          ( cfv cnq cplq cltq wbr cnpi cv c1st wcel c2nd wa c1o cop ceq cec crq
          wn co wrex wfal weq oveq1 breq1d rexbidv crab fveq2i nqex rabex op1st
          eqtri elrab2 simprbi opeq1 eceq1d fveq2d oveq2d fveq2 breq12d cbvrexv
          sylib breq2 anim12i reeanv sylibr adantl wf ad2antrr clti wral simprl
          op2nd wi simprr simplbi ad2antrl adantr caucvgprlemnkj rexlimdvva mpd
          pm2.21d inegd ralrimivw ) AIUAZHUBOZUCZWQHUDOZUCZUEZUKIPAXBAXBUEZWQEU
          AZUFUGZUHUIZUJOZQULZXDGOZRSZDUAZGOZXKUFUGZUHUIZUJOZQULZWQRSZUEZDTUMET
          UMZUNXBXSAXBXJETUMZXQDTUMZUEXSWSXTXAYAWSWQXOQULZXLRSZDTUMZXTWSWQPUCZY
          DJUAZXOQULZXLRSZDTUMZYDJWQPWRJIUOZYHYCDTYJYGYBXLRYFWQXOQUPUQURWRYIJPU
          SZXPBUAZRSZDTUMZBPUSZUGZUBOYKHYPUBNUTYKYOYIJPVAVBZYNBPVAVBZVCVDVEZVFY
          CXJDETDEUOZYBXHXLXIRYTXOXGWQQYTXNXFUJYTXMXEUHXKXDUFVGVHVIVJXKXDGVKVLV
          MVNXAYEYAYNYABWQPWTBIUOYMXQDTYLWQXPRVOURWTYPUDOYOHYPUDNUTYKYOYQYRWEVD
          VEVFVPXJXQEDTTVQVRVSXCXRUNEDTTXCXDTUCZXKTUCZUEZUEZXRUNUUDWQEFGXKXDATP
          GVTXBUUCKWAAFUAZXDWBSUUEGOZXIUUEUFUGUHUIUJOZQULRSXIUUFUUGQULRSUEWFETW
          CFTWCXBUUCLWAXCUUAUUBWDXCUUAUUBWGXCYEUUCWSYEAXAWSYEYDYSWHWIWJWKWNWLWM
          WOWP $.
      $}

      ${
        $d F f g h $.  $d F j l $.  $d F u $.  $d f g h m j ph r s x y $.
        $d m j l s $.  $d m j r u $.  $d L m x y $.

        $( Lemma for ~ caucvgpr .  The putative limit is located.  (Contributed
           by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemloc $p |- ( ph -> A. s e. Q. A. r e. Q.
            ( s <Q r -> ( s e. ( 1st ` L ) \/ r e. ( 2nd ` L ) ) ) ) $=
          ( cltq wbr wcel cnq cplq vy vx vm vf vg vh cv c1st c2nd wo wi wa wceq
          cfv wrex ltexnqi adantl subhalfnqq ad2antrl c1o cop ceq cec archrecnq
          co crq cnpi simprr nnnq recclnq syl simplrl lt2addnq syl22anc simplrr
          mp2and ltsonq ltrelnq sotri syl2anc ad3antrrr ltanqi ad2antrr breqtrd
          addclnq wf ad5antr simprl ffvelrnd wor w3a sowlin mpan syl3anc adantr
          mpd simpr addassnqg breq1d mpbird wb ltanqg addcomnqg caovord2d opeq1
          weq eceq1d fveq2d oveq2d fveq2 breq12d rspcev oveq1 rexbidv crab nqex
          fveq2i rabex op1st eqtri elrab2 sylanbrc ex oveq12d sylan breq2 op2nd
          orim12d rexlimddv ralrimivva ) AIUGZJUGZPQZYKHUHUNZRZYLHUIUNZRZUJZUKI
          JSSAYKSRZYLSRZULZULZYMYRUUBYMULZYKUAUGZTVEZYLUMZYRUASYMUUFUASUOUUBUAY
          KYLUPUQUUCUUDSRZUUFULZULZUBUGZUUJTVEZUUDPQZYRUBSUUGUULUBSUOUUCUUFUBUU
          DURUSUUIUUJSRZUULULZULZUCUGZUTVAZVBVCZVFUNZUUJPQZYRUCVGUUMUUTUCVGUOUU
          IUULUUJUCVDUSUUOUUPVGRZUUTULZULZYKUUSUUSTVEZTVEZUUPGUNZUUSTVEZPQZUVGY
          LPQZUJZYRUVCUVEYLPQZUVJUVCUVEUUEYLPUVCUVDUUDPQZYSUVEUUEPQUVCUVDUUKPQZ
          UULUVLUVCUUTUUTUVMUUOUVAUUTVHZUVNUVCUUSSRZUUMUVOUUMUUTUUTULUVMUKUVAUV
          OUUOUUTUVAUURSRUVOUUPVIUURVJVKUSZUUIUUMUULUVBVLZUVPUVQUUSUUJUUSUUJVMV
          NVPUUIUUMUULUVBVOUVDUUKUUDPSVQVRVSVTUUCYSUUHUUNUVBAYSYTYMVLWAZUVDUUDY
          KWBVTUUIUUFUUNUVBUUCUUGUUFVHWCWDUVCUVESRZYTUVGSRZUVKUVJUKZUVCYSUVDSRZ
          UVSUVRUVCUVOUVOUWBUVPUVPUUSUUSWEVTYKUVDWEVTUUCYTUUHUUNUVBAYSYTYMVOWAZ
          UVCUVFSRZUVOUVTUVCVGSUUPGAVGSGWFUUAYMUUHUUNUVBLWGUUOUVAUUTWHZWIZUVPUV
          FUUSWEVTSPWJUVSYTUVTWKUWAVQSUVEYLUVGPWLWMWNWPUVCUVHYOUVIYQUVCUVHYOUVC
          UVHULZYSYKDUGZUTVAZVBVCZVFUNZTVEZUWHGUNZPQZDVGUOZYOUVCYSUVHUVRWOZUWGU
          VAYKUUSTVEZUVFPQZUWOUUOUVAUUTUVHVLUWGUWRUWQUUSTVEZUVGPQZUWGUWTUVHUVCU
          VHWQUWGUWSUVEUVGPUWGYSUVOUVOUWSUVEUMUWPUVCUVOUVHUVPWOZUXAYKUUSUUSWRWN
          WSWTUWGUDUEUFUWQUVFUUSPSTUDUGZSRZUEUGZSRZUFUGZSRWKUXBUXDPQUXFUXBTVEUX
          FUXDTVEPQXAUWGUXBUXDUXFXBUQUWGYSUVOUWQSRUWPUXAYKUUSWEVTUVCUWDUVHUWFWO
          UXAUXCUXEULUXBUXDTVEUXDUXBTVEUMUWGUXBUXDXCUQXDWTUWNUWRDUUPVGDUCXFZUWL
          UWQUWMUVFPUXGUWKUUSYKTUXGUWJUURVFUXGUWIUUQVBUWHUUPUTXEXGXHZXIUWHUUPGX
          JZXKXLVTKUGZUWKTVEZUWMPQZDVGUOZUWOKYKSYNKIXFZUXLUWNDVGUXNUXKUWLUWMPUX
          JYKUWKTXMWSXNYNUXMKSXOZUWMUWKTVEZBUGZPQZDVGUOZBSXOZVAZUHUNUXOHUYAUHOX
          QUXOUXTUXMKSXPXRZUXSBSXPXRZXSXTYAYBYCUVCUVIYQUVCUVIULYTUXPYLPQZDVGUOZ
          YQUVCYTUVIUWCWOUVCUVAUVIUYEUWEUYDUVIDUUPVGUXGUXPUVGYLPUXGUWMUVFUWKUUS
          TUXIUXHYDWSXLYEUXSUYEBYLSYPBJXFUXRUYDDVGUXQYLUXPPYFXNYPUYAUIUNUXTHUYA
          UIOXQUXOUXTUYBUYCYGXTYAYBYCYHWPYIYIYIYCYJ $.
      $}

      ${
        $d A s a c d $.  $d F j l r a c d $.  $d F j s r u a c d $.  $d F n $.
        $d F j k $.  $d L j r s a c d $.  $d L k $.  $d ph r s a c d $.
        $d l r s $.  $d u r s $.  $d j k r s a c d $.  $d n k a c d $.
        $( Lemma for ~ caucvgpr .  The putative limit is a positive real.
           (Contributed by Jim Kingdon, 26-Sep-2020.) $)
        caucvgprlemcl $p |- ( ph -> L e. P. ) $=
          ( va cnq cfv cltq wbr cnpi cplq vs vr vd vc cpw cxp wcel cv c1st wrex
          c2nd wa wb wral wn wo wi w3a cnp weq fveq2 breq2d cbvralv c1o cop ceq
          sylib cec crq crab opeq1 eceq1d fveq2d oveq2d breq12d cbvrexv rabbiia
          co a1i oveq12d breq1d opeq12i eqtri caucvgprlemm wss nqex elpw2 mpbir
          opelxpi mp2an eqeltri jctil caucvgprlemrnd clti breq1 anbi12d imbi12d
          ssrab2 oveq1d cbvral2v caucvgprlemdisj caucvgprlemloc 3jca elnp1st2nd
          breq2 sylanbrc ) AHOUEZXGUFZUGZUAUHZHUIPZUGZUAOUJUBUHZHUKPZUGZUBOUJUL
          ZULXLXJXMQRZXMXKUGULUBOUJUMUAOUNXOXQXJXNUGZULUAOUJUMUBOUNULZXLXRULUOU
          AOUNZXQXLXOUPUQUBOUNUAOUNZURHUSUGAXPXIABCNEFGHUAUBIJKACDUHZGPZQRZDSUN
          CNUHZGPZQRZNSUNLYDYGDNSDNUTZYCYFCQYBYEGVAZVBVCVGZHIUHZYBVDVEZVFVHZVIP
          ZTVRZYCQRZDSUJZIOVJZYCYNTVRZBUHZQRZDSUJZBOVJZVEZYKYEVDVEZVFVHZVIPZTVR
          ZYFQRZNSUJZIOVJZYFUUGTVRZYTQRZNSUJZBOVJZVEMYRUUKUUCUUOYQUUJIOYQUUJUMY
          KOUGYPUUIDNSYHYOUUHYCYFQYHYNUUGYKTYHYMUUFVIYHYLUUEVFYBYEVDVKVLVMZVNYI
          VOVPVSVQUUBUUNBOUUBUUNUMYTOUGUUAUUMDNSYHYSUULYTQYHYCYFYNUUGTYIUUPVTWA
          VPVSVQWBWCZWDHUUDXHMYRXGUGZUUCXGUGZUUDXHUGUURYROWEYQIOWRYROWFWGWHUUSU
          UCOWEUUBBOWRUUCOWFWGWHYRUUCXGXGWIWJWKWLAXSXTYAABCNEFGHUAUBIJKYJUUQWMA
          BCNUCUDGHUAIJAFUHZEUHZWNRZUUTGPZUVAGPZUUTVDVEZVFVHZVIPZTVRZQRZUVDUVCU
          VGTVRZQRZULZUQZESUNFSUNUDUHZUCUHZWNRZUVNGPZUVOGPZUVNVDVEZVFVHZVIPZTVR
          ZQRZUVRUVQUWATVRZQRZULZUQZUCSUNUDSUNKUVMUWGUVNUVAWNRZUVQUVDUWATVRZQRZ
          UVDUWDQRZULZUQFEUDUCSSFUDUTZUVBUWHUVLUWLUUTUVNUVAWNWOUWMUVIUWJUVKUWKU
          WMUVCUVQUVHUWIQUUTUVNGVAZUWMUVGUWAUVDTUWMUVFUVTVIUWMUVEUVSVFUUTUVNVDV
          KVLVMZVNVOUWMUVJUWDUVDQUWMUVCUVQUVGUWATUWNUWOVTVBWPWQEUCUTZUWHUVPUWLU
          WFUVAUVOUVNWNXEUWPUWJUWCUWKUWEUWPUWIUWBUVQQUWPUVDUVRUWATUVAUVOGVAZWSV
          BUWPUVDUVRUWDQUWQWAWPWQWTVGYJUUQXAABCNEFGHUAUBIJKYJUUQXBXCHUBUAXDXF
          $.
      $}

      ${
        $d F m j r s t u v w z $.  $d F l $.  $d F n k $.
        $d L f g h s t x y $.  $d L k $.  $d L m j r s t v w z $.
        $d S f g h l s t u x y $.  $d S m j l r s t u v w z $.
        $d ph m r s t v w z $.  $d j k $.
        caucvgprlemladd.s $e |- ( ph -> S e. Q. ) $.
        $( Lemma for ~ caucvgpr .  Adding ` S ` after embedding in positive
           reals, or adding it as a rational.  (Contributed by Jim Kingdon,
           9-Oct-2020.) $)
        caucvgprlemladdfu $p |- ( ph ->
            ( 2nd ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) C_
            { u e. Q. | E. j e. N.
              ( ( ( F ` j ) +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) +Q S )
              <Q u } ) $=
          ( cltq wbr cplq cnq wcel vr vs vt vf vg vh vx vy vm vz vw cab cop cpp
          vv cv co c2nd cfv c1o ceq cec crq cnpi wrex crab wa cnp caucvgprlemcl
          wceq nqprlu syl df-iplp addclnq genpelvu syl2anc biimpa breq2 rexbidv
          wb fveq2i rabex op2nd eqtri elrab2 biimpi adantr adantl simpld ltnqex
          nqex vex gtnqex elab2 ltrelnq brel sylbi simprd ad2antll eleq1 mpbird
          fveq2 opeq1 eceq1d fveq2d oveq12d breq1d cbvrexv sylib ad5antr simplr
          ad2antrr wf ffvelrnd nnnq recclnq 3syl ltanqg syl3anc mpbid simpr w3a
          addcomnqg caovord2d ltsonq sotri simpllr breqtrrd reximdva mpd oveq1d
          ex sylibr elrab sylanbrc rexlimdvva ssrdv ) AUAIJUPZDPQJULZDBUPZPQZBU
          LZUMZUNUQURUSZEUPZHUSZUUEUTUMZVAVBZVCUSZRUQZDRUQZYTPQZEVDVEZBSVFZAUAU
          PZUUDTZUUOUUNTZAUUPVGZUUOUBUPZUCUPZRUQZVJZUCUUCURUSZVEUBIURUSZVEZUUQA
          UUPUVEAIVHTUUCVHTZUUPUVEVTABCEFGHIJKLMNVIADSTZUVFOBDJVKVLUDUEUFUGUHIU
          UCUUOUBUCUNRUGUHUFUEUDVMUEUPUFUPVNVOVPVQUURUVBUUQUBUCUVDUVCUURUUSUVDT
          ZUUTUVCTZVGZVGZUVBUUQUVKUVBVGZUUOSTZUUKUUOPQZEVDVEZUUQUVLUVMUVASTZUVL
          UUSSTZUUTSTZUVPUVLUVQUUJUUSPQZEVDVEZUVKUVQUVTVGZUVBUVJUWAUURUVHUWAUVI
          UVHUWAUUJYTPQZEVDVEZUVTBUUSSUVDYTUUSVJUWBUVSEVDYTUUSUUJPVRVSUVDYRUUIR
          UQUUFPQEVDVEZJSVFZUWCBSVFZUMZURUSUWFIUWGURNWAUWEUWFUWDJSWKWBUWCBSWKWB
          WCWDWEWFWGWHWGZWIZUVKUVRUVBUVIUVRUURUVHUVIUVGUVRUVIDUUTPQZUVGUVRVGUUA
          UWJBUUTUVCUCWLYTUUTDPVRYSUUBJDWJBDWMWCWNZDUUTSSPWOWPWQWRWSWGZUUSUUTVN
          VPUVBUVMUVPVTUVKUUOUVASWTWHXAUVLUIUPZHUSZUWMUTUMZVAVBZVCUSZRUQZDRUQZU
          UOPQZUIVDVEZUVOUVLUWRUUSPQZUIVDVEZUXAUVLUVTUXCUVLUVQUVTUWHWRUVSUXBEUI
          VDUUEUWMVJZUUJUWRUUSPUXDUUFUWNUUIUWQRUUEUWMHXBUXDUUHUWPVCUXDUUGUWOVAU
          UEUWMUTXCXDXEXFZXGXHXIUVLUXBUWTUIVDUVLUWMVDTZVGZUXBUWTUXGUXBVGZUWSUVA
          UUOPUXHUWSUWRUUTRUQZPQZUXIUVAPQZUWSUVAPQUXHUWJUXJUVLUWJUXFUXBUVKUWJUV
          BUVIUWJUURUVHUVIUWJUWKWFWSWGXLUXHUVGUVRUWRSTZUWJUXJVTAUVGUUPUVJUVBUXF
          UXBOXJUVLUVRUXFUXBUWLXLZUXHUWNSTUWQSTZUXLUXHVDSUWMHAVDSHXMUUPUVJUVBUX
          FUXBKXJUVLUXFUXBXKZXNUXHUXFUWPSTUXNUXOUWMXOUWPXPXQUWNUWQVNVPZDUUTUWRX
          RXSXTUXHUXBUXKUXGUXBYAUXHUJUKUOUWRUUSUUTPSRUJUPZSTZUKUPZSTZUOUPZSTYBU
          XQUXSPQUYAUXQRUQUYAUXSRUQPQVTUXHUXQUXSUYAXRWHUXPUVLUVQUXFUXBUWIXLUXMU
          XRUXTVGUXQUXSRUQUXSUXQRUQVJUXHUXQUXSYCWHYDXTUWSUXIUVAPSYEWOYFVPUVKUVB
          UXFUXBYGYHYLYIYJUVNUWTEUIVDUXDUUKUWSUUOPUXDUUJUWRDRUXEYKXGXHYMUUMUVOB
          UUOSYTUUOVJUULUVNEVDYTUUOUUKPVRVSYNYOYLYPYJYLYQ $.

        $d a b f g h l s t u x y $.  $d S a b $.  $d S k $.  $d a b j $.
        $d F a b f g h k n $.  $d L a b $.  $d A b $.  $d b a r $.
        $d f g h j $.  $d f g h r $.  $d f g h a b ph $.  $d F l $.
        $d r f g h a b k $.
        $( Lemma for ~ caucvgpr .  Adding ` S ` after embedding in positive
           reals, or adding it as a rational.  (Contributed by Jim Kingdon,
           8-Oct-2020.) $)
        caucvgprlemladdrl $p |- ( ph ->
            { l e. Q. | E. j e. N. ( l +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) <Q
            ( ( F ` j ) +Q S ) } C_
            ( 1st ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) ) $=
          ( cplq cltq cnpi cnq wcel va vr vb vf vg vh cv c1o cop ceq cec crq co
          cfv wbr wrex crab cab c1st wb opeq1 eceq1d fveq2d oveq2d fveq2 oveq1d
          cpp weq breq12d cbvrexv rabbiia wa oveq1 breq1d rexbidv elrab c2nd wf
          ad4antr clti wi wral simpr simpllr caucvgprlemnbj ad3antrrr ffvelrnda
          a1i wceq nnnq recclnq addclnq syl2anc addassnqg syl3anc ltanqg adantl
          3syl w3a ffvelrnd addcomnqg caovord2d 3bitr4rd mtbird intnand cbvralv
          nrexdv breq2d sylib oveq12d opeq12i eqtri syl caucvgprlemladdfu sseld
          ad2antlr breq2 syl6ib mtod wo caucvgprlemcl nqprlu addclpr prop prloc
          cnp sylan sylancom ecased cauappcvgprlemcan mpbid ex rexlimdva syl5bi
          expimpd ssrdv syl5eqss ) AJUGZEUGZUHUIZUJUKZULUNZPUMZYSHUNZDPUMZQUOZE
          RUPZJSUQYRUAUGZUHUIZUJUKZULUNZPUMZUUHHUNZDPUMZQUOZUARUPZJSUQZIYRDQUOJ
          URDBUGZQUOBURUIVGUMUSUNZUUGUUPJSUUGUUPUTYRSTZUUFUUOEUAREUAVHZUUCUULUU
          EUUNQUVAUUBUUKYRPUVAUUAUUJULUVAYTUUIUJYSUUHUHVAVBVCVDUVAUUDUUMDPYSUUH
          HVEVFVIVJWHVKAUBUUQUUSUBUGZUUQTUVBSTZUVBUUKPUMZUUNQUOZUARUPZVLAUVBUUS
          TZUUPUVFJUVBSJUBVHZUUOUVEUARUVHUULUVDUUNQYRUVBUUKPVMVNVOVPAUVCUVFUVGA
          UVCVLZUVEUVGUARUVIUUHRTZVLZUVEUVGUVKUVEVLZUVDIYRDUUKPUMZQUOJURUVMUURQ
          UOBURUIZVGUMZUSUNZTZUVGUVLUVQUUNUVOVQUNZTZUVLUVSUUNSTZUCUGZHUNZUWAUHU
          IZUJUKZULUNZPUMZUVMPUMZUUNQUOZUCRUPZVLZUVLUWIUVTUVLUWHUCRUVLUWARTZVLZ
          UWHUWFUUKPUMZUUMQUOZUWLUWAFGHUUHARSHVRZUVCUVJUVEUWKKVSZAGUGZFUGZVTUOU
          WQHUNZUWRHUNZUWQUHUIUJUKULUNZPUMQUOUWTUWSUXAPUMQUOVLWAFRWBGRWBZUVCUVJ
          UVEUWKLVSUVLUWKWCZUVIUVJUVEUWKWDZWEUWLUWMDPUMZUUNQUOUWFUUKDPUMZPUMZUU
          NQUOUWNUWHUWLUXEUXGUUNQUWLUWFSTZUUKSTZDSTZUXEUXGWIUWLUWBSTUWESTZUXHUV
          LRSUWAHAUWOUVCUVJUVEKWFZWGUWLUWKUWDSTUXKUXCUWAWJUWDWKWRUWBUWEWLWMZUWL
          UVJUUJSTZUXIUXDUUHWJZUUJWKZWRZAUXJUVCUVJUVEUWKOVSZUWFUUKDWNWOVNUWLUDU
          EUFUWMUUMDQSPUDUGZSTZUEUGZSTZUFUGZSTWSUXSUYAQUOUYCUXSPUMUYCUYAPUMQUOU
          TUWLUXSUYAUYCWPWQUWLUXHUXIUWMSTUXMUXQUWFUUKWLWMUWLRSUUHHUWPUXDWTUXRUX
          TUYBVLUXSUYAPUMUYAUXSPUMWIUWLUXSUYAXAWQXBUWLUWGUXGUUNQUWLUVMUXFUWFPUW
          LUXJUXIUVMUXFWIUXRUXQDUUKXAWMVDVNXCXDXGXEUVLUVSUUNUWGUURQUOZUCRUPZBSU
          QZTUWJUVLUVRUYFUUNUVLBCUVMUCFGHIJUXLAUXBUVCUVJUVELWFACUWBQUOZUCRWBZUV
          CUVJUVEACUUDQUOZERWBUYHMUYIUYGEUCREUCVHZUUDUWBCQYSUWAHVEZXHXFXIWFIUUC
          UUDQUOZERUPZJSUQZUUDUUBPUMZUURQUOZERUPZBSUQZUIYRUWEPUMZUWBQUOZUCRUPZJ
          SUQZUWFUURQUOZUCRUPZBSUQZUINUYNVUBUYRVUEUYMVUAJSUYMVUAUTUUTUYLUYTEUCR
          UYJUUCUYSUUDUWBQUYJUUBUWEYRPUYJUUAUWDULUYJYTUWCUJYSUWAUHVAVBVCZVDUYKV
          IVJWHVKUYQVUDBSUYQVUDUTUURSTUYPVUCEUCRUYJUYOUWFUURQUYJUUDUWBUUBUWEPUY
          KVUFXJVNVJWHVKXKXLUVLUXJUXIUVMSTZAUXJUVCUVJUVEOWFZUVJUXIUVIUVEUVJUXNU
          XIUXOUXPXMXPZDUUKWLWMZXNXOUYEUWIBUUNSUURUUNWIUYDUWHUCRUURUUNUWGQXQVOV
          PXRXSUVKUVEUVOYFTZUVQUVSXTZUVLIYFTZUVNYFTZVUKAVUMUVCUVJUVEABCEFGHIJKL
          MNYAWFZUVLVUGVUNVUJBUVMJYBXMIUVNYCWMVUKUVPUVRUIYFTUVEVULUVOYDUVDUUNUV
          RUVPYEYGYHYIUVLBUUKUVBDIJVUOVUHAUVCUVJUVEWDVUIYJYKYLYMYOYNYPYQ $.
      $}

      ${
        caucvgprlemlim.q $e |- ( ph -> Q e. Q. ) $.
        caucvgprlemlim.jk $e |- ( ph -> J <N K ) $.
        caucvgprlemlim.jkq $e |- ( ph ->
          ( *Q ` [ <. J , 1o >. ] ~Q ) <Q Q ) $.
        ${
          $d F j l $.  $d F l u $.  $d K j l $.  $d K l u $.  $d Q j l $.
          $d Q l u $.  $d Q k $.  $d L j $.  $d L k $.  $d j l $.  $d j u $.
          $d F k n $.  $d j k $.
          $( Lemma for ~ caucvgpr .  Part of showing the putative limit to be a
             limit.  (Contributed by Jim Kingdon, 3-Oct-2020.) $)
          caucvgprlem1 $p |- ( ph ->
             <. { l | l <Q ( F ` K ) } , { u | ( F ` K ) <Q u } >.
             <P ( L +P. <. { l | l <Q Q } , { u | Q <Q u } >. ) ) $=
            ( cltq cfv wbr cab cop cpp c1st wcel cltp c1o ceq cec crq cplq cnpi
            cv co wrex clti wa ltrelpi brel simprd caucvgprlemk ffvelrnd ltanqi
            syl cnq syl2anc wceq opeq1 eceq1d fveq2d oveq2d fveq2 oveq1d rspcev
            breq12d crab wb oveq1 breq1d rexbidv elrab3 caucvgprlemladdrl sseld
            sylbird mpd cnp caucvgprlemcl nqprlu addclpr nqprl mpbid ) AJHUAZKL
            UOZDTUBLUCDBUOZTUBBUCUDZUEUPZUFUAZUGZWOWNTUBLUCWNWPTUBBUCUDWRUHUBZA
            WNEUOZUIUDZUJUKZULUAZUMUPZXBHUAZDUMUPZTUBZEUNUQZWTAJUNUGZWNJUIUDZUJ
            UKZULUAZUMUPZWNDUMUPZTUBZXJAIUNUGZXKAIJURUBXRXKUSRIJUNUNURUTVAVFVBZ
            AXNDTUBWNVGUGZXQADIJRSVCAUNVGJHMXSVDZXNDWNVEVHXIXQEJUNXBJVIZXFXOXHX
            PTYBXEXNWNUMYBXDXMULYBXCXLUJXBJUIVJVKVLVMYBXGWNDUMXBJHVNVOVQVPVHAXJ
            WNWOXEUMUPZXHTUBZEUNUQZLVGVRZUGZWTAXTYGXJVSYAYEXJLWNVGWOWNVIZYDXIEU
            NYHYCXFXHTWOWNXEUMVTWAWBWCVFAYFWSWNABCDEFGHKLMNOPQWDWEWFWGAXTWRWHUG
            ZWTXAVSYAAKWHUGWQWHUGZYIABCEFGHKLMNOPWIADVGUGYJQBDLWJVFKWQWKVHBWNWR
            LWLVHWM $.
        $}

        ${
          $d A j $.  $d F j u x $.  $d F l u x $.  $d F n $.  $d F k $.
          $d K j u x $.  $d K l u x $.  $d L x $.  $d L j $.  $d L k $.
          $d Q l u x $.  $d ph x $.  $d j l $.  $d j k $.  $d k n $.
          $( Lemma for ~ caucvgpr .  Part of showing the putative limit to be a
             limit.  (Contributed by Jim Kingdon, 3-Oct-2020.) $)
          caucvgprlem2 $p |- ( ph ->
              L <P <. { l | l <Q ( ( F ` K ) +Q Q ) } ,
              { u | ( ( F ` K ) +Q Q ) <Q u } >. ) $=
            ( cnq vx cfv c1o cop ceq cec crq cplq co cv cltq wbr cltp wrex wcel
            cab caucvgprlemk cnpi clti ltrelpi brel syl simprd ffvelrnd syl2anc
            wa ltanqi ltbtwnnqq sylib c2nd c1st simprl simprrl wceq fveq2 opeq1
            adantr eceq1d fveq2d oveq12d breq1d rspcev rexbidv crab fveq2i nqex
            breq2 rabex op2nd eqtri elrab2 sylanbrc simprrr breq1 sylibr ltnqex
            vex elab gtnqex op1st syl6eleqr rspe syl12anc caucvgprlemcl addclnq
            cnp wb nqprlu ltdfpr mpbird rexlimddv ) AJHUBZJUCUDZUEUFZUGUBZUHUIZ
            UAUJZUKULZXQXLDUHUIZUKULZVFZKLUJZXSUKULZLUPZXSBUJZUKULBUPZUDZUMULZU
            ATAXPXSUKULZYAUATUNAXODUKULXLTUOZYIADIJRSUQAURTJHMAIURUOZJURUOZAIJU
            SULYKYLVFRIJURURUSUTVAVBVCZVDZXODXLVGVEUAXPXSVHVIAXQTUOZYAVFZVFZYHX
            QKVJUBZUOZXQYGVKUBZUOZVFZUATUNZYQYOYSUUAUUCAYOYAVLZYQYOEUJZHUBZUUEU
            CUDZUEUFZUGUBZUHUIZXQUKULZEURUNZYSUUDYQYLXRUULAYLYPYMVQAYOXRXTVMUUK
            XREJURUUEJVNZUUJXPXQUKUUMUUFXLUUIXOUHUUEJHVOUUMUUHXNUGUUMUUGXMUEUUE
            JUCVPVRVSVTWAWBVEUUJYEUKULZEURUNZUULBXQTYRYEXQVNUUNUUKEURYEXQUUJUKW
            GWCYRYBUUIUHUIUUFUKULEURUNZLTWDZUUOBTWDZUDZVJUBUURKUUSVJPWEUUQUURUU
            PLTWFWHUUOBTWFWHWIWJWKWLYQXQYDYTYQXTXQYDUOAYOXRXTWMYCXTLXQUAWQYBXQX
            SUKWNWRWOYDYFLXSWPBXSWSWTXAUUBUATXBXCYQKXFUOZYGXFUOZYHUUCXGAUUTYPAB
            CEFGHKLMNOPXDVQAUVAYPAXSTUOZUVAAYJDTUOUVBYNQXLDXEVEBXSLXHVBVQKYGUAX
            IVEXJXK $.
        $}
      $}

      ${
        $d A j $.  $d F j u $.  $d F l u $.  $d F k n $.  $d j k ph x $.
        $d k l u x $.  $d j l $.  $d L j $.  $d L k $.
        $( Lemma for ~ caucvgpr .  The putative limit is a limit.  (Contributed
           by Jim Kingdon, 1-Oct-2020.) $)
        caucvgprlemlim $p |- ( ph ->
          A. x e. Q. E. j e. N. A. k e. N. ( j <N k ->
          ( <. { l | l <Q ( F ` k ) } , { u | ( F ` k ) <Q u } >.
              <P ( L +P. <. { l | l <Q x } , { u | x <Q u } >. ) /\
            L <P <. { l | l <Q ( ( F ` k ) +Q x ) } ,
              { u | ( ( F ` k ) +Q x ) <Q u } >. ) ) ) $=
          ( cv wbr cltq cab wa cnpi clti cfv cop cpp co cltp cplq wral wrex cnq
          wi wcel c1o ceq cec archrecnq adantl wf ad5antr simpr ad4antr simpllr
          crq caucvgprlem1 caucvgprlem2 jca ex ralrimiva reximdva mpd ) AEOZFOZ
          UAPZJOZVLHUBZQPJRVOCOZQPCRUCIVNBOZQPJRVQVPQPCRUCUDUEUFPZIVNVOVQUGUEZQ
          PJRVSVPQPCRUCUFPZSZUKZFTUHZETUIZBUJAVQUJULZSZVKUMUCUNUOVCUBVQQPZETUIZ
          WDWEWHAVQEUPUQWFWGWCETWFVKTULZSZWGWCWJWGSZWBFTWKVLTULZSZVMWAWMVMSZVRV
          TWNCDVQEFGHVKVLIJATUJHURWEWIWGWLVMKUSZAGOZVLUAPWPHUBZVOWPUMUCUNUOVCUB
          ZUGUEQPVOWQWRUGUEQPSUKFTUHGTUHWEWIWGWLVMLUSZADVKHUBQPETUHWEWIWGWLVMMU
          SZNWFWEWIWGWLVMAWEUTVAZWMVMUTZWJWGWLVMVBZVDWNCDVQEFGHVKVLIJWOWSWTNXAX
          BXCVEVFVGVHVGVIVJVH $.
      $}
    $}

    ${
      $d A j $.  $d F j k n l u x y z $.  $d j k ph x $.
      $( A Cauchy sequence of positive fractions with a modulus of convergence
         converges to a positive real.  This is basically Corollary 11.2.13 of
         [HoTT], p.  (varies) (one key difference being that this is for
         positive reals rather than signed reals).  Also, the HoTT book theorem
         has a modulus of convergence (that is, a rate of convergence)
         specified by (11.2.9) in HoTT whereas this theorem fixes the rate of
         convergence to say that all terms after the nth term must be within
         ` 1 / n ` of the nth term (it should later be able to prove versions
         of this theorem with a different fixed rate or a modulus of
         convergence supplied as a hypothesis).  We also specify that every
         term needs to be larger than a fraction ` A ` , to avoid the case
         where we have positive fractions which converge to zero (which is not
         a positive real).  (Contributed by Jim Kingdon, 18-Jun-2020.) $)
      caucvgpr $p |- ( ph ->
          E. y e. P. A. x e. Q. E. j e. N. A. k e. N. ( j <N k ->
          ( <. { l | l <Q ( F ` k ) } , { u | ( F ` k ) <Q u } >.
              <P ( y +P. <. { l | l <Q x } , { u | x <Q u } >. ) /\
            y <P <. { l | l <Q ( ( F ` k ) +Q x ) } ,
              { u | ( ( F ` k ) +Q x ) <Q u } >. ) ) ) $=
        ( cv cplq co cltq wbr cnpi cnq vz c1o cop ceq cec crq cfv wrex crab cnp
        wcel clti cab cpp cltp wa wi wral wceq opeq1 eceq1d fveq2d oveq2d fveq2
        breq12d cbvrexv a1i rabbiia oveq12d breq1d caucvgprlemcl caucvgprlemlim
        wb opeq12i oveq1 breq2d breq1 anbi12d imbi2d rexralbidv ralbidv syl2anc
        rspcev ) AJNZUANZUBUCZUDUEZUFUGZOPZWEIUGZQRZUASUHZJTUIZWJWHOPZDNZQRZUAS
        UHZDTUIZUCZUJUKFNZGNZULRZWDXAIUGZQRJUMXCWOQRDUMUCZWSWDBNZQRJUMXEWOQRDUM
        UCZUNPZUORZWSWDXCXEOPZQRJUMXIWOQRDUMUCZUORZUPZUQZGSURFSUHZBTURZXBXDCNZX
        FUNPZUORZXPXJUORZUPZUQZGSURFSUHZBTURZCUJUHADEFGHIWSJKLMWMWDWTUBUCZUDUEZ
        UFUGZOPZWTIUGZQRZFSUHZJTUIWRYHYFOPZWOQRZFSUHZDTUIWLYJJTWLYJVMWDTUKWKYIU
        AFSWEWTUSZWIYGWJYHQYNWHYFWDOYNWGYEUFYNWFYDUDWEWTUBUTVAVBZVCWEWTIVDZVEVF
        VGVHWQYMDTWQYMVMWOTUKWPYLUAFSYNWNYKWOQYNWJYHWHYFOYPYOVIVJVFVGVHVNZVKABD
        EFGHIWSJKLMYQVLYCXOCWSUJXPWSUSZYBXNBTYRYAXMFGSSYRXTXLXBYRXRXHXSXKYRXQXG
        XDUOXPWSXFUNVOVPXPWSXJUOVQVRVSVTWAWCWB $.
    $}
  $}

  ${
    $d x y z w v u f $.
    $( Define equivalence relation for signed reals.  This is a "temporary" set
       used in the construction of complex numbers, and is intended to be used
       only by the construction.  From Proposition 9-4.1 of [Gleason] p. 126.
       (Contributed by NM, 25-Jul-1995.) $)
    df-enr $a |- ~R = { <. x , y >. | ( ( x e. ( P. X. P. ) /\
                   y e. ( P. X. P. ) ) /\ E. z E. w E. v E. u
                   ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
                   ( z +P. u ) = ( w +P. v ) ) ) } $.

    $( Define class of signed reals.  This is a "temporary" set used in the
       construction of complex numbers, and is intended to be used only by the
       construction.  From Proposition 9-4.2 of [Gleason] p. 126.  (Contributed
       by NM, 25-Jul-1995.) $)
    df-nr $a |- R. = ( ( P. X. P. ) /. ~R ) $.

    $( Define addition on signed reals.  This is a "temporary" set used in the
       construction of complex numbers, and is intended to be used only by the
       construction.  From Proposition 9-4.3 of [Gleason] p. 126.  (Contributed
       by NM, 25-Aug-1995.) $)
    df-plr $a |- +R = { <. <. x , y >. , z >. | ( ( x e. R. /\ y e. R. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~R /\ y = [ <. u , f >. ] ~R ) /\
               z = [ <. ( w +P. u ) , ( v +P. f ) >. ] ~R ) ) } $.

    $( Define multiplication on signed reals.  This is a "temporary" set used
       in the construction of complex numbers, and is intended to be used only
       by the construction.  From Proposition 9-4.3 of [Gleason] p. 126.
       (Contributed by NM, 25-Aug-1995.) $)
    df-mr $a |- .R = { <. <. x , y >. , z >. | ( ( x e. R. /\ y e. R. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~R /\ y = [ <. u , f >. ] ~R ) /\
           z = [ <. ( ( w .P. u ) +P. ( v .P. f ) ) ,
             ( ( w .P. f ) +P. ( v .P. u ) ) >. ] ~R ) ) } $.

    $( Define ordering relation on signed reals.  This is a "temporary" set
       used in the construction of complex numbers, and is intended to be used
       only by the construction.  From Proposition 9-4.4 of [Gleason] p. 127.
       (Contributed by NM, 14-Feb-1996.) $)
    df-ltr $a |- <R = { <. x , y >. | ( ( x e. R. /\ y e. R. ) /\
       E. z E. w E. v E. u
       ( ( x = [ <. z , w >. ] ~R /\ y = [ <. v , u >. ] ~R ) /\
                ( z +P. u ) <P ( w +P. v ) ) ) } $.

    $( Define signed real constant 0.  This is a "temporary" set used in the
       construction of complex numbers, and is intended to be used only by the
       construction.  From Proposition 9-4.2 of [Gleason] p. 126.  (Contributed
       by NM, 9-Aug-1995.) $)
    df-0r $a |- 0R = [ <. 1P , 1P >. ] ~R $.

    $( Define signed real constant 1.  This is a "temporary" set used in the
       construction of complex numbers, and is intended to be used only by the
       construction.  From Proposition 9-4.2 of [Gleason] p. 126.  (Contributed
       by NM, 9-Aug-1995.) $)
    df-1r $a |- 1R = [ <. ( 1P +P. 1P ) , 1P >. ] ~R $.

    $( Define signed real constant -1.  This is a "temporary" set used in the
       construction of complex numbers, and is intended to be used only by the
       construction.  (Contributed by NM, 9-Aug-1995.) $)
    df-m1r $a |- -1R = [ <. 1P , ( 1P +P. 1P ) >. ] ~R $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.
    $( Equivalence relation for signed reals in terms of positive reals.
       (Contributed by NM, 3-Sep-1995.) $)
    enrbreq $p |- ( ( ( A e. P. /\ B e. P. ) /\
                     ( C e. P. /\ D e. P. ) ) ->
          ( <. A , B >. ~R <. C , D >. <-> ( A +P. D ) = ( B +P. C ) ) ) $=
      ( vx vy vz vw vv vu cpp cer cnp df-enr ecopoveq ) EFGHIJABCDKLMEFGHIJNO
      $.
  $}

  ${
    $d x y z w v u $.
    $( The equivalence relation for signed reals is an equivalence relation.
       Proposition 9-4.1 of [Gleason] p. 126.  (Contributed by NM,
       3-Sep-1995.)  (Revised by Mario Carneiro, 6-Jul-2015.) $)
    enrer $p |- ~R Er ( P. X. P. ) $=
      ( vx vy vz vw vv cpp cer cnp df-enr addcomprg addclpr addassprg addcanprg
      vu cv ecopoverg ) ABCDENFGHABCDENIAOZBOZJQRKQRCOZLQRSMP $.
  $}

  $( Equivalence class equality of positive fractions in terms of positive
     integers.  (Contributed by NM, 29-Nov-1995.) $)
  enreceq $p |- ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) ) ->
                ( [ <. A , B >. ] ~R = [ <. C , D >. ] ~R <->
                ( A +P. D ) = ( B +P. C ) ) ) $=
    ( cnp wcel wa cop cer wbr cec wceq cpp co cxp wer enrer a1i opelxpi adantr
    erth enrbreq bitr3d ) AEFBEFGZCEFDEFGZGZABHZCDHZIJUGIKUHIKLADMNBCMNLUFUGUHI
    EEOZUIIPUFQRUDUGUIFUEABEESTUAABCDUBUC $.

  ${
    $d x y z w v u $.
    $( The equivalence relation for signed reals exists.  (Contributed by NM,
       25-Jul-1995.) $)
    enrex $p |- ~R e. _V $=
      ( vx vy vz vw vv vu cer cnp cxp npex xpex cv wcel wa cop cpp co wex copab
      wceq df-enr opabssxp eqsstri ssexi ) GHHIZUEIZUEUEHHJJKZUGKGALZUEMBLZUEMN
      UHCLZDLZOTUIELZFLZOTNUJUMPQUKULPQTNFRERDRCRZNABSUFABCDEFUAUNABUEUEUBUCUD
      $.
  $}

  ${
    $d x y z w v u $.
    $( Signed real 'less than' is a relation on signed reals.  (Contributed by
       NM, 14-Feb-1996.) $)
    ltrelsr $p |- <R C_ ( R. X. R. ) $=
      ( vx vy vz vw vv vu cltr cv cnr wcel wa cop cer cec wceq cpp cltp wbr wex
      co copab cxp df-ltr opabssxp eqsstri ) GAHZIJBHZIJKUFCHZDHZLMNOUGEHZFHZLM
      NOKUHUKPTUIUJPTQRKFSESDSCSZKABUAIIUBABCDEFUCULABIIUDUE $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z F $.
    $d x y z G $.  $d x y z R $.  $d x y z S $.
    $( Lemma showing compatibility of addition.  (Contributed by NM,
       3-Sep-1995.) $)
    addcmpblnr $p |- ( ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) )
               /\ ( ( F e. P. /\ G e. P. ) /\ ( R e. P. /\ S e. P. ) ) ) ->
                ( ( ( A +P. D ) = ( B +P. C ) /\ ( F +P. S ) = ( G +P. R ) ) ->
     <. ( A +P. F ) , ( B +P. G ) >. ~R <. ( C +P. R ) , ( D +P. S ) >. ) ) $=
      ( cpp co wceq wa cnp wcel addclpr anim12i an4s syl2anc addassprg syl3anc
      cop cer wbr oveq12 wb enrbreq syl simprll simplrr addcomprg oveq1d oveq2d
      simprrr 3eqtr3d simplll 3eqtr4d simprlr simplrl simprrl simpllr eqeq12d
      bitrd syl5ibr ) ADIJZBCIJZKGFIJZHEIJZKLAGIJZBHIJZUACEIJZDFIJZUAUBUCZAMNZB
      MNZLZCMNZDMNZLZLZGMNZHMNZLZEMNZFMNZLZLZLZVDVFIJZVEVGIJZKZVDVEVFVGIUDWGVLV
      HVKIJZVIVJIJZKZWJWGVHMNZVIMNZLZVJMNZVKMNZLZLZVLWMUEVOWBVRWEWTVOWBLWPVRWEL
      WSVMVTVNWAWPVMVTLWNVNWALWOAGOBHOPQVPWCVQWDWSVPWCLWQVQWDLWRCEOZDFOZPQPQVHV
      IVJVKUFUGWGWKWHWLWIWGAGVKIJZIJZADVFIJZIJZWKWHWGXCXEAIWGGDIJZFIJZDGIJZFIJZ
      XCXEWGXGXIFIWGVTVQXGXIKVSVTWAWEUHZVOVPVQWFUIZGDUJRUKWGVTVQWDXHXCKXKXLVSWB
      WCWDUMZGDFSTWGVQVTWDXJXEKXLXKXMDGFSTUNULWGVMVTWRWKXDKVMVNVRWFUOZXKWGVQWDW
      RXLXMXBRAGVKSTWGVMVQVFMNZWHXFKXNXLWGVTWDXOXKXMGFORADVFSTUPWGBHVJIJZIJZBCV
      GIJZIJZWLWIWGXPXRBIWGHCIJZEIJZCHIJZEIJZXPXRWGXTYBEIWGWAVPXTYBKVSVTWAWEUQZ
      VOVPVQWFURZHCUJRUKWGWAVPWCYAXPKYDYEVSWBWCWDUSZHCESTWGVPWAWCYCXRKYEYDYFCHE
      STUNULWGVNWAWQWLXQKVMVNVRWFUTZYDWGVPWCWQYEYFXARBHVJSTWGVNVPVGMNZWIXSKYGYE
      WGWAWCYHYDYFHEORBCVGSTUPVAVBVC $.

    $( Lemma used in lemma showing compatibility of multiplication.
       (Contributed by Jim Kingdon, 1-Jan-2020.) $)
    mulcmpblnrlemg $p |- (
        ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) )
        /\ ( ( F e. P. /\ G e. P. ) /\ ( R e. P. /\ S e. P. ) ) ) ->
          ( ( ( A +P. D ) = ( B +P. C ) /\
              ( F +P. S ) = ( G +P. R ) ) ->
            ( ( D .P. F ) +P. ( ( ( A .P. F ) +P. ( B .P. G ) ) +P.
              ( ( C .P. S ) +P. ( D .P. R ) ) ) ) =
              ( ( D .P. F ) +P. ( ( ( A .P. G ) +P. ( B .P. F ) ) +P.
              ( ( C .P. R ) +P. ( D .P. S ) ) ) ) ) ) $=
      ( cnp wcel wa cpp co wceq cmp mulclpr syl2anc syl3anc adantr mulcomprg vx
      vy simpllr simprlr simplrr simprrl addclpr simplrl simprll oveq2 ad2antll
      addassprg simprrr distrprg 3eqtr3d simplll oveq1 ad2antrl oveq12d 3eqtr4d
      vz oveq2d oveq1d 3eqtr2d addcomprg adantl caov12d caov32d adantrr adantrl
      cv w3a eqtrd 3eqtr4rd caov13d caov4d caov42d ex ) AIJZBIJZKZCIJZDIJZKZKZG
      IJZHIJZKZEIJZFIJZKZKZKZADLMZBCLMZNZGFLMZHELMZNZKZDGOMZAGOMZBHOMZLMCFOMZDE
      OMZLMLMZLMZXAAHOMZBGOMZLMCEOMZDFOMZLMLMZLMZNWMWTKZXAXBXDLMZXCXELMZLMZLMZX
      AXHXKLMZXIXJLMZLMZLMZXGXMXNXPXOXALMZLMZXAXSLMZXTLMZXRYBXNXPCHOMZLMZXTLMZX
      PYGXTLMZLMZYFYDWMYIYKNZWTWMXPIJZYGIJZXTIJZYLWMXCIJZXEIJZYMWMVTWGYPVSVTWDW
      LUCZWEWFWGWKUDZBHPQZWMWCWIYQWAWBWCWLUEZWEWHWIWJUFZDEPQZXCXEUGQZWMWBWGYNWA
      WBWCWLUHZYSCHPQZWMXIIJZXJIJZYOWMVTWFUUGYRWEWFWGWKUIZBGPQZWMWBWIUUHUUEUUBC
      EPQZXIXJUGQZXPYGXTULRSXNYEYHXTLXNXHXAXKLMZLMZXCYGLMZXELMZYEYHXNUUNXHDHOMZ
      XELMZLMZXHUUQLMZXELMZUUPXNUUMUURXHLXNDWQOMZDWROMZUUMUURWSUVBUVCNWMWPWQWRD
      OUJUKWMUVBUUMNZWTWMWCWFWJUVDUUAUUIWEWHWIWJUMZDGFUNRSWMUVCUURNZWTWMWCWGWIU
      VFUUAYSUUBDHEUNRSUOVBWMUVAUUSNZWTWMXHIJZUUQIJZYQUVGWMVSWGUVHVSVTWDWLUPZYS
      AHPQZWMWCWGUVIUUAYSDHPQUUCXHUUQXEULRSXNUUTUUOXELXNWNHOMZWOHOMZUUTUUOWPUVL
      UVMNWMWSWNWOHOUQURWMUVLUUTNWTWMHWNOMZHAOMZHDOMZLMZUVLUUTWMWGVSWCUVNUVQNYS
      UVJUUAHADUNRWMWNIJZWGUVLUVNNWMVSWCUVRUVJUUAADUGQZYSWNHTQWMXHUVOUUQUVPLWMV
      SWGXHUVONUVJYSAHTQWMWCWGUUQUVPNUUAYSDHTQUSUTSWMUVMUUONWTWMHWOOMZHBOMZHCOM
      ZLMZUVMUUOWMWGVTWBUVTUWCNYSYRUUEHBCUNRWMWOIJZWGUVMUVTNWMVTWBUWDYRUUEBCUGQ
      ZYSWOHTQWMXCUWAYGUWBLWMVTWGXCUWANYRYSBHTQWMWBWGYGUWBNUUEYSCHTQUSUTSUOVCVD
      WMUUNYENWTWMUAUBVAXHXAXKILUVKWMWCWFXAIJZUUAUUIDGPQZWMWCWJXKIJZUUAUVEDFPQZ
      UAVKZIJZUBVKZIJZKZUWJUWLLMZUWLUWJLMNWMUWJUWLVEVFZUWKUWMVAVKZIJVLUWOUWQLMU
      WJUWLUWQLMLMNWMUWJUWLUWQULVFZVGSWMUUPYHNWTWMUAUBVAXCYGXEILYTUUFUUCUWPUWRV
      HSUOVCXNYCYJXPLXNXBXALMZXDLMZXIYGXJLMZLMZYCYJXNUWTXICGOMZLMZXDLMZUXBWMWPU
      WTUXENWSWMWPKZUWSUXDXDLUXFWNGOMZWOGOMZUWSUXDWPUXGUXHNWMWNWOGOUQVFWMUXGUWS
      NWPWMGWNOMZGAOMZGDOMZLMZUXGUWSWMWFVSWCUXIUXLNUUIUVJUUAGADUNRWMUVRWFUXGUXI
      NUVSUUIWNGTQWMXBUXJXAUXKLWMVSWFXBUXJNUVJUUIAGTQWMWCWFXAUXKNUUAUUIDGTQUSUT
      SWMUXHUXDNWPWMGWOOMZGBOMZGCOMZLMZUXHUXDWMWFVTWBUXMUXPNUUIYRUUEGBCUNRWMUWD
      WFUXHUXMNUWEUUIWOGTQWMXIUXNUXCUXOLWMVTWFXIUXNNYRUUIBGTQWMWBWFUXCUXONUUEUU
      ICGTQUSUTSUOVCVIWMWSUXEUXBNWPWMWSKZUXEXIUXCXDLMZLMZUXBWMUXEUXSNZWSWMUUGUX
      CIJZXDIJZUXTUUJWMWBWFUYAUUEUUICGPQWMWBWJUYBUUEUVECFPQZXIUXCXDULRSUXQUXRUX
      AXILUXQCWQOMZCWROMZUXRUXAWSUYDUYENWMWQWRCOUJVFWMUYDUXRNZWSWMWBWFWJUYFUUEU
      UIUVECGFUNRSWMUYEUXANZWSWMWBWGWIUYGUUEYSUUBCHEUNRSUOVBVMVJVMWMUWTYCNWTWMU
      AUBVAXBXAXDILWMVSWFXBIJZUVJUUIAGPQZUWGUYCUWPUWRVHSWMUXBYJNWTWMUAUBVAXIYGX
      JILUUJUUFUUKUWPUWRVGSUOVBVNWMYDXRNWTWMUAUBVAXPXOXAILUUDWMUYHUYBXOIJUYIUYC
      XBXDUGQUWGUWPUWRVOSWMYFYBNZWTWMUWFXSIJZYOUYJUWGWMUVHUWHUYKUVKUWIXHXKUGQUU
      LXAXSXTULRSUOWMXRXGNWTWMXQXFXALWMUAUBVAXBXDXCXEILUYIUYCYTUWPUWRUUCUWNUWOI
      JWMUWJUWLUGVFZVPVBSWMYBXMNWTWMYAXLXALWMUAUBVAXHXKXIXJILUVKUWIUUJUWPUWRUUK
      UYLVQVBSUOVR $.

    $( Lemma showing compatibility of multiplication.  (Contributed by NM,
       5-Sep-1995.) $)
    mulcmpblnr $p |- ( ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) )
               /\ ( ( F e. P. /\ G e. P. ) /\ ( R e. P. /\ S e. P. ) ) ) ->
                ( ( ( A +P. D ) = ( B +P. C ) /\ ( F +P. S ) = ( G +P. R ) ) ->
    <. ( ( A .P. F ) +P. ( B .P. G ) ) , ( ( A .P. G ) +P. ( B .P. F ) ) >. ~R
 <. ( ( C .P. R ) +P. ( D .P. S ) ) , ( ( C .P. S ) +P. ( D .P. R ) ) >. ) ) $=
      ( cnp wcel wa cpp co wceq cmp cop cer mulclpr syl2anc addclpr wbr simplrr
      mulcmpblnrlemg wi simprll simplll simpllr simprlr simplrl simprrr simprrl
      addcanprg syl3anc syld wb enrbreq syl22anc sylibrd ) AIJZBIJZKZCIJZDIJZKZ
      KZGIJZHIJZKZEIJZFIJZKZKZKZADLMBCLMNGFLMHELMNKZAGOMZBHOMZLMZCFOMZDEOMZLMZL
      MZAHOMZBGOMZLMZCEOMZDFOMZLMZLMZNZVQWDPWGVTPQUAZVMVNDGOMZWALMWKWHLMNZWIABC
      DEFGHUCVMWKIJZWAIJZWHIJZWLWIUDVMVCVFWMVAVBVCVLUBZVEVFVGVKUEZDGRSVMVQIJZVT
      IJZWNVMVOIJZVPIJZWRVMUSVFWTUSUTVDVLUFZWQAGRSVMUTVGXAUSUTVDVLUGZVEVFVGVKUH
      ZBHRSVOVPTSZVMVRIJZVSIJZWSVMVBVJXFVAVBVCVLUIZVEVHVIVJUJZCFRSVMVCVIXGWPVEV
      HVIVJUKZDERSVRVSTSZVQVTTSVMWDIJZWGIJZWOVMWBIJZWCIJZXLVMUSVGXNXBXDAHRSVMUT
      VFXOXCWQBGRSWBWCTSZVMWEIJZWFIJZXMVMVBVIXQXHXJCERSVMVCVJXRWPXIDFRSWEWFTSZW
      DWGTSWKWAWHULUMUNVMWRXLXMWSWJWIUOXEXPXSXKVQWDWGVTUPUQUR $.
  $}

  ${
    $d a b c d f g h s t u v w x y $.
    $( Decomposing signed reals into positive reals.  Lemma for ~ addsrpr and
       ~ mulsrpr .  (Contributed by Jim Kingdon, 30-Dec-2019.) $)
    prsrlem1 $p |- ( (
        ( A e. ( ( P. X. P. ) /. ~R ) /\ B e. ( ( P. X. P. ) /. ~R ) )
        /\ ( ( A = [ <. w , v >. ] ~R /\ B = [ <. u , t >. ] ~R )
        /\ ( A = [ <. s , f >. ] ~R /\ B = [ <. g , h >. ] ~R ) ) ) -> (
        ( ( ( w e. P. /\ v e. P. ) /\ ( s e. P. /\ f e. P. ) )
          /\ ( ( u e. P. /\ t e. P. ) /\ ( g e. P. /\ h e. P. ) ) )
        /\ ( ( w +P. f ) = ( v +P. s ) /\ ( u +P. h ) = ( t +P. g ) ) ) ) $=
      ( cnp cer wcel wa cv cop cec wceq cpp co vx vy va vb vc cxp cqs cdm enrer
      vd wer erdm ax-mp simprll simpll eqeltrrd ecelqsdm sylancr opelxp simprrl
      sylib jca simprlr simplr simprrr wbr eqtr3d a1i mpbird wb df-enr ecopoveq
      erth syl2anc mpbid jca31 ) EKKUFZLUGZMZFVRMZNZEAOZBOZPZLQZRZFCOZDOZPZLQZR
      ZNZEJOZGOZPZLQZRZFHOZIOZPZLQZRZNZNZNZWBKMWCKMNZWMKMWNKMNZNWGKMWHKMNZWRKMW
      SKMNZNWBWNSTWCWMSTRZWGWSSTWHWRSTRZNXEXFXGXEWDVQMZXFXELUHVQRZWEVRMXLVQLUKZ
      XMUIVQLULUMZXEEWEVRWAWFWKXCUNZVSVTXDUOZUPVQWDLUQURZWBWCKKUSVAZXEWOVQMZXGX
      EXMWPVRMXTXOXEEWPVRWAWLWQXBUTZXQUPVQWOLUQURWMWNKKUSVAZVBXEXHXIXEWIVQMZXHX
      EXMWJVRMYCXOXEFWJVRWAWFWKXCVCZVSVTXDVDZUPVQWILUQURZWGWHKKUSVAZXEWTVQMZXIX
      EXMXAVRMYHXOXEFXAVRWAWLWQXBVEZYEUPVQWTLUQURWRWSKKUSVAZVBXEXJXKXEWDWOLVFZX
      JXEYKWEWPRXEEWEWPXPYAVGXEWDWOLVQXNXEUIVHZXRVMVIXEXFXGYKXJVJXSYBUAUBUCUDUE
      UJWBWCWMWNSLKUAUBUCUDUEUJVKZVLVNVOXEWIWTLVFZXKXEYNWJXARXEFWJXAYDYIVGXEWIW
      TLVQYLYFVMVIXEXHXIYNXKVJYGYJUAUBUCUDUEUJWGWHWRWSSLKYMVLVNVOVBVP $.
  $}

  ${
    $d A f g h q s t u v w z $.  $d B f g h q s t u v w z $.
    $( There is at most one result from adding signed reals.  (Contributed by
       Jim Kingdon, 30-Dec-2019.) $)
    addsrmo $p |- ( ( A e. ( ( P. X. P. ) /. ~R ) /\
        B e. ( ( P. X. P. ) /. ~R ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~R /\ B = [ <. u , t >. ] ~R )
        /\ z = [ <. ( w +P. u ) , ( v +P. t ) >. ] ~R ) ) $=
      ( vq vs cnp cer wcel wa cv cop cec wceq cpp co wex vf cxp cqs wal wmo wer
      vg vh wi enrer a1i wbr prsrlem1 addcmpblnr imp syl erthi adantrlr simprlr
      adantrrr simprrr 3eqtr4d expr exlimdvv impd alrimivv opeq12 eceq1d eqeq2d
      ex anbi1d simpl oveq1d simpr opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i
      imbi1i 2albii sylibr eqeq1 4exbidv mo4 ) FJJUBZKUCZLGWHLMZFBNZCNZOZKPZQZG
      DNZENZOZKPZQZMZANZWJWORSZWKWPRSZOZKPZQZMZETDTZCTBTZWTHNZXEQZMZETDTCTBTZMZ
      XAXJQZUIZHUDAUDZXIAUEWIXIFINZUANZOZKPZQZGUGNZUHNZOZKPZQZMZXJXRYCRSZXSYDRS
      ZOZKPZQZMZUHTUGTZUATITZMZXOUIZHUDAUDXQWIYRAHWIXIYPXOWIXHYPXOUIZBCWIXGYSDE
      WIXGYSWIXGMZYOXOIUAYTYNXOUGUHWIXGYNXOWIXGYNMMXEYLXAXJWIXGYHXEYLQZYMWIWTYH
      UUAXFWIWTYHMMZXDYKKWGWGKUFUUBUJUKUUBWJJLWKJLMXRJLXSJLMMWOJLWPJLMYCJLYDJLM
      MMZWJXSRSWKXRRSQWOYDRSWPYCRSQMZMXDYKKULZBCDEFGUAUGUHIUMUUCUUDUUEWJWKXRXSY
      CYDWOWPUNUOUPUQURUTWIWTXFYNUSWIXGYHYMVAVBVCVDVDVJVDVDVEVFXPYRAHXNYQXOXMYP
      XIXLYBWSMZXJXRWORSZXSWPRSZOZKPZQZMYNBCDEIUAUGUHWJXRQZWKXSQZMZWTUUFXKUUKUU
      NWNYBWSUUNWMYAFUUNWLXTKWJWKXRXSVGVHVIVKUUNXEUUJXJUUNXDUUIKUUNXBUUGXCUUHUU
      NWJXRWORUULUUMVLVMUUNWKXSWPRUULUUMVNVMVOVHVIVPWOYCQZWPYDQZMZUUFYHUUKYMUUQ
      WSYGYBUUQWRYFGUUQWQYEKWOWPYCYDVGVHVIVQUUQUUJYLXJUUQUUIYKKUUQUUGYIUUHYJUUQ
      WOYCXRRUUOUUPVLVRUUQWPYDXSRUUOUUPVNVRVOVHVIVPVSVTWAWBWCXIXMAHXOXGXLBCDEXO
      XFXKWTXAXJXEWDVQWEWFWC $.

    $( There is at most one result from multiplying signed reals.  (Contributed
       by Jim Kingdon, 30-Dec-2019.) $)
    mulsrmo $p |- ( ( A e. ( ( P. X. P. ) /. ~R ) /\
        B e. ( ( P. X. P. ) /. ~R ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~R /\ B = [ <. u , t >. ] ~R )
        /\ z = [ <. ( ( w .P. u ) +P. ( v .P. t ) ) ,
          ( ( w .P. t ) +P. ( v .P. u ) ) >. ] ~R ) ) $=
      ( vq cnp cer wcel wa cv cop cec wceq cmp co cpp wex vs vf cxp cqs wal wmo
      vg vh wi wer enrer a1i wbr prsrlem1 mulcmpblnr imp erthi adantrlr simprlr
      syl adantrrr simprrr 3eqtr4d expr exlimdvv ex impd alrimivv opeq12 eceq1d
      eqeq2d anbi1d oveq1d oveq12d opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i
      simpl simpr imbi1i 2albii sylibr eqeq1 4exbidv mo4 ) FIIUCZJUDZKGWJKLZFBM
      ZCMZNZJOZPZGDMZEMZNZJOZPZLZAMZWLWQQRZWMWRQRZSRZWLWRQRZWMWQQRZSRZNZJOZPZLZ
      ETDTZCTBTZXBHMZXKPZLZETDTCTBTZLZXCXPPZUIZHUEAUEZXOAUFWKXOFUAMZUBMZNZJOZPZ
      GUGMZUHMZNZJOZPZLZXPYDYIQRZYEYJQRZSRZYDYJQRZYEYIQRZSRZNZJOZPZLZUHTUGTZUBT
      UATZLZYAUIZHUEAUEYCWKUUHAHWKXOUUFYAWKXNUUFYAUIZBCWKXMUUIDEWKXMUUIWKXMLZUU
      EYAUAUBUUJUUDYAUGUHWKXMUUDYAWKXMUUDLLXKUUBXCXPWKXMYNXKUUBPZUUCWKXBYNUUKXL
      WKXBYNLLZXJUUAJWIWIJUJUULUKULUULWLIKWMIKLYDIKYEIKLLWQIKWRIKLYIIKYJIKLLLZW
      LYESRWMYDSRPWQYJSRWRYISRPLZLXJUUAJUMZBCDEFGUBUGUHUAUNUUMUUNUUOWLWMYDYEYIY
      JWQWRUOUPUTUQURVAWKXBXLUUDUSWKXMYNUUCVBVCVDVEVEVFVEVEVGVHYBUUHAHXTUUGYAXS
      UUFXOXRYHXALZXPYDWQQRZYEWRQRZSRZYDWRQRZYEWQQRZSRZNZJOZPZLUUDBCDEUAUBUGUHW
      LYDPZWMYEPZLZXBUUPXQUVEUVHWPYHXAUVHWOYGFUVHWNYFJWLWMYDYEVIVJVKVLUVHXKUVDX
      PUVHXJUVCJUVHXFUUSXIUVBUVHXDUUQXEUURSUVHWLYDWQQUVFUVGWAZVMUVHWMYEWRQUVFUV
      GWBZVMVNUVHXGUUTXHUVASUVHWLYDWRQUVIVMUVHWMYEWQQUVJVMVNVOVJVKVPWQYIPZWRYJP
      ZLZUUPYNUVEUUCUVMXAYMYHUVMWTYLGUVMWSYKJWQWRYIYJVIVJVKVQUVMUVDUUBXPUVMUVCU
      UAJUVMUUSYQUVBYTUVMUUQYOUURYPSUVMWQYIYDQUVKUVLWAZVRUVMWRYJYEQUVKUVLWBZVRV
      NUVMUUTYRUVAYSSUVMWRYJYDQUVOVRUVMWQYIYEQUVNVRVNVOVJVKVPVSVTWCWDWEXOXSAHYA
      XMXRBCDEYAXLXQXBXCXPXKWFVQWGWHWE $.
  $}

  ${
    $d x y z w v u t s f g h a b c d A $.
    $d x y z w v u t s f g h a b c d B $.
    $d x y z w v u t s f g h a b c d C $.
    $d x y z w v u t s f g h a b c d D $.
    $( Addition of signed reals in terms of positive reals.  (Contributed by
       NM, 3-Sep-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    addsrpr $p |- ( ( ( A e. P. /\ B e. P. ) /\
                     ( C e. P. /\ D e. P. ) ) ->
                ( [ <. A , B >. ] ~R +R [ <. C , D >. ] ~R ) =
                   [ <. ( A +P. C ) , ( B +P. D ) >. ] ~R ) $=
      ( vw vv vu vt vz cnp wcel wa cop cer cec cv wceq cpp co wex vx vy cxp cqs
      cplr opelxpi enrex ecelqsi syl anim12i pm3.2i opeq12 eceq1d eqeq2d anbi1d
      eqid simpl oveq1d simpr opeq12d anbi12d spc2egv anbi2d oveq2d 2eximdv cvv
      sylan9 mp2ani wi ecexg ax-mp w3a simp1 eqeq1d simp2 simp3 4exbidv addsrmo
      coprab df-plr df-nr eleq2i anbi12i anbi1i oprabbii eqtri ovig mp3an3 sylc
      cnr ) AJKBJKLZCJKDJKLZLZABMZNOZJJUCZNUDZKZCDMZNOZWQKZLWOEPZFPZMZNOZQZWTGP
      ZHPZMZNOZQZLZACRSZBDRSZMZNOZXBXGRSZXCXHRSZMZNOZQZLZHTGTZFTETZWOWTUESXPQZW
      KWRWLXAWKWNWPKWRABJJUFWPWNNUGUHUIWLWSWPKXACDJJUFWPWSNUGUHUIUJWMWOWOQZWTWT
      QZLZXPXPQZYDYFYGWOUPWTUPUKXPUPWKYHYILZXFYGLZXPXBCRSZXCDRSZMZNOZQZLZFTETWL
      YDYQYJEFABJJXBAQZXCBQZLZYKYHYPYIYTXFYFYGYTXEWOWOYTXDWNNXBXCABULUMUNUOYTYO
      XPXPYTYNXONYTYLXMYMXNYTXBACRYRYSUQURYTXCBDRYRYSUSURUTUMUNVAVBWLYQYCEFYBYQ
      GHCDJJXGCQZXHDQZLZXLYKYAYPUUCXKYGXFUUCXJWTWTUUCXIWSNXGXHCDULUMUNVCUUCXTYO
      XPUUCXSYNNUUCXQYLXRYMUUCXGCXBRUUAUUBUQVDUUCXHDXCRUUAUUBUSVDUTUMUNVAVBVEVG
      VHWRXAXPVFKZYDYEVINVFKUUDUGXOVFNVJVKUAPZXEQZUBPZXJQZLZIPZXTQZLZHTGTFTETZY
      DUAUBIWOWTXPVFWQWQUEUUEWOQZUUGWTQZUUJXPQZVLZUULYBEFGHUUQUUIXLUUKYAUUQUUFX
      FUUHXKUUQUUEWOXEUUNUUOUUPVMVNUUQUUGWTXJUUNUUOUUPVOVNVAUUQUUJXPXTUUNUUOUUP
      VPVNVAVQIEFGHUUEUUGVRUEUUEWJKZUUGWJKZLZUUMLZUAUBIVSUUEWQKZUUGWQKZLZUUMLZU
      AUBIVSUAUBIEFGHVTUVAUVEUAUBIUUTUVDUUMUURUVBUUSUVCWJWQUUEWAWBWJWQUUGWAWBWC
      WDWEWFWGWHWI $.

    $( Multiplication of signed reals in terms of positive reals.  (Contributed
       by NM, 3-Sep-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    mulsrpr $p |- ( ( ( A e. P. /\ B e. P. ) /\
                     ( C e. P. /\ D e. P. ) ) ->
                ( [ <. A , B >. ] ~R .R [ <. C , D >. ] ~R ) =
                   [ <. ( ( A .P. C ) +P. ( B .P. D ) ) ,
                              ( ( A .P. D ) +P. ( B .P. C ) ) >. ] ~R ) $=
      ( vw vv vu vt vz cnp wcel wa cop cer cec wceq cmp co cpp wex vx vy cxp cv
      cqs cmr opelxpi enrex ecelqsi syl eqid pm3.2i opeq12 eceq1d eqeq2d anbi1d
      anim12i simpl oveq1d simpr oveq12d opeq12d anbi12d spc2egv anbi2d 2eximdv
      oveq2d sylan9 mp2ani cvv ecexg ax-mp w3a simp1 eqeq1d simp2 simp3 4exbidv
      wi mulsrmo coprab df-mr df-nr eleq2i anbi12i anbi1i oprabbii eqtri mp3an3
      cnr ovig sylc ) AJKBJKLZCJKDJKLZLZABMZNOZJJUCZNUEZKZCDMZNOZWSKZLWQEUDZFUD
      ZMZNOZPZXBGUDZHUDZMZNOZPZLZACQRZBDQRZSRZADQRZBCQRZSRZMZNOZXDXIQRZXEXJQRZS
      RZXDXJQRZXEXIQRZSRZMZNOZPZLZHTGTZFTETZWQXBUFRYBPZWMWTWNXCWMWPWRKWTABJJUGW
      RWPNUHUIUJWNXAWRKXCCDJJUGWRXANUHUIUJUQWOWQWQPZXBXBPZLZYBYBPZYNYPYQWQUKXBU
      KULYBUKWMYRYSLZXHYQLZYBXDCQRZXEDQRZSRZXDDQRZXECQRZSRZMZNOZPZLZFTETWNYNUUK
      YTEFABJJXDAPZXEBPZLZUUAYRUUJYSUUNXHYPYQUUNXGWQWQUUNXFWPNXDXEABUMUNUOUPUUN
      UUIYBYBUUNUUHYANUUNUUDXQUUGXTUUNUUBXOUUCXPSUUNXDACQUULUUMURZUSUUNXEBDQUUL
      UUMUTZUSVAUUNUUEXRUUFXSSUUNXDADQUUOUSUUNXEBCQUUPUSVAVBUNUOVCVDWNUUKYMEFYL
      UUKGHCDJJXICPZXJDPZLZXNUUAYKUUJUUSXMYQXHUUSXLXBXBUUSXKXANXIXJCDUMUNUOVEUU
      SYJUUIYBUUSYIUUHNUUSYEUUDYHUUGUUSYCUUBYDUUCSUUSXICXDQUUQUURURZVGUUSXJDXEQ
      UUQUURUTZVGVAUUSYFUUEYGUUFSUUSXJDXDQUVAVGUUSXICXEQUUTVGVAVBUNUOVCVDVFVHVI
      WTXCYBVJKZYNYOVSNVJKUVBUHYAVJNVKVLUAUDZXGPZUBUDZXLPZLZIUDZYJPZLZHTGTFTETZ
      YNUAUBIWQXBYBVJWSWSUFUVCWQPZUVEXBPZUVHYBPZVMZUVJYLEFGHUVOUVGXNUVIYKUVOUVD
      XHUVFXMUVOUVCWQXGUVLUVMUVNVNVOUVOUVEXBXLUVLUVMUVNVPVOVCUVOUVHYBYJUVLUVMUV
      NVQVOVCVRIEFGHUVCUVEVTUFUVCWJKZUVEWJKZLZUVKLZUAUBIWAUVCWSKZUVEWSKZLZUVKLZ
      UAUBIWAUAUBIEFGHWBUVSUWCUAUBIUVRUWBUVKUVPUVTUVQUWAWJWSUVCWCWDWJWSUVEWCWDW
      EWFWGWHWKWIWL $.
  $}

  ${
    $d A x y z w v u f $.  $d B x y z w v u f $.  $d C x y z w v u f $.
    $d D x y z w v u f $.
    $( Ordering of signed reals in terms of positive reals.  (Contributed by
       Jim Kingdon, 2-Jan-2019.) $)
    ltsrprg $p |- ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) ) ->
        ( [ <. A , B >. ] ~R <R [ <. C , D >. ] ~R <->
        ( A +P. D ) <P ( B +P. C ) ) ) $=
      ( vx vy cv cpp co cltp wbr cer cnp wcel wa wceq syl2anc addassprg syl3anc
      addclpr vz vu vw vv vf cnr cltr enrex enrer df-nr df-ltr cop cec wb eqcom
      enreceq syl6bb bi2anan9 simprlr simplrr addcomprg simprrl 3eqtr3d simplll
      oveq12 adantl oveq1d oveq2d ad2ant2lr anim12ci an4s simpld 3eqtr4d adantr
      simprll simplrl simprrr simpllr sylbid w3a ltaprg simprd caovord3d brecop
      ex syld ) UAGZUBGZHIZUCGZUDGZHIZJKZADHIZBCHIZJKZEFUAUCUDUBABCDLMUFUGUHUIU
      JEFUAUCUDUBUKWGMNZWJMNZOZAMNZBMNZOZOZWKMNZWHMNZOZCMNZDMNZOZOZOZWGWJULLUMA
      BULLUMPZWKWHULLUMCDULLUMPZOZWIWOHIZWLWNHIZPZWMWPUNXKXNWGBHIZWJAHIZPZWHCHI
      ZWKDHIZPZOZXQXCXLXTXJXMYCWGWJABUPXJXMYBYAPYCWKWHCDUPYBYAUOUQURXKYDXQXKYDO
      XRYAHIZXSYBHIZXOXPYDYEYFPXKXRXSYAYBHVEVFXKXOYEPYDXKWGWHWOHIZHIZWGBYAHIZHI
      ZXOYEXKYGYIWGHXKWHBHIZCHIZBWHHIZCHIZYGYIXKXEXAYLYNPXCXDXEXIUSZWSWTXAXJUTZ
      XEXAOYKYMCHWHBVAVGQXKXEXAXGYLYGPYOYPXCXFXGXHVBZWHBCRSXKXAXEXGYNYIPYPYOYQB
      WHCRSVCVHXKWQXEWOMNZXOYHPWQWRXBXJVDZYOXKYRWLMNZWSXFXBXIYRYTOWSXFOYTXBXIOY
      RWRXDYTWQXEWJWKTVIXAXGYRWTXHBCTVIVJVKZVLZWGWHWORSXKWQXAYAMNZYEYJPYSYPXKXE
      XGUUCYOYQWHCTQWGBYARSVMVNXKXPYFPYDXKWJWKWNHIZHIZWJAYBHIZHIZXPYFXKUUDUUFWJ
      HXKWKAHIZDHIZAWKHIZDHIZUUDUUFXKUUHUUJDHXKXDWTUUHUUJPXCXDXEXIVOZWSWTXAXJVP
      ZWKAVAQVGXKXDWTXHUUIUUDPUULUUMXCXFXGXHVQZWKADRSXKWTXDXHUUKUUFPUUMUULUUNAW
      KDRSVCVHXKWRXDWNMNZXPUUEPWQWRXBXJVRZUULXKWTXHUUOUUMUUNADTQZWJWKWNRSXKWRWT
      YBMNZYFUUGPUUPUUMXKXDXHUURUULUUNWKDTQWJAYBRSVMVNVMWEVSXKEFUEWIWOWLWNJMHEG
      ZMNZFGZMNZUEGZMNVTUUSUVAJKUVCUUSHIUVCUVAHIJKUNXKUUSUVAUVCWAVFXKWQXEWIMNYS
      YOWGWHTQUUBXKYRYTUUAWBUUTUVBOUUSUVAHIUVAUUSHIPXKUUSUVAVAVFUUQWCWFWD $.
  $}

  $( Greater than zero in terms of positive reals.  (Contributed by NM,
     13-May-1996.) $)
  gt0srpr $p |- ( 0R <R [ <. A , B >. ] ~R <-> B <P A ) $=
    ( c0r cop cer cec cltr wbr cnp wcel wa cltp cxp cnr brel c1p cpp co wb 1pr
    cdm wceq cqs wer enrer ax-mp ltrelsr simprd df-nr syl6eleq ecelqsdm sylancr
    erdm opelxp sylib ltrelpr ancomd df-0r breq1i ltsrprg mpanl12 syl5bb ltaprg
    mp3an3 ancoms bitr4d pm5.21nii ) CABDZEFZGHZAIJZBIJZKZBALHZVJVHIIMZJZVMVJEU
    AVOUBZVIVOEUCZJVPVOEUDVQUEVOEUMUFVJVINVRVJCNJVINJCVINNGUGOUHUIUJVOVHEUKULAB
    IIUNUOVNVLVKBAIILUPOUQVMVJPBQRPAQRLHZVNVJPPDEFZVIGHZVMVSCVTVIGURUSPIJZWBVMW
    AVSSTTPPABUTVAVBVLVKVNVSSZVLVKWBWCTBAPVCVDVEVFVG $.

  $( The empty set is not a signed real.  (Contributed by NM, 25-Aug-1995.)
     (Revised by Mario Carneiro, 10-Jul-2014.) $)
  0nsr $p |- -. (/) e. R. $=
    ( c0 wceq cnr wcel eqid wne cnp cxp cer cqs cdm wer enrer erdm ax-mp elqsn0
    wn mpan df-nr eleq2s necon2bi ) AABACDZQAEUBAAAAFZAGGHZIJZCIKUDBZAUEDUCUDIL
    UFMUDINOUDAIPRSTUAO $.

  $( The constant ` 0R ` is a signed real.  (Contributed by NM, 9-Aug-1995.) $)
  0r $p |- 0R e. R. $=
    ( c1p cop cer cec cnp cxp cqs c0r cnr 1pr opelxpi mp2an enrex ecelqsi ax-mp
    wcel df-0r df-nr 3eltr4i ) AABZCDZEEFZCGZHITUBPZUAUCPAEPZUEUDJJAAEEKLUBTCMN
    OQRS $.

  $( The constant ` 1R ` is a signed real.  (Contributed by NM, 9-Aug-1995.) $)
  1sr $p |- 1R e. R. $=
    ( c1p cpp co cop cer cec cnp cxp cqs c1r cnr wcel 1pr addclpr mp2an opelxpi
    enrex ecelqsi ax-mp df-1r df-nr 3eltr4i ) AABCZADZEFZGGHZEIZJKUDUFLZUEUGLUC
    GLZAGLZUHUJUJUIMMAANOMUCAGGPOUFUDEQRSTUAUB $.

  $( The constant ` -1R ` is a signed real.  (Contributed by NM,
     9-Aug-1995.) $)
  m1r $p |- -1R e. R. $=
    ( c1p cpp cop cer cec cnp cxp cqs cm1r cnr wcel addclpr mp2an opelxpi enrex
    co 1pr ecelqsi ax-mp df-m1r df-nr 3eltr4i ) AAABPZCZDEZFFGZDHZIJUDUFKZUEUGK
    AFKZUCFKZUHQUIUIUJQQAALMAUCFFNMUFUDDORSTUAUB $.

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of addition on signed reals.  (Contributed by NM,
       25-Jul-1995.) $)
    addclsr $p |- ( ( A e. R. /\ B e. R. ) -> ( A +R B ) e. R. ) $=
      ( vx vy vz vw cnr wcel wa cplr co cnp cer cop cec df-nr wceq eleq1d cpp
      cv cxp cqs oveq1 oveq2 addsrpr addclpr anim12i an4s opelxpi enrex ecelqsi
      3syl eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIABJKZLLUAZMUBZGCTZDTZNMOZETZFTZ
      NMOZJKZURHAVDJKZURHUPURHCDEFABLLMGPVAAQVEVFURVAAVDJUCRVDBQVFUPURVDBAJUDRU
      SLHZUTLHZIVBLHZVCLHZIIZVEUSVBSKZUTVCSKZNZMOZURUSUTVBVCUEVKVLLHZVMLHZIZVNU
      QHVOURHVGVIVHVJVRVGVIIVPVHVJIVQUSVBUFUTVCUFUGUHVLVMLLUIUQVNMUJUKULUMUNPUO
      $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of multiplication on signed reals.  (Contributed by NM,
       10-Aug-1995.) $)
    mulclsr $p |- ( ( A e. R. /\ B e. R. ) -> ( A .R B ) e. R. ) $=
      ( vx vy vz vw cnr wcel wa cmr co cnp cer cop cec df-nr wceq cmp mulclpr
      cv cxp cqs oveq1 eleq1d oveq2 cpp mulsrpr addclpr syl2an an4s jca opelxpi
      an42s enrex ecelqsi 3syl eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIABJKZLLUAZM
      UBZGCTZDTZNMOZETZFTZNMOZJKZVBHAVHJKZVBHUTVBHCDEFABLLMGPVEAQVIVJVBVEAVHJUC
      UDVHBQVJUTVBVHBAJUEUDVCLHZVDLHZIVFLHZVGLHZIIZVIVCVFRKZVDVGRKZUFKZVCVGRKZV
      DVFRKZUFKZNZMOZVBVCVDVFVGUGVOVRLHZWALHZIWBVAHWCVBHVOWDWEVKVMVLVNWDVKVMIVP
      LHVQLHWDVLVNIVCVFSVDVGSVPVQUHUIUJVKVNVLVMWEVKVNIVSLHVTLHWEVLVMIVCVGSVDVFS
      VSVTUHUIUMUKVRWALLULVAWBMUNUOUPUQURPUS $.
  $}

  ${
    $d f g h r s t u v w x y z A $.  $d u v w z B $.  $d u v w x y z C $.
    $( Addition of signed reals is commutative.  (Contributed by Jim Kingdon,
       3-Jan-2020.) $)
    addcomsrg $p |- ( ( A e. R. /\ B e. R. ) -> ( A +R B ) = ( B +R A ) ) $=
      ( vx vy vz vw cnr cv cpp co cplr cer cnp df-nr addsrpr wcel wceq ad2ant2r
      addcomprg ad2ant2l ecovicom ) CDEFABGCHZEHZIJZKLMDHZFHZIJZUCUBIJZUFUEIJZN
      UBUEUCUFOUCUFUBUEOUBMPZUCMPZUDUHQUEMPZUFMPZUBUCSRULUMUGUIQUJUKUEUFSTUA $.

    $( Addition of signed reals is associative.  (Contributed by Jim Kingdon,
       3-Jan-2020.) $)
    addasssrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( ( A +R B ) +R C ) = ( A +R ( B +R C ) ) ) $=
      ( vx vy vz vw vv vu cv cpp co cnp addsrpr wcel addclpr anim12i an4s wceq
      wa cnr cer 3adant1r 3adant2r 3adant3r 3adant1l 3adant2l 3adant3l ecoviass
      cplr df-nr addassprg ) DEFGHIABCUAUJGJZIJZKLZUBMDJZFJZKLZEJZUMKLZURHJZKLZ
      UTUNKLZUPUQVAKLZKLZUSUOKLZVDUKUPUSUQUMNUQUMVAUNNURUTVAUNNUPUSVDUONUPMOZUQ
      MOZUSMOZUMMOZURMOZUTMOZTVGVHTVKVIVJTVLUPUQPUSUMPQRVHVAMOZVJUNMOZVDMOZUOMO
      ZTVHVMTVOVJVNTVPUQVAPUMUNPQRVGVITZVHVJTZVMVBVESZVNVQVHVMVSVJVGVHVMVSVIUPU
      QVAULUCUDUEVQVRVNVCVFSZVMVQVJVNVTVHVIVJVNVTVGUSUMUNULUFUGUHUI $.

    $( Multiplication of signed reals is commutative.  (Contributed by Jim
       Kingdon, 3-Jan-2020.) $)
    mulcomsrg $p |- ( ( A e. R. /\ B e. R. ) -> ( A .R B ) = ( B .R A ) ) $=
      ( vx vy vz vw cv cmp co cpp mulsrpr wcel wceq mulcomprg oveq12d ad2ant2rl
      cnp wa ad2ant2lr mulclpr cnr cmr df-nr ad2ant2r ad2ant2l ancoms addcomprg
      cer syl2anc eqtrd ecovicom ) CDEFABUACGZEGZHIZDGZFGZHIZJIUBUHQULUPHIZUOUM
      HIZJIZUMULHIZUPUOHIZJIUMUOHIZUPULHIZJIZUCULUOUMUPKUMUPULUOKULQLZUOQLZRUMQ
      LZUPQLZRRZUNVAUQVBJVFVHUNVAMVGVIULUMNUDVGVIUQVBMVFVHUOUPNUEOVJUTVDVCJIZVE
      VJURVDUSVCJVFVIURVDMVGVHULUPNPVGVHUSVCMVFVIUOUMNSOVJVDQLZVCQLZVKVEMVFVIVL
      VGVHVIVFVLUPULTUFPVGVHVMVFVIVHVGVMUMUOTUFSVDVCUGUIUJUK $.

    $( Multiplication of signed reals is associative.  (Contributed by Jim
       Kingdon, 3-Jan-2020.) $)
    mulasssrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( ( A .R B ) .R C ) = ( A .R ( B .R C ) ) ) $=
      ( vf vg vh cv cmp co cpp cnp mulsrpr wcel wa mulclpr addclpr syl2anc wceq
      w3a adantl vx vy vz vw vv vu vr vs vt cnr cmr cer df-nr ad2ant2r ad2ant2l
      ad2ant2rl ad2ant2lr mulcomprg distrprg simp1 simp2 simp3 caovdir2d simp1l
      mulassprg simp1r simp2l simp2r simp3l simp3r addcomprg addassprg ecoviass
      jca caovlem2d ) UAUBUCUDUEUFABCUJUKUCGZUFGZHIZUDGZUEGZHIZJIZULKUAGZVPHIZU
      BGZVSHIZJIZWCVSHIZWEVPHIZJIZWGVTHIWJVQHIJIWGVQHIWJVTHIJIWCVPVTHIZVSVQHIZJ
      IZHIWEWBHIJIWCWBHIWEWMHIJIWMUMWCWEVPVSLVPVSVTVQLWGWJVTVQLWCWEWMWBLWCKMZWE
      KMZNZVPKMZVSKMZNZNZWGKMZWJKMZWTWDKMZWFKMZXAWNWQXCWOWRWCVPOUNWOWRXDWNWQWEV
      SOUOWDWFPQWTWHKMZWIKMZXBWNWRXEWOWQWCVSOUPWOWQXFWNWRWEVPOUQWHWIPQVNWSVTKMZ
      VQKMZNZNZWMKMZWBKMZXJWKKMZWLKMZXKWQXGXMWRXHVPVTOUNWRXHXNWQXGVSVQOUOWKWLPQ
      XJVRKMZWAKMZXLWQXHXOWRXGVPVQOUPWRXGXPWQXHVSVTOUQVRWAPQVNWPWSXISZDEFWCWEVP
      VSVQKJHVTDGZKMZEGZKMZNZXRXTHIZXTXRHIRXQXRXTURTZXSYAFGZKMZSZXRXTJIZYEHIXRY
      EHIXTYEHIZJIRXQYGUGUHUIXRXTYEKJHUGGZKMZUHGZKMZUIGZKMSYJYLYNJIHIYJYLHIZYJY
      NHIJIRYGYJYLYNUSTXSYAYFUTXSYAYFVAXSYAYFVBYKYMNZYJYLJIKMYGYJYLPTYPYOYLYJHI
      RYGYJYLURTVCTZYGYCYEHIXRYIHIRXQXRXTYEVETZYBYCKMXQXRXTOTZWNWOWSXIVDZWNWOWS
      XIVFZWPWQWRXIVGZWPWQWRXIVHZWPWSXGXHVIZWPWSXGXHVJZYBYHXTXRJIRXQXRXTVKTZYGY
      HYEJIXRXTYEJIJIRXQXRXTYEVLTZYBYHKMXQXRXTPTZVOXQDEFWCWEVPVSVTKJHVQYDYQYRYS
      YTUUAUUBUUCUUEUUDUUFUUGUUHVOVM $.

    $( Multiplication of signed reals is distributive.  (Contributed by Jim
       Kingdon, 4-Jan-2020.) $)
    distrsrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( A .R ( B +R C ) ) = ( ( A .R B ) +R ( A .R C ) ) ) $=
      ( vf vg vh cnp cv cpp co cmp mulsrpr wcel wa addclpr mulclpr syl2anc wceq
      distrprg syl3anc vx vy vz vw vv vu cnr cplr cer addsrpr ad2ant2r ad2ant2l
      cmr jca ad2ant2rl ad2ant2lr w3a simp1l simp2l simp3l simp1r simp2r simp3r
      df-nr oveq12d addcomprg adantl addassprg caov4d eqtrd ecovidi ) UAUBUCUDU
      EUFABCUGUHUIGUMUAHZUCHZUEHZIJZKJZUBHZUDHZUFHZIJZKJZIJZVLVTKJZVQVOKJZIJZVL
      VMKJZVQVRKJZIJZVLVNKJZVQVSKJZIJZIJZVLVRKJZVQVMKJZIJZVLVSKJZVQVNKJZIJZIJZV
      OVTWHWOWKWRVDVMVRVNVSUJVLVQVOVTLVLVQVMVRLVLVQVNVSLWHWOWKWRUJVMGMZVRGMZNZV
      NGMZVSGMZNZNVOGMZVTGMZWTXCXFXAXDVMVNOUKXAXDXGWTXCVRVSOULUNVLGMZVQGMZNZXBN
      ZWHGMZWOGMZXKWFGMZWGGMZXLXHWTXNXIXAVLVMPZUKXIXAXOXHWTVQVRPZULWFWGOQXKWMGM
      ZWNGMZXMXHXAXRXIWTVLVRPZUOXIWTXSXHXAVQVMPZUPWMWNOQUNXJXENZWKGMZWRGMZYBWIG
      MZWJGMZYCXHXCYEXIXDVLVNPZUKXIXDYFXHXCVQVSPZULWIWJOQYBWPGMZWQGMZYDXHXDYIXI
      XCVLVSPZUOXIXCYJXHXDVQVNPZUPWPWQOQUNXJXBXEUQZWBWFWIIJZWGWJIJZIJWLYMVPYNWA
      YOIYMXHWTXCVPYNRXHXIXBXEURZXJWTXAXEUSZXJXBXCXDUTZVLVMVNSTYMXIXAXDWAYORXHX
      IXBXEVAZXJWTXAXEVBZXJXBXCXDVCZVQVRVSSTVEYMDEFWFWIWGWJGIYMXHWTXNYPYQXPQYMX
      HXCYEYPYRYGQYMXIXAXOYSYTXQQDHZGMZEHZGMZNZUUBUUDIJZUUDUUBIJRYMUUBUUDVFVGZU
      UCUUEFHZGMUQUUGUUIIJUUBUUDUUIIJIJRYMUUBUUDUUIVHVGZYMXIXDYFYSUUAYHQUUFUUGG
      MYMUUBUUDOVGZVIVJYMWEWMWPIJZWNWQIJZIJWSYMWCUULWDUUMIYMXHXAXDWCUULRYPYTUUA
      VLVRVSSTYMXIWTXCWDUUMRYSYQYRVQVMVNSTVEYMDEFWMWPWNWQGIYMXHXAXRYPYTXTQYMXHX
      DYIYPUUAYKQYMXIWTXSYSYQYAQUUHUUJYMXIXCYJYSYRYLQUUKVIVJVK $.
  $}

  $( Minus one plus one is zero for signed reals.  (Contributed by NM,
     5-May-1996.) $)
  m1p1sr $p |- ( -1R +R 1R ) = 0R $=
    ( cm1r c1r cplr co c1p cpp cop cer cec c0r df-m1r cnp wcel wceq 1pr addclpr
    df-1r mp2an mp4an eqtr4i oveq12i df-0r addsrpr addassprg mp3an oveq2i mpbir
    wb enreceq ) ABCDEEEFDZGHIZUJEGHIZCDZJAUKBULCKQUAJEEGHIZUMUBUMEUJFDZUJEFDZG
    HIZUNELMZUJLMZUSURUMUQNOURURUSOOEEPRZUTOEUJUJEUCSUNUQNZEUPFDEUOFDNZUPUOEFUR
    URURUPUONOOOEEEUDUEUFURURUOLMZUPLMZVAVBUHOOURUSVCOUTEUJPRUSURVDUTOUJEPREEUO
    UPUISUGTTT $.

  $( Minus one times minus one is plus one for signed reals.  (Contributed by
     NM, 14-May-1996.) $)
  m1m1sr $p |- ( -1R .R -1R ) = 1R $=
    ( cm1r cmr c1p cpp cop cer cec c1r df-m1r oveq12i cmp cnp wcel wceq addclpr
    co 1pr mp2an mulclpr eqtr4i df-1r mulsrpr mp4an addassprg mp3an 1idpr ax-mp
    distrprg mulcomprg oveq1i oveq2i wb enreceq mpbir ) AABPCCCDPZEFGZUPBPZHAUP
    AUPBIIJHUOCEFGZUQUAUQCCKPZUOUOKPZDPZCUOKPZUOCKPZDPZEFGZURCLMZUOLMZVFVGUQVEN
    QVFVFVGQQCCORZQVHCUOCUOUBUCURVENZUOVDDPZCVADPZNZVJCCVDDPZDPZVKVFVFVDLMZVJVN
    NQQVBLMZVCLMZVOVFVGVPQVHCUOSRVGVFVQVHQUOCSRVBVCORZCCVDUDUEVAVMCDUSCUTVDDVFU
    SCNQCUFUGUTVCVCDPZVDVGVFVFUTVSNVHQQUOCCUHUEVBVCVCDVFVGVBVCNQVHCUOUIRUJTJUKT
    VGVFVALMZVOVIVLULVHQUSLMZUTLMZVTVFVFWAQQCCSRVGVGWBVHVHUOUOSRUSUTORVRUOCVAVD
    UMUCUNTTT $.

  ${
    $d f g h r s t x y z w v u $.
    $( Signed real 'less than' is a transitive relation.  (Contributed by Jim
       Kingdon, 4-Jan-2019.) $)
    lttrsr $p |- ( ( f e. R. /\ g e. R. /\ h e. R. ) ->
        ( ( f <R g /\ g <R h ) -> f <R h ) ) $=
      ( vr vs vt cv cer cltr wbr wa cnp wceq wcel cpp co cltp addclpr syl2anc
      wb vx vy vz vw vv vu cop cec cnr df-nr breq1 anbi1d imbi12d breq2 anbi12d
      wi imbi1d anbi2d ltsrprg ltaprg adantl simp1l simp2r simp1r simp2l simp3r
      3adant3 addcomprg caovord2d addassprg syl3anc breq12d bitrd simp3l ltsopr
      w3a 3adant1 ltrelpr biimprd caov12d 3adant2 3imtr4d syl5 sylbid 3ecoptocl
      sotri ) UAGZUBGZUGHUHZUCGZUDGZUGHUHZIJZWLUEGZUFGZUGHUHZIJZKZWIWPIJZUPAGZW
      LIJZWQKZWTWPIJZUPWTBGZIJZXDWPIJZKZXCUPXEXDCGZIJZKZWTXHIJZUPUAUBUCUDUEUFWT
      XDXHLHUIUJWIWTMZWRXBWSXCXLWMXAWQWIWTWLIUKULWIWTWPIUKUMWLXDMZXBXGXCXMXAXEW
      QXFWLXDWTIUNWLXDWPIUKUOUQWPXHMZXGXJXCXKXNXFXIXEWPXHXDIUNURWPXHWTIUNUMWGLN
      ZWHLNZKZWJLNZWKLNZKZWNLNZWOLNZKZVPZWRWGWKWOOPOPZWHWJWOOPZOPZQJZYGWHWKWNOP
      ZOPZQJZKZWSYDWMYHWQYKYDWMWGWKOPZWHWJOPZQJZYHXQXTWMYOTYCWGWHWJWKUSVGYDYOYM
      WOOPZYNWOOPZQJYHYDDEFYMYNWOQLODGZLNZEGZLNZFGZLNVPZYRYTQJUUBYROPUUBYTOPQJT
      YDYRYTUUBUTVAYDXOXSYMLNXOXPXTYCVBZXQXRXSYCVCZWGWKRSYDXPXRYNLNXOXPXTYCVDZX
      QXRXSYCVEZWHWJRSXQXTYAYBVFZYSUUAKYRYTOPZYTYROPMYDYRYTVHVAZVIYDYPYEYQYGQYD
      XOXSYBYPYEMUUDUUEUUHWGWKWOVJVKYDXPXRYBYQYGMUUFUUGUUHWHWJWOVJVKVLVMVMYDWQY
      FYIQJZYKXTYCWQUUKTXQWJWKWNWOUSVQYDYFLNZYILNZXPUUKYKTYDXRYBUULUUGUUHWJWORS
      YDXSYAUUMUUEXQXTYAYBVNZWKWNRSUUFYFYIWHUTVKVMUOYLYEYJQJZYDWSYEYGYJQLVOVRWF
      YDWKWGWOOPZOPZWKWHWNOPZOPZQJZUUPUURQJZUUOWSYDUVAUUTYDUUPLNZUURLNZXSUVAUUT
      TYDXOYBUVBUUDUUHWGWORSYDXPYAUVCUUFUUNWHWNRSUUEUUPUURWKUTVKVSYDYEUUQYJUUSQ
      YDDEFWGWKWOLOUUDUUEUUHUUJUUCUUIUUBOPYRYTUUBOPOPMYDYRYTUUBVJVAZVTYDDEFWHWK
      WNLOUUFUUEUUNUUJUVDVTVLXQYCWSUVATXTWGWHWNWOUSWAWBWCWDWE $.
  $}

  ${
    $d x y z w v u f g h $.
    $( Signed real 'less than' is a partial order.  (Contributed by Jim
       Kingdon, 4-Jan-2019.) $)
    ltposr $p |- <R Po R. $=
      ( vf vg vh vx vy cnr cltr wpo wtru cv wcel wbr wn cer cnp cpp cltp adantl
      wa co cop cec df-nr wceq id breq12d notbid ltsopr soirri addcomprg breq2d
      ltrelpr mtbii wb ltsrprg anidms mtbird ecoptocl w3a wi lttrsr ispod trud
      ) FGHIABCFGAJZFKZVDVDGLZMZIDJZEJZUANUBZVJGLZMVGDEVDOONFUCVJVDUDZVKVFVLVJV
      DVJVDGVLUEZVMUFUGVHOKVIOKSZVKVHVIPTZVIVHPTZQLZVNVOVOQLVQVOQOUHULUIVNVOVPV
      OQVHVIUJUKUMVNVKVQUNVHVIVHVIUOUPUQURRVEBJZFKCJZFKUSVDVRGLVRVSGLSVDVSGLUTI
      ABCVARVBVC $.
  $}

  ${
    $d a b c d e f r s t x y z w v u $.
    $( Signed real 'less than' is a strict ordering.  (Contributed by NM,
       19-Feb-1996.) $)
    ltsosr $p |- <R Or R. $=
      ( vx vy vr vs vt cnr cltr cv wbr wo wi cnp wceq wcel cltp addclpr syl2anc
      cpp co wb vz va vb vc vd ve vf wor wpo wral ltposr cop df-nr breq1 orbi1d
      cer cec imbi12d breq2 orbi2d imbi2d wa simp1l simp3r simp2r simp2l simp1r
      orbi12d simp3l ltsopr sowlin mpan syl3anc ltaprg addcomprg adantl caov12d
      addassprg caovassd eqtr4d caov32d eqtr3d breq12d bitrd caovord2d caovcomd
      w3a eqtrd breq1d bitr4d 3imtr4d ltsrprg 3adant3 3adant2 3adant1 3ecoptocl
      ancoms rgen3 df-iso mpbir2an ) FGUHFGUIAHZBHZGIZXAUAHZGIZXDXBGIZJZKZUAFUJ
      BFUJAFUJUKXHABUAFFFUBHZUCHZULUPUQZUDHZUEHZULUPUQZGIZXKUFHZUGHZULUPUQZGIZX
      RXNGIZJZKXAXNGIZXAXRGIZXTJZKXCYCXRXBGIZJZKXHUBUCUDUEUFUGXAXBXDLUPFUMXKXAM
      ZXOYBYAYDXKXAXNGUNYGXSYCXTXKXAXRGUNUOURXNXBMZYBXCYDYFXNXBXAGUSYHXTYEYCXNX
      BXRGUSUTURXRXDMZYFXGXCYIYCXEYEXFXRXDXAGUSXRXDXBGUNVHVAXILNZXJLNZVBZXLLNZX
      MLNZVBZXPLNZXQLNZVBZWGZXIXMRSZXJXLRSZOIZXIXQRSZXJXPRSZOIZXPXMRSZXQXLRSZOI
      ZJZXOYAYSUUCXMRSZUUGXJRSZOIZUUJUUDXMRSZOIZUUMUUKOIZJZUUBUUIYSUUJLNZUUKLNZ
      UUMLNZUULUUPKZYSUUCLNZYNUUQYSYJYQUVAYJYKYOYRVCZYLYOYPYQVDZXIXQPQZYLYMYNYR
      VEZUUCXMPQYSUUGLNZYKUURYSYQYMUVFUVCYLYMYNYRVFZXQXLPQZYJYKYOYRVGZUUGXJPQYS
      UUDLNZYNUUSYSYKYPUVJUVIYLYOYPYQVIZXJXPPQZUVEUUDXMPQLOUHUUQUURUUSWGUUTVJLU
      UJUUKUUMOVKVLVMYSUUBXQYTRSZXQUUARSZOIZUULYSYTLNZUUALNZYQUUBUVOTYSYJYNUVPU
      VBUVEXIXMPQYSYKYMUVQUVIUVGXJXLPQUVCYTUUAXQVNVMYSUVMUUJUVNUUKOYSUVMXIXQXMR
      SRSUUJYSCDEXQXIXMLRUVCUVBUVECHZLNZDHZLNZVBUVRUVTRSZUVTUVRRSMYSUVRUVTVOVPZ
      UVSUWAEHZLNWGZUWBUWDRSUVRUVTUWDRSRSMYSUVRUVTUWDVRVPZVQYSCDEXIXQXMLRUWFUVB
      UVCUVEVSVTYSXQXJRSXLRSUVNUUKYSCDEXQXJXLLRUWFUVCUVIUVGVSYSCDEXQXJXLLRUVCUV
      IUVGUWCUWFWAWBWCWDYSUUEUUNUUHUUOYSCDEUUCUUDXMOLRUWEUVRUVTOIUWDUVRRSUWDUVT
      RSOITYSUVRUVTUWDVNVPZUVDUVLUVEUWCWEYSUUHUUFXJRSZUUKOIUUOYSCDEUUFUUGXJOLRU
      WGYSYPYNUUFLNUVKUVEXPXMPQZUVHUVIUWCWEYSUUMUWHUUKOYSUUMXJUUFRSUWHYSCDEXJXP
      XMLRUWFUVIUVKUVEVSYSCDXJUUFLRUWCUVIUWIWFWHWIWJVHWKYLYOXOUUBTYRXIXJXLXMWLW
      MYSXSUUEXTUUHYLYRXSUUETYOXIXJXPXQWLWNYOYRXTUUHTZYLYRYOUWJXPXQXLXMWLWQWOVH
      WKWPWRABUAFGWSWT $.
  $}

  $( 0 is less than 1 for signed reals.  (Contributed by NM, 26-Mar-1996.) $)
  0lt1sr $p |- 0R <R 1R $=
    ( c1p cop cer cec cpp co c0r c1r cltr wbr cltp cnp wcel 1pr addclpr ltaddpr
    mp2an wceq addcomprg breqtrri wb ltsrprg mp4an mpbir df-0r df-1r 3brtr4i )
    AABCDZAAEFZABCDZGHIUHUJIJZUIAUIEFZKJZUIUIAEFZULKUILMZALMZUIUNKJUPUPUONNAAOQ
    ZNUIAPQUPUOULUNRNUQAUISQTUPUPUOUPUKUMUANNUQNAAUIAUBUCUDUEUFUG $.

  $( 1 and 0 are distinct for signed reals.  (Contributed by NM,
     26-Mar-1996.) $)
  1ne0sr $p |- -. 1R = 0R $=
    ( c1r c0r wceq cltr wbr cnr wor wcel wn ltsosr 1sr sonr mp2an 0lt1sr mpbiri
    breq1 mto ) ABCZAADEZFDGAFHSIJKFADLMRSBADENABADPOQ $.

  ${
    $d x y z w v $.  $d x y A $.
    $( The signed real number 0 is an identity element for addition of signed
       reals.  (Contributed by NM, 10-Apr-1996.) $)
    0idsr $p |- ( A e. R. -> ( A +R 0R ) = A ) $=
      ( vx vy vz vw vv cv cop cer cec c0r cplr co wceq cnp wcel wa c1p cpp 1pr
      df-nr oveq1 id eqeq12d df-0r oveq2i addsrpr mpanr12 simpl simpr addcomprg
      cnr a1i adantl w3a addassprg caov12d addclpr mpan2 anim12i enreceq mpbird
      wb mpdan eqtr4d syl5eq ecoptocl ) BGZCGZHIJZKLMZVJNAKLMZANBCAOOIULUAVJANZ
      VKVLVJAVJAKLUBVMUCUDVHOPZVIOPZQZVKVJRRHIJZLMZVJKVQVJLUEUFVPVRVHRSMZVIRSMZ
      HIJZVJVPROPZWBVRWANTTVHVIRRUGUHVPVJWANZVHVTSMVIVSSMNZVPDEFVHVIROSVNVOUIVN
      VOUJWBVPTUMDGZOPZEGZOPZQWEWGSMZWGWESMNVPWEWGUKUNWFWHFGZOPUOWIWJSMWEWGWJSM
      SMNVPWEWGWJUPUNUQVPVSOPZVTOPZQWCWDVCVNWKVOWLVNWBWKTVHRURUSVOWBWLTVIRURUSU
      TVHVIVSVTVAVDVBVEVFVG $.
  $}

  ${
    $d x y A $.  $d x y z w v $.
    $( 1 is an identity element for multiplication.  (Contributed by Jim
       Kingdon, 5-Jan-2020.) $)
    1idsr $p |- ( A e. R. -> ( A .R 1R ) = A ) $=
      ( cv cop cer cec c1r cmr co wceq cnp wcel c1p cpp cmp 1pr addclpr mulclpr
      wa sylancl mpan2 vx vy vz vw vv df-nr oveq1 id eqeq12d df-1r oveq2i mp2an
      cnr mulsrpr mpanr12 distrprg mp3an23 1idpr oveq1d eqtr2d oveqan12d adantl
      eqtrd simpl addassprg syl3anc simpr addcomprg w3a caov12d 3eqtr3d anim12i
      wb syl2an enreceq syldan anidms mpbird eqtr4d syl5eq ecoptocl ) UABZUBBZC
      DEZFGHZWDIAFGHZAIUAUBAJJDUMUFWDAIZWEWFWDAWDAFGUGWGUHUIWBJKZWCJKZRZWEWDLLM
      HZLCDEZGHZWDFWLWDGUJUKWJWMWBWKNHZWCLNHZMHZWBLNHZWCWKNHZMHZCDEZWDWJWKJKZLJ
      KZWMWTIXBXBXAOOLLPULZOWBWCWKLUNUOWJWDWTIZWBWSMHZWCWPMHZIZWJWBWQMHZWRMHZWN
      WCWOMHZMHXEXFWHWIXHWNWRXJMWHWNWQWQMHZXHWHXBXBWNXKIOOWBLLUPUQWHWQWBWQMWBUR
      USUTWIWRWOWOMHZXJWIXBXBWRXLIOOWCLLUPUQWIWOWCWOMWCURUSVCVAWJWHWQJKZWRJKZXI
      XEIWHWIVDZWJWHXBXMXOOWBLQZSWIXNWHWIXAXNXCWCWKQTZVBWBWQWRVEVFWJUCUDUEWNWCW
      OJMWJWHXAWNJKZXOXCWBWKQZSWHWIVGZWJWIXBWOJKZXTOWCLQZSUCBZJKZUDBZJKZRYCYEMH
      ZYEYCMHIWJYCYEVHVBYDYFUEBZJKVIYGYHMHYCYEYHMHMHIWJYCYEYHVEVBVJVKWJXDXGVMZW
      JWJWPJKZWSJKZRYIWJYJWJYKWHXRYAYJWIWHXAXRXCXSTWIXBYAOYBTWNWOPVNWHXMXNYKWIW
      HXBXMOXPTXQWQWRPVNVLWBWCWPWSVOVPVQVRVSVTWA $.
  $}

  ${
    $d x y A $.
    $( A signed real times 0 is 0.  (Contributed by NM, 10-Apr-1996.) $)
    00sr $p |- ( A e. R. -> ( A .R 0R ) = 0R ) $=
      ( vx vy cv cop cer cec c0r cmr co wceq cnp wa c1p cmp cpp mpanr12 mulclpr
      wcel 1pr cnr df-nr oveq1 eqeq1d mulsrpr mpan2 addclpr syl2an anim12i eqid
      enreceq mpbiri sylan anidms eqtrd df-0r oveq2i 3eqtr4g ecoptocl ) BDZCDZE
      FGZHIJZHKAHIJZHKBCALLFUAUBVBAKVCVDHVBAHIUCUDUTLSZVALSZMZVBNNEFGZIJZVHVCHV
      GVIUTNOJZVANOJZPJZVLEFGZVHVGNLSZVNVIVMKTTUTVANNUEQVGVMVHKZVGVGMZVNVNVOTTV
      PVLLSZVQMZVNVNMZVOVGVQVGVQVEVJLSZVKLSZVQVFVEVNVTTUTNRUFVFVNWATVANRUFVJVKU
      GUHZWBUIVRVSMVOVLNPJZWCKWCUJVLVLNNUKULUMQUNUOHVHVBIUPUQUPURUS $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d r s t x y z w v u $.
    $( Ordering property of addition.  (Contributed by NM, 10-May-1996.) $)
    ltasrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( A <R B <-> ( C +R A ) <R ( C +R B ) ) ) $=
      ( vr vs wcel cltr wbr cplr co wb cop cer cec cnp wceq cpp addclpr syl2anc
      cv vx vy vz vw vv vu vt cnr df-nr oveq1 breq12d bibi2d breq1 oveq2 breq1d
      bibi12d breq2 breq2d w3a cltp simp2l simp3r simp2r simp3l 3ad2ant1 ltaprg
      syl3anc ltsrprg 3adant1 simp1l simp1r syl22anc addcomprg adantl addassprg
      wa caovcomd caov42d eqtrd bitrd 3bitr4d addsrpr 3adant3 3adant2 3ecoptocl
      caov4d bitr4d 3coml ) CUHFAUHFBUHFABGHZCAIJZCBIJZGHZKZUATZUBTZLMNZUCTZUDT
      ZLMNZGHZUETZUFTZLMNZWPIJZXCWSIJZGHZKWTCWPIJZCWSIJZGHZKAWSGHZWJXHGHZKWMUEU
      FUAUBUCUDCABOMUHUIXCCPZXFXIWTXLXDXGXEXHGXCCWPIUJXCCWSIUJUKULWPAPZWTXJXIXK
      WPAWSGUMXMXGWJXHGWPACIUNUOUPWSBPZXJWIXKWLWSBAGUQXNXHWKWJGWSBCIUNURUPXAOFZ
      XBOFZVPZWNOFZWOOFZVPZWQOFZWROFZVPZUSZWTXAWNQJZXBWOQJZLMNZXAWQQJZXBWRQJZLM
      NZGHZXFYDWNWRQJZWOWQQJZUTHZXAXBQJZYLQJZYOYMQJZUTHZWTYKYDYLOFZYMOFZYOOFZYN
      YRKYDXRYBYSXQXRXSYCVAZXQXTYAYBVBZWNWRRSYDXSYAYTXQXRXSYCVCZXQXTYAYBVDZWOWQ
      RSXQXTUUAYCXAXBRVEYLYMYOVFVGXTYCWTYNKXQWNWOWQWRVHVIYDYKYEYIQJZYFYHQJZUTHZ
      YRYDYEOFZYFOFZYHOFZYIOFZYKUUHKYDXOXRUUIXOXPXTYCVJZUUBXAWNRSYDXPXSUUJXOXPX
      TYCVKZUUDXBWORSZYDXOYAUUKUUMUUEXAWQRSZYDXPYBUULUUNUUCXBWRRSYEYFYHYIVHVLYD
      UUFYPUUGYQUTYDDEUGXAWNXBWROQUUMUUBUUNDTZOFZETZOFZVPZUUQUUSQJZUUSUUQQJPYDU
      UQUUSVMVNZUURUUTUGTZOFUSUVBUVDQJUUQUUSUVDQJQJPYDUUQUUSUVDVOVNZUUCUVAUVBOF
      YDUUQUUSRVNZWFYDUUGYHYFQJYQYDDEYFYHOQUVCUUOUUPVQYDDEUGXAWQXBWOOQUUMUUEUUN
      UVCUVEUUDUVFVRVSUKVTWAYDXDYGXEYJGXQXTXDYGPYCXAXBWNWOWBWCXQYCXEYJPXTXAXBWQ
      WRWBWDUKWGWEWH $.
  $}

  $( A signed real plus its negative is zero.  (Contributed by NM,
     14-May-1996.) $)
  pn0sr $p |- ( A e. R. -> ( A +R ( A .R -1R ) ) = 0R ) $=
    ( cnr wcel c0r cmr co c1r cm1r cplr wceq m1r distrsrg mp3an23 m1p1sr oveq2i
    1sr a1i mulclsr mpan2 addcomsrg syl2anc 3eqtr3d 00sr 1idsr oveq1d 3eqtr3rd
    ) ABCZADEFZAGEFZAHEFZIFZDAUJIFUGAHGIFZEFZUJUIIFZUHUKUGHBCZGBCZUMUNJKPAHGLMU
    MUHJUGULDAENOQUGUJBCZUIBCZUNUKJUGUOUQKAHRSUGUPURPAGRSUJUITUAUBAUCUGUIAUJIAU
    DUEUF $.

  ${
    $d x A $.
    $( Existence of negative signed real.  Part of Proposition 9-4.3 of
       [Gleason] p. 126.  (Contributed by NM, 2-May-1996.) $)
    negexsr $p |- ( A e. R. -> E. x e. R. ( A +R x ) = 0R ) $=
      ( cnr wcel cm1r cmr co cplr c0r wceq cv wrex m1r mpan2 pn0sr oveq2 eqeq1d
      mulclsr rspcev syl2anc ) BCDZBEFGZCDZBUBHGZIJZBAKZHGZIJZACLUAECDUCMBERNBO
      UHUEAUBCUFUBJUGUDIUFUBBHPQST $.
  $}

  ${
    $d x y z A $.  $d x y z w v u f g h $.
    $( The reciprocal of a positive signed real exists and is positive.
       (Contributed by Jim Kingdon, 6-Feb-2020.) $)
    recexgt0sr $p |- ( 0R <R A ->
        E. x e. R. ( 0R <R x /\ ( A .R x ) = 1R ) ) $=
      ( cnr wcel c0r cltr wbr cv co c1r wceq wa cer cnp cpp cmp c1p 1pr syl2anc
      adantr vy vz vw vv vf vg vh cmr wrex ltrelsr brel simprd cop cec wi df-nr
      breq2 oveq1 eqeq1d anbi2d rexbidv imbi12d gt0srpr ltexpri recexpr addclpr
      cltp sylbi adantl mpan2 ecopqsi sylancl ad2antlr simprr ltaddpr addcomprg
      enrex mpan breqtrd sylibr syl anim2i mulsrpr adantlrl eqcomd ad2antll w3a
      jctir mulcomprg 3adant2 3adant1 oveq12d 3coml simp3 3adant3 simplr simprl
      distrprg 3eqtr2rd caovdird oveq2 sylan9eq adantrr eqtrd oveq1d a1i simpll
      mulclpr addassprg caov32d syl3anc oveq2d caov12d 3eqtr4d wb eqeltrd mp2an
      enreceq syl22anc mpbird syl6eqr anbi12d rspcev syl12anc anassrs rexlimdva
      df-1r exp32 mpd syl5 ecoptocl mpcom ) BCDZEBFGZEAHZFGZBYOUHIZJKZLZACUIZYN
      ECDYMEBCCFUJUKULEUAHZUBHZUMMUNZFGZYPUUCYOUHIZJKZLZACUIZUOYNYTUOUAUBBNNMCU
      PUUCBKZUUDYNUUHYTUUCBEFUQUUIUUGYSACUUIUUFYRYPUUIUUEYQJUUCBYOUHURUSUTVAVBU
      UDUUBUCHZOIZUUAKZUCNUIZUUANDZUUBNDZLZUUHUUDUUBUUAVGGUUMUUAUUBVCUCUUBUUAVD
      VHUUPUULUUHUCNUUPUUJNDZLZUUJUDHZPIZQKZUDNUIZUULUUHUOZUUQUVBUUPUDUUJVEVIUU
      RUVAUVCUDNUUPUUQUUSNDZUVAUVCUOUUPUUQUVDLZLZUVAUULUUHUVFUVAUULLZLZUUSQOIZQ
      UMMUNZCDZEUVJFGZUUCUVJUHIZJKZUUHUVEUVKUUPUVGUVDUVKUUQUVDUVINDZQNDZUVKUVDU
      VPUVORUUSQVFZVJZRNUVIQMCVQUPVKVLVIVMUVHUVDUVLUVFUVDUVGUUPUUQUVDVNZTUVDQUV
      IVGGUVLUVDQQUUSOIZUVIVGUVPUVDQUVTVGGRQUUSVOVRUVPUVDUVTUVIKRQUUSVPVRVSUVIQ
      VCVTWAUVHUVMQQOIZQUMMUNZJUVHUVMUUAUVIPIZUUBQPIZOIZUUAQPIZUUBUVIPIZOIZUMMU
      NZUWBUUPUVDUVGUVMUWIKZUUQUUPUVDLZUVGLUUPUVOUVPLZLZUWJUWKUWMUVGUVDUWLUUPUV
      DUVOUVPUVRRWHWBTUUAUUBUVIQWCWAWDUVHUWIUWBKZUWEQOIZUWHUWAOIZKZUVHUUAUUSPIZ
      UWFUWDOIZOIZQOIZUUBUUSPIZUWSOIZUWAOIZUWOUWPUVHUXAUXCQOIZQOIZUXDUVHUWTUXEQ
      OUVHUWTUXBQOIZUWSOIZUXEUVHUWRUXGUWSOUVHUWRUUKUUSPIZUXGUULUWRUXIKUVFUVAUUL
      UXIUWRUUKUUAUUSPURWEWFUVFUVAUXIUXGKUULUVFUVAUXIUXBUUTOIUXGUVFUEUFUGUUBUUJ
      UUSNOPONUEHZNDZUFHZNDZUGHZNDZWGZUXJUXLOIZUXNPIZUXJUXNPIZUXLUXNPIZOIZKUVFU
      XPUYAUXNUXJPIZUXNUXLPIZOIZUXNUXQPIZUXRUXPUXSUYBUXTUYCOUXKUXOUXSUYBKUXMUXJ
      UXNWIWJUXMUXOUXTUYCKUXKUXLUXNWIWKWLUXOUXKUXMUYEUYDKUXNUXJUXLWRWMUXPUXOUXQ
      NDZUYEUXRKUXKUXMUXOWNUXKUXMUYFUXOUXJUXLVFWOUXNUXQWISWSVIUUNUUOUVEWPZUUPUU
      QUVDWQUVSWTUUTQUXBOXAXBXCXDXEUVFUXHUXEKUVGUVFUEUFUGUXBQUWSNOUVFUUOUVDUXBN
      DZUYGUVSUUBUUSXHSZUVPUVFRXFZUVFUWFNDZUWDNDZUWSNDZUVFUUNUVPUYKUUNUUOUVEXGZ
      RUUAQXHVLZUVFUUOUVPUYLUYGRUUBQXHVLZUWFUWDVFSZUXKUXMLUXQUXLUXJOIKUVFUXJUXL
      VPVIZUXPUXQUXNOIUXJUXLUXNOIOIKUVFUXJUXLUXNXIVIZXJTXDXEUVHUXCNDZUVPUVPUXFU
      XDKUVFUYTUVGUVFUYHUYMUYTUYIUYQUXBUWSVFSZTUVPUVHRXFZVUBUXCQQXIXKXDUVFUWOUX
      AKUVGUVFUWEUWTQOUVFUWEUWRUWFOIZUWDOIZUWTUVFUWCVUCUWDOUVFUUNUVDUVPUWCVUCKU
      YNUVSUYJUUAUUSQWRXKXEUVFUWRNDZUYKUYLVUDUWTKUVFUUNUVDVUEUYNUVSUUAUUSXHSUYO
      UYPUWRUWFUWDXIXKXDXETUVFUWPUXDKUVGUVFUWHUXCUWAOUVFUWHUWFUXBUWDOIZOIUXCUVF
      UWGVUFUWFOUVFUUOUVDUVPUWGVUFKUYGUVSUYJUUBUUSQWRXKXLUVFUEUFUGUWFUXBUWDNOUY
      OUYIUYPUYRUYSXMXDZXETXNUVFUWNUWQXOZUVGUVFUWENDZUWHNDUWANDZUVPVUHUVFUWCNDZ
      UYLVUIUVFUUNUVOVUKUYNUVFUVDUVPUVOUVSRUVQVLUUAUVIXHSUYPUWCUWDVFSUVFUWHUXCN
      VUGVUAXPVUJUVFUVPUVPVUJRRQQVFXQXFUYJUWEUWHUWAQXRXSTXTXDYGYAUUGUVLUVNLAUVJ
      CYOUVJKZYPUVLUUFUVNYOUVJEFUQVULUUEUVMJYOUVJUUCUHXAUSYBYCYDYHYEYFYIYFYJYKY
      L $.
  $}

  ${
    $d x y z A $.  $d x y z w v u f g h $.
    $( The reciprocal of a positive signed real exists.  Part of Proposition
       9-4.3 of [Gleason] p. 126.  (Contributed by NM, 15-May-1996.) $)
    recexsrlem $p |- ( 0R <R A -> E. x e. R. ( A .R x ) = 1R ) $=
      ( c0r cltr wbr cv cmr co c1r wceq wa cnr wrex recexgt0sr simpr reximi syl
      ) CBDECAFZDEZBRGHIJZKZALMTALMABNUATALSTOPQ $.
  $}

  $( The sum of two positive signed reals is positive.  (Contributed by NM,
     14-May-1996.) $)
  addgt0sr $p |- ( ( 0R <R A /\ 0R <R B ) -> 0R <R ( A +R B ) ) $=
    ( c0r cltr wbr cplr co wa simpr cnr wcel wb ltrelsr simprd 0r ltasrg mp3an1
    brel syl2anr mpbid adantr 0idsr breq1d syl ltsosr sotri syldan ) CADEZCBDEZ
    AABFGZDEZCUJDEUHUIHZACFGZUJDEZUKULUIUNUHUIIUIBJKZAJKZUIUNLZUHUICJKZUOCBJJDM
    RNUHURUPCAJJDMRNZURUOUPUQOCBAPQSTULUPUNUKLUHUPUIUSUAUPUMAUJDAUBUCUDTCAUJDJU
    EMUFUG $.

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w v u f g h $.
    $( The product of two positive signed reals is positive.  (Contributed by
       NM, 13-May-1996.) $)
    mulgt0sr $p |- ( ( 0R <R A /\ 0R <R B ) -> 0R <R ( A .R B ) ) $=
      ( vf vg vh cnr wcel wa c0r cltr wbr co cv cnp wceq cmp cpp adantl mulclpr
      syl2anc vx vy vz vw vv vu cmr ltrelsr simprd anim12i cop cer cec wi df-nr
      brel breq2 anbi1d oveq1 breq2d imbi12d oveq2 cltp gt0srpr anbi12i ltexpri
      anbi2d wrex addclpr simplrr simplr ad2antrr simplrl caovcld adantr simprl
      eqeltrrd ltaddpr simprr oveq12 oveq1d distrprg eqtr3d mulcomprg caovdir2d
      syl3anc oveq12d addcomprg addassprg caov4d 3eqtr4d caov12d caov32d oveq2d
      w3a ad2antlr 3eqtr3d addcanprg breqtrrd rexlimdvaa mulsrpr syl6bb sylibrd
      mpd syl5 impd syl5bi 2ecoptocl mpcom ) AFGZBFGZHIAJKZIBJKZHZIABUGLZJKZXLX
      JXMXKXLIFGZXJIAFFJUHUPUIXMXQXKIBFFJUHUPUIUJIUAMZUBMZUKULUMZJKZIUCMZUDMZUK
      ULUMZJKZHZIXTYDUGLZJKZUNXLYEHZIAYDUGLZJKZUNXNXPUNUAUBUCUDABNNULFUOXTAOZYF
      YIYHYKYLYAXLYEXTAIJUQURYLYGYJIJXTAYDUGUSUTVAYDBOZYIXNYKXPYMYEXMXLYDBIJUQV
      GYMYJXOIJYDBAUGVBUTVAYFXSXRVCKZYCYBVCKZHZXRNGZXSNGZHZYBNGZYCNGZHZHZYHYAYN
      YEYOXRXSVDYBYCVDVEUUCYPXRYCPLZXSYBPLZQLZXRYBPLZXSYCPLZQLZVCKZYHUUCYNYOUUJ
      YNXSUEMZQLZXROZUENVHUUCYOUUJUNZUEXSXRVFUUCUUMUUNUENYOYCUFMZQLZYBOZUFNVHUU
      CUUKNGZUUMHZHZUUJUFYCYBVFUUTUUQUUJUFNUUTUUONGZUUQHZHZUUFUUFUUKUUOPLZQLZUU
      IVCUVCUUFNGUVDNGZUUFUVEVCKUVCCDUUDUUENNNQCMZNGZDMZNGZHZUVGUVIQLZNGUVCUVGU
      VIVIRZUVCYQUUAUUDNGZUVCUULXRNUUCUURUUMUVBVJZUVCCDXSUUKNNNQUVMUUCYRUUSUVBY
      QYRUUBVKVLZUUCUURUUMUVBVMZVNZVQZUUTUUAUVBYSYTUUAUUSVJVOZXRYCSTZUVCYRYTUUE
      NGZUVPUUTYTUVBYSYTUUAUUSVMVOZXSYBSTZVNZUVCUURUVAUVFUVQUUTUVAUUQVPZUUKUUOS
      TZUUFUVDVRTUVCUUKYCPLZUUIQLZUWHUVEQLZOZUUIUVEOZUVCUUGUUHUWHQLZQLZUWHUUEUV
      DQLZQLZUUDQLZUWIUWJUVCUULUUPPLZUWMQLZUWNUWQUVCUUMUUQUWSUWNOUVOUUTUVAUUQVS
      UUMUUQHUWRUUGUWMQUULXRUUPYBPVTWATUVCUWRUWPUWMUUDQUVCUUHXSUUOPLZQLZUWHUVDQ
      LZQLZUUEUXBQLUWRUWPUVCUXAUUEUXBQUVCXSUUPPLZUXAUUEUVCYRUUAUVAUXDUXAOUVPUVT
      UWFXSYCUUOWBWFUVBUXDUUEOZUUTUUQUXEUVAUUPYBXSPVBRRWCWAUVCUULYCPLZUULUUOPLZ
      QLZUWMUWTUVDQLZQLUWRUXCUVCUXFUWMUXGUXIQUVCCDEXSUUKYCNQPUVHUVJEMZNGWOZUVGU
      VIUXJQLZPLUVGUVIPLZUVGUXJPLQLOUVCUVGUVIUXJWBRZUVPUVQUVTUVMUVKUXMUVIUVGPLO
      UVCUVGUVIWDRZWEZUVCCDEXSUUKUUONQPUXNUVPUVQUWFUVMUXOWEWGUVCUULNGUUAUVAUWRU
      XHOUVRUVTUWFUULYCUUOWBWFUVCCDEUUHUWTUWHUVDNQUVCYRUUAUUHNGZUVPUVTXSYCSTZUV
      CYRUVAUWTNGUVPUWFXSUUOSTUVCUURUUAUWHNGZUVQUVTUUKYCSTZUVKUVLUVIUVGQLOUVCUV
      GUVIWHRZUXKUVLUXJQLUVGUXLQLOUVCUVGUVIUXJWIRZUWGUVMWJWKUVCCDEUWHUUEUVDNQUX
      TUWDUWGUYAUYBWLWKUVCUXFUWMUUDUXPUUSUXFUUDOZUUCUVBUUMUYCUURUULXRYCPUSRWPWC
      WGWCUVCUUIUWHQLZUWNUWIUVCUUGNGZUXQUXSUYDUWNOUVCYQYTUYEUVSUWCXRYBSTZUXRUXT
      UUGUUHUWHWIWFUVCUUINGZUXSUYDUWIOUVCUYEUXQUYGUYFUXRUUGUUHVITZUXTUUIUWHWHTW
      CUVCUWHUUDQLUWOQLZUWHUUDUWOQLZQLZUWQUWJUVCUXSUVNUWONGUYIUYKOUXTUWAUVCCDUU
      EUVDNNNQUVMUWDUWGVNZUWHUUDUWOWIWFUVCCDEUWHUWOUUDNQUXTUYLUWAUYAUYBWMUVCUVE
      UYJUWHQUVCUVNUWBUVFUVEUYJOUWAUWDUWGUUDUUEUVDWIWFWNWKWQUVCUXSUYGUVENGUWKUW
      LUNUXTUYHUVCCDUUFUVDNNNQUVMUWEUWGVNUWHUUIUVEWRWFXDWSWTXEWTXEXFUUCYHIUUIUU
      FUKULUMZJKUUJUUCYGUYMIJXRXSYBYCXAUTUUIUUFVDXBXCXGXHXI $.
  $}

  ${
    $d A w x y z $.  $d B w z $.
    $( Apartness of signed reals is tight.  (Contributed by Jim Kingdon,
       29-Jan-2020.) $)
    aptisr $p |- ( ( A e. R. /\ B e. R. /\ -. ( A <R B \/ B <R A ) )
        -> A = B ) $=
      ( vx cnr wcel cltr wbr wo wn wceq cv cer wi cnp orbi12d notbid wa co cltp
      cpp vy vz cop cec df-nr breq1 breq2 imbi12d addcomprg ad2ant2lr ad2ant2rl
      eqeq1 breq12d orbi2d addclpr aptipr 3expia syl2anc sylbird ltsrprg ancoms
      vw eqeq2 wb enreceq 3imtr4d 2ecoptocl 3impia ) ADEBDEABFGZBAFGZHZIZABJZCK
      ZUAKZUCLUDZUBKZVBKZUCLUDZFGZVSVPFGZHZIZVPVSJZMAVSFGZVSAFGZHZIZAVSJZMVLVMM
      CUAUBVBABNNLDUEVPAJZWCWHWDWIWJWBWGWJVTWEWAWFVPAVSFUFVPAVSFUGOPVPAVSULUHVS
      BJZWHVLWIVMWKWGVKWKWEVIWFVJVSBAFUGVSBAFUFOPVSBAVCUHVNNEZVONEZQZVQNEZVRNEZ
      QZQZVNVRTRZVOVQTRZSGZVQVOTRZVRVNTRZSGZHZIZWSWTJZWCWDWRXFXAWTWSSGZHZIZXGWR
      XIXEWRXHXDXAWRWTXBWSXCSWMWOWTXBJWLWPVOVQUIUJWLWPWSXCJWMWOVNVRUIUKUMUNPWRW
      SNEZWTNEZXJXGMWLWPXKWMWOVNVRUOUKWMWOXLWLWPVOVQUOUJXKXLXJXGWSWTUPUQURUSWRW
      BXEWRVTXAWAXDVNVOVQVRUTWQWNWAXDVDVQVRVNVOUTVAOPVNVOVQVRVEVFVGVH $.
  $}

  ${
    $d U f g h $.  $d V f g h $.  $d W f g h $.  $d X f g h $.  $d Y f g h $.
    $d Z f g h $.
    $( Lemma for ~ mulextsr1 .  (Contributed by Jim Kingdon, 17-Feb-2020.) $)
    mulextsr1lem $p |- ( ( ( X e. P. /\ Y e. P. ) /\ ( Z e. P. /\ W e. P. )
        /\ ( U e. P. /\ V e. P. ) ) -> (
        ( ( ( X .P. U ) +P. ( Y .P. V ) ) +P.
          ( ( Z .P. V ) +P. ( W .P. U ) ) )
        <P ( ( ( X .P. V ) +P. ( Y .P. U ) ) +P.
          ( ( Z .P. U ) +P. ( W .P. V ) ) ) ->
        ( ( X +P. W ) <P ( Y +P. Z ) \/ ( Z +P. Y ) <P ( W +P. X ) ) ) ) $=
      ( vf vg vh cnp wcel cmp co cpp cltp wbr wceq adantl mulclpr syl2anc wa wo
      w3a addcomprg addclpr simp2l simp3r simp1r caovcld simp1l simp3l caovcomd
      cv simp2r addassprg caov411d distrprg mulcomprg caovdir2d oveq12d 3eqtr4d
      eqtr4d breq12d wi eqeltrd addextpr syl22anc 3adant2 3adant1 ltmprr sylbid
      syl3anc orim12d syld breq2d orbi12d sylibd ) DJKZEJKZUAZFJKZCJKZUAZAJKZBJ
      KZUAZUCZDALMZEBLMZNMFBLMZCALMZNMNMZDBLMZEALMZNMFALMZCBLMZNMNMZOPZDCNMZFEN
      MZOPZWTWSOPZUBZWSEFNMZOPZWTCDNMZOPZUBWGWRWSALMZWTBLMZNMZWTALMZWSBLMZNMZOP
      ZXCWGWLXJWQXMOWGWJWINMZWHWKNMZNMXPXONMWLXJWGGHXOXPJNGUMZJKZHUMZJKZUAZXQXS
      NMZXSXQNMQWGXQXSUDRZWGGHWJWIJJJNYAYBJKWGXQXSUERZWGWAWEWJJKVTWAWBWFUFZVTWC
      WDWEUGZFBSTZWGVSWEWIJKVRVSWCWFUHZYFEBSTZUIZWGGHWHWKJJJNYDWGVRWDWHJKVRVSWC
      WFUJZVTWCWDWEUKZDASTZWGWBWDWKJKVTWAWBWFUNZYLCASTZUIZULWGGHIWHWIWJWKJNYMYI
      YGYCXRXTIUMZJKUCZYBYQNMXQXSYQNMZNMQWGXQXSYQUORZYOYDUPWGXHXPXIXONWGGHIDCAJ
      NLYRXQYSLMXQXSLMZXQYQLMNMQWGXQXSYQUQRZYKYNYLYDYAUUAXSXQLMQWGXQXSURRZUSZWG
      GHIFEBJNLUUBYEYHYFYDUUCUSZUTVAWGWQWOWNNMZWMWPNMZNMXMWGGHIWMWNWOWPJNWGVRWE
      WMJKYKYFDBSTWGVSWDWNJKYHYLEASTWGWAWDWOJKYEYLFASTYCYTWGWBWEWPJKYNYFCBSTYDU
      PWGXKUUFXLUUGNWGGHIFEAJNLUUBYEYHYLYDUUCUSWGGHIDCBJNLUUBYKYNYFYDUUCUSUTVBV
      CWGXNXHXKOPZXIXLOPZUBZXCWGXHJKXIJKXKJKZXLJKZXNUUJVDWGXHXPJUUDYPVEWGXIXOJU
      UEYJVEWGWTJKZWDUUKWGWAVSUUMYEYHFEUETZYLWTASTWGWSJKZWEUULWGVRWBUUOYKYNDCUE
      TZYFWSBSTXHXIXKXLVFVGWGUUHXAUUIXBWGUUOUUMWDUUHXAVDUUPUUNYLUUOUUMWDUCZUUHA
      WSLMZAWTLMZOPXAUUQXHUURXKUUSOUUOWDXHUURQUUMWSAURVHUUMWDXKUUSQUUOWTAURVIVC
      WSWTAVJVKVLWGUUIBWTLMZBWSLMZOPZXBWGXIUUTXLUVAOWGUUMWEXIUUTQUUNYFWTBURTWGU
      UOWEXLUVAQUUPYFWSBURTVCWGUUMUUOWEUVBXBVDUUNUUPYFWTWSBVJVLVKVMVNVKWGXAXEXB
      XGWGWTXDWSOWGWAVSWTXDQYEYHFEUDTVOWGWSXFWTOWGVRWBWSXFQYKYNDCUDTVOVPVQ $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w z $.  $d C u v $.
    $( Strong extensionality of multiplication of signed reals.  (Contributed
       by Jim Kingdon, 18-Feb-2020.) $)
    mulextsr1 $p |- ( ( A e. R. /\ B e. R. /\ C e. R. )
        -> ( ( A .R C ) <R ( B .R C ) -> ( A <R B \/ B <R A ) ) ) $=
      ( cv cop cer cec cmr co cltr wbr wo cnp wceq wcel cmp cpp mulclpr syl2anc
      wi vx vy vu vv vz vw df-nr oveq1 breq1d breq1 breq2 orbi12d imbi12d oveq2
      cnr breq2d breq12d imbi1d wa cltp mulextsr1lem mulsrpr 3adant2 3adant1 wb
      simp1l simp3l simp1r simp3r addclpr simp2l ltsrprg syl22anc bitrd 3adant3
      w3a simp2r ancoms 3imtr4d 3ecoptocl ) UADZUBDZEFGZUCDZUDDZEFGZHIZUEDZUFDZ
      EFGZWFHIZJKZWCWJJKZWJWCJKZLZTAWFHIZWKJKZAWJJKZWJAJKZLZTWPBWFHIZJKZABJKZBA
      JKZLZTACHIZBCHIZJKZXETUAUBUEUFUCUDABCMFUOUGWCANZWLWQWOWTXIWGWPWKJWCAWFHUH
      UIXIWMWRWNWSWCAWJJUJWCAWJJUKULUMWJBNZWQXBWTXEXJWKXAWPJWJBWFHUHUPXJWRXCWSX
      DWJBAJUKWJBAJUJULUMWFCNZXBXHXEXKWPXFXAXGJWFCAHUNWFCBHUNUQURWAMOZWBMOZUSZW
      HMOZWIMOZUSZWDMOZWEMOZUSZVPZWAWDPIZWBWEPIZQIZWHWEPIZWIWDPIZQIZQIWAWEPIZWB
      WDPIZQIZWHWDPIZWIWEPIZQIZQIUTKZWAWIQIWBWHQIUTKZWHWBQIWIWAQIUTKZLWLWOWDWEW
      IWAWBWHVAYAWLYDYJEFGZYMYGEFGZJKZYNYAWGYQWKYRJXNXTWGYQNXQWAWBWDWEVBVCXQXTW
      KYRNXNWHWIWDWEVBVDUQYAYDMOZYJMOZYMMOZYGMOZYSYNVEYAYBMOZYCMOZYTYAXLXRUUDXL
      XMXQXTVFZXNXQXRXSVGZWAWDRSYAXMXSUUEXLXMXQXTVHZXNXQXRXSVIZWBWERSYBYCVJSYAY
      HMOZYIMOZUUAYAXLXSUUJUUFUUIWAWERSYAXMXRUUKUUHUUGWBWDRSYHYIVJSYAYKMOZYLMOZ
      UUBYAXOXRUULXNXOXPXTVKZUUGWHWDRSYAXPXSUUMXNXOXPXTVQZUUIWIWERSYKYLVJSYAYEM
      OZYFMOZUUCYAXOXSUUPUUNUUIWHWERSYAXPXRUUQUUOUUGWIWDRSYEYFVJSYDYJYMYGVLVMVN
      YAWMYOWNYPXNXQWMYOVEXTWAWBWHWIVLVOXNXQWNYPVEZXTXQXNUURWHWIWAWBVLVRVOULVSV
      T $.
  $}

  ${
    $d A l u w x z $.
    $( For any signed real, there is an integer that is greater than it.  This
       is also known as the "archimedean property".  The expression
       ` [ <. ( <. { l | l <Q [ <. x , 1o >. ] ~Q } ` ,
       ` { u | [ <. x , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R ` is the
       embedding of the positive integer ` x ` into the signed reals.
       (Contributed by Jim Kingdon, 23-Apr-2020.) $)
    archsr $p |- ( A e. R. -> E. x e. N. A <R
        [ <. ( <. { l | l <Q [ <. x , 1o >. ] ~Q } ,
          { u | [ <. x , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R ) $=
      ( vz cv cop cer cec wbr c1p cpp co cltr cnpi wrex cnp wcel cltp 1pr df-nr
      vw c1o ceq cltq cab cnr wceq breq1 rexbidv wa addclpr mpan2 archpr adantr
      nnprlu adantl sylancl simplr ltaddpr syl2anc addcomprg breqtrrd wi ltsopr
      syl ltrelpr sotri expcom sylsyld reximdva mpd simpl a1i syl12anc rexbidva
      wb ltsrprg mpbird ecoptocl ) EFZUBFZGHIZDFAFZUCGUDIZUEJDUFWEBFUEJBUFGZKLM
      ZKGHIZNJZAOPZCWHNJZAOPEUBCQQHUGUAWCCUHWIWKAOWCCWHNUIUJWAQRZWBQRZUKZWJWAKL
      MZWBWGLMZSJZAOPZWNWOWFSJZAOPZWRWLWTWMWLWOQRZWTWLKQRZXATWAKULUMABWODUNVFUO
      WNWSWQAOWNWDORZUKZWGWPSJZWSWOWGSJZWQXDWGWGWBLMZWPSXDWGQRZWMWGXGSJXDWFQRZX
      BXHXCXIWNBWDDUPUQZTWFKULURZWLWMXCUSZWGWBUTVAXDWMXHWPXGUHXLXKWBWGVBVAVCXDW
      FWGSJZWSXFVDXDXIXBXMXJTWFKUTURWSXMXFWOWFWGSQVEVGVHVIVFXFXEWQWOWGWPSQVEVGV
      HVIVJVKVLWNWIWQAOXDWNXHXBWIWQVQWNXCVMXKXBXDTVNWAWBWGKVRVOVPVSVT $.
  $}

  $( Class of complex numbers. $)
  cc $a class CC $.
  $( Class of real numbers. $)
  cr $a class RR $.
  $( Extend class notation to include the complex number 0. $)
  cc0 $a class 0 $.
  $( Extend class notation to include the complex number 1. $)
  c1 $a class 1 $.
  $( Extend class notation to include the complex number i. $)
  ci $a class _i $.
  $( Addition on complex numbers. $)
  caddc $a class + $.
  $( 'Less than' predicate (defined over real subset of complex numbers). $)
  cltrr $a class <RR $.
  $( Multiplication on complex numbers.  The token ` x. ` is a center dot. $)
  cmul $a class x. $.

  $( Define the set of complex numbers.  (Contributed by NM, 22-Feb-1996.) $)
  df-c $a |- CC = ( R. X. R. ) $.

  $( Define the complex number 0.  (Contributed by NM, 22-Feb-1996.) $)
  df-0 $a |- 0 = <. 0R , 0R >. $.

  $( Define the complex number 1.  (Contributed by NM, 22-Feb-1996.) $)
  df-1 $a |- 1 = <. 1R , 0R >. $.

  $( Define the complex number ` _i ` (the imaginary unit).  (Contributed by
     NM, 22-Feb-1996.) $)
  df-i $a |- _i = <. 0R , 1R >. $.

  ${
    $d x y $.
    $( Define the set of real numbers.  (Contributed by NM, 22-Feb-1996.) $)
    df-r $a |- RR = ( R. X. { 0R } ) $.
  $}

  ${
    $d x y z w v u f $.
    $( Define addition over complex numbers.  (Contributed by NM,
       28-May-1995.) $)
    df-add $a |- + = { <. <. x , y >. , z >. | ( ( x e. CC /\ y e. CC ) /\
                  E. w E. v E. u E. f ( ( x = <. w , v >. /\ y = <. u , f >. )
                  /\ z = <. ( w +R u ) , ( v +R f ) >. ) ) } $.

    $( Define multiplication over complex numbers.  (Contributed by NM,
       9-Aug-1995.) $)
    df-mul $a |- x. = { <. <. x , y >. , z >. | ( ( x e. CC /\ y e. CC ) /\
               E. w E. v E. u E. f ( ( x = <. w , v >. /\ y = <. u , f >. )
                  /\ z = <. ( ( w .R u ) +R ( -1R .R ( v .R f ) ) ) ,
                  ( ( v .R u ) +R ( w .R f ) ) >. ) ) } $.

    $( Define 'less than' on the real subset of complex numbers.  (Contributed
       by NM, 22-Feb-1996.) $)
    df-lt $a |- <RR = { <. x , y >. | ( ( x e. RR /\ y e. RR ) /\
     E. z E. w ( ( x = <. z , 0R >. /\ y = <. w , 0R >. ) /\ z <R w ) ) } $.
  $}

  $( Ordered pair membership in the class of complex numbers.  (Contributed by
     NM, 14-May-1996.) $)
  opelcn $p |- ( <. A , B >. e. CC <-> ( A e. R. /\ B e. R. ) ) $=
    ( cop cc wcel cnr cxp wa df-c eleq2i opelxp bitri ) ABCZDEMFFGZEAFEBFEHDNMI
    JABFFKL $.

  $( Ordered pair membership in class of real subset of complex numbers.
     (Contributed by NM, 22-Feb-1996.) $)
  opelreal $p |- ( <. A , 0R >. e. RR <-> A e. R. ) $=
    ( c0r cop cr wcel cnr wceq eqid csn cxp wa eleq2i opelxp elexi elsnc anbi2i
    df-r 0r 3bitri mpbiran2 ) ABCZDEZAFEZBBGZBHUBUAFBIZJZEUCBUEEZKUCUDKDUFUAQLA
    BFUEMUGUDUCBBBFRNOPST $.

  ${
    $d x y A $.
    $( Membership in class of real numbers.  (Contributed by NM,
       31-Mar-1996.) $)
    elreal $p |- ( A e. RR <-> E. x e. R. <. x , 0R >. = A ) $=
      ( vy cr wcel cnr c0r csn cxp cv cop wceq wrex eleq2i elxp2 0r elexi opeq2
      df-r bitri eqeq2d rexsn eqcom rexbii ) BDEBFGHZIZEZAJZGKZBLZAFMZDUFBSNUGB
      UHCJZKZLZCUEMZAFMUKACBFUEOUOUJAFUOBUILZUJUNUPCGGFPQULGLUMUIBULGUHRUAUBBUI
      UCTUDTT $.
  $}

  ${
    $( Ordered pair membership in the class of complex numbers.  (Contributed
       by Mario Carneiro, 15-Jun-2013.) $)
    elreal2 $p |- ( A e. RR <->
        ( ( 1st ` A ) e. R. /\ A = <. ( 1st ` A ) , 0R >. ) ) $=
      ( cr wcel cnr c0r csn cxp c1st cfv wceq wa df-r eleq2i xp1st c2nd 1st2nd2
      cop xp2nd elsni syl opeq2d eqtrd jca eleq1 0r snid opelxp mpbiran2 syl6bb
      elexi biimparc impbii bitri ) ABCADEFZGZCZAHIZDCZAUQEQZJZKZBUOALMUPVAUPUR
      UTADUNNUPAUQAOIZQUSADUNPUPVBEUQUPVBUNCVBEJADUNRVBESTUAUBUCUTUPURUTUPUSUOC
      ZURAUSUOUDVCUREUNCEEDUEUJUFUQEDUNUGUHUIUKULUM $.
  $}

  $( The empty set is not a complex number.  Note: do not use this after the
     real number axioms are developed, since it is a construction-dependent
     property.  (Contributed by NM, 2-May-1996.) $)
  0ncn $p |- -. (/) e. CC $=
    ( c0 cc wcel cnr cxp 0nelxp df-c eleq2i mtbir ) ABCADDEZCDDFBJAGHI $.

  ${
    $d x y z w $.
    $( 'Less than' is a relation on real numbers.  (Contributed by NM,
       22-Feb-1996.) $)
    ltrelre $p |- <RR C_ ( RR X. RR ) $=
      ( vx vy vz vw cltrr cv cr wcel wa c0r cop wceq wbr wex copab cxp opabssxp
      cltr df-lt eqsstri ) EAFZGHBFZGHIUACFZJKLUBDFZJKLIUCUDRMIDNCNZIABOGGPABCD
      SUEABGGQT $.
  $}

  ${
    $d x y z w v u f A $.  $d x y z w v u f B $.  $d x y z w v u f C $.
    $d x y z w v u f D $.
    $( Addition of complex numbers in terms of signed reals.  (Contributed by
       NM, 28-May-1995.) $)
    addcnsr $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
           ( <. A , B >. + <. C , D >. ) = <. ( A +R C ) , ( B +R D ) >. ) $=
      ( vx vy vz vw vv vu vf cv cplr co cop cnr wcel wa wceq cc addclsr opelxpi
      cxp ad2ant2r ad2ant2l syl2anc simpll simprl oveq12d simplr simprr opeq12d
      caddc wex coprab df-add df-c eleq2i anbi12i anbi1i oprabbii eqtri ovi3 )
      EFGHIJABCDHLZJLZMNZILZKLZMNZOZACMNZBDMNZOZKUMPAPQZBPQZRCPQZDPQZRRVKPQZVLP
      QZVMPPUCZQVNVPVRVOVQACUAUDVOVQVSVNVPBDUAUEVKVLPPUBUFVDASZVGBSZRZVECSZVHDS
      ZRZRZVFVKVIVLWGVDAVECMWAWBWFUGWCWDWEUHUIWGVGBVHDMWAWBWFUJWCWDWEUKUIULUMEL
      ZTQZFLZTQZRZWHVDVGOSWJVEVHOSRGLVJSRKUNJUNIUNHUNZRZEFGUOWHVTQZWJVTQZRZWMRZ
      EFGUOEFGHIJKUPWNWREFGWLWQWMWIWOWKWPTVTWHUQURTVTWJUQURUSUTVAVBVC $.

    $( Multiplication of complex numbers in terms of signed reals.
       (Contributed by NM, 9-Aug-1995.) $)
    mulcnsr $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
               ( <. A , B >. x. <. C , D >. ) =
                   <. ( ( A .R C ) +R ( -1R .R ( B .R D ) ) ) ,
                          ( ( B .R C ) +R ( A .R D ) ) >. ) $=
      ( vx vy vz vw vv cv cmr co cm1r cplr cnr wcel wa mulclsr wceq oveq12d cop
      vu cmul cxp ad2ant2r ad2ant2l sylancr addclsr syl2anc ad2ant2lr ad2ant2rl
      vf m1r opelxpi simpll simprl simplr simprr oveq2d opeq12d wex coprab df-c
      cc df-mul eleq2i anbi12i anbi1i oprabbii eqtri ovi3 ) EFGHIUBABCDHJZUBJZK
      LZMIJZULJZKLZKLZNLZVOVMKLZVLVPKLZNLZUAZACKLZMBDKLZKLZNLZBCKLZADKLZNLZUAZU
      LUCOAOPZBOPZQCOPZDOPZQQZWGOPZWJOPZWKOOUDZPWPWDOPZWFOPZWQWLWNWTWMWOACRUEWP
      MOPWEOPZXAUMWMWOXBWLWNBDRUFMWERUGWDWFUHUIWPWHOPZWIOPZWRWMWNXCWLWOBCRUJWLW
      OXDWMWNADRUKWHWIUHUIWGWJOOUNUIVLASZVOBSZQZVMCSZVPDSZQZQZVSWGWBWJXKVNWDVRW
      FNXKVLAVMCKXEXFXJUOZXGXHXIUPZTXKVQWEMKXKVOBVPDKXEXFXJUQZXGXHXIURZTUSTXKVT
      WHWAWINXKVOBVMCKXNXMTXKVLAVPDKXLXOTTUTUCEJZVDPZFJZVDPZQZXPVLVOUASXRVMVPUA
      SQGJWCSQULVAUBVAIVAHVAZQZEFGVBXPWSPZXRWSPZQZYAQZEFGVBEFGHIUBULVEYBYFEFGXT
      YEYAXQYCXSYDVDWSXPVCVFVDWSXRVCVFVGVHVIVJVK $.
  $}

  ${
    eqresr.1 $e |- A e. _V $.
    $( Equality of real numbers in terms of intermediate signed reals.
       (Contributed by NM, 10-May-1996.) $)
    eqresr $p |- ( <. A , 0R >. = <. B , 0R >. <-> A = B ) $=
      ( c0r cop wceq eqid cnr 0r elexi opth mpbiran2 ) ADEBDEFABFDDFDGADBDCDHIJ
      KL $.
  $}

  $( Addition of real numbers in terms of intermediate signed reals.
     (Contributed by NM, 10-May-1996.) $)
  addresr $p |- ( ( A e. R. /\ B e. R. ) ->
           ( <. A , 0R >. + <. B , 0R >. ) = <. ( A +R B ) , 0R >. ) $=
    ( cnr wcel wa c0r cop caddc co cplr wceq 0r addcnsr an4s 0idsr ax-mp opeq2i
    mpanr12 syl6eq ) ACDZBCDZEZAFGBFGHIZABJIZFFJIZGZUDFGUBFCDZUGUCUFKZLLTUGUAUG
    UHAFBFMNRUEFUDUGUEFKLFOPQS $.

  $( Multiplication of real numbers in terms of intermediate signed reals.
     (Contributed by NM, 10-May-1996.) $)
  mulresr $p |- ( ( A e. R. /\ B e. R. ) ->
         ( <. A , 0R >. x. <. B , 0R >. ) = <. ( A .R B ) , 0R >. ) $=
    ( cnr wcel wa c0r cop cmul co cmr cm1r cplr wceq mulcnsr ax-mp oveq2i 0idsr
    0r 00sr eqtrd an4s mpanr12 m1r mulclsr syl syl5eq mulcomsrg mpan oveqan12rd
    eqtri syl6eq opeq12d ) ACDZBCDZEZAFGBFGHIZABJIZKFFJIZJIZLIZFBJIZAFJIZLIZGZU
    QFGUOFCDZVEUPVDMZRRUMVEUNVEVFAFBFNUAUBUOUTUQVCFUOUTUQFLIZUQUSFUQLUSKFJIZFUR
    FKJVEURFMRFSOPKCDVHFMUCKSOUJPUOUQCDVGUQMABUDUQQUEUFUOVCFFLIZFUNUMVAFVBFLUNV
    ABFJIZFVEUNVAVJMRFBUGUHBSTASUIVEVIFMRFQOUKULT $.

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Ordering of real subset of complex numbers in terms of signed reals.
       (Contributed by NM, 22-Feb-1996.) $)
    ltresr $p |- ( <. A , 0R >. <RR <. B , 0R >. <-> A <R B ) $=
      ( vz vw vx vy c0r cop cltrr wbr cnr wcel wa cltr cr wceq wex anbi1d eqcom
      cv ltrelre brel opelreal anbi12i sylib ltrelsr eleq1 eqeq1 2exbidv anbi2d
      anbi12d df-lt brabg bianabs vex eqresr 3bitr4i opth2 bitr4i anbi1i 2exbii
      wb syl6bb syl2anbr breq12 copsex2g bitrd pm5.21nii ) AGHZBGHZIJZAKLZBKLZM
      ZABNJZVKVIOLZVJOLZMZVNVIVJOOIUAUBVPVLVQVMAUCZBUCZUDUEABKKNUFUBVNVKABHCTZD
      TZHPZWAWBNJZMZDQCQZVOVLVPVQVKWFVBVMVSVTVRVKVIWAGHZPZVJWBGHZPZMZWDMZDQCQZW
      FVRVKWMETZOLZFTZOLZMZWNWGPZWPWIPZMZWDMZDQCQZMVPWQMZWHWTMZWDMZDQCQZMVRWMME
      FVIVJOOIWNVIPZWRXDXCXGXHWOVPWQWNVIOUGRXHXBXFCDXHXAXEWDXHWSWHWTWNVIWGUHRRU
      IUKWPVJPZXDVRXGWMXIWQVQVPWPVJOUGUJXIXFWLCDXIXEWKWDXIWTWJWHWPVJWIUHUJRUIUK
      EFCDULUMUNWLWECDWKWCWDWKAWAPZBWBPZMWCWHXJWJXKWGVIPWAAPWHXJWAACUOZUPVIWGSA
      WASUQWIVJPWBBPWJXKWBBDUOZUPVJWISBWBSUQUDABWAWBXLXMURUSUTVAVCVDWDVOCDABKKW
      AAWBBNVEVFVGVH $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Ordering of real subset of complex numbers in terms of signed reals.
       (Contributed by NM, 22-Feb-1996.) $)
    ltresr2 $p |- ( ( A e. RR /\ B e. RR ) ->
        ( A <RR B <-> ( 1st ` A ) <R ( 1st ` B ) ) ) $=
      ( cr wcel wa wbr c1st cfv c0r cop cltr cnr wceq elreal2 simprbi breqan12d
      cltrr ltresr syl6bb ) ACDZBCDZEABQFAGHZIJZBGHZIJZQFUBUDKFTUAAUCBUEQTUBLDA
      UCMANOUAUDLDBUEMBNOPUBUDRS $.
  $}

  $( Technical trick to permit reuse of previous lemmas to prove arithmetic
     operation laws in ` CC ` from those in ` R. ` .  The trick involves
     ~ qsid , which shows that the coset of the converse epsilon relation
     (which is not an equivalence relation) acts as an identity divisor for the
     quotient set operation.  This lets us "pretend" that ` CC ` is a quotient
     set, even though it is not (compare ~ df-c ), and allows us to reuse some
     of the equivalence class lemmas we developed for the transition from
     positive reals to signed reals, etc.  (Contributed by NM, 13-Aug-1995.) $)
  dfcnqs $p |- CC = ( ( R. X. R. ) /. `' _E ) $=
    ( cc cnr cxp cep ccnv cqs df-c qsid eqtr4i ) ABBCZJDEFGJHI $.

  $( Technical trick to permit re-use of some equivalence class lemmas for
     operation laws.  See ~ dfcnqs and ~ mulcnsrec .  (Contributed by NM,
     13-Aug-1995.) $)
  addcnsrec $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
                 ( [ <. A , B >. ] `' _E + [ <. C , D >. ] `' _E ) =
                   [ <. ( A +R C ) , ( B +R D ) >. ] `' _E ) $=
    ( cnr wcel wa cop caddc co cplr cep ccnv cec addcnsr wceq opelxpi ecidg syl
    addclsr cxp oveqan12d ad2ant2r ad2ant2l syl2anc 3eqtr4d ) AEFZBEFZGZCEFZDEF
    ZGZGZABHZCDHZIJACKJZBDKJZHZUNLMZNZUOUSNZIJURUSNZABCDOUIULUTUNVAUOIUIUNEEUAZ
    FUTUNPABEEQUNVCRSULUOVCFVAUOPCDEEQUOVCRSUBUMURVCFZVBURPUMUPEFZUQEFZVDUGUJVE
    UHUKACTUCUHUKVFUGUJBDTUDUPUQEEQUEURVCRSUF $.

  $( Technical trick to permit re-use of some equivalence class lemmas for
     operation laws.  The trick involves ~ ecidg , which shows that the coset
     of the converse epsilon relation (which is not an equivalence relation)
     leaves a set unchanged.  See also ~ dfcnqs .  (Contributed by NM,
     13-Aug-1995.) $)
  mulcnsrec $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
               ( [ <. A , B >. ] `' _E x. [ <. C , D >. ] `' _E ) =
                    [ <. ( ( A .R C ) +R ( -1R .R ( B .R D ) ) ) ,
                          ( ( B .R C ) +R ( A .R D ) ) >. ] `' _E ) $=
    ( cnr wcel wa cop cmul cmr cm1r cplr cec wceq opelxpi ecidg mulclsr syl2anc
    co syl cep ccnv mulcnsr cxp simpll simprl m1r simplr simprr sylancr addclsr
    oveqan12d 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZGZABHZCDHZISACJSZKBDJSZJSZLSZBCJSZA
    DJSZLSZHZVAUAUBZMZVBVKMZISVJVKMZABCDUCUPUSVLVAVMVBIUPVAEEUDZFVLVANABEEOVAVO
    PTUSVBVOFVMVBNCDEEOVBVOPTULUTVJVOFZVNVJNUTVFEFZVIEFZVPUTVCEFZVEEFZVQUTUNUQV
    SUNUOUSUEZUPUQURUFZACQRUTKEFVDEFZVTUGUTUOURWCUNUOUSUHZUPUQURUIZBDQRKVDQUJVC
    VEUKRUTVGEFZVHEFZVRUTUOUQWFWDWBBCQRUTUNURWGWAWEADQRVGVHUKRVFVIEEORVJVOPTUM
    $.

  ${
    $d K k n l u w x y z $.
    $( Lemma for ~ pitonn .  Two ways to write the number one.  (Contributed by
       Jim Kingdon, 24-Apr-2020.) $)
    pitonnlem1 $p |- <. [ <. ( <. { l | l <Q [ <. 1o , 1o >. ] ~Q } ,
          { u | [ <. 1o , 1o >. ] ~Q <Q u } >.
          +P. 1P ) , 1P >. ] ~R
          , 0R >. = 1 $=
      ( c1r c0r cop cv c1o cec cltq wbr cab c1p cpp cer wceq c1q df-1nqqs abbii
      co eqtri c1 ceq df-1 df-1r df-i1p breq2i breq1i oveq1i opeq1i eceq1 ax-mp
      opeq12i eqtr2i ) UACDEBFZGGEUBHZIJZBKZUOAFZIJZAKZEZLMSZLEZNHZDEUCCVDDCLLM
      SZLEZNHZVDUDVFVCOVGVDOVEVBLLVALMLUNPIJZBKZPURIJZAKZEVAABUEVIUQVKUTVHUPBPU
      OUNIQUFRVJUSAPUOURIQUGRULTUHUIVFVCNUJUKTUIUM $.

    $( Lemma for ~ pitonn .  Simplifying an expression involving signed reals.
       (Contributed by Jim Kingdon, 26-Apr-2020.) $)
    pitonnlem1p1 $p |- ( A e. P. ->
        [ <. ( A +P. ( 1P +P. 1P ) ) , ( 1P +P. 1P ) >. ] ~R =
        [ <. ( A +P. 1P ) , 1P >. ] ~R ) $=
      ( cnp wcel c1p cpp co cop cer cec wceq 1pr addclpr mp2an addcomprg oveq1d
      mpan2 addassprg mp3an13 eqtrd a1i wb enreceq syl22anc mpbird ) ABCZADDEFZ
      EFZUFGHIADEFZDGHIJZUGDEFZUFUHEFZJZUEUJUFAEFZDEFZUKUEUGUMDEUEUFBCZUGUMJDBC
      ZUPUOKKDDLMZAUFNPOUOUEUPUNUKJUQKUFADQRSUEUGBCZUOUHBCZUPUIULUAUEUOURUQAUFL
      PUOUEUQTUEUPUSKADLPUPUEKTUGUFUHDUBUCUD $.

    $( Lemma for ~ pitonn .  Two ways to add one to a number.  (Contributed by
       Jim Kingdon, 24-Apr-2020.) $)
    pitonnlem2 $p |- ( K e. N. ->
        ( <. [ <. ( <. { l | l <Q [ <. K , 1o >. ] ~Q } ,
          { u | [ <. K , 1o >. ] ~Q <Q u } >.
          +P. 1P ) , 1P >. ] ~R
          , 0R >. + 1 ) =
        <. [ <. ( <. { l | l <Q [ <. ( K +N 1o ) , 1o >. ] ~Q } ,
          { u | [ <. ( K +N 1o ) , 1o >. ] ~Q <Q u } >.
          +P. 1P ) , 1P >. ] ~R
          , 0R >. ) $=
      ( wcel c1o cop cec cltq wbr cab c1p cpp co cer c0r c1r wceq cnp 1pr syl
      cnpi cv ceq c1 caddc cplr cpli df-1 oveq2i cnr cxp nnprlu addclpr sylancl
      cqs opelxpi enrex ecelqsi df-nr syl6eleqr 1sr addresr syl5eq pitonnlem1p1
      df-1r mp2an addsrpr mpanl2 mpanr12 c1q cplq addpinq1 breq2d abbidv breq1d
      wa opeq12d cnq nnnq addnqpr1 eqtrd oveq1d opeq1d eceq1d 3eqtr4d ) BUADZCU
      BZBEFUCGZHICJWHAUBZHIAJFZKLMZKFZNGZOFZUDUEMZWMPUFMZOFZWGBEUGMEFUCGZHIZCJZ
      WRWIHIZAJZFZKLMZKFZNGZOFWFWOWNPOFZUEMZWQUDXGWNUEUHUIWFWMUJDPUJDXHWQQWFWMR
      RUKZNUOZUJWFWLXIDZWMXJDWFWKRDZKRDZXKWFWJRDXMXLABCULSWJKUMUNZSWKKRRUPUNXIW
      LNUQURTUSUTVAWMPVBUNVCWFWPXFOWFWKKKLMZLMXOFNGZWKKLMZKFZNGZWPXFWFXLXPXSQXN
      WKVDTWFWPWMXOKFNGZUFMZXPPXTWMUFVEUIWFXLYAXPQZXNXLXORDZXMYBXMXMYCSSKKUMVFS
      XLXMYCXMVPYBSWKKXOKVGVHVITVCWFXEXRNWFXDXQKWFXCWKKLWFXCWGWHVJVKMZHIZCJZYDW
      IHIZAJZFZWKWFWTYFXBYHWFWSYECWFWRYDWGHBVLZVMVNWFXAYGAWFWRYDWIHYJVOVNVQWFWH
      VRDYIWKQBVSAWHCVTTWAWBWCWDWEWCWA $.

    $( Mapping from ` N. ` to ` NN ` .  (Contributed by Jim Kingdon,
       22-Apr-2020.) $)
    pitonn $p |- ( n e. N. ->
        <. [ <. ( <. { l | l <Q [ <. n , 1o >. ] ~Q } ,
          { u | [ <. n , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >. e.
        |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } ) $=
      ( cv wcel c1o cop ceq cec cltq wbr cab c1p cpp co cer c0r eceq1d vz vw vk
      cnpi c1 caddc wral wa cint wi wal cpli opeq1 breq2d abbidv breq1d opeq12d
      oveq1d opeq1d eleq1d imbi2d pitonnlem1 eleq1i biimpri adantr oveq1 rspccv
      wceq ad2antll wb pitonnlem2 sylibd indpi alrimiv eleq2 raleqbi1dv anbi12d
      a2d ralab sylibr cnp cxp cqs cnr nnprlu 1pr addclpr sylancl opelxpi enrex
      ex ecelqsi syl 0r elintg mpbird ) DFZUDGZEFZWQHIZJKZLMZENZXACFZLMZCNZIZOP
      QZOIZRKZSIZUEAFZGZBFZUEUFQZXLGZBXLUGZUHZANZUIGZXKUAFZGZUAXSUGZWRUEYAGZXOY
      AGZBYAUGZUHZYBUJZUAUKYCWRYHUAYGWSUBFZHIZJKZLMZENZYKXDLMZCNZIZOPQZOIZRKZSI
      ZYAGZUJYGWSHHIZJKZLMZENZUUCXDLMZCNZIZOPQZOIZRKZSIZYAGZUJYGWSUCFZHIZJKZLMZ
      ENZUUPXDLMZCNZIZOPQZOIZRKZSIZYAGZUJYGWSUUNHULQZHIZJKZLMZENZUVIXDLMZCNZIZO
      PQZOIZRKZSIZYAGZUJYHUBUCWQYIHVHZUUAUUMYGUVTYTUULYAUVTYSUUKSUVTYRUUJRUVTYQ
      UUIOUVTYPUUHOPUVTYMUUEYOUUGUVTYLUUDEUVTYKUUCWSLUVTYJUUBJYIHHUMTZUNUOUVTYN
      UUFCUVTYKUUCXDLUWAUPUOUQURUSTUSUTVAYIUUNVHZUUAUVFYGUWBYTUVEYAUWBYSUVDSUWB
      YRUVCRUWBYQUVBOUWBYPUVAOPUWBYMUURYOUUTUWBYLUUQEUWBYKUUPWSLUWBYJUUOJYIUUNH
      UMTZUNUOUWBYNUUSCUWBYKUUPXDLUWCUPUOUQURUSTUSUTVAYIUVGVHZUUAUVSYGUWDYTUVRY
      AUWDYSUVQSUWDYRUVPRUWDYQUVOOUWDYPUVNOPUWDYMUVKYOUVMUWDYLUVJEUWDYKUVIWSLUW
      DYJUVHJYIUVGHUMTZUNUOUWDYNUVLCUWDYKUVIXDLUWEUPUOUQURUSTUSUTVAYIWQVHZUUAYB
      YGUWFYTXKYAUWFYSXJSUWFYRXIRUWFYQXHOUWFYPXGOPUWFYMXCYOXFUWFYLXBEUWFYKXAWSL
      UWFYJWTJYIWQHUMTZUNUOUWFYNXECUWFYKXAXDLUWGUPUOUQURUSTUSUTVAYDUUMYFUUMYDUU
      LUEYACEVBVCVDVEUUNUDGZYGUVFUVSUWHYGUVFUVSUJUWHYGUHUVFUVEUEUFQZYAGZUVSYFUV
      FUWJUJUWHYDYEUWJBUVEYAXNUVEVHXOUWIYAXNUVEUEUFVFUTVGVIUWHUWJUVSVJYGUWHUWIU
      VRYACUUNEVKUTVEVLWKVRVMVNXRYGYBUAAXLYAVHXMYDXQYFXLYAUEVOXPYEBXLYAXLYAXOVO
      VPVQVSVTWRXKWAWAWBZRWCZWDWBZGZXTYCVJWRXJUWLGZSWDGUWNWRXIUWKGZUWOWRXHWAGZO
      WAGZUWPWRXGWAGUWRUWQCWQEWEWFXGOWGWHWFXHOWAWAWIWHUWKXIRWJWLWMWNXJSUWLWDWIW
      HUAXKXSUWMWOWMWP $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
         Final derivation of real and complex number postulates
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The complex numbers form a set.  Use ~ cnex instead.  (Contributed by
     Mario Carneiro, 17-Nov-2014.)  (New usage is discouraged.) $)
  axcnex $p |- CC e. _V $=
    ( cc cnr cxp cvv df-c cnp cer cqs df-nr cpw npex xpex pwex wss wtru wer a1i
    enrer qsss eqeltri trud ssexi ) ABBCDEBBBFFCZGHZDIUDUCJZUCFFKKLMUDUENOUCGUC
    GPORQSUAUBTZUFLT $.

  $( The real numbers are a subset of the complex numbers.  Axiom for real and
     complex numbers, derived from set theory.  This construction-dependent
     theorem should not be referenced directly; instead, use ~ ax-resscn .
     (Contributed by NM, 1-Mar-1995.)  (Proof shortened by Andrew Salmon,
     12-Aug-2011.)  (New usage is discouraged.) $)
  axresscn $p |- RR C_ CC $=
    ( cnr c0r csn cxp cr cc wcel wss 0r snssi xpss2 mp2b df-r df-c 3sstr4i ) AB
    CZDZAADZEFBAGPAHQRHIBAJPAAKLMNO $.

  $( 1 is a complex number.  Axiom for real and complex numbers, derived from
     set theory.  This construction-dependent theorem should not be referenced
     directly; instead, use ~ ax-1cn .  (Contributed by NM, 12-Apr-2007.)
     (New usage is discouraged.) $)
  ax1cn $p |- 1 e. CC $=
    ( cr cc c1 axresscn c1r c0r cop df-1 wcel cnr opelreal mpbir eqeltri sselii
    1sr ) ABCDCEFGZAHPAIEJIOEKLMN $.

  $( 1 is a real number.  Axiom for real and complex numbers, derived from set
     theory.  This construction-dependent theorem should not be referenced
     directly; instead, use ~ ax-1re .

     In the Metamath Proof Explorer, this is not a complex number axiom but is
     proved from ~ ax-1cn and the other axioms.  It is not known whether we can
     do so here, but the Metamath Proof Explorer proof (accessed 13-Jan-2020)
     uses excluded middle.  (Contributed by Jim Kingdon, 13-Jan-2020.)
     (New usage is discouraged.) $)
  ax1re $p |- 1 e. RR $=
    ( c1 c1r c0r cop cr df-1 wcel cnr 1sr opelreal mpbir eqeltri ) ABCDZEFMEGBH
    GIBJKL $.

  $( ` _i ` is a complex number.  Axiom for real and complex numbers, derived
     from set theory.  This construction-dependent theorem should not be
     referenced directly; instead, use ~ ax-icn .  (Contributed by NM,
     23-Feb-1996.)  (New usage is discouraged.) $)
  axicn $p |- _i e. CC $=
    ( ci cc wcel c0r cnr c1r 0r 1sr cop wa df-i eleq1i opelcn bitri mpbir2an )
    ABCZDECZFECZGHPDFIZBCQRJASBKLDFMNO $.

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Closure law for addition of complex numbers.  Axiom for real and complex
       numbers, derived from set theory.  This construction-dependent theorem
       should not be referenced directly, nor should the proven axiom
       ~ ax-addcl be used later.  Instead, in most cases use ~ addcl .
       (Contributed by NM, 14-Jun-1995.)  (New usage is discouraged.) $)
    axaddcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) e. CC ) $=
      ( vx vy vz vw cc wcel wa cv cop wceq cnr wex caddc co elxpi df-c ad2ant2l
      eleq2s cxp anim12i ee4anv sylibr cplr simpll simprl oveq12d addcnsr eqtrd
      addclsr ad2ant2r opelxpi syl2anc syl6eleqr eqeltrd exlimivv syl ) AGHZBGH
      ZIZACJZDJZKZLZVBMHZVCMHZIZIZBEJZFJZKZLZVJMHZVKMHZIZIZIZFNENZDNCNZABOPZGHZ
      VAVIDNCNZVQFNENZIVTUSWCUTWDWCAMMUAZGCDAMMQRTWDBWEGEFBMMQRTUBVIVQCDEFUCUDV
      SWBCDVRWBEFVRWAVBVJUEPZVCVKUEPZKZGVRWAVDVLOPZWHVRAVDBVLOVEVHVQUFVIVMVPUGU
      HVHVPWIWHLVEVMVBVCVJVKUISUJVHVPWHGHVEVMVHVPIZWHWEGWJWFMHZWGMHZWHWEHVFVNWK
      VGVOVBVJUKULVGVOWLVFVNVCVKUKSWFWGMMUMUNRUOSUPUQUQUR $.

    $( Closure law for addition in the real subfield of complex numbers.  Axiom
       for real and complex numbers, derived from set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-addrcl be used later.  Instead, in most
       cases use ~ readdcl .  (Contributed by NM, 31-Mar-1996.)
       (New usage is discouraged.) $)
    axaddrcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A + B ) e. RR ) $=
      ( vx vy cv c0r cop caddc co cr wcel cnr elreal wceq oveq1 eleq1d oveq2 wa
      cplr addresr addclsr opelreal sylibr eqeltrd 2gencl ) CEZFGZDEZFGZHIZJKAU
      IHIZJKABHIZJKCDUGUIABLJCAMDBMUGANUJUKJUGAUIHOPUIBNUKULJUIBAHQPUFLKUHLKRZU
      JUFUHSIZFGZJUFUHTUMUNLKUOJKUFUHUAUNUBUCUDUE $.

    $( Closure law for multiplication of complex numbers.  Axiom for real and
       complex numbers, derived from set theory.  This construction-dependent
       theorem should not be referenced directly, nor should the proven axiom
       ~ ax-mulcl be used later.  Instead, in most cases use ~ mulcl .
       (Contributed by NM, 10-Aug-1995.)  (New usage is discouraged.) $)
    axmulcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) e. CC ) $=
      ( vx vy vz vw cc wcel wa cv cop wceq cnr wex cmul co df-c mulclsr syl2anc
      cmr elxpi eleq2s anim12i ee4anv sylibr cm1r simpll simprl oveq12d mulcnsr
      cxp cplr ad2ant2l simplrl simprrl m1r a1i simplrr simprrr addclsr opelxpi
      eqtrd syl6eleqr eqeltrd exlimivv syl ) AGHZBGHZIZACJZDJZKZLZVJMHZVKMHZIZI
      ZBEJZFJZKZLZVRMHZVSMHZIZIZIZFNENZDNCNZABOPZGHZVIVQDNCNZWEFNENZIWHVGWKVHWL
      WKAMMUKZGCDAMMUAQUBWLBWMGEFBMMUAQUBUCVQWECDEFUDUEWGWJCDWFWJEFWFWIVJVRTPZU
      FVKVSTPZTPZULPZVKVRTPZVJVSTPZULPZKZGWFWIVLVTOPZXAWFAVLBVTOVMVPWEUGVQWAWDU
      HUIVPWDXBXALVMWAVJVKVRVSUJUMVBWFXAWMGWFWQMHZWTMHZXAWMHWFWNMHZWPMHZXCWFVNW
      BXEVMVNVOWEUNZVQWAWBWCUOZVJVRRSWFUFMHZWOMHZXFXIWFUPUQWFVOWCXJVMVNVOWEURZV
      QWAWBWCUSZVKVSRSUFWORSWNWPUTSWFWRMHZWSMHZXDWFVOWBXMXKXHVKVRRSWFVNWCXNXGXL
      VJVSRSWRWSUTSWQWTMMVASQVCVDVEVEVF $.

    $( Closure law for multiplication in the real subfield of complex numbers.
       Axiom for real and complex numbers, derived from set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-mulrcl be used later.  Instead, in most
       cases use ~ remulcl .  (New usage is discouraged.)  (Contributed by NM,
       31-Mar-1996.) $)
    axmulrcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A x. B ) e. RR ) $=
      ( vx vy cv c0r cop cmul co cr wcel cnr elreal wceq oveq1 eleq1d oveq2 cmr
      wa mulresr mulclsr opelreal sylibr eqeltrd 2gencl ) CEZFGZDEZFGZHIZJKAUIH
      IZJKABHIZJKCDUGUIABLJCAMDBMUGANUJUKJUGAUIHOPUIBNUKULJUIBAHQPUFLKUHLKSZUJU
      FUHRIZFGZJUFUHTUMUNLKUOJKUFUHUAUNUBUCUDUE $.
  $}

  ${
    $d A w x y z $.  $d B w z $.
    $( Addition commutes.  Axiom for real and complex numbers, derived from set
       theory.  This construction-dependent theorem should not be referenced
       directly, nor should the proven axiom ~ ax-addcom be used later.
       Instead, use ~ addcom .

       In the Metamath Proof Explorer this is not a complex number axiom but is
       instead proved from other axioms.  That proof relies on real number
       trichotomy and it is not known whether it is possible to prove this from
       the other axioms without it.  (Contributed by Jim Kingdon,
       17-Jan-2020.)  (New usage is discouraged.) $)
    axaddcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $=
      ( vx vy vz vw cv cop caddc co wceq cnr oveq1 oveq2 eqeq12d wcel addcomsrg
      wa cplr addcnsr cc df-c ad2ant2r ad2ant2l opeq12d ancoms 3eqtr4d 2optocl
      ) CGZDGZHZEGZFGZHZIJZUNUKIJZKAUNIJZUNAIJZKABIJZBAIJZKCDEFABLLUAUBUKAKUOUQ
      UPURUKAUNIMUKAUNINOUNBKUQUSURUTUNBAINUNBAIMOUILPZUJLPZRZULLPZUMLPZRZRZUIU
      LSJZUJUMSJZHULUISJZUMUJSJZHZUOUPVGVHVJVIVKVAVDVHVJKVBVEUIULQUCVBVEVIVKKVA
      VDUJUMQUDUEUIUJULUMTVFVCUPVLKULUMUIUJTUFUGUH $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Multiplication of complex numbers is commutative.  Axiom for real and
       complex numbers, derived from set theory.  This construction-dependent
       theorem should not be referenced directly, nor should the proven axiom
       ~ ax-mulcom be used later.  Instead, use ~ mulcom .  (Contributed by NM,
       31-Aug-1995.)  (New usage is discouraged.) $)
    axmulcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) = ( B x. A ) ) $=
      ( vx vy vz vw cv cmr co cm1r cplr cnr mulcnsrec wcel wa mulcomsrg syl2anc
      wceq oveq12d mulclsr cc cmul dfcnqs simpll simprl simplr simprr addcomsrg
      cep ccnv oveq2d eqtrd ecovicom ) CDEFABUACGZEGZHIZJDGZFGZHIZHIZKIUBUIUJLU
      QUOHIZUNURHIZKIZUOUNHIZJURUQHIZHIZKIURUNHIZUOUQHIZKIZUCUNUQUOURMUOURUNUQM
      UNLNZUQLNZOZUOLNZURLNZOZOZUPVDUTVFKVPVJVMUPVDRVJVKVOUDZVLVMVNUEZUNUOPQVPU
      SVEJHVPVKVNUSVERVJVKVOUFZVLVMVNUGZUQURPQUKSVPVCVHVGKIZVIVPVAVHVBVGKVPVKVM
      VAVHRVSVRUQUOPQVPVJVNVBVGRVQVTUNURPQSVPVHLNZVGLNZWAVIRVPVMVKWBVRVSUOUQTQV
      PVNVJWCVTVQURUNTQVHVGUHQULUM $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $( Addition of complex numbers is associative.  This theorem transfers the
       associative laws for the real and imaginary signed real components of
       complex number pairs, to complex number addition itself.  Axiom for real
       and complex numbers, derived from set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-addass be used later.  Instead, use
       ~ addass .  (Contributed by NM, 2-Sep-1995.)
       (New usage is discouraged.) $)
    axaddass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $=
      ( vx vy vz vw vv vu cv cplr co cnr addcnsrec wcel wa addclsr anim12i an4s
      wceq cc caddc ccnv addasssrg 3adant3r 3adant2r 3adant1r 3adant3l 3adant2l
      cep dfcnqs 3adant1l ecoviass ) DEFGHIABCUAUBGJZIJZKLZUJUCMDJZFJZKLZEJZUNK
      LZUSHJZKLZVAUOKLZUQURVBKLZKLZUTUPKLZVEUKUQUTURUNNURUNVBUONUSVAVBUONUQUTVE
      UPNUQMOZURMOZUTMOZUNMOZUSMOZVAMOZPVHVIPVLVJVKPVMUQURQUTUNQRSVIVBMOZVKUOMO
      ZVEMOZUPMOZPVIVNPVPVKVOPVQURVBQUNUOQRSVHVIVKPZVNVOPZVCVFTZVJVHVIVSVTVKVHV
      IVNVTVOUQURVBUDUEUFUGVJVRVSVDVGTZVHVJVKVSWAVIVJVKVOWAVNUTUNUOUDUHUIULUM
      $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f g h $.
    $( Multiplication of complex numbers is associative.  Axiom for real and
       complex numbers, derived from set theory.  This construction-dependent
       theorem should not be referenced directly; instead, use ~ ax-mulass .
       (Contributed by NM, 3-Sep-1995.)  (New usage is discouraged.) $)
    axmulass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $=
      ( vf vg vh cv cmr cplr cnr cm1r wcel mulclsr syl2anc wceq adantl distrsrg
      co wa syl3anc vx vy vz vw vv vu cc cmul cep ccnv dfcnqs mulcnsrec sylancr
      m1r addclsr syl2an an4s syl2anr an42s jca w3a simp1l simp2l simp3l simp2r
      simp3r simp1r addcomsrg addasssrg caov42d a1i eqtrd mulcomsrg 3coml simp3
      oveq2d oveq12d 3adant3 simp1 3eqtr3d mulasssrg caovdilemd caovcld caov12d
      simp2 3eqtrd 3eqtr4rd ecoviass ) UAUBUCUDUEUFABCUGUHUDGZUEGZHRZUCGZUFGZHR
      ZIRZUIUJJUAGZWLHRZKUBGZWIHRZHRZIRZWRWLHRZWPWIHRZIRZXAWJHRZKXDWMHRZHRZIRZX
      DWJHRZXAWMHRZIRZWPWLWJHRZKWIWMHRZHRZIRZHRZKWRWOHRZHRZIRZWRXOHRZWPWOHRZIRZ
      XOUKWPWRWLWIULWLWIWJWMULXAXDWJWMULWPWRXOWOULWPJLZWRJLZSZWLJLZWIJLZSZSXAJL
      ZXDJLZYCYFYDYGYIYCYFSWQJLWTJLZYIYDYGSZWPWLMYLKJLZWSJLZYKUNWRWIMZKWSMUMWQW
      TUOUPUQYCYGYDYFYJYDYFSXBJLXCJLYJYCYGSWRWLMWPWIMXBXCUOURUSUTYHWJJLZWMJLZSZ
      SXOJLZWOJLZYFYPYGYQYSYFYPSXLJLZXNJLZYSYGYQSZWLWJMZUUCYMXMJLZUUBUNWIWMMZKX
      MMZUMXLXNUOUPUQYFYQYGYPYTYGYPSWKJLZWNJLZYTYFYQSWIWJMZWLWMMZWKWNUOURUSUTYE
      YHYRVAZWPXLHRZWPXNHRZIRZKWRWKHRZHRZKWRWNHRZHRZIRZIRUUMUUQIRZUUSUUNIRZIRXS
      XHUULDEFUUMUUNUUQUUSJIUULYCUUAUUMJLYCYDYHYRVBZUULYFYPUUAYEYFYGYRVCZYEYHYP
      YQVDZUUDNZWPXLMNUULYCUUBUUNJLUVCUULYMUUEUUBUNUULYGYQUUEYEYFYGYRVEZYEYHYPY
      QVFZUUFNZUUGUMZWPXNMNUULYMUUPJLZUUQJLUNUULYDUUHUVKYCYDYHYRVGZUULYGYPUUHUV
      GUVEUUJNZWRWKMNZKUUPMUMDGZJLZEGZJLZSZUVOUVQIRZUVQUVOIROUULUVOUVQVHPZUVPUV
      RFGZJLZVAZUVTUWBIRUVOUVQUWBIRIROUULUVOUVQUWBVIPZUULYMUURJLZUUSJLUNUULYDUU
      IUWFUVLUULYFYQUUIUVDUVHUUKNZWRWNMNZKUURMUMUVSUVTJLZUULUVOUVQUOZPZVJUULXPU
      UOXRUUTIUULYCUUAUUBXPUUOOUVCUVFUVJWPXLXNQTUULXRKUUPUURIRZHRZUUTUULXQUWLKH
      UULYDUUHUUIXQUWLOUVLUVMUWGWRWKWNQTVPUULYMUVKUWFUWMUUTOYMUULUNVKZUVNUWHKUU
      PUURQTVLVQUULXEUVAXGUVBIUULXEUUMKWSWJHRZHRZIRUVAUULDEFWPKWLWSJIHWJUVSUVOU
      VQHRZUVQUVOHROUULUVOUVQVMPZUWDUVTUWBHRZUVOUWBHRZUVQUWBHRZIRZOUULUWDUWBUVT
      HRZUWBUVOHRZUWBUVQHRZIRZUWSUXBUWCUVPUVRUXCUXFOUWBUVOUVQQVNUWDUWCUWIUXCUWS
      OUVPUVRUWCVOZUVPUVRUWIUWCUWJVRUWBUVTVMNUWDUXDUWTUXEUXAIUWDUWCUVPUXDUWTOUX
      GUVPUVRUWCVSUWBUVOVMNUWDUWCUVRUXEUXAOUXGUVPUVRUWCWEUWBUVQVMNVQVTPZUWDUWQU
      WBHRUVOUXAHROUULUVOUVQUWBWAPZUVSUWQJLUULUVOUVQMPZUVCUWNUVDUULYDYGYNUVLUVG
      YONZUVEWBUULUWPUUQUUMIUULUWOUUPKHUULYDYGYPUWOUUPOUVLUVGUVEWRWIWJWATVPVPVL
      UULXGKUURWPXMHRZIRZHRZUUSKUXLHRZIRZUVBUULXFUXMKHUULDEFWRWPWLWIJIHWMUWRUXH
      UXIUXJUVLUVCUVDUVGUVHWBVPUULYMUWFUXLJLUXNUXPOUWNUWHUULDEWPXMJJJHUXJUVCUVI
      WCKUURUXLQTUULUXOUUNUUSIUULDEFKWPXMJHUWNUVCUVIUWRUXIWDVPWFVQWGUULWRXLHRZW
      RXNHRZIRZWPWKHRZWPWNHRZIRZIRUXQUXTIRZUYAUXRIRZIRYBXKUULDEFUXQUXRUXTUYAJIU
      ULDEWRXLJJJHUXJUVLUVFWCUULDEWRXNJJJHUXJUVLUVJWCUULDEWPWKJJJHUXJUVCUVMWCUW
      AUWEUULDEWPWNJJJHUXJUVCUWGWCUWKVJUULXTUXSYAUYBIUULYDUUAUUBXTUXSOUVLUVFUVJ
      WRXLXNQTUULYCUUHUUIYAUYBOUVCUVMUWGWPWKWNQTVQUULXIUYCXJUYDIUULDEFWRWPWLWIJ
      IHWJUWRUXHUXIUXJUVLUVCUVDUVGUVEWBUULXJUYAKWSWMHRZHRZIRUYDUULDEFWPKWLWSJIH
      WMUWRUXHUXIUXJUVCUWNUVDUXKUVHWBUULUYFUXRUYAIUULUYFKWRXMHRZHRUXRUULUYEUYGK
      HUULYDYGYQUYEUYGOUVLUVGUVHWRWIWMWATVPUULDEFKWRXMJHUWNUVLUVIUWRUXIWDVLVPVL
      VQWGWH $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f g h $.
    $( Distributive law for complex numbers (left-distributivity).  Axiom for
       real and complex numbers, derived from set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-distr be used later.  Instead, use
       ~ adddi .  (Contributed by NM, 2-Sep-1995.)
       (New usage is discouraged.) $)
    axdistr $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $=
      ( vf cnr cv cplr co cmr cm1r wcel wa addclsr mulclsr m1r sylancr distrsrg
      wceq syl3anc syl2anc vx vy vz vw vv vu vg vh cc caddc ccnv cmul addcnsrec
      cep dfcnqs mulcnsrec anim12i an4s syl2an syl2anr jca simp1l simp2l simp3l
      an42s w3a simp1r simp2r simp3r oveq2d a1i oveq12d addcomsrg adantl caov4d
      eqtrd addasssrg ecovidi ) UAUBUCUDUEUFABCUIUJUNUKEULUAFZUCFZUEFZGHZIHZJUB
      FZUDFZUFFZGHZIHZIHZGHZWDWBIHZVSWGIHZGHZVSVTIHZJWDWEIHZIHZGHZVSWAIHZJWDWFI
      HZIHZGHZGHZWDVTIHZVSWEIHZGHZWDWAIHZVSWFIHZGHZGHZWBWGWQXEXAXHUOVTWEWAWFUMV
      SWDWBWGUPVSWDVTWEUPVSWDWAWFUPWQXEXAXHUMVTEKZWAEKZWEEKZWFEKZWBEKZWGEKZLXJX
      KLXNXLXMLXOVTWAMWEWFMUQURVSEKZWDEKZLZXJXLLZLWQEKZXEEKZXPXJXQXLXTXPXJLWNEK
      ZWPEKZXTXQXLLZVSVTNZYDJEKZWOEKZYCOWDWENZJWONZPWNWPMUSURXPXLXQXJYAXQXJLXCE
      KZXDEKZYAXPXLLWDVTNZVSWENZXCXDMUTVEVAXRXKXMLZLXAEKZXHEKZXPXKXQXMYOXPXKLWR
      EKZWTEKZYOXQXMLZVSWANZYSYFWSEKZYROWDWFNZJWSNZPWRWTMUSURXPXMXQXKYPXQXKLXFE
      KZXGEKZYPXPXMLWDWANZVSWFNZXFXGMUTVEVAXRXSYNVFZWJWNWRGHZWPWTGHZGHXBUUHWCUU
      IWIUUJGUUHXPXJXKWCUUIRXPXQXSYNVBZXRXJXLYNVCZXRXSXKXMVDZVSVTWAQSUUHWIJWOWS
      GHZIHZUUJUUHWHUUNJIUUHXQXLXMWHUUNRXPXQXSYNVGZXRXJXLYNVHZXRXSXKXMVIZWDWEWF
      QSVJUUHYFYGUUAUUOUUJRYFUUHOVKUUHXQXLYGUUPUUQYHTZUUHXQXMUUAUUPUURUUBTZJWOW
      SQSVPVLUUHDUGUHWNWRWPWTEGUUHXPXJYBUUKUULYETUUHXPXKYQUUKUUMYTTUUHYFYGYCOUU
      SYIPDFZEKZUGFZEKZLZUVAUVCGHZUVCUVAGHRUUHUVAUVCVMVNZUVBUVDUHFZEKVFUVFUVHGH
      UVAUVCUVHGHGHRUUHUVAUVCUVHVQVNZUUHYFUUAYROUUTUUCPUVEUVFEKUUHUVAUVCMVNZVOV
      PUUHWMXCXFGHZXDXGGHZGHXIUUHWKUVKWLUVLGUUHXQXJXKWKUVKRUUPUULUUMWDVTWAQSUUH
      XPXLXMWLUVLRUUKUUQUURVSWEWFQSVLUUHDUGUHXCXFXDXGEGUUHXQXJYJUUPUULYLTUUHXQX
      KUUDUUPUUMUUFTUUHXPXLYKUUKUUQYMTUVGUVIUUHXPXMUUEUUKUURUUGTUVJVOVPVR $.
  $}

  $( i-squared equals -1 (expressed as i-squared plus 1 is 0).  Axiom for real
     and complex numbers, derived from set theory.  This construction-dependent
     theorem should not be referenced directly; instead, use ~ ax-i2m1 .
     (Contributed by NM, 5-May-1996.)  (New usage is discouraged.) $)
  axi2m1 $p |- ( ( _i x. _i ) + 1 ) = 0 $=
    ( c0r c1r cop cmul co caddc ci cm1r cplr cmr cnr wcel wceq 0r 1sr ax-mp m1r
    1idsr eqtri oveq12i c1 cc0 mulcnsr mp4an 00sr oveq2i addcomsrg mp2an 3eqtri
    0idsr opeq12i oveq1i addresr m1p1sr opeq1i df-i df-1 df-0 3eqtr4i ) ABCZUTD
    EZBACZFEZAACZGGDEZUAFEUBVCHACZVBFEZHBIEZACZVDVAVFVBFVAAAJEZHBBJEZJEZIEZBAJE
    ZABJEZIEZCZVFAKLZBKLZVRVSVAVQMNONOABABUCUDVMHVPAVMAHIEZHAIEZHVJAVLHIVRVJAMN
    AUEPVLHBJEZHVKBHJVSVKBMOBRPUFHKLZWBHMQHRPSTVRWCVTWAMNQAHUGUHWCWAHMQHUJPUIVP
    AAIEZAVNAVOAIVSVNAMOBUEPVRVOAMNARPTVRWDAMNAUJPSUKSULWCVSVGVIMQOHBUMUHVHAAUN
    UOUIVEVAUAVBFGUTGUTDUPUPTUQTURUS $.

  $( 0 is less than 1.  Axiom for real and complex numbers, derived from set
     theory.  This construction-dependent theorem should not be referenced
     directly; instead, use ~ ax-0lt1 .

     The version of this axiom in the Metamath Proof Explorer reads
     ` 1 =/= 0 ` ; here we change it to ` 0 <RR 1 ` .  The proof of ` 0 <RR 1 `
     from ` 1 =/= 0 ` in the Metamath Proof Explorer (accessed 12-Jan-2020)
     relies on real number trichotomy.  (Contributed by Jim Kingdon,
     12-Jan-2020.)  (New usage is discouraged.) $)
  ax0lt1 $p |- 0 <RR 1 $=
    ( c0r cop c1r cc0 c1 cltrr wbr cltr 0lt1sr ltresr mpbir df-0 df-1 3brtr4i )
    AABZCABZDEFOPFGACHGIACJKLMN $.

  ${
    $d A x y $.
    $( ` 1 ` is an identity element for real multiplication.  Axiom for real
       and complex numbers, derived from set theory.  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-1rid .  (Contributed by Scott Fenton, 3-Jan-2013.)
       (New usage is discouraged.) $)
    ax1rid $p |- ( A e. RR -> ( A x. 1 ) = A ) $=
      ( vx vy cv cop c1 cmul co wceq cnr c0r csn cr df-r oveq1 id eqeq12d elsni
      wcel c1r df-1 oveq2i cmr 1sr mpan2 1idsr opeq1d eqtrd syl5eq opeq2 oveq1d
      mulresr syl5ibr impcom sylan2 optocl ) BDZCDZEZFGHZUSIZAFGHZAIBCAJKLZMNUS
      AIZUTVBUSAUSAFGOVDPQURVCSUQJSZURKIZVAURKRVFVEVAVEVAVFUQKEZFGHZVGIVEVHVGTK
      EZGHZVGFVIVGGUAUBVEVJUQTUCHZKEZVGVETJSVJVLIUDUQTULUEVEVKUQKUQUFUGUHUIVFUT
      VHUSVGVFUSVGFGURKUQUJZUKVMQUMUNUOUP $.
  $}

  ${
    $d A x y $.
    $( ` 0 ` is an identity element for real addition.  Axiom for real and
       complex numbers, derived from set theory.  This construction-dependent
       theorem should not be referenced directly; instead, use ~ ax-0id .

       In the Metamath Proof Explorer this is not a complex number axiom but is
       instead proved from other axioms.  That proof relies on excluded middle
       and it is not known whether it is possible to prove this from the other
       axioms without excluded middle.  (Contributed by Jim Kingdon,
       16-Jan-2020.)  (New usage is discouraged.) $)
    ax0id $p |- ( A e. CC -> ( A + 0 ) = A ) $=
      ( vx vy cv cop cc0 caddc co wceq cnr cc df-c oveq1 id eqeq12d wcel c0r 0r
      cplr 0idsr wa addcnsr mpanr12 eqcomi oveq2d adantr adantl opeq12d 3eqtr3d
      df-0 a1i optocl ) BDZCDZEZFGHZUOIAFGHZAIBCAJJKLUOAIZUPUQUOAUOAFGMURNOUMJP
      ZUNJPZUAZUOQQEZGHZUMQSHZUNQSHZEZUPUOVAQJPZVGVCVFIRRUMUNQQUBUCVAVBFUOGVBFI
      VAFVBUJUDUKUEVAVDUMVEUNUSVDUMIUTUMTUFUTVEUNIUSUNTUGUHUIUL $.
  $}

  ${
    $d x y A $.  $d x y z $.
    $( Existence of negative of real number.  Axiom for real and complex
       numbers, derived from set theory.  This construction-dependent theorem
       should not be referenced directly; instead, use ~ ax-rnegex .
       (Contributed by NM, 15-May-1996.)  (New usage is discouraged.) $)
    axrnegex $p |- ( A e. RR -> E. x e. RR ( A + x ) = 0 ) $=
      ( cr wcel c1st cfv cm1r cmr co c0r cop caddc cc0 wceq cv wrex cnr elreal2
      simplbi syl2anc mulclsr sylancl opelreal sylibr cplr simprbi oveq1d pn0sr
      m1r addresr opeq1d df-0 syl6eqr syl 3eqtrd oveq2 eqeq1d rspcev ) BCDZBEFZ
      GHIZJKZCDZBVBLIZMNZBAOZLIZMNZACPUSVAQDZVCUSUTQDZGQDVIUSVJBUTJKZNZBRZSZUIU
      TGUAUBZVAUCUDUSVDVKVBLIZUTVAUEIZJKZMUSBVKVBLUSVJVLVMUFUGUSVJVIVPVRNVNVOUT
      VAUJTUSVJVRMNVNVJVRJJKMVJVQJJUTUHUKULUMUNUOVHVEAVBCVFVBNVGVDMVFVBBLUPUQUR
      T $.
  $}

  ${
    $d x y A $.  $d x y z $.
    $( Existence of positive reciprocal of positive real number.  Axiom for
       real and complex numbers, derived from set theory.  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-precex .

       In treatments which assume excluded middle, the ` 0 <RR A ` condition is
       generally replaced by ` A =/= 0 ` , and it may not be necessary to state
       that the reciproacal is positive.  (Contributed by Jim Kingdon,
       6-Feb-2020.)  (New usage is discouraged.) $)
    axprecex $p |- ( ( A e. RR /\ 0 <RR A ) ->
        E. x e. RR ( 0 <RR x /\ ( A x. x ) = 1 ) ) $=
      ( vy vz cr wcel cc0 cltrr wbr cmul co c1 wceq wrex c0r cop cnr bitri c1r
      wa cv wi wex elreal df-rex breq2 oveq1 eqeq1d anbi2d rexbidv imbi12d cltr
      df-0 breq1i ltresr cmr recexgt0sr opelreal anbi1i a1i mulresr df-1 eqeq2i
      wb eqid 1sr 0r opthg2 mp2an mpbiran2 syl6bb anbi12d pm5.32da syl5bb oveq2
      rspcev syl6bir expd rexlimdv syl5 syl5bi gencl imp ) BEFZGBHIZGAUAZHIZBWF
      JKZLMZTZAENZGCUAZOPZHIZWGWMWFJKZLMZTZAENZUBWEWKUBWLQFZWDCWMBWDWMBMZCQNWSW
      TTCUCCBUDWTCQUERWTWNWEWRWKWMBGHUFWTWQWJAEWTWPWIWGWTWOWHLWMBWFJUGUHUIUJUKW
      NOWLULIZWSWRWNOOPZWMHIXAGXBWMHUMUNOWLUORXAODUAZULIZWLXCUPKZSMZTZDQNWSWRDW
      LUQWSXGWRDQWSXCQFZXGWRWSXHXGTZXCOPZEFZGXJHIZWMXJJKZLMZTZTZWRXPXHXOTWSXIXK
      XHXOXCURUSWSXHXOXGWSXHTZXLXDXNXFXLXDVDXQXLXBXJHIXDGXBXJHUMUNOXCUORUTXQXNX
      EOPZLMZXFXQXMXRLWLXCVAUHXSXRSOPZMZXFLXTXRVBVCYAXFOOMZOVESQFOQFYAXFYBTVDVF
      VGXEOSOQQVHVIVJRVKVLVMVNWQXOAXJEWFXJMZWGXLWPXNWFXJGHUFYCWOXMLWFXJWMJVOUHV
      LVPVQVRVSVTWAWBWC $.
  $}

  ${
    $d x y z w A $.
    $( A complex number can be expressed in terms of two reals.  Definition
       10-1.1(v) of [Gleason] p. 130.  Axiom for real and complex numbers,
       derived from set theory.  This construction-dependent theorem should not
       be referenced directly; instead, use ~ ax-cnre .  (Contributed by NM,
       13-May-1996.)  (New usage is discouraged.) $)
    axcnre $p |- ( A e. CC ->
                      E. x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $=
      ( cop cmul co caddc wceq cr cnr wcel wa c0r cplr c1r cmr cm1r eqtrd cvv
      0r vz vw cv ci wrex df-c eqeq1 2rexbidv wex opelreal anbi12i biimpri df-i
      cc oveq1i 1sr mulcnsr mpanl12 mpan2 mulcomsrg mpan 00sr oveq1d oveq2i m1r
      ax-mp eqtri 0idsr syl6eq 1idsr syl5eq opeq12d oveq2d adantl mpanl2 mpanr1
      addcnsr addcomsrg opeq12 syl2an 3eqtrrd vex opexg mp2an eleq1 oveq1 oveq2
      bi2anan9 sylan9eq eqeq2d anbi12d spc2ev syl2anc r2ex sylibr optocl ) UAUC
      ZUBUCZDZAUCZUDBUCZEFZGFZHZBIUEAIUEZCXCHZBIUEAIUEUAUBCJJUNUFWSCHXDXFABIIWS
      CXCUGUHWQJKZWRJKZLZWTIKZXAIKZLZXDLZBUIAUIZXEXIWQMDZIKZWRMDZIKZLZWSXOUDXQE
      FZGFZHZXNXSXIXPXGXRXHWQUJWRUJUKULXIYAXOMWRDZGFZWQMNFZMWRNFZDZWSXHYAYDHXGX
      HXTYCXOGXHXTMODZXQEFZYCUDYHXQEUMUOXHYIMWRPFZQOMPFZPFZNFZOWRPFZMMPFZNFZDZY
      CXHMJKZYIYQHZTYROJKZXHYRLYSTUPMOWRMUQURUSXHYMMYPWRXHYMMYLNFZMXHYJMYLNXHYJ
      WRMPFZMYRXHYJUUBHTMWRUTVAWRVBRVCUUAMMNFZMYLMMNYLQMPFZMYKMQPYTYKMHUPOVBVFV
      DQJKUUDMHVEQVBVFVGVDYRUUCMHTMVHVFVGVIXHYPWRYONFZWRXHYNWRYONXHYNWROPFZWRYT
      XHYNUUFHUPOWRUTVAWRVJRVCXHUUEWRMNFZWRYOMWRNYRYOMHTMVBVFVDWRVHZVKRVLRVKVMV
      NXGYRXHYDYGHZTXGYRYRXHLUUITWQMMWRVQVOVPXGYEWQHYFWRHYGWSHXHWQVHXHYFUUGWRYR
      XHYFUUGHTMWRVRVAUUHRYEYFWQWRVSVTWAXMXSYBLABXOXQWQSKYRXOSKUAWBTWQMSJWCWDWR
      SKYRXQSKUBWBTWRMSJWCWDWTXOHZXAXQHZLZXLXSXDYBUUJXJXPUUKXKXRWTXOIWEXAXQIWEW
      HUULXCYAWSUUJUUKXCXOXBGFYAWTXOXBGWFUUKXBXTXOGXAXQUDEWGVMWIWJWKWLWMXDABIIW
      NWOWP $.
  $}

  ${
    $d x A $.
    $( Real number less-than is irreflexive.  Axiom for real and complex
       numbers, derived from set theory.  This construction-dependent theorem
       should not be referenced directly; instead, use ~ ax-pre-ltirr .
       (Contributed by Jim Kingdon, 12-Jan-2020.)
       (New usage is discouraged.) $)
    axpre-ltirr $p |- ( A e. RR -> -. A <RR A ) $=
      ( vx cv c0r cop cltrr wbr wn cnr wcel cr wceq wrex wa elreal df-rex bitri
      wex id cltr breq12d notbid ltsosr ltrelsr soirri ltresr mtbir a1i gencl )
      BCZDEZUKFGZHZAAFGZHUJIJZAKJZBUKAUPUKALZBIMUOUQNBRBAOUQBIPQUQULUNUQUKAUKAF
      UQSZURUAUBUMUOULUJUJTGUJTIUCUDUEUJUJUFUGUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Real number less-than is weakly linear.  Axiom for real and complex
       numbers, derived from set theory.  This construction-dependent theorem
       should not be referenced directly; instead, use ~ ax-pre-ltwlin .
       (Contributed by Jim Kingdon, 12-Jan-2020.)
       (New usage is discouraged.) $)
    axpre-ltwlin $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
        ( A <RR B -> ( A <RR C \/ C <RR B ) ) ) $=
      ( vx vy vz cv c0r cop cltrr wbr wo cnr elreal wceq breq1 breq2 wcel cltr
      wi orbi1d imbi12d orbi2d orbi12d imbi2d w3a wor ltsosr sowlin mpan ltresr
      cr orbi12i 3imtr4g 3gencl ) DGZHIZEGZHIZJKZUQFGZHIZJKZVBUSJKZLZTAUSJKZAVB
      JKZVDLZTABJKZVGVBBJKZLZTVIACJKZCBJKZLZTDEFUQUSVBAMULBCDANEBNFCNUQAOZUTVFV
      EVHUQAUSJPVOVCVGVDUQAVBJPUAUBUSBOZVFVIVHVKUSBAJQVPVDVJVGUSBVBJQUCUBVBCOZV
      KVNVIVQVGVLVJVMVBCAJQVBCBJPUDUEUPMRURMRVAMRUFZUPURSKZUPVASKZVAURSKZLZUTVE
      MSUGVRVSWBTUHMUPURVASUIUJUPURUKVCVTVDWAUPVAUKVAURUKUMUNUO $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.
    $( Ordering on reals is transitive.  Axiom for real and complex numbers,
       derived from set theory.  This construction-dependent theorem should not
       be referenced directly; instead, use ~ ax-pre-lttrn .  (Contributed by
       NM, 19-May-1996.)  (Revised by Mario Carneiro, 16-Jun-2013.)
       (New usage is discouraged.) $)
    axpre-lttrn $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
               ( ( A <RR B /\ B <RR C ) -> A <RR C ) ) $=
      ( vx vy vz cv c0r cop cltrr wbr wa cnr elreal wceq breq1 breq2 wcel cltr
      wi anbi1d imbi12d anbi12d imbi1d anbi2d w3a ltresr ltsosr ltrelsr syl2anb
      cr sotri sylibr a1i 3gencl ) DGZHIZEGZHIZJKZUSFGZHIZJKZLZUQVBJKZTZAUSJKZV
      CLZAVBJKZTABJKZBVBJKZLZVITVJBCJKZLZACJKZTDEFUQUSVBAMUKBCDANEBNFCNUQAOZVDV
      HVEVIVPUTVGVCUQAUSJPUAUQAVBJPUBUSBOZVHVLVIVQVGVJVCVKUSBAJQUSBVBJPUCUDVBCO
      ZVLVNVIVOVRVKVMVJVBCBJQUEVBCAJQUBVFUPMRURMRVAMRUFVDUPVASKZVEUTUPURSKURVAS
      KVSVCUPURUGURVAUGUPURVASMUHUIULUJUPVAUGUMUNUO $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Apartness of reals is tight.  Axiom for real and complex numbers,
       derived from set theory.  This construction-dependent theorem should not
       be referenced directly; instead, use ~ ax-pre-apti .

       (Contributed by Jim Kingdon, 29-Jan-2020.)
       (New usage is discouraged.) $)
    axpre-apti $p |- ( ( A e. RR /\ B e. RR /\ -. ( A <RR B \/ B <RR A ) ) ->
        A = B ) $=
      ( vx vy cr wcel cltrr wbr wo wn wceq cv c0r cop wi cnr elreal breq1 breq2
      orbi12d notbid eqeq1 imbi12d eqeq2 wa aptisr 3expia ltresr orbi12i notbii
      cltr vex eqresr 3imtr4g 2gencl 3impia ) AEFBEFABGHZBAGHZIZJZABKZCLZMNZDLZ
      MNZGHZVEVCGHZIZJZVCVEKZOAVEGHZVEAGHZIZJZAVEKZOUTVAOCDVCVEABPECAQDBQVCAKZV
      IVNVJVOVPVHVMVPVFVKVGVLVCAVEGRVCAVEGSTUAVCAVEUBUCVEBKZVNUTVOVAVQVMUSVQVKU
      QVLURVEBAGSVEBAGRTUAVEBAUDUCVBPFZVDPFZUEVBVDUKHZVDVBUKHZIZJZVBVDKZVIVJVRV
      SWCWDVBVDUFUGVHWBVFVTVGWAVBVDUHVDVBUHUIUJVBVDCULUMUNUOUP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Ordering property of addition on reals.  Axiom for real and complex
       numbers, derived from set theory.  This construction-dependent theorem
       should not be referenced directly; instead, use ~ ax-pre-ltadd .
       (Contributed by NM, 11-May-1996.)  (New usage is discouraged.) $)
    axpre-ltadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( A <RR B -> ( C + A ) <RR ( C + B ) ) ) $=
      ( vx vy vz cr wcel w3a cltrr wbr caddc co cv c0r cop wb cnr elreal wceq
      breq1 oveq2 breq1d bibi12d breq2 breq2d breq12d bibi2d cltr ltasrg ltresr
      oveq1 cplr simp3 simp1 simp2 wa addresr breqan12d syl22anc syl6bb 3bitr4d
      a1i 3gencl biimpd ) AGHBGHCGHIABJKZCALMZCBLMZJKZDNZOPZENZOPZJKZFNZOPZVKLM
      ZVPVMLMZJKZQAVMJKZVPALMZVRJKZQVFWAVPBLMZJKZQVFVIQDEFVKVMVPARGBCDASEBSFCSV
      KATZVNVTVSWBVKAVMJUAWEVQWAVRJVKAVPLUBUCUDVMBTZVTVFWBWDVMBAJUEWFVRWCWAJVMB
      VPLUBUFUDVPCTZWDVIVFWGWAVGWCVHJVPCALULVPCBLULUGUHVJRHZVLRHZVORHZIZVJVLUIK
      ZVOVJUMMZVOVLUMMZUIKZVNVSVJVLVOUJVNWLQWKVJVLUKVCWKVSWMOPZWNOPZJKZWOWKWJWH
      WJWIVSWRQWHWIWJUNZWHWIWJUOWSWHWIWJUPWJWHUQWJWIUQVQWPVRWQJVOVJURVOVLURUSUT
      WMWNUKVAVBVDVE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The product of two positive reals is positive.  Axiom for real and
       complex numbers, derived from set theory.  This construction-dependent
       theorem should not be referenced directly; instead, use
       ~ ax-pre-mulgt0 .  (Contributed by NM, 13-May-1996.)
       (New usage is discouraged.) $)
    axpre-mulgt0 $p |- ( ( A e. RR /\ B e. RR ) ->
                  ( ( 0 <RR A /\ 0 <RR B ) -> 0 <RR ( A x. B ) ) ) $=
      ( vx vy cc0 cv c0r cop cltrr wbr wa cmul cnr elreal wceq cltr df-0 ltresr
      co wi cr breq2 anbi1d oveq1 breq2d imbi12d anbi2d oveq2 wcel breq1i bitri
      cmr mulgt0sr syl2anb a1i mulresr breq12d syl6bb syl5ibr 2gencl ) ECFZGHZI
      JZEDFZGHZIJZKZEVBVELSZIJZTEAIJZVFKZEAVELSZIJZTVJEBIJZKZEABLSZIJZTCDVBVEAB
      MUACANDBNVBAOZVGVKVIVMVRVCVJVFVBAEIUBUCVRVHVLEIVBAVELUDUEUFVEBOZVKVOVMVQV
      SVFVNVJVEBEIUBUGVSVLVPEIVEBALUHUEUFVGVIVAMUIVDMUIKZGVAVDULSZPJZVCGVAPJZGV
      DPJZWBVFVCGGHZVBIJWCEWEVBIQUJGVARUKVFWEVEIJWDEWEVEIQUJGVDRUKVAVDUMUNVTVIW
      EWAGHZIJWBVTEWEVHWFIEWEOVTQUOVAVDUPUQGWARURUSUT $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d z C $.
    $( Strong extensionality of multiplication (expressed in terms of
       ` <RR ` ).  Axiom for real and complex numbers, derived from set
       theory.  This construction-dependent theorem should not be referenced
       directly; instead, use ~ ax-pre-mulext .

       (Contributed by Jim Kingdon, 18-Feb-2020.)
       (New usage is discouraged.) $)
    axpre-mulext $p |- ( ( A e. RR /\ B e. RR /\ C e. RR )
        -> ( ( A x. C ) <RR ( B x. C ) -> ( A <RR B \/ B <RR A ) ) ) $=
      ( vx vz vy cv c0r cop cmul co cltrr wbr wo wi cnr elreal wceq wcel cltr
      cr oveq1 breq1d breq1 breq2 orbi12d imbi12d breq2d breq12d imbi1d w3a cmr
      oveq2 mulextsr1 mulresr 3adant2 3adant1 ltresr syl6bb orbi12i a1i 3imtr4d
      wb 3gencl ) DGZHIZEGZHIZJKZFGZHIZVHJKZLMZVFVKLMZVKVFLMZNZOAVHJKZVLLMZAVKL
      MZVKALMZNZOVQBVHJKZLMZABLMZBALMZNZOACJKZBCJKZLMZWFODFEVFVKVHAPUABCDAQFBQE
      CQVFARZVMVRVPWAWJVIVQVLLVFAVHJUBUCWJVNVSVOVTVFAVKLUDVFAVKLUEUFUGVKBRZVRWC
      WAWFWKVLWBVQLVKBVHJUBUHWKVSWDVTWEVKBALUEVKBALUDUFUGVHCRZWCWIWFWLVQWGWBWHL
      VHCAJUMVHCBJUMUIUJVEPSZVJPSZVGPSZUKZVEVGULKZVJVGULKZTMZVEVJTMZVJVETMZNZVM
      VPVEVJVGUNWPVMWQHIZWRHIZLMWSWPVIXCVLXDLWMWOVIXCRWNVEVGUOUPWNWOVLXDRWMVJVG
      UOUQUIWQWRURUSVPXBVCWPVNWTVOXAVEVJURVJVEURUTVAVBVD $.
  $}

  ${
    $d A l n u w x y z $.

    $( Archimedean axiom.  The Archimedean property is more naturally stated
       once we have defined ` NN ` .  Unless we find another way to state it,
       we'll just use the right hand side of ~ dfnn2 in stating what we mean by
       "natural number" in the context of this axiom.

       This construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-arch .  (Contributed by Jim Kingdon, 22-Apr-2020.)
       (New usage is discouraged.) $)
    axarch $p |- ( A e. RR -> E. n e.
        |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } A <RR n ) $=
      ( vz vl vw vu wcel cv c0r cop wceq cltrr wbr wa cab wrex cnr cnpi cr wral
      c1 caddc co cint elreal biimpi c1o ceq cec cltq c1p cpp cer cltr ad2antrl
      archsr simplrr simprr ltresr sylibr pitonn simpr breq2d rspcedv rexlimddv
      eqbrtrrd mpd ) CUAIZEJZKLZCMZCDJZNOZDUCAJZIBJUCUDUEVPIBVPUBPAQUFZRZESVJVM
      ESRECUGUHVJVKSIZVMPPZVKFJGJZUILUJUKZULOFQWBHJULOHQLUMUNUEUMLUOUKZUPOZVRGT
      VSWDGTRVJVMGHVKFURUQVTWATIZWDPZPZCWCKLZNOZVRWGVLCWHNVJVSVMWFUSWGWDVLWHNOV
      TWEWDUTVKWCVAVBVHWGVOWIDWHVQWEWHVQIVTWDABHGFVCUQWGVNWHMZPVNWHCNWGWJVDVEVF
      VIVGVG $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
          Real and complex number postulates restated as axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The complex numbers form a set.  Proofs should normally use ~ cnex
     instead.  (New usage is discouraged.)  (Contributed by NM, 1-Mar-1995.) $)
  ax-cnex $a |- CC e. _V $.
  $( $j restatement 'ax-cnex' of 'axcnex'; $)

  $( The real numbers are a subset of the complex numbers.  Axiom for real and
     complex numbers, justified by theorem ~ axresscn .  (Contributed by NM,
     1-Mar-1995.) $)
  ax-resscn $a |- RR C_ CC $.
  $( $j restatement 'ax-resscn' of 'axresscn'; $)

  $( 1 is a complex number.  Axiom for real and complex numbers, justified by
     theorem ~ ax1cn .  (Contributed by NM, 1-Mar-1995.) $)
  ax-1cn $a |- 1 e. CC $.
  $( $j restatement 'ax-1cn' of 'ax1cn'; $)

  $( 1 is a real number.  Axiom for real and complex numbers, justified by
     theorem ~ ax1re .  Proofs should use ~ 1re instead.  (Contributed by Jim
     Kingdon, 13-Jan-2020.)  (New usage is discouraged.) $)
  ax-1re $a |- 1 e. RR $.
  $( $j restatement 'ax-1re' of 'ax1re'; $)

  $( ` _i ` is a complex number.  Axiom for real and complex numbers, justified
     by theorem ~ axicn .  (Contributed by NM, 1-Mar-1995.) $)
  ax-icn $a |- _i e. CC $.
  $( $j restatement 'ax-icn' of 'axicn'; $)

  $( Closure law for addition of complex numbers.  Axiom for real and complex
     numbers, justified by theorem ~ axaddcl .  Proofs should normally use
     ~ addcl instead, which asserts the same thing but follows our naming
     conventions for closures.  (New usage is discouraged.)  (Contributed by
     NM, 22-Nov-1994.) $)
  ax-addcl $a |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) e. CC ) $.
  $( $j restatement 'ax-addcl' of 'axaddcl'; $)

  $( Closure law for addition in the real subfield of complex numbers.  Axiom
     for real and complex numbers, justified by theorem ~ axaddrcl .  Proofs
     should normally use ~ readdcl instead.  (New usage is discouraged.)
     (Contributed by NM, 22-Nov-1994.) $)
  ax-addrcl $a |- ( ( A e. RR /\ B e. RR ) -> ( A + B ) e. RR ) $.
  $( $j restatement 'ax-addrcl' of 'axaddrcl'; $)

  $( Closure law for multiplication of complex numbers.  Axiom for real and
     complex numbers, justified by theorem ~ axmulcl .  Proofs should normally
     use ~ mulcl instead.  (New usage is discouraged.)  (Contributed by NM,
     22-Nov-1994.) $)
  ax-mulcl $a |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) e. CC ) $.
  $( $j restatement 'ax-mulcl' of 'axmulcl'; $)

  $( Closure law for multiplication in the real subfield of complex numbers.
     Axiom for real and complex numbers, justified by theorem ~ axmulrcl .
     Proofs should normally use ~ remulcl instead.
     (New usage is discouraged.)  (Contributed by NM, 22-Nov-1994.) $)
  ax-mulrcl $a |- ( ( A e. RR /\ B e. RR ) -> ( A x. B ) e. RR ) $.
  $( $j restatement 'ax-mulrcl' of 'axmulrcl'; $)

  $( Addition commutes.  Axiom for real and complex numbers, justified by
     theorem ~ axaddcom .  Proofs should normally use ~ addcom instead.
     (New usage is discouraged.)  (Contributed by Jim Kingdon, 17-Jan-2020.) $)
  ax-addcom $a |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $.
  $( $j restatement 'ax-addcom' of 'axaddcom'; $)

  $( Multiplication of complex numbers is commutative.  Axiom for real and
     complex numbers, justified by theorem ~ axmulcom .  Proofs should normally
     use ~ mulcom instead.  (New usage is discouraged.)  (Contributed by NM,
     22-Nov-1994.) $)
  ax-mulcom $a |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) = ( B x. A ) ) $.
  $( $j restatement 'ax-mulcom' of 'axmulcom'; $)

  $( Addition of complex numbers is associative.  Axiom for real and complex
     numbers, justified by theorem ~ axaddass .  Proofs should normally use
     ~ addass instead.  (New usage is discouraged.)  (Contributed by NM,
     22-Nov-1994.) $)
  ax-addass $a |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $.
  $( $j restatement 'ax-addass' of 'axaddass'; $)

  $( Multiplication of complex numbers is associative.  Axiom for real and
     complex numbers, justified by theorem ~ axmulass .  Proofs should normally
     use ~ mulass instead.  (New usage is discouraged.)  (Contributed by NM,
     22-Nov-1994.) $)
  ax-mulass $a |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $.
  $( $j restatement 'ax-mulass' of 'axmulass'; $)

  $( Distributive law for complex numbers (left-distributivity).  Axiom for
     real and complex numbers, justified by theorem ~ axdistr .  Proofs should
     normally use ~ adddi instead.  (New usage is discouraged.)  (Contributed
     by NM, 22-Nov-1994.) $)
  ax-distr $a |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
              ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $.
  $( $j restatement 'ax-distr' of 'axdistr'; $)

  $( i-squared equals -1 (expressed as i-squared plus 1 is 0).  Axiom for real
     and complex numbers, justified by theorem ~ axi2m1 .  (Contributed by NM,
     29-Jan-1995.) $)
  ax-i2m1 $a |- ( ( _i x. _i ) + 1 ) = 0 $.
  $( $j restatement 'ax-i2m1' of 'axi2m1'; $)

  $( 0 is less than 1.  Axiom for real and complex numbers, justified by
     theorem ~ ax0lt1 .  Proofs should normally use ~ 0lt1 instead.
     (New usage is discouraged.)  (Contributed by Jim Kingdon, 12-Jan-2020.) $)
  ax-0lt1 $p |- 0 <RR 1 $=
    ( c0r cop c1r cc0 c1 cltrr wbr cltr 0lt1sr ltresr mpbir df-0 df-1 3brtr4i )
    AABZCABZDEFOPFGACHGIACJKLMN $.
  $( $j restatement 'ax-0lt1' of 'ax0lt1'; $)

  $( ` 1 ` is an identity element for real multiplication.  Axiom for real and
     complex numbers, justified by theorem ~ ax1rid .  (Contributed by NM,
     29-Jan-1995.) $)
  ax-1rid $a |- ( A e. RR -> ( A x. 1 ) = A ) $.
  $( $j restatement 'ax-1rid' of 'ax1rid'; $)

  $( ` 0 ` is an identity element for real addition.  Axiom for real and
     complex numbers, justified by theorem ~ ax0id .

     Proofs should normally use ~ addid1 instead.  (New usage is discouraged.)
     (Contributed by Jim Kingdon, 16-Jan-2020.) $)
  ax-0id $a |- ( A e. CC -> ( A + 0 ) = A ) $.
  $( $j restatement 'ax-0id' of 'ax0id'; $)

  ${
    $d x A $.
    $( Existence of negative of real number.  Axiom for real and complex
       numbers, justified by theorem ~ axrnegex .  (Contributed by Eric
       Schmidt, 21-May-2007.) $)
    ax-rnegex $a |- ( A e. RR -> E. x e. RR ( A + x ) = 0 ) $.
    $( $j restatement 'ax-rnegex' of 'axrnegex'; $)
  $}

  ${
    $d x A $.
    $( Existence of reciprocal of positive real number.  Axiom for real and
       complex numbers, justified by theorem ~ axprecex .  (Contributed by Jim
       Kingdon, 6-Feb-2020.) $)
    ax-precex $a |- ( ( A e. RR /\ 0 <RR A ) ->
        E. x e. RR ( 0 <RR x /\ ( A x. x ) = 1 ) ) $.
    $( $j restatement 'ax-precex' of 'axprecex'; $)
  $}

  ${
    $d x y A $.
    $( A complex number can be expressed in terms of two reals.  Definition
       10-1.1(v) of [Gleason] p. 130.  Axiom for real and complex numbers,
       justified by theorem ~ axcnre .  For naming consistency, use ~ cnre for
       new proofs.  (New usage is discouraged.)  (Contributed by NM,
       9-May-1999.) $)
    ax-cnre $a |- ( A e. CC ->
                      E. x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $.
    $( $j restatement 'ax-cnre' of 'axcnre'; $)
  $}

  $( Real number less-than is irreflexive.  Axiom for real and complex numbers,
     justified by theorem ~ ax-pre-ltirr .  (Contributed by Jim Kingdon,
     12-Jan-2020.) $)
  ax-pre-ltirr $a |- ( A e. RR -> -. A <RR A ) $.
  $( $j restatement 'ax-pre-ltirr' of 'axpre-ltirr'; $)

  $( Real number less-than is weakly linear.  Axiom for real and complex
     numbers, justified by theorem ~ axpre-ltwlin .  (Contributed by Jim
     Kingdon, 12-Jan-2020.) $)
  ax-pre-ltwlin $a |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
    ( A <RR B -> ( A <RR C \/ C <RR B ) ) ) $.
  $( $j restatement 'ax-pre-ltwlin' of 'axpre-ltwlin'; $)

  $( Ordering on reals is transitive.  Axiom for real and complex numbers,
     justified by theorem ~ axpre-lttrn .  (Contributed by NM, 13-Oct-2005.) $)
  ax-pre-lttrn $a |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A <RR B /\ B <RR C ) -> A <RR C ) ) $.
  $( $j restatement 'ax-pre-lttrn' of 'axpre-lttrn'; $)

  $( Apartness of reals is tight.  Axiom for real and complex numbers,
     justified by theorem ~ axpre-apti .  (Contributed by Jim Kingdon,
     29-Jan-2020.) $)
  ax-pre-apti $a |- ( ( A e. RR /\ B e. RR /\ -. ( A <RR B \/ B <RR A ) ) ->
    A = B ) $.
  $( $j restatement 'ax-pre-apti' of 'axpre-apti'; $)

  $( Ordering property of addition on reals.  Axiom for real and complex
     numbers, justified by theorem ~ axpre-ltadd .  (Contributed by NM,
     13-Oct-2005.) $)
  ax-pre-ltadd $a |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <RR B -> ( C + A ) <RR ( C + B ) ) ) $.
  $( $j restatement 'ax-pre-ltadd' of 'axpre-ltadd'; $)

  $( The product of two positive reals is positive.  Axiom for real and complex
     numbers, justified by theorem ~ axpre-mulgt0 .  (Contributed by NM,
     13-Oct-2005.) $)
  ax-pre-mulgt0 $a |- ( ( A e. RR /\ B e. RR ) ->
                ( ( 0 <RR A /\ 0 <RR B ) -> 0 <RR ( A x. B ) ) ) $.
  $( $j restatement 'ax-pre-mulgt0' of 'axpre-mulgt0'; $)

  $( Strong extensionality of multiplication (expressed in terms of ` <RR ` ).
     Axiom for real and complex numbers, justified by theorem ~ axpre-mulext

     (Contributed by Jim Kingdon, 18-Feb-2020.) $)
  ax-pre-mulext $a |- ( ( A e. RR /\ B e. RR /\ C e. RR )
      -> ( ( A x. C ) <RR ( B x. C ) -> ( A <RR B \/ B <RR A ) ) ) $.
  $( $j restatement 'ax-pre-mulext' of 'axpre-mulext'; $)

  ${
    $d A n x y $.

    $( Archimedean axiom.  Definition 3.1(2) of [Geuvers], p. 9.  Axiom for
       real and complex numbers, justified by theorem ~ axarch .

       This axiom should not be used directly; instead use ~ arch (which is the
       same, but stated in terms of ` NN ` and ` < ` ).  (Contributed by Jim
       Kingdon, 2-May-2020.)  (New usage is discouraged.) $)
    ax-arch $a |- ( A e. RR -> E. n e.
        |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } A <RR n ) $.
    $( $j restatement 'ax-arch' of 'axarch'; $)
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
           Derive the basic properties from the field axioms
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Some deductions from the field axioms for complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Alias for ~ ax-cnex .  (Contributed by Mario Carneiro, 17-Nov-2014.) $)
  cnex $p |- CC e. _V $=
    ( ax-cnex ) A $.

  $( Alias for ~ ax-addcl , for naming consistency with ~ addcli .  Use this
     theorem instead of ~ ax-addcl or ~ axaddcl .  (Contributed by NM,
     10-Mar-2008.) $)
  addcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) e. CC ) $=
    ( ax-addcl ) ABC $.

  $( Alias for ~ ax-addrcl , for naming consistency with ~ readdcli .
     (Contributed by NM, 10-Mar-2008.) $)
  readdcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A + B ) e. RR ) $=
    ( ax-addrcl ) ABC $.

  $( Alias for ~ ax-mulcl , for naming consistency with ~ mulcli .
     (Contributed by NM, 10-Mar-2008.) $)
  mulcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) e. CC ) $=
    ( ax-mulcl ) ABC $.

  $( Alias for ~ ax-mulrcl , for naming consistency with ~ remulcli .
     (Contributed by NM, 10-Mar-2008.) $)
  remulcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A x. B ) e. RR ) $=
    ( ax-mulrcl ) ABC $.

  $( Alias for ~ ax-mulcom , for naming consistency with ~ mulcomi .
     (Contributed by NM, 10-Mar-2008.) $)
  mulcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) = ( B x. A ) ) $=
    ( ax-mulcom ) ABC $.

  $( Alias for ~ ax-addass , for naming consistency with ~ addassi .
     (Contributed by NM, 10-Mar-2008.) $)
  addass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $=
    ( ax-addass ) ABCD $.

  $( Alias for ~ ax-mulass , for naming consistency with ~ mulassi .
     (Contributed by NM, 10-Mar-2008.) $)
  mulass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $=
    ( ax-mulass ) ABCD $.

  $( Alias for ~ ax-distr , for naming consistency with ~ adddii .
     (Contributed by NM, 10-Mar-2008.) $)
  adddi $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $=
    ( ax-distr ) ABCD $.

  $( A real number is a complex number.  (Contributed by NM, 10-Aug-1999.) $)
  recn $p |- ( A e. RR -> A e. CC ) $=
    ( cr cc ax-resscn sseli ) BCADE $.

  $( The real numbers form a set.  (Contributed by Mario Carneiro,
     17-Nov-2014.) $)
  reex $p |- RR e. _V $=
    ( cr cc cnex ax-resscn ssexi ) ABCDE $.

  $( Reals are a subset of the pair of real and complex numbers (common case).
     (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  reelprrecn $p |- RR e. { RR , CC } $=
    ( cr cc reex prid1 ) ABCD $.

  $( Complex numbers are a subset of the pair of real and complex numbers
     (common case).  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  cnelprrecn $p |- CC e. { RR , CC } $=
    ( cr cc cnex prid2 ) ABCD $.

  $( Distributive law for complex numbers (right-distributivity).  (Contributed
     by NM, 10-Oct-2004.) $)
  adddir $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
              ( ( A + B ) x. C ) = ( ( A x. C ) + ( B x. C ) ) ) $=
    ( cc wcel w3a caddc co cmul adddi 3coml wa addcl mulcom sylan 3impa 3adant2
    wceq 3adant1 oveq12d 3eqtr4d ) ADEZBDEZCDEZFZCABGHZIHZCAIHZCBIHZGHZUFCIHZAC
    IHZBCIHZGHUDUBUCUGUJRCABJKUBUCUDUKUGRZUBUCLUFDEUDUNABMUFCNOPUEULUHUMUIGUBUD
    ULUHRUCACNQUCUDUMUIRUBBCNSTUA $.

  $( 0 is a complex number.  (Contributed by NM, 19-Feb-2005.) $)
  0cn $p |- 0 e. CC $=
    ( ci cmul co c1 caddc cc0 cc ax-i2m1 wcel ax-icn mulcl mp2an addcl eqeltrri
    ax-1cn ) AABCZDECZFGHPGIZDGIQGIAGIZSRJJAAKLOPDMLN $.

  $( 0 is a complex number, deductive form.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  0cnd $p |- ( ph -> 0 e. CC ) $=
    ( cc0 cc wcel 0cn a1i ) BCDAEF $.

  $( 0 is a set (common case).  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  c0ex $p |- 0 e. _V $=
    ( cc0 cc 0cn elexi ) ABCD $.

  $( 1 is a set.  Common special case.  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  1ex $p |- 1 e. _V $=
    ( c1 cc ax-1cn elexi ) ABCD $.

  ${
    $d A x y $.
    $( Alias for ~ ax-cnre , for naming consistency.  (Contributed by NM,
       3-Jan-2013.) $)
    cnre $p |- ( A e. CC -> E. x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $=
      ( ax-cnre ) ABCD $.
  $}

  ${
    $d A x y $.
    $( ` 1 ` is an identity element for multiplication.  Based on ideas by Eric
       Schmidt.  (Contributed by Scott Fenton, 3-Jan-2013.) $)
    mulid1 $p |- ( A e. CC -> ( A x. 1 ) = A ) $=
      ( vx vy cc wcel cv ci cmul co caddc wceq cr wrex c1 ax-icn ax-1cn ax-1rid
      recn syl eqtrd cnre wa sylancr adddir mp3an3 syl2an mulass mp3an13 oveq2d
      mulcl oveqan12d oveq1 id eqeq12d syl5ibrcom rexlimivv ) ADEABFZGCFZHIZJIZ
      KZCLMBLMANHIZAKZBCAUAVAVCBCLLUQLEZURLEZUBZVCVAUTNHIZUTKVFVGUQNHIZUSNHIZJI
      ZUTVDUQDEZUSDEZVGVJKZVEUQRVEGDEZURDEZVLOURRZGURUJUCVKVLNDEZVMPUQUSNUDUEUF
      VDVEVHUQVIUSJUQQVEVIGURNHIZHIZUSVEVOVIVSKZVPVNVOVQVTOPGURNUGUHSVEVRURGHUR
      QUITUKTVAVBVGAUTAUTNHULVAUMUNUOUPS $.
  $}

  $( Identity law for multiplication.  Note: see ~ mulid1 for commuted
     version.  (Contributed by NM, 8-Oct-1999.) $)
  mulid2 $p |- ( A e. CC -> ( 1 x. A ) = A ) $=
    ( cc wcel c1 cmul co wceq ax-1cn mulcom mpan mulid1 eqtrd ) ABCZDAEFZADEFZA
    DBCMNOGHDAIJAKL $.

  $( ` 1 ` is a real number.  (Contributed by Jim Kingdon, 13-Jan-2020.) $)
  1re $p |- 1 e. RR $=
    ( ax-1re ) A $.

  $( ` 0 ` is a real number.  (Contributed by Eric Schmidt, 21-May-2007.)
     (Revised by Scott Fenton, 3-Jan-2013.) $)
  0re $p |- 0 e. RR $=
    ( vx c1 cr wcel cv caddc cc0 wceq wrex 1re ax-rnegex readdcl mpan syl5ibcom
    co eleq1 rexlimiv mp2b ) BCDZBAEZFOZGHZACIGCDZJABKUBUCACTCDZUACDZUBUCSUDUEJ
    BTLMUAGCPNQR $.

  $( ` 0 ` is a real number, deductive form.  (Contributed by David A. Wheeler,
     6-Dec-2018.) $)
  0red $p |- ( ph -> 0 e. RR ) $=
    ( cc0 cr wcel 0re a1i ) BCDAEF $.

  ${
    axi.1 $e |- A e. CC $.
    $( Identity law for multiplication.  (Contributed by NM, 14-Feb-1995.) $)
    mulid1i $p |- ( A x. 1 ) = A $=
      ( cc wcel c1 cmul co wceq mulid1 ax-mp ) ACDAEFGAHBAIJ $.

    $( Identity law for multiplication.  (Contributed by NM, 14-Feb-1995.) $)
    mulid2i $p |- ( 1 x. A ) = A $=
      ( cc wcel c1 cmul co wceq mulid2 ax-mp ) ACDEAFGAHBAIJ $.

    axi.2 $e |- B e. CC $.
    $( Closure law for addition.  (Contributed by NM, 23-Nov-1994.) $)
    addcli $p |- ( A + B ) e. CC $=
      ( cc wcel caddc co addcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Closure law for multiplication.  (Contributed by NM, 23-Nov-1994.) $)
    mulcli $p |- ( A x. B ) e. CC $=
      ( cc wcel cmul co mulcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Commutative law for multiplication.  (Contributed by NM,
       23-Nov-1994.) $)
    mulcomi $p |- ( A x. B ) = ( B x. A ) $=
      ( cc wcel cmul co wceq mulcom mp2an ) AEFBEFABGHBAGHICDABJK $.

    ${
      mulcomli.3 $e |- ( A x. B ) = C $.
      $( Commutative law for multiplication.  (Contributed by NM,
         23-Nov-1994.) $)
      mulcomli $p |- ( B x. A ) = C $=
        ( cmul co mulcomi eqtri ) BAGHABGHCBAEDIFJ $.
    $}

    axi.3 $e |- C e. CC $.
    $( Associative law for addition.  (Contributed by NM, 23-Nov-1994.) $)
    addassi $p |- ( ( A + B ) + C ) = ( A + ( B + C ) ) $=
      ( cc wcel caddc co wceq addass mp3an ) AGHBGHCGHABIJCIJABCIJIJKDEFABCLM
      $.

    $( Associative law for multiplication.  (Contributed by NM,
       23-Nov-1994.) $)
    mulassi $p |- ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) $=
      ( cc wcel cmul co wceq mulass mp3an ) AGHBGHCGHABIJCIJABCIJIJKDEFABCLM $.

    $( Distributive law (left-distributivity).  (Contributed by NM,
       23-Nov-1994.) $)
    adddii $p |- ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) $=
      ( cc wcel caddc co cmul wceq adddi mp3an ) AGHBGHCGHABCIJKJABKJACKJIJLDEF
      ABCMN $.

    $( Distributive law (right-distributivity).  (Contributed by NM,
       16-Feb-1995.) $)
    adddiri $p |- ( ( A + B ) x. C ) = ( ( A x. C ) + ( B x. C ) ) $=
      ( cc wcel caddc co cmul wceq adddir mp3an ) AGHBGHCGHABIJCKJACKJBCKJIJLDE
      FABCMN $.
  $}

  ${
    recni.1 $e |- A e. RR $.
    $( A real number is a complex number.  (Contributed by NM, 1-Mar-1995.) $)
    recni $p |- A e. CC $=
      ( cr cc ax-resscn sselii ) CDAEBF $.

    axri.2 $e |- B e. RR $.
    $( Closure law for addition of reals.  (Contributed by NM, 17-Jan-1997.) $)
    readdcli $p |- ( A + B ) e. RR $=
      ( cr wcel caddc co readdcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Closure law for multiplication of reals.  (Contributed by NM,
       17-Jan-1997.) $)
    remulcli $p |- ( A x. B ) e. RR $=
      ( cr wcel cmul co remulcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( 1 is an real number, deductive form (common case).  (Contributed by David
     A. Wheeler, 6-Dec-2018.) $)
  1red $p |- ( ph -> 1 e. RR ) $=
    ( c1 cr wcel 1re a1i ) BCDAEF $.

  $( 1 is a complex number, deductive form (common case).  (Contributed by
     David A. Wheeler, 6-Dec-2018.) $)
  1cnd $p |- ( ph -> 1 e. CC ) $=
    ( c1 cc wcel ax-1cn a1i ) BCDAEF $.

  ${
    addcld.1 $e |- ( ph -> A e. CC ) $.
    $( Identity law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulid1d $p |- ( ph -> ( A x. 1 ) = A ) $=
      ( cc wcel c1 cmul co wceq mulid1 syl ) ABDEBFGHBICBJK $.

    $( Identity law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulid2d $p |- ( ph -> ( 1 x. A ) = A ) $=
      ( cc wcel c1 cmul co wceq mulid2 syl ) ABDEFBGHBICBJK $.

    addcld.2 $e |- ( ph -> B e. CC ) $.
    $( Closure law for addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addcld $p |- ( ph -> ( A + B ) e. CC ) $=
      ( cc wcel caddc co addcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulcld $p |- ( ph -> ( A x. B ) e. CC ) $=
      ( cc wcel cmul co mulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Commutative law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulcomd $p |- ( ph -> ( A x. B ) = ( B x. A ) ) $=
      ( cc wcel cmul co wceq mulcom syl2anc ) ABFGCFGBCHICBHIJDEBCKL $.

    addassd.3 $e |- ( ph -> C e. CC ) $.
    $( Associative law for addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addassd $p |- ( ph -> ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $=
      ( cc wcel caddc co wceq addass syl3anc ) ABHICHIDHIBCJKDJKBCDJKJKLEFGBCDM
      N $.

    $( Associative law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulassd $p |- ( ph -> ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $=
      ( cc wcel cmul co wceq mulass syl3anc ) ABHICHIDHIBCJKDJKBCDJKJKLEFGBCDMN
      $.

    $( Distributive law (left-distributivity).  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    adddid $p |- ( ph -> ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $=
      ( cc wcel caddc co cmul wceq adddi syl3anc ) ABHICHIDHIBCDJKLKBCLKBDLKJKM
      EFGBCDNO $.

    $( Distributive law (right-distributivity).  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    adddird $p |- ( ph -> ( ( A + B ) x. C ) = ( ( A x. C ) + ( B x. C ) ) ) $=
      ( cc wcel caddc co cmul wceq adddir syl3anc ) ABHICHIDHIBCJKDLKBDLKCDLKJK
      MEFGBCDNO $.
  $}

  ${
    recnd.1 $e |- ( ph -> A e. RR ) $.
    $( Deduction from real number to complex number.  (Contributed by NM,
       26-Oct-1999.) $)
    recnd $p |- ( ph -> A e. CC ) $=
      ( cr wcel cc recn syl ) ABDEBFECBGH $.

    readdcld.2 $e |- ( ph -> B e. RR ) $.
    $( Closure law for addition of reals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    readdcld $p |- ( ph -> ( A + B ) e. RR ) $=
      ( cr wcel caddc co readdcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for multiplication of reals.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    remulcld $p |- ( ph -> ( A x. B ) e. RR ) $=
      ( cr wcel cmul co remulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           Infinity and the extended real number system
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c <_ $. $( 'Less than or equal to' relation. $)
  $c +oo $. $( Plus infinity $)
  $c -oo $. $( Minus infinity $)
  $c RR* $. $( The set of extended reals $)
  $c < $. $( 'Less than' relation (over extended reals) $)

  $( Plus infinity. $)
  cpnf $a class +oo $.
  $( Minus infinity. $)
  cmnf $a class -oo $.
  $( The set of extended reals (includes plus and minus infinity). $)
  cxr $a class RR* $.
  $( 'Less than' predicate (extended to include the extended reals). $)
  clt $a class < $.
  $( Extend wff notation to include the 'less than or equal to' relation. $)
  cle $a class <_ $.

  $( Define plus infinity.  Note that the definition is arbitrary, requiring
     only that ` +oo ` be a set not in ` RR ` and different from ` -oo `
     ( ~ df-mnf ).  We use ` ~P U. CC ` to make it independent of the
     construction of ` CC ` , and Cantor's Theorem will show that it is
     different from any member of ` CC ` and therefore ` RR ` .  See ~ pnfnre
     and ~ mnfnre , and we'll also be able to prove ` +oo =/= -oo ` .

     A simpler possibility is to define ` +oo ` as ` CC ` and ` -oo ` as
     ` { CC } ` , but that approach requires the Axiom of Regularity to show
     that ` +oo ` and ` -oo ` are different from each other and from all
     members of ` RR ` .  (Contributed by NM, 13-Oct-2005.)
     (New usage is discouraged.) $)
  df-pnf $a |- +oo = ~P U. CC $.

  $( Define minus infinity as the power set of plus infinity.  Note that the
     definition is arbitrary, requiring only that ` -oo ` be a set not in
     ` RR ` and different from ` +oo ` (see ~ mnfnre ).  (Contributed by NM,
     13-Oct-2005.)  (New usage is discouraged.) $)
  df-mnf $a |- -oo = ~P +oo $.

  $( Define the set of extended reals that includes plus and minus infinity.
     Definition 12-3.1 of [Gleason] p. 173.  (Contributed by NM,
     13-Oct-2005.) $)
  df-xr $a |- RR* = ( RR u. { +oo , -oo } ) $.

  ${
    $d x y $.
    $( Define 'less than' on the set of extended reals.  Definition 12-3.1 of
       [Gleason] p. 173.  Note that in our postulates for complex numbers,
       ` <RR ` is primitive and not necessarily a relation on ` RR ` .
       (Contributed by NM, 13-Oct-2005.) $)
    df-ltxr $a |- < = ( { <. x , y >. | ( x e. RR /\ y e. RR /\ x <RR y ) }
      u. ( ( ( RR u. { -oo } ) X. { +oo } ) u. ( { -oo } X. RR ) ) ) $.
  $}

  $( Define 'less than or equal to' on the extended real subset of complex
     numbers.  (Contributed by NM, 13-Oct-2005.) $)
  df-le $a |- <_ = ( ( RR* X. RR* ) \ `' < ) $.

  $( Plus infinity is not a real number.  (Contributed by NM, 13-Oct-2005.) $)
  pnfnre $p |- +oo e/ RR $=
    ( cpnf cr wcel cc cuni cpw cvv wn uniex pwuninel2 ax-mp df-pnf eleq1i mtbir
    cnex recn mto nelir ) ABABCADCZSDEZFZDCZTGCUBHDOIDGJKAUADLMNAPQR $.

  $( Minus infinity is not a real number.  (Contributed by NM, 13-Oct-2005.) $)
  mnfnre $p |- -oo e/ RR $=
    ( cmnf cr wcel cc cuni cpw cvv wn cnex 2pwuninelg ax-mp df-mnf df-pnf pweqi
    cpnf eqtri eleq1i mtbir recn mto nelir ) ABABCADCZUBDEFZFZDCZDGCUEHIDGJKAUD
    DAOFUDLOUCMNPQRASTUA $.

  $( The standard reals are a subset of the extended reals.  (Contributed by
     NM, 14-Oct-2005.) $)
  ressxr $p |- RR C_ RR* $=
    ( cr cpnf cmnf cpr cun cxr ssun1 df-xr sseqtr4i ) AABCDZEFAJGHI $.

  $( The Cartesian product of standard reals are a subset of the Cartesian
     product of extended reals (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  rexpssxrxp $p |- ( RR X. RR ) C_ ( RR* X. RR* ) $=
    ( cr cxr wss cxp ressxr xpss12 mp2an ) ABCZHAADBBDCEEABABFG $.

  $( A standard real is an extended real.  (Contributed by NM, 14-Oct-2005.) $)
  rexr $p |- ( A e. RR -> A e. RR* ) $=
    ( cr cxr ressxr sseli ) BCADE $.

  $( Zero is an extended real.  (Contributed by Mario Carneiro,
     15-Jun-2014.) $)
  0xr $p |- 0 e. RR* $=
    ( cr cxr cc0 ressxr 0re sselii ) ABCDEF $.

  $( No (finite) real equals plus infinity.  (Contributed by NM, 14-Oct-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  renepnf $p |- ( A e. RR -> A =/= +oo ) $=
    ( cr wcel cpnf wceq pnfnre neli eleq1 mtbiri necon2ai ) ABCZADADEKDBCDBFGAD
    BHIJ $.

  $( No real equals minus infinity.  (Contributed by NM, 14-Oct-2005.)  (Proof
     shortened by Andrew Salmon, 19-Nov-2011.) $)
  renemnf $p |- ( A e. RR -> A =/= -oo ) $=
    ( cr wcel cmnf wceq mnfnre neli eleq1 mtbiri necon2ai ) ABCZADADEKDBCDBFGAD
    BHIJ $.

  ${
    rexrd.1 $e |- ( ph -> A e. RR ) $.
    $( A standard real is an extended real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rexrd $p |- ( ph -> A e. RR* ) $=
      ( cr cxr ressxr sseldi ) ADEBFCG $.

    $( No (finite) real equals plus infinity.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    renepnfd $p |- ( ph -> A =/= +oo ) $=
      ( cr wcel cpnf wne renepnf syl ) ABDEBFGCBHI $.

    $( No real equals minus infinity.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    renemnfd $p |- ( ph -> A =/= -oo ) $=
      ( cr wcel cmnf wne renemnf syl ) ABDEBFGCBHI $.
  $}

  ${
    rexri.1 $e |- A e. RR $.
    $( A standard real is an extended real (inference form.)  (Contributed by
       David Moews, 28-Feb-2017.) $)
    rexri $p |- A e. RR* $=
      ( cr wcel cxr rexr ax-mp ) ACDAEDBAFG $.
  $}

  $( The reals and the infinities are disjoint.  (Contributed by NM,
     25-Oct-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  renfdisj $p |- ( RR i^i { +oo , -oo } ) = (/) $=
    ( vx cr cpnf cmnf cpr cin c0 wceq cv wcel wn disj vex elpr renepnf necon2bi
    wo renemnf jaoi sylbi con2i mprgbir ) BCDEZFGHAIZUCJZKABABUCLUEUDBJZUEUDCHZ
    UDDHZQUFKZUDCDAMNUGUIUHUFUDCUDOPUFUDDUDRPSTUAUB $.

  ${
    $d x y $.
    $( 'Less than' is a relation on extended reals.  (Contributed by Mario
       Carneiro, 28-Apr-2015.) $)
    ltrelxr $p |- < C_ ( RR* X. RR* ) $=
      ( vx vy cv cr wcel copab cmnf csn cun cxp cxr wa eqsstri sstri wss ressxr
      cpnf unssi xpss12 mp2an clt cltrr wbr w3a df-ltxr df-3an opabbii opabssxp
      rexpssxrxp cpr snsspr2 ssun2 df-xr sseqtr4i snsspr1 ) UAACZDEZBCZDEZUPURU
      BUCZUDZABFZDGHZIZQHZJZVCDJZIZIKKJZABUEVBVHVIVBDDJZVIVBUQUSLUTLZABFVJVAVKA
      BUQUSUTUFUGUTABDDUHMUINVFVGVIVDKOVEKOVFVIODVCKPVCQGUJZKQGUKVLDVLIKVLDULUM
      UNZNZRVEVLKQGUOVMNVDKVEKSTVCKODKOVGVIOVNPVCKDKSTRRM $.
  $}

  $( 'Less than' is a relation.  (Contributed by NM, 14-Oct-2005.) $)
  ltrel $p |- Rel < $=
    ( clt cxr cxp wss wrel ltrelxr relxp relss mp2 ) ABBCZDJEAEFBBGAJHI $.

  $( 'Less than or equal' is a relation on extended reals.  (Contributed by
     Mario Carneiro, 28-Apr-2015.) $)
  lerelxr $p |- <_ C_ ( RR* X. RR* ) $=
    ( cle cxr cxp clt ccnv cdif df-le difss eqsstri ) ABBCZDEZFJGJKHI $.

  $( 'Less or equal to' is a relation.  (Contributed by FL, 2-Aug-2009.)
     (Revised by Mario Carneiro, 28-Apr-2015.) $)
  lerel $p |- Rel <_ $=
    ( cle cxr cxp wss wrel lerelxr relxp relss mp2 ) ABBCZDJEAEFBBGAJHI $.

  $( 'Less than or equal to' expressed in terms of 'less than', for extended
     reals.  (Contributed by NM, 14-Oct-2005.) $)
  xrlenlt $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A <_ B <-> -. B < A ) ) $=
    ( cxr wcel wa cle wbr cop clt ccnv wn df-br cxp wb opelxpi cdif df-le eldif
    eleq2i bitri baib syl syl5bb opelcnvg syl6rbbr notbid bitr4d ) ACDBCDEZABFG
    ZABHZIJZDZKZBAIGZKUIUJFDZUHUMABFLUHUJCCMZDZUOUMNABCCOUOUQUMUOUJUPUKPZDUQUME
    FURUJQSUJUPUKRTUAUBUCUHUNULUHULBAHIDUNABCCIUDBAILUEUFUG $.

  ${
    $d x y A $.  $d x y B $.
    $( The standard less-than ` <RR ` and the extended real less-than ` < ` are
       identical when restricted to the non-extended reals ` RR ` .
       (Contributed by NM, 13-Oct-2005.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    ltxrlt $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B <-> A <RR B ) ) $=
      ( vx vy cr wcel clt wbr cltrr cv w3a cmnf csn cun cpnf cxp wo brun wceq
      wi wa copab df-ltxr breqi bitri eleq1 breq1 3anbi13d breq2 3anbi23d brabg
      eqid simp3 syl6bi brxp simprbi elsni syl a1i renepnf neneqd pm2.24 syl6ci
      adantl simplbi renemnf adantr jaod syl5bi 3adant3 ibir orcd sylibr 3expia
      wn wb impbid ) AEFZBEFZUAZABGHZABIHZWAABCJZEFZDJZEFZWCWEIHZKZCDUBZHZABELM
      ZNZOMZPZWKEPZNZHZQZVTWBWAABWIWPNZHWRABGWSCDUCUDABWIWPRUEZVTWJWBWQVTWJVRVS
      WBKZWBWHVRWFAWEIHZKXACDABEEWIWCASWDVRWGXBWFWCAEUFWCAWEIUGUHWEBSWFVSXBWBVR
      WEBEUFWEBAIUIUJWIULUKZVRVSWBUMUNWQABWNHZABWOHZQVTWBABWNWORVTXDWBXEVSXDWBT
      VRVSXDBOSZXFVOWBXDXFTVSXDBWMFZXFXDAWLFXGABWLWMUOUPBOUQURUSVSBOBUTVAXFWBVB
      VCVDVRXEWBTVSVRXEALSZXHVOWBXEXHTVRXEAWKFZXHXEXIVSABWKEUOVEALUQURUSVRALAVF
      VAXHWBVBVCVGVHVIVHVIVRVSWBWAXAWRWAXAWJWQXAWJVRVSWJXAVPWBXCVJVKVLWTVMVNVQ
      $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      Restate the ordering postulates with extended real "less than"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Real number less-than is irreflexive.  Axiom for real and complex numbers,
     derived from set theory.  This restates ~ ax-pre-ltirr with ordering on
     the extended reals.  New proofs should use ~ ltnr instead for naming
     consistency.  (New usage is discouraged.)  (Contributed by Jim Kingdon,
     15-Jan-2020.) $)
  axltirr $p |- ( A e. RR -> -. A < A ) $=
    ( cr wcel clt wbr cltrr ax-pre-ltirr wb ltxrlt anidms mtbird ) ABCZAADEZAAF
    EZAGLMNHAAIJK $.

  $( Real number less-than is weakly linear.  Axiom for real and complex
     numbers, derived from set theory.  This restates ~ ax-pre-ltwlin with
     ordering on the extended reals.  (Contributed by Jim Kingdon,
     15-Jan-2020.) $)
  axltwlin $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A < B -> ( A < C \/ C < B ) ) ) $=
    ( cr wcel w3a cltrr wbr wo clt ax-pre-ltwlin ltxrlt 3adant3 3adant2 3adant1
    wb ancoms orbi12d 3imtr4d ) ADEZBDEZCDEZFZABGHZACGHZCBGHZIABJHZACJHZCBJHZIA
    BCKTUAUGUDPUBABLMUCUHUEUIUFTUBUHUEPUAACLNUAUBUIUFPZTUBUAUJCBLQORS $.

  $( Ordering on reals is transitive.  Axiom for real and complex numbers,
     derived from set theory.  This restates ~ ax-pre-lttrn with ordering on
     the extended reals.  New proofs should use ~ lttr instead for naming
     consistency.  (New usage is discouraged.)  (Contributed by NM,
     13-Oct-2005.) $)
  axlttrn $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A < B /\ B < C ) -> A < C ) ) $=
    ( cr wcel w3a cltrr wbr wa clt ax-pre-lttrn 3adant3 3adant1 anbi12d 3adant2
    wb ltxrlt 3imtr4d ) ADEZBDEZCDEZFZABGHZBCGHZIACGHZABJHZBCJHZIACJHZABCKUBUFU
    CUGUDSTUFUCPUAABQLTUAUGUDPSBCQMNSUAUHUEPTACQOR $.

  $( Ordering property of addition on reals.  Axiom for real and complex
     numbers, derived from set theory.  (This restates ~ ax-pre-ltadd with
     ordering on the extended reals.)  (Contributed by NM, 13-Oct-2005.) $)
  axltadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B -> ( C + A ) < ( C + B ) ) ) $=
    ( cr wcel w3a cltrr wbr caddc co clt ax-pre-ltadd wb ltxrlt 3adant3 readdcl
    wa syl2an 3impdi 3coml 3imtr4d ) ADEZBDEZCDEZFABGHZCAIJZCBIJZGHZABKHZUFUGKH
    ZABCLUBUCUIUEMUDABNOUDUBUCUJUHMZUDUBUCUKUDUBQUFDEUGDEUKUDUCQCAPCBPUFUGNRSTU
    A $.

  $( Apartness of reals is tight.  Axiom for real and complex numbers, derived
     from set theory.  (This restates ~ ax-pre-apti with ordering on the
     extended reals.)  (Contributed by Jim Kingdon, 29-Jan-2020.) $)
  axapti $p |- ( ( A e. RR /\ B e. RR /\ -. ( A < B \/ B < A ) ) -> A = B ) $=
    ( cr wcel clt wbr wo wn wceq cltrr ltxrlt ancoms orbi12d notbid ax-pre-apti
    wa wb 3expia sylbid 3impia ) ACDZBCDZABEFZBAEFZGZHZABIZUAUBPZUFABJFZBAJFZGZ
    HZUGUHUEUKUHUCUIUDUJABKUBUAUDUJQBAKLMNUAUBULUGABORST $.

  $( The product of two positive reals is positive.  Axiom for real and complex
     numbers, derived from set theory.  (This restates ~ ax-pre-mulgt0 with
     ordering on the extended reals.)  (Contributed by NM, 13-Oct-2005.) $)
  axmulgt0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( ( 0 < A /\ 0 < B ) -> 0 < ( A x. B ) ) ) $=
    ( cr wcel wa cc0 cltrr wbr cmul co clt ax-pre-mulgt0 wb 0re ltxrlt bi2anan9
    mpan remulcl sylancr 3imtr4d ) ACDZBCDZEZFAGHZFBGHZEFABIJZGHZFAKHZFBKHZEFUF
    KHZABLUAUHUDUBUIUEFCDZUAUHUDMNFAOQUKUBUIUEMNFBOQPUCUKUFCDUJUGMNABRFUFOST $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Ordering on reals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Alias for ~ axlttrn , for naming consistency with ~ lttri .  New proofs
     should generally use this instead of ~ ax-pre-lttrn .  (Contributed by NM,
     10-Mar-2008.) $)
  lttr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A < B /\ B < C ) -> A < C ) ) $=
    ( axlttrn ) ABCD $.

  $( The product of two positive numbers is positive.  (Contributed by NM,
     10-Mar-2008.) $)
  mulgt0 $p |- ( ( ( A e. RR /\ 0 < A ) /\
                ( B e. RR /\ 0 < B ) ) -> 0 < ( A x. B ) ) $=
    ( cr wcel cc0 clt wbr cmul co wa axmulgt0 imp an4s ) ACDZBCDZEAFGZEBFGZEABH
    IFGZNOJPQJRABKLM $.

  $( 'Less than or equal to' expressed in terms of 'less than'.  Part of
     definition 11.2.7(vi) of [HoTT], p.  (varies).  (Contributed by NM,
     13-May-1999.) $)
  lenlt $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ B <-> -. B < A ) ) $=
    ( cr wcel cxr cle wbr clt wn wb rexr xrlenlt syl2an ) ACDAEDBEDABFGBAHGIJBC
    DAKBKABLM $.

  $( 'Less than' is irreflexive.  (Contributed by NM, 18-Aug-1999.) $)
  ltnr $p |- ( A e. RR -> -. A < A ) $=
    ( axltirr ) AB $.

  ${
    $d x y z $.
    $( 'Less than' is a strict ordering.  (Contributed by NM, 19-Jan-1997.) $)
    ltso $p |- < Or RR $=
      ( vx vy vz cr clt wor wpo cv wbr wo wi wral wtru wcel wn ltnr adantl lttr
      w3a wa ispod trud axltwlin rgen3 df-iso mpbir2an ) DEFDEGZAHZBHZEIZUHCHZE
      IZUKUIEIJKZCDLBDLADLUGMABCDEUHDNZUHUHEIOMUHPQUNUIDNUKDNSUJUIUKEITULKMUHUI
      UKRQUAUBUMABCDDDUHUIUKUCUDABCDEUEUF $.
  $}

  $( 'Greater than' is a strict ordering.  (Contributed by JJ, 11-Oct-2018.) $)
  gtso $p |- `' < Or RR $=
    ( vx cr clt wor ccnv ltso cc0 wcel cv wex wb 0re elex2 cnvsom mp2b mpbi ) B
    CDZBCEDZFGBHAIBHAJQRKLAGBMABCNOP $.

  $( Tightness of real apartness.  (Contributed by NM, 5-May-1999.) $)
  lttri3 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
    ( cr wcel wa wceq clt wbr wn wi ltnr breq2 notbid syl5ibcom breq1 adantr wo
    jcad ioran axapti 3expia syl5bir impbid ) ACDZBCDZEZABFZABGHZIZBAGHZIZEZUDU
    GULJUEUDUGUIUKUDAAGHZIZUGUIAKZUGUMUHABAGLMNUDUNUGUKUOUGUMUJABAGOMNRPULUHUJQ
    IZUFUGUHUJSUDUEUPUGABTUAUBUC $.

  $( Tightness of real apartness.  (Contributed by NM, 14-May-1999.) $)
  letri3 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A = B <-> ( A <_ B /\ B <_ A ) ) ) $=
    ( cr wcel wa wceq clt wbr wn cle lttri3 ancom syl6bbr ancoms anbi12d bitr4d
    lenlt wb ) ACDZBCDZEZABFZBAGHIZABGHIZEZABJHZBAJHZEUAUBUDUCEUEABKUCUDLMUAUFU
    CUGUDABQTSUGUDRBAQNOP $.

  $( Transitive law, weaker form of ` ( A < B /\ B <_ C ) -> A < C ` .
     (Contributed by AV, 14-Oct-2018.) $)
  ltleletr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A < B /\ B <_ C ) -> A <_ C ) ) $=
    ( cr wcel w3a clt wbr cle wn wi wa lttr 3coml expcomd con3 wb lenlt 3adant1
    syl6 3adant2 imbi12d sylibrd impd ) ADEZBDEZCDEZFZABGHZBCIHZACIHZUHUICBGHZJ
    ZCAGHZJZKZUJUKKUHUIUNULKUPUHUNUIULUGUEUFUNUILULKCABMNOUNULPTUHUJUMUKUOUFUGU
    JUMQUEBCRSUEUGUKUOQUFACRUAUBUCUD $.

  $( Transitive law.  (Contributed by NM, 12-Nov-1999.) $)
  letr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A <_ B /\ B <_ C ) -> A <_ C ) ) $=
    ( cr w3a clt wbr wo wn cle wa wi axltwlin 3coml orcom syl6ib con3d wb lenlt
    wcel 3adant3 3adant1 anbi12d ioran syl6bbr 3adant2 3imtr4d ) ADTZBDTZCDTZEZ
    BAFGZCBFGZHZIZCAFGZIZABJGZBCJGZKZACJGZUKUPUNUKUPUMULHZUNUJUHUIUPVBLCABMNUMU
    LOPQUKUTULIZUMIZKUOUKURVCUSVDUHUIURVCRUJABSUAUIUJUSVDRUHBCSUBUCULUMUDUEUHUJ
    VAUQRUIACSUFUG $.

  $( 'Less than or equal to' is reflexive.  (Contributed by NM,
     18-Aug-1999.) $)
  leid $p |- ( A e. RR -> A <_ A ) $=
    ( cr wcel cle wbr clt wn ltnr wb lenlt anidms mpbird ) ABCZAADEZAAFEGZAHMNO
    IAAJKL $.

  $( 'Less than' implies not equal.  (Contributed by NM, 9-Oct-1999.)  (Revised
     by Mario Carneiro, 16-Sep-2015.) $)
  ltne $p |- ( ( A e. RR /\ A < B ) -> B =/= A ) $=
    ( cr wcel clt wbr wne wn wceq ltnr breq2 notbid syl5ibrcom necon2ad imp ) A
    CDZABEFZBAGPQBAPQHBAIZAAEFZHAJRQSBAAEKLMNO $.

  $( 'Less than' is not symmetric.  (Contributed by NM, 8-Jan-2002.) $)
  ltnsym $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B -> -. B < A ) ) $=
    ( cr wcel wa clt wbr wi wn lttr 3anidm13 expd ltnr adantr con3 syl6ci ) ACD
    ZBCDZEZABFGZBAFGZAAFGZHUBIZUAISTUAUBQRTUAEUBHABAJKLQUCRAMNUAUBOP $.

  $( 'Less than' implies 'less than or equal to'.  (Contributed by NM,
     25-Aug-1999.) $)
  ltle $p |- ( ( A e. RR /\ B e. RR ) ->
               ( A < B -> A <_ B ) ) $=
    ( cr wcel wa clt wbr wn cle ltnsym lenlt sylibrd ) ACDBCDEABFGBAFGHABIGABJA
    BKL $.

  $( Transitive law.  Part of Definition 11.2.7(vi) of [HoTT], p.  (varies).
     (Contributed by NM, 23-May-1999.) $)
  lelttr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A <_ B /\ B < C ) -> A < C ) ) $=
    ( cr wcel w3a cle wbr clt wa wn simprl wb simpl1 simpl2 lenlt syl2anc mpbid
    pm2.21d idd wo simprr wi simpl3 axltwlin syl3anc mpd mpjaod ex ) ADEZBDEZCD
    EZFZABGHZBCIHZJZACIHZUMUPJZBAIHZUQUQURUSUQURUNUSKZUMUNUOLURUJUKUNUTMUJUKULU
    PNZUJUKULUPOZABPQRSURUQTURUOUSUQUAZUMUNUOUBURUKULUJUOVCUCVBUJUKULUPUDVABCAU
    EUFUGUHUI $.

  $( Transitive law.  Part of Definition 11.2.7(vi) of [HoTT], p.  (varies).
     (Contributed by NM, 25-Aug-1999.) $)
  ltletr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A < B /\ B <_ C ) -> A < C ) ) $=
    ( cr wcel w3a clt wbr cle wa wn simprr wb simpl2 simpl3 lenlt syl2anc mpbid
    wo simprl wi axltwlin adantr mpd ecased ex ) ADEZBDEZCDEZFZABGHZBCIHZJZACGH
    ZUJUMJZUNCBGHZUOULUPKZUJUKULLUOUHUIULUQMUGUHUIUMNUGUHUIUMOBCPQRUOUKUNUPSZUJ
    UKULTUJUKURUAUMABCUBUCUDUEUF $.

  $( 'Less than' is antisymmetric and irreflexive.  (Contributed by NM,
     13-Aug-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  ltnsym2 $p |- ( ( A e. RR /\ B e. RR ) -> -. ( A < B /\ B < A ) ) $=
    ( cr clt wor wcel wa wbr wn ltso so2nr mpan ) CDEACFBCFGABDHBADHGIJCABDKL
    $.

  $( Equality implies 'less than or equal to'.  (Contributed by NM,
     4-Apr-2005.) $)
  eqle $p |- ( ( A e. RR /\ A = B ) -> A <_ B ) $=
    ( cr wcel cle wbr wceq leid breq2 biimpac sylan ) ACDAAEFZABGZABEFZAHMLNABA
    EIJK $.

  ${
    lt.1 $e |- A e. RR $.
    $( 'Less than' is irreflexive.  (Contributed by NM, 18-Aug-1999.) $)
    ltnri $p |- -. A < A $=
      ( cr wcel clt wbr wn ltnr ax-mp ) ACDAAEFGBAHI $.

    $( Equality implies 'less than or equal to'.  (Contributed by NM,
       23-May-1999.)  (Revised by Alexander van der Vekens, 20-Mar-2018.) $)
    eqlei $p |- ( A = B -> A <_ B ) $=
      ( cr wcel wceq cle wbr eqle mpan ) ADEABFABGHCABIJ $.

    $( Equality implies 'less than or equal to'.  (Contributed by Alexander van
       der Vekens, 20-Mar-2018.) $)
    eqlei2 $p |- ( B = A -> B <_ A ) $=
      ( cr wcel wceq cle wbr eleq1 mpbiri eqle mpancom ) BDEZBAFZBAGHNMADECBADI
      JBAKL $.

    ${
      ltneii.2 $e |- A < B $.
      $( 'Less than' implies not equal.  (Contributed by Mario Carneiro,
         30-Sep-2013.) $)
      gtneii $p |- B =/= A $=
        ( cr wcel clt wbr wne ltne mp2an ) AEFABGHBAICDABJK $.

      $( 'Greater than' implies not equal.  (Contributed by Mario Carneiro,
         16-Sep-2015.) $)
      ltneii $p |- A =/= B $=
        ( gtneii necomi ) BAABCDEF $.
    $}

    lt.2 $e |- B e. RR $.
    $( Tightness of real apartness.  (Contributed by NM, 14-May-1999.) $)
    lttri3i $p |- ( A = B <-> ( -. A < B /\ -. B < A ) ) $=
      ( cr wcel wceq clt wbr wn wa wb lttri3 mp2an ) AEFBEFABGABHIJBAHIJKLCDABM
      N $.

    $( Tightness of real apartness.  (Contributed by NM, 14-May-1999.) $)
    letri3i $p |- ( A = B <-> ( A <_ B /\ B <_ A ) ) $=
      ( cr wcel wceq cle wbr wa wb letri3 mp2an ) AEFBEFABGABHIBAHIJKCDABLM $.

    $( 'Less than' is not symmetric.  (Contributed by NM, 6-May-1999.) $)
    ltnsymi $p |- ( A < B -> -. B < A ) $=
      ( cr wcel clt wbr wn wi ltnsym mp2an ) AEFBEFABGHBAGHIJCDABKL $.

    $( 'Less than or equal to' in terms of 'less than'.  (Contributed by NM,
       24-May-1999.) $)
    lenlti $p |- ( A <_ B <-> -. B < A ) $=
      ( cr wcel cle wbr clt wn wb lenlt mp2an ) AEFBEFABGHBAIHJKCDABLM $.

    $( 'Less than' implies 'less than or equal to'.  (Contributed by NM,
       14-May-1999.) $)
    ltlei $p |- ( A < B -> A <_ B ) $=
      ( cr wcel clt wbr cle wi ltle mp2an ) AEFBEFABGHABIHJCDABKL $.

    ${
      ltlei.1 $e |- A < B $.
      $( 'Less than' implies 'less than or equal to' (inference).  (Contributed
         by NM, 22-Aug-1999.) $)
      ltleii $p |- A <_ B $=
        ( clt wbr cle ltlei ax-mp ) ABFGABHGEABCDIJ $.
    $}

    $( 'Less than' implies not equal.  (Contributed by NM, 28-Jul-1999.) $)
    ltnei $p |- ( A < B -> B =/= A ) $=
      ( cr wcel clt wbr wne ltne mpan ) AEFABGHBAICABJK $.

    ${
      lt.3 $e |- C e. RR $.
      $( 'Less than' is transitive.  Theorem I.17 of [Apostol] p. 20.
         (Contributed by NM, 14-May-1999.) $)
      lttri $p |- ( ( A < B /\ B < C ) -> A < C ) $=
        ( cr wcel clt wbr wa wi lttr mp3an ) AGHBGHCGHABIJBCIJKACIJLDEFABCMN $.

      $( 'Less than or equal to', 'less than' transitive law.  (Contributed by
         NM, 14-May-1999.) $)
      lelttri $p |- ( ( A <_ B /\ B < C ) -> A < C ) $=
        ( cr wcel cle wbr clt wa wi lelttr mp3an ) AGHBGHCGHABIJBCKJLACKJMDEFAB
        CNO $.

      $( 'Less than', 'less than or equal to' transitive law.  (Contributed by
         NM, 14-May-1999.) $)
      ltletri $p |- ( ( A < B /\ B <_ C ) -> A < C ) $=
        ( cr wcel clt wbr cle wa wi ltletr mp3an ) AGHBGHCGHABIJBCKJLACIJMDEFAB
        CNO $.

      $( 'Less than or equal to' is transitive.  (Contributed by NM,
         14-May-1999.) $)
      letri $p |- ( ( A <_ B /\ B <_ C ) -> A <_ C ) $=
        ( cr wcel cle wbr wa wi letr mp3an ) AGHBGHCGHABIJBCIJKACIJLDEFABCMN $.

      $( Extended trichotomy law for 'less than or equal to'.  (Contributed by
         NM, 14-Aug-2000.) $)
      le2tri3i $p |- ( ( A <_ B /\ B <_ C /\ C <_ A ) <->
                      ( A = B /\ B = C /\ C = A ) ) $=
        ( cle wbr wceq wa letri letri3i biimpri sylan2 3impb 3comr eqcomd sylan
        w3a eqlei 3impa 3jca 3anim123i impbii ) ABGHZBCGHZCAGHZSZABIZBCIZCAIZSU
        HUIUJUKUEUFUGUIUFUGJUEBAGHZUIBCAEFDKUIUEULJABDELMNOUFUGUEUJUFUGUEUJUGUE
        JUFCBGHZUJCABFDEKUJUFUMJBCEFLMNOPUEUFUGUKUEUFJACGHZUGUKABCDEFKUNUGJZACA
        CIUOACDFLMQRUAUBUIUEUJUFUKUGABDTBCETCAFTUCUD $.
    $}

    $( The product of two positive numbers is positive.  (Contributed by NM,
       16-May-1999.) $)
    mulgt0i $p |- ( ( 0 < A /\ 0 < B ) -> 0 < ( A x. B ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co wi axmulgt0 mp2an ) AEFBEFGAHIGBHIJGABKL
      HIMCDABNO $.

    mulgt0i.3 $e |- 0 < A $.
    mulgt0i.4 $e |- 0 < B $.
    $( The product of two positive numbers is positive.  (Contributed by NM,
       18-May-1999.) $)
    mulgt0ii $p |- 0 < ( A x. B ) $=
      ( cc0 clt wbr cmul co mulgt0i mp2an ) GAHIGBHIGABJKHIEFABCDLM $.
  $}

  ${
    ltd.1 $e |- ( ph -> A e. RR ) $.
    $( 'Less than' is irreflexive.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    ltnrd $p |- ( ph -> -. A < A ) $=
      ( cr wcel clt wbr wn ltnr syl ) ABDEBBFGHCBIJ $.

    ${
      ltned.2 $e |- ( ph -> A < B ) $.
      $( 'Less than' implies not equal.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      gtned $p |- ( ph -> B =/= A ) $=
        ( cr wcel clt wbr wne ltne syl2anc ) ABFGBCHICBJDEBCKL $.

      $( 'Greater than' implies not equal.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      ltned $p |- ( ph -> A =/= B ) $=
        ( gtned necomd ) ACBABCDEFG $.
    $}

    ltd.2 $e |- ( ph -> B e. RR ) $.
    $( Tightness of real apartness.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    lttri3d $p |- ( ph -> ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
      ( cr wcel wceq clt wbr wn wa wb lttri3 syl2anc ) ABFGCFGBCHBCIJKCBIJKLMDE
      BCNO $.

    $( Tightness of real apartness.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    letri3d $p |- ( ph -> ( A = B <-> ( A <_ B /\ B <_ A ) ) ) $=
      ( cr wcel wceq cle wbr wa wb letri3 syl2anc ) ABFGCFGBCHBCIJCBIJKLDEBCMN
      $.

    $( 'Less than or equal to' in terms of 'less than'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    lenltd $p |- ( ph -> ( A <_ B <-> -. B < A ) ) $=
      ( cr wcel cle wbr clt wn wb lenlt syl2anc ) ABFGCFGBCHICBJIKLDEBCMN $.

    ${
      ltled.1 $e |- ( ph -> A < B ) $.
      $( 'Less than' implies 'less than or equal to'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltled $p |- ( ph -> A <_ B ) $=
        ( clt wbr cle cr wcel wi ltle syl2anc mpd ) ABCGHZBCIHZFABJKCJKPQLDEBCM
        NO $.

      $( 'Less than' implies 'less than or equal to'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltnsymd $p |- ( ph -> -. B < A ) $=
        ( cle wbr clt wn ltled lenltd mpbid ) ABCGHCBIHJABCDEFKABCDELM $.
    $}

    ${
      mulgt0d.3 $e |- ( ph -> 0 < A ) $.
      mulgt0d.4 $e |- ( ph -> 0 < B ) $.
      $( The product of two positive numbers is positive.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      mulgt0d $p |- ( ph -> 0 < ( A x. B ) ) $=
        ( cr wcel cc0 clt wbr cmul co mulgt0 syl22anc ) ABHIJBKLCHIJCKLJBCMNKLD
        FEGBCOP $.
    $}

    letrd.3 $e |- ( ph -> C e. RR ) $.
    ${
      letrd.4 $e |- ( ph -> A <_ B ) $.
      letrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law deduction for 'less than or equal to'.  (Contributed by
         NM, 20-May-2005.) $)
      letrd $p |- ( ph -> A <_ C ) $=
        ( cle wbr cr wcel wa wi letr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLMCLM
        DLMSTNUAOEFGBCDPQR $.
    $}

    ${
      lelttrd.4 $e |- ( ph -> A <_ B ) $.
      lelttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law deduction for 'less than or equal to', 'less than'.
         (Contributed by NM, 8-Jan-2006.) $)
      lelttrd $p |- ( ph -> A < C ) $=
        ( cle wbr clt cr wcel wa wi lelttr syl3anc mp2and ) ABCJKZCDLKZBDLKZHIA
        BMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      lttrd.4 $e |- ( ph -> A < B ) $.
      lttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law deduction for 'less than'.  (Contributed by NM,
         9-Jan-2006.) $)
      lttrd $p |- ( ph -> A < C ) $=
        ( clt wbr cr wcel wa wi lttr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLMCLM
        DLMSTNUAOEFGBCDPQR $.
    $}
  $}

  $( 0 is less than 1.  Theorem I.21 of [Apostol] p. 20.  Part of definition
     11.2.7(vi) of [HoTT], p.  (varies).  (Contributed by NM, 17-Jan-1997.) $)
  0lt1 $p |- 0 < 1 $=
    ( cc0 c1 clt wbr cltrr ax-0lt1 cr wcel wb 0re 1re ltxrlt mp2an mpbir ) ABCD
    ZABEDZFAGHBGHOPIJKABLMN $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           Initial properties of the complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Commutative/associative law for multiplication.  (Contributed by NM,
     30-Apr-2005.) $)
  mul12 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A x. ( B x. C ) ) = ( B x. ( A x. C ) ) ) $=
    ( cc wcel w3a cmul co wceq wa mulcom oveq1d 3adant3 mulass 3com12 3eqtr3d )
    ADEZBDEZCDEZFABGHZCGHZBAGHZCGHZABCGHGHBACGHGHZQRUAUCISQRJTUBCGABKLMABCNRQSU
    CUDIBACNOP $.

  $( Commutative/associative law.  (Contributed by NM, 8-Oct-1999.) $)
  mul32 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A x. B ) x. C ) = ( ( A x. C ) x. B ) ) $=
    ( cc wcel w3a cmul co wceq wa mulcom oveq2d 3adant1 mulass 3com23 3eqtr4d )
    ADEZBDEZCDEZFABCGHZGHZACBGHZGHZABGHCGHACGHBGHZRSUAUCIQRSJTUBAGBCKLMABCNQSRU
    DUCIACBNOP $.

  $( Commutative/associative law.  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  mul31 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A x. B ) x. C ) = ( ( C x. B ) x. A ) ) $=
    ( cc wcel cmul co wceq wa mulcom oveq2d 3adant1 mulass mulcl ancoms mulcomd
    w3a simp1 3eqtr4d ) ADEZBDEZCDEZQZABCFGZFGZACBFGZFGZABFGCFGUFAFGUAUBUEUGHTU
    AUBIUDUFAFBCJKLABCMUCUFAUAUBUFDEZTUBUAUHCBNOLTUAUBRPS $.

  $( Rearrangement of 4 factors.  (Contributed by NM, 8-Oct-1999.) $)
  mul4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A x. B ) x. ( C x. D ) ) =
                 ( ( A x. C ) x. ( B x. D ) ) ) $=
    ( cc wcel wa cmul co wceq w3a mul32 oveq1d 3expa adantrr mulcl mulass 3expb
    sylan an4s 3eqtr3d ) AEFZBEFZGZCEFZDEFZGZGABHIZCHIZDHIZACHIZBHIZDHIZUHCDHIH
    IZUKBDHIHIZUDUEUJUMJZUFUBUCUEUPUBUCUEKUIULDHABCLMNOUDUHEFZUGUJUNJZABPUQUEUF
    URUHCDQRSUBUEUCUFUMUOJZUBUEGUKEFZUCUFGUSACPUTUCUFUSUKBDQRSTUA $.

  $( A simple product of sums expansion.  (Contributed by NM, 21-Feb-2005.) $)
  muladd11 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( 1 + A ) x. ( 1 + B ) ) =
                 ( ( 1 + A ) + ( B + ( A x. B ) ) ) ) $=
    ( cc wcel wa c1 caddc cmul wceq ax-1cn addcl mpan adddi mp3an2 sylan adantr
    co mulid1d adddir eqtrd mp3an1 mulid2 adantl oveq1d oveq12d ) ACDZBCDZEZFAG
    QZFBGQHQZUIFHQZUIBHQZGQZUIBABHQZGQZGQUFUICDZUGUJUMIZFCDZUFUPJFAKLZUPURUGUQJ
    UIFBMNOUHUKUIULUOGUFUKUIIUGUFUIUSRPUHULFBHQZUNGQZUOURUFUGULVAIJFABSUAUHUTBU
    NGUGUTBIUFBUBUCUDTUET $.

  $( Two times a number.  (Contributed by NM, 18-May-1999.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  1p1times $p |- ( A e. CC -> ( ( 1 + 1 ) x. A ) = ( A + A ) ) $=
    ( cc wcel c1 caddc co cmul ax-1cn a1i id adddird mulid2 oveq12d eqtrd ) ABC
    ZDDEFAGFDAGFZPEFAAEFODDADBCOHIZQOJKOPAPAEALZRMN $.

  $( A theorem for complex numbers analogous the second Peano postulate
     ~ peano2 .  (Contributed by NM, 17-Aug-2005.) $)
  peano2cn $p |- ( A e. CC -> ( A + 1 ) e. CC ) $=
    ( cc wcel c1 caddc co ax-1cn addcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( A theorem for reals analogous the second Peano postulate ~ peano2 .
     (Contributed by NM, 5-Jul-2005.) $)
  peano2re $p |- ( A e. RR -> ( A + 1 ) e. RR ) $=
    ( cr wcel c1 caddc co 1re readdcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( Addition commutes.  (Contributed by Jim Kingdon, 17-Jan-2020.) $)
  addcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $=
    ( ax-addcom ) ABC $.

  $( ` 0 ` is an additive identity.  (Contributed by Jim Kingdon,
     16-Jan-2020.) $)
  addid1 $p |- ( A e. CC -> ( A + 0 ) = A ) $=
    ( ax-0id ) AB $.

  $( ` 0 ` is a left identity for addition.  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  addid2 $p |- ( A e. CC -> ( 0 + A ) = A ) $=
    ( cc wcel cc0 caddc co wceq 0cn addcom mpan2 addid1 eqtr3d ) ABCZADEFZDAEFZ
    AMDBCNOGHADIJAKL $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Cancellation law for addition over the reals.  (Contributed by Scott
       Fenton, 3-Jan-2013.) $)
    readdcan $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
        ( ( C + A ) = ( C + B ) <-> A = B ) ) $=
      ( vx cr wcel caddc co wceq wa oveq2 recnd addassd adantr cc oveq1d addid2
      cc0 syl eqtrd w3a cv wi ax-rnegex 3ad2ant3 adantl wb simprl simpl3 simpl1
      simpl2 eqeq12d mpbird addcom syl2anc simplrr 3eqtr3d ex rexlimddv impbid1
      wrex eqtr3d ) AEFZBEFZCEFZUAZCAGHZCBGHZIZABIZVFCDUBZGHZRIZVIVJUCDEVEVCVMD
      EVAVDDCUDUEVFVKEFZVMJZJZVIVJVPVIJZVKCGHZAGHZVRBGHZABVQVSVTIZVKVGGHZVKVHGH
      ZIZVIWDVPVGVHVKGKUFVPWAWDUGVIVPVSWBVTWCVPVKCAVPVKVFVNVMUHLZVPCVCVDVEVOUIL
      ZVPAVCVDVEVOUJLZMVPVKCBWEWFVPBVCVDVEVOUKLZMULNUMVQVSRAGHZAVQVRRAGVQVLVRRV
      QCOFZVKOFZVLVRIVPWJVIWFNVPWKVIWENCVKUNUOVFVNVMVIUPVBZPVQAOFZWIAIVPWMVIWGN
      AQSTVQVTRBGHZBVQVRRBGWLPVQBOFZWNBIVPWOVIWHNBQSTUQURUSABCGKUT $.
  $}

  $( ` 0 ` is its own additive identity.  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  00id $p |- ( 0 + 0 ) = 0 $=
    ( cc0 cc wcel caddc co wceq 0cn addid1 ax-mp ) ABCAADEAFGAHI $.

  ${
    mul.1 $e |- A e. CC $.
    $( ` 0 ` is an additive identity.  (Contributed by NM, 23-Nov-1994.)
       (Revised by Scott Fenton, 3-Jan-2013.) $)
    addid1i $p |- ( A + 0 ) = A $=
      ( cc wcel cc0 caddc co wceq addid1 ax-mp ) ACDAEFGAHBAIJ $.

    $( ` 0 ` is a left identity for addition.  (Contributed by NM,
       3-Jan-2013.) $)
    addid2i $p |- ( 0 + A ) = A $=
      ( cc wcel cc0 caddc co wceq addid2 ax-mp ) ACDEAFGAHBAIJ $.

    mul.2 $e |- B e. CC $.
    $( Addition commutes.  Based on ideas by Eric Schmidt.  (Contributed by
       Scott Fenton, 3-Jan-2013.) $)
    addcomi $p |- ( A + B ) = ( B + A ) $=
      ( cc wcel caddc co wceq addcom mp2an ) AEFBEFABGHBAGHICDABJK $.

    ${
      addcomli.2 $e |- ( A + B ) = C $.
      $( Addition commutes.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
      addcomli $p |- ( B + A ) = C $=
        ( caddc co addcomi eqtri ) BAGHABGHCBAEDIFJ $.
    $}

    mul.3 $e |- C e. CC $.
    $( Commutative/associative law that swaps the first two factors in a triple
       product.  (Contributed by NM, 11-May-1999.)  (Proof shortened by Andrew
       Salmon, 19-Nov-2011.) $)
    mul12i $p |- ( A x. ( B x. C ) ) = ( B x. ( A x. C ) ) $=
      ( cc wcel cmul co wceq mul12 mp3an ) AGHBGHCGHABCIJIJBACIJIJKDEFABCLM $.

    $( Commutative/associative law that swaps the last two factors in a triple
       product.  (Contributed by NM, 11-May-1999.) $)
    mul32i $p |- ( ( A x. B ) x. C ) = ( ( A x. C ) x. B ) $=
      ( cc wcel cmul co wceq mul32 mp3an ) AGHBGHCGHABIJCIJACIJBIJKDEFABCLM $.

    mul4.4 $e |- D e. CC $.
    $( Rearrangement of 4 factors.  (Contributed by NM, 16-Feb-1995.) $)
    mul4i $p |- ( ( A x. B ) x. ( C x. D ) ) =
               ( ( A x. C ) x. ( B x. D ) ) $=
      ( cc wcel cmul co wceq mul4 mp4an ) AIJBIJCIJDIJABKLCDKLKLACKLBDKLKLMEFGH
      ABCDNO $.
  $}

  ${
    muld.1 $e |- ( ph -> A e. CC ) $.
    $( ` 0 ` is an additive identity.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addid1d $p |- ( ph -> ( A + 0 ) = A ) $=
      ( cc wcel cc0 caddc co wceq addid1 syl ) ABDEBFGHBICBJK $.

    $( ` 0 ` is a left identity for addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addid2d $p |- ( ph -> ( 0 + A ) = A ) $=
      ( cc wcel cc0 caddc co wceq addid2 syl ) ABDEFBGHBICBJK $.

    addcomd.2 $e |- ( ph -> B e. CC ) $.
    $( Addition commutes.  Based on ideas by Eric Schmidt.  (Contributed by
       Scott Fenton, 3-Jan-2013.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    addcomd $p |- ( ph -> ( A + B ) = ( B + A ) ) $=
      ( cc wcel caddc co wceq addcom syl2anc ) ABFGCFGBCHICBHIJDEBCKL $.

    mul12d.3 $e |- ( ph -> C e. CC ) $.
    $( Commutative/associative law that swaps the first two factors in a triple
       product.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    mul12d $p |- ( ph -> ( A x. ( B x. C ) ) = ( B x. ( A x. C ) ) ) $=
      ( cc wcel cmul co wceq mul12 syl3anc ) ABHICHIDHIBCDJKJKCBDJKJKLEFGBCDMN
      $.

    $( Commutative/associative law that swaps the last two factors in a triple
       product.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    mul32d $p |- ( ph -> ( ( A x. B ) x. C ) = ( ( A x. C ) x. B ) ) $=
      ( cc wcel cmul co wceq mul32 syl3anc ) ABHICHIDHIBCJKDJKBDJKCJKLEFGBCDMN
      $.

    $( Commutative/associative law.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mul31d $p |- ( ph -> ( ( A x. B ) x. C ) = ( ( C x. B ) x. A ) ) $=
      ( cc wcel cmul co wceq mul31 syl3anc ) ABHICHIDHIBCJKDJKDCJKBJKLEFGBCDMN
      $.

    mul4d.4 $e |- ( ph -> D e. CC ) $.
    $( Rearrangement of 4 factors.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mul4d $p |- ( ph -> ( ( A x. B ) x. ( C x. D ) ) =
                        ( ( A x. C ) x. ( B x. D ) ) ) $=
      ( cc wcel cmul co wceq mul4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMCELMLMN
      FGHIBCDEOP $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
             Real and complex numbers - basic operations
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Addition
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Commutative/associative law that swaps the first two terms in a triple
     sum.  (Contributed by NM, 11-May-2004.) $)
  add12 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A + ( B + C ) ) = ( B + ( A + C ) ) ) $=
    ( cc wcel w3a caddc co wceq wa addcom oveq1d 3adant3 addass 3com12 3eqtr3d
    ) ADEZBDEZCDEZFABGHZCGHZBAGHZCGHZABCGHGHBACGHGHZQRUAUCISQRJTUBCGABKLMABCNRQ
    SUCUDIBACNOP $.

  $( Commutative/associative law that swaps the last two terms in a triple
     sum.  (Contributed by NM, 13-Nov-1999.) $)
  add32 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A + B ) + C ) = ( ( A + C ) + B ) ) $=
    ( cc wcel w3a caddc co wceq wa addcom oveq2d 3adant1 addass 3com23 3eqtr4d
    ) ADEZBDEZCDEZFABCGHZGHZACBGHZGHZABGHCGHACGHBGHZRSUAUCIQRSJTUBAGBCKLMABCNQS
    RUDUCIACBNOP $.

  $( Commutative/associative law that swaps the last two terms in a triple sum,
     rearranging the parentheses.  (Contributed by Paul Chapman,
     18-May-2007.) $)
  add32r $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                          ( A + ( B + C ) ) = ( ( A + C ) + B ) ) $=
    ( cc wcel w3a caddc co addass add32 eqtr3d ) ADEBDECDEFABGHCGHABCGHGHACGHBG
    HABCIABCJK $.

  $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 13-Nov-1999.)
     (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  add4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( B + D ) ) ) $=
    ( cc wcel wa caddc wceq add12 3expb oveq2d adantll addcl addass sylan2 an4s
    co 3expa 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZGABCDHRZHRZHRZACBDHRZHRZHRZABHRUGHRZ
    ACHRUJHRZUBUFUIULIUAUBUFGUHUKAHUBUDUEUHUKIBCDJKLMUFUCUGEFZUMUIIZCDNUAUBUOUP
    ABUGOSPUAUDUBUEUNULIZUBUEGUAUDGUJEFZUQBDNUAUDURUQACUJOSPQT $.

  $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 12-May-2005.) $)
  add42 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( D + B ) ) ) $=
    ( cc wcel wa caddc co add4 wceq addcom ad2ant2l oveq2d eqtrd ) AEFZBEFZGCEF
    ZDEFZGGZABHICDHIHIACHIZBDHIZHIUADBHIZHIABCDJTUBUCUAHQSUBUCKPRBDLMNO $.

  ${
    add.1 $e |- A e. CC $.
    add.2 $e |- B e. CC $.
    add.3 $e |- C e. CC $.
    $( Commutative/associative law that swaps the first two terms in a triple
       sum.  (Contributed by NM, 21-Jan-1997.) $)
    add12i $p |- ( A + ( B + C ) ) = ( B + ( A + C ) ) $=
      ( cc wcel caddc co wceq add12 mp3an ) AGHBGHCGHABCIJIJBACIJIJKDEFABCLM $.

    $( Commutative/associative law that swaps the last two terms in a triple
       sum.  (Contributed by NM, 21-Jan-1997.) $)
    add32i $p |- ( ( A + B ) + C ) = ( ( A + C ) + B ) $=
      ( cc wcel caddc co wceq add32 mp3an ) AGHBGHCGHABIJCIJACIJBIJKDEFABCLM $.

    add4.4 $e |- D e. CC $.
    $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 9-May-1999.) $)
    add4i $p |- ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( B + D ) ) $=
      ( cc wcel caddc co wceq add4 mp4an ) AIJBIJCIJDIJABKLCDKLKLACKLBDKLKLMEFG
      HABCDNO $.

    $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 22-Aug-1999.) $)
    add42i $p |- ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( D + B ) ) $=
      ( caddc co add4i addcomi oveq2i eqtri ) ABIJCDIJIJACIJZBDIJZIJODBIJZIJABC
      DEFGHKPQOIBDFHLMN $.
  $}

  ${
    addd.1 $e |- ( ph -> A e. CC ) $.
    addd.2 $e |- ( ph -> B e. CC ) $.
    addd.3 $e |- ( ph -> C e. CC ) $.
    $( Commutative/associative law that swaps the first two terms in a triple
       sum.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    add12d $p |- ( ph -> ( A + ( B + C ) ) = ( B + ( A + C ) ) ) $=
      ( cc wcel caddc co wceq add12 syl3anc ) ABHICHIDHIBCDJKJKCBDJKJKLEFGBCDMN
      $.

    $( Commutative/associative law that swaps the last two terms in a triple
       sum.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    add32d $p |- ( ph -> ( ( A + B ) + C ) = ( ( A + C ) + B ) ) $=
      ( cc wcel caddc co wceq add32 syl3anc ) ABHICHIDHIBCJKDJKBDJKCJKLEFGBCDMN
      $.

    add4d.4 $e |- ( ph -> D e. CC ) $.
    $( Rearrangement of 4 terms in a sum.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    add4d $p |- ( ph ->
      ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( B + D ) ) ) $=
      ( cc wcel caddc co wceq add4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMCELMLM
      NFGHIBCDEOP $.

    $( Rearrangement of 4 terms in a sum.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    add42d $p |- ( ph ->
      ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( D + B ) ) ) $=
      ( cc wcel caddc co wceq add42 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMECLML
      MNFGHIBCDEOP $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Subtraction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare symbols needed for some defined terms. $)
  $c - $. $( Subtraction (binary minus). $)
  $c -u $. $( Unary minus sign. $)

  $( Extend class notation to include subtraction. $)
  cmin $a class - $.

  $( Extend class notation to include unary minus.  The symbol ` -u ` is not a
     class by itself but part of a compound class definition.  We do this
     rather than making it a formal function since it is so commonly used.
     Note:  We use different symbols for unary minus ( ` -u ` ) and subtraction
     ~ cmin ( ` - ` ) to prevent syntax ambiguity.  For example, looking at the
     syntax definition ~ co , if we used the same symbol
     then " ` ( - A - B ) ` " could mean either " ` - A ` " minus " ` B ` ", or
     it could represent the (meaningless) operation of
     classes " ` - ` " and " ` - B ` " connected with "operation" " ` A ` ".
     On the other hand, " ` ( -u A - B ) ` " is unambiguous. $)
  cneg $a class -u A $.

  ${
    $d x y z $.
    $( Define subtraction.  Theorem ~ subval shows its value (and describes how
       this definition works), theorem ~ subaddi relates it to addition, and
       theorems ~ subcli and ~ resubcli prove its closure laws.  (Contributed
       by NM, 26-Nov-1994.) $)
    df-sub $a |- - = ( x e. CC , y e. CC |->
                   ( iota_ z e. CC ( y + z ) = x ) ) $.
  $}

  $( Define the negative of a number (unary minus).  We use different symbols
     for unary minus ( ` -u ` ) and subtraction ( ` - ` ) to prevent syntax
     ambiguity.  See ~ cneg for a discussion of this.  (Contributed by NM,
     10-Feb-1995.) $)
  df-neg $a |- -u A = ( 0 - A ) $.

  ${
    $d a b c d x y z A $.  $d x B $.  $d x C $.
    $( Addition cancellation of a real number from two complex numbers.  Lemma
       for ~ cnegex .  (Contributed by Eric Schmidt, 22-May-2007.) $)
    cnegexlem1 $p |- ( ( A e. RR /\ B e. CC /\ C e. CC ) ->
                  ( ( A + B ) = ( A + C ) <-> B = C ) ) $=
      ( vx cr wcel cc caddc co wceq cc0 wi recn wa oveq2 addassd eqeq12d adantl
      wb oveq1 w3a wrex ax-rnegex 3ad2ant1 simpr simpll simplrl simplrr syl5ibr
      cv adantr addcom eqeq1d adantlr addid2 eqeqan12d ad2antrr bitrd ex sylbid
      imp sylibd sylan2 rexlimdva 3impb syl3an1 mpd impbid1 ) AEFZBGFZCGFZUAZAB
      HIZACHIZJZBCJZVLADUJZHIZKJZDEUBZVOVPLZVIVJVTVKDAUCUDVIAGFZVJVKVTWALZAMWBV
      JVKWCWBVJVKNZNZVSWADEVQEFWEVQGFZVSWALVQMWEWFNZVSWAWGVSNVOVQAHIZBHIZWHCHIZ
      JZVPWGVOWKLVSVOWKWGVQVMHIZVQVNHIZJVMVNVQHOWGWIWLWJWMWGVQABWEWFUEZWBWDWFUF
      ZWBVJVKWFUGPWGVQACWNWOWBVJVKWFUHPQUIUKWGVSWKVPSZWGVSWHKJZWPWBWFVSWQSWDWBW
      FNVRWHKAVQULUMUNWGWQWPWGWQNWKKBHIZKCHIZJZVPWQWKWTSWGWQWIWRWJWSWHKBHTWHKCH
      TQRWEWTVPSZWFWQWDXAWBVJVKWRBWSCBUOCUOUPRUQURUSUTVAVBUSVCVDVEVFVGBCAHOVH
      $.

    $( Existence of a real number which produces a real number when multiplied
       by ` _i ` .  (Hint: zero is such a number, although we don't need to
       prove that yet).  Lemma for ~ cnegex .  (Contributed by Eric Schmidt,
       22-May-2007.) $)
    cnegexlem2 $p |- E. y e. RR ( _i x. y ) e. RR $=
      ( vx vz cc wcel cv ci cmul co caddc wceq cr wrex wa wi adantr recn addid2
      cc0 oveq1 0cn cnre ax-rnegex ax-icn mulcl sylancr 3ad2ant3 ad2antrl add32
      w3a 3com23 eqcomd sylan9eq adantrl 3ad2ant2 eqtr3d ex syl3an 3expa simplr
      3eqtr3d imp eqeltrrd exp32 rexlimdva mpd reximdva rexlimiv mp2b ) SDESBFZ
      GAFZHIZJIZKZALMZBLMVLLEZALMZUABASUBVOVQBLVJLEZVNVPALVRVKLEZNZVJCFZJIZSKZC
      LMZVNVPOZVRWDVSCVJUCPVTWCWECLVTWALEZNZWCVNVPWGWCVNNZNWAVLLWGWHWAVLKZVRVSW
      FWHWIOZVRVJDEZVSVLDEZWFWADEZWJVJQVSGDEVKDEWLUDVKQGVKUEUFWAQWKWLWMUJZWHWIW
      NWHNZSWAJIZWAVLWNWPWAKZWHWMWKWQWLWARUGPWOWBVLJIZSVLJIZWPVLWCWRWSKWNVNWBSV
      LJTUHWNVNWRWPKWCWNVNWRVMWAJIZWPWKWMWLWRWTKVJWAVLUIUKVNWPWTSVMWAJTULUMUNWN
      WSVLKZWHWLWKXAWMVLRUOPVAUPUQURUSVBVTWFWHUTVCVDVEVFVGVHVI $.

    $( Existence of real number difference.  Lemma for ~ cnegex .  (Contributed
       by Eric Schmidt, 22-May-2007.) $)
    cnegexlem3 $p |- ( ( b e. RR /\ y e. RR ) -> E. c e. RR ( b + c ) = y ) $=
      ( vx cv cr wcel wa caddc co wceq wrex ax-rnegex adantlr adantr cc wb recn
      cc0 anim1i readdcl anim12i add32 3expa addcl addcom sylan eqtr2d adantllr
      syl sylanl2 ancoms sylan2 id sylan9eq adantlll eqeq12d simpllr cnegexlem1
      an32s simplr syl3anc bitr3d syl2an rexbidva mpbid adantl r19.29a ) BEZFGZ
      AEZFGZHZVKDEZIJZSKZVICEZIJZVKKZCFLZDFVMVNFGZHZVPHZVIVNIJZVQIJZSKZCFLZVTWB
      WGVPVJWAWGVLVJWAHWDFGWGVIVNUACWDMUJNOWCWFVSCFWCVIPGZVKPGZHZWAHZVPHZVQPGZW
      FVSQVQFGWBWKVPVMWJWAVJWHVLWIVIRVKRUBTTVQRWLWMHZVNVRIJZVNVKIJZKZWFVSWNWOWE
      WPSWKWMWOWEKZVPWHWAWMWRWIWAWHVNPGZWMWRVNRZWHWSHWMHWEVRVNIJZWOWHWSWMWEXAKV
      IVNVQUCUDWHWMWSXAWOKZWHWMHVRPGZWSXBVIVQUEZVRVNUFUGUTUHUKUINWLWPSKZWMWIWAV
      PXEWHWIWAHVPWPVOSWAWIWSWPVOKZWTWSWIXFVNVKUFULUMVPUNUOUPOUQWKWMWQVSQZVPWKW
      MHWAXCWIXGWJWAWMVAWJWMXCWAWHWMXCWIXDNNWHWIWAWMURVNVRVKUSVBNVCVDVEVFVLVPDF
      LVJDVKMVGVH $.

    $( Existence of the negative of a complex number.  (Contributed by Eric
       Schmidt, 21-May-2007.) $)
    cnegex $p |- ( A e. CC -> E. x e. CC ( A + x ) = 0 ) $=
      ( va vb vy vc vd cc wcel cv ci cmul co caddc wceq cr wrex cc0 wa ax-icn
      cnre cnegexlem2 cnegexlem3 ad2ant2lr mulcl sylancr syl2an adantlr adantll
      addcl adantr anim12i sylan2 ad2antrr ad2antlr simpr addassd simpll adantl
      recn mpan adddi mp3an1 oveq2d eqtr4d oveq1d eqtr3d adantlrr eqtr2d eqeq1d
      oveq2 biimpa rspcev syl2anc readdcl ax-rnegex ad2ant2rl r19.29a rexlimddv
      adantllr syl rexlimdvaa mpi oveq1 rexbidv syl5ibrcom rexlimivv ) BHIBCJZK
      DJZLMZNMZOZDPQCPQBAJZNMZROZAHQZCDBUAWLWPCDPPWHPIZWIPIZSZWPWLWKWMNMZROZAHQ
      ZWSKEJZLMZPIZEPQXBEUBWSXEXBEPWSXCPIZXESZSZWIFJZNMZXCOZXBFPWRXFXKFPQWQXEED
      FUCUDXHXIPIZXKSZSZWHXDNMZGJZNMZROZXBGPXNXPPIZSZXRSKXILMZXPNMZHIZWKYBNMZRO
      ZXBXTYCXRXMXSYCXHXLXSYCXKXLYAHIZXPHIZYCXSXLKHIZXIHIZYFTXIUTZKXIUEZUFXPUTZ
      YAXPUJUGUHUIUKXTXRYEXTXQYDRWSXMXSXQYDOXGWSXMSXSSYDWHKXJLMZNMZXPNMZXQWSXLX
      SYDYOOZXKWSXLSWHHIZWIHIZSZYISZYGYPXSWSYSXLYIWQYQWRYRWHUTWIUTULYJULYLYTYGS
      ZWKYANMZXPNMYDYOUUAWKYAXPYSWKHIZYIYGYRYQWJHIZUUCYHYRUUDTKWIUEVAZWHWJUJUMU
      NYIYFYSYGYHYIYFTYKVAZUOYTYGUPUQUUAUUBYNXPNYTUUBYNOYGYTUUBWHWJYANMZNMYNYTW
      HWJYAYQYRYIURYRUUDYQYIUUEUOYIYFYSUUFUSUQYTYMUUGWHNYRYIYMUUGOZYQYHYRYIUUHT
      KWIXIVBVCUIVDVEUKVFVGUGVHXMYOXQOZWSXSXKUUIXLXKYNXOXPNXKYMXDWHNXJXCKLVKVDV
      FUSUOVIVTVJVLXAYEAYBHWMYBOWTYDRWMYBWKNVKVJVMVNXHXRGPQZXMWQXEUUJWRXFWQXESX
      OPIUUJWHXDVOGXOVPWAVQUKVRVSWBWCWLWOXAAHWLWNWTRBWKWMNWDVJWEWFWGWA $.
  $}

  ${
    $d A x $.
    $( Existence of a left inverse for addition.  (Contributed by Scott Fenton,
       3-Jan-2013.) $)
    cnegex2 $p |- ( A e. CC -> E. x e. CC ( x + A ) = 0 ) $=
      ( cc wcel cv caddc co cc0 wceq wrex cnegex addcom eqeq1d rexbidva mpbid
      wa ) BCDZBAEZFGZHIZACJRBFGZHIZACJABKQTUBACQRCDPSUAHBRLMNO $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x C $.
    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by NM, 22-Nov-1994.)  (Proof shortened by Mario Carneiro,
       27-May-2016.) $)
    addcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                   ( ( A + B ) = ( A + C ) <-> B = C ) ) $=
      ( vx cc wcel w3a cv caddc co cc0 wceq wb wa oveq1d addassd addid2 3eqtr3d
      oveq2 syl wrex cnegex2 3ad2ant1 simprr simprl simpl1 simpl2 simpl3 syl5ib
      eqeq12d impbid1 rexlimddv ) AEFZBEFZCEFZGZDHZAIJZKLZABIJZACIJZLZBCLZMDEUM
      UNUSDEUAUODAUBUCUPUQEFZUSNZNZVBVCVBUQUTIJZUQVAIJZLVFVCUTVAUQISVFVGBVHCVFU
      RBIJKBIJZVGBVFURKBIUPVDUSUDZOVFUQABUPVDUSUEZUMUNUOVEUFZUMUNUOVEUGZPVFUNVI
      BLVMBQTRVFURCIJKCIJZVHCVFURKCIVJOVFUQACVKVLUMUNUOVEUHZPVFUOVNCLVOCQTRUJUI
      BCAISUKUL $.

    $( Cancellation law for addition.  (Contributed by NM, 30-Jul-2004.)
       (Revised by Scott Fenton, 3-Jan-2013.) $)
    addcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                    ( ( A + C ) = ( B + C ) <-> A = B ) ) $=
      ( vx cc wcel w3a cv caddc co cc0 wb wa oveq1 addassd oveq2d addid1 3eqtrd
      wceq syl wrex cnegex 3ad2ant3 simpl1 simpl3 simprl simprr eqeq12d impbid1
      simpl2 syl5ib rexlimddv ) AEFZBEFZCEFZGZCDHZIJZKSZACIJZBCIJZSZABSZLDEUOUM
      USDEUAUNDCUBUCUPUQEFZUSMZMZVBVCVBUTUQIJZVAUQIJZSVFVCUTVAUQINVFVGAVHBVFVGA
      URIJAKIJZAVFACUQUMUNUOVEUDZUMUNUOVEUEZUPVDUSUFZOVFURKAIUPVDUSUGZPVFUMVIAS
      VJAQTRVFVHBURIJBKIJZBVFBCUQUMUNUOVEUJZVKVLOVFURKBIVMPVFUNVNBSVOBQTRUHUKAB
      CINUIUL $.
  $}

  ${
    addcani.1 $e |- A e. CC $.
    addcani.2 $e |- B e. CC $.
    addcani.3 $e |- C e. CC $.
    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by NM, 27-Oct-1999.)  (Revised by Scott Fenton,
       3-Jan-2013.) $)
    addcani $p |- ( ( A + B ) = ( A + C ) <-> B = C ) $=
      ( cc wcel caddc co wceq wb addcan mp3an ) AGHBGHCGHABIJACIJKBCKLDEFABCMN
      $.

    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by NM, 14-May-2003.)  (Revised by Scott Fenton,
       3-Jan-2013.) $)
    addcan2i $p |- ( ( A + C ) = ( B + C ) <-> A = B ) $=
      ( cc wcel caddc co wceq wb addcan2 mp3an ) AGHBGHCGHACIJBCIJKABKLDEFABCMN
      $.
  $}

  ${
    addcand.1 $e |- ( ph -> A e. CC ) $.
    addcand.2 $e |- ( ph -> B e. CC ) $.
    addcand.3 $e |- ( ph -> C e. CC ) $.
    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addcand $p |- ( ph -> ( ( A + B ) = ( A + C ) <-> B = C ) ) $=
      ( cc wcel caddc co wceq wb addcan syl3anc ) ABHICHIDHIBCJKBDJKLCDLMEFGBCD
      NO $.

    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addcan2d $p |- ( ph -> ( ( A + C ) = ( B + C ) <-> A = B ) ) $=
      ( cc wcel caddc co wceq wb addcan2 syl3anc ) ABHICHIDHIBDJKCDJKLBCLMEFGBC
      DNO $.

    ${
      addcanad.4 $e |- ( ph -> ( A + B ) = ( A + C ) ) $.
      $( Cancelling a term on the left-hand side of a sum in an equality.
         Consequence of ~ addcand .  (Contributed by David Moews,
         28-Feb-2017.) $)
      addcanad $p |- ( ph -> B = C ) $=
        ( caddc co wceq addcand mpbid ) ABCIJBDIJKCDKHABCDEFGLM $.
    $}

    ${
      addcan2ad.4 $e |- ( ph -> ( A + C ) = ( B + C ) ) $.
      $( Cancelling a term on the right-hand side of a sum in an equality.
         Consequence of ~ addcan2d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      addcan2ad $p |- ( ph -> A = B ) $=
        ( caddc co wceq addcan2d mpbid ) ABDIJCDIJKBCKHABCDEFGLM $.
    $}

    ${
      addneintrd.4 $e |- ( ph -> B =/= C ) $.
      $( Introducing a term on the left-hand side of a sum in a negated
         equality.  Contrapositive of ~ addcanad .  Consequence of ~ addcand .
         (Contributed by David Moews, 28-Feb-2017.) $)
      addneintrd $p |- ( ph -> ( A + B ) =/= ( A + C ) ) $=
        ( caddc co wne addcand necon3bid mpbird ) ABCIJZBDIJZKCDKHAOPCDABCDEFGL
        MN $.
    $}

    ${
      addneintr2d.4 $e |- ( ph -> A =/= B ) $.
      $( Introducing a term on the right-hand side of a sum in a negated
         equality.  Contrapositive of ~ addcan2ad .  Consequence of
         ~ addcan2d .  (Contributed by David Moews, 28-Feb-2017.) $)
      addneintr2d $p |- ( ph -> ( A + C ) =/= ( B + C ) ) $=
        ( caddc co wne addcan2d necon3bid mpbird ) ABDIJZCDIJZKBCKHAOPBCABCDEFG
        LMN $.
    $}
  $}

  $( Alternate proof of ~ 0cn .  (Contributed by NM, 19-Feb-2005.)  (Revised by
     Mario Carneiro, 27-May-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  0cnALT $p |- 0 e. CC $=
    ( vx ci cv caddc co cc0 wceq wrex wcel ax-icn cnegex ax-mp addcl mpan eleq1
    cc syl5ibcom rexlimiv ) BACZDEZFGZAPHZFPIZBPIZUBJABKLUAUCAPSPIZTPIZUAUCUDUE
    UFJBSMNTFPOQRL $.

  ${
    $d x y A $.  $d x y B $.
    $( Existential uniqueness of negatives.  Theorem I.2 of [Apostol] p. 18.
       (Contributed by NM, 22-Nov-1994.)  (Proof shortened by Mario Carneiro,
       27-May-2016.) $)
    negeu $p |- ( ( A e. CC /\ B e. CC ) -> E! x e. CC ( A + x ) = B ) $=
      ( vy cc wcel wa cv caddc co wceq wreu wrex cnegex adantr wral simpl simpr
      cc0 wb addcl syl2anr simplrr oveq1d simplll simplrl simpllr eqeq2d addcld
      addassd addid2d 3eqtr3rd addcand bitrd ralrimiva reu6i syl2anc rexlimddv
      ) BEFZCEFZGZBDHZIJZSKZBAHZIJZCKZAELZDEUSVDDEMUTDBNOVAVBEFZVDGZGZVBCIJZEFZ
      VGVEVLKZTZAEPVHVJVIUTVMVAVIVDQUSUTRVBCUAUBVKVOAEVKVEEFZGZVGVFBVLIJZKVNVQC
      VRVFVQVCCIJSCIJVRCVQVCSCIVAVIVDVPUCUDVQBVBCUSUTVJVPUEZVAVIVDVPUFZUSUTVJVP
      UGZUJVQCWAUKULUHVQBVEVLVSVKVPRVQVBCVTWAUIUMUNUOVGAEVLUPUQUR $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( Value of subtraction, which is the (unique) element ` x ` such that
       ` B + x = A ` .  (Contributed by NM, 4-Aug-2007.)  (Revised by Mario
       Carneiro, 2-Nov-2013.) $)
    subval $p |- ( ( A e. CC /\ B e. CC ) ->
                  ( A - B ) = ( iota_ x e. CC ( B + x ) = A ) ) $=
      ( vy vz cc wcel cv caddc co wceq crio cmin wa negeu riotacl syl riotabidv
      wreu ancoms eqeq2 oveq1 eqeq1d df-sub ovmpt2g mpd3an3 ) BFGZCFGZCAHZIJZBK
      ZAFLZFGZBCMJULKUHUGUMUHUGNUKAFSUMACBOUKAFPQTDEBCFFEHZUIIJZDHZKZAFLULMUOBK
      ZAFLFUPBKUQURAFUPBUOUARUNCKZURUKAFUSUOUJBUNCUIIUBUCRDEAUDUEUF $.
  $}

  $( Equality theorem for negatives.  (Contributed by NM, 10-Feb-1995.) $)
  negeq $p |- ( A = B -> -u A = -u B ) $=
    ( wceq cc0 cmin co cneg oveq2 df-neg 3eqtr4g ) ABCDAEFDBEFAGBGABDEHAIBIJ $.

  ${
    negeqi.1 $e |- A = B $.
    $( Equality inference for negatives.  (Contributed by NM, 14-Feb-1995.) $)
    negeqi $p |- -u A = -u B $=
      ( wceq cneg negeq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    negeqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for negatives.  (Contributed by NM, 14-May-1999.) $)
    negeqd $p |- ( ph -> -u A = -u B ) $=
      ( wceq cneg negeq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d y z A $.  $d y ph $.  $d x y z $.
    nfnegd.1 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfneg .  (Contributed by NM, 29-Feb-2008.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfnegd $p |- ( ph -> F/_ x -u A ) $=
      ( cneg cc0 cmin co df-neg nfcvd nfovd nfcxfrd ) ABCEFCGHCIABFCGABFJABGJDK
      L $.
  $}

  ${
    $d y A $.  $d x y $.
    nfneg.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for the negative of a complex number.
       (Contributed by NM, 12-Jun-2005.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfneg $p |- F/_ x -u A $=
      ( cneg wnfc wtru a1i nfnegd trud ) ABDEFABABEFCGHI $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d x y z $.
    $( Move class substitution in and out of the negative of a number.
       (Contributed by NM, 1-Mar-2008.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    csbnegg $p |- ( A e. V -> [_ A / x ]_ -u B = -u [_ A / x ]_ B ) $=
      ( wcel cc0 cmin co csb cneg csbov2g df-neg csbeq2i 3eqtr4g ) BDEABFCGHZIF
      ABCIZGHABCJZIPJABFCGDKABQOCLMPLN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Closure law for subtraction.  (Contributed by NM, 10-May-1999.)
       (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A - B ) e. CC ) $=
      ( vx cc wcel wa cmin co cv caddc wceq crio subval wreu ancoms riotacl syl
      negeu eqeltrd ) ADEZBDEZFZABGHBCIJHAKZCDLZDCABMUBUCCDNZUDDEUATUECBAROUCCD
      PQS $.
  $}

  $( Closure law for negative.  (Contributed by NM, 6-Aug-2003.) $)
  negcl $p |- ( A e. CC -> -u A e. CC ) $=
    ( cc wcel cneg cc0 cmin co df-neg 0cn subcl mpan syl5eqel ) ABCZADEAFGZBAHE
    BCMNBCIEAJKL $.

  $( ` -u _i ` is a complex number (common case).  (Contributed by David A.
     Wheeler, 7-Dec-2018.) $)
  negicn $p |- -u _i e. CC $=
    ( ci cc wcel cneg ax-icn negcl ax-mp ) ABCADBCEAFG $.

  ${
    $d x y z $.
    $( Subtraction is an operation on the complex numbers.  (Contributed by NM,
       4-Aug-2007.)  (Revised by Mario Carneiro, 16-Nov-2013.) $)
    subf $p |- - : ( CC X. CC ) --> CC $=
      ( vy vz vx cv caddc co wceq cc crio wcel wral cxp cmin wf wa subval subcl
      eqeltrrd rgen2a df-sub fmpt2 mpbi ) ADZBDEFCDZGBHIZHJZAHKCHKHHLHMNUFCAHUD
      HJUCHJOUDUCMFUEHBUDUCPUDUCQRSCAHHUEHMCABTUAUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Relationship between subtraction and addition.  (Contributed by NM,
       20-Jan-1997.)  (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subadd $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A - B ) = C <-> ( B + C ) = A ) ) $=
      ( vx cc wcel w3a cmin co wceq cv caddc crio wb subval eqeq1d 3adant3 wreu
      wa negeu oveq2 riota2 sylan2 3impb 3com13 bitr4d ) AEFZBEFZCEFZGABHIZCJZB
      DKZLIZAJZDEMZCJZBCLIZAJZUGUHUKUPNUIUGUHSUJUOCDABOPQUIUHUGURUPNZUIUHUGUSUH
      UGSUIUNDERUSDBATUNURDECULCJUMUQAULCBLUAPUBUCUDUEUF $.
  $}

  $( Relationship between subtraction and addition.  (Contributed by Scott
     Fenton, 5-Jul-2013.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  subadd2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
            ( ( A - B ) = C <-> ( C + B ) = A ) ) $=
    ( cc wcel w3a cmin co wceq caddc subadd simp2 simp3 addcomd eqeq1d bitrd )
    ADEZBDEZCDEZFZABGHCIBCJHZAICBJHZAIABCKTUAUBATBCQRSLQRSMNOP $.

  $( Swap subtrahend and result of subtraction.  (Contributed by NM,
     14-Dec-2007.) $)
  subsub23 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) = C <-> ( A - C ) = B ) ) $=
    ( cc wcel caddc co wceq cmin addcom 3adant1 eqeq1d subadd wb 3com23 3bitr4d
    w3a ) ADEZBDEZCDEZQZBCFGZAHCBFGZAHZABIGCHACIGBHZUAUBUCASTUBUCHRBCJKLABCMRTS
    UEUDNACBMOP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 10-May-2004.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  pncan $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) - B ) = A ) $=
    ( cc wcel wa caddc co cmin wceq simpr simpl addcomd wb addcl subadd syl3anc
    mpbird ) ACDZBCDZEZABFGZBHGAIZBAFGUAIZTBARSJZRSKZLTUACDSRUBUCMABNUDUEUABAOP
    Q $.

  $( Cancellation law for subtraction.  (Contributed by NM, 17-Apr-2005.) $)
  pncan2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) - A ) = B ) $=
    ( cc wcel caddc co cmin wceq wa addcom oveq1d pncan eqtr3d ancoms ) BCDZACD
    ZABEFZAGFZBHOPIZBAEFZAGFRBSTQAGBAJKBALMN $.

  $( Subtraction and addition of equals.  (Contributed by NM, 14-Mar-2005.) $)
  pncan3 $p |- ( ( A e. CC /\ B e. CC ) -> ( A + ( B - A ) ) = B ) $=
    ( cc wcel wa cmin co wceq caddc eqid simpr simpl subcl ancoms syl3anc mpbii
    wb subadd ) ACDZBCDZEZBAFGZUBHZAUBIGBHZUBJUATSUBCDZUCUDQSTKSTLTSUEBAMNBAUBR
    OP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 10-May-2004.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  npcan $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A - B ) + B ) = A ) $=
    ( cc wcel wa cmin co caddc subcl simpr addcomd wceq pncan3 ancoms eqtrd ) A
    CDZBCDZEZABFGZBHGBSHGZARSBABIPQJKQPTALBAMNO $.

  $( Associative-type law for addition and subtraction.  (Contributed by NM,
     6-Aug-2003.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  addsubass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                   ( ( A + B ) - C ) = ( A + ( B - C ) ) ) $=
    ( cc wcel cmin co caddc simp1 subcl 3adant1 simp3 addassd wceq npcan oveq2d
    w3a eqtrd oveq1d addcld pncan syl2anc eqtr3d ) ADEZBDEZCDEZQZABCFGZHGZCHGZC
    FGZABHGZCFGUIUGUJULCFUGUJAUHCHGZHGULUGAUHCUDUEUFIZUEUFUHDEUDBCJKZUDUEUFLZMU
    GUMBAHUEUFUMBNUDBCOKPRSUGUIDEUFUKUINUGAUHUNUOTUPUICUAUBUC $.

  $( Law for addition and subtraction.  (Contributed by NM, 19-Aug-2001.)
     (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  addsub $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A + B ) - C ) = ( ( A - C ) + B ) ) $=
    ( cc wcel w3a caddc co cmin wa addcom oveq1d 3adant3 addsubass 3com12 subcl
    wceq sylan2 3impb 3eqtrd ) ADEZBDEZCDEZFABGHZCIHZBAGHZCIHZBACIHZGHZUHBGHZUA
    UBUEUGQUCUAUBJUDUFCIABKLMUBUAUCUGUIQBACNOUBUAUCUIUJQZUBUAUCUKUAUCJUBUHDEUKA
    CPBUHKRSOT $.

  $( Commutative/associative law for addition and subtraction.  (Contributed by
     NM, 1-Feb-2007.) $)
  subadd23 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A - B ) + C ) = ( A + ( C - B ) ) ) $=
    ( cc wcel cmin co caddc wceq w3a addsub addsubass eqtr3d 3com23 ) ADEZCDEZB
    DEZABFGCHGZACBFGHGZIOPQJACHGBFGRSACBKACBLMN $.

  $( Commutative/associative law for addition and subtraction.  (Contributed by
     NM, 8-Feb-2005.) $)
  addsub12 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A + ( B - C ) ) = ( B + ( A - C ) ) ) $=
    ( cc wcel cmin co caddc w3a subadd23 subcl addcom sylan 3impa eqtr3d 3com23
    wceq wa ) ADEZCDEZBDEZABCFGHGZBACFGZHGZQSTUAIUCBHGZUBUDACBJSTUAUEUDQZSTRUCD
    EUAUFACKUCBLMNOP $.

  $( Law for subtraction and addition.  (Contributed by NM, 20-Nov-2005.) $)
  2addsub $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
                 ( ( ( A + B ) + C ) - D ) = ( ( ( A + C ) - D ) + B ) ) $=
    ( cc wcel wa caddc co cmin wceq add32 3expa oveq1d addcl addsub 3expb sylan
    adantrr an4s eqtrd ) AEFZBEFZGZCEFZDEFZGGZABHICHIZDJIACHIZBHIZDJIZUIDJIBHIZ
    UGUHUJDJUDUEUHUJKZUFUBUCUEUMABCLMSNUBUEUCUFUKULKZUBUEGUIEFZUCUFGUNACOUOUCUF
    UNUIBDPQRTUA $.

  $( Relation between sums and differences.  (Contributed by Jeff Madsen,
     17-Jun-2010.) $)
  addsubeq4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
                    ( ( A + B ) = ( C + D ) <-> ( C - A ) = ( B - D ) ) ) $=
    ( cc wcel wa cmin co wceq caddc eqcom subcl ancoms subadd 3expa an4s syl5bb
    wb sylan addcom adantl oveq1d addsubass 3com12 eqtrd adantlr addcl 3bitr2rd
    eqeq1d 3expb sylan2 ) AEFZBEFZGZCEFZDEFZGZGZCAHIZBDHIZJZDUTKIZBJZCDKIZAHIZB
    JZABKIVEJZVBVAUTJZUSVDUTVALUMUPUNUQVIVDSZUMUPGUTEFZUNUQGZVJUPUMVKCAMNVLVKVJ
    UNUQVKVJBDUTOPNTQRUSVFVCBUMURVFVCJUNUMURGZVFDCKIZAHIZVCVMVEVNAHURVEVNJUMCDU
    AUBUCURUMVOVCJZUPUQUMVPUQUPUMVPDCAUDUEPNUFUGUJURUOVEEFZVGVHSZCDUHVQUOVRVQUM
    UNVRVEABOUKNULUI $.

  ${
    pncan3oi.1 $e |- A e. CC $.
    pncan3oi.2 $e |- B e. CC $.
    $( Subtraction and addition of equals.  Almost but not exactly the same as
       ~ pncan3i and ~ pncan , this order happens often when applying
       "operations to both sides" so create a theorem specifically for it.  A
       deduction version of this is available as ~ pncand .  (Contributed by
       David A. Wheeler, 11-Oct-2018.) $)
    pncan3oi $p |- ( ( A + B ) - B ) = A $=
      ( cc wcel caddc co cmin wceq pncan mp2an ) AEFBEFABGHBIHAJCDABKL $.
  $}

  ${
    mvlladdi.1 $e |- A e. CC $.
    mvlladdi.2 $e |- B e. CC $.
    mvlladdi.3 $e |- ( A + B ) = C $.
    $( Move LHS left addition to RHS. (Contributed by David A. Wheeler,
       11-Oct-2018.) $)
    mvlladdi $p |- B = ( C - A ) $=
      ( caddc co cmin pncan3oi addcomi eqtr3i oveq1i ) BAGHZAIHBCAIHBAEDJNCAIAB
      GHNCABDEKFLML $.
  $}

  $( Subtraction of a number from itself.  (Contributed by NM, 8-Oct-1999.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  subid $p |- ( A e. CC -> ( A - A ) = 0 ) $=
    ( cc wcel cc0 caddc co cmin addid1 oveq1d wceq 0cn pncan2 mpan2 eqtr3d ) AB
    CZADEFZAGFZAAGFDOPAAGAHIODBCQDJKADLMN $.

  $( Identity law for subtraction.  (Contributed by NM, 9-May-2004.)  (Revised
     by Mario Carneiro, 27-May-2016.) $)
  subid1 $p |- ( A e. CC -> ( A - 0 ) = A ) $=
    ( cc wcel cc0 caddc co cmin addid1 oveq1d wceq 0cn pncan mpan2 eqtr3d ) ABC
    ZADEFZDGFZADGFAOPADGAHIODBCQAJKADLMN $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
  npncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) + ( B - C ) ) = ( A - C ) ) $=
    ( cc wcel w3a cmin co caddc wceq subcl 3adant3 addsubass syld3an1 wa oveq1d
    npcan eqtr3d ) ADEZBDEZCDEZFABGHZBIHZCGHZUBBCGHIHZACGHZUBDEZTSUAUDUEJSTUGUA
    ABKLUBBCMNSTUDUFJUASTOUCACGABQPLR $.

  $( Cancellation law for subtraction.  (Contributed by NM, 1-Sep-2005.) $)
  nppcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( ( A - B ) + C ) + B ) = ( A + C ) ) $=
    ( cc wcel w3a cmin co caddc subcl 3adant3 simp3 simp2 add32d wceq wa oveq1d
    npcan eqtrd ) ADEZBDEZCDEZFZABGHZCIHBIHUDBIHZCIHZACIHZUCUDCBTUAUDDEUBABJKTU
    AUBLTUAUBMNTUAUFUGOUBTUAPUEACIABRQKS $.

  $( Cancellation law for subtraction:  ((a-b)-c)+b = a-c holds for complex
     numbers a,b,c.  (Contributed by Alexander van der Vekens, 24-Mar-2018.) $)
  nnpcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC )
                    -> ( ( ( A - B ) - C ) + B ) = ( A - C ) ) $=
    ( cc wcel w3a cmin co caddc wceq subcl 3adant3 addsub eqcomd syld3an1 npcan
    oveq1d eqtrd ) ADEZBDEZCDEZFZABGHZCGHBIHZUCBIHZCGHZACGHUCDEZTSUAUDUFJSTUGUA
    ABKLUGTUAFUFUDUCBCMNOUBUEACGSTUEAJUAABPLQR $.

  $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
     14-Sep-2015.) $)
  nppcan3 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) + ( C + B ) ) = ( A + C ) ) $=
    ( cc wcel w3a cmin co caddc subcl 3adant3 simp3 simp2 addassd nppcan eqtr3d
    ) ADEZBDEZCDEZFZABGHZCIHBIHUACBIHIHACIHTUACBQRUADESABJKQRSLQRSMNABCOP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
  subcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - C ) = ( B - C ) <-> A = B ) ) $=
    ( cc wcel w3a cmin co wceq caddc wb simp1 simp3 subcl 3adant1 subadd2 npcan
    syl3anc eqeq1d eqcom syl6bb bitrd ) ADEZBDEZCDEZFZACGHBCGHZIZUGCJHZAIZABIZU
    FUCUEUGDEZUHUJKUCUDUELUCUDUEMUDUEULUCBCNOACUGPRUFUJBAIUKUFUIBAUDUEUIBIUCBCQ
    OSBATUAUB $.

  $( If the difference between two numbers is zero, they are equal.
     (Contributed by NM, 16-Nov-1999.) $)
  subeq0 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A - B ) = 0 <-> A = B ) ) $=
    ( cc wcel wa cmin co wceq cc0 subid adantl eqeq2d subcan2 3anidm23 bitr3d
    wb ) ACDZBCDZEZABFGZBBFGZHZTIHABHZSUAITRUAIHQBJKLQRUBUCPABBMNO $.

  $( Cancellation law for subtraction.  (Contributed by Scott Fenton,
     21-Jun-2013.) $)
  npncan2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A - B ) + ( B - A ) ) = 0 ) $=
    ( cc wcel wa cmin co caddc cc0 wceq npncan 3anidm13 subid adantr eqtrd ) AC
    DZBCDZEABFGBAFGHGZAAFGZIPQRSJABAKLPSIJQAMNO $.

  $( Law for double subtraction.  (Contributed by NM, 30-Jun-2005.)  (Revised
     by Mario Carneiro, 27-May-2016.) $)
  subsub2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( A - ( B - C ) ) = ( A + ( C - B ) ) ) $=
    ( cc wcel w3a cmin co caddc wceq cc0 subcl 3adant1 simp1 simp3 simp2 add12d
    syl2anc npncan2 oveq2d addid1d 3eqtrd wb addcld subadd syl3anc mpbird ) ADE
    ZBDEZCDEZFZABCGHZGHACBGHZIHZJZULUNIHZAJZUKUPAULUMIHZIHAKIHAUKULAUMUIUJULDEZ
    UHBCLMZUHUIUJNZUKUJUIUMDEUHUIUJOUHUIUJPCBLRZQUKURKAIUIUJURKJUHBCSMTUKAVAUAU
    BUKUHUSUNDEUOUQUCVAUTUKAUMVAVBUDAULUNUEUFUG $.

  $( Cancellation law for subtraction.  (Contributed by NM, 21-Jun-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  nncan $p |- ( ( A e. CC /\ B e. CC ) -> ( A - ( A - B ) ) = B ) $=
    ( cc wcel wa cmin co caddc wceq subsub2 3anidm12 pncan3 eqtrd ) ACDZBCDZEAA
    BFGFGZABAFGHGZBNOPQIAABJKABLM $.

  $( Law for double subtraction.  (Contributed by NM, 13-May-2004.) $)
  subsub $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( A - ( B - C ) ) = ( ( A - B ) + C ) ) $=
    ( cc wcel w3a cmin caddc subsub2 wceq addsubass addsub eqtr3d 3com23 eqtrd
    co ) ADEZBDEZCDEZFABCGPGPACBGPHPZABGPCHPZABCIQSRTUAJQSRFACHPBGPTUAACBKACBLM
    NO $.

  $( Cancellation law for subtraction.  (Contributed by NM, 29-Sep-2005.) $)
  nppcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - ( B + C ) ) + C ) = ( A - B ) ) $=
    ( cc wcel w3a caddc co cmin wceq addcl 3adant1 subsub syld3an2 pncan oveq2d
    eqtr3d ) ADEZBDEZCDEZFZABCGHZCIHZIHZAUBIHCGHZABIHRUBDEZSTUDUEJSTUFRBCKLAUBC
    MNUAUCBAISTUCBJRBCOLPQ $.

  $( Law for double subtraction.  (Contributed by NM, 27-Jul-2005.) $)
  subsub3 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( A - ( B - C ) ) = ( ( A + C ) - B ) ) $=
    ( cc wcel w3a cmin co caddc subsub2 wceq addsubass 3com23 eqtr4d ) ADEZBDEZ
    CDEZFABCGHGHACBGHIHZACIHBGHZABCJOQPSRKACBLMN $.

  $( Law for double subtraction.  (Contributed by NM, 19-Aug-2005.)  (Revised
     by Mario Carneiro, 27-May-2016.) $)
  subsub4 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A - B ) - C ) = ( A - ( B + C ) ) ) $=
    ( cc wcel w3a cmin co caddc wceq nppcan2 wb simp1 simp2 subcl syl2anc simp3
    addcld subadd2 syl3anc mpbird ) ADEZBDEZCDEZFZABGHZCGHABCIHZGHZJZUHCIHUFJZA
    BCKUEUFDEZUDUHDEZUIUJLUEUBUCUKUBUCUDMZUBUCUDNZABOPUBUCUDQZUEUBUGDEULUMUEBCU
    NUORAUGOPUFCUHSTUA $.

  $( Swap the second and third terms in a double subtraction.  (Contributed by
     NM, 19-Aug-2005.) $)
  sub32 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A - B ) - C ) = ( ( A - C ) - B ) ) $=
    ( cc wcel w3a caddc cmin wceq addcom 3adant1 oveq2d subsub4 3com23 3eqtr4d
    co ) ADEZBDEZCDEZFZABCGPZHPACBGPZHPZABHPCHPACHPBHPZTUAUBAHRSUAUBIQBCJKLABCM
    QSRUDUCIACBMNO $.

  $( Cancellation law for subtraction.  (Contributed by NM, 4-Sep-2005.) $)
  nnncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - ( B - C ) ) - C ) = ( A - B ) ) $=
    ( cc wcel cmin co caddc wceq subcl 3adant1 subsub4 syld3an2 wa npcan oveq2d
    w3a eqtrd ) ADEZBDEZCDEZQABCFGZFGCFGZAUBCHGZFGZABFGZSUBDEZTUAUCUEITUAUGSBCJ
    KAUBCLMTUAUEUFISTUANUDBAFBCOPKR $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  nnncan1 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) - ( A - C ) ) = ( C - B ) ) $=
    ( cc wcel w3a cmin co wceq subcl 3adant2 sub32 syld3an3 nncan oveq1d eqtrd
    ) ADEZBDEZCDEZFZABGHACGHZGHZAUAGHZBGHZCBGHQRSUADEZUBUDIQSUERACJKABUALMTUCCB
    GQSUCCIRACNKOP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 1-Oct-2005.) $)
  nnncan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - C ) - ( B - C ) ) = ( A - B ) ) $=
    ( cc wcel w3a cmin co wceq subcl 3adant1 sub32 syld3an2 nnncan eqtr3d ) ADE
    ZBDEZCDEZFABCGHZGHCGHZACGHSGHZABGHPSDEZQRTUAIQRUBPBCJKASCLMABCNO $.

  $( Cancellation law for subtraction.  (Contributed by Scott Fenton,
     23-Jun-2013.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  npncan3 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
    ( ( A - B ) + ( C - A ) ) = ( C - B ) ) $=
    ( cc wcel w3a cmin co caddc simp1 subcl ancoms 3adant2 simp2 addsub syl3anc
    wceq pncan3 oveq1d eqtr3d ) ADEZBDEZCDEZFZACAGHZIHZBGHZABGHUEIHZCBGHUDUAUED
    EZUBUGUHQUAUBUCJUAUCUIUBUCUAUICAKLMUAUBUCNAUEBOPUDUFCBGUAUCUFCQUBACRMST $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by NM,
     4-Mar-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  pnpcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A + B ) - ( A + C ) ) = ( B - C ) ) $=
    ( cc wcel w3a caddc co cmin simp1 simp2 addcld simp3 subsub4 syl3anc pncan2
    wceq 3adant3 oveq1d eqtr3d ) ADEZBDEZCDEZFZABGHZAIHZCIHZUEACGHIHZBCIHUDUEDE
    UAUCUGUHQUDABUAUBUCJZUAUBUCKLUIUAUBUCMUEACNOUDUFBCIUAUBUFBQUCABPRST $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by
     Scott Fenton, 9-Jun-2006.) $)
  pnpcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A + C ) - ( B + C ) ) = ( A - B ) ) $=
    ( cc wcel w3a caddc co cmin wceq addcom 3adant2 3adant1 oveq12d 3coml eqtrd
    pnpcan ) ADEZBDEZCDEZFZACGHZBCGHZIHCAGHZCBGHZIHZABIHZUAUBUDUCUEIRTUBUDJSACK
    LSTUCUEJRBCKMNTRSUFUGJCABQOP $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by NM,
     30-Jun-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  pnncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A + B ) - ( A - C ) ) = ( B + C ) ) $=
    ( cc wcel caddc co cmin wceq simp1 simp2 addcld simp3 subsub syl3anc pncan2
    w3a 3adant3 oveq1d eqtrd ) ADEZBDEZCDEZQZABFGZACHGHGZUEAHGZCFGZBCFGUDUEDEUA
    UCUFUHIUDABUAUBUCJZUAUBUCKLUIUAUBUCMUEACNOUDUGBCFUAUBUGBIUCABPRST $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by NM,
     30-Jun-2005.) $)
  ppncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A + B ) + ( C - B ) ) = ( A + C ) ) $=
    ( cc wcel w3a caddc co cmin wceq addcom 3adant3 oveq1d addcl subsub2 pnncan
    syld3an1 3com12 3eqtr3d ) ADEZBDEZCDEZFZABGHZBCIHZIHZBAGHZUEIHZUDCBIHGHZACG
    HZUCUDUGUEITUAUDUGJUBABKLMUDDEZUATUBUFUIJTUAUKUBABNLUDBCOQUATUBUHUJJBACPRS
    $.

  $( Rearrangement of 4 terms in a mixed addition and subtraction.
     (Contributed by NM, 4-Mar-2005.) $)
  addsub4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A + B ) - ( C + D ) ) = ( ( A - C ) + ( B - D ) ) ) $=
    ( cc wcel caddc cmin wceq simpll simplr simprl addsub syl3anc oveq1d addcld
    wa co simprr subsub4 subcl ad2ant2r addsubass 3eqtr3d ) AEFZBEFZQZCEFZDEFZQ
    ZQZABGRZCHRZDHRZACHRZBGRZDHRZULCDGRHRZUOBDHRGRZUKUMUPDHUKUEUFUHUMUPIUEUFUJJ
    ZUEUFUJKZUGUHUILZABCMNOUKULEFUHUIUNURIUKABUTVAPVBUGUHUISZULCDTNUKUOEFZUFUIU
    QUSIUEUHVDUFUIACUAUBVAVCUOBDUCNUD $.

  $( Rearrangement of 4 terms in a mixed addition and subtraction.
     (Contributed by NM, 24-Aug-2006.) $)
  subadd4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A - B ) - ( C - D ) ) = ( ( A + D ) - ( B + C ) ) ) $=
    ( cc wcel wa cmin caddc wceq subcl subsub2 3expb sylan addsub4 an42s eqtr4d
    co ) AEFZBEFZGZCEFZDEFZGZGABHRZCDHRHRZUEDCHRIRZADIRBCIRHRZUAUEEFZUDUFUGJZAB
    KUIUBUCUJUECDLMNSUCTUBUHUGJADBCOPQ $.

  $( Rearrangement of 4 terms in a subtraction.  (Contributed by NM,
     23-Nov-2007.) $)
  sub4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A - B ) - ( C - D ) ) = ( ( A - C ) - ( B - D ) ) ) $=
    ( cc wcel wa caddc cmin wceq addcom ad2ant2lr oveq2d subadd4 an4s 3eqtr4d
    co ) AEFZBEFZGCEFZDEFZGGZADHQZBCHQZIQUCCBHQZIQZABIQCDIQIQACIQBDIQIQZUBUDUEU
    CISTUDUEJRUABCKLMABCDNRTSUAUGUFJACBDNOP $.

  $( Minus 0 equals 0.  (Contributed by NM, 17-Jan-1997.) $)
  neg0 $p |- -u 0 = 0 $=
    ( cc0 cneg cmin co df-neg cc wcel wceq 0cn subid ax-mp eqtri ) ABAACDZAAEAF
    GMAHIAJKL $.

  $( Addition of a number and its negative.  (Contributed by NM,
     14-Mar-2005.) $)
  negid $p |- ( A e. CC -> ( A + -u A ) = 0 ) $=
    ( cc wcel cneg caddc co cc0 cmin df-neg oveq2i wceq 0cn pncan3 mpan2 syl5eq
    ) ABCZAADZEFAGAHFZEFZGQRAEAIJPGBCSGKLAGMNO $.

  $( Relationship between subtraction and negative.  Theorem I.3 of [Apostol]
     p. 18.  (Contributed by NM, 21-Jan-1997.)  (Proof shortened by Mario
     Carneiro, 27-May-2016.) $)
  negsub $p |- ( ( A e. CC /\ B e. CC ) -> ( A + -u B ) = ( A - B ) ) $=
    ( cc wcel wa cneg caddc co cc0 cmin wceq df-neg oveq2i a1i addsubass mp3an2
    0cn simpl addid1d oveq1d 3eqtr2d ) ACDZBCDZEZABFZGHZAIBJHZGHZAIGHZBJHZABJHU
    FUHKUDUEUGAGBLMNUBICDUCUJUHKQAIBOPUDUIABJUDAUBUCRSTUA $.

  $( Relationship between subtraction and negative.  (Contributed by NM,
     10-May-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  subneg $p |- ( ( A e. CC /\ B e. CC ) -> ( A - -u B ) = ( A + B ) ) $=
    ( cc wcel wa cneg cmin co cc0 caddc df-neg oveq2i wceq subsub mp3an2 syl5eq
    0cn subid1 adantr oveq1d eqtrd ) ACDZBCDZEZABFZGHZAIGHZBJHZABJHUDUFAIBGHZGH
    ZUHUEUIAGBKLUBICDUCUJUHMQAIBNOPUDUGABJUBUGAMUCARSTUA $.

  $( A number is equal to the negative of its negative.  Theorem I.4 of
     [Apostol] p. 18.  (Contributed by NM, 12-Jan-2002.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  negneg $p |- ( A e. CC -> -u -u A = A ) $=
    ( cc wcel cneg cc0 caddc co cmin df-neg wceq 0cn subneg syl5eq addid2 eqtrd
    mpan ) ABCZADZDZEAFGZAQSERHGZTRIEBCQUATJKEALPMANO $.

  $( Negative is one-to-one.  (Contributed by NM, 8-Feb-2005.)  (Revised by
     Mario Carneiro, 27-May-2016.) $)
  neg11 $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A = -u B <-> A = B ) ) $=
    ( cc wcel wa cneg wceq negeq negneg eqeqan12d syl5ib impbid1 ) ACDZBCDZEZAF
    ZBFZGZABGZRPFZQFZGOSPQHMNTAUABAIBIJKABHL $.

  $( Negative contraposition law.  (Contributed by NM, 9-May-2004.) $)
  negcon1 $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A = B <-> -u B = A ) ) $=
    ( cc wcel wa cneg wceq negcl neg11 sylan negneg adantr eqeq1d bitr3d syl6bb
    wb eqcom ) ACDZBCDZEZAFZBGZABFZGZUCAGTUAFZUCGZUBUDRUACDSUFUBPAHUABIJTUEAUCR
    UEAGSAKLMNAUCQO $.

  $( Negative contraposition law.  (Contributed by NM, 14-Nov-2004.) $)
  negcon2 $p |- ( ( A e. CC /\ B e. CC ) -> ( A = -u B <-> B = -u A ) ) $=
    ( cc wcel wa cneg wceq negcon1 eqcom syl6rbbr syl6bb ) ACDBCDEZABFZGZAFZBGZ
    BOGLPMAGNABHAMIJOBIK $.

  $( A number is zero iff its negative is zero.  (Contributed by NM,
     12-Jul-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  negeq0 $p |- ( A e. CC -> ( A = 0 <-> -u A = 0 ) ) $=
    ( cneg cc0 wceq cc wcel neg0 eqeq2i wb 0cn neg11 mpan2 syl5rbbr ) ABZCDNCBZ
    DZAEFZACDZOCNGHQCEFPRIJACKLM $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  subcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) = ( A - C ) <-> B = C ) ) $=
    ( cc wcel w3a caddc co wceq cmin simp2 simp1 addcomd eqeq1d simp3 addsubeq4
    wb syl22anc addcan 3bitr3d ) ADEZBDEZCDEZFZBAGHZACGHZIZABGHZUFIABJHACJHIZBC
    IUDUEUHUFUDBAUAUBUCKZUAUBUCLZMNUDUBUAUAUCUGUIQUJUKUKUAUBUCOBAACPRABCST $.

  $( Distribution of negative over subtraction.  (Contributed by NM,
     15-Nov-2004.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  negsubdi $p |- ( ( A e. CC /\ B e. CC ) -> -u ( A - B ) = ( -u A + B ) ) $=
    ( cc wcel wa cc0 cmin co caddc cneg 0cn subsub mp3an1 df-neg oveq1i 3eqtr4g
    wceq ) ACDZBCDZEFABGHZGHZFAGHZBIHZTJAJZBIHFCDRSUAUCQKFABLMTNUDUBBIANOP $.

  $( Distribution of negative over addition.  (Contributed by NM,
     10-May-2004.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  negdi $p |- ( ( A e. CC /\ B e. CC ) ->
                 -u ( A + B ) = ( -u A + -u B ) ) $=
    ( cc wcel wa cneg cmin co caddc subneg negeqd negcl negsubdi sylan2 eqtr3d
    wceq ) ACDZBCDZEZABFZGHZFZABIHZFAFTIHZSUAUCABJKRQTCDUBUDPBLATMNO $.

  $( Distribution of negative over addition.  (Contributed by NM,
     1-Jan-2006.) $)
  negdi2 $p |- ( ( A e. CC /\ B e. CC ) ->
                 -u ( A + B ) = ( -u A - B ) ) $=
    ( cc wcel wa caddc co cneg cmin negdi wceq negcl negsub sylan eqtrd ) ACDZB
    CDZEABFGHAHZBHFGZRBIGZABJPRCDQSTKALRBMNO $.

  $( Distribution of negative over subtraction.  (Contributed by NM,
     4-Oct-1999.) $)
  negsubdi2 $p |- ( ( A e. CC /\ B e. CC ) -> -u ( A - B ) = ( B - A ) ) $=
    ( cc wcel wa cmin cneg caddc negsubdi wceq negcl addcom sylan negsub ancoms
    co 3eqtrd ) ACDZBCDZEABFPGAGZBHPZBTHPZBAFPZABIRTCDSUAUBJAKTBLMSRUBUCJBANOQ
    $.

  $( Relationship between subtraction and negative.  (Contributed by Paul
     Chapman, 8-Oct-2007.) $)
  neg2sub $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A - -u B ) = ( B - A ) ) $=
    ( cc wcel wa cneg cmin co caddc wceq negcl sylan negsubdi negsubdi2 3eqtr2d
    subneg ) ACDZBCDZEAFZBFGHZSBIHZABGHFBAGHQSCDRTUAJAKSBPLABMABNO $.

  ${
    $d A x $.
    $( Closure law for negative of reals.  (Contributed by NM, 20-Jan-1997.) $)
    renegcl $p |- ( A e. RR -> -u A e. RR ) $=
      ( vx cr wcel cv caddc co cc0 wceq wrex cneg ax-rnegex wa recn cmin df-neg
      cc wb eqeq1i 0cn subadd mp3an1 syl5bb sylan2 wi eleq1a adantl sylbird mpd
      sylan rexlimdva ) ACDZABEZFGHIZBCJAKZCDZBALULUNUPBCULUMCDZMUNUOUMIZUPUQUL
      UMQDZURUNRUMNURHAOGZUMIZULUSMUNUOUTUMAPSULAQDZUSVAUNRZANHQDVBUSVCTHAUMUAU
      BUJUCUDUQURUPUEULUMCUOUFUGUHUKUI $.
  $}

  ${
    $d x A $.
    renegcl.1 $e |- A e. RR $.
    $( Closure law for negative of reals.  (Note: this inference proof style
       and the deduction theorem usage in ~ renegcl is deprecated, but is
       retained for its demonstration value.)  (Contributed by NM,
       17-Jan-1997.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    renegcli $p |- -u A e. RR $=
      ( cr wcel cneg renegcl ax-mp ) ACDAECDBAFG $.

    resubcl.2 $e |- B e. RR $.
    $( Closure law for subtraction of reals.  (Contributed by NM,
       17-Jan-1997.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    resubcli $p |- ( A - B ) e. RR $=
      ( cneg caddc co cmin cr cc wcel wceq recni negsub mp2an renegcli readdcli
      eqeltrri ) ABEZFGZABHGZIAJKBJKTUALACMBDMABNOASCBDPQR $.
  $}

  $( Closure law for subtraction of reals.  (Contributed by NM,
     20-Jan-1997.) $)
  resubcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A - B ) e. RR ) $=
    ( cr wcel wa cneg caddc cmin wceq recn negsub syl2an renegcl readdcl sylan2
    co cc eqeltrrd ) ACDZBCDZEABFZGPZABHPZCSAQDBQDUBUCITAJBJABKLTSUACDUBCDBMAUA
    NOR $.

  $( The negative of a real is real.  (Contributed by NM, 11-Aug-1999.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  negreb $p |- ( A e. CC -> ( -u A e. RR <-> A e. RR ) ) $=
    ( cc wcel cneg cr renegcl negneg eleq1d syl5ib impbid1 ) ABCZADZECZAECZMLDZ
    ECKNLFKOAEAGHIAFJ $.

  $( "Reverse" second Peano postulate analog for complex numbers:  A complex
     number minus 1 is a complex number.  (Contributed by Alexander van der
     Vekens, 18-Mar-2018.) $)
  peano2cnm $p |- ( N e. CC -> ( N - 1 ) e. CC ) $=
    ( cc wcel c1 cmin co ax-1cn subcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( "Reverse" second Peano postulate analog for reals.  (Contributed by NM,
     6-Feb-2007.) $)
  peano2rem $p |- ( N e. RR -> ( N - 1 ) e. RR ) $=
    ( cr wcel c1 cmin co 1re resubcl mpan2 ) ABCDBCADEFBCGADHI $.

  ${
    negidi.1 $e |- A e. CC $.
    $( Closure law for negative.  (Contributed by NM, 26-Nov-1994.) $)
    negcli $p |- -u A e. CC $=
      ( cc wcel cneg negcl ax-mp ) ACDAECDBAFG $.

    $( Addition of a number and its negative.  (Contributed by NM,
       26-Nov-1994.) $)
    negidi $p |- ( A + -u A ) = 0 $=
      ( cc wcel cneg caddc co cc0 wceq negid ax-mp ) ACDAAEFGHIBAJK $.

    $( A number is equal to the negative of its negative.  Theorem I.4 of
       [Apostol] p. 18.  (Contributed by NM, 8-Feb-1995.)  (Proof shortened by
       Andrew Salmon, 22-Oct-2011.) $)
    negnegi $p |- -u -u A = A $=
      ( cc wcel cneg wceq negneg ax-mp ) ACDAEEAFBAGH $.

    $( Subtraction of a number from itself.  (Contributed by NM,
       26-Nov-1994.) $)
    subidi $p |- ( A - A ) = 0 $=
      ( cc wcel cmin co cc0 wceq subid ax-mp ) ACDAAEFGHBAIJ $.

    $( Identity law for subtraction.  (Contributed by NM, 29-May-1999.) $)
    subid1i $p |- ( A - 0 ) = A $=
      ( cc wcel cc0 cmin co wceq subid1 ax-mp ) ACDAEFGAHBAIJ $.

    $( A number is nonzero iff its negative is nonzero.  (Contributed by NM,
       10-Aug-1999.) $)
    negne0bi $p |- ( A =/= 0 <-> -u A =/= 0 ) $=
      ( cc0 cneg cc wcel wceq wb negeq0 ax-mp necon3bii ) ACADZCAEFACGLCGHBAIJK
      $.

    $( The negative of a real is real.  (Contributed by NM, 11-Aug-1999.) $)
    negrebi $p |- ( -u A e. RR <-> A e. RR ) $=
      ( cc wcel cneg cr wb negreb ax-mp ) ACDAEFDAFDGBAHI $.

    ${
      negne0i.2 $e |- A =/= 0 $.
      $( The negative of a nonzero number is nonzero.  (Contributed by NM,
         30-Jul-2004.) $)
      negne0i $p |- -u A =/= 0 $=
        ( cc0 wne cneg negne0bi mpbi ) ADEAFDECABGH $.
    $}

    pncan3i.2 $e |- B e. CC $.
    $( Closure law for subtraction.  (Contributed by NM, 26-Nov-1994.)
       (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subcli $p |- ( A - B ) e. CC $=
      ( cc wcel cmin co subcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Subtraction and addition of equals.  (Contributed by NM,
       26-Nov-1994.) $)
    pncan3i $p |- ( A + ( B - A ) ) = B $=
      ( cc wcel cmin co caddc wceq pncan3 mp2an ) AEFBEFABAGHIHBJCDABKL $.

    $( Relationship between subtraction and negative.  Theorem I.3 of [Apostol]
       p. 18.  (Contributed by NM, 26-Nov-1994.)  (Proof shortened by Andrew
       Salmon, 22-Oct-2011.) $)
    negsubi $p |- ( A + -u B ) = ( A - B ) $=
      ( cc wcel cneg caddc co cmin wceq negsub mp2an ) AEFBEFABGHIABJIKCDABLM
      $.

    $( Relationship between subtraction and negative.  (Contributed by NM,
       1-Dec-2005.) $)
    subnegi $p |- ( A - -u B ) = ( A + B ) $=
      ( cc wcel cneg cmin co caddc wceq subneg mp2an ) AEFBEFABGHIABJIKCDABLM
      $.

    $( If the difference between two numbers is zero, they are equal.
       (Contributed by NM, 8-May-1999.) $)
    subeq0i $p |- ( ( A - B ) = 0 <-> A = B ) $=
      ( cc wcel cmin co cc0 wceq wb subeq0 mp2an ) AEFBEFABGHIJABJKCDABLM $.

    $( Negative is one-to-one.  (Contributed by NM, 1-Aug-1999.) $)
    neg11i $p |- ( -u A = -u B <-> A = B ) $=
      ( cc wcel cneg wceq wb neg11 mp2an ) AEFBEFAGBGHABHICDABJK $.

    $( Negative contraposition law.  (Contributed by NM, 25-Aug-1999.) $)
    negcon1i $p |- ( -u A = B <-> -u B = A ) $=
      ( cc wcel cneg wceq wb negcon1 mp2an ) AEFBEFAGBHBGAHICDABJK $.

    $( Negative contraposition law.  (Contributed by NM, 25-Aug-1999.) $)
    negcon2i $p |- ( A = -u B <-> B = -u A ) $=
      ( cc wcel cneg wceq wb negcon2 mp2an ) AEFBEFABGHBAGHICDABJK $.

    $( Distribution of negative over addition.  (Contributed by NM,
       28-Jul-1999.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    negdii $p |- -u ( A + B ) = ( -u A + -u B ) $=
      ( caddc co cneg wceq cc0 addcli negidi oveq12i eqtri negcli add4i 3eqtr2i
      00id addcani mpbi ) ABEFZTGZEFZTAGZBGZEFZEFZHUAUEHUBIAUCEFZBUDEFZEFZUFTAB
      CDJZKUIIIEFIUGIUHIEACKBDKLQMAUCBUDCACNZDBDNZOPTUAUEUJTUJNUCUDUKULJRS $.

    $( Distribution of negative over subtraction.  (Contributed by NM,
       6-Aug-1999.) $)
    negsubdii $p |- -u ( A - B ) = ( -u A + B ) $=
      ( cneg caddc co cmin negcli negdii negsubi negeqi negnegi oveq2i 3eqtr3i
      ) ABEZFGZEAEZPEZFGABHGZERBFGAPCBDIJQTABCDKLSBRFBDMNO $.

    $( Distribution of negative over subtraction.  (Contributed by NM,
       1-Oct-1999.) $)
    negsubdi2i $p |- -u ( A - B ) = ( B - A ) $=
      ( cmin co cneg caddc negsubdii negcli negsubi addcomli eqtri ) ABEFGAGZBH
      FBAEFZABCDIBNODACJBADCKLM $.

    subadd.3 $e |- C e. CC $.
    $( Relationship between subtraction and addition.  (Contributed by NM,
       26-Nov-1994.)  (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subaddi $p |- ( ( A - B ) = C <-> ( B + C ) = A ) $=
      ( cc wcel cmin co wceq caddc wb subadd mp3an ) AGHBGHCGHABIJCKBCLJAKMDEFA
      BCNO $.

    $( Relationship between subtraction and addition.  (Contributed by NM,
       15-Dec-2006.) $)
    subadd2i $p |- ( ( A - B ) = C <-> ( C + B ) = A ) $=
      ( cc wcel cmin co wceq caddc wb subadd2 mp3an ) AGHBGHCGHABIJCKCBLJAKMDEF
      ABCNO $.

    ${
      subaddri.4 $e |- ( B + C ) = A $.
      $( Relationship between subtraction and addition.  (Contributed by NM,
         16-Dec-2006.) $)
      subaddrii $p |- ( A - B ) = C $=
        ( cmin co wceq caddc subaddi mpbir ) ABHICJBCKIAJGABCDEFLM $.
    $}

    $( Swap subtrahend and result of subtraction.  (Contributed by NM,
       7-Oct-1999.) $)
    subsub23i $p |- ( ( A - B ) = C <-> ( A - C ) = B ) $=
      ( cc wcel cmin co wceq wb subsub23 mp3an ) AGHBGHCGHABIJCKACIJBKLDEFABCMN
      $.

    $( Associative-type law for subtraction and addition.  (Contributed by NM,
       16-Sep-1999.) $)
    addsubassi $p |- ( ( A + B ) - C ) = ( A + ( B - C ) ) $=
      ( cc wcel caddc co cmin wceq addsubass mp3an ) AGHBGHCGHABIJCKJABCKJIJLDE
      FABCMN $.

    $( Law for subtraction and addition.  (Contributed by NM, 6-Aug-2003.) $)
    addsubi $p |- ( ( A + B ) - C ) = ( ( A - C ) + B ) $=
      ( cc wcel caddc co cmin wceq addsub mp3an ) AGHBGHCGHABIJCKJACKJBIJLDEFAB
      CMN $.

    $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
    subcani $p |- ( ( A - B ) = ( A - C ) <-> B = C ) $=
      ( cc wcel cmin co wceq wb subcan mp3an ) AGHBGHCGHABIJACIJKBCKLDEFABCMN
      $.

    $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
    subcan2i $p |- ( ( A - C ) = ( B - C ) <-> A = B ) $=
      ( cc wcel cmin co wceq wb subcan2 mp3an ) AGHBGHCGHACIJBCIJKABKLDEFABCMN
      $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       NM, 14-Jan-2006.) $)
    pnncani $p |- ( ( A + B ) - ( A - C ) ) = ( B + C ) $=
      ( cc wcel caddc co cmin wceq pnncan mp3an ) AGHBGHCGHABIJACKJKJBCIJLDEFAB
      CMN $.

    addsub4i.4 $e |- D e. CC $.
    $( Rearrangement of 4 terms in a mixed addition and subtraction.
       (Contributed by NM, 17-Oct-1999.) $)
    addsub4i $p |- ( ( A + B ) - ( C + D ) ) =
                 ( ( A - C ) + ( B - D ) ) $=
      ( cc wcel caddc co cmin wceq addsub4 mp4an ) AIJBIJCIJDIJABKLCDKLMLACMLBD
      MLKLNEFGHABCDOP $.
  $}

  $( Alternate proof of ~ 0re .  (Contributed by NM, 19-Feb-2005.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  0reALT $p |- 0 e. RR $=
    ( c1 cmin co cc0 cr ax-1cn subidi 1re resubcli eqeltrri ) AABCDEAFGAAHHIJ
    $.

  ${
    negidd.1 $e |- ( ph -> A e. CC ) $.
    $( Closure law for negative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negcld $p |- ( ph -> -u A e. CC ) $=
      ( cc wcel cneg negcl syl ) ABDEBFDECBGH $.

    $( Subtraction of a number from itself.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subidd $p |- ( ph -> ( A - A ) = 0 ) $=
      ( cc wcel cmin co cc0 wceq subid syl ) ABDEBBFGHICBJK $.

    $( Identity law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subid1d $p |- ( ph -> ( A - 0 ) = A ) $=
      ( cc wcel cc0 cmin co wceq subid1 syl ) ABDEBFGHBICBJK $.

    $( Addition of a number and its negative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negidd $p |- ( ph -> ( A + -u A ) = 0 ) $=
      ( cc wcel cneg caddc co cc0 wceq negid syl ) ABDEBBFGHIJCBKL $.

    $( A number is equal to the negative of its negative.  Theorem I.4 of
       [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    negnegd $p |- ( ph -> -u -u A = A ) $=
      ( cc wcel cneg wceq negneg syl ) ABDEBFFBGCBHI $.

    $( A number is zero iff its negative is zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negeq0d $p |- ( ph -> ( A = 0 <-> -u A = 0 ) ) $=
      ( cc wcel cc0 wceq cneg wb negeq0 syl ) ABDEBFGBHFGICBJK $.

    $( A number is nonzero iff its negative is nonzero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negne0bd $p |- ( ph -> ( A =/= 0 <-> -u A =/= 0 ) ) $=
      ( cc0 cneg negeq0d necon3bid ) ABDBEDABCFG $.

    ${
      negcon1d.2 $e |- ( ph -> B e. CC ) $.
      $( Contraposition law for unary minus.  Deduction form of ~ negcon1 .
         (Contributed by David Moews, 28-Feb-2017.) $)
      negcon1d $p |- ( ph -> ( -u A = B <-> -u B = A ) ) $=
        ( cc wcel cneg wceq wb negcon1 syl2anc ) ABFGCFGBHCICHBIJDEBCKL $.
    $}

    ${
      negcon1ad.2 $e |- ( ph -> -u A = B ) $.
      $( Contraposition law for unary minus.  One-way deduction form of
         ~ negcon1 .  (Contributed by David Moews, 28-Feb-2017.) $)
      negcon1ad $p |- ( ph -> -u B = A ) $=
        ( cneg wceq cc negcld eqeltrrd negcon1d mpbid ) ABFZCGCFBGEABCDAMCHEABD
        IJKL $.
    $}

    ${
      neg11ad.2 $e |- ( ph -> B e. CC ) $.
      $( The negatives of two complex numbers are equal iff they are equal.
         Deduction form of ~ neg11 .  Generalization of ~ neg11d .
         (Contributed by David Moews, 28-Feb-2017.) $)
      neg11ad $p |- ( ph -> ( -u A = -u B <-> A = B ) ) $=
        ( cc wcel cneg wceq wb neg11 syl2anc ) ABFGCFGBHCHIBCIJDEBCKL $.
    $}

    ${
      negned.2 $e |- ( ph -> B e. CC ) $.
      negned.3 $e |- ( ph -> A =/= B ) $.
      $( If two complex numbers are unequal, so are their negatives.
         Contrapositive of ~ neg11d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      negned $p |- ( ph -> -u A =/= -u B ) $=
        ( cneg wne neg11ad necon3bid mpbird ) ABGZCGZHBCHFALMBCABCDEIJK $.
    $}

    ${
      negne0d.2 $e |- ( ph -> A =/= 0 ) $.
      $( The negative of a nonzero number is nonzero.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      negne0d $p |- ( ph -> -u A =/= 0 ) $=
        ( cc0 wne cneg negne0bd mpbid ) ABEFBGEFDABCHI $.
    $}

    ${
      negrebd.2 $e |- ( ph -> -u A e. RR ) $.
      $( The negative of a real is real.  (Contributed by Mario Carneiro,
         28-May-2016.) $)
      negrebd $p |- ( ph -> A e. RR ) $=
        ( cneg cr wcel cc wb negreb syl mpbid ) ABEFGZBFGZDABHGMNICBJKL $.
    $}

    pncand.2 $e |- ( ph -> B e. CC ) $.
    $( Closure law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subcld $p |- ( ph -> ( A - B ) e. CC ) $=
      ( cc wcel cmin co subcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    pncand $p |- ( ph -> ( ( A + B ) - B ) = A ) $=
      ( cc wcel caddc co cmin wceq pncan syl2anc ) ABFGCFGBCHICJIBKDEBCLM $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    pncan2d $p |- ( ph -> ( ( A + B ) - A ) = B ) $=
      ( cc wcel caddc co cmin wceq pncan2 syl2anc ) ABFGCFGBCHIBJICKDEBCLM $.

    $( Subtraction and addition of equals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    pncan3d $p |- ( ph -> ( A + ( B - A ) ) = B ) $=
      ( cc wcel cmin co caddc wceq pncan3 syl2anc ) ABFGCFGBCBHIJICKDEBCLM $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    npcand $p |- ( ph -> ( ( A - B ) + B ) = A ) $=
      ( cc wcel cmin co caddc wceq npcan syl2anc ) ABFGCFGBCHICJIBKDEBCLM $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nncand $p |- ( ph -> ( A - ( A - B ) ) = B ) $=
      ( cc wcel cmin co wceq nncan syl2anc ) ABFGCFGBBCHIHICJDEBCKL $.

    $( Relationship between subtraction and negative.  Theorem I.3 of [Apostol]
       p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    negsubd $p |- ( ph -> ( A + -u B ) = ( A - B ) ) $=
      ( cc wcel cneg caddc co cmin wceq negsub syl2anc ) ABFGCFGBCHIJBCKJLDEBCM
      N $.

    $( Relationship between subtraction and negative.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    subnegd $p |- ( ph -> ( A - -u B ) = ( A + B ) ) $=
      ( cc wcel cneg cmin co caddc wceq subneg syl2anc ) ABFGCFGBCHIJBCKJLDEBCM
      N $.

    ${
      subeq0d.3 $e |- ( ph -> ( A - B ) = 0 ) $.
      $( If the difference between two numbers is zero, they are equal.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      subeq0d $p |- ( ph -> A = B ) $=
        ( cmin co cc0 wceq cc wcel wb subeq0 syl2anc mpbid ) ABCGHIJZBCJZFABKLC
        KLQRMDEBCNOP $.
    $}

    ${
      subne0d.3 $e |- ( ph -> A =/= B ) $.
      $( Two unequal numbers have nonzero difference.  (Contributed by Mario
         Carneiro, 1-Jan-2017.) $)
      subne0d $p |- ( ph -> ( A - B ) =/= 0 ) $=
        ( cmin co cc0 wne cc wcel wceq wb subeq0 syl2anc necon3bid mpbird ) ABC
        GHZIJBCJFASIBCABKLCKLSIMBCMNDEBCOPQR $.
    $}

    ${
      $( The difference of two complex numbers is zero iff they are equal.
         Deduction form of ~ subeq0 .  Generalization of ~ subeq0d .
         (Contributed by David Moews, 28-Feb-2017.) $)
      subeq0ad $p |- ( ph -> ( ( A - B ) = 0 <-> A = B ) ) $=
        ( cc wcel cmin co cc0 wceq wb subeq0 syl2anc ) ABFGCFGBCHIJKBCKLDEBCMN
        $.
    $}

    ${
      subne0ad.3 $e |- ( ph -> ( A - B ) =/= 0 ) $.
      $( If the difference of two complex numbers is nonzero, they are
         unequal.  Converse of ~ subne0d .  Contrapositive of ~ subeq0bd .
         (Contributed by David Moews, 28-Feb-2017.) $)
      subne0ad $p |- ( ph -> A =/= B ) $=
        ( cmin co cc0 wne subeq0ad necon3bid mpbid ) ABCGHZIJBCJFANIBCABCDEKLM
        $.
    $}

    ${
      neg11d.3 $e |- ( ph -> -u A = -u B ) $.
      $( If the difference between two numbers is zero, they are equal.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      neg11d $p |- ( ph -> A = B ) $=
        ( cneg wceq neg11ad mpbid ) ABGCGHBCHFABCDEIJ $.
    $}

    $( Distribution of negative over addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negdid $p |- ( ph -> -u ( A + B ) = ( -u A + -u B ) ) $=
      ( cc wcel caddc co cneg wceq negdi syl2anc ) ABFGCFGBCHIJBJCJHIKDEBCLM $.

    $( Distribution of negative over addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negdi2d $p |- ( ph -> -u ( A + B ) = ( -u A - B ) ) $=
      ( cc wcel caddc co cneg cmin wceq negdi2 syl2anc ) ABFGCFGBCHIJBJCKILDEBC
      MN $.

    $( Distribution of negative over subtraction.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negsubdid $p |- ( ph -> -u ( A - B ) = ( -u A + B ) ) $=
      ( cc wcel cmin co cneg caddc wceq negsubdi syl2anc ) ABFGCFGBCHIJBJCKILDE
      BCMN $.

    $( Distribution of negative over subtraction.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negsubdi2d $p |- ( ph -> -u ( A - B ) = ( B - A ) ) $=
      ( cc wcel cmin co cneg wceq negsubdi2 syl2anc ) ABFGCFGBCHIJCBHIKDEBCLM
      $.

    $( Relationship between subtraction and negative.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    neg2subd $p |- ( ph -> ( -u A - -u B ) = ( B - A ) ) $=
      ( cc wcel cneg cmin co wceq neg2sub syl2anc ) ABFGCFGBHCHIJCBIJKDEBCLM $.

    subaddd.3 $e |- ( ph -> C e. CC ) $.
    $( Relationship between subtraction and addition.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    subaddd $p |- ( ph -> ( ( A - B ) = C <-> ( B + C ) = A ) ) $=
      ( cc wcel cmin co wceq caddc wb subadd syl3anc ) ABHICHIDHIBCJKDLCDMKBLNE
      FGBCDOP $.

    $( Relationship between subtraction and addition.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    subadd2d $p |- ( ph -> ( ( A - B ) = C <-> ( C + B ) = A ) ) $=
      ( cc wcel cmin co wceq caddc wb subadd2 syl3anc ) ABHICHIDHIBCJKDLDCMKBLN
      EFGBCDOP $.

    $( Associative-type law for subtraction and addition.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    addsubassd $p |- ( ph -> ( ( A + B ) - C ) = ( A + ( B - C ) ) ) $=
      ( cc wcel caddc co cmin wceq addsubass syl3anc ) ABHICHIDHIBCJKDLKBCDLKJK
      MEFGBCDNO $.

    $( Law for subtraction and addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addsubd $p |- ( ph -> ( ( A + B ) - C ) = ( ( A - C ) + B ) ) $=
      ( cc wcel caddc co cmin wceq addsub syl3anc ) ABHICHIDHIBCJKDLKBDLKCJKMEF
      GBCDNO $.

    $( Commutative/associative law for addition and subtraction.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    subadd23d $p |- ( ph -> ( ( A - B ) + C ) = ( A + ( C - B ) ) ) $=
      ( cc wcel cmin co caddc wceq subadd23 syl3anc ) ABHICHIDHIBCJKDLKBDCJKLKM
      EFGBCDNO $.

    $( Commutative/associative law for addition and subtraction.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    addsub12d $p |- ( ph -> ( A + ( B - C ) ) = ( B + ( A - C ) ) ) $=
      ( cc wcel cmin co caddc wceq addsub12 syl3anc ) ABHICHIDHIBCDJKLKCBDJKLKM
      EFGBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    npncand $p |- ( ph -> ( ( A - B ) + ( B - C ) ) = ( A - C ) ) $=
      ( cc wcel cmin co caddc wceq npncan syl3anc ) ABHICHIDHIBCJKCDJKLKBDJKMEF
      GBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nppcand $p |- ( ph -> ( ( ( A - B ) + C ) + B ) = ( A + C ) ) $=
      ( cc wcel cmin co caddc wceq nppcan syl3anc ) ABHICHIDHIBCJKDLKCLKBDLKMEF
      GBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nppcan2d $p |- ( ph -> ( ( A - ( B + C ) ) + C ) = ( A - B ) ) $=
      ( cc wcel caddc co cmin wceq nppcan2 syl3anc ) ABHICHIDHIBCDJKLKDJKBCLKME
      FGBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nppcan3d $p |- ( ph -> ( ( A - B ) + ( C + B ) ) = ( A + C ) ) $=
      ( cc wcel cmin co caddc wceq nppcan3 syl3anc ) ABHICHIDHIBCJKDCLKLKBDLKME
      FGBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsubd $p |- ( ph -> ( A - ( B - C ) ) = ( ( A - B ) + C ) ) $=
      ( cc wcel cmin co caddc wceq subsub syl3anc ) ABHICHIDHIBCDJKJKBCJKDLKMEF
      GBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsub2d $p |- ( ph -> ( A - ( B - C ) ) = ( A + ( C - B ) ) ) $=
      ( cc wcel cmin co caddc wceq subsub2 syl3anc ) ABHICHIDHIBCDJKJKBDCJKLKME
      FGBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsub3d $p |- ( ph -> ( A - ( B - C ) ) = ( ( A + C ) - B ) ) $=
      ( cc wcel cmin co caddc wceq subsub3 syl3anc ) ABHICHIDHIBCDJKJKBDLKCJKME
      FGBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsub4d $p |- ( ph -> ( ( A - B ) - C ) = ( A - ( B + C ) ) ) $=
      ( cc wcel cmin co caddc wceq subsub4 syl3anc ) ABHICHIDHIBCJKDJKBCDLKJKME
      FGBCDNO $.

    $( Swap the second and third terms in a double subtraction.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    sub32d $p |- ( ph -> ( ( A - B ) - C ) = ( ( A - C ) - B ) ) $=
      ( cc wcel cmin co wceq sub32 syl3anc ) ABHICHIDHIBCJKDJKBDJKCJKLEFGBCDMN
      $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnncand $p |- ( ph -> ( ( A - ( B - C ) ) - C ) = ( A - B ) ) $=
      ( cc wcel cmin co wceq nnncan syl3anc ) ABHICHIDHIBCDJKJKDJKBCJKLEFGBCDMN
      $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnncan1d $p |- ( ph -> ( ( A - B ) - ( A - C ) ) = ( C - B ) ) $=
      ( cc wcel cmin co wceq nnncan1 syl3anc ) ABHICHIDHIBCJKBDJKJKDCJKLEFGBCDM
      N $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnncan2d $p |- ( ph -> ( ( A - C ) - ( B - C ) ) = ( A - B ) ) $=
      ( cc wcel cmin co wceq nnncan2 syl3anc ) ABHICHIDHIBDJKCDJKJKBCJKLEFGBCDM
      N $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    npncan3d $p |- ( ph -> ( ( A - B ) + ( C - A ) ) = ( C - B ) ) $=
      ( cc wcel cmin co caddc wceq npncan3 syl3anc ) ABHICHIDHIBCJKDBJKLKDCJKME
      FGBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    pnpcand $p |- ( ph -> ( ( A + B ) - ( A + C ) ) = ( B - C ) ) $=
      ( cc wcel caddc co cmin wceq pnpcan syl3anc ) ABHICHIDHIBCJKBDJKLKCDLKMEF
      GBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    pnpcan2d $p |- ( ph -> ( ( A + C ) - ( B + C ) ) = ( A - B ) ) $=
      ( cc wcel caddc co cmin wceq pnpcan2 syl3anc ) ABHICHIDHIBDJKCDJKLKBCLKME
      FGBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    pnncand $p |- ( ph -> ( ( A + B ) - ( A - C ) ) = ( B + C ) ) $=
      ( cc wcel caddc co cmin wceq pnncan syl3anc ) ABHICHIDHIBCJKBDLKLKCDJKMEF
      GBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    ppncand $p |- ( ph -> ( ( A + B ) + ( C - B ) ) = ( A + C ) ) $=
      ( cc wcel caddc co cmin wceq ppncan syl3anc ) ABHICHIDHIBCJKDCLKJKBDJKMEF
      GBCDNO $.

    ${
      subcand.4 $e |- ( ph -> ( A - B ) = ( A - C ) ) $.
      $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      subcand $p |- ( ph -> B = C ) $=
        ( cmin co wceq cc wcel wb subcan syl3anc mpbid ) ABCIJBDIJKZCDKZHABLMCL
        MDLMRSNEFGBCDOPQ $.
    $}

    ${
      subcan2d.4 $e |- ( ph -> ( A - C ) = ( B - C ) ) $.
      $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
         22-Sep-2016.) $)
      subcan2d $p |- ( ph -> A = B ) $=
        ( cmin co wceq cc wcel wb subcan2 syl3anc mpbid ) ABDIJCDIJKZBCKZHABLMC
        LMDLMRSNEFGBCDOPQ $.
    $}

    $( Cancellation law for subtraction.  Deduction form of ~ subcan .
       Generalization of ~ subcand .  (Contributed by David Moews,
       28-Feb-2017.) $)
    subcanad $p |- ( ph -> ( ( A - B ) = ( A - C ) <-> B = C ) ) $=
      ( cc wcel cmin co wceq wb subcan syl3anc ) ABHICHIDHIBCJKBDJKLCDLMEFGBCDN
      O $.

    ${
      subneintrd.4 $e |- ( ph -> B =/= C ) $.
      $( Introducing subtraction on both sides of a statement of inequality.
         Contrapositive of ~ subcand .  (Contributed by David Moews,
         28-Feb-2017.) $)
      subneintrd $p |- ( ph -> ( A - B ) =/= ( A - C ) ) $=
        ( cmin co wne subcanad necon3bid mpbird ) ABCIJZBDIJZKCDKHAOPCDABCDEFGL
        MN $.
    $}

    ${
      $( Cancellation law for subtraction.  Deduction form of ~ subcan2 .
         Generalization of ~ subcan2d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      subcan2ad $p |- ( ph -> ( ( A - C ) = ( B - C ) <-> A = B ) ) $=
        ( cc wcel cmin co wceq wb subcan2 syl3anc ) ABHICHIDHIBDJKCDJKLBCLMEFGB
        CDNO $.
    $}

    ${
      subneintr2d.4 $e |- ( ph -> A =/= B ) $.
      $( Introducing subtraction on both sides of a statement of inequality.
         Contrapositive of ~ subcan2d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      subneintr2d $p |- ( ph -> ( A - C ) =/= ( B - C ) ) $=
        ( cmin co wne subcan2ad necon3bid mpbird ) ABDIJZCDIJZKBCKHAOPBCABCDEFG
        LMN $.
    $}

    addsub4d.4 $e |- ( ph -> D e. CC ) $.
    $( Rearrangement of 4 terms in a mixed addition and subtraction.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addsub4d $p |- ( ph ->
                ( ( A + B ) - ( C + D ) ) = ( ( A - C ) + ( B - D ) ) ) $=
      ( cc wcel caddc co cmin wceq addsub4 syl22anc ) ABJKCJKDJKEJKBCLMDELMNMBD
      NMCENMLMOFGHIBCDEPQ $.

    $( Rearrangement of 4 terms in a mixed addition and subtraction.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    subadd4d $p |- ( ph ->
                ( ( A - B ) - ( C - D ) ) = ( ( A + D ) - ( B + C ) ) ) $=
      ( cc wcel cmin co caddc wceq subadd4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBE
      NMCDNMLMOFGHIBCDEPQ $.

    $( Rearrangement of 4 terms in a subtraction.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    sub4d $p |- ( ph ->
                ( ( A - B ) - ( C - D ) ) = ( ( A - C ) - ( B - D ) ) ) $=
      ( cc wcel cmin co wceq sub4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMCELMLMN
      FGHIBCDEOP $.

    $( Law for subtraction and addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    2addsubd $p |- ( ph ->
      ( ( ( A + B ) + C ) - D ) = ( ( ( A + C ) - D ) + B ) ) $=
      ( cc wcel caddc co cmin wceq 2addsub syl22anc ) ABJKCJKDJKEJKBCLMDLMENMBD
      LMENMCLMOFGHIBCDEPQ $.

    $( Relation between sums and differences.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addsubeq4d $p |- ( ph ->
        ( ( A + B ) = ( C + D ) <-> ( C - A ) = ( B - D ) ) ) $=
      ( cc wcel caddc co wceq cmin wb addsubeq4 syl22anc ) ABJKCJKDJKEJKBCLMDEL
      MNDBOMCEOMNPFGHIBCDEQR $.
  $}

  $( Reverse the order of subtraction in an equality.  (Contributed by Scott
     Fenton, 8-Jul-2013.) $)
  subeqrev $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
    ( ( A - B ) = ( C - D ) <-> ( B - A ) = ( D - C ) ) ) $=
    ( cc wcel wa cmin co cneg wb subcl neg11 syl2an negsubdi2 eqeqan12d bitr3d
    wceq ) AEFBEFGZCEFDEFGZGABHIZJZCDHIZJZRZUAUCRZBAHIZDCHIZRSUAEFUCEFUEUFKTABL
    CDLUAUCMNSTUBUGUDUHABOCDOPQ $.

  $( Cancellation law for addition and subtraction with 1.  (Contributed by
     Alexander van der Vekens, 3-Oct-2018.) $)
  pncan1 $p |- ( A e. CC -> ( ( A + 1 ) - 1 ) = A ) $=
    ( cc wcel c1 id ax-1cn a1i pncand ) ABCZADIEDBCIFGH $.

  $( Cancellation law for subtraction and addition with 1.  (Contributed by
     Alexander van der Vekens, 5-Oct-2018.) $)
  npcan1 $p |- ( A e. CC -> ( ( A - 1 ) + 1 ) = A ) $=
    ( cc wcel c1 id ax-1cn a1i npcand ) ABCZADIEDBCIFGH $.

  ${
    subeq0bd.1 $e |- ( ph -> A e. CC ) $.
    subeq0bd.2 $e |- ( ph -> A = B ) $.
    $( If two complex numbers are equal, their difference is zero.  Consequence
       of ~ subeq0ad .  Converse of ~ subeq0d .  Contrapositive of
       ~ subne0ad .  (Contributed by David Moews, 28-Feb-2017.) $)
    subeq0bd $p |- ( ph -> ( A - B ) = 0 ) $=
      ( cmin co cc0 wceq cc eqeltrrd subeq0ad mpbird ) ABCFGHIBCIEABCDABCJEDKLM
      $.
  $}

  ${
    renegcld.1 $e |- ( ph -> A e. RR ) $.
    $( Closure law for negative of reals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    renegcld $p |- ( ph -> -u A e. RR ) $=
      ( cr wcel cneg renegcl syl ) ABDEBFDECBGH $.

    resubcld.2 $e |- ( ph -> B e. RR ) $.
    $( Closure law for subtraction of reals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    resubcld $p |- ( ph -> ( A - B ) e. RR ) $=
      ( cr wcel cmin co resubcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Multiplication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( k times k minus 1 is a complex number if k is a complex number.
     (Contributed by Alexander van der Vekens, 11-Mar-2018.) $)
  kcnktkm1cn $p |- ( K e. CC -> ( K x. ( K - 1 ) ) e. CC ) $=
    ( cc wcel c1 cmin co id ax-1cn a1i subcld mulcld ) ABCZAADEFLGZLADMDBCLHIJK
    $.

  $( Product of two sums.  (Contributed by NM, 14-Jan-2006.)  (Proof shortened
     by Andrew Salmon, 19-Nov-2011.) $)
  muladd $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
               ( ( A + B ) x. ( C + D ) ) =
       ( ( ( A x. C ) + ( D x. B ) ) + ( ( A x. D ) + ( C x. B ) ) ) ) $=
    ( cc wcel wa caddc co cmul wceq addcl 3expa adantrl oveq12d mulcl ad2ant2lr
    adddir syl2an ad2ant2l adddi adantrr ad2ant2r anandirs add32d mulcom oveq2d
    3expb sylan ad2ant2rl addassd ancoms 3eqtr3d an4s 3eqtrd ) AEFZBEFZGZCEFZDE
    FZGZGZABHIZCDHIJIZVCCJIZVCDJIZHIZACJIZBCJIZHIZADJIZBDJIZHIZHIZVHDBJIZHIZVKC
    BJIZHIHIZURVCEFZVAVDVGKZABLVSUSUTVTVCCDUAUHUIVBVEVJVFVMHURUSVEVJKZUTUPUQUSW
    AABCRMUBURUTVFVMKZUSUPUQUTWBABDRMNOVBVNVHVMHIZVIHIVPVKHIZVQHIVRVBVHVIVMUPUS
    VHEFZUQUTACPZUCZUQUSVIEFUPUTBCPQURUTVMEFZUSUPUQUTWHUPUTGVKEFZVLEFZWHUQUTGZA
    DPZBDPZVKVLLSUDNUEVBWCWDVIVQHVBVHVKHIZVLHIWNVOHIWCWDVBVLVOWNHUQUTVLVOKUPUSB
    DUFTUGVBVHVKVLWGUPUTWIUQUSWLUJZUQUTWJUPUSWMTUKVBVHVKVOWGWOUQUTVOEFZUPUSUTUQ
    WPDBPULZTUEUMUQUSVIVQKUPUTBCUFQOVBVPVKVQUPUSUQUTVPEFZUPUSGWEWPWRWKWFWQVHVOL
    SUNWOUQUSVQEFZUPUTUSUQWSCBPULQUKUOUO $.

  $( Distribution of multiplication over subtraction.  Theorem I.5 of [Apostol]
     p. 18.  (Contributed by NM, 18-Nov-2004.) $)
  subdi $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A x. ( B - C ) ) = ( ( A x. B ) - ( A x. C ) ) ) $=
    ( cc wcel w3a cmul cmin wceq caddc simp1 simp3 3adant1 adddid pncan3 ancoms
    co subcl oveq2d mulcl eqtr3d 3adant3 3adant2 wa sylan2 3impb subaddd mpbird
    eqcomd ) ADEZBDEZCDEZFZABGQZACGQZHQZABCHQZGQZUMUPURIUOURJQZUNIUMACUQJQZGQUS
    UNUMACUQUJUKULKUJUKULLUKULUQDEZUJBCRZMNUMUTBAGUKULUTBIZUJULUKVCCBOPMSUAUMUN
    UOURUJUKUNDEULABTUBUJULUODEUKACTUCUJUKULURDEZUKULUDUJVAVDVBAUQTUEUFUGUHUI
    $.

  $( Distribution of multiplication over subtraction.  Theorem I.5 of [Apostol]
     p. 18.  (Contributed by NM, 30-Dec-2005.) $)
  subdir $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A - B ) x. C ) = ( ( A x. C ) - ( B x. C ) ) ) $=
    ( cc wcel cmin co cmul wceq subdi 3coml wa subcl mulcom sylan 3impa 3adant2
    w3a 3adant1 oveq12d 3eqtr4d ) ADEZBDEZCDEZRZCABFGZHGZCAHGZCBHGZFGZUFCHGZACH
    GZBCHGZFGUDUBUCUGUJICABJKUBUCUDUKUGIZUBUCLUFDEUDUNABMUFCNOPUEULUHUMUIFUBUDU
    LUHIUCACNQUCUDUMUIIUBBCNSTUA $.

  ${
    $d A x y $.
    $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
       by NM, 10-Aug-1999.) $)
    mul02 $p |- ( A e. CC -> ( 0 x. A ) = 0 ) $=
      ( cc wcel cc0 cmul co cmin 0cn subidi oveq1i wceq subdir mp3an12 wa mulcl
      subidd mpan eqtrd syl5eqr ) ABCZDAEFZDDGFZAEFZDUBDAEDHIJTUCUAUAGFZDDBCZUE
      TUCUDKHHDDALMUETUDDKHUETNUADAOPQRS $.
  $}

  $( Zero times a real is zero.  Although we prove it as a corollary of
     ~ mul02 , the name is for consistency with the Metamath Proof Explorer
     which proves it before ~ mul02 .  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  mul02lem2 $p |- ( A e. RR -> ( 0 x. A ) = 0 ) $=
    ( cr wcel cc cc0 cmul co wceq recn mul02 syl ) ABCADCEAFGEHAIAJK $.

  $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
     by NM, 15-May-1999.)  (Revised by Scott Fenton, 3-Jan-2013.) $)
  mul01 $p |- ( A e. CC -> ( A x. 0 ) = 0 ) $=
    ( cc wcel cc0 cmul co wceq 0cn mulcom mpan2 mul02 eqtrd ) ABCZADEFZDAEFZDMD
    BCNOGHADIJAKL $.

  ${
    mul01i.1 $e |- A e. CC $.
    $( Multiplication by 0.  Theorem I.6 of [Apostol] p. 18.  (Contributed by
       NM, 23-Nov-1994.) $)
    mul02i $p |- ( 0 x. A ) = 0 $=
      ( cc wcel cc0 cmul co wceq mul02 ax-mp ) ACDEAFGEHBAIJ $.

    $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
       by NM, 23-Nov-1994.)  (Revised by Scott Fenton, 3-Jan-2013.) $)
    mul01i $p |- ( A x. 0 ) = 0 $=
      ( cc wcel cc0 cmul co wceq mul01 ax-mp ) ACDAEFGEHBAIJ $.
  $}

  ${
    mul01d.1 $e |- ( ph -> A e. CC ) $.
    $( Multiplication by 0.  Theorem I.6 of [Apostol] p. 18.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    mul02d $p |- ( ph -> ( 0 x. A ) = 0 ) $=
      ( cc wcel cc0 cmul co wceq mul02 syl ) ABDEFBGHFICBJK $.

    $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    mul01d $p |- ( ph -> ( A x. 0 ) = 0 ) $=
      ( cc wcel cc0 cmul co wceq mul01 syl ) ABDEBFGHFICBJK $.
  $}

  $( The imaginary unit ` _i ` is not zero.  (Contributed by NM,
     6-May-1999.) $)
  ine0 $p |- _i =/= 0 $=
    ( ci cc0 wceq c1 0lt1 gtneii neii caddc co cmul oveq2 ax-icn mul01i syl6req
    0re oveq1d ax-1cn addid2i ax-i2m1 3eqtr3g mto neir ) ABABCZDBCDBBDOEFGUCBDH
    IAAJIZDHIDBUCBUDDHUCUDABJIBABAJKALMNPDQRSTUAUB $.

  $( Product with negative is negative of product.  Theorem I.12 of [Apostol]
     p. 18.  (Contributed by NM, 14-May-1999.)  (Proof shortened by Mario
     Carneiro, 27-May-2016.) $)
  mulneg1 $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( -u A x. B ) = -u ( A x. B ) ) $=
    ( cc wcel wa cmin co cmul cneg wceq subdir mp3an1 simpr mul02d oveq1d eqtrd
    cc0 0cn df-neg oveq1i 3eqtr4g ) ACDZBCDZEZQAFGZBHGZQABHGZFGZAIZBHGUGIUDUFQB
    HGZUGFGZUHQCDUBUCUFUKJRQABKLUDUJQUGFUDBUBUCMNOPUIUEBHASTUGSUA $.

  $( The product with a negative is the negative of the product.  (Contributed
     by NM, 30-Jul-2004.) $)
  mulneg2 $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( A x. -u B ) = -u ( A x. B ) ) $=
    ( cc wcel wa cneg cmul co mulneg1 ancoms negcl mulcom sylan2 negeqd 3eqtr4d
    wceq ) ACDZBCDZEZBFZAGHZBAGHZFZATGHZABGHZFRQUAUCPBAIJRQTCDUDUAPBKATLMSUEUBA
    BLNO $.

  $( Swap the negative sign in a product.  (Contributed by NM, 30-Jul-2004.) $)
  mulneg12 $p |- ( ( A e. CC /\ B e. CC ) ->
                  ( -u A x. B ) = ( A x. -u B ) ) $=
    ( cc wcel wa cneg cmul co mulneg1 mulneg2 eqtr4d ) ACDBCDEAFBGHABGHFABFGHAB
    IABJK $.

  $( Product of two negatives.  Theorem I.12 of [Apostol] p. 18.  (Contributed
     by NM, 30-Jul-2004.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  mul2neg $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A x. -u B ) = ( A x. B ) ) $=
    ( cc wcel wa cneg cmul co negcl mulneg12 sylan2 negneg adantl oveq2d eqtrd
    wceq ) ACDZBCDZEZAFBFZGHZATFZGHZABGHRQTCDUAUCPBIATJKSUBBAGRUBBPQBLMNO $.

  $( Convert a subtraction to addition using multiplication by a negative.
     (Contributed by NM, 2-Feb-2007.) $)
  submul2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( A - ( B x. C ) ) = ( A + ( B x. -u C ) ) ) $=
    ( cc wcel cmul co cmin cneg caddc wceq wa adantl oveq2d mulcl negsub sylan2
    mulneg2 eqtr2d 3impb ) ADEZBDEZCDEZABCFGZHGZABCIFGZJGZKUAUBUCLZLZUGAUDIZJGZ
    UEUIUFUJAJUHUFUJKUABCRMNUHUAUDDEUKUEKBCOAUDPQST $.

  $( Product with minus one is negative.  (Contributed by NM, 16-Nov-1999.) $)
  mulm1 $p |- ( A e. CC -> ( -u 1 x. A ) = -u A ) $=
    ( cc wcel c1 cneg cmul co wceq ax-1cn mulneg1 mpan mulid2 negeqd eqtrd ) AB
    CZDEAFGZDAFGZEZAEDBCOPRHIDAJKOQAALMN $.

  $( Product of two differences.  (Contributed by NM, 14-Jan-2006.) $)
  mulsub $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
               ( ( A - B ) x. ( C - D ) ) =
       ( ( ( A x. C ) + ( D x. B ) ) - ( ( A x. D ) + ( C x. B ) ) ) ) $=
    ( cc wcel wa cneg caddc cmul cmin negsub oveqan12d wceq negcl mulneg2 mulcl
    co ancoms syl2an muladd sylanr2 sylanl2 mul2neg oveq2d negdi eqtr4d ancom2s
    ad2ant2l an42s oveq12d addcl an4s negsubd 3eqtrd eqtr3d ) AEFZBEFZGZCEFZDEF
    ZGZGZABHZIRZCDHZIRZJRZABKRZCDKRZJRACJRZDBJRZIRZADJRZCBJRZIRZKRZUSVBVEVIVGVJ
    JABLCDLMVCVHVKVFVDJRZIRZAVFJRZCVDJRZIRZIRZVMVPHZIRVQURUQVDEFZVBVHWCNZBOVAUQ
    WEGUTVFEFWFDOAVDCVFUAUBUCVCVSVMWBWDIURVAVSVMNUQUTURVAGZVRVLVKIVAURVRVLNDBUD
    SUEUIUQVAURUTWBWDNZUQVAGZUTURWHWIUTURGZGWBVNHZVOHZIRZWDWIWJVTWKWAWLIADPCBPM
    WIVNEFZVOEFZWDWMNWJADQZCBQZVNVOUFTUGUHUJUKVCVMVPUQUTURVAVMEFZUQUTGVKEFVLEFZ
    WRWGACQVAURWSDBQSVKVLULTUMUQVAURUTVPEFZWIWNWOWTURUTGWPUTURWOWQSVNVOULTUJUNU
    OUP $.

  $( Swap the order of subtraction in a multiplication.  (Contributed by Scott
     Fenton, 24-Jun-2013.) $)
  mulsub2 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
    ( ( A - B ) x. ( C - D ) ) = ( ( B - A ) x. ( D - C ) ) ) $=
    ( cc wcel wa cmin co cneg cmul wceq subcl syl2an negsubdi2 oveqan12d eqtr3d
    mul2neg ) AEFBEFGZCEFDEFGZGABHIZJZCDHIZJZKIZUAUCKIZBAHIZDCHIZKISUAEFUCEFUEU
    FLTABMCDMUAUCRNSTUBUGUDUHKABOCDOPQ $.

  ${
    mulm1.1 $e |- A e. CC $.
    $( Product with minus one is negative.  (Contributed by NM,
       31-Jul-1999.) $)
    mulm1i $p |- ( -u 1 x. A ) = -u A $=
      ( cc wcel c1 cneg cmul co wceq mulm1 ax-mp ) ACDEFAGHAFIBAJK $.

    mulneg.2 $e |- B e. CC $.
    $( Product with negative is negative of product.  Theorem I.12 of [Apostol]
       p. 18.  (Contributed by NM, 10-Feb-1995.)  (Revised by Mario Carneiro,
       27-May-2016.) $)
    mulneg1i $p |- ( -u A x. B ) = -u ( A x. B ) $=
      ( cc wcel cneg cmul co wceq mulneg1 mp2an ) AEFBEFAGBHIABHIGJCDABKL $.

    $( Product with negative is negative of product.  (Contributed by NM,
       31-Jul-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    mulneg2i $p |- ( A x. -u B ) = -u ( A x. B ) $=
      ( cc wcel cneg cmul co wceq mulneg2 mp2an ) AEFBEFABGHIABHIGJCDABKL $.

    $( Product of two negatives.  Theorem I.12 of [Apostol] p. 18.
       (Contributed by NM, 14-Feb-1995.)  (Revised by Mario Carneiro,
       27-May-2016.) $)
    mul2negi $p |- ( -u A x. -u B ) = ( A x. B ) $=
      ( cc wcel cneg cmul co wceq mul2neg mp2an ) AEFBEFAGBGHIABHIJCDABKL $.

    subdi.3 $e |- C e. CC $.
    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by NM, 26-Nov-1994.) $)
    subdii $p |- ( A x. ( B - C ) ) = ( ( A x. B ) - ( A x. C ) ) $=
      ( cc wcel cmin co cmul wceq subdi mp3an ) AGHBGHCGHABCIJKJABKJACKJIJLDEFA
      BCMN $.

    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by NM, 8-May-1999.) $)
    subdiri $p |- ( ( A - B ) x. C ) = ( ( A x. C ) - ( B x. C ) ) $=
      ( cc wcel cmin co cmul wceq subdir mp3an ) AGHBGHCGHABIJCKJACKJBCKJIJLDEF
      ABCMN $.

    muladdi.4 $e |- D e. CC $.
    $( Product of two sums.  (Contributed by NM, 17-May-1999.) $)
    muladdi $p |- ( ( A + B ) x. ( C + D ) ) =
        ( ( ( A x. C ) + ( D x. B ) ) + ( ( A x. D ) + ( C x. B ) ) ) $=
      ( cc wcel caddc co cmul wceq muladd mp4an ) AIJBIJCIJDIJABKLCDKLMLACMLDBM
      LKLADMLCBMLKLKLNEFGHABCDOP $.
  $}

  ${
    mulm1d.1 $e |- ( ph -> A e. CC ) $.
    $( Product with minus one is negative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulm1d $p |- ( ph -> ( -u 1 x. A ) = -u A ) $=
      ( cc wcel c1 cneg cmul co wceq mulm1 syl ) ABDEFGBHIBGJCBKL $.

    mulnegd.2 $e |- ( ph -> B e. CC ) $.
    $( Product with negative is negative of product.  Theorem I.12 of [Apostol]
       p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    mulneg1d $p |- ( ph -> ( -u A x. B ) = -u ( A x. B ) ) $=
      ( cc wcel cneg cmul co wceq mulneg1 syl2anc ) ABFGCFGBHCIJBCIJHKDEBCLM $.

    $( Product with negative is negative of product.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    mulneg2d $p |- ( ph -> ( A x. -u B ) = -u ( A x. B ) ) $=
      ( cc wcel cneg cmul co wceq mulneg2 syl2anc ) ABFGCFGBCHIJBCIJHKDEBCLM $.

    $( Product of two negatives.  Theorem I.12 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    mul2negd $p |- ( ph -> ( -u A x. -u B ) = ( A x. B ) ) $=
      ( cc wcel cneg cmul co wceq mul2neg syl2anc ) ABFGCFGBHCHIJBCIJKDEBCLM $.

    subdid.3 $e |- ( ph -> C e. CC ) $.
    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    subdid $p |- ( ph -> ( A x. ( B - C ) ) = ( ( A x. B ) - ( A x. C ) ) ) $=
      ( cc wcel cmin co cmul wceq subdi syl3anc ) ABHICHIDHIBCDJKLKBCLKBDLKJKME
      FGBCDNO $.

    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    subdird $p |- ( ph -> ( ( A - B ) x. C ) = ( ( A x. C ) - ( B x. C ) ) ) $=
      ( cc wcel cmin co cmul wceq subdir syl3anc ) ABHICHIDHIBCJKDLKBDLKCDLKJKM
      EFGBCDNO $.

    muladdd.4 $e |- ( ph -> D e. CC ) $.
    $( Product of two sums.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    muladdd $p |- ( ph -> ( ( A + B ) x. ( C + D ) ) =
        ( ( ( A x. C ) + ( D x. B ) ) + ( ( A x. D ) + ( C x. B ) ) ) ) $=
      ( cc wcel caddc co cmul wceq muladd syl22anc ) ABJKCJKDJKEJKBCLMDELMNMBDN
      MECNMLMBENMDCNMLMLMOFGHIBCDEPQ $.

    $( Product of two differences.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulsubd $p |- ( ph -> ( ( A - B ) x. ( C - D ) ) =
         ( ( ( A x. C ) + ( D x. B ) ) - ( ( A x. D ) + ( C x. B ) ) ) ) $=
      ( cc wcel cmin co cmul caddc wceq mulsub syl22anc ) ABJKCJKDJKEJKBCLMDELM
      NMBDNMECNMOMBENMDCNMOMLMPFGHIBCDEQR $.
  $}

  ${
    mulsubfacd.1 $e |- ( ph -> A e. CC ) $.
    mulsubfacd.2 $e |- ( ph -> B e. CC ) $.
    $( Multiplication followed by the subtraction of a factor.  (Contributed by
       Alexander van der Vekens, 28-Aug-2018.) $)
    mulsubfacd $p |- ( ph -> ( ( A x. B ) - B ) = ( ( A - 1 ) x. B ) ) $=
      ( c1 cmin co cmul cc wcel ax-1cn a1i subdird mulid2d oveq2d eqtr2d ) ABFG
      HCIHBCIHZFCIHZGHRCGHABFCDFJKALMENASCRGACEOPQ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Ordering on reals (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Addition to both sides of 'less than'.  (Contributed by NM,
       12-Nov-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    ltadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( A < B <-> ( C + A ) < ( C + B ) ) ) $=
      ( vx cr wcel clt wbr caddc co axltadd wceq wi wa readdcld addassd breq12d
      cc0 recnd cc w3a cv wrex ax-rnegex 3ad2ant3 simpl3 simpl1 syl3anc sylibrd
      simpl2 simprl simprr wb addcom eqeq1d syl2anc mpbid oveq1d addid2d sylibd
      eqtrd rexlimddv impbid ) AEFZBEFZCEFZUAZABGHZCAIJZCBIJZGHZABCKVGCDUBZIJZR
      LZVKVHMDEVFVDVNDEUCVEDCUDUEVGVLEFZVNNZNZVKVLCIJZAIJZVRBIJZGHZVHVQVKVLVIIJ
      ZVLVJIJZGHZWAVQVIEFVJEFVOVKWDMVQCAVDVEVFVPUFZVDVEVFVPUGZOVQCBWEVDVEVFVPUJ
      ZOVGVOVNUKZVIVJVLKUHVQVSWBVTWCGVQVLCAVQVLWHSZVQCWESZVQAWFSZPVQVLCBWIWJVQB
      WGSZPQUIVQVSAVTBGVQVSRAIJAVQVRRAIVQVNVRRLZVGVOVNULVQCTFZVLTFZVNWMUMWJWIWN
      WONVMVRRCVLUNUOUPUQZURVQAWKUSVAVQVTRBIJBVQVRRBIWPURVQBWLUSVAQUTVBVC $.
  $}

  ${
    ltadd2i.1 $e |- A e. RR $.
    ltadd2i.2 $e |- B e. RR $.
    ltadd2i.3 $e |- C e. RR $.
    $( Addition to both sides of 'less than'.  (Contributed by NM,
       21-Jan-1997.) $)
    ltadd2i $p |- ( A < B <-> ( C + A ) < ( C + B ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd2 mp3an ) AGHBGHCGHABIJCAKLCBKLIJMDEFA
      BCNO $.
  $}

  ${
    ltadd2d.1 $e |- ( ph -> A e. RR ) $.
    ltadd2d.2 $e |- ( ph -> B e. RR ) $.
    ltadd2d.3 $e |- ( ph -> C e. RR ) $.
    $( Addition to both sides of 'less than'.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    ltadd2d $p |- ( ph -> ( A < B <-> ( C + A ) < ( C + B ) ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd2 syl3anc ) ABHICHIDHIBCJKDBLMDCLMJKNE
      FGBCDOP $.

    ${
      ltletrd.4 $e |- ( ph -> A < B ) $.
      $( Addition to both sides of 'less than'.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      ltadd2dd $p |- ( ph -> ( C + A ) < ( C + B ) ) $=
        ( clt wbr caddc co ltadd2d mpbid ) ABCIJDBKLDCKLIJHABCDEFGMN $.

      ltletrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law deduction for 'less than', 'less than or equal to'.
         (Contributed by NM, 9-Jan-2006.) $)
      ltletrd $p |- ( ph -> A < C ) $=
        ( clt wbr cle cr wcel wa wi ltletr syl3anc mp2and ) ABCJKZCDLKZBDJKZHIA
        BMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}
  $}

  $( Positive implies nonzero.  (Contributed by NM, 3-Oct-1999.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  gt0ne0 $p |- ( ( A e. RR /\ 0 < A ) -> A =/= 0 ) $=
    ( cr wcel cc0 clt wbr wne 0red ltne sylan ) ABCZDBCDAEFADGKHDAIJ $.

  $( A number which is less than zero is not zero.  (Contributed by Stefan
     O'Rear, 13-Sep-2014.) $)
  lt0ne0 $p |- ( ( A e. RR /\ A < 0 ) -> A =/= 0 ) $=
    ( cr wcel cc0 clt wbr wa ltne necomd ) ABCADEFGDAADHI $.

  $( Addition to both sides of 'less than'.  Part of definition 11.2.7(vi) of
     [HoTT], p.  (varies).  (Contributed by NM, 12-Nov-1999.)  (Proof shortened
     by Mario Carneiro, 27-May-2016.) $)
  ltadd1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B <-> ( A + C ) < ( B + C ) ) ) $=
    ( cr wcel w3a clt wbr caddc co ltadd2 simp3 recnd simp1 addcomd simp2 bitrd
    breq12d ) ADEZBDEZCDEZFZABGHCAIJZCBIJZGHACIJZBCIJZGHABCKUBUCUEUDUFGUBCAUBCS
    TUALMZUBASTUANMOUBCBUGUBBSTUAPMORQ $.

  $( Addition to both sides of 'less than or equal to'.  Part of definition
     11.2.7(vi) of [HoTT], p.  (varies).  (Contributed by NM, 18-Oct-1999.)
     (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  leadd1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( A + C ) <_ ( B + C ) ) ) $=
    ( cr w3a clt wbr wn caddc co cle wb ltadd1 3com12 notbid simp1 simp2 lenltd
    wcel readdcld simp3 3bitr4d ) ADSZBDSZCDSZEZBAFGZHBCIJZACIJZFGZHABKGUIUHKGU
    FUGUJUDUCUEUGUJLBACMNOUFABUCUDUEPZUCUDUEQZRUFUIUHUFACUKUCUDUEUAZTUFBCULUMTR
    UB $.

  $( Addition to both sides of 'less than or equal to'.  (Contributed by NM,
     26-Oct-1999.) $)
  leadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( C + A ) <_ ( C + B ) ) ) $=
    ( cr wcel w3a cle wbr caddc co leadd1 simp1 recnd simp3 addcomd simp2 bitrd
    breq12d ) ADEZBDEZCDEZFZABGHACIJZBCIJZGHCAIJZCBIJZGHABCKUBUCUEUDUFGUBACUBAS
    TUALMUBCSTUANMZOUBBCUBBSTUAPMUGORQ $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 21-Jan-1997.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  ltsubadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( ( A - B ) < C <-> A < ( C + B ) ) ) $=
    ( cr wcel w3a co clt wbr caddc wb simp1 simp2 resubcld simp3 ltadd1 syl3anc
    cmin recnd npcand breq1d bitrd ) ADEZBDEZCDEZFZABRGZCHIZUGBJGZCBJGZHIZAUJHI
    UFUGDEUEUDUHUKKUFABUCUDUELZUCUDUEMZNUCUDUEOUMUGCBPQUFUIAUJHUFABUFAULSUFBUMS
    TUAUB $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 21-Jan-1997.) $)
  ltsubadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) < C <-> A < ( B + C ) ) ) $=
    ( cr wcel w3a cmin clt wbr caddc ltsubadd simp2 recnd addcomd breq2d bitr4d
    co simp3 ) ADEZBDEZCDEZFZABGQCHIACBJQZHIABCJQZHIABCKUBUDUCAHUBBCUBBSTUALMUB
    CSTUARMNOP $.

  $( 'Less than or equal to' relationship between subtraction and addition.
     (Contributed by NM, 17-Nov-2004.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  lesubadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) <_ C <-> A <_ ( C + B ) ) ) $=
    ( cr wcel w3a co cle wbr caddc wb simp1 simp2 resubcld simp3 leadd1 syl3anc
    cmin recnd npcand breq1d bitrd ) ADEZBDEZCDEZFZABRGZCHIZUGBJGZCBJGZHIZAUJHI
    UFUGDEUEUDUHUKKUFABUCUDUELZUCUDUEMZNUCUDUEOUMUGCBPQUFUIAUJHUFABUFAULSUFBUMS
    TUAUB $.

  $( 'Less than or equal to' relationship between subtraction and addition.
     (Contributed by NM, 10-Aug-1999.) $)
  lesubadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) <_ C <-> A <_ ( B + C ) ) ) $=
    ( cr wcel w3a cmin cle wbr caddc lesubadd simp2 recnd addcomd breq2d bitr4d
    co simp3 ) ADEZBDEZCDEZFZABGQCHIACBJQZHIABCJQZHIABCKUBUDUCAHUBBCUBBSTUALMUB
    CSTUARMNOP $.

  $( 'Less than' relationship between addition and subtraction.  (Contributed
     by NM, 17-Nov-2004.) $)
  ltaddsub $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) < C <-> A < ( C - B ) ) ) $=
    ( cr wcel w3a co clt wbr caddc wb simp1 simp3 simp2 resubcld ltadd1 syl3anc
    cmin recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACBRGZHIZABJGZUGBJGZHIZUICH
    IUFUCUGDEUDUHUKKUCUDUELUFCBUCUDUEMZUCUDUENZOUMAUGBPQUFUJCUIHUFCBUFCULSUFBUM
    STUAUB $.

  $( 'Less than' relationship between addition and subtraction.  (Contributed
     by NM, 17-Nov-2004.) $)
  ltaddsub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) < C <-> B < ( C - A ) ) ) $=
    ( cr wcel w3a caddc co clt wbr cmin wceq cc addcom syl2an 3adant3 breq1d wb
    recn ltaddsub 3com12 bitrd ) ADEZBDEZCDEZFZABGHZCIJBAGHZCIJZBCAKHIJZUFUGUHC
    IUCUDUGUHLZUEUCAMEBMEUKUDASBSABNOPQUDUCUEUIUJRBACTUAUB $.

  $( 'Less than or equal to' relationship between addition and subtraction.
     (Contributed by NM, 6-Apr-2005.) $)
  leaddsub $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) <_ C <-> A <_ ( C - B ) ) ) $=
    ( cr wcel w3a co cle wbr caddc wb simp1 simp3 simp2 resubcld leadd1 syl3anc
    cmin recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACBRGZHIZABJGZUGBJGZHIZUICH
    IUFUCUGDEUDUHUKKUCUDUELUFCBUCUDUEMZUCUDUENZOUMAUGBPQUFUJCUIHUFCBUFCULSUFBUM
    STUAUB $.

  $( 'Less than or equal to' relationship between and addition and
     subtraction.  (Contributed by NM, 6-Apr-2005.) $)
  leaddsub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) <_ C <-> B <_ ( C - A ) ) ) $=
    ( cr wcel w3a caddc co cle wbr cmin wceq cc addcom syl2an 3adant3 breq1d wb
    recn leaddsub 3com12 bitrd ) ADEZBDEZCDEZFZABGHZCIJBAGHZCIJZBCAKHIJZUFUGUHC
    IUCUDUGUHLZUEUCAMEBMEUKUDASBSABNOPQUDUCUEUIUJRBACTUAUB $.

  $( Swap subtrahends in an inequality.  (Contributed by NM, 29-Sep-2005.) $)
  suble $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) <_ C <-> ( A - C ) <_ B ) ) $=
    ( cr wcel w3a cmin co cle wbr caddc lesubadd wb lesubadd2 3com23 bitr4d ) A
    DEZBDEZCDEZFABGHCIJACBKHIJZACGHBIJZABCLQSRUATMACBNOP $.

  $( Swap subtrahends in an inequality.  (Contributed by NM, 29-Sep-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  lesub $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( A <_ ( B - C ) <-> C <_ ( B - A ) ) ) $=
    ( cr wcel cmin co cle wbr wb w3a caddc leaddsub leaddsub2 bitr3d 3com23 ) A
    DEZCDEZBDEZABCFGHIZCBAFGHIZJQRSKACLGBHITUAACBMACBNOP $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 4-Oct-1999.) $)
  ltsub23 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) < C <-> ( A - C ) < B ) ) $=
    ( cr wcel w3a cmin co clt wbr caddc ltsubadd wb ltsubadd2 3com23 bitr4d ) A
    DEZBDEZCDEZFABGHCIJACBKHIJZACGHBIJZABCLQSRUATMACBNOP $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 17-Nov-2004.) $)
  ltsub13 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( A < ( B - C ) <-> C < ( B - A ) ) ) $=
    ( cr wcel cmin co clt wbr wb w3a caddc ltaddsub ltaddsub2 bitr3d 3com23 ) A
    DEZCDEZBDEZABCFGHIZCBAFGHIZJQRSKACLGBHITUAACBMACBNOP $.

  $( Adding both sides of two 'less than or equal to' relations.  (Contributed
     by NM, 17-Apr-2005.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  le2add $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A <_ C /\ B <_ D ) -> ( A + B ) <_ ( C + D ) ) ) $=
    ( cr wcel wa cle wbr caddc co wb simpll simprl simplr leadd1 syl3anc simprr
    leadd2 readdcld anbi12d wi letr sylbid ) AEFZBEFZGZCEFZDEFZGZGZACHIZBDHIZGA
    BJKZCBJKZHIZUOCDJKZHIZGZUNUQHIZUKULUPUMURUKUEUHUFULUPLUEUFUJMZUGUHUINZUEUFU
    JOZACBPQUKUFUIUHUMURLVCUGUHUIRZVBBDCSQUAUKUNEFUOEFUQEFUSUTUBUKABVAVCTUKCBVB
    VCTUKCDVBVDTUNUOUQUCQUD $.

  $( Adding both sides of two 'less than' relations.  Theorem I.25 of [Apostol]
     p. 20.  (Contributed by NM, 15-Aug-1999.)  (Proof shortened by Mario
     Carneiro, 27-May-2016.) $)
  lt2add $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A < C /\ B < D ) -> ( A + B ) < ( C + D ) ) ) $=
    ( cr wcel wa clt wbr caddc co wb simpll simprl simplr ltadd1 syl3anc simprr
    ltadd2d readdcld anbi12d wi lttr sylbid ) AEFZBEFZGZCEFZDEFZGZGZACHIZBDHIZG
    ABJKZCBJKZHIZUOCDJKZHIZGZUNUQHIZUKULUPUMURUKUEUHUFULUPLUEUFUJMZUGUHUINZUEUF
    UJOZACBPQUKBDCVCUGUHUIRZVBSUAUKUNEFUOEFUQEFUSUTUBUKABVAVCTUKCBVBVCTUKCDVBVD
    TUNUOUQUCQUD $.

  $( Adding both sides of two orderings.  (Contributed by NM, 23-Dec-2007.) $)
  ltleadd $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A < C /\ B <_ D ) -> ( A + B ) < ( C + D ) ) ) $=
    ( cr wcel wa clt wbr caddc co wb ltadd1 3com23 3expa adantrr leadd2 readdcl
    cle 3expb adantll anbi12d wi adantr ancoms ad2ant2lr adantl ltletr syl3anc
    sylbid ) AEFZBEFZGZCEFZDEFZGZGZACHIZBDSIZGABJKZCBJKZHIZVACDJKZSIZGZUTVCHIZU
    QURVBUSVDUMUNURVBLZUOUKULUNVGUKUNULVGACBMNOPULUPUSVDLZUKULUNUOVHULUOUNVHBDC
    QNTUAUBUQUTEFZVAEFZVCEFZVEVFUCUMVIUPABRUDULUNVJUKUOUNULVJCBRUEUFUPVKUMCDRUG
    UTVAVCUHUIUJ $.

  $( Adding both sides of two orderings.  (Contributed by NM, 15-Aug-2008.) $)
  leltadd $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A <_ C /\ B < D ) -> ( A + B ) < ( C + D ) ) ) $=
    ( cr wcel wa cle wbr caddc co wi ltleadd ancomsd cc wceq recn addcom syl2an
    clt ancom2s ancom1s breqan12d sylibrd ) AEFZBEFZGZCEFZDEFZGZGACHIZBDTIZGZBA
    JKZDCJKZTIZABJKZCDJKZTIUFUEUJUMUPLZUFUEGZUIUHUSUTUIUHGGULUKUPBADCMNUAUBUGUJ
    UQUNURUOTUEAOFBOFUQUNPUFAQBQABRSUHCOFDOFURUOPUICQDQCDRSUCUD $.

  $( The sum of 2 positive numbers is positive.  (Contributed by NM,
     1-Jun-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addgt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 < B ) ) ->
                0 < ( A + B ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co 00id wi 0re lt2add mpanl12 imp syl5eqbrr
    ) ACDBCDEZFAGHFBGHEZEFFFIJZABIJZGKRSTUAGHZFCDZUCRSUBLMMFFABNOPQ $.

  $( The sum of nonnegative and positive numbers is positive.  (Contributed by
     NM, 28-Dec-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addgegt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 0 < B ) ) ->
                  0 < ( A + B ) ) $=
    ( cr wcel wa cc0 cle wbr clt caddc co 00id wi 0re leltadd mpanl12 syl5eqbrr
    imp ) ACDBCDEZFAGHFBIHEZEFFFJKZABJKZILSTUAUBIHZFCDZUDSTUCMNNFFABOPRQ $.

  $( The sum of nonnegative and positive numbers is positive.  (Contributed by
     NM, 28-Dec-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addgtge0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 <_ B ) ) ->
                  0 < ( A + B ) ) $=
    ( cr wcel wa cc0 clt wbr cle caddc co 00id wi 0re ltleadd mpanl12 syl5eqbrr
    imp ) ACDBCDEZFAGHFBIHEZEFFFJKZABJKZGLSTUAUBGHZFCDZUDSTUCMNNFFABOPRQ $.

  $( The sum of 2 nonnegative numbers is nonnegative.  (Contributed by NM,
     17-Mar-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addge0 $p |- ( ( ( A e. RR /\ B e. RR ) /\
               ( 0 <_ A /\ 0 <_ B ) ) -> 0 <_ ( A + B ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co 00id wi 0re le2add mpanl12 imp syl5eqbrr
    ) ACDBCDEZFAGHFBGHEZEFFFIJZABIJZGKRSTUAGHZFCDZUCRSUBLMMFFABNOPQ $.

  $( Adding a positive number to another number increases it.  (Contributed by
     NM, 17-Nov-2004.) $)
  ltaddpos $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 < A <-> B < ( B + A ) ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co wb ltadd2 mp3an1 wceq recn addid1d adantl
    0re breq1d bitrd ) ACDZBCDZEZFAGHZBFIJZBAIJZGHZBUFGHFCDUAUBUDUGKRFABLMUCUEB
    UFGUBUEBNUAUBBBOPQST $.

  $( Adding a positive number to another number increases it.  (Contributed by
     NM, 8-Apr-2005.) $)
  ltaddpos2 $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 < A <-> B < ( A + B ) ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co ltaddpos wceq addcom syl2an breq2d bitr4d
    cc recn ) ACDZBCDZEZFAGHBBAIJZGHBABIJZGHABKUAUCUBBGSAQDBQDUCUBLTARBRABMNOP
    $.

  $( Subtracting a positive number from another number decreases it.
     (Contributed by NM, 17-Nov-2004.)  (Proof shortened by Andrew Salmon,
     19-Nov-2011.) $)
  ltsubpos $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 < A <-> ( B - A ) < B ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co cmin ltaddpos wb ltsubadd 3anidm13 ancoms
    bitr4d ) ACDZBCDZEFAGHBBAIJGHZBAKJBGHZABLSRUATMZSRUBBABNOPQ $.

  $( Comparison of two numbers whose difference is positive.  (Contributed by
     NM, 17-Nov-2004.) $)
  posdif $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B <-> 0 < ( B - A ) ) ) $=
    ( cr wcel wa cc0 cmin co clt caddc wb resubcl ancoms simpl ltaddpos syl2anc
    wbr cc wceq recn pncan3 syl2an breq2d bitr2d ) ACDZBCDZEZFBAGHZIQZAAUHJHZIQ
    ZABIQUGUHCDZUEUIUKKUFUEULBALMUEUFNUHAOPUGUJBAIUEARDBRDUJBSUFATBTABUAUBUCUD
    $.

  $( Subtraction from both sides of 'less than or equal to'.  (Contributed by
     NM, 13-May-2004.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  lesub1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( A - C ) <_ ( B - C ) ) ) $=
    ( cr wcel w3a cmin co cle caddc simp1 simp3 simp2 resubcld lesubadd syl3anc
    wbr wb recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACGHBCGHZIQZAUGCJHZIQZABI
    QUFUCUEUGDEUHUJRUCUDUEKUCUDUELZUFBCUCUDUEMZUKNACUGOPUFUIBAIUFBCUFBULSUFCUKS
    TUAUB $.

  $( Subtraction of both sides of 'less than or equal to'.  (Contributed by NM,
     29-Sep-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  lesub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( C - B ) <_ ( C - A ) ) ) $=
    ( cr wcel w3a cle wbr cmin co caddc leadd2 wb simp3 simp1 readdcld lesubadd
    simp2 syl3anc recnd addsubd breq1d 3bitr2d resubcld leaddsub bitrd ) ADEZBD
    EZCDEZFZABGHZCBIJZAKJZCGHZULCAIJGHZUJUKCAKJZCBKJGHZUPBIJZCGHZUNABCLUJUPDEUH
    UIUSUQMUJCAUGUHUINZUGUHUIOZPUGUHUIRZUTUPBCQSUJURUMCGUJCABUJCUTTUJAVATUJBVBT
    UAUBUCUJULDEUGUIUNUOMUJCBUTVBUDVAUTULACUESUF $.

  $( Subtraction from both sides of 'less than'.  (Contributed by FL,
     3-Jan-2008.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  ltsub1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B <-> ( A - C ) < ( B - C ) ) ) $=
    ( cr wcel w3a cmin co clt caddc simp1 simp3 simp2 resubcld ltsubadd syl3anc
    wbr wb recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACGHBCGHZIQZAUGCJHZIQZABI
    QUFUCUEUGDEUHUJRUCUDUEKUCUDUELZUFBCUCUDUEMZUKNACUGOPUFUIBAIUFBCUFBULSUFCUKS
    TUAUB $.

  $( Subtraction of both sides of 'less than'.  (Contributed by NM,
     29-Sep-2005.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  ltsub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B <-> ( C - B ) < ( C - A ) ) ) $=
    ( cr wcel w3a clt wbr cmin co caddc ltadd2 wb simp3 simp1 readdcld ltsubadd
    simp2 syl3anc recnd addsubd breq1d 3bitr2d resubcld ltaddsub bitrd ) ADEZBD
    EZCDEZFZABGHZCBIJZAKJZCGHZULCAIJGHZUJUKCAKJZCBKJGHZUPBIJZCGHZUNABCLUJUPDEUH
    UIUSUQMUJCAUGUHUINZUGUHUIOZPUGUHUIRZUTUPBCQSUJURUMCGUJCABUJCUTTUJAVATUJBVBT
    UAUBUCUJULDEUGUIUNUOMUJCBUTVBUDVAUTULACUESUF $.

  $( Subtracting both sides of two 'less than' relations.  (Contributed by
     Mario Carneiro, 14-Apr-2016.) $)
  lt2sub $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A < C /\ D < B ) -> ( A - B ) < ( C - D ) ) ) $=
    ( cr wcel wa clt wbr cmin simpll simprl simplr ltsub1 syl3anc simprr ltsub2
    co wb resubcl anbi12d wi adantr resubcld adantl lttr sylbid ) AEFZBEFZGZCEF
    ZDEFZGZGZACHIZDBHIZGABJRZCBJRZHIZURCDJRZHIZGZUQUTHIZUNUOUSUPVAUNUHUKUIUOUSS
    UHUIUMKUJUKULLZUHUIUMMZACBNOUNULUIUKUPVASUJUKULPVEVDDBCQOUAUNUQEFZUREFUTEFZ
    VBVCUBUJVFUMABTUCUNCBVDVEUDUMVGUJCDTUEUQURUTUFOUG $.

  $( Subtracting both sides of two 'less than or equal to' relations.
     (Contributed by Mario Carneiro, 14-Apr-2016.) $)
  le2sub $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A <_ C /\ D <_ B ) -> ( A - B ) <_ ( C - D ) ) ) $=
    ( cr wcel wa cle wbr cmin simpll simprl simplr lesub1 syl3anc simprr lesub2
    co wb resubcl anbi12d wi adantr resubcld adantl letr sylbid ) AEFZBEFZGZCEF
    ZDEFZGZGZACHIZDBHIZGABJRZCBJRZHIZURCDJRZHIZGZUQUTHIZUNUOUSUPVAUNUHUKUIUOUSS
    UHUIUMKUJUKULLZUHUIUMMZACBNOUNULUIUKUPVASUJUKULPVEVDDBCQOUAUNUQEFZUREFUTEFZ
    VBVCUBUJVFUMABTUCUNCBVDVEUDUMVGUJCDTUEUQURUTUFOUG $.

  $( Negative of both sides of 'less than'.  Theorem I.23 of [Apostol] p. 20.
     (Contributed by NM, 27-Aug-1999.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  ltneg $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B <-> -u B < -u A ) ) $=
    ( cr wcel wa clt wbr cc0 cmin cneg 0re ltsub2 mp3an3 df-neg breq12i syl6bbr
    co wb ) ACDZBCDZEABFGZHBIQZHAIQZFGZBJZAJZFGSTHCDUAUDRKABHLMUEUBUFUCFBNANOP
    $.

  $( Contraposition of negative in 'less than'.  (Contributed by NM,
     8-Nov-2004.) $)
  ltnegcon1 $p |- ( ( A e. RR /\ B e. RR ) -> ( -u A < B <-> -u B < A ) ) $=
    ( cr wcel wa cneg clt wbr wb renegcl ltneg sylan simpl recnd negnegd breq2d
    bitrd ) ACDZBCDZEZAFZBGHZBFZUAFZGHZUCAGHRUACDSUBUEIAJUABKLTUDAUCGTATARSMNOP
    Q $.

  $( Contraposition of negative in 'less than'.  (Contributed by Mario
     Carneiro, 25-Feb-2015.) $)
  ltnegcon2 $p |- ( ( A e. RR /\ B e. RR ) -> ( A < -u B <-> B < -u A ) ) $=
    ( cr wcel wa cneg clt wbr wb renegcl ltneg sylan2 simpr recnd negnegd bitrd
    breq1d ) ACDZBCDZEZABFZGHZUAFZAFZGHZBUDGHSRUACDUBUEIBJAUAKLTUCBUDGTBTBRSMNO
    QP $.

  $( Negative of both sides of 'less than or equal to'.  (Contributed by NM,
     12-Sep-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  leneg $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ B <-> -u B <_ -u A ) ) $=
    ( cr wcel wa cle wbr cc0 cmin cneg 0re lesub2 mp3an3 df-neg breq12i syl6bbr
    co wb ) ACDZBCDZEABFGZHBIQZHAIQZFGZBJZAJZFGSTHCDUAUDRKABHLMUEUBUFUCFBNANOP
    $.

  $( Contraposition of negative in 'less than or equal to'.  (Contributed by
     NM, 10-May-2004.) $)
  lenegcon1 $p |- ( ( A e. RR /\ B e. RR ) -> ( -u A <_ B <-> -u B <_ A ) ) $=
    ( cr wcel wa cneg cle wbr wb renegcl leneg sylan recn negnegd breq2d adantr
    bitrd ) ACDZBCDZEAFZBGHZBFZTFZGHZUBAGHZRTCDSUAUDIAJTBKLRUDUEISRUCAUBGRAAMNO
    PQ $.

  $( Contraposition of negative in 'less than or equal to'.  (Contributed by
     NM, 8-Oct-2005.) $)
  lenegcon2 $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ -u B <-> B <_ -u A ) ) $=
    ( cr wcel wa cneg cle wbr wb renegcl sylan2 wceq recn negnegd adantl breq1d
    leneg bitrd ) ACDZBCDZEZABFZGHZUBFZAFZGHZBUEGHTSUBCDUCUFIBJAUBQKUAUDBUEGTUD
    BLSTBBMNOPR $.

  $( Comparison of a number and its negative to zero.  Theorem I.23 of
     [Apostol] p. 20.  (Contributed by NM, 14-May-1999.) $)
  lt0neg1 $p |- ( A e. RR -> ( A < 0 <-> 0 < -u A ) ) $=
    ( cr wcel cc0 clt wbr cneg wb 0re ltneg mpan2 neg0 breq1i syl6bb ) ABCZADEF
    ZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Comparison of a number and its negative to zero.  (Contributed by NM,
     10-May-2004.) $)
  lt0neg2 $p |- ( A e. RR -> ( 0 < A <-> -u A < 0 ) ) $=
    ( cr wcel cc0 clt wbr cneg wb 0re ltneg mpan neg0 breq2i syl6bb ) ABCZDAEFZ
    AGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  $( Comparison of a number and its negative to zero.  (Contributed by NM,
     10-May-2004.) $)
  le0neg1 $p |- ( A e. RR -> ( A <_ 0 <-> 0 <_ -u A ) ) $=
    ( cr wcel cc0 cle wbr cneg wb 0re leneg mpan2 neg0 breq1i syl6bb ) ABCZADEF
    ZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Comparison of a number and its negative to zero.  (Contributed by NM,
     24-Aug-1999.) $)
  le0neg2 $p |- ( A e. RR -> ( 0 <_ A <-> -u A <_ 0 ) ) $=
    ( cr wcel cc0 cle wbr cneg wb 0re leneg mpan neg0 breq2i syl6bb ) ABCZDAEFZ
    AGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  $( A number is less than or equal to itself plus a nonnegative number.
     (Contributed by NM, 21-Feb-2005.) $)
  addge01 $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 <_ B <-> A <_ ( A + B ) ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co wb leadd2 mp3an1 ancoms wceq recn addid1d
    0re adantr breq1d bitrd ) ACDZBCDZEZFBGHZAFIJZABIJZGHZAUGGHUCUBUEUHKZFCDUCU
    BUIRFBALMNUDUFAUGGUBUFAOUCUBAAPQSTUA $.

  $( A number is less than or equal to itself plus a nonnegative number.
     (Contributed by NM, 27-Jul-2005.) $)
  addge02 $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 <_ B <-> A <_ ( B + A ) ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co addge01 cc wceq recn addcom syl2an breq2d
    bitrd ) ACDZBCDZEZFBGHAABIJZGHABAIJZGHABKUAUBUCAGSALDBLDUBUCMTANBNABOPQR $.

  $( Two nonnegative numbers are zero iff their sum is zero.  (Contributed by
     Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  add20 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) )
                        -> ( ( A + B ) = 0 <-> ( A = 0 /\ B = 0 ) ) ) $=
    ( cr wcel cc0 cle wbr wa caddc wceq simpllr simplrl simplll addge02 syl2anc
    co wb mpbid simpr breqtrd simplrr letri3d mpbir2and oveq2d addid1d 3eqtr3rd
    0red recnd jca ex oveq12 00id syl6eq impbid1 ) ACDZEAFGZHZBCDZEBFGZHZHZABIP
    ZEJZAEJZBEJZHZVAVCVFVAVCHZVDVEVGVBAEIPEAVGBEAIVGVEBEFGUSVGBVBEFVGUPBVBFGZUO
    UPUTVCKVGURUOUPVHQUQURUSVCLZUOUPUTVCMZBANORVAVCSZTUQURUSVCUAVGBEVIVGUGUBUCZ
    UDVKVGAVGAVJUHUEUFVLUIUJVFVBEEIPEAEBEIUKULUMUN $.

  $( Nonnegative subtraction.  (Contributed by NM, 14-Mar-2005.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  subge0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( 0 <_ ( A - B ) <-> B <_ A ) ) $=
    ( cr wcel wa cc0 caddc co cle wbr cmin wb 0red simpr simpl leaddsub syl3anc
    recnd addid2d breq1d bitr3d ) ACDZBCDZEZFBGHZAIJZFABKHIJZBAIJUDFCDUCUBUFUGL
    UDMUBUCNZUBUCOFBAPQUDUEBAIUDBUDBUHRSTUA $.

  $( Nonpositive subtraction.  (Contributed by NM, 20-Mar-2008.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  suble0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( ( A - B ) <_ 0 <-> A <_ B ) ) $=
    ( cr wcel wa cmin co cc0 cle wbr wb suble mp3an3 simpl recnd subid1d breq1d
    0re bitrd ) ACDZBCDZEZABFGHIJZAHFGZBIJZABIJTUAHCDUCUEKRABHLMUBUDABIUBAUBATU
    ANOPQS $.

  $( The sum of a real number and a second real number is less then the real
     number iff the second real number is negative.  (Contributed by Alexander
     van der Vekens, 30-May-2018.) $)
  leaddle0 $p |- ( ( A e. RR /\ B e. RR ) -> ( ( A + B ) <_ A <-> B <_ 0 ) ) $=
    ( cr wcel wa caddc co cle wbr cmin wb leaddsub2 3anidm13 wceq subidd adantr
    cc0 recn breq2d bitrd ) ACDZBCDZEZABFGAHIZBAAJGZHIZBQHIUAUBUDUFKABALMUCUEQB
    HUAUEQNUBUAAAROPST $.

  $( Nonnegative subtraction.  (Contributed by NM, 27-Jul-2005.) $)
  subge02 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( 0 <_ B <-> ( A - B ) <_ A ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co cmin addge01 wb lesubadd 3anidm13 bitr4d
    ) ACDZBCDZEFBGHAABIJGHZABKJAGHZABLQRTSMABANOP $.

  $( Lemma to show a nonnegative number is zero.  (Contributed by NM,
     8-Oct-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  lesub0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( ( 0 <_ A /\ B <_ ( B - A ) ) <-> A = 0 ) ) $=
    ( cr wcel wa cc0 wceq cle wbr cmin co 0red letri3 sylan2 ancom simpr lesub2
    wb simpl syl3anc recnd subid1d breq1d bitrd ancoms anbi2d syl5bb bitr2d ) A
    CDZBCDZEZAFGZAFHIZFAHIZEZUNBBAJKZHIZEZUJUIFCDZULUORUJLAFMNUOUNUMEUKURUMUNOU
    KUMUQUNUJUIUMUQRUJUIEZUMBFJKZUPHIZUQUTUIUSUJUMVBRUJUIPUTLUJUISZAFBQTUTVABUP
    HUTBUTBVCUAUBUCUDUEUFUGUH $.

  $( The product of two negative numbers is positive.  (Contributed by Jeff
     Hankins, 8-Jun-2009.) $)
  mullt0 $p |- ( ( ( A e. RR /\ A < 0 ) /\ ( B e. RR /\ B < 0 ) )
               -> 0 < ( A x. B ) ) $=
    ( cr wcel cc0 clt wbr wa cneg cmul renegcl adantr lt0neg1 biimpa jca mulgt0
    co syl2an cc recn wceq mul2neg ad2ant2r breqtrd ) ACDZAEFGZHZBCDZBEFGZHZHEA
    IZBIZJQZABJQZFUGUKCDZEUKFGZHULCDZEULFGZHEUMFGUJUGUOUPUEUOUFAKLUEUFUPAMNOUJU
    QURUHUQUIBKLUHUIURBMNOUKULPRUEUHUMUNUAZUFUIUEASDBSDUSUHATBTABUBRUCUD $.

  $( 0 is less than or equal to 1.  (Contributed by Mario Carneiro,
     29-Apr-2015.) $)
  0le1 $p |- 0 <_ 1 $=
    ( cc0 c1 0re 1re 0lt1 ltleii ) ABCDEF $.

  ${
    lt2.1 $e |- A e. RR $.
    $( 'Less than or equal to' is reflexive.  (Contributed by NM,
       18-Aug-1999.) $)
    leidi $p |- A <_ A $=
      ( cr wcel cle wbr leid ax-mp ) ACDAAEFBAGH $.

    $( Positive means nonzero (useful for ordering theorems involving
       division).  (Contributed by NM, 16-Sep-1999.) $)
    gt0ne0i $p |- ( 0 < A -> A =/= 0 ) $=
      ( cc0 0re ltnei ) CADBE $.

    ${
      gt0ne0i.2 $e |- 0 < A $.
      $( Positive implies nonzero.  (Contributed by NM, 15-May-1999.) $)
      gt0ne0ii $p |- A =/= 0 $=
        ( cc0 clt wbr wne gt0ne0i ax-mp ) DAEFADGCABHI $.
    $}

    lt2.2 $e |- B e. RR $.
    $( Addition of 2 positive numbers is positive.  (Contributed by NM,
       16-May-1999.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    addgt0i $p |- ( ( 0 < A /\ 0 < B ) -> 0 < ( A + B ) ) $=
      ( cr wcel cc0 clt wbr wa caddc co addgt0 mpanl12 ) AEFBEFGAHIGBHIJGABKLHI
      CDABMN $.

    $( Addition of 2 nonnegative numbers is nonnegative.  (Contributed by NM,
       28-May-1999.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    addge0i $p |- ( ( 0 <_ A /\ 0 <_ B ) -> 0 <_ ( A + B ) ) $=
      ( cr wcel cc0 cle wbr wa caddc co addge0 mpanl12 ) AEFBEFGAHIGBHIJGABKLHI
      CDABMN $.

    $( Addition of nonnegative and positive numbers is positive.  (Contributed
       by NM, 25-Sep-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    addgegt0i $p |- ( ( 0 <_ A /\ 0 < B ) -> 0 < ( A + B ) ) $=
      ( cr wcel cc0 cle wbr clt wa caddc co addgegt0 mpanl12 ) AEFBEFGAHIGBJIKG
      ABLMJICDABNO $.

    ${
      addgt0i.3 $e |- 0 < A $.
      addgt0i.4 $e |- 0 < B $.
      $( Addition of 2 positive numbers is positive.  (Contributed by NM,
         18-May-1999.) $)
      addgt0ii $p |- 0 < ( A + B ) $=
        ( cc0 clt wbr caddc co addgt0i mp2an ) GAHIGBHIGABJKHIEFABCDLM $.
    $}

    $( Two nonnegative numbers are zero iff their sum is zero.  (Contributed by
       NM, 28-Jul-1999.) $)
    add20i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
      ( ( A + B ) = 0 <-> ( A = 0 /\ B = 0 ) ) ) $=
      ( cr wcel cc0 cle wbr wa caddc co wceq wb add20 an4s mpanl12 ) AEFZBEFZGA
      HIZGBHIZJABKLGMAGMBGMJNZCDRTSUAUBABOPQ $.

    $( Negative of both sides of 'less than'.  Theorem I.23 of [Apostol]
       p. 20.  (Contributed by NM, 21-Jan-1997.) $)
    ltnegi $p |- ( A < B <-> -u B < -u A ) $=
      ( cr wcel clt wbr cneg wb ltneg mp2an ) AEFBEFABGHBIAIGHJCDABKL $.

    $( Negative of both sides of 'less than or equal to'.  (Contributed by NM,
       1-Aug-1999.) $)
    lenegi $p |- ( A <_ B <-> -u B <_ -u A ) $=
      ( cr wcel cle wbr cneg wb leneg mp2an ) AEFBEFABGHBIAIGHJCDABKL $.

    $( Contraposition of negative in 'less than'.  (Contributed by NM,
       14-May-1999.) $)
    ltnegcon2i $p |- ( A < -u B <-> B < -u A ) $=
      ( cr wcel cneg clt wbr wb ltnegcon2 mp2an ) AEFBEFABGHIBAGHIJCDABKL $.

    $( Lemma to show a nonnegative number is zero.  (Contributed by NM,
       8-Oct-1999.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    lesub0i $p |- ( ( 0 <_ A /\ B <_ ( B - A ) ) <-> A = 0 ) $=
      ( cr wcel cc0 cle wbr cmin co wa wceq wb lesub0 mp2an ) AEFBEFGAHIBBAJKHI
      LAGMNCDABOP $.

    $( Adding a positive number to another number increases it.  (Contributed
       by NM, 25-Aug-1999.) $)
    ltaddposi $p |- ( 0 < A <-> B < ( B + A ) ) $=
      ( cr wcel cc0 clt wbr caddc co wb ltaddpos mp2an ) AEFBEFGAHIBBAJKHILCDAB
      MN $.

    $( Comparison of two numbers whose difference is positive.  (Contributed by
       NM, 19-Aug-2001.) $)
    posdifi $p |- ( A < B <-> 0 < ( B - A ) ) $=
      ( cr wcel clt wbr cc0 cmin co wb posdif mp2an ) AEFBEFABGHIBAJKGHLCDABMN
      $.

    $( Contraposition of negative in 'less than'.  (Contributed by NM,
       14-May-1999.) $)
    ltnegcon1i $p |- ( -u A < B <-> -u B < A ) $=
      ( cr wcel cneg clt wbr wb ltnegcon1 mp2an ) AEFBEFAGBHIBGAHIJCDABKL $.

    $( Contraposition of negative in 'less than or equal to'.  (Contributed by
       NM, 6-Apr-2005.) $)
    lenegcon1i $p |- ( -u A <_ B <-> -u B <_ A ) $=
      ( cr wcel cneg cle wbr wb lenegcon1 mp2an ) AEFBEFAGBHIBGAHIJCDABKL $.

    $( Nonnegative subtraction.  (Contributed by NM, 13-Aug-2000.) $)
    subge0i $p |- ( 0 <_ ( A - B ) <-> B <_ A ) $=
      ( cr wcel cc0 cmin co cle wbr wb subge0 mp2an ) AEFBEFGABHIJKBAJKLCDABMN
      $.

    lt2.3 $e |- C e. RR $.
    $( Addition to both sides of 'less than'.  Theorem I.18 of [Apostol]
       p. 20.  (Contributed by NM, 21-Jan-1997.) $)
    ltadd1i $p |- ( A < B <-> ( A + C ) < ( B + C ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd1 mp3an ) AGHBGHCGHABIJACKLBCKLIJMDEFA
      BCNO $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by NM,
       11-Aug-1999.) $)
    leadd1i $p |- ( A <_ B <-> ( A + C ) <_ ( B + C ) ) $=
      ( cr wcel cle wbr caddc co wb leadd1 mp3an ) AGHBGHCGHABIJACKLBCKLIJMDEFA
      BCNO $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by NM,
       11-Aug-1999.) $)
    leadd2i $p |- ( A <_ B <-> ( C + A ) <_ ( C + B ) ) $=
      ( cr wcel cle wbr caddc co wb leadd2 mp3an ) AGHBGHCGHABIJCAKLCBKLIJMDEFA
      BCNO $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by NM, 21-Jan-1997.)  (Proof shortened by Andrew Salmon,
       19-Nov-2011.) $)
    ltsubaddi $p |- ( ( A - B ) < C <-> A < ( C + B ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd mp3an ) AGHBGHCGHABIJCKLACBMJ
      KLNDEFABCOP $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by NM, 30-Sep-1999.)  (Proof shortened by Andrew Salmon,
       19-Nov-2011.) $)
    lesubaddi $p |- ( ( A - B ) <_ C <-> A <_ ( C + B ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd mp3an ) AGHBGHCGHABIJCKLACBMJ
      KLNDEFABCOP $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by NM, 21-Jan-1997.) $)
    ltsubadd2i $p |- ( ( A - B ) < C <-> A < ( B + C ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd2 mp3an ) AGHBGHCGHABIJCKLABCM
      JKLNDEFABCOP $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by NM, 3-Aug-1999.) $)
    lesubadd2i $p |- ( ( A - B ) <_ C <-> A <_ ( B + C ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd2 mp3an ) AGHBGHCGHABIJCKLABCM
      JKLNDEFABCOP $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by NM, 14-May-1999.) $)
    ltaddsubi $p |- ( ( A + B ) < C <-> A < ( C - B ) ) $=
      ( cr wcel caddc co clt wbr cmin wb ltaddsub mp3an ) AGHBGHCGHABIJCKLACBMJ
      KLNDEFABCOP $.

    lt.4 $e |- D e. RR $.
    $( Adding both side of two inequalities.  Theorem I.25 of [Apostol] p. 20.
       (Contributed by NM, 14-May-1999.) $)
    lt2addi $p |- ( ( A < C /\ B < D ) -> ( A + B ) < ( C + D ) ) $=
      ( cr wcel clt wbr wa caddc co wi lt2add mp4an ) AIJBIJCIJDIJACKLBDKLMABNO
      CDNOKLPEFGHABCDQR $.

    $( Adding both side of two inequalities.  (Contributed by NM,
       16-Sep-1999.) $)
    le2addi $p |- ( ( A <_ C /\ B <_ D ) -> ( A + B ) <_ ( C + D ) ) $=
      ( cr wcel cle wbr wa caddc co wi le2add mp4an ) AIJBIJCIJDIJACKLBDKLMABNO
      CDNOKLPEFGHABCDQR $.
  $}

  ${
    gt0ne0d.1 $e |- ( ph -> 0 < A ) $.
    $( Positive implies nonzero.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    gt0ne0d $p |- ( ph -> A =/= 0 ) $=
      ( cc0 cr wcel clt wbr wne 0re ltne sylancr ) ADEFDBGHBDIJCDBKL $.
  $}

  ${
    lt0ne0d.1 $e |- ( ph -> A < 0 ) $.
    $( Something less than zero is not zero.  Deduction form.  (Contributed by
       David Moews, 28-Feb-2017.) $)
    lt0ne0d $p |- ( ph -> A =/= 0 ) $=
      ( cc0 clt wbr wne wceq 0re ltnri breq1 mtbiri necon2ai syl ) ABDEFZBDGCOB
      DBDHODDEFDIJBDDEKLMN $.
  $}

  ${
    leidd.1 $e |- ( ph -> A e. RR ) $.
    $( 'Less than or equal to' is reflexive.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    leidd $p |- ( ph -> A <_ A ) $=
      ( cr wcel cle wbr leid syl ) ABDEBBFGCBHI $.

    $( Comparison of a number and its negative to zero.  Theorem I.23 of
       [Apostol] p. 20.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    lt0neg1d $p |- ( ph -> ( A < 0 <-> 0 < -u A ) ) $=
      ( cr wcel cc0 clt wbr cneg wb lt0neg1 syl ) ABDEBFGHFBIGHJCBKL $.

    $( Comparison of a number and its negative to zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    lt0neg2d $p |- ( ph -> ( 0 < A <-> -u A < 0 ) ) $=
      ( cr wcel cc0 clt wbr cneg wb lt0neg2 syl ) ABDEFBGHBIFGHJCBKL $.

    $( Comparison of a number and its negative to zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    le0neg1d $p |- ( ph -> ( A <_ 0 <-> 0 <_ -u A ) ) $=
      ( cr wcel cc0 cle wbr cneg wb le0neg1 syl ) ABDEBFGHFBIGHJCBKL $.

    $( Comparison of a number and its negative to zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    le0neg2d $p |- ( ph -> ( 0 <_ A <-> -u A <_ 0 ) ) $=
      ( cr wcel cc0 cle wbr cneg wb le0neg2 syl ) ABDEFBGHBIFGHJCBKL $.

    ltnegd.2 $e |- ( ph -> B e. RR ) $.
    ${
      addgegt0d.3 $e |- ( ph -> 0 <_ A ) $.
      addgegt0d.4 $e |- ( ph -> 0 < B ) $.
      $( Addition of nonnegative and positive numbers is positive.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      addgegt0d $p |- ( ph -> 0 < ( A + B ) ) $=
        ( cr wcel cc0 cle wbr clt caddc co addgegt0 syl22anc ) ABHICHIJBKLJCMLJ
        BCNOMLDEFGBCPQ $.
    $}

    ${
      addgt0d.3 $e |- ( ph -> 0 < A ) $.
      addgt0d.4 $e |- ( ph -> 0 < B ) $.
      $( Addition of 2 positive numbers is positive.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      addgt0d $p |- ( ph -> 0 < ( A + B ) ) $=
        ( cc0 0red ltled addgegt0d ) ABCDEAHBAIDFJGK $.
    $}

    ${
      addge0d.3 $e |- ( ph -> 0 <_ A ) $.
      addge0d.4 $e |- ( ph -> 0 <_ B ) $.
      $( Addition of 2 nonnegative numbers is nonnegative.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      addge0d $p |- ( ph -> 0 <_ ( A + B ) ) $=
        ( cr wcel cc0 cle wbr caddc co addge0 syl22anc ) ABHICHIJBKLJCKLJBCMNKL
        DEFGBCOP $.
    $}

    $( Negative of both sides of 'less than'.  Theorem I.23 of [Apostol]
       p. 20.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    ltnegd $p |- ( ph -> ( A < B <-> -u B < -u A ) ) $=
      ( cr wcel clt wbr cneg wb ltneg syl2anc ) ABFGCFGBCHICJBJHIKDEBCLM $.

    $( Negative of both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    lenegd $p |- ( ph -> ( A <_ B <-> -u B <_ -u A ) ) $=
      ( cr wcel cle wbr cneg wb leneg syl2anc ) ABFGCFGBCHICJBJHIKDEBCLM $.

    ${
      ltnegcon1d.3 $e |- ( ph -> -u A < B ) $.
      $( Contraposition of negative in 'less than'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltnegcon1d $p |- ( ph -> -u B < A ) $=
        ( cneg clt wbr cr wcel wb ltnegcon1 syl2anc mpbid ) ABGCHIZCGBHIZFABJKC
        JKPQLDEBCMNO $.
    $}

    ${
      ltnegcon2d.3 $e |- ( ph -> A < -u B ) $.
      $( Contraposition of negative in 'less than'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltnegcon2d $p |- ( ph -> B < -u A ) $=
        ( cneg clt wbr cr wcel wb ltnegcon2 syl2anc mpbid ) ABCGHIZCBGHIZFABJKC
        JKPQLDEBCMNO $.

    $}

    ${
      lenegcon1d.3 $e |- ( ph -> -u A <_ B ) $.
      $( Contraposition of negative in 'less than or equal to'.  (Contributed
         by Mario Carneiro, 27-May-2016.) $)
      lenegcon1d $p |- ( ph -> -u B <_ A ) $=
        ( cneg cle wbr cr wcel wb lenegcon1 syl2anc mpbid ) ABGCHIZCGBHIZFABJKC
        JKPQLDEBCMNO $.

    $}

    ${
      lenegcon2d.3 $e |- ( ph -> A <_ -u B ) $.
      $( Contraposition of negative in 'less than or equal to'.  (Contributed
         by Mario Carneiro, 27-May-2016.) $)
      lenegcon2d $p |- ( ph -> B <_ -u A ) $=
        ( cneg cle wbr cr wcel wb lenegcon2 syl2anc mpbid ) ABCGHIZCBGHIZFABJKC
        JKPQLDEBCMNO $.
    $}

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltaddposd $p |- ( ph -> ( 0 < A <-> B < ( B + A ) ) ) $=
      ( cr wcel cc0 clt wbr caddc co wb ltaddpos syl2anc ) ABFGCFGHBIJCCBKLIJMD
      EBCNO $.

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltaddpos2d $p |- ( ph -> ( 0 < A <-> B < ( A + B ) ) ) $=
      ( cr wcel cc0 clt wbr caddc co wb ltaddpos2 syl2anc ) ABFGCFGHBIJCBCKLIJM
      DEBCNO $.

    $( Subtracting a positive number from another number decreases it.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    ltsubposd $p |- ( ph -> ( 0 < A <-> ( B - A ) < B ) ) $=
      ( cr wcel cc0 clt wbr cmin co wb ltsubpos syl2anc ) ABFGCFGHBIJCBKLCIJMDE
      BCNO $.

    $( Comparison of two numbers whose difference is positive.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    posdifd $p |- ( ph -> ( A < B <-> 0 < ( B - A ) ) ) $=
      ( cr wcel clt wbr cc0 cmin co wb posdif syl2anc ) ABFGCFGBCHIJCBKLHIMDEBC
      NO $.

    $( A number is less than or equal to itself plus a nonnegative number.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addge01d $p |- ( ph -> ( 0 <_ B <-> A <_ ( A + B ) ) ) $=
      ( cr wcel cc0 cle wbr caddc co wb addge01 syl2anc ) ABFGCFGHCIJBBCKLIJMDE
      BCNO $.

    $( A number is less than or equal to itself plus a nonnegative number.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addge02d $p |- ( ph -> ( 0 <_ B <-> A <_ ( B + A ) ) ) $=
      ( cr wcel cc0 cle wbr caddc co wb addge02 syl2anc ) ABFGCFGHCIJBCBKLIJMDE
      BCNO $.

    $( Nonnegative subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subge0d $p |- ( ph -> ( 0 <_ ( A - B ) <-> B <_ A ) ) $=
      ( cr wcel cc0 cmin co cle wbr wb subge0 syl2anc ) ABFGCFGHBCIJKLCBKLMDEBC
      NO $.

    $( Nonpositive subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    suble0d $p |- ( ph -> ( ( A - B ) <_ 0 <-> A <_ B ) ) $=
      ( cr wcel cmin co cc0 cle wbr wb suble0 syl2anc ) ABFGCFGBCHIJKLBCKLMDEBC
      NO $.

    $( Nonnegative subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subge02d $p |- ( ph -> ( 0 <_ B <-> ( A - B ) <_ A ) ) $=
      ( cr wcel cc0 cle wbr cmin co wb subge02 syl2anc ) ABFGCFGHCIJBCKLBIJMDEB
      CNO $.

    ltadd1d.3 $e |- ( ph -> C e. RR ) $.
    $( Addition to both sides of 'less than'.  Theorem I.18 of [Apostol]
       p. 20.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    ltadd1d $p |- ( ph -> ( A < B <-> ( A + C ) < ( B + C ) ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNE
      FGBCDOP $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    leadd1d $p |- ( ph -> ( A <_ B <-> ( A + C ) <_ ( B + C ) ) ) $=
      ( cr wcel cle wbr caddc co wb leadd1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNE
      FGBCDOP $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    leadd2d $p |- ( ph -> ( A <_ B <-> ( C + A ) <_ ( C + B ) ) ) $=
      ( cr wcel cle wbr caddc co wb leadd2 syl3anc ) ABHICHIDHIBCJKDBLMDCLMJKNE
      FGBCDOP $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltsubaddd $p |- ( ph -> ( ( A - B ) < C <-> A < ( C + B ) ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd syl3anc ) ABHICHIDHIBCJKDLMBD
      CNKLMOEFGBCDPQ $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    lesubaddd $p |- ( ph -> ( ( A - B ) <_ C <-> A <_ ( C + B ) ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd syl3anc ) ABHICHIDHIBCJKDLMBD
      CNKLMOEFGBCDPQ $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltsubadd2d $p |- ( ph -> ( ( A - B ) < C <-> A < ( B + C ) ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd2 syl3anc ) ABHICHIDHIBCJKDLMB
      CDNKLMOEFGBCDPQ $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    lesubadd2d $p |- ( ph -> ( ( A - B ) <_ C <-> A <_ ( B + C ) ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd2 syl3anc ) ABHICHIDHIBCJKDLMB
      CDNKLMOEFGBCDPQ $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltaddsubd $p |- ( ph -> ( ( A + B ) < C <-> A < ( C - B ) ) ) $=
      ( cr wcel caddc co clt wbr cmin wb ltaddsub syl3anc ) ABHICHIDHIBCJKDLMBD
      CNKLMOEFGBCDPQ $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 29-Dec-2016.) $)
    ltaddsub2d $p |- ( ph -> ( ( A + B ) < C <-> B < ( C - A ) ) ) $=
      ( cr wcel caddc co clt wbr cmin wb ltaddsub2 syl3anc ) ABHICHIDHIBCJKDLMC
      DBNKLMOEFGBCDPQ $.

    $( 'Less than or equal to' relationship between and addition and
       subtraction.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    leaddsub2d $p |- ( ph -> ( ( A + B ) <_ C <-> B <_ ( C - A ) ) ) $=
      ( cr wcel caddc co cle wbr cmin wb leaddsub2 syl3anc ) ABHICHIDHIBCJKDLMC
      DBNKLMOEFGBCDPQ $.

    ${
      subled.4 $e |- ( ph -> ( A - B ) <_ C ) $.
      $( Swap subtrahends in an inequality.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      subled $p |- ( ph -> ( A - C ) <_ B ) $=
        ( cmin co cle wbr cr wcel wb suble syl3anc mpbid ) ABCIJDKLZBDIJCKLZHAB
        MNCMNDMNSTOEFGBCDPQR $.
    $}

    ${
      lesubd.4 $e |- ( ph -> A <_ ( B - C ) ) $.
      $( Swap subtrahends in an inequality.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      lesubd $p |- ( ph -> C <_ ( B - A ) ) $=
        ( cmin co cle wbr cr wcel wb lesub syl3anc mpbid ) ABCDIJKLZDCBIJKLZHAB
        MNCMNDMNSTOEFGBCDPQR $.
    $}

    ${
      ltsub23d.4 $e |- ( ph -> ( A - B ) < C ) $.
      $( 'Less than' relationship between subtraction and addition.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      ltsub23d $p |- ( ph -> ( A - C ) < B ) $=
        ( cmin co clt wbr cr wcel wb ltsub23 syl3anc mpbid ) ABCIJDKLZBDIJCKLZH
        ABMNCMNDMNSTOEFGBCDPQR $.
    $}

    ${
      ltsub13d.4 $e |- ( ph -> A < ( B - C ) ) $.
      $( 'Less than' relationship between subtraction and addition.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      ltsub13d $p |- ( ph -> C < ( B - A ) ) $=
        ( cmin co clt wbr cr wcel wb ltsub13 syl3anc mpbid ) ABCDIJKLZDCBIJKLZH
        ABMNCMNDMNSTOEFGBCDPQR $.
    $}

    $( Subtraction from both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    lesub1d $p |- ( ph -> ( A <_ B <-> ( A - C ) <_ ( B - C ) ) ) $=
      ( cr wcel cle wbr cmin co wb lesub1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNEF
      GBCDOP $.

    $( Subtraction of both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    lesub2d $p |- ( ph -> ( A <_ B <-> ( C - B ) <_ ( C - A ) ) ) $=
      ( cr wcel cle wbr cmin co wb lesub2 syl3anc ) ABHICHIDHIBCJKDCLMDBLMJKNEF
      GBCDOP $.

    $( Subtraction from both sides of 'less than'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    ltsub1d $p |- ( ph -> ( A < B <-> ( A - C ) < ( B - C ) ) ) $=
      ( cr wcel clt wbr cmin co wb ltsub1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNEF
      GBCDOP $.

    $( Subtraction of both sides of 'less than'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    ltsub2d $p |- ( ph -> ( A < B <-> ( C - B ) < ( C - A ) ) ) $=
      ( cr wcel clt wbr cmin co wb ltsub2 syl3anc ) ABHICHIDHIBCJKDCLMDBLMJKNEF
      GBCDOP $.

    ${
      ltadd1dd.4 $e |- ( ph -> A < B ) $.
      $( Addition to both sides of 'less than'.  Theorem I.18 of [Apostol]
         p. 20.  (Contributed by Mario Carneiro, 30-May-2016.) $)
      ltadd1dd $p |- ( ph -> ( A + C ) < ( B + C ) ) $=
        ( clt wbr caddc co ltadd1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Subtraction from both sides of 'less than'.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      ltsub1dd $p |- ( ph -> ( A - C ) < ( B - C ) ) $=
        ( clt wbr cmin co ltsub1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Subtraction of both sides of 'less than'.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      ltsub2dd $p |- ( ph -> ( C - B ) < ( C - A ) ) $=
        ( clt wbr cmin co ltsub2d mpbid ) ABCIJDCKLDBKLIJHABCDEFGMN $.
    $}

    ${
      leadd1dd.4 $e |- ( ph -> A <_ B ) $.
      $( Addition to both sides of 'less than or equal to'.  (Contributed by
         Mario Carneiro, 30-May-2016.) $)
      leadd1dd $p |- ( ph -> ( A + C ) <_ ( B + C ) ) $=
        ( cle wbr caddc co leadd1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Addition to both sides of 'less than or equal to'.  (Contributed by
         Mario Carneiro, 30-May-2016.) $)
      leadd2dd $p |- ( ph -> ( C + A ) <_ ( C + B ) ) $=
        ( cle wbr caddc co leadd2d mpbid ) ABCIJDBKLDCKLIJHABCDEFGMN $.

      $( Subtraction from both sides of 'less than or equal to'.  (Contributed
         by Mario Carneiro, 30-May-2016.) $)
      lesub1dd $p |- ( ph -> ( A - C ) <_ ( B - C ) ) $=
        ( cle wbr cmin co lesub1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Subtraction of both sides of 'less than or equal to'.  (Contributed by
         Mario Carneiro, 30-May-2016.) $)
      lesub2dd $p |- ( ph -> ( C - B ) <_ ( C - A ) ) $=
        ( cle wbr cmin co lesub2d mpbid ) ABCIJDCKLDBKLIJHABCDEFGMN $.
    $}

    lt2addd.4 $e |- ( ph -> D e. RR ) $.
    ${
      le2addd.5 $e |- ( ph -> A <_ C ) $.
      le2addd.6 $e |- ( ph -> B <_ D ) $.
      $( Adding both side of two inequalities.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      le2addd $p |- ( ph -> ( A + B ) <_ ( C + D ) ) $=
        ( cle wbr caddc co cr wcel wa wi le2add syl22anc mp2and ) ABDLMZCELMZBC
        NODENOLMZJKABPQCPQDPQEPQUCUDRUESFGHIBCDETUAUB $.

      $( Subtracting both sides of two 'less than or equal to' relations.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      le2subd $p |- ( ph -> ( A - D ) <_ ( C - B ) ) $=
        ( cle wbr cmin co cr wcel wa wi le2sub syl22anc mp2and ) ABDLMZCELMZBEN
        ODCNOLMZJKABPQEPQDPQCPQUCUDRUESFIHGBEDCTUAUB $.
    $}

    ${
      ltleaddd.5 $e |- ( ph -> A < C ) $.
      ltleaddd.6 $e |- ( ph -> B <_ D ) $.
      $( Adding both sides of two orderings.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      ltleaddd $p |- ( ph -> ( A + B ) < ( C + D ) ) $=
        ( clt wbr cle caddc co cr wcel wa wi ltleadd syl22anc mp2and ) ABDLMZCE
        NMZBCOPDEOPLMZJKABQRCQRDQREQRUDUESUFTFGHIBCDEUAUBUC $.
    $}

    ${
      leltaddd.5 $e |- ( ph -> A <_ C ) $.
      leltaddd.6 $e |- ( ph -> B < D ) $.
      $( Adding both sides of two orderings.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      leltaddd $p |- ( ph -> ( A + B ) < ( C + D ) ) $=
        ( cle wbr clt caddc co cr wcel wa wi leltadd syl22anc mp2and ) ABDLMZCE
        NMZBCOPDEOPNMZJKABQRCQRDQREQRUDUESUFTFGHIBCDEUAUBUC $.
    $}

    ${
      lt2addd.5 $e |- ( ph -> A < C ) $.
      lt2addd.6 $e |- ( ph -> B < D ) $.
      $( Adding both side of two inequalities.  Theorem I.25 of [Apostol]
         p. 20.  (Contributed by Mario Carneiro, 27-May-2016.) $)
      lt2addd $p |- ( ph -> ( A + B ) < ( C + D ) ) $=
        ( ltled ltleaddd ) ABCDEFGHIJACEGIKLM $.

      $( Subtracting both sides of two 'less than' relations.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      lt2subd $p |- ( ph -> ( A - D ) < ( C - B ) ) $=
        ( clt wbr cmin co cr wcel wa wi lt2sub syl22anc mp2and ) ABDLMZCELMZBEN
        ODCNOLMZJKABPQEPQDPQCPQUCUDRUESFIHGBEDCTUAUB $.
    $}
  $}

  $( Addition and subtraction on one side of 'less than'.  (Contributed by AV,
     24-Nov-2018.) $)
  ltaddsublt $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                    ( B < C <-> ( ( A + B ) - C ) < A ) ) $=
    ( cr wcel w3a clt caddc co cmin wb ltadd2 3comr readdcl 3adant3 simp3 simp1
    wbr ltsubaddd bitr4d ) ADEZBDEZCDEZFZBCGRZABHIZACHIGRZUFCJIAGRUBUCUAUEUGKBC
    ALMUDUFCAUAUBUFDEUCABNOUAUBUCPUAUBUCQST $.

  $( ` 1 <_ 1 ` .  Common special case.  (Contributed by David A. Wheeler,
     16-Jul-2016.) $)
  1le1 $p |- 1 <_ 1 $=
    ( c1 1re leidi ) ABC $.

  $( A positive sum must have a positive addend.  Part of Definition 11.2.7(vi)
     of [HoTT], p.  (varies).  (Contributed by Jim Kingdon, 26-Jan-2020.) $)
  gt0add $p |- ( ( A e. RR /\ B e. RR /\ 0 < ( A + B ) ) ->
      ( 0 < A \/ 0 < B ) ) $=
    ( cr wcel cc0 caddc co clt wbr w3a wo simp3 wi 0red simp1 readdcld axltwlin
    simp2 syl3anc mpd ltaddposd orbi2d mpbird ) ACDZBCDZEABFGZHIZJZEAHIZEBHIZKU
    IAUFHIZKZUHUGULUDUEUGLUHECDUFCDUDUGULMUHNUHABUDUEUGOZUDUEUGRZPUMEUFAQSTUHUJ
    UKUIUHBAUNUMUAUBUC $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Real Apartness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c #RR $. $( 'Apart' relation (over real numbers) $)

  $( Class of real apartness relation. $)
  creap $a class #RR $.

  ${
    $d x y $.
    $( Define real apartness.  Definition in Section 11.2.1 of [HoTT], p.
       (varies).  Although ` #RR ` is an apartness relation on the reals (see
       ~ df-ap for more discussion of apartness relations), for our purposes it
       is just a stepping stone to defining ` # ` which is an apartness
       relation on complex numbers.  On the reals, ` #RR ` and ` # ` agree
       ( ~ apreap ).  (Contributed by Jim Kingdon, 26-Jan-2020.) $)
    df-reap $a |- #RR = { <. x , y >. | ( ( x e. RR /\ y e. RR ) /\
      ( x < y \/ y < x ) ) } $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Real apartness in terms of classes.  Beyond the development of ` # `
       itself, proofs should use ~ reaplt instead.
       (New usage is discouraged.)  (Contributed by Jim Kingdon,
       29-Jan-2020.) $)
    reapval $p |- ( ( A e. RR /\ B e. RR ) ->
        ( A #RR B <-> ( A < B \/ B < A ) ) ) $=
      ( vx vy creap wbr cr wcel wa clt wo cv breq12 simpr simpl breq12d orbi12d
      wceq df-reap brab2ga baib ) ABEFAGHBGHIABJFZBAJFZKZCLZDLZJFZUFUEJFZKUDCDA
      BGGEUEARZUFBRZIZUGUBUHUCUEAUFBJMUKUFBUEAJUIUJNUIUJOPQCDSTUA $.
  $}

  $( Real apartness is irreflexive.  Part of Definition 11.2.7(v) of [HoTT],
     p.  (varies).  Beyond the development of ` # ` itself, proofs should use
     ~ apirr instead.  (Contributed by Jim Kingdon, 26-Jan-2020.) $)
  reapirr $p |- ( A e. RR -> -. A #RR A ) $=
    ( cr wcel creap wbr clt ltnr wo wb reapval anidms oridm syl6bb mtbird ) ABC
    ZAADEZAAFEZAGOPQQHZQOPRIAAJKQLMN $.

  ${
    $d x y A $.
    $( Existence of reciprocal of real number.  (Contributed by Jim Kingdon,
       29-Jan-2020.) $)
    recexre $p |- ( ( A e. RR /\ A #RR 0 ) -> E. x e. RR ( A x. x ) = 1 ) $=
      ( vy cr wcel cc0 wbr cmul co c1 wceq wrex clt wb 0re wa cneg pm5.32i recn
      cltrr creap cv reapval mpan2 lt0neg1 renegcl ltxrlt bitrd ax-precex simpr
      sylancr reximi syl sylan sylbi negnegd oveq2d eqeq1d rspcev sylbir adantl
      wo negeq rexlimddv cc mul2neg syl2an rexbidva adantr mpbid ex mpan sylbid
      jaod imp ) BDEZBFUAGZBAUBZHIZJKZADLZVPVQBFMGZFBMGZVBZWAVPFDEZVQWDNOBFUCUD
      VPWBWAWCVPWBWAVPWBPZBQZVRQZHIZJKZADLZWAWFWGCUBZHIZJKZWKCDWFVPFWGTGZPWNCDL
      ZVPWBWOVPWBFWGMGZWOBUEVPWEWGDEZWQWONOBUFZFWGUGUKUHRVPWRWOWPWSWRWOPFWLTGZW
      NPZCDLWPCWGUIXAWNCDWTWNUJULUMUNUOWLDEZWNPZWKWFXCXBWGWLQZQZHIZJKZPWKXBXGWN
      XBXFWMJXBXEWLWGHXBWLWLSUPUQURRXBXDDEXGWKWLUFWJXGAXDDVRXDKZWIXFJXHWHXEWGHV
      RXDVCUQURUSUNUTVAVDVPWKWANWBVPWJVTADVPVRDEZPWIVSJVPBVEEVRVEEWIVSKXIBSVRSB
      VRVFVGURVHVIVJVKVPWCWAVPWCPVPFBTGZPZWAVPWCXJWEVPWCXJNOFBUGVLRXKFVRTGZVTPZ
      ADLWAABUIXMVTADXLVTUJULUMUOVKVNVMVO $.
  $}

  $( Real apartness is tight.  Beyond the development of apartness itself,
     proofs should use ~ apti .  (Contributed by Jim Kingdon, 30-Jan-2020.)
     (New usage is discouraged.) $)
  reapti $p |- ( ( A e. RR /\ B e. RR ) -> ( A = B <-> -. A #RR B ) ) $=
    ( cr wcel wa wceq creap wbr wn clt wo ltnr adantr oridm breq2 breq1 orbi12d
    syl5bbr notbid syl5ibcom reapval sylibrd axapti 3expia sylbid impbid ) ACDZ
    BCDZEZABFZABGHZIZUIUJABJHZBAJHZKZIZULUIAAJHZIZUJUPUGURUHALMUJUQUOUQUQUQKUJU
    OUQNUJUQUMUQUNABAJOABAJPQRSTUIUKUOABUASZUBUIULUPUJUSUGUHUPUJABUCUDUEUF $.

  ${
    $d x A $.
    $( Existence of reciprocal of positive real number.  (Contributed by Jim
       Kingdon, 6-Feb-2020.) $)
    recexgt0 $p |- ( ( A e. RR /\ 0 < A ) ->
        E. x e. RR ( 0 < x /\ ( A x. x ) = 1 ) ) $=
      ( cr wcel cc0 cltrr wbr wa cv cmul co c1 wceq clt ax-precex wb 0re ltxrlt
      wrex mpan pm5.32i anbi1d rexbiia 3imtr4i ) BCDZEBFGZHEAIZFGZBUGJKLMZHZACS
      UEEBNGZHEUGNGZUIHZACSABOUEUKUFECDZUEUKUFPQEBRTUAUMUJACUGCDZULUHUIUNUOULUH
      PQEUGRTUBUCUD $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Complex Apartness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c # $. $( 'Apart' relation (over complex numbers) $)

  $( Class of complex apartness relation. $)
  cap $a class # $.

  ${
    $d r s t u x y $.
    $( Define complex apartness.  Definition 6.1 of [Geuvers], p. 17.

       Two numbers are considered apart if it is possible to separate them.
       One common usage is that we can divide by a number if it is apart from
       zero (see for example ~ recclap which says that a number apart from zero
       has a reciprocal).

       The defining characteristics of an apartness are irreflexivity
       ( ~ apirr ), symmetry ( ~ apsym ), and cotransitivity ( ~ apcotr ).
       Apartness implies negated equality, as seen at ~ apne , and the converse
       would also follow if we assumed excluded middle.

       In addition, apartness of complex numbers is tight, which means that two
       numbers which are not apart are equal ( ~ apti ).

       (Contributed by Jim Kingdon, 26-Jan-2020.) $)
    df-ap $a |- # = { <. x , y >. | E. r e. RR E. s e. RR E. t e. RR E. u e. RR
      ( ( x = ( r + ( _i x. s ) ) /\ y = ( t + ( _i x. u ) ) ) /\
      ( r #RR t \/ s #RR u ) ) } $.
  $}

  $( ` _i ` times itself is minus 1.  (Contributed by NM, 6-May-1999.)  (Proof
     shortened by Andrew Salmon, 19-Nov-2011.) $)
  ixi $p |- ( _i x. _i ) = -u 1 $=
    ( c1 cneg cc0 cmin co ci cmul df-neg caddc ax-i2m1 0cn ax-1cn ax-icn mulcli
    wceq subadd2i mpbir eqtr2i ) ABCADEZFFGEZAHSTOTAIECOJCATKLFFMMNPQR $.

  $( The imaginary unit ` _i ` is not a real number.  (Contributed by NM,
     6-May-1999.) $)
  inelr $p |- -. _i e. RR $=
    ( ci cr wcel cc0 wceq ine0 neii clt wbr wn co c1 0re 1re caddc wa anidms ex
    cmul mtoi 0lt1 ltnsymi cneg renegcli eqeltri ltadd1i ax-1cn addid2i ax-i2m1
    ax-mp ixi breq12i bitri mtbir mullt0 mulgt0 wb lttri3 mpan2 mpbir2and mto )
    ABCZADEZADFGVBVCADHIZJZDAHIZJZVBVDDAASKZHIZVILDHIZDLHIVJJUADLMNUBUJVIDLOKZV
    HLOKZHIVJDVHLMVHLUCBUKLNUDUENUFVKLVLDHLUGUHUIULUMUNZVBVDVIVBVDPVIAAUOQRTVBV
    FVIVMVBVFVIVBVFPVIAAUPQRTVBDBCVCVEVGPUQMADURUSUTVA $.

  ${
    $d A x $.
    $( A real number times the imaginary unit is real only if the number is 0.
       (Contributed by NM, 28-May-1999.)  (Revised by Mario Carneiro,
       27-May-2016.) $)
    rimul $p |- ( ( A e. RR /\ ( _i x. A ) e. RR ) -> A = 0 ) $=
      ( vx cr wcel ci cmul co wa cc0 wceq creap wbr wn inelr cv c1 recnd ax-icn
      wrex cc recexre adantlr simplll simprl mulass mp3an1 syl2anc oveq2 syl6eq
      mulid1i ad2antll eqtrd simpllr remulcld eqeltrrd rexlimddv ex mtoi wb 0re
      reapti mpan2 adantr mpbird ) ACDZEAFGZCDZHZAIJZAIKLZMZVHVJECDZNVHVJVLVHVJ
      HZABOZFGZPJZVLBCVEVJVPBCSVGBAUAUBVMVNCDZVPHZHZVFVNFGZECVSVTEVOFGZEVSATDZV
      NTDZVTWAJZVSAVEVGVJVRUCQVSVNVMVQVPUDZQETDWBWCWDREAVNUEUFUGVPWAEJVMVQVPWAE
      PFGEVOPEFUHERUJUIUKULVSVFVNVEVGVJVRUMWEUNUOUPUQURVEVIVKUSZVGVEICDWFUTAIVA
      VBVCVD $.
  $}

  $( Decomposition of a real number into real part (itself) and imaginary part
     (zero).  (Contributed by Jim Kingdon, 30-Jan-2020.) $)
  rereim $p |- ( ( ( A e. RR /\ B e. RR ) /\
      ( C e. RR /\ A = ( B + ( _i x. C ) ) ) ) -> ( B = A /\ C = 0 ) ) $=
    ( cr wcel wa ci cmul co caddc wceq cc0 simpll recnd simplr simprr eqcomd cc
    cmin ax-icn a1i simprl mulcld subaddd mpbird resubcld eqeltrrd rimul oveq2d
    syl2anc mul01i syl6eq eqtrd subeq0d jca ) ADEZBDEZFZCDEZABGCHIZJIZKZFZFZBAK
    CLKZVDABVDABVDAUPUQVCMZNZVDBUPUQVCOZNZVDABSIZUTLVDVJUTKVAAKVDAVAURUSVBPQVDA
    BUTVGVIVDGCGREVDTUAVDCURUSVBUBZNUCUDUEZVDUTGLHILVDCLGHVDUSUTDEVEVKVDVJUTDVL
    VDABVFVHUFUGCUHUJZUIGTUKULUMUNQVMUO $.

  ${
    $d A r s t u x y $.  $d B r s t u x y $.

    $( Complex apartness and real apartness agree on the real numbers.
       (Contributed by Jim Kingdon, 31-Jan-2020.) $)
    apreap $p |- ( ( A e. RR /\ B e. RR ) -> ( A # B <-> A #RR B ) ) $=
      ( vr vs vt vu cr wcel wa wbr creap cv ci co caddc wceq wrex 2rexbidv cc0
      wo vx vy cap cmul eqeq1 anbi1d anbi2d df-ap brabg simplll simplrl simplrr
      wn adantr simprll rereim syl22anc simprd simpllr simprlr eqtr4d wb reapti
      syl2anc mpbid simprr ecased simpld ex rexlimdvva sylbid w3a ax-icn mul01i
      3brtr3d oveq2i simp1 recnd addid1d syl5req simp2 olc 3ad2ant3 orcomd 0red
      jca31 simpr oveq2d eqeq2d breq2d orbi2d anbi12d oveq1d orbi1d syld breq1d
      rspcedv rexbidv 3syld 3adant3 sylibrd mpd 3expia impbid ) AGHZBGHZIZABUCJ
      ZABKJZXGXHACLZMDLZUDNZONZPZBELZMFLZUDNZONZPZIZXJXOKJZXKXPKJZTZIZFGQZEGQZD
      GQZCGQZXIUALZXMPZUBLZXRPZIZYCIZFGQEGQZDGQCGQXNYLIZYCIZFGQEGQZDGQCGQYHUAUB
      ABGGUCYIAPZYOYRCDGGYSYNYQEFGGYSYMYPYCYSYJXNYLYIAXMUEUFUFRRYKBPZYRYFCDGGYT
      YQYDEFGGYTYPXTYCYTYLXSXNYKBXRUEUGUFRRUAUBFEDCUHUIZXGYFXICDGGXGXJGHZXKGHZI
      ZIZYDXIEFGGUUEXOGHZXPGHZIZIZYDXIUUIYDIZXJXOABKUUJYAYBUUJXKXPPZYBUMZUUJXKS
      XPUUJXJAPZXKSPZUUJXEUUBUUCXNUUMUUNIUUIXEYDXEXFUUDUUHUJUNUUIUUBYDXGUUBUUCU
      UHUKUNUUIUUCYDXGUUBUUCUUHULUNZUUIXNXSYCUOAXJXKUPUQZURUUJXOBPZXPSPZUUJXFUU
      FUUGXSUUQUURIUUIXFYDXEXFUUDUUHUSUNUUEUUFUUGYDUKUUEUUFUUGYDULZUUIXNXSYCUTB
      XOXPUPUQZURVAUUJUUCUUGUUKUULVBUUOUUSXKXPVCVDVEUUIXTYCVFVGUUJUUMUUNUUPVHUU
      JUUQUURUUTVHVOVIVJVJVKXEXFXIXHXEXFXIVLZAAMSUDNZONZPZBBUVBONZPZIZXISSKJZTZ
      IZXHUVAUVDUVFUVIUVAUVCASONAUVBSAOMVMVNZVPUVAAUVAAXEXFXIVQZVRVSVTUVAUVEBSO
      NBUVBSBOUVKVPUVABUVABXEXFXIWAZVRVSVTUVAUVHXIXIXEUVHXITXFXIUVHWBWCWDWFUVAU
      VJYHXHUVAUVJUVDXSIZAXOKJZSXPKJZTZIZFGQZEGQZAAXLONZPZXSIZUVOYBTZIZFGQZEGQZ
      DGQZYHUVAUVJUVDBBXQONZPZIZXIUVPTZIZFGQZUVTUVAUWMUVJFSGUVAWEZUVAUURIZUWKUV
      GUWLUVIUWPUWJUVFUVDUWPUWIUVEBUWPXQUVBBOUWPXPSMUDUVAUURWGZWHWHWIUGUWPUVPUV
      HXIUWPXPSSKUWQWJWKWLWQUVAUVSUWNEBGUVMUVAUUQIZUVRUWMFGUWRUVNUWKUVQUWLUWRXS
      UWJUVDUWRXRUWIBUWRXOBXQOUVAUUQWGZWMWIUGUWRUVOXIUVPUWRXOBAKUWSWJWNWLWRWQWO
      UVAUWGUVTDSGUWOUVAUUNIZUWEUVREFGGUWTUWCUVNUWDUVQUWTUWBUVDXSUWTUWAUVCAUWTX
      LUVBAOUWTXKSMUDUVAUUNWGZWHWHWIUFUWTYBUVPUVOUWTXKSXPKUXAWPWKWLRWQUVAYGUWHC
      AGUVLUVAUUMIZYEUWFDEGGUXBYDUWEFGUXBXTUWCYCUWDUXBXNUWBXSUXBXMUWAAUXBXJAXLO
      UVAUUMWGZWMWIUFUXBYAUVOYBUXBXJAXOKUXCWPWNWLWRRWQWSXEXFXHYHVBXIUUAWTXAXBXC
      XD $.
  $}

  $( Real apartness in terms of less than.  Part of Definition 11.2.7(vi) of
     [HoTT], p.  (varies).  (Contributed by Jim Kingdon, 1-Feb-2020.) $)
  reaplt $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A # B <-> ( A < B \/ B < A ) ) ) $=
    ( cr wcel wa cap wbr creap clt wo apreap reapval bitrd ) ACDBCDEABFGABHGABI
    GBAIGJABKABLM $.

  $( Real apartness in terms of less than (exclusive-or version).  (Contributed
     by Jim Kingdon, 23-Mar-2020.) $)
  reapltxor $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A # B <-> ( A < B \/_ B < A ) ) ) $=
    ( cr wcel wa cap wbr clt wo reaplt wn ltnsym2 biantrud df-xor syl6bbr bitrd
    wxo ) ACDBCDEZABFGABHGZBAHGZIZSTQZABJRUAUASTEKZEUBRUCUAABLMSTNOP $.

  $( One is apart from zero.  (Contributed by Jim Kingdon, 24-Feb-2020.) $)
  1ap0 $p |- 1 # 0 $=
    ( c1 cc0 cap wbr clt wo 0lt1 olci cr wcel wb 1re 0re reaplt mp2an mpbir ) A
    BCDZABEDZBAEDZFZSRGHAIJBIJQTKLMABNOP $.

  $( Multiplication of both sides of 'less than' by a positive number.  Theorem
     I.19 of [Apostol] p. 20.  (Contributed by NM, 15-May-1999.)  (Revised by
     Mario Carneiro, 27-May-2016.) $)
  ltmul1a $p |- ( ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) /\ A < B )
      -> ( A x. C ) < ( B x. C ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co simpl2 simpl1 resubcld simpl3l posdifd
    cmin recnd remulcld simpr mpbid simpl3r mulgt0d subdird breqtrd mpbird ) AD
    EZBDEZCDEZFCGHZIZJZABGHZIZACKLZBCKLZGHFUQUPRLZGHUOFBARLZCKLURGUOUSCUOBAUHUI
    ULUNMZUHUIULUNNZOUJUKUHUIUNPZUOUNFUSGHUMUNUAUOABVAUTQUBUJUKUHUIUNUCUDUOBACU
    OBUTSUOAVASUOCVBSUEUFUOUPUQUOACVAVBTUOBCUTVBTQUG $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  Part of Definition 11.2.7(vi) of
       [HoTT], p.  (varies).  (Contributed by NM, 13-Feb-2005.)  (Revised by
       Mario Carneiro, 27-May-2016.) $)
    ltmul1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                 -> ( A < B <-> ( A x. C ) < ( B x. C ) ) ) $=
      ( vx cr wcel cc0 clt wbr wa cmul co ltmul1a ex c1 cc recnd adantr 3brtr3d
      w3a cv wceq wrex recexgt0 3ad2ant3 simpl1 simpl3l remulcld simpl2 simprrl
      wi simprl jca 3jca sylan mulassd simprrr oveq2d mulid1d rexlimddv impbid
      ) AEFZBEFZCEFZGCHIZJZTZABHIZACKLZBCKLZHIZVGVHVKABCMNVGGDUAZHIZCVLKLZOUBZJ
      ZVKVHUKDEVFVBVPDEUCVCDCUDUEVGVLEFZVPJZJZVKVHVSVKJZAOKLZBOKLZABHVTAVNKLZBV
      NKLZWAWBHVTVIVLKLZVJVLKLZWCWDHVSVIEFZVJEFZVQVMJZTVKWEWFHIVSWGWHWIVSACVBVC
      VFVRUFZVDVEVBVCVRUGZUHVSBCVBVCVFVRUIZWKUHVSVQVMVGVQVPULZVGVQVMVOUJUMUNVIV
      JVLMUOVTACVLVSAPFVKVSAWJQRZVSCPFVKVSCWKQRZVSVLPFVKVSVLWMQRZUPVTBCVLVSBPFV
      KVSBWLQRZWOWPUPSVTVNOAKVSVOVKVGVQVMVOUQRZURVTVNOBKWRURSVTAWNUSVTBWQUSSNUT
      VA $.
  $}

  $( Multiplication of both sides of 'less than or equal to' by a positive
     number.  (Contributed by NM, 21-Feb-2005.) $)
  lemul1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                -> ( A <_ B <-> ( A x. C ) <_ ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a wn cmul co cle wb ltmul1 notbid lenlt remulcld
    3com12 3adant3 simp1 simp3l simp2 lenltd 3bitr4d ) ADEZBDEZCDEZFCGHZIZJZBAG
    HZKZBCLMZACLMZGHZKZABNHZUPUONHUHUGUKUNUROUHUGUKJUMUQBACPQTUGUHUSUNOUKABRUAU
    LUPUOULACUGUHUKUBUGUHUIUJUCZSULBCUGUHUKUDUTSUEUF $.

  $( Lemma for ~ reapmul1 .  (Contributed by Jim Kingdon, 8-Feb-2020.) $)
  reapmul1lem $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
      ( A # B <-> ( A x. C ) # ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a wo cmul co cap ltmul1 wb 3com12 orbi12d reaplt
    remulcld 3adant3 simp1 simp3l simp2 syl2anc 3bitr4d ) ADEZBDEZCDEZFCGHZIZJZ
    ABGHZBAGHZKZACLMZBCLMZGHZUQUPGHZKZABNHZUPUQNHZULUMURUNUSABCOUHUGUKUNUSPBACO
    QRUGUHVAUOPUKABSUAULUPDEUQDEVBUTPULACUGUHUKUBUGUHUIUJUCZTULBCUGUHUKUDVCTUPU
    QSUEUF $.

  $( Multiplication of both sides of real apartness by a real number apart from
     zero.  Special case of ~ apmul1 .  (Contributed by Jim Kingdon,
     8-Feb-2020.) $)
  reapmul1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ C # 0 ) ) ->
      ( A # B <-> ( A x. C ) # ( B x. C ) ) ) $=
    ( cr wcel cc0 cap wbr wa cmul co wb clt reaplt cneg recnd mulneg2d renegcld
    wo reapmul1lem 0re mpan2 pm5.32i simp1 simp3l simp2 breq12d simp3r lt0neg1d
    mpbid syl112anc remulcld ltnegd orbi12d syl2anc orcom 3bitr4d 3expa anassrs
    w3a syl6bb jaodan anasss sylan2b 3impa ) ADEZBDEZCDEZCFGHZIZABGHZACJKZBCJKZ
    GHZLZVJVFVGIZVHCFMHZFCMHZSZIVOVHVIVSVHFDEVIVSLUACFNUBUCVPVHVSVOVPVHIVQVOVRV
    PVHVQVOVFVGVHVQIZVOVFVGVTUTZACOZJKZBWBJKZGHZVLOZVMOZGHZVKVNWAWCWFWDWGGWAACW
    AAVFVGVTUDZPWACVFVGVHVQUEZPZQWABCWABVFVGVTUFZPWKQUGWAVFVGWBDEFWBMHZVKWELWIW
    LWACWJRWAVQWMVFVGVHVQUHWACWJUIUJABWBTUKWAVLVMMHZVMVLMHZSZWGWFMHZWFWGMHZSZVN
    WHWAWNWQWOWRWAVLVMWAACWIWJULZWABCWLWJULZUMWAVMVLXAWTUMUNWAVLDEVMDEVNWPLWTXA
    VLVMNUOWAWHWRWQSZWSWAWFDEWGDEWHXBLWAVLWTRWAVMXARWFWGNUOWRWQUPVAUQUQURUSVPVH
    VRVOVFVGVHVRIVOABCTURUSVBVCVDVE $.

  $( Real addition respects apartness.  (Contributed by Jim Kingdon,
     13-Feb-2020.) $)
  reapadd1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A # B <-> ( A + C ) # ( B + C ) ) ) $=
    ( cr wcel w3a clt wbr wo caddc co cap ltadd1 wb 3com12 orbi12d reaplt simp1
    3adant3 readdcld simp3 simp2 syl2anc 3bitr4d ) ADEZBDEZCDEZFZABGHZBAGHZIZAC
    JKZBCJKZGHZUMULGHZIZABLHZULUMLHZUHUIUNUJUOABCMUFUEUGUJUONBACMOPUEUFUQUKNUGA
    BQSUHULDEUMDEURUPNUHACUEUFUGRUEUFUGUAZTUHBCUEUFUGUBUSTULUMQUCUD $.

  $( Real negation respects apartness.  (Contributed by Jim Kingdon,
     13-Feb-2020.) $)
  reapneg $p |- ( ( A e. RR /\ B e. RR ) -> ( A # B <-> -u A # -u B ) ) $=
    ( cr wcel wa cap wbr cneg clt wo reaplt ltneg wb ancoms orbi12d bitrd orcom
    syl6bb simpl renegcld simpr syl2anc bitr4d ) ACDZBCDZEZABFGZAHZBHZIGZUIUHIG
    ZJZUHUIFGZUFUGUKUJJZULUFUGABIGZBAIGZJUNABKUFUOUKUPUJABLUEUDUPUJMBALNOPUKUJQ
    RUFUHCDUICDUMULMUFAUDUESTUFBUDUEUATUHUIKUBUC $.

  $( Real apartness is cotransitive.  Part of Definition 11.2.7(v) of [HoTT],
     p.  (varies).  (Contributed by Jim Kingdon, 16-Feb-2020.) $)
  reapcotr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A # B -> ( A # C \/ B # C ) ) ) $=
    ( cr w3a cap wbr clt wo wb reaplt 3adant3 axltwlin wi 3com12 orim12d sylbid
    wcel orcom orbi2i or42 bitri syl6ib 3adant2 3adant1 orbi12d sylibrd ) ADRZB
    DRZCDRZEZABFGZACHGZCAHGZIZBCHGZCBHGZIZIZACFGZBCFGZIUKULUMUQIZUPUNIZIZUSUKUL
    ABHGZBAHGZIZVDUHUIULVGJUJABKLUKVEVBVFVCABCMUIUHUJVFVCNBACMOPQVDVBUNUPIZIUSV
    CVHVBUPUNSTUMUQUNUPUAUBUCUKUTUOVAURUHUJUTUOJUIACKUDUIUJVAURJUHBCKUEUFUG $.

  $( Left extensionality for multiplication.  (Contributed by Jim Kingdon,
     19-Feb-2020.) $)
  remulext1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) -> (
      ( A x. C ) # ( B x. C ) -> A # B ) ) $=
    ( cr wcel w3a cmul co cap wbr clt wo wb remulcld reaplt cltrr ax-pre-mulext
    syl2anc ltxrlt 3imtr4d simp1 simp3 simp2 orbi12d bitrd wi 3com12 orcom jaod
    syl6bb sylbid ) ADEZBDEZCDEZFZACGHZBCGHZIJZUPUQKJZUQUPKJZLZABIJZUOUPDEZUQDE
    ZURVAMUOACULUMUNUAZULUMUNUBZNZUOBCULUMUNUCZVFNZUPUQORUOUSVBUTUOUPUQPJZABPJZ
    BAPJZLZUSVBABCQUOVCVDUSVJMVGVIUPUQSRUOVBABKJZBAKJZLZVMUOULUMVBVPMVEVHABORUO
    VNVKVOVLUOULUMVNVKMVEVHABSRUOUMULVOVLMVHVEBASRUDUEZTUOUQUPPJZVLVKLZUTVBUMUL
    UNVRVSUFBACQUGUOVDVCUTVRMVIVGUQUPSRUOVBVMVSVQVKVLUHUJTUIUK $.

  $( Right extensionality for real multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  remulext2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) -> (
      ( C x. A ) # ( C x. B ) -> A # B ) ) $=
    ( cr wcel w3a cmul co cap simp1 recnd simp3 mulcomd simp2 breq12d remulext1
    wbr sylbird ) ADEZBDEZCDEZFZCAGHZCBGHZIQACGHZBCGHZIQABIQUBUEUCUFUDIUBACUBAS
    TUAJKUBCSTUALKZMUBBCUBBSTUANKUGMOABCPR $.

  $( The square of a real number apart from zero is positive.  (Contributed by
     Jim Kingdon, 7-Feb-2020.) $)
  apsqgt0 $p |- ( ( A e. RR /\ A # 0 ) -> 0 < ( A x. A ) ) $=
    ( cr wcel cc0 cap wbr wa clt wo cmul co wb 0re reaplt pm5.32i mullt0 anidms
    mpan2 mulgt0 jaodan sylbi ) ABCZADEFZGUBADHFZDAHFZIZGDAAJKHFZUBUCUFUBDBCUCU
    FLMADNROUBUDUGUEUBUDGUGAAPQUBUEGUGAASQTUA $.

  $( The representation of complex numbers in terms of real and imaginary parts
     is unique.  Proposition 10-1.3 of [Gleason] p. 130.  (Contributed by NM,
     9-May-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  cru $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
      ( ( A + ( _i x. B ) ) = ( C + ( _i x. D ) ) <-> ( A = C /\ B = D ) ) ) $=
    ( cr wcel wa ci cmul co caddc wceq simplrl simplll cmin cc0 mulcld resubcld
    recnd subeq0d simpr cc ax-icn a1i simpllr simplrr addsubeq4d subdid eqeltrd
    mpbid eqtr4d rimul syl2anc oveq2d oveq1d subidd 3eqtrd eqcomd jca ex oveq12
    oveq2 sylan2 impbid1 ) AEFZBEFZGZCEFZDEFZGZGZAHBIJZKJCHDIJZKJLZACLZBDLZGZVK
    VNVQVKVNGZVOVPVRCAVRCAVRCVGVHVIVNMZSZVRAVEVFVJVNNZSZVRCAOJZVLVMOJZVMVMOJPVR
    VNWCWDLVKVNUAVRAVLCVMWBVRHBHUBFVRUCUDZVRBVEVFVJVNUEZSZQVTVRHDWEVRDVGVHVIVNU
    FZSZQZUGUJZVRVLVMVMOVRBDHIVRBDWGWIVRBDOJZEFHWLIJZEFWLPLVRBDWFWHRVRWMWCEVRWM
    WDWCVRHBDWEWGWIUHWKUKVRCAVSWARUIWLULUMTZUNUOVRVMWJUPUQTURWNUSUTVPVOVLVMLVNB
    DHIVBACVLVMKVAVCVD $.

  ${
    $d A r s t u x y $.  $d B r s t u x y $.  $d C r s t u x y $.
    $d D r s t u x y $.
    $( Complex apartness in terms of real and imaginary parts.  (Contributed by
       Jim Kingdon, 12-Feb-2020.) $)
    apreim $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
        ( ( A + ( _i x. B ) ) # ( C + ( _i x. D ) ) <-> ( A # C \/ B # D ) )
        ) $=
      ( vr vs vt vu cr wcel wa ci cmul co caddc wbr wo wceq creap wrex vx vy cv
      cc wb simpll recnd ax-icn simplr mulcld addcld simprl simprr eqeq1 anbi1d
      cap 2rexbidv anbi2d df-ap brabg syl2anc ad3antrrr orbi12d simprll simpllr
      a1i apreap syl21anc mpbid simpld simprlr breq12d simprd mpbird rexlimdvva
      cru bitrd ex sylbid ad2ant2r ad2ant2l pm5.32i eqid pm3.2i biantrur eqeq2d
      oveq1 breq2 orbi1d anbi12d oveq2d orbi2d rspc2ev syl3an3b syl3an3 anassrs
      oveq2 3expa breq1 adantr sylbi impbid ) AIJZBIJZKZCIJZDIJZKZKZALBMNZONZCL
      DMNZONZUPPZACUPPZBDUPPZQZXIXNXKEUCZLFUCZMNZONZRZXMGUCZLHUCZMNZONZRZKZXRYC
      SPZXSYDSPZQZKZHITGITZFITEITZXQXIXKUDJXMUDJXNYNUEZXIAXJXIAXCXDXHUFZUGXILBL
      UDJXIUHVFZXIBXCXDXHUIZUGUJUKXICXLXICXEXFXGULZUGXILDYQXIDXEXFXGUMZUGUJUKUA
      UCZYARZUBUCZYFRZKZYKKZHITGITZFITEITYBUUDKZYKKZHITGITZFITEITYNUAUBXKXMUDUD
      UPUUAXKRZUUGUUJEFIIUUKUUFUUIGHIIUUKUUEUUHYKUUKUUBYBUUDUUAXKYAUNUOUOUQUQUU
      CXMRZUUJYMEFIIUULUUIYLGHIIUULUUHYHYKUULUUDYGYBUUCXMYFUNURUOUQUQUAUBHGFEUS
      UTVAZXIYMXQEFIIXIXRIJXSIJKZKZYLXQGHIIUUOYCIJYDIJKZKZYLXQUUQYLKZXQYKUUQYHY
      KUMUURXQACSPZBDSPZQZYKUURXOUUSXPUUTUURXCXFXOUUSUEZXIXCUUNUUPYLYPVBZXIXFUU
      NUUPYLYSVBZACVGZVAUURXDXGXPUUTUEZXIXDUUNUUPYLYRVBZXIXGUUNUUPYLYTVBZBDVGZV
      AVCUURUUSYIUUTYJUURAXRCYCSUURAXRRZBXSRZUURYBUVJUVKKZUUQYBYGYKVDUURXCXDUUN
      YBUVLUEUVCUVGXIUUNUUPYLVEABXRXSVPVHVIZVJUURCYCRZDYDRZUURYGUVNUVOKZUUQYBYG
      YKVKUURXFXGUUPYGUVPUEUVDUVHUUOUUPYLUICDYCYDVPVHVIZVJVLUURBXSDYDSUURUVJUVK
      UVMVMUURUVNUVOUVQVMVLVCVQVNVRVOVOVSXIXQXNXIXQKXIUVAKZXNXIXQUVAXIXOUUSXPUU
      TXCXFUVBXDXGUVEVTXDXGUVFXCXFUVIWAVCWBUVRXNYNXEXHUVAYNXCXDXHUVAKZYNUVSXCXD
      XKXKRZYGKZAYCSPZBYDSPZQZKZHITGITZYNXFXGUVAUWFUVAXFXGUVTXMXMRZKZUVAKZUWFUW
      HUVAUVTUWGXKWCXMWCWDWEUWEUWIUVTXMCYEONZRZKZUUSUWCQZKGHCDIIYCCRZUWAUWLUWDU
      WMUWNYGUWKUVTUWNYFUWJXMYCCYEOWGWFURUWNUWBUUSUWCYCCASWHWIWJYDDRZUWLUWHUWMU
      VAUWOUWKUWGUVTUWOUWJXMXMUWOYEXLCOYDDLMWQWKWFURUWOUWCUUTUUSYDDBSWHWLWJWMWN
      WRYMUWFXKAXTONZRZYGKZUWBYJQZKZHITGITEFABIIXRARZYLUWTGHIIUXAYHUWRYKUWSUXAY
      BUWQYGUXAYAUWPXKXRAXTOWGWFUOUXAYIUWBYJXRAYCSWSWIWJUQXSBRZUWTUWEGHIIUXBUWR
      UWAUWSUWDUXBUWQUVTYGUXBUWPXKXKUXBXTXJAOXSBLMWQWKWFUOUXBYJUWCUWBXSBYDSWSWL
      WJUQWMWOWRWPXIYOUVAUUMWTVNXAVRXB $.
  $}

  $( Complex multiplication in terms of real and imaginary parts.  (Contributed
     by Jim Kingdon, 23-Feb-2020.) $)
  mulreim $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
      ( ( A + ( _i x. B ) ) x. ( C + ( _i x. D ) ) ) =
      ( ( ( A x. C ) + -u ( B x. D ) ) +
        ( _i x. ( ( C x. B ) + ( D x. A ) ) ) ) ) $=
    ( cr wcel wa ci cmul co caddc cneg simpll recnd mulcld mulcomd oveq2d eqtrd
    mul12d oveq12d cc ax-icn a1i simplr simprl simprr muladdd ixi oveq1i syl6eq
    c1 mul4d mulm1d negeqd 3eqtrd addcomd adddid 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZ
    GZAHBIJZKJCHDIJZKJIJACIJZVGVFIJZKJZAVGIJZCVFIJZKJZKJVHBDIJZLZKJZHCBIJZDAIJZ
    KJIJZKJVEAVFCVGVEAUSUTVDMNZVEHBHUAFVEUBUCZVEBUSUTVDUDNZOVECVAVBVCUENZVEHDWA
    VEDVAVBVCUFNZOUGVEVJVPVMVSKVEVIVOVHKVEVIUKLZDBIJZIJZWFLVOVEVIHHIJZWFIJWGVEH
    DHBWAWDWAWBULWHWEWFIUHUIUJVEWFVEDBWDWBOUMVEWFVNVEDBWDWBPUNUOQVEHVRIJZHVQIJZ
    KJWJWIKJVMVSVEWIWJVEHVRWAVEDAWDVTOZOVEHVQWAVECBWCWBOZOUPVEVKWIVLWJKVEVKHADI
    JZIJWIVEAHDVTWAWDSVEWMVRHIVEADVTWDPQRVECHBWCWAWBSTVEHVQVRWAWLWKUQURTR $.

  ${
    $d A x y $.
    $( Apartness is irreflexive.  (Contributed by Jim Kingdon, 16-Feb-2020.) $)
    apirr $p |- ( A e. CC -> -. A # A ) $=
      ( vx vy cc wcel cv ci co cr wrex cap wn wa creap reapirr wb apreap anidms
      wbr mtbird cmul caddc wceq cnre wo anim12i sylibr apreim ad2antlr breq12d
      ioran id notbid adantl mpbird ex rexlimdvva mpd ) ADEZABFZGCFZUAHUBHZUCZC
      IJBIJAAKSZLZBCAUDUSVCVEBCIIUSUTIEZVAIEZMZMZVCVEVIVCMVEVBVBKSZLZVHVKUSVCVH
      VJUTUTKSZVAVAKSZUEZVHVLLZVMLZMVNLVFVOVGVPVFVLUTUTNSZUTOVFVLVQPUTUTQRTVGVM
      VAVANSZVAOVGVMVRPVAVAQRTUFVLVMUKUGVHVJVNPUTVAUTVAUHRTUIVCVEVKPVIVCVDVJVCA
      VBAVBKVCULZVSUJUMUNUOUPUQUR $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Apartness is symmetric.  This theorem for real numbers is part of
       Definition 11.2.7(v) of [HoTT], p.  (varies).  (Contributed by Jim
       Kingdon, 16-Feb-2020.) $)
    apsym $p |- ( ( A e. CC /\ B e. CC ) -> ( A # B <-> B # A ) ) $=
      ( vz vw vx vy cc wcel wa cv co cr wrex cap wbr wb wo clt reaplt syl2anc
      ci cmul caddc wceq adantl ad3antrrr simplrl ad2antrr orcom syl6bbr bitr4d
      cnre simplrr orbi12d syl22anc 3bitr4d simpr simpllr breq12d ex rexlimdvva
      apreim mpd ) AGHZBGHZIZBCJZUADJZUBKUCKZUDZDLMCLMZABNOZBANOZPZVEVKVDCDBULU
      EVFVJVNCDLLVFVGLHZVHLHZIZIZVJVNVRVJIZAEJZUAFJZUBKUCKZUDZFLMELMZVNVDWDVEVQ
      VJEFAULUFVSWCVNEFLLVSVTLHZWALHZIZIZWCVNWHWCIZWBVINOZVIWBNOZVLVMWIVTVGNOZW
      AVHNOZQZVGVTNOZVHWANOZQZWJWKWIWLWOWMWPWIWLVTVGROZVGVTROZQZWOWIWEVOWLWTPVS
      WEWFWCUGZVSVOWGWCVFVOVPVJUGUHZVTVGSTWIWOWSWRQZWTWIVOWEWOXCPXBXAVGVTSTWRWS
      UIUJUKWIWMWAVHROZVHWAROZQZWPWIWFVPWMXFPVSWEWFWCUMZVSVPWGWCVFVOVPVJUMUHZWA
      VHSTWIWPXEXDQZXFWIVPWFWPXIPXHXGVHWASTXDXEUIUJUKUNWIWEWFVOVPWJWNPXAXGXBXHV
      TWAVGVHVBUOWIVOVPWEWFWKWQPXBXHXAXGVGVHVTWAVBUOUPWIAWBBVINWHWCUQZVRVJWGWCU
      RZUSWIBVIAWBNXKXJUSUPUTVAVCUTVAVC $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $( Apartness is cotransitive.  (Contributed by Jim Kingdon,
       16-Feb-2020.) $)
    apcotr $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
        ( A # B -> ( A # C \/ B # C ) ) ) $=
      ( vu vv vz vw vx vy cc wcel cv co cr wrex cap wbr wo wa ad3antrrr ci cmul
      w3a caddc wceq wi cnre 3ad2ant3 3ad2ant2 ad2antrr 3ad2ant1 adantr simpllr
      simpr breq12d simplrl simplrr simprl simprr apreim syl22anc bitrd syl3anc
      reapcotr orim12d sylbid or4 syl6ib simplr orbi12d sylibrd rexlimdvva mpd
      wb ex ) AJKZBJKZCJKZUCZCDLZUAELZUBMUDMZUEZENODNOZABPQZACPQZBCPQZRZUFZVRVP
      WDVQDECUGUHVSWCWIDENNVSVTNKZWANKZSZSZWCWIWMWCSZBFLZUAGLZUBMUDMZUEZGNOFNOZ
      WIVSWSWLWCVQVPWSVRFGBUGUIUJWNWRWIFGNNWNWONKZWPNKZSZSZWRWIXCWRSZAHLZUAILZU
      BMUDMZUEZINOHNOZWIWMXIWCXBWRVSXIWLVPVQXIVRHIAUGUKULTXDXHWIHINNXDXENKZXFNK
      ZSZSZXHWIXMXHSZWEXEVTPQZXFWAPQZRZWOVTPQZWPWAPQZRZRZWHXNWEXOXRRZXPXSRZRZYA
      XNWEXEWOPQZXFWPPQZRZYDXNWEXGWQPQZYGXNAXGBWQPXMXHUNZXCWRXLXHUMZUOXNXJXKWTX
      AYHYGVNXDXJXKXHUPZXDXJXKXHUQZXCWTWRXLXHWNWTXAURTZXCXAWRXLXHWNWTXAUSTZXEXF
      WOWPUTVAVBXNYEYBYFYCXNXJWTWJYEYBUFYKYMXCWJWRXLXHWMWJWCXBVSWJWKURUJTZXEWOV
      TVDVCXNXKXAWKYFYCUFYLYNXCWKWRXLXHWMWKWCXBVSWJWKUSUJTZXFWPWAVDVCVEVFXOXRXP
      XSVGVHXNWFXQWGXTXNWFXGWBPQZXQXNAXGCWBPYIXCWCWRXLXHWMWCXBVITZUOXNXJXKWJWKY
      QXQVNYKYLYOYPXEXFVTWAUTVAVBXNWGWQWBPQZXTXNBWQCWBPYJYRUOXNWTXAWJWKYSXTVNYM
      YNYOYPWOWPVTWAUTVAVBVJVKVOVLVMVOVLVMVOVLVM $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $( Addition respects apartness.  Analogue of ~ addcan for apartness.
       (Contributed by Jim Kingdon, 13-Feb-2020.) $)
    apadd1 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
        ( A # B <-> ( A + C ) # ( B + C ) ) ) $=
      ( vu vv wcel cv ci cmul co caddc cr wrex cap wbr wb wa ad2antrr ad3antrrr
      recnd vz vw vx vy cc wceq cnre 3ad2ant3 3ad2ant2 3ad2ant1 simplrl simplrr
      w3a wo simprl simprr apreim syl22anc simpr simpllr readdcld ax-icn mulcld
      breq12d a1i simplr oveq12d adddid oveq2d 3eqtr4d reapadd1 syl3anc orbi12d
      add4d 3bitr4d ex rexlimdvva mpd ) AUEFZBUEFZCUEFZUMZCDGZHEGZIJZKJZUFZELMD
      LMZABNOZACKJZBCKJZNOZPZWAVSWHVTDECUGUHWBWGWMDELLWBWCLFZWDLFZQZQZWGWMWQWGQ
      ZBUAGZHUBGZIJZKJZUFZUBLMUALMZWMWBXDWPWGVTVSXDWAUAUBBUGUIRWRXCWMUAUBLLWRWS
      LFZWTLFZQZQZXCWMXHXCQZAUCGZHUDGZIJZKJZUFZUDLMUCLMZWMWRXOXGXCWBXOWPWGVSVTX
      OWAUCUDAUGUJRRXIXNWMUCUDLLXIXJLFZXKLFZQZQZXNWMXSXNQZXMXBNOZXJWSNOZXKWTNOZ
      UNZWIWLXTXPXQXEXFYAYDPXIXPXQXNUKZXIXPXQXNULZXHXEXCXRXNWRXEXFUOSZXHXFXCXRX
      NWRXEXFUPSZXJXKWSWTUQURXTAXMBXBNXSXNUSZXHXCXRXNUTZVDXTXJWCKJZHXKWDKJZIJZK
      JZWSWCKJZHWTWDKJZIJZKJZNOZYKYONOZYLYPNOZUNZWLYDXTYKLFYLLFYOLFYPLFYSUUBPXT
      XJWCYEXHWNXCXRXNWQWNWGXGWBWNWOUORSZVAXTXKWDYFXHWOXCXRXNWQWOWGXGWBWNWOUPRS
      ZVAXTWSWCYGUUCVAXTWTWDYHUUDVAYKYLYOYPUQURXTWJYNWKYRNXTXMWFKJYKXLWEKJZKJWJ
      YNXTXJXLWCWEXTXJYETXTHXKHUEFXTVBVEZXTXKYFTZVCXTWCUUCTZXTHWDUUFXTWDUUDTZVC
      ZVNXTAXMCWFKYIXHWGXCXRXNWQWGXGVFSZVGXTYMUUEYKKXTHXKWDUUFUUGUUIVHVIVJXTXBW
      FKJYOXAWEKJZKJWKYRXTWSXAWCWEXTWSYGTXTHWTUUFXTWTYHTZVCUUHUUJVNXTBXBCWFKYJU
      UKVGXTYQUULYOKXTHWTWDUUFUUMUUIVHVIVJVDXTYBYTYCUUAXTXPXEWNYBYTPYEYGUUCXJWS
      WCVKVLXTXQXFWOYCUUAPYFYHUUDXKWTWDVKVLVMVOVOVPVQVRVPVQVRVPVQVR $.
  $}

  $( Addition respects apartness.  (Contributed by Jim Kingdon,
     16-Feb-2020.) $)
  apadd2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
      ( A # B <-> ( C + A ) # ( C + B ) ) ) $=
    ( cc wcel w3a cap wbr caddc apadd1 simp1 simp3 addcomd simp2 breq12d bitrd
    co ) ADEZBDEZCDEZFZABGHACIQZBCIQZGHCAIQZCBIQZGHABCJUAUBUDUCUEGUAACRSTKRSTLZ
    MUABCRSTNUFMOP $.

  $( Strong extensionality for addition.  Given excluded middle, apartness
     would be equivalent to negated equality and this would follow readily (for
     all operations) from ~ oveq12 .  For us, it is proved a different way.
     (Contributed by Jim Kingdon, 15-Feb-2020.) $)
  addext $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) -> (
      ( A + B ) # ( C + D ) -> ( A # C \/ B # D ) ) ) $=
    ( cc wcel wa caddc co cap wbr wo simpll simplr addcld simprl simprr syl3anc
    wi wb apcotr apadd1 apadd2 apsym syl2anc bitrd orbi12d sylibrd ) AEFZBEFZGZ
    CEFZDEFZGZGZABHIZCDHIZJKZUPCBHIZJKZUQUSJKZLZACJKZBDJKZLUOUPEFUQEFZUSEFZURVB
    SUOABUIUJUNMZUIUJUNNZOUOCDUKULUMPZUKULUMQZOZUOCBVIVHOZUPUQUSUARUOVCUTVDVAUO
    UIULUJVCUTTVGVIVHACBUBRUOVDUSUQJKZVAUOUJUMULVDVMTVHVJVIBDCUCRUOVFVEVMVATVLV
    KUSUQUDUEUFUGUH $.

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Negation respects apartness.  (Contributed by Jim Kingdon,
       14-Feb-2020.) $)
    apneg $p |- ( ( A e. CC /\ B e. CC ) -> ( A # B <-> -u A # -u B ) ) $=
      ( vz vw vx vy wcel wa cv ci cmul co caddc cr wrex cap wbr cneg renegcld
      wb cc wceq cnre adantl ad3antrrr wo simpr simpllr breq12d simplrl simplrr
      simprl simprr apreim syl22anc ax-icn mulcld negdid negeqd mulneg2d oveq2d
      recnd a1i 3eqtr4d reapneg syl2anc orbi12d 3bitr4rd 3bitrd rexlimdvva mpd
      ex ) AUAGZBUAGZHZBCIZJDIZKLZMLZUBZDNOCNOZABPQZARZBRZPQZTZVNWAVMCDBUCUDVOV
      TWFCDNNVOVPNGZVQNGZHZHZVTWFWJVTHZAEIZJFIZKLZMLZUBZFNOENOZWFVMWQVNWIVTEFAU
      CUEWKWPWFEFNNWKWLNGZWMNGZHZHZWPWFXAWPHZWBWOVSPQZWLVPPQZWMVQPQZUFZWEXBAWOB
      VSPXAWPUGZWJVTWTWPUHZUIXBWRWSWGWHXCXFTWKWRWSWPUJZWKWRWSWPUKZWJWGVTWTWPVOW
      GWHULUEZWJWHVTWTWPVOWGWHUMUEZWLWMVPVQUNUOXBWLRZJWMRZKLZMLZVPRZJVQRZKLZMLZ
      PQZXMXQPQZXNXRPQZUFZWEXFXBXMNGXNNGXQNGXRNGYAYDTXBWLXISXBWMXJSXBVPXKSXBVQX
      LSXMXNXQXRUNUOXBWCXPWDXTPXBWORXMWNRZMLWCXPXBWLWNXBWLXIVBXBJWMJUAGXBUPVCZX
      BWMXJVBZUQURXBAWOXGUSXBXOYEXMMXBJWMYFYGUTVAVDXBVSRXQVRRZMLWDXTXBVPVRXBVPX
      KVBXBJVQYFXBVQXLVBZUQURXBBVSXHUSXBXSYHXQMXBJVQYFYIUTVAVDUIXBXDYBXEYCXBWRW
      GXDYBTXIXKWLVPVEVFXBWSWHXEYCTXJXLWMVQVEVFVGVHVIVLVJVKVLVJVK $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $( Left extensionality for complex multiplication.  (Contributed by Jim
       Kingdon, 22-Feb-2020.) $)
    mulext1 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) -> (
        ( A x. C ) # ( B x. C ) -> A # B ) ) $=
      ( cc wcel cv cmul co caddc cr wrex cap wbr wi wa ad3antrrr recnd syl22anc
      mulcld remulcld vu vv vz vw vx vy ci wceq cnre 3ad2ant3 3ad2ant2 ad2antrr
      w3a 3ad2ant1 adantr cneg wo simplrl simprl simprr negcld addext remulext1
      simplrr syl3anc apneg syl2anc sylbird orim12d syld remulext2 orcom syl6ib
      jaod simpr simplr oveq12d simpllr breq12d renegcld readdcld apreim 3bitrd
      wb mulreim 3imtr4d sylibrd ex rexlimdvva mpd ) ADEZBDEZCDEZUMZCUAFZUGUBFZ
      GHIHZUHZUBJKUAJKZACGHZBCGHZLMZABLMZNZWMWKWSWLUAUBCUIUJWNWRXDUAUBJJWNWOJEZ
      WPJEZOZOZWRXDXHWROZBUCFZUGUDFZGHIHZUHZUDJKUCJKZXDWNXNXGWRWLWKXNWMUCUDBUIU
      KULXIXMXDUCUDJJXIXJJEZXKJEZOZOZXMXDXRXMOZAUEFZUGUFFZGHIHZUHZUFJKUEJKZXDXH
      YDWRXQXMWNYDXGWKWLYDWMUEUFAUIUNUOPXSYCXDUEUFJJXSXTJEZYAJEZOZOZYCXDYHYCOZX
      BYBXLLMZXCYIXTWOGHZYAWPGHZUPZIHZXJWOGHZXKWPGHZUPZIHZLMZWOYAGHZWPXTGHZIHZW
      OXKGHZWPXJGHZIHZLMZUQZXTXJLMZYAXKLMZUQZXBYJYIYSUUJUUFYIYSYKYOLMZYMYQLMZUQ
      ZUUJYIYKDEYMDEYODEYQDEYSUUMNYIXTWOYIXTXSYEYFYCURZQZYIWOXRXEXMYGYCXHXEWRXQ
      WNXEXFUSULPZQZSYIYLYIYAWPYIYAXSYEYFYCVDZQZYIWPXRXFXMYGYCXHXFWRXQWNXEXFUTU
      LPZQZSZVAYIXJWOYIXJXRXOXMYGYCXIXOXPUSPZQZUUQSYIYPYIXKWPYIXKXRXPXMYGYCXIXO
      XPUTPZQZUVASZVAYKYMYOYQVBRYIUUKUUHUULUUIYIYEXOXEUUKUUHNUUNUVCUUPXTXJWOVCV
      EYIUULYLYPLMZUUIYIYLDEYPDEUVHUULWDUVBUVGYLYPVFVGYIYFXPXFUVHUUINUURUVEUUTY
      AXKWPVCVEVHVIVJYIUUFUUIUUHUQZUUJYIUUFYTUUCLMZUUAUUDLMZUQZUVIYIYTDEUUADEUU
      CDEUUDDEUUFUVLNYIWOYAUUQUUSSYIWPXTUVAUUOSYIWOXKUUQUVFSYIWPXJUVAUVDSYTUUAU
      UCUUDVBRYIUVJUUIUVKUUHYIYFXPXEUVJUUINUURUVEUUPYAXKWOVKVEYIYEXOXFUVKUUHNUU
      NUVCUUTXTXJWPVKVEVIVJUUIUUHVLVMVNYIXBYBWQGHZXLWQGHZLMYNUGUUBGHIHZYRUGUUEG
      HIHZLMZUUGYIWTUVMXAUVNLYIAYBCWQGYHYCVOZXRWRXMYGYCXHWRXQVPPZVQYIBXLCWQGXRX
      MYGYCVRZUVSVQVSYIUVMUVOUVNUVPLYIYEYFXEXFUVMUVOUHUUNUURUUPUUTXTYAWOWPWERYI
      XOXPXEXFUVNUVPUHUVCUVEUUPUUTXJXKWOWPWERVSYIYNJEUUBJEYRJEUUEJEUVQUUGWDYIYK
      YMYIXTWOUUNUUPTYIYLYIYAWPUURUUTTVTWAYIYTUUAYIWOYAUUPUURTYIWPXTUUTUUNTWAYI
      YOYQYIXJWOUVCUUPTYIYPYIXKWPUVEUUTTVTWAYIUUCUUDYIWOXKUUPUVETYIWPXJUUTUVCTW
      AYNUUBYRUUEWBRWCYIYEYFXOXPYJUUJWDUUNUURUVCUVEXTYAXJXKWBRWFYIAYBBXLLUVRUVT
      VSWGWHWIWJWHWIWJWHWIWJ $.
  $}

  $( Right extensionality for complex multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  mulext2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) -> (
      ( C x. A ) # ( C x. B ) -> A # B ) ) $=
    ( cc wcel w3a cmul cap wbr simp3 simp1 mulcomd simp2 breq12d mulext1 sylbid
    co ) ADEZBDEZCDEZFZCAGQZCBGQZHIACGQZBCGQZHIABHIUAUBUDUCUEHUACARSTJZRSTKLUAC
    BUFRSTMLNABCOP $.

  $( Strong extensionality for multiplication.  Given excluded middle,
     apartness would be equivalent to negated equality and this would follow
     readily (for all operations) from ~ oveq12 .  For us, it is proved a
     different way.  (Contributed by Jim Kingdon, 23-Feb-2020.) $)
  mulext $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) -> (
      ( A x. B ) # ( C x. D ) -> ( A # C \/ B # D ) ) ) $=
    ( cc wcel wa cmul cap wbr simpll simplr mulcld simprl simprr apcotr syl3anc
    co wo wi mulext1 mulext2 wb apsym syl2anc sylibd orim12d syld ) AEFZBEFZGZC
    EFZDEFZGZGZABHRZCDHRZIJZUPCBHRZIJZUQUSIJZSZACIJZBDIJZSUOUPEFUQEFUSEFURVBTUO
    ABUIUJUNKZUIUJUNLZMUOCDUKULUMNZUKULUMOZMUOCBVGVFMUPUQUSPQUOUTVCVAVDUOUIULUJ
    UTVCTVEVGVFACBUAQUOVADBIJZVDUOUMUJULVAVITVHVFVGDBCUBQUOUMUJVIVDUCVHVFDBUDUE
    UFUGUH $.

  $( A product apart from zero.  Lemma 2.13 of [Geuvers], p. 6.  (Contributed
     by Jim Kingdon, 24-Feb-2020.) $)
  mulap0r $p |- ( ( A e. CC /\ B e. CC /\ ( A x. B ) # 0 ) ->
      ( A # 0 /\ B # 0 ) ) $=
    ( cc wcel cmul co cc0 cap wbr wo breqtrrd wi mulext syl22anc wn apirr biorf
    mpd wb 3syl w3a simp3 simp2 mul02d simp1 0cnd orcomd mpbird mul01d jca ) AC
    DZBCDZABEFZGHIZUAZAGHIZBGHIZUOUPBBHIZUPJZUOUPURUOUMGBEFZHIZUPURJZUOUMGUTHUK
    ULUNUBZUOBUKULUNUCZUDKUOUKULGCDZULVAVBLUKULUNUEZVDUOUFZVDABGBMNRUGUOULUROUP
    USSVDBPURUPQTUHUOUQAAHIZUQJZUOUMAGEFZHIZVIUOUMGVJHVCUOAVFUIKUOUKULUKVEVKVIL
    VFVDVFVGABAGMNRUOUKVHOUQVISVFAPVHUQQTUHUJ $.

  $( A square is nonnegative.  Lemma 2.35 of [Geuvers], p. 9.  (Contributed by
     NM, 23-May-2007.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  msqge0 $p |- ( A e. RR -> 0 <_ ( A x. A ) ) $=
    ( cr wcel cc0 cmul co cle wbr clt wn remulcl anidms 0re ltnsym2 sylancl cap
    wa wo orc wb reaplt syl5ibr wi w3a cc mulap0r syl3an1 syl3an2 simpld 3expia
    recn apsqgt0 ex 3syld ancld mtod lenlt sylancr mpbird ) ABCZDAAEFZGHZVADIHZ
    JZUTVCVCDVAIHZQZUTVABCZDBCZVFJUTVGAAKLZMVADNOUTVCVEUTVCVADPHZADPHZVEVCVJUTV
    CVERZVCVESUTVGVHVJVLTVIMVADUAOUBUTVJVKUCUTUTVJVKUTUTVJUDVKVKUTUTAUECZVJVKVK
    QZAUKZUTVMVMVJVNVOAAUFUGUHUIUJLUTVKVEAULUMUNUOUPUTVHVGVBVDTMVIDVAUQURUS $.

  ${
    msqge0i.1 $e |- A e. RR $.
    $( A square is nonnegative.  (Contributed by NM, 14-May-1999.)  (Proof
       shortened by Andrew Salmon, 19-Nov-2011.) $)
    msqge0i $p |- 0 <_ ( A x. A ) $=
      ( cr wcel cc0 cmul co cle wbr msqge0 ax-mp ) ACDEAAFGHIBAJK $.
  $}

  ${
    msqge0d.1 $e |- ( ph -> A e. RR ) $.
    $( A square is nonnegative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    msqge0d $p |- ( ph -> 0 <_ ( A x. A ) ) $=
      ( cr wcel cc0 cmul co cle wbr msqge0 syl ) ABDEFBBGHIJCBKL $.
  $}

  $( The product of two nonnegative numbers is nonnegative.  (Contributed by
     NM, 8-Oct-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  mulge0 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\
                ( B e. RR /\ 0 <_ B ) ) -> 0 <_ ( A x. B ) ) $=
    ( cr wcel cc0 cle wbr wa clt wn ad2ant2r 0re sylancl cap wo wb reaplt lenlt
    cc mpbird co remulcl ltnsym2 orc syl5ibr simplll simplrl wi mulap0r syl3an1
    cmul recn syl3an2 3expia imp simpld mpan2 ad3antrrr mpbid mpan biimpa biorf
    ad2antrr simprd ad2antrl adantr ad2antlr mulgt0d ex syld ancld mtod sylancr
    syl ) ACDZEAFGZHZBCDZEBFGZHZHZEABUKUAZFGZWBEIGZJZWAWDWDEWBIGZHZWAWBCDZECDZW
    GJVOVRWHVPVSABUBKZLWBEUCMWAWDWFWAWDWBENGZWFWDWKWAWDWFOZWDWFUDWAWHWIWKWLPWJL
    WBEQMUEWAWKWFWAWKHZABVOVPVTWKUFVQVRVSWKUGWMEAIGZAEIGZWNOZWMAENGZWPWMWQBENGZ
    WAWKWQWRHZVOVRWKWSUHVPVSVOVRWKWSVRVOBSDZWKWSBULVOASDWTWKWSAULABUIUJUMUNKUOZ
    UPVOWQWPPZVPVTWKVOWIXBLAEQUQURUSWMWOJZWNWPPVQXCVTWKVOVPXCWIVOVPXCPLEARUTVAV
    CWOWNVBVNTWMEBIGZBEIGZXDOZWMWRXFWMWQWRXAVDWAWRXFPZWKVRXGVQVSVRWIXGLBEQUQVEV
    FUSWMXEJZXDXFPVTXHVQWKVRVSXHWIVRVSXHPLEBRUTVAVGXEXDVBVNTVHVIVJVKVLWAWIWHWCW
    EPLWJEWBRVMT $.

  ${
    mulge0i.1 $e |- A e. RR $.
    mulge0i.2 $e |- B e. RR $.
    $( The product of two nonnegative numbers is nonnegative.  (Contributed by
       NM, 30-Jul-1999.) $)
    mulge0i $p |- ( ( 0 <_ A /\ 0 <_ B ) -> 0 <_ ( A x. B ) ) $=
      ( cr wcel cc0 cle wbr wa cmul co mulge0 an4s mpanl12 ) AEFZBEFZGAHIZGBHIZ
      JGABKLHIZCDPRQSTABMNO $.
  $}

  ${
    mulge0d.1 $e |- ( ph -> A e. RR ) $.
    mulge0d.2 $e |- ( ph -> B e. RR ) $.
    mulge0d.3 $e |- ( ph -> 0 <_ A ) $.
    mulge0d.4 $e |- ( ph -> 0 <_ B ) $.
    $( The product of two nonnegative numbers is nonnegative.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    mulge0d $p |- ( ph -> 0 <_ ( A x. B ) ) $=
      ( cr wcel cc0 cle wbr cmul co mulge0 syl22anc ) ABHIJBKLCHIJCKLJBCMNKLDFE
      GBCOP $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Complex apartness is tight.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    apti $p |- ( ( A e. CC /\ B e. CC ) -> ( A = B <-> -. A # B ) ) $=
      ( vx vy vz vw cc wcel wa cv co wceq cr wrex cap wbr wn wb syl2anc notbid
      cmul caddc cnre adantr adantl ad2antrr simpr ad3antrrr simplr cru simpllr
      ci eqeq12d apreim ioran syl6bb breq12d simpld reapti apreap bitr4d simprd
      wo creap anbi12d 3bitr4d ex rexlimdvva mpd ) AGHZBGHZIZACJZULDJZUAKUBKZLZ
      DMNCMNZABLZABOPZQZRZVJVQVKCDAUCUDVLVPWACDMMVLVMMHZVNMHZIZIZVPWAWEVPIZBEJZ
      ULFJZUAKUBKZLZFMNEMNZWAVLWKWDVPVKWKVJEFBUCUEUFWFWJWAEFMMWFWGMHZWHMHZIZIZW
      JWAWOWJIZVOWILZVMWGLZVNWHLZIZVRVTWPWDWNWQWTRWEWDVPWNWJVLWDUGUHZWFWNWJUIZV
      MVNWGWHUJSWPAVOBWIWEVPWNWJUKZWOWJUGZUMWPVOWIOPZQZVMWGOPZQZVNWHOPZQZIZVTWT
      WPWDWNXFXKRXAXBWDWNIZXFXGXIVCZQXKXLXEXMVMVNWGWHUNTXGXIUOUPSWPVSXEWPAVOBWI
      OXCXDUQTWPWRXHWSXJWPWBWLWRXHRWPWBWCXAURWPWLWMXBURWBWLIZWRVMWGVDPZQXHVMWGU
      SXNXGXOVMWGUTTVASWPWCWMWSXJRWPWBWCXAVBWPWLWMXBVBWCWMIZWSVNWHVDPZQXJVNWHUS
      XPXIXQVNWHUTTVASVEVFVFVGVHVIVGVHVI $.
  $}

  $( Apartness implies negated equality.  We cannot in general prove the
     converse, which is the whole point of having separate notations for
     apartness and negated equality.  (Contributed by Jim Kingdon,
     21-Feb-2020.) $)
  apne $p |- ( ( A e. CC /\ B e. CC ) -> ( A # B -> A =/= B ) ) $=
    ( cc wcel wa cap wbr wceq wn apti biimpd necon2ad ) ACDBCDEZABFGZABMABHNIAB
    JKL $.

  $( Positive implies apart from zero.  (Contributed by Jim Kingdon,
     27-Feb-2020.) $)
  gt0ap0 $p |- ( ( A e. RR /\ 0 < A ) -> A # 0 ) $=
    ( cr wcel cc0 clt wbr wa cap wo simpr olcd wb 0red reaplt syldan mpbird ) A
    BCZDAEFZGZADHFZADEFZRIZSRUAQRJKQRDBCTUBLSMADNOP $.

  ${
    gt0ap0i.1 $e |- A e. RR $.
    $( Positive means apart from zero (useful for ordering theorems involving
       division).  (Contributed by Jim Kingdon, 27-Feb-2020.) $)
    gt0ap0i $p |- ( 0 < A -> A # 0 ) $=
      ( cr wcel cc0 clt wbr cap gt0ap0 mpan ) ACDEAFGAEHGBAIJ $.

    ${
      gt0ap0i.2 $e |- 0 < A $.
      $( Positive implies apart from zero.  (Contributed by Jim Kingdon,
         27-Feb-2020.) $)
      gt0ap0ii $p |- A # 0 $=
        ( cc0 clt wbr cap gt0ap0i ax-mp ) DAEFADGFCABHI $.
    $}
  $}

  ${
    gt0ap0d.1 $e |- ( ph -> A e. RR ) $.
    gt0ap0d.2 $e |- ( ph -> 0 < A ) $.
    $( Positive implies apart from zero.  Because of the way we define ` # ` ,
       ` A ` must be an element of ` RR ` , not just ` RR* ` .  (Contributed by
       Jim Kingdon, 27-Feb-2020.) $)
    gt0ap0d $p |- ( ph -> A # 0 ) $=
      ( cr wcel cc0 clt wbr cap gt0ap0 syl2anc ) ABEFGBHIBGJICDBKL $.
  $}

  $( A number is apart from zero iff its negative is apart from zero.
     (Contributed by Jim Kingdon, 27-Feb-2020.) $)
  negap0 $p |- ( A e. CC -> ( A # 0 <-> -u A # 0 ) ) $=
    ( cc wcel cc0 cap wbr cneg wb 0cn apneg mpan2 neg0 breq2i syl6bb ) ABCZADEF
    ZAGZDGZEFZQDEFODBCPSHIADJKRDQELMN $.

  $( Less than in terms of non-strict order and apartness.  (Contributed by Jim
     Kingdon, 28-Feb-2020.) $)
  ltleap $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A < B <-> ( A <_ B /\ A # B ) ) ) $=
    ( cr wcel wa clt wbr cle cap ltle wo orc reaplt syl5ibr wn simprl wb adantr
    jcad mpbid lenlt simprr ecased ex impbid ) ACDBCDEZABFGZABHGZABIGZEZUFUGUHU
    IABJUGUIUFUGBAFGZKZUGUKLABMZNSUFUJUGUFUJEZUGUKUNUHUKOZUFUHUIPUFUHUOQUJABUAR
    TUNUIULUFUHUIUBUFUIULQUJUMRTUCUDUE $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           Reciprocals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Lemma for ~ recexap .  (Contributed by Eric Schmidt, 23-May-2007.) $)
  recextlem1 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + ( _i x. B ) ) x.
      ( A - ( _i x. B ) ) ) = ( ( A x. A ) + ( B x. B ) ) ) $=
    ( cc wcel wa ci cmul caddc cmin cneg ax-icn mulcl adantl sylan2 subdid wceq
    co eqtrd anidms oveq12d simpl subcl adddird mulcom c1 oveq1i mulm1d syl5req
    mpan ixi mul4 mpanl12 eqtr4d adantr negcld npncand subneg syl2an 3eqtrd ) A
    CDZBCDZEZAFBGQZHQAVCIQZGQAVDGQZVCVDGQZHQAAGQZAVCGQZIQZVHBBGQZJZIQZHQZVGVJHQ
    ZVBAVCVDUTVAUAZVAVCCDZUTFCDZVAVPKFBLUIZMZVAUTVPVDCDVRAVCUBNUCVBVEVIVFVLHVBA
    AVCVOVOVSOVBVFVCAGQZVCVCGQZIQVLVBVCAVCVSVOVSOVBVHVTVKWAIVAUTVPVHVTPVRAVCUDN
    VAVKWAPZUTVAWBVAVAEZVKFFGQZVJGQZWAWCWEUEJZVJGQVKWDWFVJGUJUFWCVJBBLZUGUHVQVQ
    WCWEWAPKKFFBBUKULRSMTUMTVBVMVGVKIQZVNVBVGVHVKUTVGCDZVAUTWIAALSZUNVAUTVPVHCD
    VRAVCLNVAVKCDZUTVAWKWCVJWGUOSMUPUTWIVJCDZWHVNPVAWJVAWLWGSVGVJUQURRUS $.

  $( Lemma for ~ recexap .  (Contributed by Jim Kingdon, 20-Feb-2020.) $)
  recexaplem2 $p |- ( ( A e. RR /\ B e. RR /\ ( A + ( _i x. B ) ) # 0 ) ->
      ( ( A x. A ) + ( B x. B ) ) # 0 ) $=
    ( cr wcel ci cmul co caddc cc0 cap wbr clt wo wa wb 0re cle remulcl anim12i
    anidms w3a ax-icn mul01i oveq2i eqtr2i breq2i apreim mpanr12 syl5bb pm5.32i
    00id adantr apsqgt0 msqge0 an32s addgtge0 syl2anc anassrs jaodan sylbi olcd
    addgegt0 3impa simp1 remulcld simp2 readdcld reaplt sylancl mpbird ) ACDZBC
    DZAEBFGHGZIJKZUAZAAFGZBBFGZHGZIJKZVRILKZIVRLKZMZVOWAVTVKVLVNWAVKVLNZVNNWCAI
    JKZBIJKZMZNWAWCVNWFVNVMIEIFGZHGZJKZWCWFIWHVMJWHIIHGIWGIIHEUBUCUDUKUEUFWCICD
    ZWJWIWFOPPABIIUGUHUIUJWCWDWAWEWCWDNVPCDZVQCDZNZIVPLKZIVQQKZNZWAWCWMWDVKWKVL
    WLVKWKAARTVLWLBBRTSZULVKWDVLWPVKWDNWNVLWOAUMBUNSUOVPVQUPUQWCWENWMIVPQKZIVQL
    KZNZWAWCWMWEWQULVKVLWEWTVKWRVLWENWSAUNBUMSURVPVQVBUQUSUTVCVAVOVRCDWJVSWBOVO
    VPVQVOAAVKVLVNVDZXAVEVOBBVKVLVNVFZXBVEVGPVRIVHVIVJ $.

  ${
    $d x y a b A $.
    $( Existence of reciprocal of nonzero complex number.  (Contributed by Jim
       Kingdon, 20-Feb-2020.) $)
    recexap $p |- ( ( A e. CC /\ A # 0 ) -> E. x e. CC ( A x. x ) = 1 ) $=
      ( va vb vy cc wcel cc0 cap wbr cv cmul co c1 wceq wrex cr wi wa adantr ci
      caddc cnre recexaplem2 3expia wb remulcl anidms readdcl syl2an 0re apreap
      creap sylancl recexre sylan recn cmin ax-icn mulcl mpan subcl addcl simpr
      sylan2 mulassd recextlem1 oveq1d eqtr3d id sylan9eq eqeq1d rspcev syl2anc
      oveq2 exp31 syl5 rexlimdv mpd ex sylbid syld breq1 adantl rexbidv 3imtr4d
      oveq1 rexlimivv syl imp ) BFGZBHIJZBAKZLMZNOZAFPZWKBCKZUADKZLMZUBMZOZDQPC
      QPWLWPRZCDBUCXAXBCDQQWQQGZWRQGZSZXAXBXEXASWTHIJZWTWMLMZNOZAFPZWLWPXEXFXIR
      XAXEXFWQWQLMZWRWRLMZUBMZHIJZXIXCXDXFXMWQWRUDUEXEXMXLHUMJZXIXEXLQGZHQGXMXN
      UFXCXJQGZXKQGZXOXDXCXPWQWQUGUHXDXQWRWRUGUHXJXKUIUJZUKXLHULUNXEXNXIXEXNSXL
      EKZLMZNOZEQPZXIXEXOXNYBXREXLUOUPXEYBXIRZXNXCWQFGZWRFGZYCXDWQUQWRUQYDYESZY
      AXIEQXSQGXSFGZYFYAXIRXSUQYFYGYAXIYFYGSZYASWQWSURMZXSLMZFGZWTYJLMZNOZXIYHY
      KYAYFYIFGZYGYKYEYDWSFGZYNUAFGYEYOUSUAWRUTVAZWQWSVBVEZYIXSUTUPTYHYAYLXTNYH
      WTYILMZXSLMYLXTYHWTYIXSYFWTFGZYGYEYDYOYSYPWQWSVCVETYFYNYGYQTYFYGVDVFYHYRX
      LXSLYFYRXLOYGWQWRVGTVHVIYAVJVKXHYMAYJFWMYJOXGYLNWMYJWTLVOVLVMVNVPVQVRUJTV
      SVTWAWBTXAWLXFUFXEBWTHIWCWDXAWPXIUFXEXAWOXHAFXAWNXGNBWTWMLWGVLWEWDWFVTWHW
      IWJ $.
  $}

  ${
    $d A x $.  $d B x $.
    $( The product of two numbers apart from zero is apart from zero.  Lemma
       2.15 of [Geuvers], p. 6.  (Contributed by Jim Kingdon, 22-Feb-2020.) $)
    mulap0 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
        ( A x. B ) # 0 ) $=
      ( vx cc wcel cc0 cap wa cv cmul co c1 wceq recexap adantl simpllr simplll
      wbr wrex simplrl simprl mulassd simprr oveq2d mulid1d 3eqtrd 3brtr4d 0cnd
      mul02d wi mulcld mulext1 syl3anc mpd rexlimddv ) ADEZAFGRZHZBDEZBFGRZHZHZ
      BCIZJKZLMZABJKZFGRZCDVAVECDSURCBNOVBVCDEZVEHZHZVFVCJKZFVCJKZGRZVGVJAFVKVL
      GUPUQVAVIPVJVKAVDJKALJKAVJABVCUPUQVAVIQZURUSUTVITZVBVHVEUAZUBVJVDLAJVBVHV
      EUCUDVJAVNUEUFVJVCVPUIUGVJVFDEFDEVHVMVGUJVJABVNVOUKVJUHVPVFFVCULUMUNUO $.
  $}

  $( The product of two numbers apart from zero is apart from zero.
     (Contributed by Jim Kingdon, 24-Feb-2020.) $)
  mulap0b $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A # 0 /\ B # 0 ) <->
      ( A x. B ) # 0 ) ) $=
    ( cc wcel wa cc0 cap wbr cmul co mulap0 an4s ex mulap0r 3expia impbid ) ACD
    ZBCDZEZAFGHZBFGHZEZABIJFGHZSUBUCQTRUAUCABKLMQRUCUBABNOP $.

  ${
    mulap0i.1 $e |- A e. CC $.
    mulap0i.2 $e |- B e. CC $.
    mulap0i.3 $e |- A # 0 $.
    mulap0i.4 $e |- B # 0 $.
    $( The product of two numbers apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 23-Feb-2020.) $)
    mulap0i $p |- ( A x. B ) # 0 $=
      ( cc wcel cc0 cap wbr cmul co mulap0 mp4an ) AGHAIJKBGHBIJKABLMIJKCEDFABN
      O $.
  $}

  ${
    mulap0d.1 $e |- ( ph -> A e. CC ) $.
    mulap0d.2 $e |- ( ph -> B e. CC ) $.
    $( The product of two numbers apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    mulap0bd $p |- ( ph -> ( ( A # 0 /\ B # 0 ) <-> ( A x. B ) # 0 ) ) $=
      ( cc wcel cc0 cap wbr wa cmul co wb mulap0b syl2anc ) ABFGCFGBHIJCHIJKBCL
      MHIJNDEBCOP $.

    mulap0d.3 $e |- ( ph -> A # 0 ) $.
    mulap0d.4 $e |- ( ph -> B # 0 ) $.
    $( The product of two numbers apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 23-Feb-2020.) $)
    mulap0d $p |- ( ph -> ( A x. B ) # 0 ) $=
      ( cc wcel cc0 cap wbr cmul co mulap0 syl22anc ) ABHIBJKLCHICJKLBCMNJKLDFE
      GBCOP $.
  $}

  ${
    mulap0bad.1 $e |- ( ph -> A e. CC ) $.
    mulap0bad.2 $e |- ( ph -> B e. CC ) $.
    mulap0bad.3 $e |- ( ph -> ( A x. B ) # 0 ) $.
    $( A factor of a complex number apart from zero is apart from zero.
       Partial converse of ~ mulap0d and consequence of ~ mulap0bd .
       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    mulap0bad $p |- ( ph -> A # 0 ) $=
      ( cc0 cap wbr wa cmul co mulap0bd mpbird simpld ) ABGHIZCGHIZAPQJBCKLGHIF
      ABCDEMNO $.

    $( A factor of a complex number apart from zero is apart from zero.
       Partial converse of ~ mulap0d and consequence of ~ mulap0bd .
       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    mulap0bbd $p |- ( ph -> B # 0 ) $=
      ( cc0 cap wbr wa cmul co mulap0bd mpbird simprd ) ABGHIZCGHIZAPQJBCKLGHIF
      ABCDEMNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    mulcand.1 $e |- ( ph -> A e. CC ) $.
    mulcand.2 $e |- ( ph -> B e. CC ) $.
    mulcand.3 $e |- ( ph -> C e. CC ) $.
    mulcand.4 $e |- ( ph -> C # 0 ) $.
    $( Cancellation law for multiplication.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    mulcanapd $p |- ( ph -> ( ( C x. A ) = ( C x. B ) <-> A = B ) ) $=
      ( vx cmul co wceq c1 cc wcel wa oveq2 adantr oveq1d mulassd cv wi cc0 cap
      wrex recexap syl2anc simprl mulcomd simprr mulid2d 3eqtr3d eqeq12d syl5ib
      wbr eqtrd rexlimddv impbid1 ) ADBJKZDCJKZLZBCLZADIUAZJKZMLZVAVBUBINADNOZD
      UCUDUOVEINUEGHIDUFUGVAVCUSJKZVCUTJKZLAVCNOZVEPZPZVBUSUTVCJQVKVGBVHCVKVCDJ
      KZBJKMBJKVGBVKVLMBJVKVLVDMVKVCDAVIVEUHZAVFVJGRZUIAVIVEUJUPZSVKVCDBVMVNABN
      OVJERZTVKBVPUKULVKVLCJKMCJKVHCVKVLMCJVOSVKVCDCVMVNACNOVJFRZTVKCVQUKULUMUN
      UQBCDJQUR $.

    $( Cancellation law for multiplication.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    mulcanap2d $p |- ( ph -> ( ( A x. C ) = ( B x. C ) <-> A = B ) ) $=
      ( cmul co wceq mulcomd eqeq12d mulcanapd bitrd ) ABDIJZCDIJZKDBIJZDCIJZKB
      CKAPRQSABDEGLACDFGLMABCDEFGHNO $.
  $}

  ${
    mulcanapad.1 $e |- ( ph -> A e. CC ) $.
    mulcanapad.2 $e |- ( ph -> B e. CC ) $.
    mulcanapad.3 $e |- ( ph -> C e. CC ) $.
    mulcanapad.4 $e |- ( ph -> C # 0 ) $.
    ${
      mulcanapad.5 $e |- ( ph -> ( C x. A ) = ( C x. B ) ) $.
      $( Cancellation of a nonzero factor on the left in an equation.  One-way
         deduction form of ~ mulcanapd .  (Contributed by Jim Kingdon,
         21-Feb-2020.) $)
      mulcanapad $p |- ( ph -> A = B ) $=
        ( cmul co wceq mulcanapd mpbid ) ADBJKDCJKLBCLIABCDEFGHMN $.
    $}

    ${
      mulcanap2ad.5 $e |- ( ph -> ( A x. C ) = ( B x. C ) ) $.
      $( Cancellation of a nonzero factor on the right in an equation.  One-way
         deduction form of ~ mulcanap2d .  (Contributed by Jim Kingdon,
         21-Feb-2020.) $)
      mulcanap2ad $p |- ( ph -> A = B ) $=
        ( cmul co wceq mulcanap2d mpbid ) ABDJKCDJKLBCLIABCDEFGHMN $.
    $}
  $}

  $( Cancellation law for multiplication (full theorem form).  (Contributed by
     Jim Kingdon, 21-Feb-2020.) $)
  mulcanap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
                 ( ( C x. A ) = ( C x. B ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a simp1 simp2 simp3l simp3r mulcanapd ) ADEZBDEZ
    CDEZCFGHZIZJABCPQTKPQTLPQRSMPQRSNO $.

  $( Cancellation law for multiplication.  (Contributed by Jim Kingdon,
     21-Feb-2020.) $)
  mulcanap2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
                 ( ( A x. C ) = ( B x. C ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a simp1 simp2 simp3l simp3r mulcanap2d ) ADEZBDE
    ZCDEZCFGHZIZJABCPQTKPQTLPQRSMPQRSNO $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    mulcanapi.1 $e |- A e. CC $.
    mulcanapi.2 $e |- B e. CC $.
    mulcanapi.3 $e |- C e. CC $.
    mulcanapi.4 $e |- C # 0 $.
    $( Cancellation law for multiplication.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    mulcanapi $p |- ( ( C x. A ) = ( C x. B ) <-> A = B ) $=
      ( cc wcel cc0 cap wbr wa cmul co wceq wb pm3.2i mulcanap mp3an ) AHIBHICH
      IZCJKLZMCANOCBNOPABPQDEUAUBFGRABCST $.
  $}

  $( Property of numbers whose product equals their sum.  Equation 5 of
     [Kreyszig] p. 12.  (Contributed by NM, 13-Nov-2006.) $)
  muleqadd $p |- ( ( A e. CC /\ B e. CC ) ->
             ( ( A x. B ) = ( A + B ) <-> ( ( A - 1 ) x. ( B - 1 ) ) = 1 ) ) $=
    ( cc wcel wa c1 cmin co cmul wceq caddc ax-1cn mulsub mpanr2 mpanl2 mulid1i
    cc0 oveq2i a1i mulid1 oveqan12d oveq12d addsub mp3an2 syl2anc 3eqtrd eqeq1d
    mulcl addcl addid2i eqeq2i subcld 0cn addcan2 mp3an23 syl syl5rbbr subeq0ad
    wb 3bitr2rd ) ACDZBCDZEZAFGHBFGHIHZFJABIHZABKHZGHZFKHZFJZVGQJZVEVFJVCVDVHFV
    CVDVEFFIHZKHZAFIHZBFIHZKHZGHZVEFKHZVFGHZVHVAFCDZVBVDVPJZLVAVSEVBVSVTLAFBFMN
    OVCVLVQVOVFGVLVQJVCVKFVEKFLPRSVAVBVMAVNBKATBTUAUBVCVECDZVFCDZVRVHJZABUHZABU
    IZWAVSWBWCLVEFVFUCUDUEUFUGVIVHQFKHZJZVCVJWFFVHFLUJUKVCVGCDZWGVJUSZVCVEVFWDW
    EULWHQCDVSWIUMLVGQFUNUOUPUQVCVEVFWDWEURUT $.

  ${
    $d x y A $.  $d x y B $.
    $( Existential uniqueness of reciprocals.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    receuap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
        E! x e. CC ( B x. x ) = A ) $=
      ( vy cc wcel cc0 w3a cv cmul co wceq wrex wa wi wral 3adant1 oveq2 eqeq1d
      c1 cap wbr wreu recexap simprl simpll mulcld oveq1 simplr mulassd mulid2d
      ad2antll 3eqtr3d rspcev syl2anc rexlimdvaa 3adant3 mpd eqtr3 syl5ib 3expa
      mulcanap expcom ralrimivv reu4 sylanbrc ) BEFZCEFZCGUAUBZHZCAIZJKZBLZAEMZ
      VMCDIZJKZBLZNZVKVOLZOZDEPAEPVMAEUCVJVPTLZDEMZVNVHVIWBVGDCUDQVGVHWBVNOVIVG
      VHNZWAVNDEWCVOEFZWANZNZVOBJKZEFCWGJKZBLZVNWFVOBWCWDWAUEZVGVHWEUFZUGWFVPBJ
      KZTBJKZWHBWAWLWMLWCWDVPTBJUHULWFCVOBVGVHWEUIWJWKUJWFBWKUKUMVMWIAWGEVKWGLV
      LWHBVKWGCJRSUNUOUPUQURVJVTADEEVHVIVKEFZWDNZVTOVGWOVHVINZVTWNWDWPVTVRVLVPL
      WNWDWPHVSVLVPBUSVKVOCVBUTVAVCQVDVMVQADEVSVLVPBVKVOCJRSVEVF $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Division
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend class notation to include division. $)
  cdiv $a class / $.

  ${
    $d x y z $.
    $( Define division.  Theorem ~ divmulap relates it to multiplication, and
       ~ divclap and ~ redivclap prove its closure laws.  (Contributed by NM,
       2-Feb-1995.)  (Revised by Mario Carneiro, 1-Apr-2014.)
       (New usage is discouraged.) $)
    df-div $a |- / = ( x e. CC , y e. ( CC \ { 0 } ) |->
                   ( iota_ z e. CC ( y x. z ) = x ) ) $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y C $.
    $( Value of division: the (unique) element ` x ` such that
       ` ( B x. x ) = A ` .  This is meaningful only when ` B ` is apart from
       zero.  (Contributed by Jim Kingdon, 21-Feb-2020.) $)
    divvalap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
        ( A / B ) = ( iota_ x e. CC ( B x. x ) = A ) ) $=
      ( vz vy cc wcel cc0 cap wbr w3a csn cdif cv cmul wceq crio cdiv riotabidv
      co simp1 wne simp2 wi 0cn apne mpan2 adantl eldifsn sylanbrc wreu receuap
      3impia riotacl syl eqeq2 oveq1 eqeq1d df-div ovmpt2g syl3anc ) BFGZCFGZCH
      IJZKZVBCFHLMZGZCANZOTZBPZAFQZFGZBCRTVKPVBVCVDUAVEVCCHUBZVGVBVCVDUCVBVCVDV
      MVCVDVMUDZVBVCHFGVNUECHUFUGUHUMCFHUIUJVEVJAFUKVLABCULVJAFUNUODEBCFVFENZVH
      OTZDNZPZAFQVKRVPBPZAFQFVQBPVRVSAFVQBVPUPSVOCPZVSVJAFVTVPVIBVOCVHOUQURSDEA
      USUTVA $.

    $( Relationship between division and multiplication.  (Contributed by Jim
       Kingdon, 22-Feb-2020.) $)
    divmulap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
        -> ( ( A / C ) = B <-> ( C x. B ) = A ) ) $=
      ( vx cc wcel cc0 cap wbr wa w3a cdiv co wceq cv cmul 3expb 3adant2 eqeq1d
      crio divvalap wreu wb simp2 receuap oveq2 riota2 syl2anc bitr4d ) AEFZBEF
      ZCEFZCGHIZJZKZACLMZBNCDOZPMZANZDETZBNZCBPMZANZUOUPUTBUJUNUPUTNZUKUJULUMVD
      DACUAQRSUOUKUSDEUBZVCVAUCUJUKUNUDUJUNVEUKUJULUMVEDACUEQRUSVCDEBUQBNURVBAU
      QBCPUFSUGUHUI $.
  $}

  $( Relationship between division and multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  divmulap2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( ( A / C ) = B <-> A = ( C x. B ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co wceq cmul divmulap eqcom syl6bb ) ADEB
    DECDECFGHIJACKLBMCBNLZAMARMABCORAPQ $.

  $( Relationship between division and multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  divmulap3 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( ( A / C ) = B <-> A = ( B x. C ) ) ) $=
    ( cc wcel cc0 cap wbr wa cdiv co wceq cmul divmulap2 mulcom adantrr 3adant1
    w3a eqeq2d bitr4d ) ADEZBDEZCDEZCFGHZIZRZACJKBLACBMKZLABCMKZLABCNUFUHUGAUBU
    EUHUGLZUAUBUCUIUDBCOPQST $.

  ${
    $d x A $.  $d x B $.
    $( Closure law for division.  (Contributed by Jim Kingdon, 22-Feb-2020.) $)
    divclap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) -> ( A / B ) e. CC ) $=
      ( vx cc wcel cc0 cap wbr w3a cdiv co cmul wceq crio divvalap wreu receuap
      cv riotacl syl eqeltrd ) ADEBDEBFGHIZABJKBCRLKAMZCDNZDCABOUBUCCDPUDDECABQ
      UCCDSTUA $.
  $}

  $( Closure law for reciprocal.  (Contributed by Jim Kingdon, 22-Feb-2020.) $)
  recclap $p |- ( ( A e. CC /\ A # 0 ) -> ( 1 / A ) e. CC ) $=
    ( c1 cc wcel cc0 cap wbr cdiv co ax-1cn divclap mp3an1 ) BCDACDAEFGBAHICDJB
    AKL $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     22-Feb-2020.) $)
  divcanap2 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( B x. ( A / B ) ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co wceq cmul eqid wa wb simp1 divclap 3simpc
    divmulap syl3anc mpbii ) ACDZBCDZBEFGZHZABIJZUFKZBUFLJAKZUFMUEUBUFCDUCUDNUG
    UHOUBUCUDPABQUBUCUDRAUFBSTUA $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     22-Feb-2020.) $)
  divcanap1 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 )
      -> ( ( A / B ) x. B ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cdiv cmul divclap simp2 mulcomd divcanap2 eqtrd
    co ) ACDZBCDZBEFGZHZABIPZBJPBUAJPATUABABKQRSLMABNO $.

  $( A ratio is zero iff the numerator is zero.  (Contributed by Jim Kingdon,
     22-Feb-2020.) $)
  diveqap0 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( ( A / B ) = 0 <-> A = 0 ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co wceq cmul wa wb simp1 0cnd 3simpc syl3anc
    divmulap2 simp2 mul01d eqeq2d bitrd ) ACDZBCDZBEFGZHZABIJEKZABELJZKZAEKUGUD
    ECDUEUFMUHUJNUDUEUFOUGPUDUEUFQAEBSRUGUIEAUGBUDUEUFTUAUBUC $.

  $( The ratio of numbers apart from zero is apart from zero.  (Contributed by
     Jim Kingdon, 22-Feb-2020.) $)
  divap0b $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( A # 0 <-> ( A / B ) # 0 ) ) $=
    ( cc wcel cc0 cap wbr cdiv co wa cmul simp3 biantrud divclap simp2 mulap0bd
    w3a divcanap1 breq1d 3bitrrd ) ACDZBCDZBEFGZQZABHIZEFGZUFUCJUEBKIZEFGAEFGUD
    UCUFUAUBUCLMUDUEBABNUAUBUCOPUDUGAEFABRST $.

  $( The ratio of numbers apart from zero is apart from zero.  (Contributed by
     Jim Kingdon, 22-Feb-2020.) $)
  divap0 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
      ( A / B ) # 0 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co wb divap0b 3expb biimpa an32s ) ACDZBCDZBE
    FGZHZAEFGZABIJEFGZPSHTUAPQRTUAKABLMNO $.

  $( The reciprocal of a number apart from zero is apart from zero.
     (Contributed by Jim Kingdon, 24-Feb-2020.) $)
  recap0 $p |- ( ( A e. CC /\ A # 0 ) -> ( 1 / A ) # 0 ) $=
    ( c1 cc wcel cc0 cap wbr wa cdiv co ax-1cn 1ap0 divap0 mpanl12 ) BCDBEFGACD
    AEFGHBAIJEFGKLBAMN $.

  $( Multiplication of a number and its reciprocal.  (Contributed by Jim
     Kingdon, 24-Feb-2020.) $)
  recidap $p |- ( ( A e. CC /\ A # 0 ) -> ( A x. ( 1 / A ) ) = 1 ) $=
    ( c1 cc wcel cc0 cap wbr cdiv co cmul wceq ax-1cn divcanap2 mp3an1 ) BCDACD
    AEFGABAHIJIBKLBAMN $.

  $( Multiplication of a number and its reciprocal.  (Contributed by Jim
     Kingdon, 24-Feb-2020.) $)
  recidap2 $p |- ( ( A e. CC /\ A # 0 ) -> ( ( 1 / A ) x. A ) = 1 ) $=
    ( c1 cc wcel cc0 cap wbr cdiv co cmul wceq ax-1cn divcanap1 mp3an1 ) BCDACD
    AEFGBAHIAJIBKLBAMN $.

  $( Relationship between division and reciprocal.  (Contributed by Jim
     Kingdon, 24-Feb-2020.) $)
  divrecap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( A / B ) = ( A x. ( 1 / B ) ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co c1 cmul wceq simp2 recclap 3adant1 mul12d
    simp1 recidap oveq2d mulid1d 3eqtrd mulcld 3simpc divmulap syl3anc mpbird
    wa wb ) ACDZBCDZBEFGZHZABIJAKBIJZLJZMZBUOLJZAMZUMUQABUNLJZLJAKLJAUMBAUNUJUK
    ULNUJUKULRZUKULUNCDUJBOPZQUMUSKALUKULUSKMUJBSPTUMAUTUAUBUMUJUOCDUKULUHUPURU
    IUTUMAUNUTVAUCUJUKULUDAUOBUEUFUG $.

  $( Relationship between division and reciprocal.  (Contributed by Jim
     Kingdon, 25-Feb-2020.) $)
  divrecap2 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( A / B ) = ( ( 1 / B ) x. A ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co c1 divrecap simp1 recclap 3adant1 mulcomd
    cmul eqtrd ) ACDZBCDZBEFGZHZABIJAKBIJZQJUCAQJABLUBAUCSTUAMTUAUCCDSBNOPR $.

  $( An associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divassap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
      ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cmul cdiv wceq recclap mulass syl3an3 divrecap
    co c1 syl3anc mulcl 3adant3 simp3l simp3r simp2 oveq2d 3eqtr4d ) ADEZBDEZCD
    EZCFGHZIZJZABKRZSCLRZKRZABUOKRZKRZUNCLRZABCLRZKRULUHUIUODEUPURMCNABUOOPUMUN
    DEZUJUKUSUPMUHUIVAULABUAUBUHUIUJUKUCZUHUIUJUKUDZUNCQTUMUTUQAKUMUIUJUKUTUQMU
    HUIULUEVBVCBCQTUFUG $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div23ap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( ( A x. B ) / C ) = ( ( A / C ) x. B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cmul co cdiv wceq mulcom oveq1d 3adant3 3com12
    divassap simp2 divclap 3expb 3adant2 mulcomd 3eqtrd ) ADEZBDEZCDEZCFGHZIZJZ
    ABKLZCMLZBAKLZCMLZBACMLZKLZUPBKLUFUGUMUONUJUFUGIULUNCMABOPQUGUFUJUOUQNBACSR
    UKBUPUFUGUJTUFUJUPDEZUGUFUHUIURACUAUBUCUDUE $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div32ap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ C e. CC )
      -> ( ( A / B ) x. C ) = ( A x. ( C / B ) ) ) $=
    ( cc wcel cc0 cap wbr wa cdiv cmul wceq w3a div23ap divassap eqtr3d 3com23
    co ) ADEZCDEZBDEBFGHIZABJRCKRZACBJRKRZLSTUAMACKRBJRUBUCACBNACBOPQ $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div13ap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ C e. CC )
      -> ( ( A / B ) x. C ) = ( ( C / B ) x. A ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cmul co cdiv wceq mulcom oveq1d 3adant2 3com23
    div23ap 3coml 3eqtr3d ) ADEZBDEBFGHIZCDEZJACKLZBMLZCAKLZBMLZABMLCKLZCBMLAKL
    ZUBUDUFUHNUCUBUDIUEUGBMACOPQUBUDUCUFUINACBSRUDUBUCUHUJNCABSTUA $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div12ap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( A x. ( B / C ) ) = ( B x. ( A / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co cmul divclap 3expb mulcom sylan2 3impb
    wceq div13ap 3comr sylan 3impa 3com23 3eqtrd ) ADEZBDEZCDEZCFGHZIZJABCKLZML
    ZUKAMLZACKLZBMLZBUNMLZUFUGUJULUMSZUGUJIUFUKDEZUQUGUHUIURBCNOAUKPQRUGUJUFUMU
    OSBCATUAUFUJUGUOUPSZUFUJUGUSUFUJIUNDEZUGUSUFUHUIUTACNOUNBPUBUCUDUE $.

  $( Distribution of division over addition.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divdirap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
               -> ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a caddc co c1 cdiv cmul simp1 simp2 wceq syl3anc
    divrecap recclap 3ad2ant3 adddird addcld simp3l simp3r oveq12d 3eqtr4d ) AD
    EZBDEZCDEZCFGHZIZJZABKLZMCNLZOLZAUPOLZBUPOLZKLUOCNLZACNLZBCNLZKLUNABUPUIUJU
    MPZUIUJUMQZUMUIUPDEUJCUAUBUCUNUODEUKULUTUQRUNABVCVDUDUIUJUKULUEZUIUJUKULUFZ
    UOCTSUNVAURVBUSKUNUIUKULVAURRVCVEVFACTSUNUJUKULVBUSRVDVEVFBCTSUGUH $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divcanap3 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                 ( ( B x. A ) / B ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cmul co cdiv wceq wa wb simp2 simp1 mulcld 3simpc
    eqid divmulap syl3anc mpbiri ) ACDZBCDZBEFGZHZBAIJZBKJALZUGUGLZUGSUFUGCDUCU
    DUEMUHUINUFBAUCUDUEOUCUDUEPZQUJUCUDUERUGABTUAUB $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divcanap4 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                 ( ( A x. B ) / B ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cmul co cdiv wceq mulcom 3adant3 oveq1d divcanap3
    eqtrd ) ACDZBCDZBEFGZHZABIJZBKJBAIJZBKJAUAUBUCBKRSUBUCLTABMNOABPQ $.

  $( One-to-one relationship for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div11ap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
               ( ( A / C ) = ( B / C ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co cmul wceq simp1 simp3l divclap syl3anc
    simp3r divcanap2 simp2 mulcanapd eqeq12d bitr3d ) ADEZBDEZCDEZCFGHZIZJZCACK
    LZMLZCBCKLZMLZNUKUMNABNUJUKUMCUJUEUGUHUKDEUEUFUIOZUEUFUGUHPZUEUFUGUHSZACQRU
    JUFUGUHUMDEUEUFUIUAZUPUQBCQRUPUQUBUJULAUNBUJUEUGUHULANUOUPUQACTRUJUFUGUHUNB
    NURUPUQBCTRUCUD $.

  $( A number divided by itself is one.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  dividap $p |- ( ( A e. CC /\ A # 0 ) -> ( A / A ) = 1 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co cmul wceq divrecap 3anidm12 recidap eqtrd
    c1 ) ABCZADEFZGAAHIZAPAHIJIZPQRSTKAALMANO $.

  $( Division into zero is zero.  (Contributed by Jim Kingdon, 25-Feb-2020.) $)
  div0ap $p |- ( ( A e. CC /\ A # 0 ) -> ( 0 / A ) = 0 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co wceq cmul simpl mul01d wb divmulap mp3an12
    0cn mpbird ) ABCZADEFZGZDAHIDJZADKIDJZUAASTLMDBCZUDUAUBUCNQQDDAOPR $.

  $( A number divided by 1 is itself.  (Contributed by NM, 9-Jan-2002.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  div1 $p |- ( A e. CC -> ( A / 1 ) = A ) $=
    ( cc wcel c1 cdiv co wceq cmul mulid2 wb cc0 cap wbr ax-1cn pm3.2i divmulap
    wa 1ap0 mp3an3 anidms mpbird ) ABCZADEFAGZDAHFAGZAIUBUCUDJZUBUBDBCZDKLMZQUE
    UFUGNROAADPSTUA $.

  $( 1 divided by 1 is 1 (common case).  (Contributed by David A. Wheeler,
     7-Dec-2018.) $)
  1div1e1 $p |- ( 1 / 1 ) = 1 $=
    ( c1 cc wcel cdiv co wceq ax-1cn div1 ax-mp ) ABCAADEAFGAHI $.

  $( Equality in terms of unit ratio.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  diveqap1 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( ( A / B ) = 1 <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co c1 wceq cmul wb wa ax-1cn divmulap2 3impb
    mp3an2 simp2 mulid1d eqeq2d bitrd ) ACDZBCDZBEFGZHZABIJKLZABKMJZLZABLUDUEUF
    UHUJNZUDKCDUEUFOUKPAKBQSRUGUIBAUGBUDUEUFTUAUBUC $.

  $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divnegap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                -u ( A / B ) = ( -u A / B ) ) $=
    ( cc wcel cc0 cap wbr w3a cneg c1 cdiv co cmul wceq wa recclap sylan2 3impb
    mulneg1 divrecap negcl syl3an1 negeqd 3eqtr4rd ) ACDZBCDZBEFGZHZAIZJBKLZMLZ
    AUJMLZIZUIBKLZABKLZIUEUFUGUKUMNZUFUGOUEUJCDUPBPAUJSQRUEUICDUFUGUNUKNAUAUIBT
    UBUHUOULABTUCUD $.

  $( Distribution of division over subtraction.  (Contributed by NM,
     4-Mar-2005.) $)
  divsubdirap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
               -> ( ( A - B ) / C ) = ( ( A / C ) - ( B / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv cneg caddc cmin wceq eqtr3d 3expb 3adant1
    co divclap divdirap syl3an2 negsub oveq1d 3adant3 divnegap 3adant2 negsubd
    negcl oveq2d ) ADEZBDEZCDEZCFGHZIZJZACKSZBLZCKSZMSZABNSZCKSZUQBCKSZNSZUPAUR
    MSZCKSZUTVBULUKURDEUOVFUTOBUIAURCUAUBUKULVFVBOUOUKULIVEVACKABUCUDUEPUPUQVCL
    ZMSUTVDUPVGUSUQMULUOVGUSOZUKULUMUNVHBCUFQRUJUPUQVCUKUOUQDEZULUKUMUNVIACTQUG
    ULUOVCDEZUKULUMUNVJBCTQRUHPP $.

  $( A number is equal to the reciprocal of its reciprocal.  (Contributed by
     Jim Kingdon, 25-Feb-2020.) $)
  recrecap $p |- ( ( A e. CC /\ A # 0 ) -> ( 1 / ( 1 / A ) ) = A ) $=
    ( cc wcel cc0 cap wbr wa c1 cdiv co wceq cmul recidap2 wb 1cnd simpl recap0
    recclap divmulap syl112anc mpbird ) ABCZADEFZGZHHAIJZIJAKZUEALJHKZAMUDHBCUB
    UEBCUEDEFUFUGNUDOUBUCPARAQHAUESTUA $.

  $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon, 25-Feb-2020.) $)
  rec11ap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) )
                  -> ( ( 1 / A ) = ( 1 / B ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa c1 cdiv co wceq cmul wb 1cnd adantl simpl divmulap
    recclap syl3anc simpll simprl simprr divrecap eqeq1d diveqap1 3bitr2d ) ACD
    ZAEFGZHZBCDZBEFGZHZHZIAJKIBJKZLZAUOMKZILZABJKZILZABLZUNICDUOCDZUJUPURNUNOUM
    VBUJBSPUJUMQIUOARTUNUSUQIUNUHUKULUSUQLUHUIUMUAZUJUKULUBZUJUKULUCZABUDTUEUNU
    HUKULUTVANVCVDVEABUFTUG $.

  $( Mutual reciprocals.  (Contributed by Jim Kingdon, 25-Feb-2020.) $)
  rec11rap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) )
                  -> ( ( 1 / A ) = B <-> ( 1 / B ) = A ) ) $=
    ( cc wcel cc0 cap wa c1 cdiv co wceq cmul wb simprl simpll simplr divmulap2
    wbr 1cnd syl112anc simprr divmulap3 bitr4d ) ACDZAEFRZGZBCDZBEFRZGZGZHAIJBK
    ZHABLJKZHBIJAKZUJHCDZUGUDUEUKULMUJSZUFUGUHNZUDUEUIOZUDUEUIPHBAQTUJUNUDUGUHU
    MULMUOUQUPUFUGUHUAHABUBTUC $.

  $( Multiplication of two ratios.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divmuldivap $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C # 0 )
                    /\ ( D e. CC /\ D # 0 ) ) )
               -> ( ( A / C ) x. ( B / D ) ) = ( ( A x. B ) / ( C x. D ) ) ) $=
    ( cc wcel cc0 cap wbr wa cdiv co cmul wceq w3a 3anass mulcl syl2an 3adantr1
    divclap ad2ant2r 3adantl1 mulap0 divcanap3 syl3anc simp2 jca mul4 divcanap2
    oveqan12d eqtr3d oveq1d syl2anbr an4s ) AEFZCEFZCGHIZJZBEFZDEFZDGHIZJZACKLZ
    BDKLZMLZABMLZCDMLZKLZNZUOURJUOUPUQOZUSUTVAOZVIUSVBJUOUPUQPUSUTVAPVJVKJZVGVE
    MLZVGKLZVEVHVLVEEFZVGEFZVGGHIZVNVENVJVCEFZVDEFZVOVKACTZBDTZVCVDQRUPUQVKVPUO
    URUTVAVPUSUPUTVPUQVACDQUASUBUPUQVKVQUOURUTVAVQUSCDUCSUBVEVGUDUEVLVMVFVGKVLC
    VCMLZDVDMLZMLZVMVFVJUPVRJUTVSJWDVMNVKVJUPVRUOUPUQUFVTUGVKUTVSUSUTVAUFWAUGCV
    CDVDUHRVJVKWBAWCBMACUIBDUIUJUKULUKUMUN $.

  $( Division of two ratios.  Theorem I.15 of [Apostol] p. 18.  (Contributed by
     Jim Kingdon, 25-Feb-2020.) $)
  divdivdivap $p |- ( ( ( A e. CC /\ ( B e. CC /\ B # 0 ) ) /\
                  ( ( C e. CC /\ C # 0 ) /\ ( D e. CC /\ D # 0 ) ) )
                -> ( ( A / B ) / ( C / D ) ) = ( ( A x. D ) / ( B x. C ) ) ) $=
    ( cc wcel cc0 cap wbr wa cdiv co cmul wceq divclap syl3anc mulcomd eqtrd c1
    mulcld simprrl simprll simprlr simpll simplrl simplr simprl syl22anc oveq2d
    simplrr divmuldivap simprrr mulap0d dividap syl2anc mulassd mulid2d 3eqtr3d
    simprr oveq1d eqtr3d wb mulap0 ad2ant2lr divap0 adantl divmulap syl112anc
    mpbird ) AEFZBEFZBGHIZJZJZCEFZCGHIZJZDEFZDGHIZJZJZJZABKLZCDKLZKLADMLZBCMLZK
    LZNZWDWGMLZWCNZWBWDDCKLZWCMLZMLZWIWCWBWLWGWDMWBWLWCWKMLZWGWBWKWCWBVRVOVPWKE
    FVNVQVRVSUAZVNVOVPVTUBZVNVOVPVTUCZDCOPZWBVJVKVLWCEFZVJVMWAUDZVJVKVLWAUEZVJV
    KVLWAUJABOPZQWBVJVRVMVQWNWGNWTWOVJVMWAUFVNVQVTUGZADBCUKUHRUIWBWDWKMLZWCMLSW
    CMLWMWCWBXDSWCMWBXDCDMLZDCMLZKLZSWBVOVRVTVQXDXGNWPWOVNVQVTUSXCCDDCUKUHWBXGX
    FXFKLZSWBXEXFXFKWBCDWPWOQUTWBXFEFXFGHIXHSNWBDCWOWPTWBDCWOWPVNVQVRVSULZWQUMX
    FUNUORRUTWBWDWKWCWBVOVRVSWDEFZWPWOXICDOPZWRXBUPWBWCXBUQURVAWBWSWGEFZXJWDGHI
    ZWHWJVBXBWBWEEFWFEFWFGHIZXLWBADWTWOTWBBCXAWPTVMVQXNVJVTBCVCVDWEWFOPXKWAXMVN
    CDVEVFWCWGWDVGVHVI $.

  $( Cancellation of common factor in a ratio.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divcanap5 $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\
       ( C e. CC /\ C # 0 ) ) -> ( ( C x. A ) / ( C x. B ) ) = ( A / B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co cmul c1 dividap oveq1d 3ad2ant3 simp3l
    wceq simp1 simp3 simp2 divmuldivap syl22anc divclap mulid2d 3adant3 3eqtr3d
    3expb ) ADEZBDEZBFGHZIZCDEZCFGHZIZJZCCKLZABKLZMLZNUSMLZCAMLCBMLKLZUSUPUJUTV
    ASUMUPURNUSMCOPQUQUNUJUPUMUTVBSUJUMUNUORUJUMUPTUJUMUPUAUJUMUPUBCACBUCUDUJUM
    VAUSSUPUJUMIUSUJUKULUSDEABUEUIUFUGUH $.

  $( Swap the denominators in the product of two ratios.  (Contributed by Jim
     Kingdon, 26-Feb-2020.) $)
  divmul13ap $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C # 0 )
                    /\ ( D e. CC /\ D # 0 ) ) )
                -> ( ( A / C ) x. ( B / D ) ) = ( ( B / C ) x. ( A / D ) ) ) $=
    ( cc wcel wa cc0 cap wbr cmul co cdiv wceq mulcom adantr oveq1d divmuldivap
    ancom1s 3eqtr4d ) AEFZBEFZGZCEFCHIJGDEFDHIJGGZGZABKLZCDKLZMLBAKLZUGMLZACMLB
    DMLKLBCMLADMLKLZUEUFUHUGMUCUFUHNUDABOPQABCDRUBUAUDUJUINBACDRST $.

  $( Swap the numerators in the product of two ratios.  (Contributed by Jim
     Kingdon, 26-Feb-2020.) $)
  divmul24ap $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C # 0 )
                    /\ ( D e. CC /\ D # 0 ) ) )
                -> ( ( A / C ) x. ( B / D ) ) = ( ( A / D ) x. ( B / C ) ) ) $=
    ( cc wcel wa cc0 cap wbr cmul co cdiv wceq mulcom adantl oveq2d divmuldivap
    ad2ant2r ancom2s 3eqtr4d ) AEFBEFGZCEFZCHIJZGZDEFZDHIJZGZGZGZABKLZCDKLZMLUK
    DCKLZMLZACMLBDMLKLADMLBCMLKLZUJULUMUKMUIULUMNZUBUCUFUPUDUGCDOSPQABCDRUBUHUE
    UOUNNABDCRTUA $.

  $( Cross-multiply in an equality of ratios.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divmuleqap $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C # 0 ) /\
                     ( D e. CC /\ D # 0 ) ) ) ->
                   ( ( A / C ) = ( B / D ) <-> ( A x. D ) = ( B x. C ) ) ) $=
    ( cc wcel wa cc0 cap cdiv cmul wceq divclap 3expb ad2ant2r ad2ant2l mulassd
    wbr co divcanap1 mulap0 jca adantl mulcanap2 syl3anc simprll simprrl oveq1d
    wb mulcl eqtr3d mulcomd oveq2d 3eqtr2d eqeq12d bitr3d ) AEFZBEFZGZCEFZCHIRZ
    GZDEFZDHIRZGZGZGZACJSZCDKSZKSZBDJSZVIKSZLZVHVKLZADKSZBCKSZLVGVHEFZVKEFZVIEF
    ZVIHIRZGZVMVNUIUQVBVQURVEUQUTVAVQACMNOZURVEVRUQVBURVCVDVRBDMNPZVFWAUSVFVSVT
    UTVCVSVAVDCDUJOCDUAUBUCVHVKVIUDUEVGVJVOVLVPVGVHCKSZDKSVJVOVGVHCDWBUSUTVAVEU
    FZUSVBVCVDUGZQVGWDADKUQVBWDALZURVEUQUTVAWGACTNOUHUKVGVLVKDCKSZKSVKDKSZCKSVP
    VGVIWHVKKVGCDWEWFULUMVGVKDCWCWFWEQVGWIBCKURVEWIBLZUQVBURVCVDWJBDTNPUHUNUOUP
    $.

  $( The reciprocal of a ratio.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  recdivap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
                ( 1 / ( A / B ) ) = ( B / A ) ) $=
    ( cc wcel cc0 cap wa c1 cdiv co cmul 1div1e1 oveq1i wceq ax-1cn 1ap0 pm3.2i
    wbr divdivdivap mulid2 mpanl12 syl5eqr oveqan12rd ad2ant2r eqtrd ) ACDZAEFR
    ZGBCDZBEFRZGGZHABIJZIJZHBKJZHAKJZIJZBAIJZUJULHHIJZUKIJZUOUQHUKILMHCDZUSHEFR
    ZGUJURUONOUSUTOPQHHABSUAUBUFUHUOUPNUGUIUHUFUMBUNAIBTATUCUDUE $.

  $( Cancellation of inverted fractions.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divcanap6 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
         ( ( A / B ) x. ( B / A ) ) = 1 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co c1 cmul recdivap oveq2d wceq divclap 3expb
    adantlr divap0 recidap syl2anc eqtr3d ) ACDZAEFGZHBCDZBEFGZHZHZABIJZKUIIJZL
    JZUIBAIJZLJKUHUJULUILABMNUHUICDZUIEFGUKKOUCUGUMUDUCUEUFUMABPQRABSUITUAUB $.

  $( Swap denominators in a division.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divdiv32ap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 )
      /\ ( C e. CC /\ C # 0 ) ) -> ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
    ( cc wcel cc0 cap wbr wa c1 cdiv cmul wceq recclap div23ap syl3an2 divrecap
    w3a co 3expb 3adant3 oveq1d divclap syl3an1 3impa 3com23 3eqtr4d ) ADEZBDEZ
    BFGHZIZCDEZCFGHZIZRZAJBKSZLSZCKSZACKSZUPLSZABKSZCKSUSBKSZUKUHUPDEUNURUTMBNA
    UPCOPUOVAUQCKUHUKVAUQMZUNUHUIUJVCABQTUAUBUHUNUKVBUTMZUHUNUKVDUHUNIZUIUJVDVE
    USDEZUIUJVDUHULUMVFACUCTUSBQUDTUEUFUG $.

  $( Cancel equal divisors in a division.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divcanap7 $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\
    ( C e. CC /\ C # 0 ) ) -> ( ( A / C ) / ( B / C ) ) = ( A / B ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv cmul wceq divdivdivap 3impdir mulcom adantrr
    wa co 3adant2 oveq1d divcanap5 3eqtrd ) ADEZBDEBFGHQZCDEZCFGHZQZIZACJRBCJRJ
    RZACKRZCBKRZJRZCAKRZUKJRABJRUCUGUDUIULLACBCMNUHUJUMUKJUCUGUJUMLZUDUCUEUNUFA
    COPSTABCUAUB $.

  $( Cancellation law for division and multiplication.  (Contributed by Jim
     Kingdon, 26-Feb-2020.) $)
  dmdcanap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) /\
         C e. CC ) ->
         ( ( A / B ) x. ( C / A ) ) = ( C / B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co cmul wceq simp1l simp3 divclap syl3anc
    simp1r simp2l simp2r div23ap syl112anc divcanap2 oveq1d eqtr3d ) ADEZAFGHZI
    ZBDEZBFGHZIZCDEZJZACAKLZMLZBKLZABKLUOMLZCBKLUNUGUODEZUJUKUQURNUGUHULUMOZUNU
    MUGUHUSUIULUMPZUTUGUHULUMSZCAQRUIUJUKUMTUIUJUKUMUAAUOBUBUCUNUPCBKUNUMUGUHUP
    CNVAUTVBCAUDRUEUF $.

  $( Division into a fraction.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divdivap1 $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\
       ( C e. CC /\ C # 0 ) ) -> ( ( A / B ) / C ) = ( A / ( B x. C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co c1 cmul wceq ax-1cn pm3.2i divdivdivap
    1ap0 mpanr2 3impa oveq2d ad2antrl 3adant1 mulid1 oveq1d 3ad2ant1 3eqtr3d
    div1 ) ADEZBDEBFGHIZCDEZCFGHZIZJABKLZCMKLZKLZAMNLZBCNLZKLZUOCKLZAUSKLZUJUKU
    NUQUTOZUJUKIUNMDEZMFGHZIVCVDVEPSQABCMRTUAUKUNUQVAOZUJULVFUKUMULUPCUOKCUIUBU
    CUDUJUKUTVBOUNUJURAUSKAUEUFUGUH $.

  $( Division by a fraction.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divdivap2 $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ ( C e. CC /\ C # 0 )
              ) -> ( A / ( B / C ) ) = ( ( A x. C ) / B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a c1 cdiv co cmul wceq ax-1cn pm3.2i divdivdivap
    1ap0 mpanl2 3impb 3ad2ant1 oveq1d mulid2 ad2antrl 3adant3 oveq2d 3eqtr3d
    div1 ) ADEZBDEZBFGHZIZCDECFGHIZJZAKLMZBCLMZLMZACNMZKBNMZLMZAUQLMUSBLMUJUMUN
    URVAOZUJKDEZKFGHZIUMUNIVBVCVDPSQAKBCRTUAUOUPAUQLUJUMUPAOUNAUIUBUCUOUTBUSLUJ
    UMUTBOZUNUKVEUJULBUDUEUFUGUH $.

  $( Division into a reciprocal.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  recdivap2 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
                ( ( 1 / A ) / B ) = ( 1 / ( A x. B ) ) ) $=
    ( c1 cc wcel cc0 cap wbr wa cdiv co cmul wceq ax-1cn divdivap1 mp3an1 ) CDE
    ADEAFGHIBDEBFGHICAJKBJKCABLKJKMNCABOP $.

  $( Cancellation in a double division.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  ddcanap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
                ( A / ( A / B ) ) = B ) $=
    ( cc wcel cc0 cap wbr cdiv wceq cmul simpll simprl simprr divcanap1 syl3anc
    wa co wb divclap divap0 divmulap syl112anc mpbird ) ACDZAEFGZPZBCDZBEFGZPZP
    ZAABHQZHQBIZUKBJQAIZUJUDUGUHUMUDUEUIKZUFUGUHLZUFUGUHMZABNOUJUDUGUKCDZUKEFGU
    LUMRUNUOUJUDUGUHUQUNUOUPABSOABTABUKUAUBUC $.

  $( Addition of two ratios.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divadddivap $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C # 0 )
                    /\ ( D e. CC /\ D # 0 ) ) ) ->
  ( ( A / C ) + ( B / D ) ) = ( ( ( A x. D ) + ( B x. C ) ) / ( C x. D ) ) ) $=
    ( cc wcel wa cc0 cap cmul co caddc cdiv wceq mulcl ad2ant2r syl3anc mulcomd
    wbr oveq12d adantrl adantrr mulap0 jca adantl divdirap simpll simprr simpld
    ad2ant2lr simprll simprl divcanap5 eqtrd simplr oveq1d eqtr2d ) AEFZBEFZGZC
    EFZCHISZGZDEFZDHISZGZGZGZADJKZBCJKZLKCDJKZMKZVIVKMKZVJVKMKZLKZACMKZBDMKZLKV
    HVIEFZVJEFZVKEFZVKHISZGZVLVONUTVFVRVCURVDVRUSVEADOPUAUSVCVSURVFUSVAVSVBBCOU
    BUJVGWBUTVGVTWAVAVDVTVBVECDOPCDUCUDUEVIVJVKUFQVHVMVPVNVQLVHVMDAJKZDCJKZMKZV
    PVHVIWCVKWDMVHADURUSVGUGZVHVDVEUTVCVFUHZUIZRVHCDUTVAVBVFUKZWHRTVHURVCVFWEVP
    NWFUTVCVFULZWGACDUMQUNVHVNCBJKZVKMKZVQVHVJWKVKMVHBCURUSVGUOZWIRUPVHUSVFVCWL
    VQNWMWGWJBDCUMQUNTUQ $.

  $( Subtraction of two ratios.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divsubdivap $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C # 0 )
                    /\ ( D e. CC /\ D # 0 ) ) ) ->
  ( ( A / C ) - ( B / D ) ) = ( ( ( A x. D ) - ( B x. C ) ) / ( C x. D ) ) ) $=
    ( cc wcel wa cc0 cap wbr cmul co cneg caddc cdiv cmin syl3anc oveq2d eqtr3d
    wceq sylanl2 simplr simprrl simprrr divnegap simpll simprll simprlr divclap
    negcl divadddivap negsubd mulneg1d mulcld eqtrd oveq1d ) AEFZBEFZGZCEFZCHIJ
    ZGZDEFZDHIJZGZGZGZADKLZBMZCKLZNLZCDKLZOLZACOLZBDOLZPLZVHBCKLZPLZVLOLVGVNVID
    OLZNLZVMVPURUQVIEFVFVTVMTBUJAVICDUKUAVGVNVOMZNLVTVPVGWAVSVNNVGURVCVDWAVSTUQ
    URVFUBZUSVBVCVDUCZUSVBVCVDUDZBDUEQRVGVNVOVGUQUTVAVNEFUQURVFUFZUSUTVAVEUGZUS
    UTVAVEUHACUIQVGURVCVDVOEFWBWCWDBDUIQULSSVGVKVRVLOVGVKVHVQMZNLVRVGVJWGVHNVGB
    CWBWFUMRVGVHVQVGADWEWCUNVGBCWBWFUNULUOUPS $.

  $( Two numbers whose reciprocals sum to 1 are called "conjugates" and satisfy
     this relationship.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  conjmulap $p |- ( ( ( P e. CC /\ P # 0 ) /\ ( Q e. CC /\ Q # 0 ) ) ->
      ( ( ( 1 / P ) + ( 1 / Q ) ) = 1 <-> ( ( P - 1 ) x. ( Q - 1 ) ) = 1 ) ) $=
    ( cc wcel cc0 cap wa cmul co c1 cdiv caddc wceq cmin recclap adantr recidap
    wbr 3eqtrd ad2ant2r simpll simprl mul32d oveq1d mulid2 adantl oveq2d mulid1
    ad2antrl mulassd ad2antrr oveq12d mulcl adddid addcom 3eqtr4d mulid1d addcl
    eqeq12d syl2an mulap0 ax-1cn mulcanap mp3an2 syl12anc eqcom muleqadd syl5bb
    wb 3bitr3d ) ACDZAEFRZGZBCDZBEFRZGZGZABHIZJAKIZJBKIZLIZHIZVRJHIZMZABLIZVRMZ
    WAJMZAJNIBJNIHIJMZVQWBWEWCVRVQVRVSHIZVRVTHIZLIBALIZWBWEVQWIBWJALVQWIAVSHIZB
    HIZJBHIZBVQABVSVKVLVPUAZVMVNVOUBZVMVSCDZVPAOZPZUCVMWMWNMVPVMWLJBHAQUDPVNWNB
    MVMVOBUEUISVQWJABVTHIZHIZAJHIZAVQABVTWOWPVPVTCDZVMBOZUFZUJVPXAXBMVMVPWTJAHB
    QUGUFVKXBAMVLVPAUHUKSULVQVRVSVTVKVNVRCDZVLVOABUMZTZWSXEUNVKVNWEWKMVLVOABUOT
    UPVKVNWCVRMVLVOVKVNGZVRXGUQTUSVQWACDZXFVREFRZWDWGVIZVMWQXCXJVPWRXDVSVTURUTX
    HABVAXJJCDXFXKGXLVBWAJVRVCVDVEVKVNWFWHVIVLVOWFVRWEMXIWHWEVRVFABVGVHTVJ $.

  ${
    $d x A $.
    $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
       26-Feb-2020.) $)
    rerecclap $p |- ( ( A e. RR /\ A # 0 ) -> ( 1 / A ) e. RR ) $=
      ( vx cr wcel cc0 cap wbr wa cv c1 cdiv co wceq wrex creap wb 0re cc recnd
      cmul apreap mpan2 pm5.32i recexre sylbi eqcom 1cnd simpll simplr divmulap
      simpr syl112anc syl5bb rexbidva mpbird risset sylibr ) ACDZAEFGZHZBIZJAKL
      ZMZBCNZVBCDUTVDAVATLJMZBCNZUTURAEOGZHVFURUSVGURECDUSVGPQAEUAUBUCBAUDUEUTV
      CVEBCVCVBVAMZUTVACDZHZVEVAVBUFVJJRDVARDARDUSVHVEPVJUGVJVAUTVIUKSVJAURUSVI
      UHSURUSVIUIJVAAUJULUMUNUOBVBCUPUQ $.
  $}

  $( Closure law for division of reals.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  redivclap $p |- ( ( A e. RR /\ B e. RR /\ B # 0 ) -> ( A / B ) e. RR ) $=
    ( cr wcel cc0 cap wbr cdiv co c1 cmul wceq simp1 recnd simp2 simp3 divrecap
    w3a cc syl3anc rerecclap 3adant1 remulcld eqeltrd ) ACDZBCDZBEFGZRZABHIZAJB
    HIZKIZCUHASDBSDUGUIUKLUHAUEUFUGMZNUHBUEUFUGONUEUFUGPABQTUHAUJULUFUGUJCDUEBU
    AUBUCUD $.

  $( A number equal to its negative is zero.  (Contributed by NM,
     12-Jul-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  eqneg $p |- ( A e. CC -> ( A = -u A <-> A = 0 ) ) $=
    ( cc wcel c1 caddc cmul cc0 wceq cneg 1p1times negid ax-1cn addcli syl6reqr
    co mul01i eqeq12d a1i 1re 0lt1 id 0cnd readdcli addgt0ii gt0ap0ii mulcanapd
    cap wbr negcl addcand 3bitr3rd ) ABCZDDEOZAFOZUMGFOZHAAEOZAAIZEOZHAGHAUQHUL
    UNUPUOURAJULURGUOAKUMDDLLMZPNQULAGUMULUAZULUBUMBCULUSRUMGUGUHULUMDDSSUCDDSS
    TTUDUERUFULAAUQUTUTAUIUJUK $.

  ${
    eqnegd.1 $e |- ( ph -> A e. CC ) $.
    $( A complex number equals its negative iff it is zero.  Deduction form of
       ~ eqneg .  (Contributed by David Moews, 28-Feb-2017.) $)
    eqnegd $p |- ( ph -> ( A = -u A <-> A = 0 ) ) $=
      ( cc wcel cneg wceq cc0 wb eqneg syl ) ABDEBBFGBHGICBJK $.
  $}

  ${
    eqnegad.1 $e |- ( ph -> A e. CC ) $.
    eqnegad.2 $e |- ( ph -> A = -u A ) $.
    $( If a complex number equals its own negative, it is zero.  One-way
       deduction form of ~ eqneg .  (Contributed by David Moews,
       28-Feb-2017.) $)
    eqnegad $p |- ( ph -> A = 0 ) $=
      ( cneg wceq cc0 eqnegd mpbid ) ABBEFBGFDABCHI $.
  $}

  $( Quotient of two negatives.  (Contributed by Jim Kingdon, 27-Feb-2020.) $)
  div2negap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                  ( -u A / -u B ) = ( A / B ) ) $=
    ( cc wcel cc0 cap wbr w3a cneg cdiv co wceq cmul 3ad2ant2 syl112anc 3adant1
    negcl c1 eqtrd 3ad2ant1 simp1 simp2 simp3 div12ap divnegap syld3an1 dividap
    negeqd eqtr3d oveq2d ax-1cn negcli mulcom mpan2 mulm1 divclap negap0 biimpa
    wb divmulap mpbird ) ACDZBCDZBEFGZHZAIZBIZJKABJKZLZVGVHMKZVFLZVEVJAVGBJKZMK
    ZVFVEVGCDZVBVCVDVJVMLVCVBVNVDBQNZVBVCVDUAVBVCVDUBZVBVCVDUCVGABUDOVEVMARIZMK
    ZVFVEVLVQAMVEBBJKZIZVLVQVCVCVBVDVTVLLVPBBUEUFVEVSRVCVDVSRLVBBUGPUHUIUJVBVCV
    RVFLVDVBVRVQAMKZVFVBVQCDVRWALRUKULAVQUMUNAUOSTSSVEVFCDZVHCDVNVGEFGZVIVKUSVB
    VCWBVDAQTABUPVOVCVDWCVBVCVDWCBUQURPVFVHVGUTOVA $.

  $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
     27-Feb-2020.) $)
  divneg2ap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                   -u ( A / B ) = ( A / -u B ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co cneg divnegap wceq negcl div2negap negneg
    syl3an1 3ad2ant1 oveq1d 3eqtr2d ) ACDZBCDZBEFGZHZABIJKAKZBIJZUEKZBKZIJZAUHI
    JABLUAUECDUBUCUIUFMANUEBOQUDUGAUHIUAUBUGAMUCAPRST $.

  ${
    divclz.1 $e |- A e. CC $.
    $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    recclapzi $p |- ( A # 0 -> ( 1 / A ) e. CC ) $=
      ( cc wcel cc0 cap wbr c1 cdiv co recclap mpan ) ACDAEFGHAIJCDBAKL $.

    $( The reciprocal of a number apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 27-Feb-2020.) $)
    recap0apzi $p |- ( A # 0 -> ( 1 / A ) # 0 ) $=
      ( cc wcel cc0 cap wbr c1 cdiv co recap0 mpan ) ACDAEFGHAIJEFGBAKL $.

    $( Multiplication of a number and its reciprocal.  (Contributed by Jim
       Kingdon, 27-Feb-2020.) $)
    recidapzi $p |- ( A # 0 -> ( A x. ( 1 / A ) ) = 1 ) $=
      ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recidap mpan ) ACDAEFGAHAIJKJH
      LBAMN $.

    $( A number divided by 1 is itself.  (Contributed by NM, 9-Jan-2002.) $)
    div1i $p |- ( A / 1 ) = A $=
      ( cc wcel c1 cdiv co wceq div1 ax-mp ) ACDAEFGAHBAIJ $.

    $( A number equal to its negative is zero.  (Contributed by NM,
       29-May-1999.) $)
    eqnegi $p |- ( A = -u A <-> A = 0 ) $=
      ( cc wcel cneg wceq cc0 wb eqneg ax-mp ) ACDAAEFAGFHBAIJ $.

    ${
      recclap.2 $e |- A # 0 $.
      $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.) $)
      recclapi $p |- ( 1 / A ) e. CC $=
        ( cc0 cap wbr c1 cdiv co cc wcel recclapzi ax-mp ) ADEFGAHIJKCABLM $.

      $( Multiplication of a number and its reciprocal.  (Contributed by NM,
         9-Feb-1995.) $)
      recidapi $p |- ( A x. ( 1 / A ) ) = 1 $=
        ( cc0 cap wbr c1 cdiv co cmul wceq recidapzi ax-mp ) ADEFAGAHIJIGKCABLM
        $.

      $( A number is equal to the reciprocal of its reciprocal.  Theorem I.10
         of [Apostol] p. 18.  (Contributed by NM, 9-Feb-1995.) $)
      recrecapi $p |- ( 1 / ( 1 / A ) ) = A $=
        ( cc wcel cc0 cap wbr c1 cdiv co wceq recrecap mp2an ) ADEAFGHIIAJKJKAL
        BCAMN $.

      $( A number divided by itself is one.  (Contributed by NM,
         9-Feb-1995.) $)
      dividapi $p |- ( A / A ) = 1 $=
        ( cc wcel cc0 cap wbr cdiv co c1 wceq dividap mp2an ) ADEAFGHAAIJKLBCAM
        N $.

      $( Division into zero is zero.  (Contributed by NM, 12-Aug-1999.) $)
      div0api $p |- ( 0 / A ) = 0 $=
        ( cc wcel cc0 cap wbr cdiv co wceq div0ap mp2an ) ADEAFGHFAIJFKBCALM $.
    $}

    divclz.2 $e |- B e. CC $.
    $( Closure law for division.  (Contributed by Jim Kingdon, 27-Feb-2020.) $)
    divclapzi $p |- ( B # 0 -> ( A / B ) e. CC ) $=
      ( cc wcel cc0 cap wbr cdiv co divclap mp3an12 ) AEFBEFBGHIABJKEFCDABLM $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap1zi $p |- ( B # 0 -> ( ( A / B ) x. B ) = A ) $=
      ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap1 mp3an12 ) AEFBEFBGHIABJ
      KBLKAMCDABNO $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap2zi $p |- ( B # 0 -> ( B x. ( A / B ) ) = A ) $=
      ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap2 mp3an12 ) AEFBEFBGHIBAB
      JKLKAMCDABNO $.

    $( Relationship between division and reciprocal.  (Contributed by Jim
       Kingdon, 27-Feb-2020.) $)
    divrecapzi $p |- ( B # 0 -> ( A / B ) = ( A x. ( 1 / B ) ) ) $=
      ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap mp3an12 ) AEFBEFBGHIA
      BJKALBJKMKNCDABOP $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap3zi $p |- ( B # 0 -> ( ( B x. A ) / B ) = A ) $=
      ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap3 mp3an12 ) AEFBEFBGHIBAJ
      KBLKAMCDABNO $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap4zi $p |- ( B # 0 -> ( ( A x. B ) / B ) = A ) $=
      ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap4 mp3an12 ) AEFBEFBGHIABJ
      KBLKAMCDABNO $.

    $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon, 28-Feb-2020.) $)
    rec11api $p |- ( ( A # 0 /\ B # 0 ) ->
               ( ( 1 / A ) = ( 1 / B ) <-> A = B ) ) $=
      ( cc0 cap wbr cc wcel c1 cdiv co wceq wb wa rec11ap mpanl1 mpanr1 ) AEFGZ
      BHIZBEFGZJAKLJBKLMABMNZDAHISTUAOUBCABPQR $.

    ${
      divclap.3 $e |- B # 0 $.
      $( Closure law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divclapi $p |- ( A / B ) e. CC $=
        ( cc wcel cc0 cap wbr cdiv co divclap mp3an ) AFGBFGBHIJABKLFGCDEABMN
        $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap2i $p |- ( B x. ( A / B ) ) = A $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap2 mp3an ) AFGBFGBHIJBAB
        KLMLANCDEABOP $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap1i $p |- ( ( A / B ) x. B ) = A $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap1 mp3an ) AFGBFGBHIJABK
        LBMLANCDEABOP $.

      $( Relationship between division and reciprocal.  (Contributed by Jim
         Kingdon, 28-Feb-2020.) $)
      divrecapi $p |- ( A / B ) = ( A x. ( 1 / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap mp3an ) AFGBFGBHIJA
        BKLAMBKLNLOCDEABPQ $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap3i $p |- ( ( B x. A ) / B ) = A $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap3 mp3an ) AFGBFGBHIJBAK
        LBMLANCDEABOP $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap4i $p |- ( ( A x. B ) / B ) = A $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap4 mp3an ) AFGBFGBHIJABK
        LBMLANCDEABOP $.
    $}

    ${
      divap0i.3 $e |- A # 0 $.
      divap0.i4 $e |- B # 0 $.
      $( The ratio of numbers apart from zero is apart from zero.  (Contributed
         by Jim Kingdon, 28-Feb-2020.) $)
      divap0i $p |- ( A / B ) # 0 $=
        ( cc wcel cc0 cap wbr cdiv co divap0 mp4an ) AGHAIJKBGHBIJKABLMIJKCEDFA
        BNO $.

      $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      rec11apii $p |- ( ( 1 / A ) = ( 1 / B ) <-> A = B ) $=
        ( cc0 cap wbr c1 cdiv co wceq wb rec11api mp2an ) AGHIBGHIJAKLJBKLMABMN
        EFABCDOP $.
    $}

    divmulz.3 $e |- C e. CC $.
    $( An associative law for division.  (Contributed by Jim Kingdon,
       28-Feb-2020.) $)
    divassapzi $p |- ( C # 0 -> ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
      ( cc wcel cc0 cap wbr cmul co cdiv wceq wa divassap mp3an12 mpan ) CGHZCI
      JKZABLMCNMABCNMLMOZFAGHBGHTUAPUBDEABCQRS $.

    $( Relationship between division and multiplication.  (Contributed by Jim
       Kingdon, 28-Feb-2020.) $)
    divmulapzi $p |- ( B # 0 -> ( ( A / B ) = C <-> ( B x. C ) = A ) ) $=
      ( cc wcel cc0 cap wbr cdiv co wceq cmul wb wa divmulap mp3an12 mpan ) BGH
      ZBIJKZABLMCNBCOMANPZEAGHCGHUAUBQUCDFACBRST $.

    $( Distribution of division over addition.  (Contributed by Jim Kingdon,
       28-Feb-2020.) $)
    divdirapzi $p |- ( C # 0 ->
                    ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
      ( cc wcel cc0 cap wbr caddc co cdiv wceq wa divdirap mp3an12 mpan ) CGHZC
      IJKZABLMCNMACNMBCNMLMOZFAGHBGHTUAPUBDEABCQRS $.

    $( Swap denominators in a division.  (Contributed by Jim Kingdon,
       28-Feb-2020.) $)
    divdiv23apzi $p |- ( ( B # 0 /\ C # 0 ) ->
                ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
      ( cc0 cap wbr cc wcel cdiv co wceq wa divdiv32ap mp3an1 mpanl1 mpanr1 ) B
      GHIZCJKZCGHIZABLMCLMACLMBLMNZFBJKZTUAUBOZUCEAJKUDTOUEUCDABCPQRS $.

    ${
      divmulapi.4 $e |- B # 0 $.
      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 29-Feb-2020.) $)
      divmulapi $p |- ( ( A / B ) = C <-> ( B x. C ) = A ) $=
        ( cc0 cap wbr cdiv co wceq cmul wb divmulapzi ax-mp ) BHIJABKLCMBCNLAMO
        GABCDEFPQ $.

      divdiv32api.5 $e |- C # 0 $.
      $( Swap denominators in a division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divdiv32api $p |- ( ( A / B ) / C ) = ( ( A / C ) / B ) $=
        ( cc0 cap wbr cdiv co wceq divdiv23apzi mp2an ) BIJKCIJKABLMCLMACLMBLMN
        GHABCDEFOP $.
    $}

    ${
      divassap.4 $e |- C # 0 $.
      $( An associative law for division.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      divassapi $p |- ( ( A x. B ) / C ) = ( A x. ( B / C ) ) $=
        ( cc wcel cc0 cap wbr wa cmul co cdiv wceq pm3.2i divassap mp3an ) AHIB
        HICHIZCJKLZMABNOCPOABCPONOQDEUAUBFGRABCST $.

      $( Distribution of division over addition.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      divdirapi $p |- ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) $=
        ( cc wcel cc0 cap wbr wa caddc co cdiv wceq pm3.2i divdirap mp3an ) AHI
        BHICHIZCJKLZMABNOCPOACPOBCPONOQDEUAUBFGRABCST $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 9-Mar-2020.) $)
      div23api $p |- ( ( A x. B ) / C ) = ( ( A / C ) x. B ) $=
        ( cc wcel cc0 cap wbr wa cmul co cdiv wceq pm3.2i div23ap mp3an ) AHIBH
        ICHIZCJKLZMABNOCPOACPOBNOQDEUAUBFGRABCST $.

      $( One-to-one relationship for division.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      div11api $p |- ( ( A / C ) = ( B / C ) <-> A = B ) $=
        ( cc wcel cc0 cap wbr wa cdiv co wceq wb pm3.2i div11ap mp3an ) AHIBHIC
        HIZCJKLZMACNOBCNOPABPQDEUAUBFGRABCST $.
    $}

    divmuldivap.4 $e |- D e. CC $.
    divmuldivap.5 $e |- B # 0 $.
    divmuldivap.6 $e |- D # 0 $.
    $( Multiplication of two ratios.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    divmuldivapi $p |- ( ( A / B ) x. ( C / D ) ) =
                      ( ( A x. C ) / ( B x. D ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co cmul pm3.2i wceq divmuldivap mp4an ) AKL
      CKLBKLZBMNOZPDKLZDMNOZPABQRCDQRSRACSRBDSRQRUAEGUDUEFITUFUGHJTACBDUBUC $.

    $( Swap denominators of two ratios.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    divmul13api $p |- ( ( A / B ) x. ( C / D ) ) =
                   ( ( C / B ) x. ( A / D ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co cmul pm3.2i wceq divmul13ap mp4an ) AKLC
      KLBKLZBMNOZPDKLZDMNOZPABQRCDQRSRCBQRADQRSRUAEGUDUEFITUFUGHJTACBDUBUC $.

    $( Addition of two ratios.  (Contributed by Jim Kingdon, 9-Mar-2020.) $)
    divadddivapi $p |- ( ( A / B ) + ( C / D ) ) =
                      ( ( ( A x. D ) + ( C x. B ) ) / ( B x. D ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co caddc cmul wceq pm3.2i divadddivap mp4an
      ) AKLCKLBKLZBMNOZPDKLZDMNOZPABQRCDQRSRADTRCBTRSRBDTRQRUAEGUEUFFIUBUGUHHJU
      BACBDUCUD $.

    divdivdivap.7 $e |- C # 0 $.
    $( Division of two ratios.  (Contributed by Jim Kingdon, 9-Mar-2020.) $)
    divdivdivapi $p |- ( ( A / B ) / ( C / D ) )
                        = ( ( A x. D ) / ( B x. C ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co pm3.2i cmul wceq divdivdivap mp4an ) ALM
      BLMZBNOPZQCLMZCNOPZQDLMZDNOPZQABRSCDRSRSADUASBCUASRSUBEUEUFFITUGUHGKTUIUJ
      HJTABCDUCUD $.
  $}

  ${
    $d x y B $.
    redivclap.1 $e |- A e. RR $.
    $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    rerecclapzi $p |- ( A # 0 -> ( 1 / A ) e. RR ) $=
      ( cr wcel cc0 cap wbr c1 cdiv co rerecclap mpan ) ACDAEFGHAIJCDBAKL $.

    ${
      rerecclap.2 $e |- A # 0 $.
      $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      rerecclapi $p |- ( 1 / A ) e. RR $=
        ( cc0 cap wbr c1 cdiv co cr wcel rerecclapzi ax-mp ) ADEFGAHIJKCABLM $.
    $}

    redivclap.2 $e |- B e. RR $.
    $( Closure law for division of reals.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    redivclapzi $p |- ( B # 0 -> ( A / B ) e. RR ) $=
      ( cr wcel cc0 cap wbr cdiv co redivclap mp3an12 ) AEFBEFBGHIABJKEFCDABLM
      $.

    redivclap.3 $e |- B # 0 $.
    $( Closure law for division of reals.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    redivclapi $p |- ( A / B ) e. RR $=
      ( cc0 cap wbr cdiv co cr wcel redivclapzi ax-mp ) BFGHABIJKLEABCDMN $.
  $}

  ${
    div1d.1 $e |- ( ph -> A e. CC ) $.
    $( A number divided by 1 is itself.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    div1d $p |- ( ph -> ( A / 1 ) = A ) $=
      ( cc wcel c1 cdiv co wceq div1 syl ) ABDEBFGHBICBJK $.

    ${
      reccld.2 $e |- ( ph -> A # 0 ) $.
      $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      recclapd $p |- ( ph -> ( 1 / A ) e. CC ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co recclap syl2anc ) ABEFBGHIJBKLEFCDBMN
        $.

      $( The reciprocal of a number apart from zero is apart from zero.
         (Contributed by Jim Kingdon, 3-Mar-2020.) $)
      recap0d $p |- ( ph -> ( 1 / A ) # 0 ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co recap0 syl2anc ) ABEFBGHIJBKLGHICDBMN
        $.

      $( Multiplication of a number and its reciprocal.  (Contributed by Jim
         Kingdon, 3-Mar-2020.) $)
      recidapd $p |- ( ph -> ( A x. ( 1 / A ) ) = 1 ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recidap syl2anc ) ABEFBGHIBJ
        BKLMLJNCDBOP $.

      $( Multiplication of a number and its reciprocal.  (Contributed by Jim
         Kingdon, 3-Mar-2020.) $)
      recidap2d $p |- ( ph -> ( ( 1 / A ) x. A ) = 1 ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recidap2 syl2anc ) ABEFBGHIJ
        BKLBMLJNCDBOP $.

      $( A number is equal to the reciprocal of its reciprocal.  (Contributed
         by Jim Kingdon, 3-Mar-2020.) $)
      recrecapd $p |- ( ph -> ( 1 / ( 1 / A ) ) = A ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co wceq recrecap syl2anc ) ABEFBGHIJJBKLK
        LBMCDBNO $.

      $( A number divided by itself is one.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      dividapd $p |- ( ph -> ( A / A ) = 1 ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 wceq dividap syl2anc ) ABEFBGHIBBJKLMC
        DBNO $.

      $( Division into zero is zero.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      div0apd $p |- ( ph -> ( 0 / A ) = 0 ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq div0ap syl2anc ) ABEFBGHIGBJKGLCDBMN
        $.
    $}
  $}

  $( Multiplication of both sides of complex apartness by a complex number
     apart from zero.  (Contributed by Jim Kingdon, 20-Mar-2020.) $)
  apmul1 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( A # B <-> ( A x. C ) # ( B x. C ) ) ) $=
    ( cc wcel cc0 cap wbr wa cmul co c1 mulassd oveq2d mulid1d 3eqtrd wi mulcld
    w3a mulext1 cdiv simp1 simp3l simp3r recclapd simp2 breq12d syl3anc sylbird
    recidapd 3adant3r impbid ) ADEZBDEZCDEZCFGHZIZSZABGHZACJKZBCJKZGHZURUSUTLCU
    AKZJKZVAVCJKZGHZVBURVDAVEBGURVDACVCJKZJKALJKAURACVCUMUNUQUBZUMUNUOUPUCZURCV
    IUMUNUOUPUDZUEZMURVGLAJURCVIVJUJZNURAVHOPURVEBVGJKBLJKBURBCVCUMUNUQUFZVIVKM
    URVGLBJVLNURBVMOPUGURUTDEVADEVCDEVFVBQURACVHVIRURBCVMVIRVKUTVAVCTUHUIUMUNUO
    VBUSQUPABCTUKUL $.

  ${
    divcld.1 $e |- ( ph -> A e. CC ) $.
    divcld.2 $e |- ( ph -> B e. CC ) $.
    ${
      divclapd.3 $e |- ( ph -> B # 0 ) $.
      $( Closure law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divclapd $p |- ( ph -> ( A / B ) e. CC ) $=
        ( cc wcel cc0 cap wbr cdiv co divclap syl3anc ) ABGHCGHCIJKBCLMGHDEFBCN
        O $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap1d $p |- ( ph -> ( ( A / B ) x. B ) = A ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap1 syl3anc ) ABGHCGHCIJK
        BCLMCNMBODEFBCPQ $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap2d $p |- ( ph -> ( B x. ( A / B ) ) = A ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap2 syl3anc ) ABGHCGHCIJK
        CBCLMNMBODEFBCPQ $.

      $( Relationship between division and reciprocal.  Theorem I.9 of
         [Apostol] p. 18.  (Contributed by Jim Kingdon, 29-Feb-2020.) $)
      divrecapd $p |- ( ph -> ( A / B ) = ( A x. ( 1 / B ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap syl3anc ) ABGHCGHCI
        JKBCLMBNCLMOMPDEFBCQR $.

      $( Relationship between division and reciprocal.  (Contributed by Jim
         Kingdon, 29-Feb-2020.) $)
      divrecap2d $p |- ( ph -> ( A / B ) = ( ( 1 / B ) x. A ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap2 syl3anc ) ABGHCGHC
        IJKBCLMNCLMBOMPDEFBCQR $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap3d $p |- ( ph -> ( ( B x. A ) / B ) = A ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap3 syl3anc ) ABGHCGHCIJK
        CBLMCNMBODEFBCPQ $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap4d $p |- ( ph -> ( ( A x. B ) / B ) = A ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap4 syl3anc ) ABGHCGHCIJK
        BCLMCNMBODEFBCPQ $.

      ${
        diveqap0d.4 $e |- ( ph -> ( A / B ) = 0 ) $.
        $( If a ratio is zero, the numerator is zero.  (Contributed by Jim
           Kingdon, 19-Mar-2020.) $)
        diveqap0d $p |- ( ph -> A = 0 ) $=
          ( cdiv co cc0 wceq cc wcel cap wbr wb diveqap0 syl3anc mpbid ) ABCHIJ
          KZBJKZGABLMCLMCJNOTUAPDEFBCQRS $.
      $}

      ${
        diveqap1d.4 $e |- ( ph -> ( A / B ) = 1 ) $.
        $( Equality in terms of unit ratio.  (Contributed by Jim Kingdon,
           19-Mar-2020.) $)
        diveqap1d $p |- ( ph -> A = B ) $=
          ( cdiv co c1 wceq cc wcel cc0 cap wbr wb diveqap1 syl3anc mpbid ) ABC
          HIJKZBCKZGABLMCLMCNOPUAUBQDEFBCRST $.
      $}

      $( The quotient of two complex numbers is one iff they are equal.
         Deduction form of ~ diveqap1 .  Generalization of ~ diveqap1d .
         (Contributed by Jim Kingdon, 19-Mar-2020.) $)
      diveqap1ad $p |- ( ph -> ( ( A / B ) = 1 <-> A = B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 wceq wb diveqap1 syl3anc ) ABGHCGHCIJK
        BCLMNOBCOPDEFBCQR $.

      $( A fraction of complex numbers is zero iff its numerator is.  Deduction
         form of ~ diveqap0 .  (Contributed by Jim Kingdon, 19-Mar-2020.) $)
      diveqap0ad $p |- ( ph -> ( ( A / B ) = 0 <-> A = 0 ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq wb diveqap0 syl3anc ) ABGHCGHCIJKBCL
        MINBINODEFBCPQ $.

      ${
        divap1d.4 $e |- ( ph -> A # B ) $.
        $( If two complex numbers are apart, their quotient is apart from one.
           (Contributed by Jim Kingdon, 20-Mar-2020.) $)
        divap1d $p |- ( ph -> ( A / B ) # 1 ) $=
          ( c1 cdiv co cmul cap wbr cc wcel cc0 wb recclapd recap0d apmul1
          syl112anc mpbid divrecapd eqcomd recidapd 3brtr3d ) ABHCIJZKJZCUGKJZB
          CIJZHLABCLMZUHUILMZGABNOCNOUGNOUGPLMUKULQDEACEFRACEFSBCUGTUAUBAUJUHAB
          CDEFUCUDACEFUEUF $.
      $}

      $( A ratio is zero iff the numerator is zero.  (Contributed by Jim
         Kingdon, 19-Mar-2020.) $)
      divap0bd $p |- ( ph -> ( A # 0 <-> ( A / B ) # 0 ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wb divap0b syl3anc ) ABGHCGHCIJKBIJKBCLMI
        JKNDEFBCOP $.

      $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
         19-Mar-2020.) $)
      divnegapd $p |- ( ph -> -u ( A / B ) = ( -u A / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cneg wceq divnegap syl3anc ) ABGHCGHCIJKB
        CLMNBNCLMODEFBCPQ $.

      $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
         19-Mar-2020.) $)
      divneg2apd $p |- ( ph -> -u ( A / B ) = ( A / -u B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cneg wceq divneg2ap syl3anc ) ABGHCGHCIJK
        BCLMNBCNLMODEFBCPQ $.

      $( Quotient of two negatives.  (Contributed by Jim Kingdon,
         19-Mar-2020.) $)
      div2negapd $p |- ( ph -> ( -u A / -u B ) = ( A / B ) ) $=
        ( cc wcel cc0 cap wbr cneg cdiv co wceq div2negap syl3anc ) ABGHCGHCIJK
        BLCLMNBCMNODEFBCPQ $.
    $}

    ${
      divap0d.3 $e |- ( ph -> A # 0 ) $.
      divap0d.4 $e |- ( ph -> B # 0 ) $.
      $( The ratio of numbers apart from zero is apart from zero.  (Contributed
         by Jim Kingdon, 3-Mar-2020.) $)
      divap0d $p |- ( ph -> ( A / B ) # 0 ) $=
        ( cc wcel cc0 cap wbr cdiv co divap0 syl22anc ) ABHIBJKLCHICJKLBCMNJKLD
        FEGBCOP $.

      $( The reciprocal of a ratio.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      recdivapd $p |- ( ph -> ( 1 / ( A / B ) ) = ( B / A ) ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co wceq recdivap syl22anc ) ABHIBJKLCHICJ
        KLMBCNONOCBNOPDFEGBCQR $.

      $( Division into a reciprocal.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      recdivap2d $p |- ( ph -> ( ( 1 / A ) / B ) = ( 1 / ( A x. B ) ) ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recdivap2 syl22anc ) ABHIBJK
        LCHICJKLMBNOCNOMBCPONOQDFEGBCRS $.

      $( Cancellation of inverted fractions.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      divcanap6d $p |- ( ph -> ( ( A / B ) x. ( B / A ) ) = 1 ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul c1 wceq divcanap6 syl22anc ) ABHIBJK
        LCHICJKLBCMNCBMNONPQDFEGBCRS $.

      $( Cancellation in a double division.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      ddcanapd $p |- ( ph -> ( A / ( A / B ) ) = B ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq ddcanap syl22anc ) ABHIBJKLCHICJKLBB
        CMNMNCODFEGBCPQ $.

      rec11d.5 $e |- ( ph -> ( 1 / A ) = ( 1 / B ) ) $.
      $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      rec11apd $p |- ( ph -> A = B ) $=
        ( c1 cdiv co wceq cc wcel cc0 cap wbr wb rec11ap syl22anc mpbid ) AIBJK
        ICJKLZBCLZHABMNBOPQCMNCOPQUBUCRDFEGBCSTUA $.
    $}

    divmuld.3 $e |- ( ph -> C e. CC ) $.
    ${
      divmulapd.4 $e |- ( ph -> B # 0 ) $.
      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      divmulapd $p |- ( ph -> ( ( A / B ) = C <-> ( B x. C ) = A ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq cmul wb divmulap syl112anc ) ABIJDIJ
        CIJCKLMBCNODPCDQOBPREGFHBDCST $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      div32apd $p |- ( ph -> ( ( A / B ) x. C ) = ( A x. ( C / B ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq div32ap syl121anc ) ABIJCIJCKLM
        DIJBCNODPOBDCNOPOQEFHGBCDRS $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      div13apd $p |- ( ph -> ( ( A / B ) x. C ) = ( ( C / B ) x. A ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq div13ap syl121anc ) ABIJCIJCKLM
        DIJBCNODPODCNOBPOQEFHGBCDRS $.

      divdiv23apd.5 $e |- ( ph -> C # 0 ) $.
      $( Swap denominators in a division.  (Contributed by Jim Kingdon,
         8-Mar-2020.) $)
      divdiv32apd $p |- ( ph -> ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq divdiv32ap syl122anc ) ABJKCJKCLMNDJ
        KDLMNBCOPDOPBDOPCOPQEFHGIBCDRS $.

      $( Cancellation of common factor in a ratio.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      divcanap5d $p |- ( ph -> ( ( C x. A ) / ( C x. B ) ) = ( A / B ) ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap5 syl122anc ) ABJKCJKCL
        MNDJKDLMNDBOPDCOPQPBCQPREFHGIBCDST $.

      $( Cancellation of common factor in a ratio.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      divcanap5rd $p |- ( ph -> ( ( A x. C ) / ( B x. C ) ) = ( A / B ) ) $=
        ( cmul co cdiv mulcomd oveq12d divcanap5d eqtrd ) ABDJKZCDJKZLKDBJKZDCJ
        KZLKBCLKAQSRTLABDEGMACDFGMNABCDEFGHIOP $.

      $( Cancel equal divisors in a division.  (Contributed by Jim Kingdon,
         8-Mar-2020.) $)
      divcanap7d $p |- ( ph -> ( ( A / C ) / ( B / C ) ) = ( A / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq divcanap7 syl122anc ) ABJKCJKCLMNDJK
        DLMNBDOPCDOPOPBCOPQEFHGIBCDRS $.

      $( Cancellation law for division and multiplication.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      dmdcanapd $p |- ( ph -> ( ( B / C ) x. ( A / B ) ) = ( A / C ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq dmdcanap syl221anc ) ACJKCLMNDJ
        KDLMNBJKCDOPBCOPQPBDOPRFHGIECDBST $.

      $( Cancellation law for division and multiplication.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      dmdcanap2d $p |- ( ph -> ( ( A / B ) x. ( B / C ) ) = ( A / C ) ) $=
        ( cdiv co cmul divclapd mulcomd dmdcanapd eqtrd ) ABCJKZCDJKZLKRQLKBDJK
        AQRABCEFHMACDFGIMNABCDEFGHIOP $.

      $( Division into a fraction.  (Contributed by Jim Kingdon,
         8-Mar-2020.) $)
      divdivap1d $p |- ( ph -> ( ( A / B ) / C ) = ( A / ( B x. C ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divdivap1 syl122anc ) ABJKCJKCL
        MNDJKDLMNBCOPDOPBCDQPOPREFHGIBCDST $.

      $( Division by a fraction.  (Contributed by Jim Kingdon, 8-Mar-2020.) $)
      divdivap2d $p |- ( ph -> ( A / ( B / C ) ) = ( ( A x. C ) / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divdivap2 syl122anc ) ABJKCJKCL
        MNDJKDLMNBCDOPOPBDQPCOPREFHGIBCDST $.
    $}

    ${
      divassapd.4 $e |- ( ph -> C # 0 ) $.
      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      divmulap2d $p |- ( ph -> ( ( A / C ) = B <-> A = ( C x. B ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq cmul wb divmulap2 syl112anc ) ABIJCI
        JDIJDKLMBDNOCPBDCQOPREFGHBCDST $.

      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      divmulap3d $p |- ( ph -> ( ( A / C ) = B <-> A = ( B x. C ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq cmul wb divmulap3 syl112anc ) ABIJCI
        JDIJDKLMBDNOCPBCDQOPREFGHBCDST $.

      $( An associative law for division.  (Contributed by Jim Kingdon,
         2-Mar-2020.) $)
      divassapd $p |- ( ph -> ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divassap syl112anc ) ABIJCIJDIJ
        DKLMBCNODPOBCDPONOQEFGHBCDRS $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      div12apd $p |- ( ph -> ( A x. ( B / C ) ) = ( B x. ( A / C ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq div12ap syl112anc ) ABIJCIJDIJD
        KLMBCDNOPOCBDNOPOQEFGHBCDRS $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      div23apd $p |- ( ph -> ( ( A x. B ) / C ) = ( ( A / C ) x. B ) ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq div23ap syl112anc ) ABIJCIJDIJD
        KLMBCNODPOBDPOCNOQEFGHBCDRS $.

      $( Distribution of division over addition.  (Contributed by Jim Kingdon,
         2-Mar-2020.) $)
      divdirapd $p |- ( ph ->
          ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
        ( cc wcel cc0 cap wbr caddc co cdiv wceq divdirap syl112anc ) ABIJCIJDI
        JDKLMBCNODPOBDPOCDPONOQEFGHBCDRS $.

      $( Distribution of division over subtraction.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      divsubdirapd $p |- ( ph ->
          ( ( A - B ) / C ) = ( ( A / C ) - ( B / C ) ) ) $=
        ( cc wcel cc0 cap wbr cmin co cdiv wceq divsubdirap syl112anc ) ABIJCIJ
        DIJDKLMBCNODPOBDPOCDPONOQEFGHBCDRS $.

      div11apd.5 $e |- ( ph -> ( A / C ) = ( B / C ) ) $.
      $( One-to-one relationship for division.  (Contributed by Jim Kingdon,
         2-Mar-2020.) $)
      div11apd $p |- ( ph -> A = B ) $=
        ( cdiv co wceq cc wcel cc0 cap wbr wb div11ap syl112anc mpbid ) ABDJKCD
        JKLZBCLZIABMNCMNDMNDOPQUBUCREFGHBCDSTUA $.
    $}
  $}

  ${
    $d x y B $.
    redivclapd.1 $e |- ( ph -> A e. RR ) $.
    ${
      rerecclapd.2 $e |- ( ph -> A # 0 ) $.
      $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      rerecclapd $p |- ( ph -> ( 1 / A ) e. RR ) $=
        ( cr wcel cc0 cap wbr c1 cdiv co rerecclap syl2anc ) ABEFBGHIJBKLEFCDBM
        N $.
    $}

    redivclapd.2 $e |- ( ph -> B e. RR ) $.
    redivclapd.3 $e |- ( ph -> B # 0 ) $.
    $( Closure law for division of reals.  (Contributed by Jim Kingdon,
       29-Feb-2020.) $)
    redivclapd $p |- ( ph -> ( A / B ) e. RR ) $=
      ( cr wcel cc0 cap wbr cdiv co redivclap syl3anc ) ABGHCGHCIJKBCLMGHDEFBCN
      O $.
  $}

  ${
    mvllmulapd.1 $e |- ( ph -> A e. CC ) $.
    mvllmulapd.2 $e |- ( ph -> B e. CC ) $.
    mvllmulapd.3 $e |- ( ph -> A # 0 ) $.
    mvllmulapd.4 $e |- ( ph -> ( A x. B ) = C ) $.
    $( Move LHS left multiplication to RHS. (Contributed by Jim Kingdon,
       10-Jun-2020.) $)
    mvllmulapd $p |- ( ph -> B = ( C / A ) ) $=
      ( cmul co cdiv divcanap4d mulcomd eqtr3d oveq1d ) ACBIJZBKJCDBKJACBFEGLAP
      DBKABCIJPDABCEFMHNON $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Ordering on reals (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A number is less than itself plus 1.  (Contributed by NM, 20-Aug-2001.) $)
  ltp1 $p |- ( A e. RR -> A < ( A + 1 ) ) $=
    ( c1 cr wcel caddc co clt wbr 1re wa cc0 0lt1 ltaddpos mpbii mpan ) BCDZACD
    ZAABEFGHZIPQJKBGHRLBAMNO $.

  $( A number is less than or equal to itself plus 1.  (Contributed by NM,
     5-Jan-2006.) $)
  lep1 $p |- ( A e. RR -> A <_ ( A + 1 ) ) $=
    ( cr wcel c1 caddc co clt wbr cle ltp1 wi peano2re ltle mpdan mpd ) ABCZAAD
    EFZGHZAQIHZAJPQBCRSKALAQMNO $.

  $( A number minus 1 is less than itself.  (Contributed by NM, 9-Apr-2006.) $)
  ltm1 $p |- ( A e. RR -> ( A - 1 ) < A ) $=
    ( cr wcel c1 cmin co cc0 clt wbr 0lt1 wb 0re 1re mp3an12 mpbii recn subid1d
    ltsub2 breqtrd ) ABCZADEFZAGEFZAHTGDHIZUAUBHIZJGBCDBCTUCUDKLMGDARNOTAAPQS
    $.

  $( A number minus 1 is less than or equal to itself.  (Contributed by Mario
     Carneiro, 2-Oct-2015.) $)
  lem1 $p |- ( A e. RR -> ( A - 1 ) <_ A ) $=
    ( cr wcel c1 cmin co clt wbr cle ltm1 wi peano2rem ltle mpancom mpd ) ABCZA
    DEFZAGHZQAIHZAJQBCPRSKALQAMNO $.

  $( A transitive property of 'less than or equal' and plus 1.  (Contributed by
     NM, 5-Aug-2005.) $)
  letrp1 $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) -> A <_ ( B + 1 ) ) $=
    ( cr wcel cle wbr w3a c1 caddc co clt wa adantl peano2re ancli lelttr 3expb
    ltp1 wi sylan2 mpan2d 3impia ltle 3adant3 mpd ) ACDZBCDZABEFZGABHIJZKFZAUIE
    FZUFUGUHUJUFUGLUHBUIKFZUJUGULUFBRMUGUFUGUICDZLUHULLUJSZUGUMBNZOUFUGUMUNABUI
    PQTUAUBUFUGUJUKSZUHUGUFUMUPUOAUIUCTUDUE $.

  $( A transitive property of plus 1 and 'less than or equal'.  (Contributed by
     NM, 16-Aug-2005.) $)
  p1le $p |- ( ( A e. RR /\ B e. RR /\ ( A + 1 ) <_ B ) -> A <_ B ) $=
    ( cr wcel c1 caddc co cle wa lep1 adantr wi peano2re ancli letr 3expa sylan
    wbr mpand 3impia ) ACDZBCDZAEFGZBHRZABHRZUAUBIAUCHRZUDUEUAUFUBAJKUAUAUCCDZI
    UBUFUDIUELZUAUGAMNUAUGUBUHAUCBOPQST $.

  $( The reciprocal of a positive number is positive.  Exercise 4 of [Apostol]
     p. 21.  (Contributed by NM, 25-Aug-1999.)  (Revised by Mario Carneiro,
     27-May-2016.) $)
  recgt0 $p |- ( ( A e. RR /\ 0 < A ) -> 0 < ( 1 / A ) ) $=
    ( cr wcel cc0 clt wbr wa c1 co cap 0re cneg cmul adantr rerecclapd lt0neg1d
    wn cc syl2anc wb cdiv cle 0lt1 1re ax-mp simpll gt0ap0 renegcld simpr simpl
    ltnsymi mpbid simplr mulgt0d recnd recclap mulneg1d recidap2 negeqd breqtrd
    wceq eqtrd 1red mpbird ex mtoi lenlt sylancr recap0 apsym sylancl mpbir2and
    0cn ltleap ) ABCZDAEFZGZDHAUAIZEFZDVRUBFZDVRJFZVQVTVRDEFZQZVQWBHDEFZDHEFWDQ
    UCDHKUDUKUEVQWBWDVQWBGZWDDHLZEFWEDVRLZAMIZWFEWEWGAWEVRWEAVOVPWBUFZVQADJFZWB
    AUGZNZOUHWIWEWBDWGEFVQWBUIWEVRVQVRBCZWBVQAVOVPUJZWKOZNPULVOVPWBUMUNWEWHVRAM
    IZLWFWEVRAWEARCZWJVRRCZVQWQWBVQAWNUOZNZWLAUPZSWTUQWEWPHWEWQWJWPHVAWTWLAURSU
    SVBUTWEHWEVCPVDVEVFVQDBCZWMVTWCTKWODVRVGVHVDVQVRDJFZWAVQWQWJXCWSWKAVISVQWRD
    RCXCWATVQWQWJWRWSWKXASVMVRDVJVKULVQXBWMVSVTWAGTKWODVRVNVHVL $.

  $( Infer that a multiplicand is positive from a positive multiplier and
     positive product.  See ~ prodgt0 for the same theorem with ` 0 < A `
     replaced by the weaker condition ` 0 <_ A ` .  (Contributed by Jim
     Kingdon, 29-Feb-2020.) $)
  prodgt0gt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 < ( A x. B ) ) )
                 -> 0 < B ) $=
    ( cr wcel wa cc0 clt wbr cmul co cdiv simpll simplr remulcld simprl gt0ap0d
    c1 rerecclapd simprr recnd recgt0 mulgt0d divrecapd simpr adantr divcanap3d
    ad2ant2r cc eqtr3d breqtrd ) ACDZBCDZEZFAGHZFABIJZGHZEZEZFUOQAKJZIJZBGURUOU
    SURABUKULUQLZUKULUQMNZURAVAURAVAUMUNUPOPZRUMUNUPSUKUNFUSGHULUPAUAUGUBURUOAK
    JUTBURUOAURUOVBTURAVATZVCUCURBAUMBUHDUQUMBUKULUDTUEVDVCUFUIUJ $.

  $( Infer that a multiplicand is positive from a nonnegative multiplier and
     positive product.  (Contributed by NM, 24-Apr-2005.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  prodgt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 0 < ( A x. B ) ) )
                 -> 0 < B ) $=
    ( cr wcel wa cc0 cle wbr cmul co clt wn cneg renegcld lt0neg1d recnd negcld
    cap mpbird 0red simpllr simplll simplr biimpa simprr simpll mulcomd breqtrd
    mul2negd breqtrrd adantr prodgt0gt0 syl22anc lenltd mpbid pm2.65da remulcld
    simplrl gt0ap0d mulap0bbd cc wb 0cnd apsym syl2anc ltleap mpbir2and ) ACDZB
    CDZEZFAGHZFABIJZKHZEZEZFBKHZFBGHZFBRHZVOVQBFKHZLVOVSAFKHZVOVSEZVTFAMZKHZWAB
    MZCDWBCDFWDKHZFWDWBIJZKHZWCWABVHVIVNVSUANWAAVHVIVNVSUBZNVOVSWEVOBVHVIVNUCZO
    UDVOWGVSVOFWBWDIJZWFKVOFVLWJKVJVKVMUEZVOABVOAVHVIVNUFZPZVOBWIPZUIUJVOWBWDVO
    AWMQVOBWNQUGUHUKWDWBULUMWAAWHOSWAVKVTLVJVKVMVSURWAFAWATWHUNUOUPVOFBVOTZWIUN
    SVOBFRHZVRVOABWMWNVOVLVOABWLWIUQWKUSUTVOBVADFVADWPVRVBWNVOVCBFVDVEUOVOFCDVI
    VPVQVREVBWOWIFBVFVEVG $.

  $( Infer that a multiplier is positive from a nonnegative multiplicand and
     positive product.  (Contributed by NM, 24-Apr-2005.) $)
  prodgt02 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ B /\ 0 < ( A x. B ) ) )
                 -> 0 < A ) $=
    ( cr wcel wa cc0 cle wbr cmul co clt cc wceq mulcom syl2an breq2d biimpd wi
    recn prodgt0 ex ancoms sylan2d imp ) ACDZBCDZEZFBGHZFABIJZKHZEFAKHZUGUJFBAI
    JZKHZUHUKUGUJUMUGUIULFKUEALDBLDUIULMUFASBSABNOPQUFUEUHUMEZUKRUFUEEUNUKBATUA
    UBUCUD $.

  $( Infer that a multiplicand is nonnegative from a positive multiplier and
     nonnegative product.  (Contributed by NM, 2-Jul-2005.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  prodge0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 <_ ( A x. B ) ) )
                 -> 0 <_ B ) $=
    ( cr wcel wa cc0 clt wbr cmul co cle wn cneg simpll renegcld recnd lt0neg1d
    simplr 3imtr4d lenltd simprl simprr mulgt0d mulneg2d breqtrd remulcld con3d
    expr 0red impr ) ACDZBCDZEZFAGHZFABIJZKHZFBKHZUMUNEZUOFGHZLBFGHZLUPUQURUTUS
    URFBMZGHZFUOMZGHZUTUSUMUNVBVDUMUNVBEZEZFAVAIJVCGVFAVAUKULVENZVFBUKULVERZOUM
    UNVBUAUMUNVBUBUCVFABVFAVGPVFBVHPUDUEUHURBUKULUNRZQURUOURABUKULUNNVIUFZQSUGU
    RFUOURUIZVJTURFBVKVITSUJ $.

  $( Infer that a multiplier is nonnegative from a positive multiplicand and
     nonnegative product.  (Contributed by NM, 2-Jul-2005.) $)
  prodge02 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < B /\ 0 <_ ( A x. B ) ) )
                 -> 0 <_ A ) $=
    ( cr wcel wa cc0 clt wbr cmul co cle cc wceq mulcom syl2an breq2d biimpd wi
    recn prodge0 ex ancoms sylan2d imp ) ACDZBCDZEZFBGHZFABIJZKHZEFAKHZUGUJFBAI
    JZKHZUHUKUGUJUMUGUIULFKUEALDBLDUIULMUFASBSABNOPQUFUEUHUMEZUKRUFUEEUNUKBATUA
    UBUCUD $.

  $( Multiplication of both sides of 'less than' by a positive number.  Theorem
     I.19 of [Apostol] p. 20.  (Contributed by NM, 13-Feb-2005.) $)
  ltmul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                -> ( A < B <-> ( C x. A ) < ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co ltmul1 wb cc recn mulcom sylan 3adant2
    wceq 3adant1 breq12d syl3an3 3adant3r bitrd ) ADEZBDEZCDEZFCGHZIJABGHACKLZB
    CKLZGHZCAKLZCBKLZGHZABCMUFUGUHULUONZUIUHUFUGCOEZUPCPUFUGUQJUJUMUKUNGUFUQUJU
    MTZUGUFAOEUQURAPACQRSUGUQUKUNTZUFUGBOEUQUSBPBCQRUAUBUCUDUE $.

  $( Multiplication of both sides of 'less than or equal to' by a positive
     number.  (Contributed by NM, 16-Mar-2005.) $)
  lemul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
               -> ( A <_ B <-> ( C x. A ) <_ ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cle cmul co lemul1 wb wceq recn mulcom syl2an
    cc 3adant2 3adant1 breq12d 3adant3r bitrd ) ADEZBDEZCDEZFCGHZIJABKHACLMZBCL
    MZKHZCALMZCBLMZKHZABCNUFUGUHULUOOUIUFUGUHJUJUMUKUNKUFUHUJUMPZUGUFATECTEZUPU
    HAQCQZACRSUAUGUHUKUNPZUFUGBTEUQUSUHBQURBCRSUBUCUDUE $.

  $( Multiplication of both sides of 'less than or equal to' by a nonnegative
     number.  Part of Definition 11.2.7(vi) of [HoTT], p.  (varies).
     (Contributed by NM, 21-Feb-2005.) $)
  lemul1a $p |- ( ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 <_ C ) ) /\
                 A <_ B ) -> ( A x. C ) <_ ( B x. C ) ) $=
    ( cr wcel cc0 cle wbr wa w3a cmul co simpl2 simpl1 resubcld simpl3l subge0d
    cmin recnd remulcld simpr mpbird simpl3r mulge0d subdird breqtrd mpbid ) AD
    EZBDEZCDEZFCGHZIZJZABGHZIZFBCKLZACKLZRLZGHUQUPGHUOFBARLZCKLURGUOUSCUOBAUHUI
    ULUNMZUHUIULUNNZOUJUKUHUIUNPZUOFUSGHUNUMUNUAUOBAUTVAQUBUJUKUHUIUNUCUDUOBACU
    OBUTSUOAVASUOCVBSUEUFUOUPUQUOBCUTVBTUOACVAVBTQUG $.

  $( Multiplication of both sides of 'less than or equal to' by a nonnegative
     number.  (Contributed by Paul Chapman, 7-Sep-2007.) $)
  lemul2a $p |- ( ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 <_ C ) ) /\
                      A <_ B ) -> ( C x. A ) <_ ( C x. B ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co lemul1a wceq cc recn mulcom syl2an adantrr
    w3a adantr 3adant2 3adant1 3brtr3d ) ADEZBDEZCDEZFCGHZIZSZABGHZIACJKZBCJKZC
    AJKZCBJKZGABCLUIUKUMMZUJUDUHUOUEUDUFUOUGUDANECNEZUOUFAOCOZACPQRUATUIULUNMZU
    JUEUHURUDUEUFURUGUEBNEUPURUFBOUQBCPQRUBTUC $.

  $( Comparison of product of two positive numbers.  (Contributed by NM,
     30-Dec-2005.) $)
  ltmul12a $p |- ( ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ A < B ) ) /\
               ( ( C e. RR /\ D e. RR ) /\ ( 0 <_ C /\ C < D ) ) ) ->
                 ( A x. C ) < ( B x. D ) ) $=
    ( cr wcel cc0 cle wbr clt cmul simpllr ad2ant2l imp ad2ant2r lelttr remulcl
    wa co wi simplll simpll simprl jca ltle adantrl lemul1a syl31anc wb simplrl
    simplrr 0re mp3an1 adantlr ltmul2 syl112anc biimpa anasss ad2ant2lr syl3anc
    adantrrl adantr mp2and an4s ) AEFZBEFZRZCEFZDEFZRZGAHIZABJIZRZGCHIZCDJIZRZA
    CKSZBDKSZJIZVGVJRZVMVPRZRZVQBCKSZHIZWCVRJIZVSWBVEVFVHVNRZABHIZWDVEVFVJWAUAV
    EVFVJWALVJVPWFVGVMVJVPRVHVNVHVIVPUBVJVNVOUCUDMVGVMWGVJVPVGVLWGVKVGVLWGABUEN
    UFOABCUGUHVTVMVOWEVNVTVMVOWEVTVMRZVOWEWHVHVIVFGBJIZVOWEUIVGVHVIVMUJVGVHVIVM
    UKVEVFVJVMLVGVMWIVJVGVMWIGEFVEVFVMWITULGABPUMNUNCDBUOUPUQURVAVTWDWERVSTZWAV
    TVQEFZWCEFZVREFZWJVEVHWKVFVIACQOVFVHWLVEVIBCQUSVFVIWMVEVHBDQMVQWCVRPUTVBVCV
    D $.

  $( Comparison of product of two nonnegative numbers.  (Contributed by NM,
     22-Feb-2008.) $)
  lemul12b $p |- ( ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR ) /\
       ( C e. RR /\ ( D e. RR /\ 0 <_ D ) ) ) -> ( ( A <_ B /\ C <_ D ) ->
                 ( A x. C ) <_ ( B x. D ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co wi w3a lemul2a ex adantlr remulcl ad2ant2r
    3comr 3expb adantrrr lemul1a 3expa adantllr adantrl anim12d ancomsd adantrr
    ad2ant2rl ad2ant2l letr syl3anc syld ) AEFZGAHIZJZBEFZJZCEFZDEFZGDHIZJZJZJZ
    ABHIZCDHIZJACKLZADKLZHIZVIBDKLZHIZJZVHVKHIZVEVGVFVMVEVGVJVFVLUQVDVGVJMZURUQ
    UTVAVOVBUQUTVAVOUTVAUQVOUTVAUQNVGVJCDAOPTUAUBQUSVCVFVLMZUTUOURVCVPUPUOURVCV
    PUOURVCNVFVLABDUCPUDUEUFUGUHVEVHEFZVIEFZVKEFZVMVNMUQUTVQURVCUOUTVQUPACRQSUQ
    VCVRURUTUOVAVRUPVBADRSUJURVCVSUQUTURVAVSVBBDRUIUKVHVIVKULUMUN $.

  $( Comparison of product of two nonnegative numbers.  (Contributed by NM,
     22-Feb-2008.) $)
  lemul12a $p |- ( ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR ) /\
       ( ( C e. RR /\ 0 <_ C ) /\ D e. RR ) ) -> ( ( A <_ B /\ C <_ D ) ->
                 ( A x. C ) <_ ( B x. D ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co simpll ad2antlr simplrr wi 0re letr mp3an1
    exp4b com23 imp41 ad2ant2l jca jca32 simpr lemul12b sylc ex ) AEFGAHIJBEFJZ
    CEFZGCHIZJZDEFZJZJZABHIZCDHIZJZACKLBDKLHIZUPUSJZUJUKUNGDHIZJZJJUSUTVAUJUKVC
    UJUOUSMUOUKUJUSUKULUNMNVAUNVBUJUMUNUSOUOURVBUJUQUKULUNURVBUKUNULURVBPUKUNUL
    URVBGEFUKUNULURJVBPQGCDRSTUAUBUCUDUEUPUSUFABCDUGUHUI $.

  $( The product of two numbers greater than 1 is greater than 1.  (Contributed
     by NM, 13-Feb-2005.) $)
  mulgt1 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 1 < A /\ 1 < B ) ) ->
                1 < ( A x. B ) ) $=
    ( cr wcel wa c1 clt wbr cmul co wi a1i cc0 0lt1 1re lttr adantr mp3an1 syld
    simpl 0re mp3an12 mpani ltmul2 biimpd exp32 impcom impd wceq ax-1rid breq1d
    w3a sylibd jcad remulcl syldan imp ) ACDZBCDZEZFAGHZFBGHZEZFABIJZGHZUTVCVAA
    VDGHZEZVEUTVCVAVFVCVAKUTVAVBTLUTVCAFIJZVDGHZVFUTVAVBVIUTVAMAGHZVBVIKZURVAVJ
    KUSURMFGHZVAVJNMCDFCDZURVLVAEVJKUAOMFAPUBUCQUSURVJVKKUSURVJVKVMUSURVJEZVKOV
    MUSVNULVBVIFBAUDUERUFUGSUHUTVHAVDGURVHAUIUSAUJQUKUMUNURUSVDCDZVGVEKZABUOVMU
    RVOVPOFAVDPRUPSUQ $.

  $( Multiplication by a number greater than 1.  (Contributed by NM,
     24-Dec-2005.) $)
  ltmulgt11 $p |- ( ( A e. RR /\ B e. RR /\ 0 < A ) ->
                ( 1 < B <-> A < ( A x. B ) ) ) $=
    ( cr wcel cc0 clt wbr w3a c1 cmul co wb 1re ltmul2 mp3an1 3impb 3com12 wceq
    wa ax-1rid 3ad2ant1 breq1d bitrd ) ACDZBCDZEAFGZHZIBFGZAIJKZABJKZFGZAUJFGUE
    UDUFUHUKLZUEUDUFULICDUEUDUFSULMIBANOPQUGUIAUJFUDUEUIARUFATUAUBUC $.

  $( Multiplication by a number greater than 1.  (Contributed by NM,
     24-Dec-2005.) $)
  ltmulgt12 $p |- ( ( A e. RR /\ B e. RR /\ 0 < A ) ->
                ( 1 < B <-> A < ( B x. A ) ) ) $=
    ( cr wcel cc0 clt wbr w3a c1 cmul ltmulgt11 wceq recn mulcom syl2an 3adant3
    co cc breq2d bitrd ) ACDZBCDZEAFGZHZIBFGAABJQZFGABAJQZFGABKUDUEUFAFUAUBUEUF
    LZUCUAARDBRDUGUBAMBMABNOPST $.

  $( Multiplication by a number greater than or equal to 1.  (Contributed by
     NM, 17-Dec-2005.) $)
  lemulge11 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 1 <_ B ) ) ->
                A <_ ( A x. B ) ) $=
    ( cr wcel wa cc0 cle wbr c1 cmul co wceq ax-1rid ad2antrr simpll simprl jca
    simplr 1re 0le1 pm3.2i jctil jca31 leid simprr lemul12a sylc eqbrtrrd ) ACD
    ZBCDZEZFAGHZIBGHZEZEZAIJKZAABJKZGUIUPALUJUNAMNUOUIULEZUIEICDZFIGHZEZUJEZEAA
    GHZUMEUPUQGHUOURUIVBUOUIULUIUJUNOZUKULUMPQVDUOUJVAUIUJUNRUSUTSTUAUBUCUOVCUM
    UIVCUJUNAUDNUKULUMUEQAAIBUFUGUH $.

  $( Multiplication by a number greater than or equal to 1.  (Contributed by
     Paul Chapman, 21-Mar-2011.) $)
  lemulge12 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 1 <_ B ) ) ->
                    A <_ ( B x. A ) ) $=
    ( cr wcel wa cc0 cle wbr c1 cmul co lemulge11 wb cc wceq recn mulcom syl2an
    breq2d adantr mpbid ) ACDZBCDZEZFAGHIBGHEZEAABJKZGHZABAJKZGHZABLUDUGUIMUEUD
    UFUHAGUBANDBNDUFUHOUCAPBPABQRSTUA $.

  $( Division of both sides of 'less than' by a positive number.  (Contributed
     by NM, 10-Oct-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  ltdiv1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
               ( A < B <-> ( A / C ) < ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a c1 cdiv co cmul wb simp1 simp2 recnd divrecapd
    simp3l simp3r gt0ap0d rerecclapd recgt0 3ad2ant3 ltmul1 syl112anc breq12d
    bitr4d ) ADEZBDEZCDEZFCGHZIZJZABGHZAKCLMZNMZBUQNMZGHZACLMZBCLMZGHUOUJUKUQDE
    FUQGHZUPUTOUJUKUNPZUJUKUNQZUOCUJUKULUMTZUOCVFUJUKULUMUAUBZUCUNUJVCUKCUDUEAB
    UQUFUGUOVAURVBUSGUOACUOAVDRUOCVFRZVGSUOBCUOBVERVHVGSUHUI $.

  $( Division of both sides of a less than or equal to relation by a positive
     number.  (Contributed by NM, 18-Nov-2004.) $)
  lediv1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
               ( A <_ B <-> ( A / C ) <_ ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a wn co cle wb ltdiv1 3adant1 redivclap syld3an3
    cdiv 3expb 3com12 notbid lenlt 3adant3 cap gt0ap0 3adant2 lenltd 3bitr4d )
    ADEZBDEZCDEZFCGHZIZJZBAGHZKZBCSLZACSLZGHZKABMHZUSURMHUOUPUTUKUJUNUPUTNBACOU
    AUBUJUKVAUQNUNABUCUDUOUSURUJUNUSDEZUKUJULUMVBUJULUMCFUEHZVBULUMVCUJCUFZPACQ
    RTUGUKUNURDEZUJUKULUMVEUKULUMVCVEULUMVCUKVDPBCQRTPUHUI $.

  $( Division of a positive number by a positive number.  (Contributed by NM,
     28-Sep-2005.) $)
  gt0div $p |- ( ( A e. RR /\ B e. RR /\ 0 < B ) ->
               ( 0 < A <-> 0 < ( A / B ) ) ) $=
    ( cr wcel cc0 clt wbr w3a cdiv co wb wa 0re ltdiv1 mp3an1 3impb wceq gt0ap0
    cap cc recn div0ap sylan syldan breq1d 3adant1 bitrd ) ACDZBCDZEBFGZHEAFGZE
    BIJZABIJZFGZEUMFGZUHUIUJUKUNKZECDUHUIUJLZUPMEABNOPUIUJUNUOKUHUQULEUMFUIUJBE
    SGZULEQZBRUIBTDURUSBUABUBUCUDUEUFUG $.

  $( Division of a nonnegative number by a positive number.  (Contributed by
     NM, 28-Sep-2005.) $)
  ge0div $p |- ( ( A e. RR /\ B e. RR /\ 0 < B ) ->
               ( 0 <_ A <-> 0 <_ ( A / B ) ) ) $=
    ( cr wcel cc0 clt wbr w3a cle cdiv co wb 0re lediv1 mp3an1 3impb cap gt0ap0
    wa wceq cc recn div0ap sylan syldan breq1d 3adant1 bitrd ) ACDZBCDZEBFGZHEA
    IGZEBJKZABJKZIGZEUNIGZUIUJUKULUOLZECDUIUJUKSZUQMEABNOPUJUKUOUPLUIURUMEUNIUJ
    UKBEQGZUMETZBRUJBUADUSUTBUBBUCUDUEUFUGUH $.

  $( The ratio of two positive numbers is positive.  (Contributed by NM,
     12-Oct-1999.) $)
  divgt0 $p |- ( ( ( A e. RR /\ 0 < A ) /\
             ( B e. RR /\ 0 < B ) ) -> 0 < ( A / B ) ) $=
    ( cr wcel cc0 clt wbr cdiv co wi w3a gt0div biimpd 3exp com34 com23 imp43 )
    ACDZEAFGZBCDZEBFGZEABHIFGZRTSUAUBJRTUASUBRTUASUBJRTUAKSUBABLMNOPQ $.

  $( The ratio of nonnegative and positive numbers is nonnegative.
     (Contributed by NM, 27-Sep-1999.) $)
  divge0 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\
             ( B e. RR /\ 0 < B ) ) -> 0 <_ ( A / B ) ) $=
    ( cr wcel cc0 cle wbr clt cdiv co w3a ge0div biimpd 3exp com34 com23 imp43
    wi ) ACDZEAFGZBCDZEBHGZEABIJFGZSUATUBUCRSUAUBTUCSUAUBTUCRSUAUBKTUCABLMNOPQ
    $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 12-Oct-1999.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  ltmuldiv $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                -> ( ( A x. C ) < B <-> A < ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cdiv wb simp1 simp3l remulcld syld3an1
    ltdiv1 recnd simp3r gt0ap0d divcanap4d breq1d bitrd ) ADEZBDEZCDEZFCGHZIZJZ
    ACKLZBGHZULCMLZBCMLZGHZAUOGHULDEUGUFUJUMUPNUKACUFUGUJOZUFUGUHUIPZQULBCSRUKU
    NAUOGUKACUKAUQTUKCURTUKCURUFUGUHUIUAUBUCUDUE $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 18-Nov-2004.) $)
  ltmuldiv2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                   -> ( ( C x. A ) < B <-> A < ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa cmul co cdiv wceq cc mulcom syl2an adantrr 3adant2
    w3a recn breq1d ltmuldiv bitr3d ) ADEZBDEZCDEZFCGHZIZSZACJKZBGHCAJKZBGHABCL
    KGHUIUJUKBGUDUHUJUKMZUEUDUFULUGUDANECNEULUFATCTACOPQRUAABCUBUC $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 18-Nov-2004.) $)
  ltdivmul $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
              -> ( ( A / C ) < B <-> A < ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cdiv wb remulcl ancoms adantrr 3adant1
    cc recn ltdiv1 syld3an2 adantr ad2antrl cap gt0ap0 adantl divcanap3d breq2d
    wceq bitr2d ) ADEZBDEZCDEZFCGHZIZJZACBKLZGHZACMLZURCMLZGHZUTBGHULURDEZUMUPU
    SVBNUMUPVCULUMUNVCUOUNUMVCCBOPQRAURCUAUBUQVABUTGUMUPVABUJULUMUPIBCUMBSEUPBT
    UCUNCSEUMUOCTUDUPCFUEHUMCUFUGUHRUIUK $.

  $( 'Less than or equal to' relationship between division and multiplication.
     (Contributed by NM, 9-Dec-2005.) $)
  ledivmul $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                  ( ( A / C ) <_ B <-> A <_ ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cle simp3l simp2 remulcld lediv1 recnd
    cdiv wb syld3an2 simp3r gt0ap0d divcanap3d breq2d bitr2d ) ADEZBDEZCDEZFCGH
    ZIZJZACBKLZMHZACSLZUMCSLZMHZUOBMHUGUMDEUHUKUNUQTULCBUGUHUIUJNZUGUHUKOZPAUMC
    QUAULUPBUOMULBCULBUSRULCURRULCURUGUHUIUJUBUCUDUEUF $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 24-Feb-2005.) $)
  ltdivmul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                 -> ( ( A / C ) < B <-> A < ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co cmul ltdivmul wceq recn mulcom adantrr
    cc syl2an 3adant1 breq2d bitr4d ) ADEZBDEZCDEZFCGHZIZJZACKLBGHACBMLZGHABCML
    ZGHABCNUIUKUJAGUEUHUKUJOZUDUEUFULUGUEBSECSEULUFBPCPBCQTRUAUBUC $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 8-Jan-2006.) $)
  lt2mul2div $p |- ( ( ( A e. RR /\ ( B e. RR /\ 0 < B ) )
                   /\ ( C e. RR /\ ( D e. RR /\ 0 < D ) ) ) ->
                    ( ( A x. B ) < ( C x. D ) <-> ( A / D ) < ( C / B ) ) ) $=
    ( cr wcel cc0 clt wbr wa cmul co cdiv simprl simprrl mulcomd oveq1d syl3anc
    recnd wb simplrl simplrr gt0ap0d divassapd eqtrd breq2d remulcld redivclapd
    simpll simplr ltmuldiv simprr ltdivmul 3bitr4d ) AEFZBEFZGBHIZJZJZCEFZDEFZG
    DHIZJZJZJZACDKLZBMLZHIZADCBMLZKLZHIZABKLVFHIZADMLVIHIZVEVGVJAHVEVGDCKLZBMLV
    JVEVFVNBMVECDVECUSUTVCNZSZVEDUSUTVAVBOZSZPQVEDCBVRVPVEBUOUPUQVDUAZSVEBVSUOU
    PUQVDUBUCZUDUEUFVEUOVFEFURVLVHTUOURVDUIZVECDVOVQUGUOURVDUJAVFBUKRVEUOVIEFVC
    VMVKTWAVECBVOVSVTUHUSUTVCULAVIDUMRUN $.

  $( 'Less than or equal to' relationship between division and multiplication.
     (Contributed by NM, 9-Dec-2005.) $)
  ledivmul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                  ( ( A / C ) <_ B <-> A <_ ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv cle cmul ledivmul wceq recn mulcom syl2an
    co cc adantrr 3adant1 breq2d bitr4d ) ADEZBDEZCDEZFCGHZIZJZACKSBLHACBMSZLHA
    BCMSZLHABCNUJULUKALUFUIULUKOZUEUFUGUMUHUFBTECTEUMUGBPCPBCQRUAUBUCUD $.

  $( 'Less than or equal' relationship between division and multiplication.
     (Contributed by NM, 10-Mar-2006.) $)
  lemuldiv $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                  ( ( A x. C ) <_ B <-> A <_ ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co wn cmul cle wb ltdivmul2 3com12 notbid
    lenltd simp1 simp2 simp3l simp3r gt0ap0d redivclapd remulcld 3bitr4rd ) ADE
    ZBDEZCDEZFCGHZIZJZBCKLZAGHZMBACNLZGHZMAUOOHUQBOHUNUPURUJUIUMUPURPBACQRSUNAU
    OUIUJUMUAZUNBCUIUJUMUBZUIUJUKULUCZUNCVAUIUJUKULUDUEUFTUNUQBUNACUSVAUGUTTUH
    $.

  $( 'Less than or equal' relationship between division and multiplication.
     (Contributed by NM, 10-Mar-2006.) $)
  lemuldiv2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                      ( ( C x. A ) <_ B <-> A <_ ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cle cdiv wceq cc mulcom syl2an adantrr
    recn 3adant2 breq1d lemuldiv bitr3d ) ADEZBDEZCDEZFCGHZIZJZACKLZBMHCAKLZBMH
    ABCNLMHUJUKULBMUEUIUKULOZUFUEUGUMUHUEAPECPEUMUGATCTACQRSUAUBABCUCUD $.

  $( The reciprocal of both sides of 'less than'.  (Contributed by NM,
     26-Sep-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  ltrec $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( A < B <-> ( 1 / B ) < ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co cmul 1red simprl simpll simplr ltmuldiv
    wb syl112anc recnd mulid2d breq1d gt0ap0d divrecapd breq2d 3bitr3d ltdivmul
    rerecclapd simprr bitr4d ) ACDZEAFGZHZBCDZEBFGZHZHZABFGZIBIAJKZLKZFGZIBJKUS
    FGZUQIALKZBFGZIBAJKZFGZURVAUQICDZUNUKULVDVFRUQMZUMUNUONZUKULUPOZUKULUPPZIBA
    QSUQVCABFUQAUQAVJTZUAUBUQVEUTIFUQBAUQBVITVLUQAVJVKUCZUDUEUFUQVGUSCDUNUOVBVA
    RVHUQAVJVMUHVIUMUNUOUIIUSBUGSUJ $.

  $( The reciprocal of both sides of 'less than or equal to'.  (Contributed by
     NM, 3-Oct-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  lerec $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( A <_ B <-> ( 1 / B ) <_ ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa wn c1 co cle wb ltrec ancoms notbid lenltd gt0ap0d
    cdiv rerecclapd simpll simprl simprr simplr 3bitr4d ) ACDZEAFGZHZBCDZEBFGZH
    ZHZBAFGZIJASKZJBSKZFGZIABLGUOUNLGULUMUPUKUHUMUPMBANOPULABUFUGUKUAZUHUIUJUBZ
    QULUOUNULBURULBURUHUIUJUCRTULAUQULAUQUFUGUKUDRTQUE $.

  $( Lemma for ~ lt2msq .  (Contributed by Mario Carneiro, 27-May-2016.) $)
  lt2msq1 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR /\ A < B ) ->
                  ( A x. A ) < ( B x. B ) ) $=
    ( cr wcel cc0 cle wbr wa clt w3a co simp1l remulcld simp2 simp1 simp3 ltled
    cmul lemul1a lelttrd syl31anc wb 0red simp1r ltmul2 syl112anc mpbid ) ACDZE
    AFGZHZBCDZABIGZJZAARKZBARKZBBRKZUMAAUHUIUKULLZUQMUMBAUJUKULNZUQMUMBBURURMUM
    UHUKUJABFGUNUOFGUQURUJUKULOUMABUQURUJUKULPZQABASUAUMULUOUPIGZUSUMUHUKUKEBIG
    ULUTUBUQURURUMEABUMUCUQURUHUIUKULUDUSTABBUEUFUGT $.

  $( Two nonnegative numbers compare the same as their squares.  (Contributed
     by Roy F. Longton, 8-Aug-2005.)  (Revised by Mario Carneiro,
     27-May-2016.) $)
  lt2msq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
                  ( A < B <-> ( A x. A ) < ( B x. B ) ) ) $=
    ( cr wcel cc0 cle wbr wa clt cmul co wi lt2msq1 3expia cap syl2anc remulcld
    wn lenltd 3imtr4d adantrr simpr simpll con3d simprl wo recnd syl22anc oridm
    cc mulext syl6ib anim12d wb ltleap impbid ) ACDZEAFGZHZBCDZEBFGZHZHZABIGZAA
    JKZBBJKZIGZUSUTVDVGLVAUSUTVDVGABMNUAVCVEVFFGZVEVFOGZHZABFGZABOGZHZVGVDVCVHV
    KVIVLVCVFVEIGZRBAIGZRVHVKVCVOVNVCVBUQVOVNLUSVBUBUQURVBUCZVBUQVOVNBAMNPUDVCV
    EVFVCAAVPVPQZVCBBUSUTVAUEZVRQZSVCABVPVRSTVCVIVLVLUFZVLVCAUJDZWABUJDZWBVIVTL
    VCAVPUGZWCVCBVRUGZWDAABBUKUHVLUIULUMVCVECDVFCDVGVJUNVQVSVEVFUOPVCUQUTVDVMUN
    VPVRABUOPTUP $.

  $( Division of a positive number by both sides of 'less than'.  (Contributed
     by NM, 27-Apr-2005.) $)
  ltdiv2 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) /\
      ( C e. RR /\ 0 < C ) ) -> ( A < B <-> ( C / B ) < ( C / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co cmul wb gt0ap0 3ad2ant1 recnd divrecapd
    w3a cap simp2l 3ad2ant2 rerecclap syldan simp3 ltmul2 syl3anc ltrec 3adant3
    rerecclapd simp3l simp1l breq12d 3bitr4d ) ADEZFAGHZIZBDEZFBGHZIZCDEZFCGHZI
    ZSZJBKLZJAKLZGHZCVEMLZCVFMLZGHZABGHZCBKLZCAKLZGHVDVEDEVFDEZVCVGVJNVDBUQURUS
    VCUAZUTUQBFTHVCBOUBZUJUQUTVNVCUOUPAFTHZVNAOZAUCUDPUQUTVCUEVEVFCUFUGUQUTVKVG
    NVCABUHUIVDVLVHVMVIGVDCBVDCUQUTVAVBUKQZVDBVOQVPRVDCAVSVDAUOUPUTVCULQUQUTVQV
    CVRPRUMUN $.

  $( Reciprocal swap in a 'less than' relation.  (Contributed by NM,
     24-Feb-2005.) $)
  ltrec1 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( ( 1 / A ) < B <-> ( 1 / B ) < A ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co simpll simplr gt0ap0d rerecclapd recgt0
    wb adantr simpr ltrec syl21anc recnd recrecapd breq2d bitrd ) ACDZEAFGZHZBC
    DEBFGHZHZIAJKZBFGZIBJKZIUKJKZFGZUMAFGUJUKCDEUKFGZUIULUOQUJAUFUGUILZUJAUQUFU
    GUIMNZOUHUPUIAPRUHUISUKBTUAUJUNAUMFUJAUJAUQUBURUCUDUE $.

  $( Reciprocal swap in a 'less than or equal to' relation.  (Contributed by
     NM, 24-Feb-2005.) $)
  lerec2 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( A <_ ( 1 / B ) <-> B <_ ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co cle wb simprl simprr gt0ap0d rerecclapd
    simpl recgt0 adantl lerec syl12anc recnd recrecapd breq1d bitrd ) ACDEAFGHZ
    BCDZEBFGZHZHZAIBJKZLGZIULJKZIAJKZLGZBUOLGUKUGULCDEULFGZUMUPMUGUJRUKBUGUHUIN
    ZUKBURUGUHUIOPZQUJUQUGBSTAULUAUBUKUNBUOLUKBUKBURUCUSUDUEUF $.

  $( Invert ratios of positive numbers and swap their ordering.  (Contributed
     by NM, 9-Jan-2006.) $)
  ledivdiv $p |- ( ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) /\
                      ( ( C e. RR /\ 0 < C ) /\ ( D e. RR /\ 0 < D ) ) ) ->
                  ( ( A / B ) <_ ( C / D ) <-> ( D / C ) <_ ( B / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa cdiv co cle c1 gt0ap0d redivclapd divgt0 recdivapd
    wb recnd simplll simplrl simplrr adantr simprll simprrl simprrr lerec bitrd
    adantl syl22anc simprlr simpllr breq12d ) AEFZGAHIZJZBEFZGBHIZJZJZCEFZGCHIZ
    JZDEFZGDHIZJZJZJZABKLZCDKLZMIZNVKKLZNVJKLZMIZDCKLZBAKLZMIVIVJEFGVJHIZVKEFGV
    KHIZVLVOSVIABUOUPUTVHUAZUQURUSVHUBZVIBWAUQURUSVHUCOZPVAVRVHABQUDVICDVAVBVCV
    GUEZVAVDVEVFUFZVIDWDVAVDVEVFUGOZPVHVSVACDQUJVJVKUHUKVIVMVPVNVQMVICDVICWCTVI
    DWDTVICWCVAVBVCVGULOWERVIABVIAVTTVIBWATVIAVTUOUPUTVHUMOWBRUNUI $.

  $( Division of a positive number by both sides of 'less than or equal to'.
     (Contributed by NM, 10-Jan-2006.) $)
  lediv2 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) /\
       ( C e. RR /\ 0 < C ) ) -> ( A <_ B <-> ( C / B ) <_ ( C / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a c1 cdiv co cle wb gt0ap0d rerecclapd divrecapd
    cmul recnd simp2l simp2r simp1l simp1r simp3l simp3r lemul2 syl112anc lerec
    3adant3 breq12d 3bitr4d ) ADEZFAGHZIZBDEZFBGHZIZCDEZFCGHZIZJZKBLMZKALMZNHZC
    VCSMZCVDSMZNHZABNHZCBLMZCALMZNHVBVCDEVDDEUSUTVEVHOVBBUOUPUQVAUAZVBBVLUOUPUQ
    VAUBPZQVBAUMUNURVAUCZVBAVNUMUNURVAUDPZQUOURUSUTUEZUOURUSUTUFVCVDCUGUHUOURVI
    VEOVAABUIUJVBVJVFVKVGNVBCBVBCVPTZVBBVLTVMRVBCAVQVBAVNTVORUKUL $.

  $( Swap denominator with other side of 'less than'.  (Contributed by NM,
     3-Oct-1999.) $)
  ltdiv23 $p |- ( ( A e. RR /\ ( B e. RR /\ 0 < B ) /\ ( C e. RR /\ 0 < C ) )
              -> ( ( A / B ) < C <-> ( A / C ) < B ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co cmul wb simp1 simp2l simp2r redivclapd
    gt0ap0d recnd simp3l simp2 ltmul1 syl3anc divcanap1d breq1d remulcld ltdiv1
    syld3an2 simp3r divcanap3d breq2d bitrd 3bitrd ) ADEZBDEZFBGHZIZCDEZFCGHZIZ
    JZABKLZCGHZVCBMLZCBMLZGHZAVFGHZACKLZBGHZVBVCDEUSURVDVGNVBABUOURVAOZUOUPUQVA
    PZVBBVLUOUPUQVAQSZRUOURUSUTUAZUOURVAUBVCCBUCUDVBVEAVFGVBABVBAVKTVBBVLTZVMUE
    UFVBVHVIVFCKLZGHZVJUOVFDEURVAVHVQNVBCBVNVLUGAVFCUHUIVBVPBVIGVBBCVOVBCVNTVBC
    VNUOURUSUTUJSUKULUMUN $.

  $( Swap denominator with other side of 'less than or equal to'.  (Contributed
     by NM, 30-May-2005.) $)
  lediv23 $p |- ( ( A e. RR /\ ( B e. RR /\ 0 < B ) /\ ( C e. RR /\ 0 < C ) )
              -> ( ( A / B ) <_ C <-> ( A / C ) <_ B ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co cle cmul wb simp1 simp2l gt0ap0d recnd
    simp2r redivclapd simp3l lemul1 syl112anc divcanap1d breq1d remulcld lediv1
    syld3an2 simp3r divcanap3d breq2d bitrd 3bitrd ) ADEZBDEZFBGHZIZCDEZFCGHZIZ
    JZABKLZCMHZVCBNLZCBNLZMHZAVFMHZACKLZBMHZVBVCDEUSUPUQVDVGOVBABUOURVAPZUOUPUQ
    VAQZVBBVLUOUPUQVATZRZUAUOURUSUTUBZVLVMVCCBUCUDVBVEAVFMVBABVBAVKSVBBVLSZVNUE
    UFVBVHVIVFCKLZMHZVJUOVFDEURVAVHVROVBCBVOVLUGAVFCUHUIVBVQBVIMVBBCVPVBCVOSVBC
    VOUOURUSUTUJRUKULUMUN $.

  $( Comparison of ratio of two nonnegative numbers.  (Contributed by NM,
     31-Dec-2005.) $)
  lediv12a $p |- ( ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ A <_ B ) ) /\
               ( ( C e. RR /\ D e. RR ) /\ ( 0 < C /\ C <_ D ) ) ) ->
                 ( A / D ) <_ ( B / C ) ) $=
    ( cr wcel wa cc0 cle wbr clt c1 cdiv cmul syl22anc gt0ap0d rerecclapd recnd
    co jca simplrr simprrr simprll simprrl simprlr 0red ltletrd simplll simplrl
    wb lerec mpbid wi simpllr recgt0 syl2anc lemul12a mp2and divrecapd 3brtr4d
    ltled ) AEFZBEFZGZHAIJZABIJZGZGZCEFZDEFZGZHCKJZCDIJZGZGZGZALDMSZNSZBLCMSZNS
    ZADMSBCMSIVPVFVQVSIJZVRVTIJZVDVEVFVOUAVPVMWAVHVKVLVMUBZVPVIVLVJHDKJZVMWAUJV
    HVIVJVNUCZVHVKVLVMUDZVHVIVJVNUEZVPHCDVPUFZWEWGWFWCUGZCDUKOULVPVBVEGVCVQEFZH
    VQIJZGVSEFVFWAGWBUMVPVBVEVBVCVGVOUHZVDVEVFVOUITVBVCVGVOUNZVPWJWKVPDWGVPDWGW
    IPZQZVPHVQWHWOVPVJWDHVQKJWGWIDUOUPVATVPCWEVPCWEWFPZQABVQVSUQOURVPADVPAWLRVP
    DWGRWNUSVPBCVPBWMRVPCWERWPUSUT $.

  $( Division of both sides of 'less than or equal to' into a nonnegative
     number.  (Contributed by Paul Chapman, 7-Sep-2007.) $)
  lediv2a $p |- ( ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) /\
                     ( C e. RR /\ 0 <_ C ) ) /\
                   A <_ B ) -> ( C / B ) <_ ( C / A ) ) $=
    ( cr wcel cc0 clt wbr wa cle w3a cdiv co pm3.2 pm2.43i adantr anim2i ancoms
    leid jca ad2antlr 3adantl2 ad2ant2r simplr anim1i 3adantl3 lediv12a syl2anc
    id ) ADEZFAGHZIZBDEZFBGHZIZCDEZFCJHZIZKABJHZIUPUPIZUQCCJHZIZIZUJUMIZUKUSIZI
    ZCBLMCALMJHULURUSVCUOURVCULUSURUTVBUPUTUQUPUTUPUPNOPUQUPVBUPVAUQCSQRTUAUBUL
    UOUSVFURULUOIZUSIVDVEVGVDUSUJUMVDUKUNVDUIUCPVGUKUSUJUKUOUDUETUFCCABUGUH $.

  $( The reciprocal of a positive number less than 1 is greater than 1.
     (Contributed by NM, 23-Feb-2005.) $)
  reclt1 $p |- ( ( A e. RR /\ 0 < A ) -> ( A < 1 <-> 1 < ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co wb 1re 0lt1 ltrec mpanr12 breq1i syl6bb
    1div1e1 ) ABCDAEFGZAHEFZHHIJZHAIJZEFZHUBEFSHBCDHEFTUCKLMAHNOUAHUBERPQ $.

  $( The reciprocal of a positive number greater than 1 is less than 1.
     (Contributed by NM, 28-Dec-2005.) $)
  recgt1 $p |- ( ( A e. RR /\ 0 < A ) -> ( 1 < A <-> ( 1 / A ) < 1 ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co wb 1re 0lt1 ltrec mpanl12 breq2i syl6bb
    1div1e1 ) ABCDAEFGZHAEFZHAIJZHHIJZEFZUAHEFHBCDHEFSTUCKLMHANOUBHUAERPQ $.

  $( The reciprocal of a number greater than 1 is positive and less than 1.
     (Contributed by NM, 23-Feb-2005.) $)
  recgt1i $p |- ( ( A e. RR /\ 1 < A ) ->
               ( 0 < ( 1 / A ) /\ ( 1 / A ) < 1 ) ) $=
    ( cr wcel c1 clt wbr wa cc0 cdiv co 0lt1 wi 0re 1re mp3an12 mpani imdistani
    lttr recgt0 syl recgt1 biimpa sylancom jca ) ABCZDAEFZGZHDAIJZEFZUHDEFZUGUE
    HAEFZGZUIUEUFUKUEHDEFZUFUKKHBCDBCUEUMUFGUKLMNHDAROPQZASTUEUFULUJUNULUFUJAUA
    UBUCUD $.

  $( Construct a number less than 1 from any nonnegative number.  (Contributed
     by NM, 30-Dec-2005.) $)
  recp1lt1 $p |- ( ( A e. RR /\ 0 <_ A ) -> ( A / ( 1 + A ) ) < 1 ) $=
    ( cr wcel cc0 cle wbr wa c1 caddc co cdiv clt cmul simpl ltp1 recnd addcomd
    syl 1cnd breqtrd addcld 1red readdcld 1re addgtge0 mpanr1 mpanl1 divcanap1d
    0lt1 gt0ap0d mulid2d 3brtr4d wb redivclapd ltmul1 syl112anc mpbird ) ABCZDA
    EFZGZAHAIJZKJZHLFZVBVAMJZHVAMJZLFZUTAVAVDVELUTAAHIJZVALUTURAVGLFURUSNZAORUT
    AHUTAVHPZUTSZQTUTAVAVIUTHAVJVIUAZUTVAUTHAUTUBZVHUCZHBCZURUSDVALFZUDVNURGDHL
    FUSVOUIHAUEUFUGZUJZUHUTVAVKUKULUTVBBCVNVABCVOVCVFUMUTAVAVHVMVQUNVLVMVPVBHVA
    UOUPUQ $.

  $( Given a positive number ` A ` , construct a new positive number less than
     both ` A ` and 1.  (Contributed by NM, 28-Dec-2005.) $)
  recreclt $p |- ( ( A e. RR /\ 0 < A ) ->
        ( ( 1 / ( 1 + ( 1 / A ) ) ) < 1 /\ ( 1 / ( 1 + ( 1 / A ) ) ) < A ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co caddc recgt0 1re ltaddpos sylancl mpbid
    wb sylancr 0lt1 cc simpl gt0ap0 rerecclapd readdcl wi 0re mp3an12 syl mpani
    lttr mpd recgt1 syl2anc mpbii wceq recnd ax-1cn addcom breqtrd simpr ltrec1
    syl22anc jca ) ABCZDAEFZGZHHHAIJZKJZIJZHEFZVIAEFZVFHVHEFZVJVFDVGEFZVLALVFVG
    BCZHBCZVMVLQVFAVDVEUAZAUBUCZMVGHNOPZVFVHBCZDVHEFZVLVJQVFVOVNVSMVQHVGUDRZVFV
    LVTVRVFDHEFZVLVTSVFVSWBVLGVTUEZWADBCVOVSWCUFMDHVHUJUGUHUIUKZVHULUMPVFVGVHEF
    ZVKVFVGVGHKJZVHEVFWBVGWFEFZSVFVOVNWBWGQMVQHVGNRUNVFVGTCHTCWFVHUOVFVGVQUPUQV
    GHUROUSVFVDVEVSVTWEVKQVPVDVEUTWAWDAVHVAVBPVC $.

  $( The square function on nonnegative reals is monotonic.  (Contributed by
     NM, 3-Aug-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  le2msq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( A <_ B <-> ( A x. A ) <_ ( B x. B ) ) ) $=
    ( cr wcel cc0 cle wbr wa clt cmul lt2msq ancoms notbid simpll simprl lenltd
    wn co wb remulcld 3bitr4d ) ACDZEAFGZHZBCDZEBFGZHZHZBAIGZQBBJRZAAJRZIGZQABF
    GUKUJFGUHUIULUGUDUIULSBAKLMUHABUBUCUGNZUDUEUFOZPUHUKUJUHAAUMUMTUHBBUNUNTPUA
    $.

  $( The square of a nonnegative number is a one-to-one function.  (Contributed
     by NM, 29-Jul-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  msq11 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( ( A x. A ) = ( B x. B ) <-> A = B ) ) $=
    ( cr wcel cc0 cle wbr cmul wceq le2msq ancoms anbi12d simpll simprl letri3d
    wa co wb remulcld 3bitr4rd ) ACDZEAFGZPZBCDZEBFGZPZPZABFGZBAFGZPAAHQZBBHQZF
    GZUKUJFGZPABIUJUKIUGUHULUIUMABJUFUCUIUMRBAJKLUGABUAUBUFMZUCUDUENZOUGUJUKUGA
    AUNUNSUGBBUOUOSOT $.

  $( Less-than-or-equal-to and division relation.  (Lemma for computing upper
     bounds of products.  The "+ 1" prevents division by zero.)  (Contributed
     by NM, 28-Sep-2005.) $)
  ledivp1 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
                  ( ( A / ( B + 1 ) ) x. B ) <_ A ) $=
    ( cr wcel cc0 cle wbr wa c1 caddc cdiv cmul simprl peano2re syl simpll 0red
    co clt recnd simprr ltp1 lelttrd redivclapd simpl divge0 syl12anc jca ltled
    gt0ap0d lemul2a syl31anc divcanap1d breqtrd ) ACDZEAFGZHZBCDZEBFGZHZHZABIJR
    ZKRZBLRZVCVBLRZAFVAURVBCDZVCCDZEVCFGZHBVBFGVDVEFGUQURUSMZVAURVFVIBNOZVAVGVH
    VAAVBUOUPUTPZVJVAVBVJVAEBVBVAQVIVJUQURUSUAVAURBVBSGVIBUBOZUCZUJZUDVAUQVFEVB
    SGVHUQUTUEVJVMAVBUFUGUHVABVBVIVJVLUIBVBVCUKULVAAVBVAAVKTVAVBVJTVNUMUN $.

  ${
    $d x A $.
    $( If a nonnegative number is less than any positive number, it is zero.
       (Contributed by NM, 11-Feb-2006.) $)
    squeeze0 $p |- ( ( A e. RR /\ 0 <_ A /\ A. x e. RR ( 0 < x -> A < x ) ) ->
                   A = 0 ) $=
      ( cr wcel cc0 cle wbr cv clt wi wral w3a wceq ltnr 3ad2ant1 breq2 imbi12d
      wn rspcva 3adant2 mtod simp1 0red lenltd mpbird simp2 letri3d mpbir2and )
      BCDZEBFGZEAHZIGZBUKIGZJZACKZLZBEMBEFGZUJUPUQEBIGZRUPURBBIGZUIUJUSRUOBNOUI
      UOURUSJZUJUNUTABCUKBMULURUMUSUKBEIPUKBBIPQSTUAUPBEUIUJUOUBZUPUCZUDUEUIUJU
      OUFUPBEVAVBUGUH $.
  $}

  ${
    ltplus1.1 $e |- A e. RR $.
    $( A number is less than itself plus 1.  (Contributed by NM,
       20-Aug-2001.) $)
    ltp1i $p |- A < ( A + 1 ) $=
      ( cr wcel c1 caddc co clt wbr ltp1 ax-mp ) ACDAAEFGHIBAJK $.

    $( The reciprocal of a positive number is positive.  Exercise 4 of
       [Apostol] p. 21.  (Contributed by NM, 15-May-1999.) $)
    recgt0i $p |- ( 0 < A -> 0 < ( 1 / A ) ) $=
      ( cr wcel cc0 clt wbr c1 cdiv co recgt0 mpan ) ACDEAFGEHAIJFGBAKL $.

    ${
      recgt0i.2 $e |- 0 < A $.
      $( The reciprocal of a positive number is positive.  Exercise 4 of
         [Apostol] p. 21.  (Contributed by NM, 15-May-1999.) $)
      recgt0ii $p |- 0 < ( 1 / A ) $=
        ( cr wcel cc0 clt wbr c1 cdiv co recgt0 mp2an ) ADEFAGHFIAJKGHBCALM $.
    $}

    prodgt0.2 $e |- B e. RR $.
    $( Infer that a multiplicand is positive from a nonnegative multiplier and
       positive product.  (Contributed by NM, 15-May-1999.) $)
    prodgt0i $p |- ( ( 0 <_ A /\ 0 < ( A x. B ) ) -> 0 < B ) $=
      ( cr wcel cc0 cle wbr cmul co clt wa prodgt0 mpanl12 ) AEFBEFGAHIGABJKLIM
      GBLICDABNO $.

    $( Infer that a multiplicand is nonnegative from a positive multiplier and
       nonnegative product.  (Contributed by NM, 2-Jul-2005.) $)
    prodge0i $p |- ( ( 0 < A /\ 0 <_ ( A x. B ) ) -> 0 <_ B ) $=
      ( cr wcel cc0 clt wbr cmul co cle wa prodge0 mpanl12 ) AEFBEFGAHIGABJKLIM
      GBLICDABNO $.

    $( The ratio of two positive numbers is positive.  (Contributed by NM,
       16-May-1999.) $)
    divgt0i $p |- ( ( 0 < A /\ 0 < B ) -> 0 < ( A / B ) ) $=
      ( cr wcel cc0 clt wbr cdiv co wa divgt0 mpanr1 mpanl1 ) AEFZGAHIZGBHIZGAB
      JKHIZCPQLBEFRSDABMNO $.

    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by NM, 12-Aug-1999.) $)
    divge0i $p |- ( ( 0 <_ A /\ 0 < B ) -> 0 <_ ( A / B ) ) $=
      ( cr wcel cc0 cle wbr clt cdiv co wa divge0 mpanr1 mpanl1 ) AEFZGAHIZGBJI
      ZGABKLHIZCQRMBEFSTDABNOP $.

    $( The reciprocal of both sides of 'less than'.  (Contributed by NM,
       15-Sep-1999.) $)
    ltreci $p |- ( ( 0 < A /\ 0 < B ) ->
                ( A < B <-> ( 1 / B ) < ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr c1 cdiv co wb wa ltrec mpanr1 mpanl1 ) AEFZGAHIZGBH
      IZABHIJBKLJAKLHIMZCRSNBEFTUADABOPQ $.

    $( The reciprocal of both sides of 'less than or equal to'.  (Contributed
       by NM, 16-Sep-1999.) $)
    lereci $p |- ( ( 0 < A /\ 0 < B ) ->
                ( A <_ B <-> ( 1 / B ) <_ ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr cle c1 cdiv co wb wa lerec mpanr1 mpanl1 ) AEFZGAHI
      ZGBHIZABJIKBLMKALMJINZCSTOBEFUAUBDABPQR $.

    $( The square function on nonnegative reals is strictly monotonic.
       (Contributed by NM, 3-Aug-1999.) $)
    lt2msqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
                ( A < B <-> ( A x. A ) < ( B x. B ) ) ) $=
      ( cr wcel cc0 cle wbr clt cmul co wb wa lt2msq mpanr1 mpanl1 ) AEFZGAHIZG
      BHIZABJIAAKLBBKLJIMZCRSNBEFTUADABOPQ $.

    $( The square function on nonnegative reals is monotonic.  (Contributed by
       NM, 2-Aug-1999.) $)
    le2msqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
                ( A <_ B <-> ( A x. A ) <_ ( B x. B ) ) ) $=
      ( cr wcel cc0 cle wbr cmul co wb wa le2msq mpanr1 mpanl1 ) AEFZGAHIZGBHIZ
      ABHIAAJKBBJKHILZCQRMBEFSTDABNOP $.

    $( The square of a nonnegative number is a one-to-one function.
       (Contributed by NM, 29-Jul-1999.) $)
    msq11i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
                ( ( A x. A ) = ( B x. B ) <-> A = B ) ) $=
      ( cr wcel cc0 cle wbr cmul co wceq wb wa msq11 mpanr1 mpanl1 ) AEFZGAHIZG
      BHIZAAJKBBJKLABLMZCRSNBEFTUADABOPQ $.

    ${
      divgt0i2.3 $e |- 0 < B $.
      $( The ratio of two positive numbers is positive.  (Contributed by NM,
         16-May-1999.) $)
      divgt0i2i $p |- ( 0 < A -> 0 < ( A / B ) ) $=
        ( cc0 clt wbr cdiv co divgt0i mpan2 ) FAGHFBGHFABIJGHEABCDKL $.
    $}

    ${
      ltreci.3 $e |- 0 < A $.
      ltreci.4 $e |- 0 < B $.
      $( The reciprocal of both sides of 'less than'.  (Contributed by NM,
         15-Sep-1999.) $)
      ltrecii $p |- ( A < B <-> ( 1 / B ) < ( 1 / A ) ) $=
        ( cc0 clt wbr c1 cdiv co wb ltreci mp2an ) GAHIGBHIABHIJBKLJAKLHIMEFABC
        DNO $.

      $( The ratio of two positive numbers is positive.  (Contributed by NM,
         18-May-1999.) $)
      divgt0ii $p |- 0 < ( A / B ) $=
        ( cc0 clt wbr cdiv co divgt0i2i ax-mp ) GAHIGABJKHIEABCDFLM $.
    $}

    ltmul1.3 $e |- C e. RR $.
    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  (Contributed by NM, 16-May-1999.) $)
    ltmul1i $p |- ( 0 < C -> ( A < B <-> ( A x. C ) < ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr cmul co wb wa ltmul1 mp3an12 mpan ) CGHZICJKZABJKAC
      LMBCLMJKNZFAGHBGHSTOUADEABCPQR $.

    $( Division of both sides of 'less than' by a positive number.
       (Contributed by NM, 16-May-1999.) $)
    ltdiv1i $p |- ( 0 < C -> ( A < B <-> ( A / C ) < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr cdiv co wb wa ltdiv1 mp3an12 mpan ) CGHZICJKZABJKAC
      LMBCLMJKNZFAGHBGHSTOUADEABCPQR $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by NM, 12-Oct-1999.) $)
    ltmuldivi $p |- ( 0 < C -> ( ( A x. C ) < B <-> A < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr cmul co cdiv wb wa ltmuldiv mp3an12 mpan ) CGHZICJK
      ZACLMBJKABCNMJKOZFAGHBGHTUAPUBDEABCQRS $.

    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  (Contributed by NM, 16-May-1999.) $)
    ltmul2i $p |- ( 0 < C -> ( A < B <-> ( C x. A ) < ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr cmul co wb wa ltmul2 mp3an12 mpan ) CGHZICJKZABJKCA
      LMCBLMJKNZFAGHBGHSTOUADEABCPQR $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by NM, 2-Aug-1999.) $)
    lemul1i $p |- ( 0 < C -> ( A <_ B <-> ( A x. C ) <_ ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr cle cmul co wb wa lemul1 mp3an12 mpan ) CGHZICJKZAB
      LKACMNBCMNLKOZFAGHBGHTUAPUBDEABCQRS $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by NM, 1-Aug-1999.) $)
    lemul2i $p |- ( 0 < C -> ( A <_ B <-> ( C x. A ) <_ ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr cle cmul co wb wa lemul2 mp3an12 mpan ) CGHZICJKZAB
      LKCAMNCBMNLKOZFAGHBGHTUAPUBDEABCQRS $.

    $( Swap denominator with other side of 'less than'.  (Contributed by NM,
       26-Sep-1999.) $)
    ltdiv23i $p |- ( ( 0 < B /\ 0 < C ) ->
                ( ( A / B ) < C <-> ( A / C ) < B ) ) $=
      ( cc0 clt wbr cr wcel cdiv co wb wa ltdiv23 mp3an1 mpanl1 mpanr1 ) GBHIZC
      JKZGCHIZABLMCHIACLMBHINZFBJKZTUAUBOZUCEAJKUDTOUEUCDABCPQRS $.

    ${
      ltdiv23i.4 $e |- 0 < B $.
      ltdiv23i.5 $e |- 0 < C $.
      $( Swap denominator with other side of 'less than'.  (Contributed by NM,
         26-Sep-1999.) $)
      ltdiv23ii $p |- ( ( A / B ) < C <-> ( A / C ) < B ) $=
        ( cc0 clt wbr cdiv co wb ltdiv23i mp2an ) IBJKICJKABLMCJKACLMBJKNGHABCD
        EFOP $.
    $}

    ${
      ltmul1i.4 $e |- 0 < C $.
      $( Multiplication of both sides of 'less than' by a positive number.
         Theorem I.19 of [Apostol] p. 20.  (Contributed by NM, 16-May-1999.)
         (Proof shortened by Paul Chapman, 25-Jan-2008.) $)
      ltmul1ii $p |- ( A < B <-> ( A x. C ) < ( B x. C ) ) $=
        ( cc0 clt wbr cmul co wb ltmul1i ax-mp ) HCIJABIJACKLBCKLIJMGABCDEFNO
        $.

      $( Division of both sides of 'less than' by a positive number.
         (Contributed by NM, 16-May-1999.) $)
      ltdiv1ii $p |- ( A < B <-> ( A / C ) < ( B / C ) ) $=
        ( cc0 clt wbr cdiv co wb ltdiv1i ax-mp ) HCIJABIJACKLBCKLIJMGABCDEFNO
        $.
    $}
  $}

  ${
    ltp1d.1 $e |- ( ph -> A e. RR ) $.
    $( A number is less than itself plus 1.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    ltp1d $p |- ( ph -> A < ( A + 1 ) ) $=
      ( cr wcel c1 caddc co clt wbr ltp1 syl ) ABDEBBFGHIJCBKL $.

    $( A number is less than or equal to itself plus 1.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    lep1d $p |- ( ph -> A <_ ( A + 1 ) ) $=
      ( cr wcel c1 caddc co cle wbr lep1 syl ) ABDEBBFGHIJCBKL $.

    $( A number minus 1 is less than itself.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    ltm1d $p |- ( ph -> ( A - 1 ) < A ) $=
      ( cr wcel c1 cmin co clt wbr ltm1 syl ) ABDEBFGHBIJCBKL $.

    $( A number minus 1 is less than or equal to itself.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    lem1d $p |- ( ph -> ( A - 1 ) <_ A ) $=
      ( cr wcel c1 cmin co cle wbr lem1 syl ) ABDEBFGHBIJCBKL $.

    ${
      recgt0d.2 $e |- ( ph -> 0 < A ) $.
      $( The reciprocal of a positive number is positive.  Exercise 4 of
         [Apostol] p. 21.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      recgt0d $p |- ( ph -> 0 < ( 1 / A ) ) $=
        ( cr wcel cc0 clt wbr c1 cdiv co recgt0 syl2anc ) ABEFGBHIGJBKLHICDBMN
        $.
    $}

    divgt0d.2 $e |- ( ph -> B e. RR ) $.
    ${
      divgt0d.3 $e |- ( ph -> 0 < A ) $.
      divgt0d.4 $e |- ( ph -> 0 < B ) $.
      $( The ratio of two positive numbers is positive.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      divgt0d $p |- ( ph -> 0 < ( A / B ) ) $=
        ( cr wcel cc0 clt wbr cdiv co divgt0 syl22anc ) ABHIJBKLCHIJCKLJBCMNKLD
        FEGBCOP $.
    $}

    ${
      mulgt1d.3 $e |- ( ph -> 1 < A ) $.
      mulgt1d.4 $e |- ( ph -> 1 < B ) $.
      $( The product of two numbers greater than 1 is greater than 1.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      mulgt1d $p |- ( ph -> 1 < ( A x. B ) ) $=
        ( cr wcel c1 clt wbr cmul co mulgt1 syl22anc ) ABHICHIJBKLJCKLJBCMNKLDE
        FGBCOP $.
    $}

    ${
      lemulge11d.3 $e |- ( ph -> 0 <_ A ) $.
      lemulge11d.4 $e |- ( ph -> 1 <_ B ) $.
      $( Multiplication by a number greater than or equal to 1.  (Contributed
         by Mario Carneiro, 28-May-2016.) $)
      lemulge11d $p |- ( ph -> A <_ ( A x. B ) ) $=
        ( cr wcel cc0 cle wbr c1 cmul co lemulge11 syl22anc ) ABHICHIJBKLMCKLBB
        CNOKLDEFGBCPQ $.

      $( Multiplication by a number greater than or equal to 1.  (Contributed
         by Mario Carneiro, 28-May-2016.) $)
      lemulge12d $p |- ( ph -> A <_ ( B x. A ) ) $=
        ( cr wcel cc0 cle wbr c1 cmul co lemulge12 syl22anc ) ABHICHIJBKLMCKLBC
        BNOKLDEFGBCPQ $.
    $}

    lemul1ad.3 $e |- ( ph -> C e. RR ) $.
    ${
      lemul1ad.4 $e |- ( ph -> 0 <_ C ) $.
      lemul1ad.5 $e |- ( ph -> A <_ B ) $.
      $( Multiplication of both sides of 'less than or equal to' by a
         nonnegative number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      lemul1ad $p |- ( ph -> ( A x. C ) <_ ( B x. C ) ) $=
        ( cr wcel cc0 cle wbr wa cmul co jca lemul1a syl31anc ) ABJKCJKDJKZLDMN
        ZOBCMNBDPQCDPQMNEFAUAUBGHRIBCDST $.

      $( Multiplication of both sides of 'less than or equal to' by a
         nonnegative number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      lemul2ad $p |- ( ph -> ( C x. A ) <_ ( C x. B ) ) $=
        ( cr wcel cc0 cle wbr wa cmul co jca lemul2a syl31anc ) ABJKCJKDJKZLDMN
        ZOBCMNDBPQDCPQMNEFAUAUBGHRIBCDST $.
    $}

    ltmul12ad.3 $e |- ( ph -> D e. RR ) $.
    ${
      ltmul12ad.4 $e |- ( ph -> 0 <_ A ) $.
      ltmul12ad.5 $e |- ( ph -> A < B ) $.
      ltmul12ad.6 $e |- ( ph -> 0 <_ C ) $.
      ltmul12ad.7 $e |- ( ph -> C < D ) $.
      $( Comparison of product of two positive numbers.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      ltmul12ad $p |- ( ph -> ( A x. C ) < ( B x. D ) ) $=
        ( cr wcel wa cc0 wbr clt jca cle cmul co ltmul12a syl22anc ) ABNOZCNOZP
        QBUARZBCSRZPDNOZENOZPQDUARZDESRZPBDUBUCCEUBUCSRAUFUGFGTAUHUIJKTAUJUKHIT
        AULUMLMTBCDEUDUE $.
    $}

    ${
      lemul12ad.4 $e |- ( ph -> 0 <_ A ) $.
      lemul12ad.5 $e |- ( ph -> 0 <_ C ) $.
      lemul12ad.6 $e |- ( ph -> A <_ B ) $.
      lemul12ad.7 $e |- ( ph -> C <_ D ) $.
      $( Comparison of product of two nonnegative numbers.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      lemul12ad $p |- ( ph -> ( A x. C ) <_ ( B x. D ) ) $=
        ( cle wbr cmul co cr wcel wa cc0 wi jca lemul12a syl22anc mp2and ) ABCN
        OZDENOZBDPQCEPQNOZLMABRSZUABNOZTCRSDRSZUADNOZTERSUGUHTUIUBAUJUKFJUCGAUL
        UMHKUCIBCDEUDUEUF $.
    $}

    ${
      lemul12bd.4 $e |- ( ph -> 0 <_ A ) $.
      lemul12bd.5 $e |- ( ph -> 0 <_ D ) $.
      lemul12bd.6 $e |- ( ph -> A <_ B ) $.
      lemul12bd.7 $e |- ( ph -> C <_ D ) $.
      $( Comparison of product of two nonnegative numbers.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      lemul12bd $p |- ( ph -> ( A x. C ) <_ ( B x. D ) ) $=
        ( cle wbr cmul co cr wcel wa cc0 wi jca lemul12b syl22anc mp2and ) ABCN
        OZDENOZBDPQCEPQNOZLMABRSZUABNOZTCRSDRSERSZUAENOZTUGUHTUIUBAUJUKFJUCGHAU
        LUMIKUCBCDEUDUEUF $.
    $}
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Imaginary and complex number properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The real representation of complex numbers is apart from zero iff one of
     its terms is apart from zero.  (Contributed by Jim Kingdon,
     5-Mar-2020.) $)
  crap0 $p |- ( ( A e. RR /\ B e. RR ) ->
      ( ( A # 0 \/ B # 0 ) <-> ( A + ( _i x. B ) ) # 0 ) ) $=
    ( ci cmul co caddc cc0 cap wbr cr wcel wa ax-icn mul01i oveq2i eqtri breq2i
    wo 00id 0re wb apreim mpanr12 syl5rbbr ) ACBDEFEZGHIUEGCGDEZFEZHIZAJKBJKLZA
    GHIBGHIRZUGGUEHUGGGFEGUFGGFCMNOSPQUIGJKZUKUHUJUATTABGGUBUCUD $.

  ${
    $d x y z w A $.
    $( The real part of a complex number is unique.  Proposition 10-1.3 of
       [Gleason] p. 130.  (Contributed by NM, 9-May-1999.)  (Proof shortened by
       Mario Carneiro, 27-May-2016.) $)
    creur $p |- ( A e. CC -> E! x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $=
      ( vz vw cc wcel cv ci cmul co caddc wceq cr wrex wreu cnre wa wb wral cru
      ancoms eqcom ancom 3bitr4g anassrs rexbidva biidd ceqsrexv ad2antlr bitrd
      ralrimiva reu6i syldan eqeq1 rexbidv reubidv syl5ibrcom rexlimivv syl ) C
      FGCDHZIEHZJKLKZMZENODNOCAHZIBHZJKLKZMZBNOZANPZDECQVDVJDENNVANGZVBNGZRZVJV
      DVCVGMZBNOZANPZVKVLVOVEVAMZSZANTVPVMVRANVMVENGZRZVOVFVBMZVQRZBNOZVQVTVNWB
      BNVMVSVFNGZVNWBSVMVSWDRZRVGVCMZVQWARZVNWBWEVMWFWGSVEVFVAVBUAUBVCVGUCWAVQU
      DUEUFUGVLWCVQSVKVSVQVQBVBNWAVQUHUIUJUKULVOANVAUMUNVDVIVOANVDVHVNBNCVCVGUO
      UPUQURUSUT $.

    $( The imaginary part of a complex number is unique.  Proposition 10-1.3 of
       [Gleason] p. 130.  (Contributed by NM, 9-May-1999.)  (Proof shortened by
       Mario Carneiro, 27-May-2016.) $)
    creui $p |- ( A e. CC -> E! y e. RR E. x e. RR A = ( x + ( _i x. y ) ) ) $=
      ( vz vw cc wcel cv ci cmul co caddc wceq cr wrex wreu cnre wa wb wral cru
      simpr eqcom ancoms syl5bb anass1rs rexbidva biidd ceqsrexv ad2antrr bitrd
      ralrimiva reu6i syl2anc eqeq1 rexbidv reubidv syl5ibrcom rexlimivv syl )
      CFGCDHZIEHZJKLKZMZENODNOCAHZIBHZJKLKZMZANOZBNPZDECQVDVJDENNVANGZVBNGZRZVJ
      VDVCVGMZANOZBNPZVMVLVOVFVBMZSZBNTVPVKVLUBVMVRBNVMVFNGZRZVOVEVAMZVQRZANOZV
      QVTVNWBANVMVENGZVSVNWBSVNVGVCMZVMWDVSRZRWBVCVGUCWFVMWEWBSVEVFVAVBUAUDUEUF
      UGVKWCVQSVLVSVQVQAVANWAVQUHUIUJUKULVOBNVBUMUNVDVIVOBNVDVHVNANCVCVGUOUPUQU
      RUSUT $.
  $}

  ${
    $d x y z A $.
    $( The complex conjugate of a complex number is unique.  (Contributed by
       Mario Carneiro, 6-Nov-2013.) $)
    cju $p |- ( A e. CC -> E! x e. CC
               ( ( A + x ) e. RR /\ ( _i x. ( A - x ) ) e. RR ) ) $=
      ( vy vz cc wcel cv caddc co cr ci cmin cmul wrex wceq ax-icn oveq2d oveq2
      wa eleq1d wi wral wreu cnre recn mulcl sylancr subcl syl2an adantr adantl
      ppncand readdcl anidms eqeltrd pnncand a1i adddid eqtr4d addcld mulass c1
      mp3an12 syl cneg ixi 1re renegcli eqeltri readdcld remulcl anbi12d rspcev
      simpr syl12anc rexbidv syl5ibrcom rexlimivv an4 cc0 resubcl pnpcan syl5ib
      ancoms adantrl adantrr subdid nnncan1 3com23 eqtr3d anim12d subeq0 biimpd
      oveq1 3expb rimul 3syld syl5bi ralrimivva reu4 sylanbrc ) BEFZBAGZHIZJFZK
      BXCLIZMIZJFZSZAENZXIBCGZHIZJFZKBXKLIZMIZJFZSZSZXCXKOZUAZCEUBAEUBXIAEUCXBB
      XKKDGZMIZHIZOZDJNCJNXJCDBUDYDXJCDJJXKJFZYAJFZSZXJYDYCXCHIZJFZKYCXCLIZMIZJ
      FZSZAENZYGXKYBLIZEFZYCYOHIZJFZKYCYOLIZMIZJFZYNYEXKEFZYBEFZYPYFXKUEZYFKEFZ
      YAEFZUUCPYAUEZKYAUFUGZXKYBUHUIYGYQXKXKHIZJYGXKYBXKYEUUBYFUUDUJZYFUUCYEUUH
      UKZUUJULYEUUIJFZYFYEUULXKXKUMUNUJUOYGYTKKMIZYAYAHIZMIZJYGYTKKUUNMIZMIZUUO
      YGYSUUPKMYGYSYBYBHIUUPYGXKYBYBUUJUUKUUKUPYGKYAYAUUEYGPUQYFUUFYEUUGUKZUURU
      RUSQYGUUNEFZUUOUUQOZYGYAYAUURUURUTUUEUUEUUSUUTPPKKUUNVAVCVDUSYGUUMJFUUNJF
      UUOJFUUMVBVEJVFVBVGVHVIYGYAYAYEYFVNZUVAVJUUMUUNVKUGUOYMYRUUASAYOEXCYOOZYI
      YRYLUUAUVBYHYQJXCYOYCHRTUVBYKYTJUVBYJYSKMXCYOYCLRQTVLVMVOYDXIYMAEYDXEYIXH
      YLYDXDYHJBYCXCHWNTYDXGYKJYDXFYJKMBYCXCLWNQTVLVPVQVRVDXBXTACEEXRXEXMSZXHXP
      SZSZXBXCEFZUUBSZSZXSXEXHXMXPVSUVHUVEXCXKLIZJFZKUVIMIZJFZSZUVIVTOZXSUVHUVC
      UVJUVDUVLUVCXDXLLIZJFUVHUVJXDXLWAUVHUVOUVIJXBUVFUUBUVOUVIOBXCXKWBWOTWCUVD
      XOXGLIZJFZUVHUVLXPXHUVQXOXGWAWDUVHUVPUVKJUVHKXNXFLIZMIUVPUVKUVHKXNXFUUEUV
      HPUQXBUUBXNEFUVFBXKUHWEXBUVFXFEFUUBBXCUHWFWGUVHUVRUVIKMXBUVFUUBUVRUVIOZXB
      UUBUVFUVSBXKXCWHWIWOQWJTWCWKUVMUVNUAUVHUVIWPUQUVGUVNXSUAXBUVGUVNXSXCXKWLW
      MUKWQWRWSXIXQACEXSXEXMXHXPXSXDXLJXCXKBHRTXSXGXOJXSXFXNKMXCXKBLRQTVLWTXA
      $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
        Integer sets
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Positive integers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c NN $. $( The set of positive integers (blackboard bold N). $)

  $( Extend class notation to include the class of positive integers. $)
  cn $a class NN $.

  ${
    $d x y z A $.
    $( Definition of the set of positive integers.  For naming consistency with
       the Metamath Proof Explorer usages should refer to ~ dfnn2 instead.
       (Contributed by Jeff Hankins, 12-Sep-2013.)  (Revised by Mario Carneiro,
       3-May-2014.)  (New usage is discouraged.) $)
    df-inn $a |- NN = |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $.

    $( Definition of the set of positive integers.  Another name for
       ~ df-inn .  (Contributed by Jeff Hankins, 12-Sep-2013.)  (Revised by
       Mario Carneiro, 3-May-2014.) $)
    dfnn2 $p |- NN = |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $=
      ( df-inn ) ABC $.
  $}

  ${
    $d n x y z A $.
    $( Peano's inductive postulate.  Theorem I.36 (principle of mathematical
       induction) of [Apostol] p. 34.  (Contributed by NM, 10-Jan-1997.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    peano5nni $p |- ( ( 1 e. A /\ A. x e. A ( x + 1 ) e. A ) -> NN C_ A ) $=
      ( vy c1 wcel cv caddc co wral wa cn cr cin wss elin ax-mp syl cvv eleq2
      wi 1re biimpri mpan2 inss1 ssralv inss2 1red readdcld simplbi2com ralimia
      sseli reex inex2 wceq raleqbi1dv anbi12d elabg cint dfnn2 intss1 syl5eqss
      cab syl6bir syl2an syl6ss ) DBEZAFZDGHZBEZABIZJKBLMZBVFDVKEZVHVKEZAVKIZKV
      KNZVJVFDLEZVLUAVLVFVPJDBLOUBUCVJVIAVKIZVNVKBNVJVQTBLUDZVIAVKBUEPVIVMAVKVG
      VKEZVHLEZVIVMTVSVGDVKLVGBLUFUKVSUGUHVMVIVTVHBLOUIQUJQVKREZVLVNJZVOTLBULUM
      WAWBVKDCFZEZVHWCEZAWCIZJZCVBZEZVOWGWBCVKRWCVKUNWDVLWFVNWCVKDSWEVMAWCVKWCV
      KVHSUOUPUQWIKWHURVKCAUSVKWHUTVAVCPVDVRVE $.
  $}

  $( The positive integers are a subset of the reals.  (Contributed by NM,
     10-Jan-1997.)  (Revised by Mario Carneiro, 16-Jun-2013.) $)
  nnssre $p |- NN C_ RR $=
    ( vx c1 cr wcel cv caddc co wral cn wss 1re peano2re rgen peano5nni mp2an )
    BCDAEZBFGCDZACHICJKQACPLMACNO $.

  $( The positive integers are a subset of the complex numbers.  (Contributed
     by NM, 2-Aug-2004.) $)
  nnsscn $p |- NN C_ CC $=
    ( cn cr cc nnssre ax-resscn sstri ) ABCDEF $.

  $( The set of positive integers exists.  (Contributed by NM, 3-Oct-1999.)
     (Revised by Mario Carneiro, 17-Nov-2014.) $)
  nnex $p |- NN e. _V $=
    ( cn cc cnex nnsscn ssexi ) ABCDE $.

  $( A positive integer is a real number.  (Contributed by NM, 18-Aug-1999.) $)
  nnre $p |- ( A e. NN -> A e. RR ) $=
    ( cn cr nnssre sseli ) BCADE $.

  $( A positive integer is a complex number.  (Contributed by NM,
     18-Aug-1999.) $)
  nncn $p |- ( A e. NN -> A e. CC ) $=
    ( cn cc nnsscn sseli ) BCADE $.

  ${
    nnre.1 $e |- A e. NN $.
    $( A positive integer is a real number.  (Contributed by NM,
       18-Aug-1999.) $)
    nnrei $p |- A e. RR $=
      ( cn wcel cr nnre ax-mp ) ACDAEDBAFG $.

    $( A positive integer is a complex number.  (Contributed by NM,
       18-Aug-1999.) $)
    nncni $p |- A e. CC $=
      ( nnrei recni ) AABCD $.
  $}

  ${
    $d x y z A $.
    $( Peano postulate: 1 is a positive integer.  (Contributed by NM,
       11-Jan-1997.) $)
    1nn $p |- 1 e. NN $=
      ( vz vx vy c1 cn wcel cv caddc co wral wa cab cint dfnn2 eleq2i cr wb 1re
      elintg eleq2 ax-mp bitri vex weq raleqbi1dv anbi12d elab simplbi mprgbir
      ) DEFZDAGZFZADBGZFZCGDHIZUMFZCUMJZKZBLZUJDUSMZFZULAUSJZEUTDBCNODPFVAVBQRA
      DUSPSUAUBUKUSFULUOUKFZCUKJZURULVDKBUKAUCBAUDUNULUQVDUMUKDTUPVCCUMUKUMUKUO
      TUEUFUGUHUI $.

    $( Peano postulate: a successor of a positive integer is a positive
       integer.  (Contributed by NM, 11-Jan-1997.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    peano2nn $p |- ( A e. NN -> ( A + 1 ) e. NN ) $=
      ( vz vx vy cn wcel c1 caddc co cv wral wa eleq2i elintg syl5bb wceq eleq2
      cab syl cr cint dfnn2 ibi vex raleqbi1dv anbi12d elab oveq1 eleq1d rspcva
      simprbi sylan2 expcom ralimia wb nnre 1red readdcld mpbird ) AEFZAGHIZEFZ
      VABJZFZBGCJZFZDJZGHIZVEFZDVEKZLZCRZKZUTAVCFZBVLKZVMUTVOUTAVLUAZFUTVOEVPAC
      DUBZMBAVLENOUCVNVDBVLVNVCVLFZVDVRVNVHVCFZDVCKZVDVRGVCFZVTVKWAVTLCVCBUDVEV
      CPVFWAVJVTVEVCGQVIVSDVEVCVEVCVHQUEUFUGUKVSVDDAVCVGAPVHVAVCVGAGHUHUIUJULUM
      UNSUTVATFZVBVMUOUTAGAUPUTUQURVBVAVPFWBVMEVPVAVQMBVAVLTNOSUS $.
  $}

  ${
    nnred.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is a real number.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnred $p |- ( ph -> A e. RR ) $=
      ( cn cr nnssre sseldi ) ADEBFCG $.

    $( A positive integer is a complex number.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nncnd $p |- ( ph -> A e. CC ) $=
      ( cn cc nnsscn sseldi ) ADEBFCG $.

    $( Peano postulate: a successor of a positive integer is a positive
       integer.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    peano2nnd $p |- ( ph -> ( A + 1 ) e. NN ) $=
      ( cn wcel c1 caddc co peano2nn syl ) ABDEBFGHDECBIJ $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Principle of mathematical induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Substitutions. $)
    nnind.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    nnind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nnind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nnind.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    nnind.5 $e |- ps $.
    $( Induction step. $)
    nnind.6 $e |- ( y e. NN -> ( ch -> th ) ) $.
    $( Principle of Mathematical Induction (inference schema).  The first four
       hypotheses give us the substitution instances we need; the last two are
       the basis and the induction step.  See ~ nnaddcl for an example of its
       use.  This is an alternative for Metamath 100 proof #74.  (Contributed
       by NM, 10-Jan-1997.)  (Revised by Mario Carneiro, 16-Jun-2013.) $)
    nnind $p |- ( A e. NN -> ta ) $=
      ( cn wcel crab wa c1 elrab cv caddc wral wss 1nn mpbir2an elrabi peano2nn
      co a1d anim12d 3imtr4g mpcom rgen peano5nni mp2an sseli sylib simprd ) HO
      PZUTEUTHAFOQZPUTEROVAHSVAPZGUAZSUBUIZVAPZGVAUCOVAUDVBSOPBUEMABFSOITUFVEGV
      AVCOPZVCVAPZVEAFVCOUGVFVFCRVDOPZDRVGVEVFVFVHCDVFVHVFVCUHUJNUKACFVCOJTADFV
      DOKTULUMUNGVAUOUPUQAEFHOLTURUS $.
  $}

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Induction step. $)
    nnindALT.6 $e |- ( y e. NN -> ( ch -> th ) ) $.
    $( Basis. $)
    nnindALT.5 $e |- ps $.
    $( Substitutions. $)
    nnindALT.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    nnindALT.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nnindALT.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nnindALT.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Principle of Mathematical Induction (inference schema).  The last four
       hypotheses give us the substitution instances we need; the first two are
       the induction step and the basis.

       This ALT version of ~ nnind has a different hypothesis order.  It may be
       easier to use with the metamath program's Proof Assistant, because
       "MM-PA> assign last" will be applied to the substitution instances
       first.  We may eventually use this one as the official version.  You may
       use either version.  After the proof is complete, the ALT version can be
       changed to the non-ALT version with "MM-PA> minimize nnind /allow".
       (Contributed by NM, 7-Dec-2005.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nnindALT $p |- ( A e. NN -> ta ) $=
      ( nnind ) ABCDEFGHKLMNJIO $.
  $}

  ${
    $d x y A $.
    $( Every positive integer is one or a successor.  (Contributed by Mario
       Carneiro, 16-May-2014.) $)
    nn1m1nn $p |- ( A e. NN -> ( A = 1 \/ ( A - 1 ) e. NN ) ) $=
      ( vx vy cv c1 wceq cmin co cn wcel wo caddc orc 1cnd eqeq1 eleq1d orbi12d
      cc oveq1 ax-1cn 2thd nncn pncan sylancl id eqeltrd olcd a1d nnind ) BDZEF
      ZUJEGHZIJZKZERJZCDZEFZUPEGHZIJZKZUPELHZEFZVAEGHZIJZKZAEFZAEGHZIJZKBCAUKUN
      UOUKUMMUKNUAUJUPFZUKUQUMUSUJUPEOVIULURIUJUPEGSPQUJVAFZUKVBUMVDUJVAEOVJULV
      CIUJVAEGSPQUJAFZUKVFUMVHUJAEOVKULVGIUJAEGSPQTUPIJZVEUTVLVDVBVLVCUPIVLUPRJ
      UOVCUPFUPUBTUPEUCUDVLUEUFUGUHUI $.
  $}

  ${
    $d x y z $.  $d x y z A $.  $d x ps $.  $d x ch $.  $d x z th $.
    $d y z ph $.
    $( Substitutions. $)
    nn1suc.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    nn1suc.3 $e |- ( x = ( y + 1 ) -> ( ph <-> ch ) ) $.
    nn1suc.4 $e |- ( x = A -> ( ph <-> th ) ) $.
    $( Hypothesis showing it holds for 1. $)
    nn1suc.5 $e |- ps $.
    $( Hypothesis showing it holds for a successor. $)
    nn1suc.6 $e |- ( y e. NN -> ch ) $.
    $( If a statement holds for 1 and also holds for a successor, it holds for
       all positive integers.  The first three hypotheses give us the
       substitution instances we need; the last two show that it holds for 1
       and for a successor.  (Contributed by NM, 11-Oct-2004.)  (Revised by
       Mario Carneiro, 16-May-2014.) $)
    nn1suc $p |- ( A e. NN -> th ) $=
      ( cn wcel c1 wceq co wsbc wb caddc cmin 1ex sbcie mpbir 1nn mpbiri sbcieg
      wi eleq1 syl dfsbcq bitr3d cv elisset wa pm5.32ri adantr cr nnre peano2re
      a1i 3syl oveq1 sbceq1d adantl mpbid sylbir exlimddv cc nncn npcan sylancl
      ax-1cn bitrd syl5ib nn1m1nn mpjaod ) GMNZGOPZDGOUAQZMNZVSDUHVRVSDAEORZWBB
      KABEOUBHUCUDVSAEGRZDWBVSVRWCDSVSVROMNUEGOMUIUFADEGMJUGZUJAEGOUKULUFVAWAAE
      VTOTQZRZVRDWAFUMZVTPZWFFFVTMUNWAWHUOWGMNZWHUOZWFWHWIWAWGVTMUIUPWJCWFWICWH
      LUQWJAEWGOTQZRZCWFWIWLCSZWHWIWGURNWKURNWMWGUSWGUTACEWKURIUGVBUQWHWLWFSWIW
      HAEWKWEWGVTOTVCVDVEULVFVGVHVRWFWCDVRAEWEGVRGVINOVINWEGPGVJVMGOVKVLVDWDVNV
      OGVPVQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Closure of addition of positive integers, proved by induction on the
       second addend.  (Contributed by NM, 12-Jan-1997.) $)
    nnaddcl $p |- ( ( A e. NN /\ B e. NN ) -> ( A + B ) e. NN ) $=
      ( vx vy cn wcel caddc co cv wi c1 wceq oveq2 eleq1d imbi2d peano2nn wa cc
      nncn ax-1cn addass mp3an3 syl2an syl5ib expcom a2d nnind impcom ) BEFAEFZ
      ABGHZEFZUIACIZGHZEFZJUIAKGHZEFZJUIADIZGHZEFZJUIAUQKGHZGHZEFZJUIUKJCDBULKL
      ZUNUPUIVCUMUOEULKAGMNOULUQLZUNUSUIVDUMUREULUQAGMNOULUTLZUNVBUIVEUMVAEULUT
      AGMNOULBLZUNUKUIVFUMUJEULBAGMNOAPUQEFZUIUSVBUIVGUSVBJUSURKGHZEFUIVGQZVBUR
      PVIVHVAEUIARFZUQRFZVHVALZVGASUQSVJVKKRFVLTAUQKUAUBUCNUDUEUFUGUH $.

    $( Closure of multiplication of positive integers.  (Contributed by NM,
       12-Jan-1997.) $)
    nnmulcl $p |- ( ( A e. NN /\ B e. NN ) -> ( A x. B ) e. NN ) $=
      ( vx vy cn wcel cmul co cv wi c1 caddc wceq oveq2 eleq1d imbi2d cc mulid1
      nncn wa biimprd nnaddcl ancoms ax-1cn mp3an3 oveq2d adantr syl2an syl5ibr
      mpcom adddi eqtrd exp4b pm2.43b a2d nnind impcom ) BEFAEFZABGHZEFZURACIZG
      HZEFZJURAKGHZEFZJURADIZGHZEFZJURAVFKLHZGHZEFZJURUTJCDBVAKMZVCVEURVLVBVDEV
      AKAGNOPVAVFMZVCVHURVMVBVGEVAVFAGNOPVAVIMZVCVKURVNVBVJEVAVIAGNOPVABMZVCUTU
      RVOVBUSEVABAGNOPAQFZURVEASZVPVEURVPVDAEARZOUAUJVFEFZURVHVKVSURVHVKJURVSUR
      VHVKURVHTVKURVSTZVGALHZEFZVHURWBVGAUBUCVTVJWAEURVPVFQFZVJWAMVSVQVFSVPWCTV
      JVGVDLHZWAVPWCKQFVJWDMUDAVFKUKUEVPWDWAMWCVPVDAVGLVRUFUGULUHOUIUMUNUOUPUQ
      $.
  $}

  ${
    nnmulcli.1 $e |- A e. NN $.
    nnmulcli.2 $e |- B e. NN $.
    $( Closure of multiplication of positive integers.  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    nnmulcli $p |- ( A x. B ) e. NN $=
      ( cn wcel cmul co nnmulcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  ${
    $d x y A $.
    $( A positive integer is one or greater.  (Contributed by NM,
       25-Aug-1999.) $)
    nnge1 $p |- ( A e. NN -> 1 <_ A ) $=
      ( vx vy c1 cv cle wbr caddc co breq2 wcel cr wi cc0 clt wn 0re 1re lenlt
      wb 1le1 cn nnre recn addid1d breq2d 0lt1 axltadd mp3an12 wa readdcl mpan2
      mpi peano2re mp3an3 syl2anc mpand con3d sylancr 3imtr4d sylbird syl nnind
      lttr ) DBEZFGDDFGDCEZFGZDVFDHIZFGZDAFGBCAVEDDFJVEVFDFJVEVHDFJVEADFJUAVFUB
      KVFLKZVGVIMVFUCVJVGDVFNHIZFGZVIVJVKVFDFVJVFVFUDUEUFVJVKDOGZPZVHDOGZPZVLVI
      VJVOVMVJVKVHOGZVOVMVJNDOGZVQUGNLKZDLKZVJVRVQMQRNDVFUHUIUMVJVKLKZVHLKZVQVO
      UJVMMZVJVSWAQVFNUKULZVFUNZWAWBVTWCRVKVHDVDUOUPUQURVJVTWAVLVNTRWDDVKSUSVJV
      TWBVIVPTRWEDVHSUSUTVAVBVC $.
  $}

  $( A positive integer is less than or equal to one iff it is equal to one.
     (Contributed by NM, 3-Apr-2005.) $)
  nnle1eq1 $p |- ( A e. NN -> ( A <_ 1 <-> A = 1 ) ) $=
    ( cn wcel c1 cle wbr wa wceq nnge1 biantrud cr wb 1re letri3 sylancl bitr4d
    nnre ) ABCZADEFZSDAEFZGZADHZRTSAIJRAKCDKCUBUALAQMADNOP $.

  $( A positive integer is positive.  (Contributed by NM, 26-Sep-1999.) $)
  nngt0 $p |- ( A e. NN -> 0 < A ) $=
    ( cn wcel cr c1 cle wbr cc0 clt nnre nnge1 0lt1 wa wi 0re 1re mp3an12 mpani
    ltletr sylc ) ABCADCZEAFGZHAIGZAJAKUAHEIGZUBUCLHDCEDCUAUDUBMUCNOPHEASQRT $.

  $( A positive integer is not less than one.  (Contributed by NM,
     18-Jan-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  nnnlt1 $p |- ( A e. NN -> -. A < 1 ) $=
    ( cn wcel c1 cle wbr clt wn nnge1 cr wb 1re nnre lenlt sylancr mpbid ) ABCZ
    DAEFZADGFHZAIQDJCAJCRSKLAMDANOP $.

  $( Zero is not a positive integer.  (Contributed by NM, 25-Aug-1999.) $)
  0nnn $p |- -. 0 e. NN $=
    ( cc0 cn wcel c1 clt wbr 0lt1 nnnlt1 mt2 ) ABCADEFGAHI $.

  $( A positive integer is nonzero.  (Contributed by NM, 27-Sep-1999.) $)
  nnne0 $p |- ( A e. NN -> A =/= 0 ) $=
    ( cn wcel cc0 wceq 0nnn eleq1 mtbiri necon2ai ) ABCZADADEJDBCFADBGHI $.

  $( A positive integer is apart from zero.  (Contributed by Jim Kingdon,
     8-Mar-2020.) $)
  nnap0 $p |- ( A e. NN -> A # 0 ) $=
    ( cn wcel nnre nngt0 gt0ap0d ) ABCAADAEF $.

  ${
    nngt0.1 $e |- A e. NN $.
    $( A positive integer is positive (inference version).  (Contributed by NM,
       17-Sep-1999.) $)
    nngt0i $p |- 0 < A $=
      ( cn wcel cc0 clt wbr nngt0 ax-mp ) ACDEAFGBAHI $.

    $( A positive integer is nonzero (inference version).  (Contributed by NM,
       25-Aug-1999.) $)
    nnne0i $p |- A =/= 0 $=
      ( nnrei nngt0i gt0ne0ii ) AABCABDE $.
  $}

  ${
    $d x A $.  $d x B $.
    $( There exists a positive integer greater than or equal to any two
       others.  (Contributed by NM, 18-Aug-1999.) $)
    nn2ge $p |- ( ( A e. NN /\ B e. NN ) ->
                E. x e. NN ( A <_ x /\ B <_ x ) ) $=
      ( cn wcel wa caddc co cle wbr cc0 cr nnre adantl nngt0 ltled adantr mpbid
      clt breq2 cv wrex nnaddcl 0red addge01d addge02d anbi12d rspcev syl12anc
      wceq ) BDEZCDEZFZBCGHZDEBUNIJZCUNIJZBAUAZIJZCUQIJZFZADUBBCUCUMKCIJUOUMKCU
      MUDZULCLEUKCMNZULKCSJUKCONPUMBCUKBLEULBMQZVBUERUMKBIJUPUMKBVAVCUKKBSJULBO
      QPUMCBVBVCUFRUTUOUPFAUNDUQUNUJURUOUSUPUQUNBITUQUNCITUGUHUI $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( A positive integer is either one or greater than one.  This is for
       ` NN ` ; ~ 0elnn is a similar theorem for ` _om ` (the natural numbers
       as ordinals).  (Contributed by Jim Kingdon, 7-Mar-2020.) $)
    nn1gt1 $p |- ( A e. NN -> ( A = 1 \/ 1 < A ) ) $=
      ( vx vy cv c1 wceq clt wbr wo caddc co eqeq1 breq2 orbi12d eqid orci wcel
      cn cc0 cr nngt0 wb nnre 1re ltaddpos2 sylancl mpbid olcd a1d nnind ) BDZE
      FZEUKGHZIEEFZEEGHZICDZEFZEUPGHZIZUPEJKZEFZEUTGHZIZAEFZEAGHZIBCAULULUNUMUO
      UKEELUKEEGMNUKUPFULUQUMURUKUPELUKUPEGMNUKUTFULVAUMVBUKUTELUKUTEGMNUKAFULV
      DUMVEUKAELUKAEGMNUNUOEOPUPRQZVCUSVFVBVAVFSUPGHZVBUPUAVFUPTQETQVGVBUBUPUCU
      DUPEUEUFUGUHUIUJ $.

  $}

  $( A positive integer is greater than one iff it is not equal to one.
     (Contributed by NM, 7-Oct-2004.) $)
  nngt1ne1 $p |- ( A e. NN -> ( 1 < A <-> A =/= 1 ) ) $=
    ( cn wcel c1 clt wbr wne cr 1re ltne mpan wceq wn nn1gt1 ord syl5bi impbid2
    df-ne ) ABCZDAEFZADGZDHCTUAIDAJKUAADLZMSTADRSUBTANOPQ $.

  $( The quotient of a real and a positive integer is real.  (Contributed by
     NM, 28-Nov-2008.) $)
  nndivre $p |- ( ( A e. RR /\ N e. NN ) -> ( A / N ) e. RR ) $=
    ( cn wcel cr cc0 cap wbr wa cdiv co nnre nnap0 jca redivclap 3expb sylan2 )
    BCDZAEDZBEDZBFGHZIABJKEDZRTUABLBMNSTUAUBABOPQ $.

  $( The reciprocal of a positive integer is real.  (Contributed by NM,
     8-Feb-2008.) $)
  nnrecre $p |- ( N e. NN -> ( 1 / N ) e. RR ) $=
    ( c1 cr wcel cn cdiv co 1re nndivre mpan ) BCDAEDBAFGCDHBAIJ $.

  $( The reciprocal of a positive integer is positive.  (Contributed by NM,
     25-Aug-1999.) $)
  nnrecgt0 $p |- ( A e. NN -> 0 < ( 1 / A ) ) $=
    ( cn wcel c1 cle wbr cc0 cdiv co clt nnge1 0lt1 cr wa wi 0re ltletr mp3an12
    nnre 1re recgt0 ex syld syl mpani mpd ) ABCZDAEFZGDAHIJFZAKUGGDJFZUHUILUGAM
    CZUJUHNZUIOASUKULGAJFZUIGMCDMCUKULUMOPTGDAQRUKUMUIAUAUBUCUDUEUF $.

  ${
    $d z A $.  $d x y z B $.
    $( Subtraction of positive integers.  (Contributed by NM, 20-Aug-2001.)
       (Revised by Mario Carneiro, 16-May-2014.) $)
    nnsub $p |- ( ( A e. NN /\ B e. NN ) -> ( A < B <-> ( B - A ) e. NN ) ) $=
      ( vz vx cn wcel clt wbr cmin co wi wral wceq breq2 eleq1d imbi12d ralbidv
      c1 oveq1 cr vy wa cv caddc nnnlt1 pm2.21d rgen breq1 oveq2 cbvralv adantr
      cc nncn ax-1cn pncan sylancl simpl eqeltrd syl5ibrcom a1dd rspcv nnre 1re
      ltsubadd mp3an2 syl2anr subsub3 mp3an3 syl2an biimpd syl9r nn1m1nn adantl
      wb wo mpjaod ralrimdva syl5bi nnind rspcva sylan2 cc0 nngt0 posdif impbid
      syl5ibr ) AEFZBEFZUBZABGHZBAIJZEFZWHWGCUCZBGHZBWMIJZEFZKZCELZWJWLKZWMDUCZ
      GHZWTWMIJZEFZKZCELWMRGHZRWMIJZEFZKZCELWMUAUCZGHZXIWMIJZEFZKZCELZWMXIRUDJZ
      GHZXOWMIJZEFZKZCELZWRDUABWTRMZXDXHCEYAXAXEXCXGWTRWMGNYAXBXFEWTRWMISOPQWTX
      IMZXDXMCEYBXAXJXCXLWTXIWMGNYBXBXKEWTXIWMISOPQWTXOMZXDXSCEYCXAXPXCXRWTXOWM
      GNYCXBXQEWTXOWMISOPQWTBMZXDWQCEYDXAWNXCWPWTBWMGNYDXBWOEWTBWMISOPQXHCEWMEF
      ZXEXGWMUEUFUGXNWTXIGHZXIWTIJZEFZKZDELZXIEFZXTXMYICDEWMWTMZXJYFXLYHWMWTXIG
      UHYLXKYGEWMWTXIIUIOPUJYKYJXSCEYKYEUBZWMRMZYJXSKWMRIJZEFZYMYNXSYJYMYNXRXPY
      MXRYNXORIJZEFYMYQXIEYMXIULFZRULFZYQXIMYKYRYEXIUMZUKUNXIRUOUPYKYEUQURYNXQY
      QEWMRXOIUIOUSUTUTYPYJYOXIGHZXIYOIJZEFZKZYMXSYIUUDDYOEWTYOMZYFUUAYHUUCWTYO
      XIGUHUUEYGUUBEWTYOXIIUIOPVAYMUUDXSYMUUAXPUUCXRYEWMTFZXITFZUUAXPVNZYKWMVBX
      IVBUUFRTFUUGUUHVCWMRXIVDVEVFYMUUBXQEYKYRWMULFZUUBXQMZYEYTWMUMYRUUIYSUUJUN
      XIWMRVGVHVIOPVJVKYEYNYPVOYKWMVLVMVPVQVRVSWQWSCAEWMAMZWNWJWPWLWMABGUHUUKWO
      WKEWMABIUIOPVTWAWLWJWIWBWKGHZWKWCWGATFBTFWJUULVNWHAVBBVBABWDVIWFWE $.

    nnsub.1 $e |- A e. NN $.
    nnsub.2 $e |- B e. NN $.
    $( Subtraction of positive integers.  (Contributed by NM, 19-Aug-2001.) $)
    nnsubi $p |- ( A < B <-> ( B - A ) e. NN ) $=
      ( cn wcel clt wbr cmin co wb nnsub mp2an ) AEFBEFABGHBAIJEFKCDABLM $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Two ways to express " ` A ` divides ` B ` " for positive integers.
       (Contributed by NM, 3-Feb-2004.)  (Proof shortened by Mario Carneiro,
       16-May-2014.) $)
    nndiv $p |- ( ( A e. NN /\ B e. NN ) ->
                ( E. x e. NN ( A x. x ) = B <-> ( B / A ) e. NN ) ) $=
      ( cdiv co cn wcel cv wceq wrex cmul risset eqcom ad2antlr ad2antrr adantl
      wa cc nncn cc0 cap wbr nnap0 divmulapd syl5bb rexbidva syl5rbb ) CBDEZFGA
      HZUHIZAFJBFGZCFGZQZBUIKECIZAFJAUHFLUMUJUNAFUJUHUIIUMUIFGZQZUNUIUHMUPCBUIU
      LCRGUKUOCSNUKBRGULUOBSOUOUIRGUMUISPUKBTUAUBULUOBUCOUDUEUFUG $.
  $}

  $( Transitive property of divisibility: if ` A ` divides ` B ` and ` B `
     divides ` C ` , then ` A ` divides ` C ` .  Typically, ` C ` would be an
     integer, although the theorem holds for complex ` C ` .  (Contributed by
     NM, 3-May-2005.) $)
  nndivtr $p |- ( ( ( A e. NN /\ B e. NN /\ C e. CC ) /\
               ( ( B / A ) e. NN /\ ( C / B ) e. NN ) ) -> ( C / A ) e. NN ) $=
    ( cn wcel cc w3a cdiv co wa cmul cc0 cap wbr wceq nncn 3ad2ant2 nnap0 jca
    c1 nnmulcl simp3 3ad2ant1 divmul24ap syl22anc dividapd oveq1d divclap 3expb
    sylan2 ancoms mulid2d 3adant2 3eqtrd eleq1d syl5ib imp ) ADEZBDEZCFEZGZBAHI
    ZDECBHIZDEJZCAHIZDEZVDVBVCKIZDEVAVFVBVCUAVAVGVEDVAVGBBHIZVEKIZTVEKIZVEVABFE
    ZUTAFEZALMNZJZVKBLMNZJZVGVIOUSURVKUTBPZQURUSUTUBURUSVNUTURVLVMAPARSZUCUSURV
    PUTUSVKVOVQBRZSQBCABUDUEUSURVIVJOUTUSVHTVEKUSBVQVSUFUGQURUTVJVEOUSURUTJVEUT
    URVEFEZURUTVNVTVRUTVLVMVTCAUHUIUJUKULUMUNUOUPUQ $.

  ${
    nnge1d.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is one or greater.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnge1d $p |- ( ph -> 1 <_ A ) $=
      ( cn wcel c1 cle wbr nnge1 syl ) ABDEFBGHCBIJ $.

    $( A positive integer is positive.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nngt0d $p |- ( ph -> 0 < A ) $=
      ( cn wcel cc0 clt wbr nngt0 syl ) ABDEFBGHCBIJ $.

    $( A positive integer is nonzero.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnne0d $p |- ( ph -> A =/= 0 ) $=
      ( cn wcel cc0 wne nnne0 syl ) ABDEBFGCBHI $.

    $( The reciprocal of a positive integer is real.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnrecred $p |- ( ph -> ( 1 / A ) e. RR ) $=
      ( cn wcel c1 cdiv co cr nnrecre syl ) ABDEFBGHIECBJK $.

    nnmulcld.2 $e |- ( ph -> B e. NN ) $.
    $( Closure of addition of positive integers.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnaddcld $p |- ( ph -> ( A + B ) e. NN ) $=
      ( cn wcel caddc co nnaddcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of multiplication of positive integers.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnmulcld $p |- ( ph -> ( A x. B ) e. NN ) $=
      ( cn wcel cmul co nnmulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  ${
    nndivred.1 $e |- ( ph -> A e. RR ) $.
    nndivred.2 $e |- ( ph -> B e. NN ) $.
    $( A positive integer is one or greater.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nndivred $p |- ( ph -> ( A / B ) e. RR ) $=
      ( cr wcel cn cdiv co nndivre syl2anc ) ABFGCHGBCIJFGDEBCKL $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Decimal representation of numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Note that the numbers 0 and 1 are constants defined as primitives of the
  complex number axiom system (see ~ df-0 and ~ df-1 ).

  Only the digits 0 through 9 ( ~ df-0 through ~ df-9 ) and the
  number 10 ( ~ df-10 ) are explicitly defined.

  Most abstract math rarely requires numbers larger than 4.  Even in Wiles'
  proof of Fermat's Last Theorem, the largest number used appears to be 12.

$)

  $c 2 $. $( The decimal number 2 $)
  $c 3 $. $( The decimal number 3 $)
  $c 4 $. $( The decimal number 4 $)
  $c 5 $. $( The decimal number 5 $)
  $c 6 $. $( The decimal number 6 $)
  $c 7 $. $( The decimal number 7 $)
  $c 8 $. $( The decimal number 8 $)
  $c 9 $. $( The decimal number 9 $)
  $c 10 $. $( The decimal number 10 $)

  $( Extend class notation to include the number 2. $)
  c2 $a class 2 $.
  $( Extend class notation to include the number 3. $)
  c3 $a class 3 $.
  $( Extend class notation to include the number 4. $)
  c4 $a class 4 $.
  $( Extend class notation to include the number 5. $)
  c5 $a class 5 $.
  $( Extend class notation to include the number 6. $)
  c6 $a class 6 $.
  $( Extend class notation to include the number 7. $)
  c7 $a class 7 $.
  $( Extend class notation to include the number 8. $)
  c8 $a class 8 $.
  $( Extend class notation to include the number 9. $)
  c9 $a class 9 $.
  $( Extend class notation to include the number 10. $)
  c10 $a class 10 $.

  $( Define the number 2.  (Contributed by NM, 27-May-1999.) $)
  df-2 $a |- 2 = ( 1 + 1 ) $.

  $( Define the number 3.  (Contributed by NM, 27-May-1999.) $)
  df-3 $a |- 3 = ( 2 + 1 ) $.
  $( Define the number 4.  (Contributed by NM, 27-May-1999.) $)
  df-4 $a |- 4 = ( 3 + 1 ) $.
  $( Define the number 5.  (Contributed by NM, 27-May-1999.) $)
  df-5 $a |- 5 = ( 4 + 1 ) $.
  $( Define the number 6.  (Contributed by NM, 27-May-1999.) $)
  df-6 $a |- 6 = ( 5 + 1 ) $.
  $( Define the number 7.  (Contributed by NM, 27-May-1999.) $)
  df-7 $a |- 7 = ( 6 + 1 ) $.
  $( Define the number 8.  (Contributed by NM, 27-May-1999.) $)
  df-8 $a |- 8 = ( 7 + 1 ) $.
  $( Define the number 9.  (Contributed by NM, 27-May-1999.) $)
  df-9 $a |- 9 = ( 8 + 1 ) $.
  $( Define the number 10.  See remarks under ~ df-2 .  (Contributed by NM,
     5-Feb-2007.) $)
  df-10 $a |- 10 = ( 9 + 1 ) $.

  $( ` 0 =/= 1 ` (common case).  See aso ~ 1ap0 .  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  0ne1 $p |- 0 =/= 1 $=
    ( cc0 c1 0re 0lt1 ltneii ) ABCDE $.

  $( ` 1 =/= 0 ` .  See aso ~ 1ap0 .  (Contributed by Jim Kingdon,
     9-Mar-2020.) $)
  1ne0 $p |- 1 =/= 0 $=
    ( cc0 c1 0ne1 necomi ) ABCD $.

  $( ` ( 1 - 1 ) = 0 ` (common case).  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  1m1e0 $p |- ( 1 - 1 ) = 0 $=
    ( c1 ax-1cn subidi ) ABC $.

  $( The number 2 is real.  (Contributed by NM, 27-May-1999.) $)
  2re $p |- 2 e. RR $=
    ( c2 c1 caddc co cr df-2 1re readdcli eqeltri ) ABBCDEFBBGGHI $.

  $( The number 2 is a complex number.  (Contributed by NM, 30-Jul-2004.) $)
  2cn $p |- 2 e. CC $=
    ( c2 2re recni ) ABC $.

  $( 2 is a set (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2ex $p |- 2 e. _V $=
    ( c2 cc 2cn elexi ) ABCD $.

  $( 2 is a complex number, deductive form (common case).  (Contributed by
     David A. Wheeler, 8-Dec-2018.) $)
  2cnd $p |- ( ph -> 2 e. CC ) $=
    ( c2 cc wcel 2cn a1i ) BCDAEF $.

  $( The number 3 is real.  (Contributed by NM, 27-May-1999.) $)
  3re $p |- 3 e. RR $=
    ( c3 c2 c1 caddc co cr df-3 2re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 3 is a complex number.  (Contributed by FL, 17-Oct-2010.) $)
  3cn $p |- 3 e. CC $=
    ( c3 3re recni ) ABC $.

  $( 3 is a set (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  3ex $p |- 3 e. _V $=
    ( c3 cc 3cn elexi ) ABCD $.

  $( The number 4 is real.  (Contributed by NM, 27-May-1999.) $)
  4re $p |- 4 e. RR $=
    ( c4 c3 c1 caddc co cr df-4 3re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 4 is a complex number.  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  4cn $p |- 4 e. CC $=
    ( c4 4re recni ) ABC $.

  $( The number 5 is real.  (Contributed by NM, 27-May-1999.) $)
  5re $p |- 5 e. RR $=
    ( c5 c4 c1 caddc co cr df-5 4re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 5 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  5cn $p |- 5 e. CC $=
    ( c5 5re recni ) ABC $.

  $( The number 6 is real.  (Contributed by NM, 27-May-1999.) $)
  6re $p |- 6 e. RR $=
    ( c6 c5 c1 caddc co cr df-6 5re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 6 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  6cn $p |- 6 e. CC $=
    ( c6 6re recni ) ABC $.

  $( The number 7 is real.  (Contributed by NM, 27-May-1999.) $)
  7re $p |- 7 e. RR $=
    ( c7 c6 c1 caddc co cr df-7 6re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 7 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  7cn $p |- 7 e. CC $=
    ( c7 7re recni ) ABC $.

  $( The number 8 is real.  (Contributed by NM, 27-May-1999.) $)
  8re $p |- 8 e. RR $=
    ( c8 c7 c1 caddc co cr df-8 7re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 8 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  8cn $p |- 8 e. CC $=
    ( c8 8re recni ) ABC $.

  $( The number 9 is real.  (Contributed by NM, 27-May-1999.) $)
  9re $p |- 9 e. RR $=
    ( c9 c8 c1 caddc co cr df-9 8re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 9 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  9cn $p |- 9 e. CC $=
    ( c9 9re recni ) ABC $.

  $( The number 10 is real.  (Contributed by NM, 5-Feb-2007.) $)
  10re $p |- 10 e. RR $=
    ( c10 c9 c1 caddc co cr df-10 9re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( Zero is nonnegative.  (Contributed by David A. Wheeler, 7-Jul-2016.) $)
  0le0 $p |- 0 <_ 0 $=
    ( cc0 0re leidi ) ABC $.

  $( 0 is less than or equal to 2.  (Contributed by David A. Wheeler,
     7-Dec-2018.) $)
  0le2 $p |- 0 <_ 2 $=
    ( cc0 c1 caddc co c2 cle wbr 0le1 1re addge0i mp2an df-2 breqtrri ) ABBCDZE
    FABFGZOANFGHHBBIIJKLM $.

  $( The number 2 is positive.  (Contributed by NM, 27-May-1999.) $)
  2pos $p |- 0 < 2 $=
    ( cc0 c1 caddc co c2 clt 1re 0lt1 addgt0ii df-2 breqtrri ) ABBCDEFBBGGHHIJK
    $.

  $( The number 2 is nonzero.  (Contributed by NM, 9-Nov-2007.) $)
  2ne0 $p |- 2 =/= 0 $=
    ( c2 2re 2pos gt0ne0ii ) ABCD $.

  $( The number 2 is apart from zero.  (Contributed by Jim Kingdon,
     9-Mar-2020.) $)
  2ap0 $p |- 2 # 0 $=
    ( c2 2re 2pos gt0ap0ii ) ABCD $.

  $( The number 3 is positive.  (Contributed by NM, 27-May-1999.) $)
  3pos $p |- 0 < 3 $=
    ( cc0 c2 c1 caddc co c3 clt 2re 1re 2pos 0lt1 addgt0ii df-3 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 3 is nonzero.  (Contributed by FL, 17-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 7-May-2011.) $)
  3ne0 $p |- 3 =/= 0 $=
    ( c3 3re 3pos gt0ne0ii ) ABCD $.

  $( The number 4 is positive.  (Contributed by NM, 27-May-1999.) $)
  4pos $p |- 0 < 4 $=
    ( cc0 c3 c1 caddc co c4 clt 3re 1re 3pos 0lt1 addgt0ii df-4 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 4 is nonzero.  (Contributed by David A. Wheeler,
     5-Dec-2018.) $)
  4ne0 $p |- 4 =/= 0 $=
    ( c4 4re 4pos gt0ne0ii ) ABCD $.

  $( The number 5 is positive.  (Contributed by NM, 27-May-1999.) $)
  5pos $p |- 0 < 5 $=
    ( cc0 c4 c1 caddc co c5 clt 4re 1re 4pos 0lt1 addgt0ii df-5 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 6 is positive.  (Contributed by NM, 27-May-1999.) $)
  6pos $p |- 0 < 6 $=
    ( cc0 c5 c1 caddc co c6 clt 5re 1re 5pos 0lt1 addgt0ii df-6 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 7 is positive.  (Contributed by NM, 27-May-1999.) $)
  7pos $p |- 0 < 7 $=
    ( cc0 c6 c1 caddc co c7 clt 6re 1re 6pos 0lt1 addgt0ii df-7 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 8 is positive.  (Contributed by NM, 27-May-1999.) $)
  8pos $p |- 0 < 8 $=
    ( cc0 c7 c1 caddc co c8 clt 7re 1re 7pos 0lt1 addgt0ii df-8 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 9 is positive.  (Contributed by NM, 27-May-1999.) $)
  9pos $p |- 0 < 9 $=
    ( cc0 c8 c1 caddc co c9 clt 8re 1re 8pos 0lt1 addgt0ii df-9 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 10 is positive.  (Contributed by NM, 5-Feb-2007.) $)
  10pos $p |- 0 < 10 $=
    ( cc0 c9 c1 caddc co c10 clt 9re 1re 9pos 0lt1 addgt0ii df-10 breqtrri ) AB
    CDEFGBCHIJKLMN $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Some properties of specific numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This includes adding two pairs of values 1..10
  (where the right is less than the left)
  and where the left is less than the right for the values 1..10.

$)

  $( -1 is a complex number (common case).  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  neg1cn $p |- -u 1 e. CC $=
    ( c1 ax-1cn negcli ) ABC $.

  $( -1 is a real number (common case).  (Contributed by David A. Wheeler,
     5-Dec-2018.) $)
  neg1rr $p |- -u 1 e. RR $=
    ( c1 1re renegcli ) ABC $.

  $( -1 is nonzero (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1ne0 $p |- -u 1 =/= 0 $=
    ( c1 ax-1cn 1ne0 negne0i ) ABCD $.

  $( -1 is less than 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1lt0 $p |- -u 1 < 0 $=
    ( c1 cneg cc0 clt wbr neg0 0lt1 eqbrtri 1re 0re ltnegcon1i mpbir ) ABCDECBZ
    ADEMCADFGHACIJKL $.

  $( -1 is apart from zero.  (Contributed by Jim Kingdon, 9-Jun-2020.) $)
  neg1ap0 $p |- -u 1 # 0 $=
    ( c1 cc0 cap wbr cneg 1ap0 cc wcel wb ax-1cn negap0 ax-mp mpbi ) ABCDZAEBCD
    ZFAGHNOIJAKLM $.

  $( ` -u -u 1 ` is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  negneg1e1 $p |- -u -u 1 = 1 $=
    ( c1 ax-1cn negnegi ) ABC $.

  $( ` 1 + -u 1 ` is 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1pneg1e0 $p |- ( 1 + -u 1 ) = 0 $=
    ( c1 ax-1cn negidi ) ABC $.

  $( 0 minus 0 equals 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  0m0e0 $p |- ( 0 - 0 ) = 0 $=
    ( cc0 0cn subidi ) ABC $.

  $( 1 - 0 = 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1m0e1 $p |- ( 1 - 0 ) = 1 $=
    ( c1 ax-1cn subid1i ) ABC $.

  $( 0 + 1 = 1.  (Contributed by David A. Wheeler, 7-Jul-2016.) $)
  0p1e1 $p |- ( 0 + 1 ) = 1 $=
    ( c1 ax-1cn addid2i ) ABC $.

  $( 1 + 0 = 1.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  1p0e1 $p |- ( 1 + 0 ) = 1 $=
    ( c1 ax-1cn addid1i ) ABC $.

  $( 1 + 1 = 2.  (Contributed by NM, 1-Apr-2008.) $)
  1p1e2 $p |- ( 1 + 1 ) = 2 $=
    ( c2 c1 caddc co df-2 eqcomi ) ABBCDEF $.

  $( 2 - 1 = 1.  The result is on the right-hand-side to be consistent with
     similar proofs like ~ 4p4e8 .  (Contributed by David A. Wheeler,
     4-Jan-2017.) $)
  2m1e1 $p |- ( 2 - 1 ) = 1 $=
    ( c2 c1 2cn ax-1cn 1p1e2 subaddrii ) ABBCDDEF $.

  $( 1 = 2 - 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1e2m1 $p |- 1 = ( 2 - 1 ) $=
    ( c2 c1 cmin co 2m1e1 eqcomi ) ABCDBEF $.

  $( 3 - 1 = 2.  (Contributed by FL, 17-Oct-2010.)  (Revised by NM,
     10-Dec-2017.) $)
  3m1e2 $p |- ( 3 - 1 ) = 2 $=
    ( c3 c1 c2 3cn ax-1cn 2cn caddc co addcomi df-3 eqtr4i subaddrii ) ABCDEFBC
    GHCBGHABCEFIJKL $.

  $( Two plus two equals four.  For more information, see "2+2=4 Trivia" on the
     Metamath Proof Explorer Home Page:
     ~ http://us.metamath.org/mpeuni/mmset.html#trivia .  (Contributed by NM,
     27-May-1999.) $)
  2p2e4 $p |- ( 2 + 2 ) = 4 $=
    ( c2 caddc co c1 c4 df-2 oveq2i c3 df-4 oveq1i ax-1cn addassi 3eqtri eqtr4i
    df-3 2cn ) AABCADDBCZBCZEAQABFGEHDBCADBCZDBCRIHSDBOJADDPKKLMN $.

  $( Two times a number.  (Contributed by NM, 10-Oct-2004.)  (Revised by Mario
     Carneiro, 27-May-2016.)  (Proof shortened by AV, 26-Feb-2020.) $)
  2times $p |- ( A e. CC -> ( 2 x. A ) = ( A + A ) ) $=
    ( cc wcel c2 cmul co c1 caddc df-2 oveq1i 1p1times syl5eq ) ABCDAEFGGHFZAEF
    AAHFDMAEIJAKL $.

  $( A number times 2.  (Contributed by NM, 16-Oct-2007.) $)
  times2 $p |- ( A e. CC -> ( A x. 2 ) = ( A + A ) ) $=
    ( cc wcel c2 cmul co caddc wceq 2cn mulcom mpan2 2times eqtrd ) ABCZADEFZDA
    EFZAAGFNDBCOPHIADJKALM $.

  ${
    2times.1 $e |- A e. CC $.
    $( Two times a number.  (Contributed by NM, 1-Aug-1999.) $)
    2timesi $p |- ( 2 x. A ) = ( A + A ) $=
      ( cc wcel c2 cmul co caddc wceq 2times ax-mp ) ACDEAFGAAHGIBAJK $.

    $( A number times 2.  (Contributed by NM, 11-May-2004.) $)
    times2i $p |- ( A x. 2 ) = ( A + A ) $=
      ( cc wcel c2 cmul co caddc wceq times2 ax-mp ) ACDAEFGAAHGIBAJK $.
  $}

  $( 2 divided by 2 is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2div2e1 $p |- ( 2 / 2 ) = 1 $=
    ( c2 2cn 2ap0 dividapi ) ABCD $.

  $( 2 + 1 = 3.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  2p1e3 $p |- ( 2 + 1 ) = 3 $=
    ( c3 c2 c1 caddc co df-3 eqcomi ) ABCDEFG $.

  $( 1 + 2 = 3 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1p2e3 $p |- ( 1 + 2 ) = 3 $=
    ( c2 c1 c3 2cn ax-1cn 2p1e3 addcomli ) ABCDEFG $.

  $( 3 + 1 = 4.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  3p1e4 $p |- ( 3 + 1 ) = 4 $=
    ( c4 c3 c1 caddc co df-4 eqcomi ) ABCDEFG $.

  $( 4 + 1 = 5.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  4p1e5 $p |- ( 4 + 1 ) = 5 $=
    ( c5 c4 c1 caddc co df-5 eqcomi ) ABCDEFG $.

  $( 5 + 1 = 6.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  5p1e6 $p |- ( 5 + 1 ) = 6 $=
    ( c6 c5 c1 caddc co df-6 eqcomi ) ABCDEFG $.

  $( 6 + 1 = 7.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  6p1e7 $p |- ( 6 + 1 ) = 7 $=
    ( c7 c6 c1 caddc co df-7 eqcomi ) ABCDEFG $.

  $( 7 + 1 = 8.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  7p1e8 $p |- ( 7 + 1 ) = 8 $=
    ( c8 c7 c1 caddc co df-8 eqcomi ) ABCDEFG $.

  $( 8 + 1 = 9.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  8p1e9 $p |- ( 8 + 1 ) = 9 $=
    ( c9 c8 c1 caddc co df-9 eqcomi ) ABCDEFG $.

  $( 9 + 1 = 10.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  9p1e10 $p |- ( 9 + 1 ) = 10 $=
    ( c10 c9 c1 caddc co df-10 eqcomi ) ABCDEFG $.

  $( 3 + 2 = 5.  (Contributed by NM, 11-May-2004.) $)
  3p2e5 $p |- ( 3 + 2 ) = 5 $=
    ( c3 c2 caddc co c4 c1 c5 df-2 oveq2i 3cn ax-1cn addassi eqtr4i df-4 oveq1i
    df-5 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 3 + 3 = 6.  (Contributed by NM, 11-May-2004.) $)
  3p3e6 $p |- ( 3 + 3 ) = 6 $=
    ( c3 caddc co c2 c1 c6 df-3 oveq2i 3cn 2cn ax-1cn addassi eqtr4i df-6 3p2e5
    c5 oveq1i ) AABCZADBCZEBCZFRADEBCZBCTAUAABGHADEIJKLMFPEBCTNSPEBOQMM $.

  $( 4 + 2 = 6.  (Contributed by NM, 11-May-2004.) $)
  4p2e6 $p |- ( 4 + 2 ) = 6 $=
    ( c4 c2 caddc co c5 c1 c6 df-2 oveq2i 4cn ax-1cn addassi eqtr4i df-5 oveq1i
    df-6 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 4 + 3 = 7.  (Contributed by NM, 11-May-2004.) $)
  4p3e7 $p |- ( 4 + 3 ) = 7 $=
    ( c4 c3 caddc co c2 c1 c7 df-3 oveq2i 4cn 2cn ax-1cn addassi eqtr4i c6 df-7
    4p2e6 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 4 + 4 = 8.  (Contributed by NM, 11-May-2004.) $)
  4p4e8 $p |- ( 4 + 4 ) = 8 $=
    ( c4 caddc co c3 c1 c8 df-4 oveq2i 4cn 3cn ax-1cn addassi eqtr4i df-8 4p3e7
    c7 oveq1i ) AABCZADBCZEBCZFRADEBCZBCTAUAABGHADEIJKLMFPEBCTNSPEBOQMM $.

  $( 5 + 2 = 7.  (Contributed by NM, 11-May-2004.) $)
  5p2e7 $p |- ( 5 + 2 ) = 7 $=
    ( c5 c2 caddc co c6 c1 c7 df-2 oveq2i 5cn ax-1cn addassi eqtr4i df-6 oveq1i
    df-7 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 5 + 3 = 8.  (Contributed by NM, 11-May-2004.) $)
  5p3e8 $p |- ( 5 + 3 ) = 8 $=
    ( c5 c3 caddc co c2 c1 c8 df-3 oveq2i 5cn 2cn ax-1cn addassi eqtr4i c7 df-8
    5p2e7 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 5 + 4 = 9.  (Contributed by NM, 11-May-2004.) $)
  5p4e9 $p |- ( 5 + 4 ) = 9 $=
    ( c5 c4 caddc co c3 c1 c9 df-4 oveq2i 5cn 3cn ax-1cn addassi eqtr4i c8 df-9
    5p3e8 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 5 + 5 = 10.  (Contributed by NM, 5-Feb-2007.) $)
  5p5e10 $p |- ( 5 + 5 ) = 10 $=
    ( c5 caddc co c4 c1 c10 oveq2i 5cn 4cn ax-1cn addassi eqtr4i c9 df-10 5p4e9
    df-5 oveq1i ) AABCZADBCZEBCZFRADEBCZBCTAUAABPGADEHIJKLFMEBCTNSMEBOQLL $.

  $( 6 + 2 = 8.  (Contributed by NM, 11-May-2004.) $)
  6p2e8 $p |- ( 6 + 2 ) = 8 $=
    ( c6 c2 caddc co c7 c1 c8 df-2 oveq2i 6cn ax-1cn addassi eqtr4i df-7 oveq1i
    df-8 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 6 + 3 = 9.  (Contributed by NM, 11-May-2004.) $)
  6p3e9 $p |- ( 6 + 3 ) = 9 $=
    ( c6 c3 caddc co c2 c1 c9 df-3 oveq2i 6cn 2cn ax-1cn addassi eqtr4i c8 df-9
    6p2e8 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 6 + 4 = 10.  (Contributed by NM, 5-Feb-2007.) $)
  6p4e10 $p |- ( 6 + 4 ) = 10 $=
    ( c6 c4 caddc co c3 c1 c10 oveq2i 6cn 3cn ax-1cn addassi eqtr4i df-10 6p3e9
    df-4 c9 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACPHAEFIJKLMGQFCDUANTQFCORMM
    $.

  $( 7 + 2 = 9.  (Contributed by NM, 11-May-2004.) $)
  7p2e9 $p |- ( 7 + 2 ) = 9 $=
    ( c7 c2 caddc co c8 c1 c9 df-2 oveq2i 7cn ax-1cn addassi eqtr4i df-8 oveq1i
    df-9 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 7 + 3 = 10.  (Contributed by NM, 5-Feb-2007.) $)
  7p3e10 $p |- ( 7 + 3 ) = 10 $=
    ( c7 c3 caddc co c2 c1 c10 oveq2i 7cn 2cn ax-1cn addassi eqtr4i df-10 7p2e9
    df-3 c9 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACPHAEFIJKLMGQFCDUANTQFCORMM
    $.

  $( 8 + 2 = 10.  (Contributed by NM, 5-Feb-2007.) $)
  8p2e10 $p |- ( 8 + 2 ) = 10 $=
    ( c8 c2 caddc co c9 c1 c10 df-2 oveq2i 8cn ax-1cn addassi eqtr4i df-9 df-10
    oveq1i ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNPMOM $.

  $( 1 times 1 equals 1.  (Contributed by David A. Wheeler, 7-Jul-2016.) $)
  1t1e1 $p |- ( 1 x. 1 ) = 1 $=
    ( c1 ax-1cn mulid1i ) ABC $.

  $( 2 times 1 equals 2.  (Contributed by David A. Wheeler, 6-Dec-2018.) $)
  2t1e2 $p |- ( 2 x. 1 ) = 2 $=
    ( c2 2cn mulid1i ) ABC $.

  $( 2 times 2 equals 4.  (Contributed by NM, 1-Aug-1999.) $)
  2t2e4 $p |- ( 2 x. 2 ) = 4 $=
    ( c2 cmul co caddc c4 2cn 2timesi 2p2e4 eqtri ) AABCAADCEAFGHI $.

  $( 3 times 1 equals 3.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  3t1e3 $p |- ( 3 x. 1 ) = 3 $=
    ( c3 3cn mulid1i ) ABC $.

  $( 3 times 2 equals 6.  (Contributed by NM, 2-Aug-2004.) $)
  3t2e6 $p |- ( 3 x. 2 ) = 6 $=
    ( c3 c2 cmul co caddc c6 3cn times2i 3p3e6 eqtri ) ABCDAAEDFAGHIJ $.

  $( 3 times 3 equals 9.  (Contributed by NM, 11-May-2004.) $)
  3t3e9 $p |- ( 3 x. 3 ) = 9 $=
    ( c3 cmul co c2 c1 caddc c9 df-3 oveq2i 3cn 2cn ax-1cn adddii 3t2e6 oveq12i
    c6 3t1e3 eqtri 6p3e9 ) AABCADEFCZBCZGATABHIUAPAFCZGUAADBCZAEBCZFCUBADEJKLMU
    CPUDAFNQORSRR $.

  $( 4 times 2 equals 8.  (Contributed by NM, 2-Aug-2004.) $)
  4t2e8 $p |- ( 4 x. 2 ) = 8 $=
    ( c4 c2 cmul co caddc c8 4cn times2i 4p4e8 eqtri ) ABCDAAEDFAGHIJ $.

  $( 5 times 2 equals 10.  (Contributed by NM, 5-Feb-2007.) $)
  5t2e10 $p |- ( 5 x. 2 ) = 10 $=
    ( c5 c2 cmul co caddc c10 5cn times2i 5p5e10 eqtri ) ABCDAAEDFAGHIJ $.

  $( 2 times 0 equals 0.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  2t0e0 $p |- ( 2 x. 0 ) = 0 $=
    ( c2 2cn mul01i ) ABC $.

  $( One half of four is two.  (Contributed by NM, 3-Sep-1999.) $)
  4d2e2 $p |- ( 4 / 2 ) = 2 $=
    ( c4 c2 cdiv co wceq cmul 2t2e4 4cn 2cn 2ap0 divmulapi mpbir ) ABCDBEBBFDAE
    GABBHIIJKL $.

  $( 2 is a positive integer.  (Contributed by NM, 20-Aug-2001.) $)
  2nn $p |- 2 e. NN $=
    ( c2 c1 caddc co cn df-2 wcel 1nn peano2nn ax-mp eqeltri ) ABBCDZEFBEGLEGHB
    IJK $.

  $( 3 is a positive integer.  (Contributed by NM, 8-Jan-2006.) $)
  3nn $p |- 3 e. NN $=
    ( c3 c2 c1 caddc co cn df-3 wcel 2nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 4 is a positive integer.  (Contributed by NM, 8-Jan-2006.) $)
  4nn $p |- 4 e. NN $=
    ( c4 c3 c1 caddc co cn df-4 wcel 3nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 5 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5nn $p |- 5 e. NN $=
    ( c5 c4 c1 caddc co cn df-5 wcel 4nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 6 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  6nn $p |- 6 e. NN $=
    ( c6 c5 c1 caddc co cn df-6 wcel 5nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 7 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  7nn $p |- 7 e. NN $=
    ( c7 c6 c1 caddc co cn df-7 wcel 6nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 8 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  8nn $p |- 8 e. NN $=
    ( c8 c7 c1 caddc co cn df-8 wcel 7nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 9 is a positive integer.  (Contributed by NM, 21-Oct-2012.) $)
  9nn $p |- 9 e. NN $=
    ( c9 c8 c1 caddc co cn df-9 wcel 8nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 10 is a positive integer.  (Contributed by NM, 8-Nov-2012.) $)
  10nn $p |- 10 e. NN $=
    ( c10 c9 c1 caddc co cn df-10 wcel 9nn peano2nn ax-mp eqeltri ) ABCDEZFGBFH
    MFHIBJKL $.

  $( 1 is less than 2.  (Contributed by NM, 24-Feb-2005.) $)
  1lt2 $p |- 1 < 2 $=
    ( c1 caddc co c2 clt 1re ltp1i df-2 breqtrri ) AAABCDEAFGHI $.

  $( 2 is less than 3.  (Contributed by NM, 26-Sep-2010.) $)
  2lt3 $p |- 2 < 3 $=
    ( c2 c1 caddc co c3 clt 2re ltp1i df-3 breqtrri ) AABCDEFAGHIJ $.

  $( 1 is less than 3.  (Contributed by NM, 26-Sep-2010.) $)
  1lt3 $p |- 1 < 3 $=
    ( c1 c2 clt wbr c3 1lt2 2lt3 1re 2re 3re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 4.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt4 $p |- 3 < 4 $=
    ( c3 c1 caddc co c4 clt 3re ltp1i df-4 breqtrri ) AABCDEFAGHIJ $.

  $( 2 is less than 4.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt4 $p |- 2 < 4 $=
    ( c2 c3 clt wbr c4 2lt3 3lt4 2re 3re 4re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 4.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt4 $p |- 1 < 4 $=
    ( c1 c2 clt wbr c4 1lt2 2lt4 1re 2re 4re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt5 $p |- 4 < 5 $=
    ( c4 c1 caddc co c5 clt 4re ltp1i df-5 breqtrri ) AABCDEFAGHIJ $.

  $( 3 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt5 $p |- 3 < 5 $=
    ( c3 c4 clt wbr c5 3lt4 4lt5 3re 4re 5re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt5 $p |- 2 < 5 $=
    ( c2 c4 clt wbr c5 2lt4 4lt5 2re 4re 5re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt5 $p |- 1 < 5 $=
    ( c1 c4 clt wbr c5 1lt4 4lt5 1re 4re 5re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 5 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5lt6 $p |- 5 < 6 $=
    ( c5 c1 caddc co c6 clt 5re ltp1i df-6 breqtrri ) AABCDEFAGHIJ $.

  $( 4 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt6 $p |- 4 < 6 $=
    ( c4 c5 clt wbr c6 4lt5 5lt6 4re 5re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt6 $p |- 3 < 6 $=
    ( c3 c4 clt wbr c6 3lt4 4lt6 3re 4re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt6 $p |- 2 < 6 $=
    ( c2 c3 clt wbr c6 2lt3 3lt6 2re 3re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 6.  (Contributed by NM, 19-Oct-2012.) $)
  1lt6 $p |- 1 < 6 $=
    ( c1 c2 clt wbr c6 1lt2 2lt6 1re 2re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 6 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  6lt7 $p |- 6 < 7 $=
    ( c6 c1 caddc co c7 clt 6re ltp1i df-7 breqtrri ) AABCDEFAGHIJ $.

  $( 5 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5lt7 $p |- 5 < 7 $=
    ( c5 c6 clt wbr c7 5lt6 6lt7 5re 6re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt7 $p |- 4 < 7 $=
    ( c4 c5 clt wbr c7 4lt5 5lt7 4re 5re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt7 $p |- 3 < 7 $=
    ( c3 c4 clt wbr c7 3lt4 4lt7 3re 4re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt7 $p |- 2 < 7 $=
    ( c2 c3 clt wbr c7 2lt3 3lt7 2re 3re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt7 $p |- 1 < 7 $=
    ( c1 c2 clt wbr c7 1lt2 2lt7 1re 2re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 7 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  7lt8 $p |- 7 < 8 $=
    ( c7 c1 caddc co c8 clt 7re ltp1i df-8 breqtrri ) AABCDEFAGHIJ $.

  $( 6 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  6lt8 $p |- 6 < 8 $=
    ( c6 c7 clt wbr c8 6lt7 7lt8 6re 7re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 5 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5lt8 $p |- 5 < 8 $=
    ( c5 c6 clt wbr c8 5lt6 6lt8 5re 6re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt8 $p |- 4 < 8 $=
    ( c4 c5 clt wbr c8 4lt5 5lt8 4re 5re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt8 $p |- 3 < 8 $=
    ( c3 c4 clt wbr c8 3lt4 4lt8 3re 4re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt8 $p |- 2 < 8 $=
    ( c2 c3 clt wbr c8 2lt3 3lt8 2re 3re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt8 $p |- 1 < 8 $=
    ( c1 c2 clt wbr c8 1lt2 2lt8 1re 2re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 8 is less than 9.  (Contributed by Mario Carneiro, 19-Feb-2014.) $)
  8lt9 $p |- 8 < 9 $=
    ( c8 c1 caddc co c9 clt 8re ltp1i df-9 breqtrri ) AABCDEFAGHIJ $.

  $( 7 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  7lt9 $p |- 7 < 9 $=
    ( c7 c8 clt wbr c9 7lt8 8lt9 7re 8re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 6 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  6lt9 $p |- 6 < 9 $=
    ( c6 c7 clt wbr c9 6lt7 7lt9 6re 7re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 5 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  5lt9 $p |- 5 < 9 $=
    ( c5 c6 clt wbr c9 5lt6 6lt9 5re 6re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  4lt9 $p |- 4 < 9 $=
    ( c4 c5 clt wbr c9 4lt5 5lt9 4re 5re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  3lt9 $p |- 3 < 9 $=
    ( c3 c4 clt wbr c9 3lt4 4lt9 3re 4re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  2lt9 $p |- 2 < 9 $=
    ( c2 c3 clt wbr c9 2lt3 3lt9 2re 3re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 9.  (Contributed by NM, 19-Oct-2012.)  (Revised by Mario
     Carneiro, 9-Mar-2015.) $)
  1lt9 $p |- 1 < 9 $=
    ( c1 c2 clt wbr c9 1lt2 2lt9 1re 2re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 9 is less than 10.  (Contributed by Mario Carneiro, 8-Feb-2015.) $)
  9lt10 $p |- 9 < 10 $=
    ( c9 c1 caddc co c10 clt 9re ltp1i df-10 breqtrri ) AABCDEFAGHIJ $.

  $( 8 is less than 10.  (Contributed by Mario Carneiro, 8-Feb-2015.) $)
  8lt10 $p |- 8 < 10 $=
    ( c8 c9 clt wbr c10 8lt9 9lt10 8re 9re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 7 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
  7lt10 $p |- 7 < 10 $=
    ( c7 c8 clt wbr c10 7lt8 8lt10 7re 8re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 6 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
  6lt10 $p |- 6 < 10 $=
    ( c6 c7 clt wbr c10 6lt7 7lt10 6re 7re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 5 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
  5lt10 $p |- 5 < 10 $=
    ( c5 c6 clt wbr c10 5lt6 6lt10 5re 6re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 4 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
  4lt10 $p |- 4 < 10 $=
    ( c4 c5 clt wbr c10 4lt5 5lt10 4re 5re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 3 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
  3lt10 $p |- 3 < 10 $=
    ( c3 c4 clt wbr c10 3lt4 4lt10 3re 4re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 2 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
  2lt10 $p |- 2 < 10 $=
    ( c2 c3 clt wbr c10 2lt3 3lt10 2re 3re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 1 is less than 10.  (Contributed by NM, 7-Nov-2012.)  (Revised by Mario
     Carneiro, 9-Mar-2015.) $)
  1lt10 $p |- 1 < 10 $=
    ( c1 c2 clt wbr c10 1lt2 2lt10 1re 2re 10re lttri mp2an ) ABCDBECDAECDFGABE
    HIJKL $.

  $( 0 is not equal to 2.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  0ne2 $p |- 0 =/= 2 $=
    ( c2 cc0 2ne0 necomi ) ABCD $.

  $( 1 is not equal to 2.  (Contributed by NM, 19-Oct-2012.) $)
  1ne2 $p |- 1 =/= 2 $=
    ( c1 c2 1re 1lt2 ltneii ) ABCDE $.

  $( 1 is less than or equal to 2 (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  1le2 $p |- 1 <_ 2 $=
    ( c1 c2 1re 2re 1lt2 ltleii ) ABCDEF $.

  $( 2 is a nonzero complex number (common case).  (Contributed by David A.
     Wheeler, 7-Dec-2018.) $)
  2cnne0 $p |- ( 2 e. CC /\ 2 =/= 0 ) $=
    ( c2 cc wcel cc0 wne 2cn 2ne0 pm3.2i ) ABCADEFGH $.

  $( 2 is a nonzero real number (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  2rene0 $p |- ( 2 e. RR /\ 2 =/= 0 ) $=
    ( c2 cr wcel cc0 wne 2re 2ne0 pm3.2i ) ABCADEFGH $.

  $( 1 is less than or equal to 3.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1le3 $p |- 1 <_ 3 $=
    ( c1 c3 1re 3re 1lt3 ltleii ) ABCDEF $.

  $( ` -u 1 x. -u 1 ` is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1mulneg1e1 $p |- ( -u 1 x. -u 1 ) = 1 $=
    ( c1 cneg cmul co ax-1cn mul2negi 1t1e1 eqtri ) ABZICDAACDAAAEEFGH $.

  $( One-half is real.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  halfre $p |- ( 1 / 2 ) e. RR $=
    ( c2 2re 2ap0 rerecclapi ) ABCD $.

  $( One-half is complex.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  halfcn $p |- ( 1 / 2 ) e. CC $=
    ( c1 c2 cdiv co halfre recni ) ABCDEF $.

  $( One-half is greater than zero.  (Contributed by NM, 24-Feb-2005.) $)
  halfgt0 $p |- 0 < ( 1 / 2 ) $=
    ( c2 2re 2pos recgt0ii ) ABCD $.

  $( One-half is less than one.  (Contributed by NM, 24-Feb-2005.) $)
  halflt1 $p |- ( 1 / 2 ) < 1 $=
    ( c1 cdiv co clt wbr 1div1e1 1lt2 eqbrtri 1re 2re 0lt1 2pos ltdiv23ii mpbi
    c2 ) AABCZODEAOBCADEPAODFGHAAOIIJKLMN $.

  $( Prove that 1 - 1/2 = 1/2.  (Contributed by David A. Wheeler,
     4-Jan-2017.) $)
  1mhlfehlf $p |- ( 1 - ( 1 / 2 ) ) = ( 1 / 2 ) $=
    ( c2 c1 cmin co cdiv cc wcel cc0 cap wbr wceq 2cn ax-1cn pm3.2i divsubdirap
    wa 2ap0 mp3an 2m1e1 oveq1i 2div2e1 3eqtr3ri ) ABCDZAEDZAAEDZBAEDZCDZUFBUFCD
    AFGZBFGUHAHIJZPUDUGKLMUHUILQNABAORUCBAESTUEBUFCUATUB $.

  $( An eighth of four thirds is a sixth.  (Contributed by Paul Chapman,
     24-Nov-2007.) $)
  8th4div3 $p |- ( ( 1 / 8 ) x. ( 4 / 3 ) ) = ( 1 / 6 ) $=
    ( c1 c8 cdiv co c4 c3 cmul c6 ax-1cn 8re recni 4cn gt0ap0ii c2 eqtr3i eqtri
    3cn 2cn cc wcel 8pos divmuldivapi mulcomi mul32i 4t2e8 oveq1i mulassi 3t2e6
    3re 3pos oveq2i oveq12i cc0 cap wbr wceq 6re 6pos 4re 4pos divcanap5 mp3an1
    wa mp4an ) ABCDEFCDGDZEAGDZEHGDZCDZAHCDZVEAEGDZBFGDZCDVHABEFIBJKLQBJUAMFUIU
    JMUBVJVFVKVGCAEILUCVKEFNGDZGDZVGEFGDNGDZVKVMENGDZFGDVNVKENFLRQUDVOBFGUEUFOE
    FNLQRUGOVLHEGUHUKPULPHSTZHUMUNUOZESTZEUMUNUOZVHVIUPZHUQKHUQURMLEUSUTMASTVPV
    QVCVRVSVCVTIAHEVAVBVDP $.

  $( One half plus or minus one sixth.  (Contributed by Paul Chapman,
     17-Jan-2008.) $)
  halfpm6th $p |- ( ( ( 1 / 2 ) - ( 1 / 6 ) ) = ( 1 / 3 ) /\
                       ( ( 1 / 2 ) + ( 1 / 6 ) ) = ( 2 / 3 ) ) $=
    ( c1 c2 cdiv co c6 cmin c3 wceq caddc cmul 3cn ax-1cn 2cn 2ap0 divmuldivapi
    oveq1i mulid1i 3t2e6 oveq12i 3eqtr3i 3re 3pos gt0ap0ii halfcn mulid2i eqtri
    dividapi cc wcel cc0 cap wbr wa 6cn 6re 6pos pm3.2i divsubdirap mp3an 3m1e2
    oveq2i recclapi 3eqtr2i c4 divdirapi df-4 3eqtr4ri 2t2e4 divclapi ) ABCDZAE
    CDZFDZAGCDZHVJVKIDZBGCDZHVLGECDZVKFDZGAFDZECDZVMVJVPVKFGGCDZVJJDZGAJDZGBJDZ
    CDVJVPGGABKKLMGUAUBUCZNOWAAVJJDVJVTAVJJGKWDUGPVJUDUEUFWBGWCECGKQRSTZPGUHUIA
    UHUIEUHUIZEUJUKULZUMVSVQHKLWFWGUNEUOUPUCZUQGAEURUSVSBECDABJDZWCCDZVMVRBECUT
    PWIBWCECBMUERSVMBBCDZJDVMAJDWJVMWKAVMJBMNUGZVAAGBBLKMMWDNOVMGKWDVBQTVCVCVNV
    DECDZBBJDZWCCDZVOGAIDZECDVPVKIDWMVNGAEKLUNWHVEVDWPECVFPVJVPVKIWEPVGWNVDWCEC
    VHRSVOWKJDVOAJDWOVOWKAVOJWLVABGBBMKMMWDNOVOBGMKWDVIQTVCUQ $.

  $( i times 0 equals 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  it0e0 $p |- ( _i x. 0 ) = 0 $=
    ( ci ax-icn mul01i ) ABC $.

  $( ` ( 2 x. _i ) e. CC ` (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2mulicn $p |- ( 2 x. _i ) e. CC $=
    ( c2 ci 2cn ax-icn mulcli ) ABCDE $.

  $( The imaginary unit ` _i ` is apart from zero.  (Contributed by Jim
     Kingdon, 9-Mar-2020.) $)
  iap0 $p |- _i # 0 $=
    ( cc0 ci c1 cmul co caddc cap wbr wo 1ap0 olci cr wcel wb 0re apreim ax-icn
    1re oveq2i eqtri mp4an mpbir mulid1i addid2i it0e0 00id 3brtr3i ) ABCDEZFEZ
    ABADEZFEZBAGUIUKGHZAAGHZCAGHZIZUNUMJKALMZCLMUPUPULUONOROOACAAPUAUBUIABFEBUH
    BAFBQUCSBQUDTUKAAFEAUJAAFUESUFTUG $.

  $( ` 2 x. _i ` is apart from zero.  (Contributed by Jim Kingdon,
     9-Mar-2020.) $)
  2muliap0 $p |- ( 2 x. _i ) # 0 $=
    ( c2 ci 2cn ax-icn 2ap0 iap0 mulap0i ) ABCDEFG $.

  $( ` ( 2 x. _i ) =/= 0 ` .  See also ~ 2muliap0 .  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  2muline0 $p |- ( 2 x. _i ) =/= 0 $=
    ( c2 ci cmul co cc0 cap wbr wne 2muliap0 cc wcel wi 2mulicn 0cn mp2an ax-mp
    apne ) ABCDZEFGZREHZIRJKEJKSTLMNREQOP $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Simple number properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Closure of half of a number (common case).  (Contributed by NM,
     1-Jan-2006.) $)
  halfcl $p |- ( A e. CC -> ( A / 2 ) e. CC ) $=
    ( cc wcel c2 cc0 cap wbr cdiv co 2cn 2ap0 divclap mp3an23 ) ABCDBCDEFGADHIB
    CJKADLM $.

  $( Real closure of half.  (Contributed by NM, 1-Jan-2006.) $)
  rehalfcl $p |- ( A e. RR -> ( A / 2 ) e. RR ) $=
    ( cr wcel c2 cc0 cap wbr cdiv co 2re 2ap0 redivclap mp3an23 ) ABCDBCDEFGADH
    IBCJKADLM $.

  $( Half of a number is zero iff the number is zero.  (Contributed by NM,
     20-Apr-2006.) $)
  half0 $p |- ( A e. CC -> ( ( A / 2 ) = 0 <-> A = 0 ) ) $=
    ( cc wcel c2 cc0 cap wbr cdiv co wceq wb 2cn 2ap0 diveqap0 mp3an23 ) ABCDBC
    DEFGADHIEJAEJKLMADNO $.

  $( Two halves make a whole.  (Contributed by NM, 11-Apr-2005.) $)
  2halves $p |- ( A e. CC -> ( ( A / 2 ) + ( A / 2 ) ) = A ) $=
    ( cc wcel c2 cmul co cdiv 2times oveq1d cc0 cap wbr wceq 2cn 2ap0 divcanap3
    caddc mp3an23 wa pm3.2i divdirap mp3an3 anidms 3eqtr3rd ) ABCZDAEFZDGFZAAQF
    ZDGFZAADGFZUJQFZUEUFUHDGAHIUEDBCZDJKLZUGAMNOADPRUEUIUKMZUEUEULUMSUNULUMNOTA
    ADUAUBUCUD $.

  $( A number is positive iff its half is positive.  (Contributed by NM,
     10-Apr-2005.) $)
  halfpos2 $p |- ( A e. RR -> ( 0 < A <-> 0 < ( A / 2 ) ) ) $=
    ( cr wcel c2 cc0 clt wbr cdiv co wb 2re 2pos gt0div mp3an23 ) ABCDBCEDFGEAF
    GEADHIFGJKLADMN $.

  $( A positive number is greater than its half.  (Contributed by NM,
     28-Oct-2004.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  halfpos $p |- ( A e. RR -> ( 0 < A <-> ( A / 2 ) < A ) ) $=
    ( cr wcel cc0 clt c2 cdiv co caddc halfpos2 rehalfcl ltaddposd cc wceq recn
    wbr 2halves syl breq2d 3bitrd ) ABCZDAEPDAFGHZEPUBUBUBIHZEPUBAEPAJUAUBUBAKZ
    UDLUAUCAUBEUAAMCUCANAOAQRST $.

  $( A number is nonnegative iff its half is nonnegative.  (Contributed by NM,
     9-Dec-2005.) $)
  halfnneg2 $p |- ( A e. RR -> ( 0 <_ A <-> 0 <_ ( A / 2 ) ) ) $=
    ( cr wcel c2 cc0 clt wbr cle cdiv co wb 2re 2pos ge0div mp3an23 ) ABCDBCEDF
    GEAHGEADIJHGKLMADNO $.

  $( Closure of half-sum and half-difference.  (Contributed by Paul Chapman,
     12-Oct-2007.) $)
  halfaddsubcl $p |- ( ( A e. CC /\ B e. CC ) -> ( ( ( A + B ) / 2 ) e. CC /\
                         ( ( A - B ) / 2 ) e. CC ) ) $=
    ( cc wcel wa caddc co c2 cdiv cmin addcl halfcl syl subcl jca ) ACDBCDEZABF
    GZHIGCDZABJGZHIGCDZPQCDRABKQLMPSCDTABNSLMO $.

  $( Sum and difference of half-sum and half-difference.  (Contributed by Paul
     Chapman, 12-Oct-2007.) $)
  halfaddsub $p |- ( ( A e. CC /\ B e. CC ) ->
                      ( ( ( ( A + B ) / 2 ) + ( ( A - B ) / 2 ) ) = A /\
                        ( ( ( A + B ) / 2 ) - ( ( A - B ) / 2 ) ) = B ) ) $=
    ( cc wcel wa caddc cdiv cmin wceq cmul 2times adantr eqtr4d oveq1d 2cn 2ap0
    co c2 mp3an3 syl2anc ppncan 3anidm13 addcl subcl cc0 cap divdirap divcanap3
    wbr pm3.2i mp3an23 3eqtr3d pnncan 3anidm23 adantl divsubdirap jca ) ACDZBCD
    ZEZABFQZRGQZABHQZRGQZFQZAIVBVDHQZBIUTVAVCFQZRGQZRAJQZRGQZVEAUTVGVIRGUTVGAAF
    QZVIURUSVGVKIABAUAUBURVIVKIUSAKLMNUTVACDZVCCDZVHVEIZABUCZABUDZVLVMRCDZRUEUF
    UIZEZVNVQVROPUJZVAVCRUGSTURVJAIZUSURVQVRWAOPARUHUKLULUTVAVCHQZRGQZRBJQZRGQZ
    VFBUTWBWDRGUTWBBBFQZWDURUSWBWFIABBUMUNUSWDWFIURBKUOMNUTVLVMWCVFIZVOVPVLVMVS
    WGVTVAVCRUPSTUSWEBIZURUSVQVRWHOPBRUHUKUOULUQ $.

  $( TODO - use this to reduce:
  Statement "lt2add" is directly referenced in the proofs of 9 statements:
    2climnn 2climnn0 climaddlem3 climmullem5 climcaui ser1f0i
  MM> sh us 2halves
  Statement "2halves" is directly referenced in the proofs of 10 statements:
    2climnn 2climnn0 climmullem5 climcaui caucvgi ser1f0i
  MM>
  $)
  $( A sum is less than the whole if each term is less than half.  (Contributed
     by NM, 13-Dec-2006.) $)
  lt2halves $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( ( A < ( C / 2 ) /\ B < ( C / 2 ) ) -> ( A + B ) < C ) ) $=
    ( cr wcel w3a c2 co clt wbr wa caddc wi 3simpa rehalfcl jca 3ad2ant3 lt2add
    cdiv syl2anc wb cc wceq recn 2halves syl breq2d sylibd ) ADEZBDEZCDEZFZACGS
    HZIJBUMIJKZABLHZUMUMLHZIJZUOCIJZULUIUJKUMDEZUSKZUNUQMUIUJUKNUKUIUTUJUKUSUSC
    OZVAPQABUMUMRTUKUIUQURUAUJUKUPCUOIUKCUBEUPCUCCUDCUEUFUGQUH $.

  $( Sum is less than product for numbers greater than 2.  (Contributed by
     Stefan Allan, 24-Sep-2010.) $)
  addltmul $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 2 < A /\ 2 < B ) )
              -> ( A + B ) < ( A x. B ) ) $=
    ( cr wcel wa c2 clt wbr caddc co cmul c1 cmin 2re 1re ltsub1 syl2an remulcl
    wb cc mp3an13 2m1e1 breq1i syl6bb bi2anan9 wi peano2rem mulgt1 ex wceq recn
    sylbid ax-1cn mulsub mpanl2 mpanr2 breq2d 1t1e1 oveq2i breq2i mpan2 readdcl
    remulcli sylancl ltaddsub2 mp3an2 syl2anc syl5rbbr ltadd1 ax-1rid oveqan12d
    mp3an3 breq1d bitr3d 3bitrd sylibd imp ) ACDZBCDZEZFAGHZFBGHZEZABIJZABKJZGH
    ZVTWCLALMJZBLMJZKJZGHZWFVTWCLWGGHZLWHGHZEZWJVRWAWKVSWBWLVRWAFLMJZWGGHZWKFCD
    ZVRLCDZWAWOSNOFALPUAWNLWGGUBUCUDVSWBWNWHGHZWLWPVSWQWBWRSNOFBLPUAWNLWHGUBUCU
    DUEVRWGCDZWHCDZWMWJUFVSAUGBUGWSWTEWMWJWGWHUHUIQULVTWJLWELLKJZIJZALKJZBLKJZI
    JZMJZGHZXELIJZWELIJZGHZWFVTWIXFLGVRATDZBTDZWIXFUJZVSAUKBUKXKXLLTDZXMUMXKXNX
    LXNEXMUMALBLUNUOUPQUQXJXHXBGHZVTXGXBXIXHGXALWEIURUSUTVTXECDZXBCDZXOXGSZVRXC
    CDZXDCDZXPVSVRWQXSOALRVAVSWQXTOBLRVAXCXDVBQZVTWECDZXACDXQABRZLLOOVCWEXAVBVD
    XPWQXQXROXELXBVEVFVGVHVTXEWEGHZXJWFVTXPYBYDXJSZYAYCXPYBWQYEOXEWELVIVLVGVTXE
    WDWEGVRVSXCAXDBIAVJBVJVKVMVNVOVPVQ $.

  ${
    $d x y $.
    $( There is no smallest positive real number.  (Contributed by NM,
       28-Oct-2004.) $)
    nominpos $p |- -. E. x e. RR ( 0 < x /\
                   -. E. y e. RR ( 0 < y /\ y < x ) ) $=
      ( cc0 cv clt wbr wa cr wrex wn wcel wi c2 cdiv co rehalfcl divgt0 mpanr12
      2re 2pos ex halfpos biimpd jcad wceq breq2 breq1 rspcev syl6an imanim syl
      anbi12d nrex ) CADZEFZCBDZEFZUPUNEFZGZBHIZJGZAHUNHKZUOUTLVAJVBUNMNOZHKUOC
      VCEFZVCUNEFZGZUTUNPVBUOVDVEVBUOVDVBUOGMHKCMEFVDSTUNMQRUAVBUOVEUNUBUCUDUSV
      FBVCHUPVCUEUQVDURVEUPVCCEUFUPVCUNEUGULUHUIUOUTUJUKUM $.
  $}

  $( Ordering property for average.  (Contributed by Mario Carneiro,
     28-May-2014.) $)
  avglt1 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A < B <-> A < ( ( A + B ) / 2 ) ) ) $=
    ( cr wcel wa clt wbr caddc co c2 cmul cdiv wb ltadd2 3anidm13 cc wceq simpl
    recnd times2 syl breq1d cc0 readdcl 2re pm3.2i a1i ltmuldiv syl3anc 3bitr2d
    2pos ) ACDZBCDZEZABFGZAAHIZABHIZFGZAJKIZUQFGZAUQJLIFGZULUMUOURMABANOUNUSUPU
    QFUNAPDUSUPQUNAULUMRZSATUAUBUNULUQCDJCDZUCJFGZEZUTVAMVBABUDVEUNVCVDUEUKUFUG
    AUQJUHUIUJ $.

  $( Ordering property for average.  (Contributed by Mario Carneiro,
     28-May-2014.) $)
  avglt2 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A < B <-> ( ( A + B ) / 2 ) < B ) ) $=
    ( cr wcel wa caddc co c2 cmul clt wbr cdiv cc simpr recnd 2times syl breq2d
    wceq wb cc0 readdcl 2re 2pos pm3.2i a1i ltdivmul syl3anc 3anidm23 3bitr4rd
    ltadd1 ) ACDZBCDZEZABFGZHBIGZJKZUOBBFGZJKZUOHLGBJKZABJKZUNUPURUOJUNBMDUPURS
    UNBULUMNZOBPQRUNUOCDUMHCDZUAHJKZEZUTUQTABUBVBVEUNVCVDUCUDUEUFUOBHUGUHULUMVA
    USTABBUKUIUJ $.

  $( Ordering property for average.  (Contributed by Mario Carneiro,
     28-May-2014.) $)
  avgle1 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A <_ B <-> A <_ ( ( A + B ) / 2 ) ) ) $=
    ( cr wcel wa clt wbr wn caddc co c2 cdiv cle wb avglt2 ancoms cc wceq lenlt
    recn addcom syl2an oveq1d breq1d bitr4d notbid readdcl rehalfcl syl 3bitr4d
    syldan ) ACDZBCDZEZBAFGZHABIJZKLJZAFGZHZABMGAUQMGZUNUOURUNUOBAIJZKLJZAFGZUR
    UMULUOVCNBAOPUNUQVBAFUNUPVAKLULAQDBQDUPVARUMATBTABUAUBUCUDUEUFABSULUMUQCDZU
    TUSNUNUPCDVDABUGUPUHUIAUQSUKUJ $.

  $( Ordering property for average.  (Contributed by Jeff Hankins,
     15-Sep-2013.)  (Revised by Mario Carneiro, 28-May-2014.) $)
  avgle2 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A <_ B <-> ( ( A + B ) / 2 ) <_ B ) ) $=
    ( cr wcel wa clt wbr wn caddc co c2 cdiv cle wb avglt1 ancoms cc wceq lenlt
    recn addcom syl2an oveq1d breq2d bitr4d notbid readdcl rehalfcl syl 3bitr4d
    sylancom ) ACDZBCDZEZBAFGZHBABIJZKLJZFGZHZABMGUQBMGZUNUOURUNUOBBAIJZKLJZFGZ
    URUMULUOVCNBAOPUNUQVBBFUNUPVAKLULAQDBQDUPVARUMATBTABUAUBUCUDUEUFABSULUMUQCD
    ZUTUSNUNUPCDVDABUGUPUHUIUQBSUKUJ $.

  ${
    2timesd.1 $e |- ( ph -> A e. CC ) $.
    $( Two times a number.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    2timesd $p |- ( ph -> ( 2 x. A ) = ( A + A ) ) $=
      ( cc wcel c2 cmul co caddc wceq 2times syl ) ABDEFBGHBBIHJCBKL $.

    $( A number times 2.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    times2d $p |- ( ph -> ( A x. 2 ) = ( A + A ) ) $=
      ( cc wcel c2 cmul co caddc wceq times2 syl ) ABDEBFGHBBIHJCBKL $.

    $( Closure of half of a number (frequently used special case).
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    halfcld $p |- ( ph -> ( A / 2 ) e. CC ) $=
      ( cc wcel c2 cdiv co halfcl syl ) ABDEBFGHDECBIJ $.

    $( Two halves make a whole.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    2halvesd $p |- ( ph -> ( ( A / 2 ) + ( A / 2 ) ) = A ) $=
      ( cc wcel c2 cdiv co caddc wceq 2halves syl ) ABDEBFGHZMIHBJCBKL $.
  $}

  ${
    rehalfcld.1 $e |- ( ph -> A e. RR ) $.
    $( Real closure of half.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    rehalfcld $p |- ( ph -> ( A / 2 ) e. RR ) $=
      ( cr wcel c2 cdiv co rehalfcl syl ) ABDEBFGHDECBIJ $.

    lt2halvesd.2 $e |- ( ph -> B e. RR ) $.
    lt2halvesd.3 $e |- ( ph -> C e. RR ) $.
    lt2halvesd.4 $e |- ( ph -> A < ( C / 2 ) ) $.
    lt2halvesd.5 $e |- ( ph -> B < ( C / 2 ) ) $.
    $( A sum is less than the whole if each term is less than half.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    lt2halvesd $p |- ( ph -> ( A + B ) < C ) $=
      ( c2 cdiv co clt wbr caddc cr wcel wa wi lt2halves syl3anc mp2and ) ABDJK
      LZMNZCUCMNZBCOLDMNZHIABPQCPQDPQUDUERUFSEFGBCDTUAUB $.
  $}

  ${
    rehalfcli.1 $e |- A e. RR $.
    $( Half a real number is real.  Inference form.  (Contributed by David
       Moews, 28-Feb-2017.) $)
    rehalfcli $p |- ( A / 2 ) e. RR $=
      ( cr wcel c2 cdiv co rehalfcl ax-mp ) ACDAEFGCDBAHI $.
  $}

  $( Adding two times 1 to a number.  (Contributed by AV, 22-Sep-2018.) $)
  add1p1 $p |- ( N e. CC -> ( ( N + 1 ) + 1 ) = ( N + 2 ) ) $=
    ( cc wcel c1 caddc co c2 id 1cnd addassd wceq 1p1e2 a1i oveq2d eqtrd ) ABCZ
    ADEFDEFADDEFZEFAGEFPADDPHPIZRJPQGAEQGKPLMNO $.

  $( Subtracting two times 1 from a number.  (Contributed by AV,
     23-Oct-2018.) $)
  sub1m1 $p |- ( N e. CC -> ( ( N - 1 ) - 1 ) = ( N - 2 ) ) $=
    ( cc wcel c1 cmin co caddc c2 id 1cnd subsub4d wceq 1p1e2 a1i oveq2d eqtrd
    ) ABCZADEFDEFADDGFZEFAHEFQADDQIQJZSKQRHAERHLQMNOP $.

  $( Subtracting 2 and afterwards 1 from a number results in the difference
     between the number and 3.  (Contributed by Alexander van der Vekens,
     16-Sep-2018.) $)
  cnm2m1cnm3 $p |- ( A e. CC -> ( ( A - 2 ) - 1 ) = ( A - 3 ) ) $=
    ( cc wcel c2 cmin co c1 caddc c3 id 2cnd 1cnd subsub4d wceq 2p1e3 a1i eqtrd
    oveq2d ) ABCZADEFGEFADGHFZEFAIEFSADGSJSKSLMSTIAETINSOPRQ $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        The Archimedean property
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d n x y A $.
    $( Archimedean property of real numbers.  For any real number, there is an
       integer greater than it.  Theorem I.29 of [Apostol] p. 26.  (Contributed
       by NM, 21-Jan-1997.) $)
    arch $p |- ( A e. RR -> E. n e. NN A < n ) $=
      ( vx vy cr wcel cv clt wbr cn wrex cltrr c1 caddc co wral wa cint ax-arch
      cab dfnn2 rexeqi sylibr wb nnre ltxrlt sylan2 rexbidva mpbird ) AEFZABGZH
      IZBJKAUKLIZBJKZUJUMBMCGZFDGMNOUOFDUOPQCTRZKUNCDABSUMBJUPCDUAUBUCUJULUMBJU
      KJFUJUKEFULUMUDUKUEAUKUFUGUHUI $.
  $}

  ${
    $d n A $.
    $( There exists a positive integer whose reciprocal is less than a given
       positive real.  Exercise 3 of [Apostol] p. 28.  (Contributed by NM,
       8-Nov-2004.) $)
    nnrecl $p |- ( ( A e. RR /\ 0 < A ) -> E. n e. NN ( 1 / n ) < A ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co cv cn wrex simpl gt0ap0 rerecclapd wb
      jca adantr arch syl recgt0 nnre nngt0 ltrec syl2an recrecapd breq2d bitrd
      cc recn rexbidva mpbid ) ACDZEAFGZHZIAJKZBLZFGZBMNZIUSJKZAFGZBMNUQURCDZVA
      UQAUOUPOAPZQZURBUAUBUQUTVCBMUQUSMDZHUTVBIURJKZFGZVCUQVDEURFGZHUSCDZEUSFGZ
      HUTVIRVGUQVDVJVFAUCSVGVKVLUSUDUSUESURUSUFUGUQVIVCRVGUQVHAVBFUQAUOAUKDUPAU
      LTVEUHUITUJUMUN $.
  $}

  ${
    $d x A $.  $d x k $.
    $( A bounded real sequence ` A ( k ) ` is less than or equal to at least
       one of its indices.  (Contributed by NM, 18-Jan-2008.) $)
    bndndx $p |- ( E. x e. RR A. k e. NN ( A e. RR /\ A <_ x ) ->
                  E. k e. NN A <_ k ) $=
      ( cr wcel cv cle wbr wa cn wral wrex wi clt arch nnre lelttr ltle 3adant2
      w3a syld exp5o com3l imp4b com23 sylan2 reximdva mpd r19.35-1 rexlimiv
      syl ) BDEZBAFZGHZIZCJKZBCFZGHZCJLZADUMDEZUOURMZCJLZUPUSMUTUMUQNHZCJLVBUMC
      OUTVCVACJUQJEUTUQDEZVCVAMUQPUTVDIUOVCURUTVDULUNVCURMZULUTVDUNVEMULUTVDUNV
      CURULUTVDTUNVCIBUQNHZURBUMUQQULVDVFURMUTBUQRSUAUBUCUDUEUFUGUHUOURCJUIUKUJ
      $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Nonnegative integers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c NN0 $. $( The set of nonnegative integers (blackboard bold N_0). $)

  $( Extend class notation to include the class of nonnegative integers. $)
  cn0 $a class NN0 $.

  $( Define the set of nonnegative integers.  (Contributed by Raph Levien,
     10-Dec-2002.) $)
  df-n0 $a |- NN0 = ( NN u. { 0 } ) $.

  $( Nonnegative integers expressed in terms of naturals and zero.
     (Contributed by Raph Levien, 10-Dec-2002.) $)
  elnn0 $p |- ( A e. NN0 <-> ( A e. NN \/ A = 0 ) ) $=
    ( cn0 wcel cn cc0 csn cun wceq df-n0 eleq2i elun c0ex elsnc2 orbi2i 3bitri
    wo ) ABCADEFZGZCADCZAQCZPSAEHZPBRAIJADQKTUASAELMNO $.

  $( Positive naturals are a subset of nonnegative integers.  (Contributed by
     Raph Levien, 10-Dec-2002.) $)
  nnssnn0 $p |- NN C_ NN0 $=
    ( cn cc0 csn cun cn0 ssun1 df-n0 sseqtr4i ) AABCZDEAIFGH $.

  $( Nonnegative integers are a subset of the reals.  (Contributed by Raph
     Levien, 10-Dec-2002.) $)
  nn0ssre $p |- NN0 C_ RR $=
    ( cn0 cn cc0 csn cun cr df-n0 nnssre wcel wss 0re snssi ax-mp unssi eqsstri
    ) ABCDZEFGBPFHCFIPFJKCFLMNO $.

  $( Nonnegative integers are a subset of the complex numbers.)  (Contributed
     by NM, 9-May-2004.) $)
  nn0sscn $p |- NN0 C_ CC $=
    ( cn0 cr cc nn0ssre ax-resscn sstri ) ABCDEF $.

  $( The set of nonnegative integers exists.  (Contributed by NM,
     18-Jul-2004.) $)
  nn0ex $p |- NN0 e. _V $=
    ( cn0 cn cc0 csn cun cvv df-n0 nnex c0ex snex unex eqeltri ) ABCDZEFGBMHCIJ
    KL $.

  $( A positive integer is a nonnegative integer.  (Contributed by NM,
     9-May-2004.) $)
  nnnn0 $p |- ( A e. NN -> A e. NN0 ) $=
    ( cn cn0 nnssnn0 sseli ) BCADE $.

  ${
    nnnn0.1 $e |- N e. NN $.
    $( A positive integer is a nonnegative integer.  (Contributed by NM,
       20-Jun-2005.) $)
    nnnn0i $p |- N e. NN0 $=
      ( cn wcel cn0 nnnn0 ax-mp ) ACDAEDBAFG $.
  $}

  $( A nonnegative integer is a real number.  (Contributed by NM,
     9-May-2004.) $)
  nn0re $p |- ( A e. NN0 -> A e. RR ) $=
    ( cn0 cr nn0ssre sseli ) BCADE $.

  $( A nonnegative integer is a complex number.  (Contributed by NM,
     9-May-2004.) $)
  nn0cn $p |- ( A e. NN0 -> A e. CC ) $=
    ( cn0 cc nn0sscn sseli ) BCADE $.

  ${
    nn0re.1 $e |- A e. NN0 $.
    $( A nonnegative integer is a real number.  (Contributed by NM,
       14-May-2003.) $)
    nn0rei $p |- A e. RR $=
      ( cn0 cr nn0ssre sselii ) CDAEBF $.

    $( A nonnegative integer is a complex number.  (Contributed by NM,
       14-May-2003.) $)
    nn0cni $p |- A e. CC $=
      ( nn0rei recni ) AABCD $.
  $}

  $( The set of positive integers defined in terms of nonnegative integers.
     (Contributed by NM, 23-Sep-2007.)  (Proof shortened by Mario Carneiro,
     13-Feb-2013.) $)
  dfn2 $p |- NN = ( NN0 \ { 0 } ) $=
    ( cn0 cc0 csn cdif cn cun df-n0 difeq1i difun2 wcel wceq 0nnn difsn 3eqtrri
    wn ax-mp ) ABCZDEQFZQDEQDZEARQGHEQIBEJOSEKLBEMPN $.

  $( The positive integer property expressed in terms of difference from zero.
     (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
  elnnne0 $p |- ( N e. NN <-> ( N e. NN0 /\ N =/= 0 ) ) $=
    ( cn wcel cn0 cc0 csn cdif wne wa dfn2 eleq2i eldifsn bitri ) ABCADEFGZCADC
    AEHIBNAJKADELM $.

  $( 0 is a nonnegative integer.  (Contributed by Raph Levien, 10-Dec-2002.) $)
  0nn0 $p |- 0 e. NN0 $=
    ( cc0 wceq cn0 wcel eqid cn wo elnn0 biimpri olcs ax-mp ) AABZACDZAEAFDZLMM
    NLGAHIJK $.

  $( 1 is a nonnegative integer.  (Contributed by Raph Levien, 10-Dec-2002.) $)
  1nn0 $p |- 1 e. NN0 $=
    ( c1 1nn nnnn0i ) ABC $.

  $( 2 is a nonnegative integer.  (Contributed by Raph Levien, 10-Dec-2002.) $)
  2nn0 $p |- 2 e. NN0 $=
    ( c2 2nn nnnn0i ) ABC $.

  $( 3 is a nonnegative integer.  (Contributed by Mario Carneiro,
     18-Feb-2014.) $)
  3nn0 $p |- 3 e. NN0 $=
    ( c3 3nn nnnn0i ) ABC $.

  $( 4 is a nonnegative integer.  (Contributed by Mario Carneiro,
     18-Feb-2014.) $)
  4nn0 $p |- 4 e. NN0 $=
    ( c4 4nn nnnn0i ) ABC $.

  $( 5 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  5nn0 $p |- 5 e. NN0 $=
    ( c5 5nn nnnn0i ) ABC $.

  $( 6 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  6nn0 $p |- 6 e. NN0 $=
    ( c6 6nn nnnn0i ) ABC $.

  $( 7 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  7nn0 $p |- 7 e. NN0 $=
    ( c7 7nn nnnn0i ) ABC $.

  $( 8 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  8nn0 $p |- 8 e. NN0 $=
    ( c8 8nn nnnn0i ) ABC $.

  $( 9 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  9nn0 $p |- 9 e. NN0 $=
    ( c9 9nn nnnn0i ) ABC $.

  $( 10 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  10nn0 $p |- 10 e. NN0 $=
    ( c10 10nn nnnn0i ) ABC $.

  $( A nonnegative integer is greater than or equal to zero.  (Contributed by
     NM, 9-May-2004.)  (Revised by Mario Carneiro, 16-May-2014.) $)
  nn0ge0 $p |- ( N e. NN0 -> 0 <_ N ) $=
    ( cn0 wcel cn cc0 wceq wo cle wbr elnn0 cr clt nnre nngt0 wi ltle mpan sylc
    0re 0le0 breq2 mpbiri jaoi sylbi ) ABCADCZAEFZGEAHIZAJUEUGUFUEAKCZEALIZUGAM
    ANEKCUHUIUGOSEAPQRUFUGEEHITAEEHUAUBUCUD $.

  $( A nonnegative integer is not less than zero.  (Contributed by NM,
     9-May-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  nn0nlt0 $p |- ( A e. NN0 -> -. A < 0 ) $=
    ( cn0 wcel cc0 cle wbr clt wn nn0ge0 cr wb 0re nn0re lenlt sylancr mpbid )
    ABCZDAEFZADGFHZAIQDJCAJCRSKLAMDANOP $.

  ${
    nn0ge0.1 $e |- N e. NN0 $.
    $( Nonnegative integers are nonnegative.  (Contributed by Raph Levien,
       10-Dec-2002.) $)
    nn0ge0i $p |- 0 <_ N $=
      ( cn0 wcel cc0 cle wbr nn0ge0 ax-mp ) ACDEAFGBAHI $.
  $}

  $( A nonnegative integer is less than or equal to zero iff it is equal to
     zero.  (Contributed by NM, 9-Dec-2005.) $)
  nn0le0eq0 $p |- ( N e. NN0 -> ( N <_ 0 <-> N = 0 ) ) $=
    ( cn0 wcel cc0 cle wbr wa nn0ge0 biantrud cr wb nn0re letri3 sylancl bitr4d
    wceq 0re ) ABCZADEFZSDAEFZGZADPZRTSAHIRAJCDJCUBUAKALQADMNO $.

  $( A nonnegative integer increased by 1 is greater than 0.  (Contributed by
     Alexander van der Vekens, 3-Oct-2018.) $)
  nn0p1gt0 $p |- ( N e. NN0 -> 0 < ( N + 1 ) ) $=
    ( cn0 wcel c1 nn0re 1red nn0ge0 cc0 clt wbr 0lt1 a1i addgegt0d ) ABCZADAENF
    AGHDIJNKLM $.

  $( A positive integer plus a nonnegative integer is a positive integer.
     (Contributed by NM, 20-Apr-2005.)  (Proof shortened by Mario Carneiro,
     16-May-2014.) $)
  nnnn0addcl $p |- ( ( M e. NN /\ N e. NN0 ) -> ( M + N ) e. NN ) $=
    ( cn0 wcel cn cc0 wceq wo caddc co elnn0 nnaddcl wa oveq2 addid1d sylan9eqr
    nncn simpl eqeltrd jaodan sylan2b ) BCDAEDZBEDZBFGZHABIJZEDZBKUBUCUFUDABLUB
    UDMUEAEUDUBUEAFIJABFAINUBAAQOPUBUDRSTUA $.

  $( A nonnegative integer plus a positive integer is a positive integer.
     (Contributed by NM, 22-Dec-2005.) $)
  nn0nnaddcl $p |- ( ( M e. NN0 /\ N e. NN ) -> ( M + N ) e. NN ) $=
    ( cn wcel cn0 caddc co wa wceq nncn nn0cn addcom syl2an nnnn0addcl eqeltrrd
    cc ancoms ) BCDZAEDZABFGZCDRSHBAFGZTCRBPDAPDUATISBJAKBALMBANOQ $.

  $( The result of subtracting a positive integer from 0 is not a nonnegative
     integer.  (Contributed by Alexander van der Vekens, 19-Mar-2018.) $)
  0mnnnnn0 $p |- ( N e. NN -> ( 0 - N ) e/ NN0 ) $=
    ( cn wcel cc0 cmin co cn0 wnel 0re cneg df-neg eqcomi eleq1i cle wbr nn0ge0
    wn cr nnre le0neg1d clt nngt0 0red lenltd pm2.21 syl6bi mpid sylbird syl5bi
    wi syl5 mt2i df-nel sylibr ) ABCZDAEFZGCZQUPGHUOUQDRCZIUQAJZGCZUOURQZUPUSGU
    SUPAKLMUTDUSNOZUOVAUSPUOVBADNOZVAUOAASZTUOVCDAUAOZVAAUBUOVCVEQVEVAUJUOADVDU
    OUCUDVEVAUEUFUGUHUKUIULUPGUMUN $.

  ${
    un0addcl.1 $e |- ( ph -> S C_ CC ) $.
    un0addcl.2 $e |- T = ( S u. { 0 } ) $.
    ${
      un0addcl.3 $e |- ( ( ph /\ ( M e. S /\ N e. S ) ) -> ( M + N ) e. S ) $.
      $( If ` S ` is closed under addition, then so is ` S u. { 0 } ` .
         (Contributed by Mario Carneiro, 17-Jul-2014.) $)
      un0addcl $p |- ( ( ph /\ ( M e. T /\ N e. T ) ) -> ( M + N ) e. T ) $=
        ( wcel caddc co cc0 wo wa eleq2i elun bitri cc sselda eqeltrd csn ssun1
        cun sseqtr4i sseldi expr addid2d wss a1i elsni oveq1d eleq1d syl5ibrcom
        wi impancom jaodan sylan2b 0cnd snssd unssd syl5eqss addid1d simpr jaod
        oveq2d syl5bi impr ) ADCIZECIZDEJKZCIZVIEBIZELUAZIZMZAVHNZVKVIEBVMUCZIV
        OCVQEGOEBVMPQVPVLVKVNVHADBIZDVMIZMZVLVKUNZVHDVQIVTCVQDGODBVMPQAVRWAVSAV
        RVLVKAVRVLNNBCVJBVQCBVMUBGUDZHUEUFAVLVSVKAVLNZVKVSLEJKZCIWCWDECWCEABREF
        SUGABCEBCUHAWBUISTVSVJWDCVSDLEJDLUJUKULUMUOUPUQVPVKVNDLJKZCIVPWEDCVPDAC
        RDACVQRGABVMRFALRAURUSUTVASVBAVHVCTVNVJWECVNELDJELUJVEULUMVDVFVG $.
    $}

    un0mulcl.3 $e |- ( ( ph /\ ( M e. S /\ N e. S ) ) -> ( M x. N ) e. S ) $.
    $( If ` S ` is closed under multiplication, then so is ` S u. { 0 } ` .
       (Contributed by Mario Carneiro, 17-Jul-2014.) $)
    un0mulcl $p |- ( ( ph /\ ( M e. T /\ N e. T ) ) -> ( M x. N ) e. T ) $=
      ( wcel cmul co cc0 wo wa eleq2i elun bitri sseqtr4i cc sselda csn wi expr
      cun ssun1 sseldi mul02d wss ssun2 c0ex mpbir syl6eqel elsni oveq1d eleq1d
      snss syl5ibrcom impancom jaodan sylan2b 0cnd snssd syl5eqss mul01d oveq2d
      unssd jaod syl5bi impr ) ADCIZECIZDEJKZCIZVKEBIZELUAZIZMZAVJNZVMVKEBVOUDZ
      IVQCVSEGOEBVOPQVRVNVMVPVJADBIZDVOIZMZVNVMUBZVJDVSIWBCVSDGODBVOPQAVTWCWAAV
      TVNVMAVTVNNNBCVLBVSCBVOUEGRHUFUCAVNWAVMAVNNZVMWALEJKZCIWDWELCWDEABSEFTUGL
      CIVOCUHVOVSCVOBUIGRLCUJUPUKZULWAVLWECWADLEJDLUMUNUOUQURUSUTVRVMVPDLJKZCIV
      RWGLCVRDACSDACVSSGABVOSFALSAVAVBVFVCTVDWFULVPVLWGCVPELDJELUMVEUOUQVGVHVI
      $.
  $}

  $( Closure of addition of nonnegative integers.  (Contributed by Raph Levien,
     10-Dec-2002.)  (Proof shortened by Mario Carneiro, 17-Jul-2014.) $)
  nn0addcl $p |- ( ( M e. NN0 /\ N e. NN0 ) -> ( M + N ) e. NN0 ) $=
    ( cn cc wss cn0 wcel wa caddc co nnsscn df-n0 nnaddcl adantl un0addcl mpan
    id ) CDEZAFGBFGHABIJZFGKRCFABRQLACGBCGHSCGRABMNOP $.

  $( Closure of multiplication of nonnegative integers.  (Contributed by NM,
     22-Jul-2004.)  (Proof shortened by Mario Carneiro, 17-Jul-2014.) $)
  nn0mulcl $p |- ( ( M e. NN0 /\ N e. NN0 ) -> ( M x. N ) e. NN0 ) $=
    ( cn cc wss cn0 wcel wa cmul co nnsscn df-n0 nnmulcl adantl un0mulcl mpan
    id ) CDEZAFGBFGHABIJZFGKRCFABRQLACGBCGHSCGRABMNOP $.

  ${
    nn0addcl.1 $e |- M e. NN0 $.
    nn0addcl.2 $e |- N e. NN0 $.
    $( Closure of addition of nonnegative integers, inference form.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0addcli $p |- ( M + N ) e. NN0 $=
      ( cn0 wcel caddc co nn0addcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Closure of multiplication of nonnegative integers, inference form.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0mulcli $p |- ( M x. N ) e. NN0 $=
      ( cn0 wcel cmul co nn0mulcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( A nonnegative integer plus 1 is a positive integer.  (Contributed by Raph
     Levien, 30-Jun-2006.)  (Revised by Mario Carneiro, 16-May-2014.) $)
  nn0p1nn $p |- ( N e. NN0 -> ( N + 1 ) e. NN ) $=
    ( cn0 wcel c1 cn caddc co 1nn nn0nnaddcl mpan2 ) ABCDECADFGECHADIJ $.

  $( Second Peano postulate for nonnegative integers.  (Contributed by NM,
     9-May-2004.) $)
  peano2nn0 $p |- ( N e. NN0 -> ( N + 1 ) e. NN0 ) $=
    ( cn0 wcel c1 caddc co 1nn0 nn0addcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( A positive integer minus 1 is a nonnegative integer.  (Contributed by
     Jason Orendorff, 24-Jan-2007.)  (Revised by Mario Carneiro,
     16-May-2014.) $)
  nnm1nn0 $p |- ( N e. NN -> ( N - 1 ) e. NN0 ) $=
    ( cn wcel c1 cmin co cc0 wceq wo cn0 nn1m1nn oveq1 syl6eq orim1i syl orcomd
    1m1e0 elnn0 sylibr ) ABCZADEFZBCZUAGHZIUAJCTUCUBTADHZUBIUCUBIAKUDUCUBUDUADD
    EFGADDELQMNOPUARS $.

  $( The nonnegative integer property expressed in terms of positive integers.
     (Contributed by NM, 10-May-2004.)  (Proof shortened by Mario Carneiro,
     16-May-2014.) $)
  elnn0nn $p |- ( N e. NN0 <-> ( N e. CC /\ ( N + 1 ) e. NN ) ) $=
    ( cn0 wcel cc c1 caddc co cn nn0cn nn0p1nn jca cmin wceq simpl ax-1cn pncan
    wa sylancl nnm1nn0 adantl eqeltrrd impbii ) ABCZADCZAEFGZHCZQZUCUDUFAIAJKUG
    UEELGZABUGUDEDCUHAMUDUFNOAEPRUFUHBCUDUESTUAUB $.

  $( The positive integer property expressed in terms of nonnegative integers.
     (Contributed by NM, 10-May-2004.) $)
  elnnnn0 $p |- ( N e. NN <-> ( N e. CC /\ ( N - 1 ) e. NN0 ) ) $=
    ( cn wcel cc c1 cmin co cn0 nncn caddc wa npcan1 eleq1d peano2cnm biantrurd
    bitr3d elnn0nn syl6bbr biadan2 ) ABCZADCZAEFGZHCZAIUATUBDCZUBEJGZBCZKZUCUAU
    FTUGUAUEABALMUAUDUFANOPUBQRS $.

  $( The positive integer property expressed in terms of nonnegative integers.
     (Contributed by NM, 1-Sep-2005.) $)
  elnnnn0b $p |- ( N e. NN <-> ( N e. NN0 /\ 0 < N ) ) $=
    ( cn wcel cn0 cc0 clt wbr wa nnnn0 nngt0 jca wceq wo elnn0 ax-1 breq2 ltnri
    wi 0re pm2.21i syl6bi jaoi sylbi imp impbii ) ABCZADCZEAFGZHUFUGUHAIAJKUGUH
    UFUGUFAELZMUHUFRZANUFUJUIUFUHOUIUHEEFGZUFAEEFPUKUFESQTUAUBUCUDUE $.

  $( The positive integer property expressed in terms of nonnegative integers.
     (Contributed by NM, 10-Jan-2006.) $)
  elnnnn0c $p |- ( N e. NN <-> ( N e. NN0 /\ 1 <_ N ) ) $=
    ( cn wcel cn0 c1 cle wbr wa nnnn0 nnge1 jca cc0 clt 0lt1 cr wi nn0re ltletr
    0re 1re mp3an12 syl mpani imdistani elnnnn0b sylibr impbii ) ABCZADCZEAFGZH
    ZUHUIUJAIAJKUKUILAMGZHUHUIUJULUILEMGZUJULNUIAOCZUMUJHULPZAQLOCEOCUNUOSTLEAR
    UAUBUCUDAUEUFUG $.

  $( A number is less than or equal to itself plus a nonnegative integer.
     (Contributed by NM, 10-Mar-2005.) $)
  nn0addge1 $p |- ( ( A e. RR /\ N e. NN0 ) -> A <_ ( A + N ) ) $=
    ( cn0 wcel cr cc0 cle wbr wa caddc co nn0re nn0ge0 jca addge01 3expb sylan2
    biimp3a ) BCDZAEDZBEDZFBGHZIAABJKGHZSUAUBBLBMNTUAUBUCTUAUBUCABORPQ $.

  $( A number is less than or equal to itself plus a nonnegative integer.
     (Contributed by NM, 10-Mar-2005.) $)
  nn0addge2 $p |- ( ( A e. RR /\ N e. NN0 ) -> A <_ ( N + A ) ) $=
    ( cn0 wcel cr cc0 cle wbr wa caddc co nn0re nn0ge0 jca addge02 3expb sylan2
    biimp3a ) BCDZAEDZBEDZFBGHZIABAJKGHZSUAUBBLBMNTUAUBUCTUAUBUCABORPQ $.

  ${
    nn0addge1.1 $e |- A e. RR $.
    nn0addge1.2 $e |- N e. NN0 $.
    $( A number is less than or equal to itself plus a nonnegative integer.
       (Contributed by NM, 10-Mar-2005.) $)
    nn0addge1i $p |- A <_ ( A + N ) $=
      ( cr wcel cn0 caddc co cle wbr nn0addge1 mp2an ) AEFBGFAABHIJKCDABLM $.

    $( A number is less than or equal to itself plus a nonnegative integer.
       (Contributed by NM, 10-Mar-2005.) $)
    nn0addge2i $p |- A <_ ( N + A ) $=
      ( cr wcel cn0 caddc co cle wbr nn0addge2 mp2an ) AEFBGFABAHIJKCDABLM $.
  $}

  ${
    nn0le2x.1 $e |- N e. NN0 $.
    $( A nonnegative integer is less than or equal to twice itself.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0le2xi $p |- N <_ ( 2 x. N ) $=
      ( caddc co c2 cmul cle nn0rei nn0addge1i nn0cni 2timesi breqtrri ) AAACDE
      AFDGAAABHBIAABJKL $.
  $}

  ${
    nn0lele2x.1 $e |- M e. NN0 $.
    nn0lele2x.2 $e |- N e. NN0 $.
    $( 'Less than or equal to' implies 'less than or equal to twice' for
       nonnegative integers.  (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0lele2xi $p |- ( N <_ M -> N <_ ( 2 x. M ) ) $=
      ( cle wbr c2 cmul co nn0le2xi nn0rei 2re remulcli letri mpan2 ) BAEFAGAHI
      ZEFBPEFACJBAPBDKACKZGALQMNO $.
  $}

  $( Two ways to write the support of a function on ` NN0 ` .  (Contributed by
     Mario Carneiro, 29-Dec-2014.) $)
  nn0supp $p |- ( F : I --> NN0 ->
    ( `' F " ( _V \ { 0 } ) ) = ( `' F " NN ) ) $=
    ( cn0 wf ccnv cn cima cvv cc0 csn cdif dfn2 invdif eqtr4i imaeq2i wfun wceq
    cin ffun inpreima syl wss cdm cnvimass fimacnv syl5sseq sseqin2 sylib eqtrd
    fdm eqtr4d syl5req ) BCADZAEZFGUNCHIJZKZRZGZUNUPGZFUQUNFCUOKUQLCUOMNOUMURUN
    CGZUSRZUSUMAPURVAQBCASCUPATUAUMUSUTUBVAUSQUMAUCZUSUTAUPUDUMVBBUTBCAUJBCAUEU
    KUFUSUTUGUHUIUL $.

  ${
    nnnn0d.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is a nonnegative integer.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnnn0d $p |- ( ph -> A e. NN0 ) $=
      ( cn cn0 nnssnn0 sseldi ) ADEBFCG $.
  $}

  ${
    nn0red.1 $e |- ( ph -> A e. NN0 ) $.
    $( A nonnegative integer is a real number.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nn0red $p |- ( ph -> A e. RR ) $=
      ( cn0 cr nn0ssre sseldi ) ADEBFCG $.

    $( A nonnegative integer is a complex number.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nn0cnd $p |- ( ph -> A e. CC ) $=
      ( nn0red recnd ) ABABCDE $.

    $( A nonnegative integer is greater than or equal to zero.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    nn0ge0d $p |- ( ph -> 0 <_ A ) $=
      ( cn0 wcel cc0 cle wbr nn0ge0 syl ) ABDEFBGHCBIJ $.

    nn0addcld.2 $e |- ( ph -> B e. NN0 ) $.
    $( Closure of addition of nonnegative integers, inference form.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    nn0addcld $p |- ( ph -> ( A + B ) e. NN0 ) $=
      ( cn0 wcel caddc co nn0addcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of multiplication of nonnegative integers, inference form.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    nn0mulcld $p |- ( ph -> ( A x. B ) e. NN0 ) $=
      ( cn0 wcel cmul co nn0mulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  $( Closure law for addition of reals, restricted to nonnegative integers.
     (Contributed by Alexander van der Vekens, 6-Apr-2018.) $)
  nn0readdcl $p |- ( ( A e. NN0 /\ B e. NN0 ) -> ( A + B ) e. RR ) $=
    ( cn0 wcel wa caddc co nn0addcl nn0red ) ACDBCDEABFGABHI $.

  $( If a nonnegative integer is greater than or equal to two, the integer
     decreased by 1 is a positive integer.  (Contributed by Alexander van der
     Vekens, 1-Aug-2018.)  (Revised by AV, 4-Jan-2020.) $)
  nn0ge2m1nn $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. NN ) $=
    ( cn0 wcel c2 cle wbr wa c1 cmin co cn wo wceq simpl w3a clt 1red 2re 1lt2
    cr a1i nn0re 3jca adantr simpr jctil ltleletr elnnnn0c sylanbrc nn1m1nn syl
    sylc wi wn 1re lenlti biimpi breq2 mtbiri pm2.21d com12 adantl orim1d oridm
    mt2 mpd sylib ) ABCZDAEFZGZAHIJKCZVKLZVKVJAHMZVKLZVLVJAKCZVNVJVHHAEFZVOVHVI
    NVJHTCZDTCZATCZOZHDPFZVIGVPVHVTVIVHVQVRVSVHQVRVHRUAAUBUCUDVJVIWAVHVIUESUFHD
    AUGULAUHUIAUJUKVJVMVKVKVIVMVKUMVHVMVIVKVMVIVKVMVIDHEFZWBWASWBWAUNDHRUOUPUQV
    EAHDEURUSUTVAVBVCVFVKVDVG $.

  $( If a nonnegative integer is greater than or equal to two, the integer
     decreased by 1 is also a nonnegative integer.  (Contributed by Alexander
     van der Vekens, 1-Aug-2018.) $)
  nn0ge2m1nn0 $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. NN0 ) $=
    ( cn0 wcel c2 cle wbr wa c1 cmin co nn0ge2m1nn nnnn0d ) ABCDAEFGAHIJAKL $.

  $( Closure law for dividing of a nonnegative integer by a positive integer.
     (Contributed by Alexander van der Vekens, 14-Apr-2018.) $)
  nn0nndivcl $p |- ( ( K e. NN0 /\ L e. NN ) -> ( K / L ) e. RR ) $=
    ( cn0 wcel cn wa cr nn0re adantr simpr nndivred ) ACDZBEDZFABLAGDMAHILMJK
    $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Integers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ZZ $. $( The set of integers (blackboard bold Z). $)

  $( Extend class notation to include the class of integers. $)
  cz $a class ZZ $.

  $( Define the set of integers, which are the positive and negative integers
     together with zero.  Definition of integers in [Apostol] p. 22.  The
     letter Z abbreviates the German word Zahlen meaning "numbers."
     (Contributed by NM, 8-Jan-2002.) $)
  df-z $a |- ZZ = { n e. RR | ( n = 0 \/ n e. NN \/ -u n e. NN ) } $.

  ${
    $d x N $.
    $( Membership in the set of integers.  (Contributed by NM, 8-Jan-2002.) $)
    elz $p |- ( N e. ZZ <->
              ( N e. RR /\ ( N = 0 \/ N e. NN \/ -u N e. NN ) ) ) $=
      ( vx cv cc0 wceq cn wcel cneg w3o cr cz eqeq1 eleq1 eleq1d 3orbi123d df-z
      negeq elrab2 ) BCZDEZSFGZSHZFGZIADEZAFGZAHZFGZIBAJKSAEZTUDUAUEUCUGSADLSAF
      MUHUBUFFSAQNOBPR $.
  $}

  $( The negative of a positive integer is an integer.  (Contributed by NM,
     12-Jan-2002.) $)
  nnnegz $p |- ( N e. NN -> -u N e. ZZ ) $=
    ( cn wcel cneg cr cc0 wceq w3o cz nnre renegcld cc nncn negneg eleq1d mpcom
    biimprd 3mix3d elz sylanbrc ) ABCZADZECUBFGZUBBCZUBDZBCZHUBICUAAAJKUAUFUCUD
    ALCZUAUFAMUGUFUAUGUEABANOQPRUBST $.

  $( An integer is a real.  (Contributed by NM, 8-Jan-2002.) $)
  zre $p |- ( N e. ZZ -> N e. RR ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o elz simplbi ) ABCADCAEFAGCAHGCIAJK $.

  $( An integer is a complex number.  (Contributed by NM, 9-May-2004.) $)
  zcn $p |- ( N e. ZZ -> N e. CC ) $=
    ( cz wcel zre recnd ) ABCAADE $.

  ${
    zre.1 $e |- A e. ZZ $.
    $( An integer is a real number.  (Contributed by NM, 14-Jul-2005.) $)
    zrei $p |- A e. RR $=
      ( cz wcel cr zre ax-mp ) ACDAEDBAFG $.
  $}

  $( The integers are a subset of the reals.  (Contributed by NM,
     2-Aug-2004.) $)
  zssre $p |- ZZ C_ RR $=
    ( vx cz cr cv zre ssriv ) ABCADEF $.

  $( The integers are a subset of the complex numbers.  (Contributed by NM,
     2-Aug-2004.) $)
  zsscn $p |- ZZ C_ CC $=
    ( vx cz cc cv zcn ssriv ) ABCADEF $.

  $( The set of integers exists.  (Contributed by NM, 30-Jul-2004.)  (Revised
     by Mario Carneiro, 17-Nov-2014.) $)
  zex $p |- ZZ e. _V $=
    ( cz cc cnex zsscn ssexi ) ABCDE $.

  $( Positive integer property expressed in terms of integers.  (Contributed by
     NM, 8-Jan-2002.) $)
  elnnz $p |- ( N e. NN <-> ( N e. ZZ /\ 0 < N ) ) $=
    ( cn wcel cr cneg cc0 wceq wo wa clt wbr cz orc nngt0 jca31 wi wn w3o bitri
    nnre idd lt0neg2 renegcl 0re ltnsym sylancl sylbid nsyl gt0ne0 neneqd ioran
    imp sylanbrc pm2.21d jaod ex com23 imp31 impbii 3orrot 3orass anbi2i anbi1i
    elz bitr4i ) ABCZADCZVFAEZBCZAFGZHZHZIZFAJKZIZALCZVNIVFVOVFVGVLVNATVFVKMANO
    VGVLVNVFVGVNVLVFVGVNVLVFPVGVNIZVFVFVKVQVFUAVQVKVFVQVIQVJQVKQVQFVHJKZVIVGVNV
    RQZVGVNVHFJKZVSAUBVGVHDCFDCVTVSPAUCUDVHFUEUFUGULVHNUHVQAFAUIUJVIVJUKUMUNUOU
    PUQURUSVPVMVNVPVGVJVFVIRZIVMAVDWAVLVGWAVFVIVJRVLVJVFVIUTVFVIVJVASVBSVCVE $.

  $( Zero is an integer.  (Contributed by NM, 12-Jan-2002.) $)
  0z $p |- 0 e. ZZ $=
    ( cc0 cz wcel cr wceq cn cneg w3o 0re eqid 3mix1i elz mpbir2an ) ABCADCAAEZ
    AFCZAGFCZHINOPAJKALM $.

  $( Zero is an integer, deductive form (common case).  (Contributed by David
     A. Wheeler, 8-Dec-2018.) $)
  0zd $p |- ( ph -> 0 e. ZZ ) $=
    ( cc0 cz wcel 0z a1i ) BCDAEF $.

  $( Nonnegative integer property expressed in terms of integers.  (Contributed
     by NM, 9-May-2004.) $)
  elnn0z $p |- ( N e. NN0 <-> ( N e. ZZ /\ 0 <_ N ) ) $=
    ( cn0 wcel cz cc0 cle wbr wa cr wceq cn cneg w3o nn0re elnn0 adantr a1i clt
    wo wi biimpi orcomd 3mix1 3mix2 jaoi syl elz sylanbrc nn0ge0 jca 0nn0 eleq1
    simprbi mpbiri nnnn0 wn simpr 0red lenltd mpbid nngt0 lt0neg1d syl5ibr mtod
    zre pm2.21d 3jaod mpd impbii ) ABCZADCZEAFGZHZVJVKVLVJAICZAEJZAKCZALZKCZMZV
    KANVJVOVPSVSVJVPVOVJVPVOSAOUAUBVOVSVPVOVPVRUCVPVOVRUDUEUFAUGZUHAUIUJVMVSVJV
    KVSVLVKVNVSVTUMPVMVOVJVPVRVOVJTVMVOVJEBCUKAEBULUNQVPVJTVMAUOQVMVRVJVMVRAERG
    ZVMVLWAUPVKVLUQVMEAVMURVKVNVLAVEPZUSUTVRWAVMEVQRGVQVAVMAWBVBVCVDVFVGVHVI $.

  $( Integer property expressed in terms nonnegative integers and positive
     integers.  (Contributed by NM, 10-May-2004.) $)
  elznn0nn $p |- ( N e. ZZ <-> ( N e. NN0 \/ ( N e. RR /\ -u N e. NN ) ) ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o wa cn0 wo elz andi df-3or anbi2i pm4.71ri
    nn0re elnn0 bitri orcom orbi1i 3bitr4i ) ABCADCZAEFZAGCZAHGCZIZJZAKCZUDUGJZ
    LZAMUDUEUFLZUGLZJUDUMJZUKLUIULUDUMUGNUHUNUDUEUFUGOPUJUOUKUJUDUJJUOUJUDARQUJ
    UMUDUJUFUELUMASUFUEUATPTUBUCT $.

  $( Integer property expressed in terms of nonnegative integers.  (Contributed
     by NM, 9-May-2004.) $)
  elznn0 $p |- ( N e. ZZ <-> ( N e. RR /\ ( N e. NN0 \/ -u N e. NN0 ) ) ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o wa cn0 wo elz wb elnn0 a1i recn 0cn bitri
    cc negcon1 sylancl eqeq1i eqcom syl6bb orbi2d syl5bb orbi12d 3orass orordir
    neg0 orcom 3bitrri syl6rbb pm5.32i ) ABCADCZAEFZAGCZAHZGCZIZJUPAKCZUSKCZLZJ
    AMUPVAVDUPVDURUQLZUTUQLZLZVAUPVBVEVCVFVBVENUPAOPVCUTUSEFZLUPVFUSOUPVHUQUTUP
    VHEHZAFZUQUPATCETCVHVJNAQRAEUAUBVJEAFUQVIEAUKUCEAUDSUEUFUGUHVAUQURUTLZLVKUQ
    LVGUQURUTUIUQVKULURUTUQUJUMUNUOS $.

  $( Integer property expressed in terms of positive integers and nonnegative
     integers.  (Contributed by NM, 12-Jul-2005.) $)
  elznn $p |- ( N e. ZZ <-> ( N e. RR /\ ( N e. NN \/ -u N e. NN0 ) ) ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o wa cn0 wo elz recn negeq0d elnn0 syl6rbbr
    orbi2d 3orrot bitri 3orass pm5.32i ) ABCADCZAEFZAGCZAHZGCZIZJUCUEUFKCZLZJAM
    UCUHUJUCUJUEUGUDLZLZUHUCUIUKUEUCUKUGUFEFZLUIUCUDUMUGUCAANORUFPQRUHUEUGUDIUL
    UDUEUGSUEUGUDUATQUBT $.

  $( Positive integers are a subset of integers.  (Contributed by NM,
     9-Jan-2002.) $)
  nnssz $p |- NN C_ ZZ $=
    ( vx cn cz cv wcel cc0 clt wbr elnnz simplbi ssriv ) ABCADZBELCEFLGHLIJK $.

  $( Nonnegative integers are a subset of the integers.  (Contributed by NM,
     9-May-2004.) $)
  nn0ssz $p |- NN0 C_ ZZ $=
    ( cn0 cn cc0 csn cun cz df-n0 nnssz wcel wss c0ex snss mpbi unssi eqsstri
    0z ) ABCDZEFGBQFHCFIQFJPCFKLMNO $.

  $( A positive integer is an integer.  (Contributed by NM, 9-May-2004.) $)
  nnz $p |- ( N e. NN -> N e. ZZ ) $=
    ( cn cz nnssz sseli ) BCADE $.

  $( A nonnegative integer is an integer.  (Contributed by NM, 9-May-2004.) $)
  nn0z $p |- ( N e. NN0 -> N e. ZZ ) $=
    ( cn0 cz nn0ssz sseli ) BCADE $.

  ${
    nnzi.1 $e |- N e. NN $.
    $( A positive integer is an integer.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    nnzi $p |- N e. ZZ $=
      ( cn cz nnssz sselii ) CDAEBF $.
  $}

  ${
    nn0zi.1 $e |- N e. NN0 $.
    $( A nonnegative integer is an integer.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    nn0zi $p |- N e. ZZ $=
      ( cn0 cz nn0ssz sselii ) CDAEBF $.
  $}

  $( Positive integer property expressed in terms of integers.  (Contributed by
     NM, 10-May-2004.)  (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  elnnz1 $p |- ( N e. NN <-> ( N e. ZZ /\ 1 <_ N ) ) $=
    ( cn wcel cz c1 cle wbr wa nnz nnge1 jca cc0 clt 0lt1 cr zre 0re 1re ltletr
    wi mp3an12 syl mpani imdistani elnnz sylibr impbii ) ABCZADCZEAFGZHZUHUIUJA
    IAJKUKUILAMGZHUHUIUJULUILEMGZUJULNUIAOCZUMUJHULTZAPLOCEOCUNUOQRLEASUAUBUCUD
    AUEUFUG $.

  $( Positive integers expressed as a subset of integers.  (Contributed by NM,
     3-Oct-2004.) $)
  nnzrab $p |- NN = { x e. ZZ | 1 <_ x } $=
    ( cn cv cz wcel c1 cle wbr wa cab crab elnnz1 abbi2i df-rab eqtr4i ) BACZDE
    FPGHZIZAJQADKRABPLMQADNO $.

  $( Nonnegative integers expressed as a subset of integers.  (Contributed by
     NM, 3-Oct-2004.) $)
  nn0zrab $p |- NN0 = { x e. ZZ | 0 <_ x } $=
    ( cn0 cv cz wcel cc0 cle wbr wa cab crab elnn0z abbi2i df-rab eqtr4i ) BACZ
    DEFPGHZIZAJQADKRABPLMQADNO $.

  $( One is an integer.  (Contributed by NM, 10-May-2004.) $)
  1z $p |- 1 e. ZZ $=
    ( c1 1nn nnzi ) ABC $.

  $( 1 is an integer, deductive form (common case).  (Contributed by David A.
     Wheeler, 6-Dec-2018.) $)
  1zzd $p |- ( ph -> 1 e. ZZ ) $=
    ( c1 cz wcel 1z a1i ) BCDAEF $.

  $( Two is an integer.  (Contributed by NM, 10-May-2004.) $)
  2z $p |- 2 e. ZZ $=
    ( c2 2nn nnzi ) ABC $.

  $( 3 is an integer.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  3z $p |- 3 e. ZZ $=
    ( c3 3nn nnzi ) ABC $.

  $( 4 is an integer.  (Contributed by BJ, 26-Mar-2020.) $)
  4z $p |- 4 e. ZZ $=
    ( c4 4nn nnzi ) ABC $.

  $( Closure law for negative integers.  (Contributed by NM, 9-May-2004.) $)
  znegcl $p |- ( N e. ZZ -> -u N e. ZZ ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o elz negeq neg0 syl6eq syl6eqel nnnegz nnz
    wa 0z 3jaoi adantl sylbi ) ABCADCZAEFZAGCZAHZGCZIZQUEBCZAJUGUHUBUCUHUDUFUCU
    EEBUCUEEHEAEKLMRNAOUEPSTUA $.

  $( -1 is an integer (common case).  (Contributed by David A. Wheeler,
     5-Dec-2018.) $)
  neg1z $p |- -u 1 e. ZZ $=
    ( c1 cn wcel cneg cz 1nn nnnegz ax-mp ) ABCADECFAGH $.

  $( A number is an integer iff its negative is.  (Contributed by Stefan
     O'Rear, 13-Sep-2014.) $)
  znegclb $p |- ( A e. CC -> ( A e. ZZ <-> -u A e. ZZ ) ) $=
    ( cc wcel cz cneg znegcl negneg eleq1d syl5ib impbid2 ) ABCZADCZAEZDCZAFNME
    ZDCKLMFKOADAGHIJ $.

  $( The negative of a nonnegative integer is an integer.  (Contributed by NM,
     9-May-2004.) $)
  nn0negz $p |- ( N e. NN0 -> -u N e. ZZ ) $=
    ( cn0 wcel cz cneg nn0z znegcl syl ) ABCADCAEDCAFAGH $.

  ${
    nn0negzi.1 $e |- N e. NN0 $.
    $( The negative of a nonnegative integer is an integer.  (Contributed by
       Mario Carneiro, 18-Feb-2014.) $)
    nn0negzi $p |- -u N e. ZZ $=
      ( cn0 wcel cneg cz nn0negz ax-mp ) ACDAEFDBAGH $.
  $}

  $( Second Peano postulate generalized to integers.  (Contributed by NM,
     13-Feb-2005.) $)
  peano2z $p |- ( N e. ZZ -> ( N + 1 ) e. ZZ ) $=
    ( cz wcel c1 caddc co cr cn0 cneg wo readdcld cn wa a1i cc recnd cc0 neg1cn
    1red eqtrd elznn0nn biimpi biantrurd orbi2d mpbird wi peano2nn0 adantr 1cnd
    renegcld negdid oveq1d negcld addassd ax-1cn 1pneg1e0 oveq2i syl6eq addid1d
    zre addcomli simpr eqeltrd elnn0nn sylanbrc ex orim12d mpd elznn0 ) ABCZADE
    FZGCVKHCZVKIZHCZJZVKBCVJADAUTZVJSKVJAHCZAIZLCZJZVOVJVTVQAGCZVSMZJZVJWCAUAUB
    VJVSWBVQVJWAVSVPUCUDUEVJVQVLVSVNVQVLUFVJAUGNVJVSVNVJVSMZVMOCVMDEFZLCVNWDVMW
    DVKWDADVJWAVSVPUHZWDSKUJPWDWEVRLWDWEVRQEFZVRWDWEVRDIZDEFZEFZWGWDWEVRWHEFZDE
    FWJWDVMWKDEWDADWDAWFPZWDUIZUKULWDVRWHDWDAWLUMZWHOCWDRNWMUNTWIQVREDWHQUORUPV
    AUQURWDVRWNUSTVJVSVBVCVMVDVEVFVGVHVKVIVE $.

  ${
    $d M x y $.  $d N x $.
    $( Lemma for ~ zaddcl .  Special case in which ` N ` is a positive
       integer.  (Contributed by Jim Kingdon, 14-Mar-2020.) $)
    zaddcllempos $p |- ( ( M e. ZZ /\ N e. NN ) -> ( M + N ) e. ZZ ) $=
      ( vx vy cn wcel cz caddc co cv wi c1 wceq oveq2 eleq1d imbi2d peano2z zcn
      wa cc adantl nncn adantr 1cnd addassd syl5ib ex a2d nnind impcom ) BEFAGF
      ZABHIZGFZUKACJZHIZGFZKUKALHIZGFZKUKADJZHIZGFZKUKAUSLHIZHIZGFZKUKUMKCDBUNL
      MZUPURUKVEUOUQGUNLAHNOPUNUSMZUPVAUKVFUOUTGUNUSAHNOPUNVBMZUPVDUKVGUOVCGUNV
      BAHNOPUNBMZUPUMUKVHUOULGUNBAHNOPAQUSEFZUKVAVDVIUKVAVDKVAUTLHIZGFVIUKSZVDU
      TQVKVJVCGVKAUSLUKATFVIARUAVIUSTFUKUSUBUCVKUDUEOUFUGUHUIUJ $.
  $}

  $( "Reverse" second Peano postulate for integers.  (Contributed by NM,
     12-Sep-2005.) $)
  peano2zm $p |- ( N e. ZZ -> ( N - 1 ) e. ZZ ) $=
    ( cz wcel c1 cmin co cneg caddc zcn negsubdid znegcl peano2z syl eqeltrd cc
    1cnd wb subcld znegclb mpbird ) ABCZADEFZBCZUBGZBCZUAUDAGZDHFZBUAADAIZUAPZJ
    UAUFBCUGBCAKUFLMNUAUBOCUCUEQUAADUHUIRUBSMT $.

  ${
    $d M x y $.  $d N x y $.
    $( Lemma for ~ zaddcl .  Special case in which ` -u N ` is a positive
       integer.  (Contributed by Jim Kingdon, 14-Mar-2020.) $)
    zaddcllemneg $p |- ( ( M e. ZZ /\ N e. RR /\ -u N e. NN ) ->
        ( M + N ) e. ZZ ) $=
      ( vx vy cz wcel cneg cn caddc co oveq2d wa cv wi wceq negeq eleq1d imbi2d
      c1 cmin cr w3a simp2 recnd negnegd cc zcn adantr negsubd peano2zm eqeltrd
      1cnd nncn ad2antrr negdi2d ad2antlr negcld addsubassd adantl eqeltrrd a2d
      exp31 nnind impcom 3impa ) AEFZBUAFZBGZHFZUBZAVHGZIJZABIJEVJVKBAIVJBVJBVF
      VGVIUCUDUEKVFVGVIVLEFZVIVFVGLZVMVNACMZGZIJZEFZNVNASGZIJZEFZNVNADMZGZIJZEF
      ZNVNAWBSIJZGZIJZEFZNVNVMNCDVHVOSOZVRWAVNWJVQVTEWJVPVSAIVOSPKQRVOWBOZVRWEV
      NWKVQWDEWKVPWCAIVOWBPKQRVOWFOZVRWIVNWLVQWHEWLVPWGAIVOWFPKQRVOVHOZVRVMVNWM
      VQVLEWMVPVKAIVOVHPKQRVNVTASTJZEVNASVFAUFFZVGAUGUHZVNULUIVFWNEFVGAUJUHUKWB
      HFZVNWEWIWQVNWEWIWQVNLZWELZWHAWCSTJZIJZEWSWGWTAIWSWBSWQWBUFFVNWEWBUMUNZWS
      ULZUOKWSWDSTJZXAEWSAWCSVNWOWQWEWPUPWSWBXBUQXCURWEXDEFWRWDUJUSUTUKVBVAVCVD
      VEUT $.
  $}

  $( Closure of addition of integers.  (Contributed by NM, 9-May-2004.)  (Proof
     shortened by Mario Carneiro, 16-May-2014.) $)
  zaddcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M + N ) e. ZZ ) $=
    ( cz wcel wa cc0 wceq cn cneg w3o caddc co cr elz simprbi adantl zcn adantr
    cc wi addid1d simpl eqeltrd eleq1d syl5ibrcom zaddcllempos zre zaddcllemneg
    oveq2 ex 3expia sylan2 3jaod mpd ) ACDZBCDZEZBFGZBHDZBIHDZJZABKLZCDZUPVAUOU
    PBMDZVABNOPUQURVCUSUTUQVCURAFKLZCDUQVEACUQAUOASDUPAQRUAUOUPUBUCURVBVECBFAKU
    IUDUEUOUSVCTUPUOUSVCABUFUJRUPUOVDUTVCTBUGUOVDUTVCABUHUKULUMUN $.

  $( Closure of subtraction of integers.  (Contributed by NM, 11-May-2004.) $)
  zsubcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M - N ) e. ZZ ) $=
    ( cz wcel wa cneg caddc co cmin wceq zcn negsub syl2an znegcl zaddcl sylan2
    cc eqeltrrd ) ACDZBCDZEABFZGHZABIHZCSAQDBQDUBUCJTAKBKABLMTSUACDUBCDBNAUAOPR
    $.

  $( Integer trichotomy (with zero).  (Contributed by Jim Kingdon,
     14-Mar-2020.) $)
  ztri3or0 $p |- ( N e. ZZ -> ( N < 0 \/ N = 0 \/ 0 < N ) ) $=
    ( cz wcel cc0 wceq clt wbr w3o cn cneg cr elz simprbi idd wi nngt0 lt0neg1d
    a1i zre syl5ibr 3orim123d mpd 3orrot sylibr ) ABCZADEZDAFGZADFGZHZUHUFUGHUE
    UFAICZAJZICZHZUIUEAKCUMALMUEUFUFUJUGULUHUEUFNUJUGOUEAPRULUHUEDUKFGUKPUEAASQ
    TUAUBUHUFUGUCUD $.

  $( Integer trichotomy.  (Contributed by Jim Kingdon, 14-Mar-2020.) $)
  ztri3or $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N \/ M = N \/ N < M ) ) $=
    ( cz wcel wa clt wbr wceq w3o cmin cc0 zsubcl ztri3or0 syl cneg zre posdifd
    co cr recnd adantr adantl resubcld lt0neg2d negsubdi2d breq1d 3bitrd bicomd
    subeq0ad 3orbi123d mpbird ) ACDZBCDZEZABFGZABHZBAFGZIABJRZKFGZURKHZKURFGZIZ
    UNURCDVBABLURMNUNUOUSUPUTUQVAUNUOKBAJRZFGVCOZKFGUSUNABULASDUMAPUAZUMBSDULBP
    UBZQUNVCUNBAVFVEUCUDUNVDURKFUNBAUNBVFTZUNAVETZUEUFUGUNUTUPUNABVHVGUIUHUNBAV
    FVEQUJUK $.

  $( Trichotomy law.  (Contributed by Jim Kingdon, 27-Mar-2020.) $)
  zletric $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A <_ B \/ B <_ A ) ) $=
    ( cz wcel wa cr clt wbr wceq w3o cle zre anim12i ztri3or ltle orc syl6 eqle
    wo wi ex adantr ancoms olc 3jaod sylc ) ACDZBCDZEAFDZBFDZEZABGHZABIZBAGHZJA
    BKHZBAKHZSZUGUIUHUJALBLMABNUKULUQUMUNUKULUOUQABOUOUPPZQUKUMUOUQUIUMUOTUJUIU
    MUOABRUAUBURQUKUNUPUQUJUIUNUPTBAOUCUPUOUDQUEUF $.

  $( Trichotomy law.  (Contributed by Jim Kingdon, 17-Apr-2020.) $)
  zlelttric $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A <_ B \/ B < A ) ) $=
    ( cz wcel wa cr clt wbr wceq w3o cle zre anim12i ztri3or ltle orc syl6 eqle
    wo wi ex adantr olc a1i 3jaod sylc ) ACDZBCDZEAFDZBFDZEZABGHZABIZBAGHZJABKH
    ZUNSZUGUIUHUJALBLMABNUKULUPUMUNUKULUOUPABOUOUNPZQUKUMUOUPUIUMUOTUJUIUMUOABR
    UAUBUQQUNUPTUKUNUOUCUDUEUF $.

  $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
     by Jim Kingdon, 14-Mar-2020.) $)
  zltnle $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A < B <-> -. B <_ A ) ) $=
    ( cz wcel wa clt wbr cle wn cr zre lenlt syl2anr biimpd con2d wceq w3o syl6
    wb wi ztri3or ax-1 a1i eqcom eqle sylan2b ex adantl sylan2 pm2.24 3jaod mpd
    ltle impbid ) ACDZBCDZEZABFGZBAHGZIZUQUSURUQUSURIZUPBJDZAJDZUSVASUOBKZAKZBA
    LMNOUQURABPZBAFGZQUTURTZABUAUQURVHVFVGURVHTUQURUTUBUCUQVFUSVHUPUOVBVFUSTZVD
    VBVIUOVBVFUSVFVBBAPUSABUDBAUEUFUGUHUIUSURUJZRUQVGUSVHUPVBVCVGUSTUOVDVEBAUMM
    VJRUKULUN $.

  $( Integer 'Less than or equal to' expressed in terms of 'less than' or
     'equals'.  (Contributed by Jim Kingdon, 8-Apr-2020.) $)
  zleloe $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
      ( A <_ B <-> ( A < B \/ A = B ) ) ) $=
    ( cz wcel wa cle wbr clt wo wn cr wb zre lenlt syl2an w3o ztri3or df-3or wi
    wceq sylib orcomd ord sylbid ltle eqle ex adantr jaod impbid ) ACDZBCDZEZAB
    FGZABHGZABTZIZUMUNBAHGZJZUQUKAKDZBKDZUNUSLULAMZBMZABNOUMURUQUMUQURUMUOUPURP
    UQURIABQUOUPURRUAUBUCUDUKUTVAUQUNSULVBVCUTVAEUOUNUPABUEUTUPUNSVAUTUPUNABUFU
    GUHUIOUJ $.

  $( An integer is not a positive integer iff it is less than one.
     (Contributed by NM, 13-Jul-2005.) $)
  znnnlt1 $p |- ( N e. ZZ -> ( -. N e. NN <-> N < 1 ) ) $=
    ( cz wcel cn wn c1 cle wbr clt elnnz1 baib notbid wb 1z zltnle mpan2 bitr4d
    ) ABCZADCZEFAGHZEZAFIHZRSTSRTAJKLRFBCUBUAMNAFOPQ $.

  $( Transitive law of ordering for integers.  (Contributed by Alexander van
     der Vekens, 3-Apr-2018.) $)
  zletr $p |- ( ( J e. ZZ /\ K e. ZZ /\ L e. ZZ )
                -> ( ( J <_ K /\ K <_ L ) -> J <_ L ) ) $=
    ( cz wcel cr cle wbr wa wi zre letr syl3an ) ADEAFEBDEBFECDECFEABGHBCGHIACG
    HJAKBKCKABCLM $.

  $( Reverse closure law for addition of integers.  (Contributed by NM,
     11-May-2004.) $)
  zrevaddcl $p |- ( N e. ZZ ->
                   ( ( M e. CC /\ ( M + N ) e. ZZ ) <-> M e. ZZ ) ) $=
    ( cz wcel cc caddc co wa cmin zcn pncan sylan2 ancoms adantr zsubcl adantlr
    wceq eqeltrrd ex wi zaddcl expcom impbid pm5.32da pm4.71ri syl6bbr ) BCDZAE
    DZABFGZCDZHUHACDZHUKUGUHUJUKUGUHHZUJUKULUJUKULUJHUIBIGZACULUMAQZUJUHUGUNUGU
    HBEDUNBJABKLMNUGUJUMCDZUHUJUGUOUIBOMPRSUGUKUJTUHUKUGUJABUAUBNUCUDUKUHAJUEUF
    $.

  $( The positive difference of unequal integers is a positive integer.
     (Generalization of ~ nnsub .)  (Contributed by NM, 11-May-2004.) $)
  znnsub $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N <-> ( N - M ) e. NN ) ) $=
    ( cz wcel wa clt wbr cmin co cn cr wb posdif syl2an zsubcl ancoms biantrurd
    cc0 zre bitrd elnnz syl6bbr ) ACDZBCDZEZABFGZBAHIZCDZRUGFGZEZUGJDUEUFUIUJUC
    AKDBKDUFUILUDASBSABMNUEUHUIUDUCUHBAOPQTUGUAUB $.

  $( Closure of multiplication of integers.  (Contributed by NM,
     30-Jul-2004.) $)
  zmulcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M x. N ) e. ZZ ) $=
    ( cz wcel cr cn0 cneg wo wa cmul co elznn0 nn0mulcl jctild cc syl2an eleq1d
    wceq syl5ib syl6 wi orcd a1i remulcl mulneg1 olc mulneg2 mul2neg orc ccased
    recn syl6ibr imp an4s syl2anb ) ACDAEDZAFDZAGZFDZHZIBEDZBFDZBGZFDZHZIABJKZC
    DZBCDALBLUPVAUTVEVGUPVAIZUTVEIZVGVHVIVFEDZVFFDZVFGZFDZHZIZVGVHUQVBUSVDVOVHU
    QVBIZVNVJVPVNUAVHVPVKVMABMUBUCABUDZNVHUSVBIZVNVJVHVRVMVNVRURBJKZFDVHVMURBMV
    HVSVLFUPAODZBODZVSVLRVAAUKZBUKZABUEPQSVMVKUFZTVQNVHUQVDIZVNVJVHWEVMVNWEAVCJ
    KZFDVHVMAVCMVHWFVLFUPVTWAWFVLRVAWBWCABUGPQSWDTVQNVHUSVDIZVNVJVHWGVKVNWGURVC
    JKZFDVHVKURVCMVHWHVFFUPVTWAWHVFRVAWBWCABUHPQSVKVMUITVQNUJVFLULUMUNUO $.

  $( Integer ordering relation.  (Contributed by NM, 10-May-2004.)  (Proof
     shortened by Mario Carneiro, 16-May-2014.) $)
  zltp1le $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N <-> ( M + 1 ) <_ N ) ) $=
    ( cz wcel wa clt wbr c1 caddc co cle cmin cn wi nnge1 a1i znnsub cr wb zre
    1re leaddsub2 mp3an2 syl2an 3imtr4d adantr ltp1d peano2re syl adantl ltletr
    syl3anc mpand impbid ) ACDZBCDZEZABFGZAHIJZBKGZUQBALJZMDZHVAKGZURUTVBVCNUQV
    AOPABQUOARDZBRDZUTVCSZUPATZBTZVDHRDVEVFUAAHBUBUCUDUEUQAUSFGZUTURUQAUOVDUPVG
    UFZUGUQVDUSRDZVEVIUTEURNVJUQVDVKVJAUHUIUPVEUOVHUJAUSBUKULUMUN $.

  $( Integer ordering relation.  (Contributed by NM, 10-May-2004.) $)
  zleltp1 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M <_ N <-> M < ( N + 1 ) ) ) $=
    ( cz wcel wa cle wbr c1 caddc co clt cr wb zre leadd1 mp3an3 syl2an peano2z
    1re zltp1le sylan2 bitr4d ) ACDZBCDZEABFGZAHIJBHIJZFGZAUFKGZUCALDZBLDZUEUGM
    ZUDANBNUIUJHLDUKSABHOPQUDUCUFCDUHUGMBRAUFTUAUB $.

  $( Integer ordering relation.  (Contributed by NM, 13-Nov-2004.) $)
  zlem1lt $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M <_ N <-> ( M - 1 ) < N ) ) $=
    ( cz wcel wa c1 cmin co clt wbr caddc cle wb peano2zm zltp1le sylan wceq cc
    zcn ax-1cn npcan sylancl adantr breq1d bitr2d ) ACDZBCDZEZAFGHZBIJZUIFKHZBL
    JZABLJUFUICDUGUJULMANUIBOPUHUKABLUFUKAQZUGUFARDFRDUMASTAFUAUBUCUDUE $.

  $( Integer ordering relation.  (Contributed by NM, 13-Nov-2004.) $)
  zltlem1 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N <-> M <_ ( N - 1 ) ) ) $=
    ( cz wcel wa c1 cmin co cle wbr caddc clt wb peano2zm zleltp1 sylan2 cc zcn
    wceq ax-1cn npcan sylancl adantl breq2d bitr2d ) ACDZBCDZEZABFGHZIJZAUIFKHZ
    LJZABLJUGUFUICDUJULMBNAUIOPUHUKBALUGUKBSZUFUGBQDFQDUMBRTBFUAUBUCUDUE $.

  $( An integer greater than ` 0 ` is greater than or equal to ` 1 ` .
     (Contributed by AV, 14-Oct-2018.) $)
  zgt0ge1 $p |- ( Z e. ZZ -> ( 0 < Z <-> 1 <_ Z ) ) $=
    ( cz wcel cc0 clt wbr c1 caddc co cle wb zltp1le mpan wceq 0p1e1 a1i breq1d
    0z bitrd ) ABCZDAEFZDGHIZAJFZGAJFDBCTUAUCKRDALMTUBGAJUBGNTOPQS $.

$( TODO: The following 14 theorems do not contain ` ZZ ` - these theorems are
   about positive or nonnegative integers which are defined earlier.  But the
   proofs of these theorems are based on theorems for ` ZZ `.  It should be
   clarified if these theorems could be proven without theorems for ` ZZ ` and
   then could be moved up into the corresponding subsections.  Alternatively,
   these theorems could be moved into a new seperate subsection "Positive and
   nonnegative integers (cont.)". $)

  $( Positive integer ordering relation.  (Contributed by NM, 13-Aug-2001.)
     (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nnleltp1 $p |- ( ( A e. NN /\ B e. NN ) ->
                ( A <_ B <-> A < ( B + 1 ) ) ) $=
    ( cn wcel cz cle wbr c1 caddc co clt wb nnz zleltp1 syl2an ) ACDAEDBEDABFGA
    BHIJKGLBCDAMBMABNO $.

  $( Positive integer ordering relation.  (Contributed by NM, 19-Aug-2001.) $)
  nnltp1le $p |- ( ( A e. NN /\ B e. NN ) ->
                ( A < B <-> ( A + 1 ) <_ B ) ) $=
    ( cn wcel cz clt wbr c1 caddc co cle wb nnz zltp1le syl2an ) ACDAEDBEDABFGA
    HIJBKGLBCDAMBMABNO $.

  $( Closure of addition of positive integers minus one.  (Contributed by NM,
     6-Aug-2003.)  (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nnaddm1cl $p |- ( ( A e. NN /\ B e. NN ) -> ( ( A + B ) - 1 ) e. NN ) $=
    ( cn wcel wa caddc co c1 cmin wceq nncn ax-1cn addsub mp3an3 syl2an nnm1nn0
    cc cn0 nn0nnaddcl sylan eqeltrd ) ACDZBCDZEABFGHIGZAHIGZBFGZCUBAQDZBQDZUDUF
    JZUCAKBKUGUHHQDUILABHMNOUBUERDUCUFCDAPUEBSTUA $.

  $( Nonnegative integer ordering relation.  (Contributed by Raph Levien,
     10-Dec-2002.)  (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nn0ltp1le $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M < N <-> ( M + 1 ) <_ N ) ) $=
    ( cn0 wcel cz clt wbr c1 caddc co cle wb nn0z zltp1le syl2an ) ACDAEDBEDABF
    GAHIJBKGLBCDAMBMABNO $.

  $( Nonnegative integer ordering relation.  (Contributed by Raph Levien,
     10-Apr-2004.) $)
  nn0leltp1 $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M <_ N <-> M < ( N + 1 ) ) ) $=
    ( cn0 wcel cz cle wbr c1 caddc co clt wb nn0z zleltp1 syl2an ) ACDAEDBEDABF
    GABHIJKGLBCDAMBMABNO $.

  $( Nonnegative integer ordering relation.  (Contributed by NM, 10-May-2004.)
     (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nn0ltlem1 $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M < N <-> M <_ ( N - 1 ) ) ) $=
    ( cn0 wcel cz clt wbr c1 cmin co cle wb nn0z zltlem1 syl2an ) ACDAEDBEDABFG
    ABHIJKGLBCDAMBMABNO $.

  $( The nonnegative difference of integers is a nonnegative integer.
     (Generalization of ~ nn0sub .)  (Contributed by NM, 14-Jul-2005.) $)
  znn0sub $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                ( M <_ N <-> ( N - M ) e. NN0 ) ) $=
    ( cz wcel wa cle wbr co cc0 cn0 wb cr subge0 syl2an zsubcl biantrurd bitr3d
    cmin zre ancoms elnn0z syl6bbr ) ACDZBCDZEABFGZBARHZCDZIUFFGZEZUFJDUDUCUEUI
    KUDUCEZUHUEUIUDBLDALDUHUEKUCBSASBAMNUJUGUHBAOPQTUFUAUB $.

  $( Subtraction of nonnegative integers.  (Contributed by NM, 9-May-2004.) $)
  nn0sub $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M <_ N <-> ( N - M ) e. NN0 ) ) $=
    ( cn0 wcel cz cle wbr cmin co wb nn0z znn0sub syl2an ) ACDAEDBEDABFGBAHICDJ
    BCDAKBKABLM $.

  $( A nonnegative integer which is neither 0 nor 1 is greater than or equal to
     2.  (Contributed by Alexander van der Vekens, 6-Dec-2017.) $)
  nn0n0n1ge2 $p |- ( ( N e. NN0 /\ N =/= 0 /\ N =/= 1 ) -> 2 <_ N ) $=
    ( cn0 wcel cc0 wne c1 w3a c2 cle wbr cmin co wceq caddc 3ad2ant1 cn elnnne0
    wa nnm1nn0 syl nn0cn subsub4d oveq2i syl6req 3simpa sylibr subeq0ad necon3d
    1cnd 1p1e2 biimpd imp 3adant2 sylanbrc eqeltrd wb 2nn0 jctl nn0sub mpbird )
    ABCZADEZAFEZGZHAIJZAHKLZBCZVDVFAFKLZFKLZBVAVBVFVIMVCVAVIAFFNLZKLVFVAAFFAUAZ
    VAUIZVLUBVJHAKUJUCUDOVDVHPCZVIBCVDVHBCZVHDEZVMVDAPCZVNVDVAVBRVPVAVBVCUEAQUF
    ASTVAVCVOVBVAVCVOVAVHDAFVAVHDMAFMVAAFVKVLUGUKUHULUMVHQUNVHSTUOVDHBCZVARZVEV
    GUPVAVBVRVCVAVQUQUROHAUSTUT $.

  ${
    $d x y z N $.
    $( Membership in the set of integers.  Commonly used in constructions of
       the integers as equivalence classes under subtraction of the positive
       integers.  (Contributed by Mario Carneiro, 16-May-2014.) $)
    elz2 $p |- ( N e. ZZ <-> E. x e. NN E. y e. NN N = ( x - y ) ) $=
      ( cz wcel cr cn0 cneg wo wa cmin co wceq cn c1 1nn ax-1cn sylancr syl2an
      cc wrex elznn0 caddc nn0p1nn adantl a1i recn adantr pncan sylancl rspceov
      eqcomd syl3anc negsub simpr nnnn0addcl eqeltrrd nncan jaodan nnre resubcl
      cv cle wbr nnz zletric syl2anr nnnn0 nn0sub nncn negsubdi2 eleq1d orbi12d
      wb bitr4d mpbid jca eleq1 negeq anbi12d syl5ibrcom rexlimivv impbii bitri
      ) CDECFEZCGEZCHZGEZIZJZCAVBZBVBZKLZMZBNUAANUAZCUBWJWOWEWFWOWHWEWFJZCOUCLZ
      NEZONEZCWQOKLZMWOWFWRWECUDUEWSWPPUFWPWTCWPCTEZOTEZWTCMWEXAWFCUGZUHQCOUIUJ
      ULABNNWQOCKUKUMWEWHJZWSOCKLZNECOXEKLZMWOWSXDPUFXDOWGUCLZXENXDXBXAXGXEMQWE
      XAWHXCUHZOCUNRXDWSWHXGNEPWEWHUOOWGUPRUQXDXFCXDXBXAXFCMQXHOCURRULABNNOXECK
      UKUMUSWNWJABNNWKNEZWLNEZJZWJWNWMFEZWMGEZWMHZGEZIZJXKXLXPXIWKFEWLFEXLXJWKU
      TWLUTWKWLVASXKWLWKVCVDZWKWLVCVDZIZXPXJWLDEWKDEXSXIWLVEWKVEWLWKVFVGXKXQXMX
      RXOXJWLGEZWKGEZXQXMVNXIWLVHZWKVHZWLWKVIVGXKXRWLWKKLZGEZXOXIYAXTXRYEVNXJYC
      YBWKWLVISXKXNYDGXIWKTEWLTEXNYDMXJWKVJWLVJWKWLVKSVLVOVMVPVQWNWEXLWIXPCWMFV
      RWNWFXMWHXOCWMGVRWNWGXNGCWMVSVLVMVTWAWBWCWD $.

    $( Alternative definition of the integers, based on ~ elz2 .  (Contributed
       by Mario Carneiro, 16-May-2014.) $)
    dfz2 $p |- ZZ = ( - " ( NN X. NN ) ) $=
      ( vx vy vz cz cmin cn cxp cima cv wcel co wceq wrex elz2 cc wfn wb nnsscn
      wss mp2an wf subf ffn ax-mp xpss12 ovelimab bitr4i eqriv ) ADEFFGZHZAIZDJ
      UKBICIEKLCFMBFMZUKUJJZBCUKNEOOGZPZUIUNSZUMULQUNOEUAUOUBUNOEUCUDFOSZUQUPRR
      FOFOUETBCUNFFUKEUFTUGUH $.
  $}

  $( Subtraction of nonnegative integers.  (Contributed by NM, 4-Sep-2005.) $)
  nn0sub2 $p |- ( ( M e. NN0 /\ N e. NN0 /\ M <_ N ) -> ( N - M ) e. NN0 ) $=
    ( cn0 wcel cle wbr cmin co nn0sub biimp3a ) ACDBCDABEFBAGHCDABIJ $.

  $( Apartness is equivalent to not equal for integers.  (Contributed by Jim
     Kingdon, 14-Mar-2020.) $)
  zapne $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M # N <-> M =/= N ) ) $=
    ( cz wcel wa cap wbr wne cc wi zcn apne syl2an wceq wn clt wo w3o cr zre wb
    df-ne ztri3or 3orrot 3orass bitri sylib reaplt syl6bb sylibrd syl5bi impbid
    ord orcom ) ACDZBCDZEZABFGZABHZUOAIDBIDURUSJUPAKBKABLMUSABNZOZUQURABUBUQVAB
    APGZABPGZQZURUQUTVDUQVCUTVBRZUTVDQZABUCVEUTVBVCRVFVCUTVBUDUTVBVCUEUFUGUMUOA
    SDZBSDZURVDUAUPATBTVGVHEURVCVBQVDABUHVCVBUNUIMUJUKUL $.

  $( Equality of integers is decidable.  (Contributed by Jim Kingdon,
     14-Mar-2020.) $)
  zdceq $p |- ( ( A e. ZZ /\ B e. ZZ ) -> DECID A = B ) $=
    ( cz wcel wa clt wbr wceq w3o wdc ztri3or cr zre wne ltne necomd sylibr syl
    wi ex wo olc dcne adantr sylan orc a1i adantl 3jaod mpd ) ACDZBCDZEZABFGZAB
    HZBAFGZIUOJZABKUMUNUQUOUPUKALDZULUNUQSZAMURUSULURUNUQURUNEZABNZUQUTBAABOPVA
    UOVAUAZUQVAUOUBABUCZQZRTUDUEUOUQSUMUOVBUQUOVAUFVCQUGULUPUQSZUKULBLDZVEBMVFU
    PUQVFUPEVAUQBAOVDRTRUHUIUJ $.

  $( Integer ` <_ ` is decidable.  (Contributed by Jim Kingdon, 7-Apr-2020.) $)
  zdcle $p |- ( ( A e. ZZ /\ B e. ZZ ) -> DECID A <_ B ) $=
    ( cz wcel wa clt wbr wceq w3o cle wdc ztri3or cr wi zre ltle wn sylibr syl6
    wo orc df-dc eqle syl ex adantr lenlt biimpd con2d olc 3jaod syl2an mpd ) A
    CDZBCDZEABFGZABHZBAFGZIZABJGZKZABLUNAMDZBMDZUSVANUOAOBOVBVCEZUPVAUQURVDUPUT
    VAABPUTUTUTQZTZVAUTVEUAUTUBZRZSVBUQVANVCVBUQVAVBUQEUTVAABUCVHUDUEUFVDURVEVA
    VDUTURVDUTURQABUGUHUIVEVFVAVEUTUJVGRSUKULUM $.

  $( Integer ` < ` is decidable.  (Contributed by Jim Kingdon, 1-Jun-2020.) $)
  zdclt $p |- ( ( A e. ZZ /\ B e. ZZ ) -> DECID A < B ) $=
    ( cz wcel wa clt wbr wceq w3o wdc ztri3or cr wi zre wn wo orc sylibr adantr
    df-dc a1i ltnr wb breq2 adantl mtbid olc ex ltnsym ancoms syl6 3jaod syl2an
    syl mpd ) ACDZBCDZEABFGZABHZBAFGZIZURJZABKUPALDZBLDZVAVBMUQANBNVCVDEZURVBUS
    UTURVBMVEURURUROZPZVBURVFQURTZRUAVCUSVBMVDVCUSVBVCUSEZVFVBVIAAFGZURVCVJOUSA
    UBSUSVJURUCVCABAFUDUEUFVFVGVBVFURUGVHRZUNUHSVEUTVFVBVDVCUTVFMBAUIUJVKUKULUM
    UO $.

  $( Integer 'Less than' expressed in terms of 'less than or equal to'.  Also
     see ~ ltleap which is a similar result for complex numbers.  (Contributed
     by Jim Kingdon, 14-Mar-2020.) $)
  zltlen $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
               ( A < B <-> ( A <_ B /\ B =/= A ) ) ) $=
    ( cz wcel wa clt wbr cle wne cap cr wb zre ltleap syl2an zapne anbi2d bitrd
    necom anbi2i syl6bb ) ACDZBCDZEZABFGZABHGZABIZEZUFBAIZEUDUEUFABJGZEZUHUBAKD
    BKDUEUKLUCAMBMABNOUDUJUGUFABPQRUGUIUFABSTUA $.

  $( A nonnegative integer is neither 0 nor 1 if and only if it is greater than
     or equal to 2.  (Contributed by Alexander van der Vekens, 17-Jan-2018.) $)
  nn0n0n1ge2b $p |- ( N e. NN0 -> ( ( N =/= 0 /\ N =/= 1 ) <-> 2 <_ N ) ) $=
    ( wcel cc0 wne c1 wa c2 wbr wdc wn wi wceq zdceq sylancl dcned sylc syl clt
    cz wb cn0 cle nn0n0n1ge2 3expib nn0z 0z 1z dcan ianordc nnedc orbi12d bitrd
    wo 2pos breq1 mpbiri a1d 1lt2 impcom 2z zltnle adantr mpbid ex sylbid condc
    jaoi impbid ) AUABZACDZAEDZFZGAUBHZVIVJVKVMAUCUDVIVLIZVLJZVMJZKVMVLKVIVJIZV
    KIVNVIACVIASBZCSBACLZIZAUEZUFACMNZOZVIAEVIVRESBAELZIZWAUGAEMNZOVJVKUHPVIVOV
    SWDUMZVPVIVOVJJZVKJZUMZWGVIVQVOWJTWCVJVKUIQVIWHVSWIWDVIVTWHVSTWBACUJQVIWEWI
    WDTWFAEUJQUKULVIWGVPVIWGFAGRHZVPWGVIWKVSVIWKKWDVSWKVIVSWKCGRHUNACGRUOUPUQWD
    WKVIWDWKEGRHURAEGRUOUPUQVGUSVIWKVPTZWGVIVRGSBWLWAUTAGVANVBVCVDVEVLVMVFPVH
    $.

  $( A nonnegative integer less than ` 1 ` is ` 0 ` .  (Contributed by Paul
     Chapman, 22-Jun-2011.) $)
  nn0lt10b $p |- ( N e. NN0 -> ( N < 1 <-> N = 0 ) ) $=
    ( cn0 wcel cc0 wceq cle wbr wa c1 clt cr wb nn0re 0re letri3 mpan2 biantrud
    syl nn0ge0 cz nn0z caddc co 0z zleltp1 0p1e1 breq2i syl6bb 3bitr2rd ) ABCZA
    DEZADFGZDAFGZHZULAIJGZUJAKCZUKUNLZAMUPDKCUQNADOPRUJUMULASQUJATCZULUOLAUAURU
    LADIUBUCZJGZUOURDTCULUTLUDADUEPUSIAJUFUGUHRUI $.

  $( A nonnegative integer less than 2 must be 0 or 1.  (Contributed by
     Alexander van der Vekens, 16-Sep-2018.) $)
  nn0lt2 $p |- ( ( N e. NN0 /\ N < 2 ) -> ( N = 0 \/ N = 1 ) ) $=
    ( cn0 wcel c2 clt wbr wa c1 wceq cc0 wo wne wi olc a1i cle cz wb sylancl 1z
    cmin co nn0z 2z zltlem1 2m1e1 breq2i syl6bb necom zltlen nn0lt10b biimpa ex
    orcd sylbird expd syl7bi sylbid imp wdc zdceq adantr dcne sylib mpjaod ) AB
    CZADEFZGZAHIZAJIZVIKZAHLZVIVKMVHVIVJNOVFVGVLVKMZVFVGAHPFZVMVFVGADHUAUBZPFZV
    NVFAQCZDQCVGVPRAUCZUDADUESVOHAPUFUGUHVLHALZVFVNVKAHUIVFVNVSVKVFVNVSGZAHEFZV
    KVFVQHQCZWAVTRVRTAHUJSVFWAVKVFWAGVJVIVFWAVJAUKULUNUMUOUPUQURUSVHVIUTZVIVLKV
    FWCVGVFVQWBWCVRTAHVASVBAHVCVDVE $.

  $( Nonnegative integer ordering relation.  (Contributed by NM,
     21-Jun-2005.) $)
  nn0lem1lt $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                   ( M <_ N <-> ( M - 1 ) < N ) ) $=
    ( cn0 wcel cz cle wbr c1 cmin co clt wb nn0z zlem1lt syl2an ) ACDAEDBEDABFG
    AHIJBKGLBCDAMBMABNO $.

  $( Positive integer ordering relation.  (Contributed by NM, 21-Jun-2005.) $)
  nnlem1lt $p |- ( ( M e. NN /\ N e. NN ) -> ( M <_ N <-> ( M - 1 ) < N ) ) $=
    ( cn wcel cz cle wbr c1 cmin co clt wb nnz zlem1lt syl2an ) ACDAEDBEDABFGAH
    IJBKGLBCDAMBMABNO $.

  $( Positive integer ordering relation.  (Contributed by NM, 21-Jun-2005.) $)
  nnltlem1 $p |- ( ( M e. NN /\ N e. NN ) -> ( M < N <-> M <_ ( N - 1 ) ) ) $=
    ( cn wcel cz clt wbr c1 cmin co cle wb nnz zltlem1 syl2an ) ACDAEDBEDABFGAB
    HIJKGLBCDAMBMABNO $.

  $( A positive integer decreased by 1 is greater than or equal to 0.
     (Contributed by AV, 30-Oct-2018.) $)
  nnm1ge0 $p |- ( N e. NN -> 0 <_ ( N - 1 ) ) $=
    ( cn wcel cc0 clt wbr c1 cmin co cle nngt0 cz wb nnz zltlem1 sylancr mpbid
    0z ) ABCZDAEFZDAGHIJFZAKSDLCALCTUAMRANDAOPQ $.

  $( Division of a nonnegative integer by a positive number is not negative.
     (Contributed by Alexander van der Vekens, 14-Apr-2018.) $)
  nn0ge0div $p |- ( ( K e. NN0 /\ L e. NN ) -> 0 <_ ( K / L ) ) $=
    ( cn0 wcel cn wa cc0 cle wbr cdiv co nn0ge0 adantr cr clt wb cz elnnz nn0re
    w3a zre ad2antrl simprr 3jca sylan2b ge0div syl mpbid ) ACDZBEDZFZGAHIZGABJ
    KHIZUIULUJALMUKANDZBNDZGBOIZTZULUMPUJUIBQDZUPFZUQBRUIUSFUNUOUPUIUNUSASMURUO
    UIUPBUAUBUIURUPUCUDUEABUFUGUH $.

  ${
    $d k M $.  $d k N $.
    $( Two ways to express " ` M ` divides ` N ` .  (Contributed by NM,
       3-Oct-2008.) $)
    zdiv $p |- ( ( M e. NN /\ N e. ZZ )
                -> ( E. k e. ZZ ( M x. k ) = N <-> ( N / M ) e. ZZ ) ) $=
      ( cn wcel cz wa cc0 cap wbr cv cmul co wceq wrex cdiv wb cc wi zcn adantr
      nnap0 nncn divcanap3 3coml 3expa sylan2 3adantl2 oveq1 sylan9req eqeltrrd
      w3a simplr exp31 rexlimdv divcanap2 3com12 oveq2 eqeq1d rspcev expcom syl
      impbid 3expia syl2an mpd ) BDEZCFEZGBHIJZBAKZLMZCNZAFOZCBPMZFEZQZVGVIVHBU
      BUAVGBREZCREZVIVPSVHBUCCTVQVRVIVPVQVRVIULZVMVOVSVLVOAFVSVJFEZVLVOVSVTGZVL
      GVJVNFWAVLVJVKBPMZVNVQVIVTWBVJNZVRVTVQVIGVJREZWCVJTVQVIWDWCWDVQVIWCVJBUDU
      EUFUGUHVKCBPUIUJVSVTVLUMUKUNUOVSBVNLMZCNZVOVMSVRVQVIWFCBUPUQVOWFVMVLWFAVN
      FVJVNNVKWECVJVNBLURUSUTVAVBVCVDVEVF $.
  $}

  $( Property of divisibility: if ` D ` divides ` A ` and ` B ` then it divides
     ` A + B ` .  (Contributed by NM, 3-Oct-2008.) $)
  zdivadd $p |- ( ( ( D e. NN /\ A e. ZZ /\ B e. ZZ ) /\
       ( ( A / D ) e. ZZ /\ ( B / D ) e. ZZ ) ) -> ( ( A + B ) / D ) e. ZZ ) $=
    ( cn wcel cz w3a cdiv co wa caddc wceq cc cc0 cap wbr zcn nncn nnap0 jca
    divdirap syl3an 3comr adantr zaddcl adantl eqeltrd ) CDEZAFEZBFEZGZACHIZFEB
    CHIZFEJZJABKICHIZULUMKIZFUKUOUPLZUNUIUJUHUQUIAMEUJBMEUHCMEZCNOPZJUQAQBQUHUR
    USCRCSTABCUAUBUCUDUNUPFEUKULUMUEUFUG $.

  $( Property of divisibility: if ` D ` divides ` A ` then it divides
     ` B x. A ` .  (Contributed by NM, 3-Oct-2008.) $)
  zdivmul $p |- ( ( ( D e. NN /\ A e. ZZ /\ B e. ZZ ) /\
       ( A / D ) e. ZZ ) -> ( ( B x. A ) / D ) e. ZZ ) $=
    ( cn wcel cz w3a cdiv co wa cmul wceq cc cc0 cap wbr 3ad2ant2 3ad2ant1 nncn
    zcn nnap0 3ad2ant3 divassap syl3anc 3comr adantr zmulcl 3ad2antl3 eqeltrd
    jca ) CDEZAFEZBFEZGZACHIZFEZJBAKICHIZBUOKIZFUNUQURLZUPULUMUKUSULUMUKGBMEZAM
    EZCMEZCNOPZJZUSUMULUTUKBTQULUMVAUKATRUKULVDUMUKVBVCCSCUAUJUBBACUCUDUEUFUMUK
    UPURFEULBUOUGUHUI $.

  ${
    $d k M $.  $d k N $.
    $( An extensionality-like property for integer ordering.  (Contributed by
       NM, 29-Oct-2005.) $)
    zextle $p |- ( ( M e. ZZ /\ N e. ZZ /\ A. k e. ZZ ( k <_ M <-> k <_ N ) )
                  -> M = N ) $=
      ( cz wcel cv cle wbr wb wral wceq wa zre leidd adantr breq1 bibi12d mpbid
      rspcva cr adantlr mpbird adantll jca ex letri3 syl2an sylibrd 3impia ) BD
      EZCDEZAFZBGHZULCGHZIZADJZBCKZUJUKLZUPBCGHZCBGHZLZUQURUPVAURUPLUSUTUJUPUSU
      KUJUPLBBGHZUSUJVBUPUJBBMZNOUOVBUSIABDULBKUMVBUNUSULBBGPULBCGPQSRUAUKUPUTU
      JUKUPLUTCCGHZUKVDUPUKCCMZNOUOUTVDIACDULCKUMUTUNVDULCBGPULCCGPQSUBUCUDUEUJ
      BTECTEUQVAIUKVCVEBCUFUGUHUI $.

    $( An extensionality-like property for integer ordering.  (Contributed by
       NM, 29-Oct-2005.) $)
    zextlt $p |- ( ( M e. ZZ /\ N e. ZZ /\ A. k e. ZZ ( k < M <-> k < N ) )
                  -> M = N ) $=
      ( cz wcel clt wbr wb wral wceq wa c1 cmin cle zltlem1 peano2zm syl2an zcn
      co cc cv adantrr adantrl bibi12d ancoms ralbidva wi zextle 3expia subcan2
      ax-1cn mp3an3 sylibd sylbid 3impia ) BDEZCDEZAUAZBFGZURCFGZHZADIZBCJZUPUQ
      KZVBURBLMSZNGZURCLMSZNGZHZADIZVCVDVAVIADURDEZVDVAVIHVKVDKUSVFUTVHVKUPUSVF
      HUQURBOUBVKUQUTVHHUPURCOUCUDUEUFVDVJVEVGJZVCUPVEDEZVGDEZVJVLUGUQBPCPVMVNV
      JVLAVEVGUHUIQUPBTEZCTEZVLVCHZUQBRCRVOVPLTEVQUKBCLUJULQUMUNUO $.
  $}

  $( The reciprocal of a number greater than 1 is not an integer.  (Contributed
     by NM, 3-May-2005.) $)
  recnz $p |- ( ( A e. RR /\ 1 < A ) -> -. ( 1 / A ) e. ZZ ) $=
    ( cr wcel c1 clt wbr wa cdiv co cz cc0 recgt1i simprd cle wn simpld zgt0ge1
    syl5ibcom wb 1re cap 0lt1 0re lttr mp3an12 mpani imdistani gt0ap0 rerecclap
    wi syl syldan lenlt sylancr sylibd mt2d ) ABCZDAEFZGZDAHIZJCZUTDEFZUSKUTEFZ
    VBALZMUSVADUTNFZVBOZUSVCVAVEUSVCVBVDPUTQRUSDBCZUTBCZVEVFSTUQURAKUAFZVHUSUQK
    AEFZGVIUQURVJUQKDEFZURVJUBKBCVGUQVKURGVJUJUCTKDAUDUEUFUGAUHUKAUIULDUTUMUNUO
    UP $.

  $( A number between an integer and its successor is not an integer.
     (Contributed by NM, 3-May-2005.) $)
  btwnnz $p |- ( ( A e. ZZ /\ A < B /\ B < ( A + 1 ) ) -> -. B e. ZZ ) $=
    ( cz wcel clt wbr c1 caddc co wn wa cle zltp1le cr wb peano2z zre syl lenlt
    syl2an bitrd biimpd impancom con2d 3impia ) ACDZABEFZBAGHIZEFZBCDZJUFUGKUJU
    IUFUJUGUIJZUFUJKZUGUKULUGUHBLFZUKABMUFUHNDZBNDUMUKOUJUFUHCDUNAPUHQRBQUHBSTU
    AUBUCUDUE $.

  $( A larger number does not divide a smaller positive integer.  (Contributed
     by NM, 3-May-2005.) $)
  gtndiv $p |- ( ( A e. RR /\ B e. NN /\ B < A ) -> -. ( B / A ) e. ZZ ) $=
    ( cr wcel cn clt wbr w3a cc0 cdiv co c1 caddc cz wn nnre 3ad2ant2 wa mp3an1
    wb simp1 nngt0 adantl 0re lttr sylan ancoms mpand 3impia divgt0d simp3 cmul
    wi 1re ltdivmul2 mp3an2 syl12anc mulid2d breq2d 3ad2ant1 bitrd mpbird 0p1e1
    recn syl6breqr 0z btwnnz syl2anc ) ACDZBEDZBAFGZHZIBAJKZFGZVMILMKZFGZVMNDOZ
    VLBAVJVIBCDZVKBPZQZVIVJVKUAZVJVIIBFGZVKBUBZQVIVJVKIAFGZVIVJRWBVKWDVJWBVIWCU
    CVJVIWBVKRWDUMZVJVRVIWEVSICDVRVIWEUDIBAUESUFUGUHUIZUJVLVMLVOFVLVMLFGZVKVIVJ
    VKUKVLWGBLAULKZFGZVKVLVRVIWDWGWITZVTWAWFVRLCDVIWDRWJUNBLAUOUPUQVIVJWIVKTVKV
    IWHABFVIAAVDURUSUTVAVBVCVEINDVNVPVQVFIVMVGSVH $.

  $( One-half is not an integer.  (Contributed by NM, 31-Jul-2004.) $)
  halfnz $p |- -. ( 1 / 2 ) e. ZZ $=
    ( c2 cr wcel c1 clt wbr cdiv co cz wn 2re 1lt2 recnz mp2an ) ABCDAEFDAGHICJ
    KLAMN $.

  ${
    $d x A $.
    $( Two ways to express " ` A ` is a prime number (or 1)."  (Contributed by
       NM, 4-May-2005.) $)
    prime $p |- ( A e. NN -> (
                 A. x e. NN ( ( A / x ) e. NN -> ( x = 1 \/ x = A ) ) <->
          A. x e. NN ( ( 1 < x /\ x <_ A /\ ( A / x ) e. NN ) -> x = A ) ) ) $=
      ( cn wcel cv cdiv c1 wceq wi clt wbr wa wb cz nnz wn syl6bbr adantl nnre
      cr co wo cle w3a wne wdc 1z zdceq mpan2 dfordc df-ne imbi1i imbi2d impexp
      3syl bi2.04 bitri nngt1ne1 anbi1d gtndiv 3expia sylan con2d lenlt sylibrd
      syl2an ancoms syl5 pm4.71rd anbi2d 3anass bitr3d imbi1d bitrd ralbidva )
      BCDZBAEZFUAZCDZVQGHZVQBHZUBZIZGVQJKZVQBUCKZVSUDZWAIZACVPVQCDZLZWCVQGUEZVS
      LZWAIZWGWHWCWLMVPWHWCVSWJWAIZIZWLWHWBWMVSWHVQNDZVTUFZWBWMMVQOWOGNDWPUGVQG
      UHUIWPWBVTPZWAIWMVTWAUJWJWQWAVQGUKULQUOUMWLWJVSWAIIWNWJVSWAUNWJVSWAUPUQQR
      WIWKWFWAWIWDVSLZWKWFWIWDWJVSWHWDWJMVPVQURRUSWIWRWDWEVSLZLWFWIVSWSWDWIVSWE
      VSVRNDZWIWEVROWHVPWTWEIWHVPLZWTBVQJKZPZWEXAXBWTWHVQTDZVPXBWTPZIVQSZXDVPXB
      XEVQBUTVAVBVCWHXDBTDWEXCMVPXFBSVQBVDVFVEVGVHVIVJWDWEVSVKQVLVMVNVO $.
  $}

  $( The square of a nonzero integer is a positive integer.  (Contributed by
     NM, 2-Aug-2004.) $)
  msqznn $p |- ( ( A e. ZZ /\ A =/= 0 ) -> ( A x. A ) e. NN ) $=
    ( cz wcel cc0 wne wa cmul co clt wbr cn zmulcl anidms adantr wb zapne mpan2
    cap 0z pm5.32i cr zre apsqgt0 sylan sylbir elnnz sylanbrc ) ABCZADEZFZAAGHZ
    BCZDUKIJZUKKCUHULUIUHULAALMNUJUHADRJZFUMUHUNUIUHDBCUNUIOSADPQTUHAUACUNUMAUB
    AUCUDUEUKUFUG $.

  $( No even integer equals an odd integer (i.e. no integer can be both even
     and odd).  Exercise 10(a) of [Apostol] p. 28.  (Contributed by NM,
     31-Jul-2004.)  (Proof shortened by Mario Carneiro, 18-May-2014.) $)
  zneo $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
             ( 2 x. A ) =/= ( ( 2 x. B ) + 1 ) ) $=
    ( cz wcel wa c2 cmul co c1 caddc cdiv wn wceq cmin cc 2cn zcn mulcl sylancr
    a1i wne halfnz adantr adantl 1cnd subaddd subdid oveq1d zsubcl syl cc0 2ap0
    cap wbr divcanap3d eqtr3d eqeltrd oveq1 eleq1d syl5ibcom sylbird mpi necomd
    necon3bd ) ACDZBCDZEZFBGHZIJHZFAGHZVGIFKHZCDZLVIVJUAUBVGVLVIVJVGVIVJMVJVHNH
    ZIMZVLVGVJVHIVGFODZAODZVJODPVEVPVFAQUCZFARSVGVOBODZVHODPVFVRVEBQUDZFBRSVGUE
    UFVGVMFKHZCDVNVLVGVTABNHZCVGFWAGHZFKHVTWAVGWBVMFKVGFABVOVGPTZVQVSUGUHVGWAFV
    GWACDWAODABUIZWAQUJWCFUKUMUNVGULTUOUPWDUQVNVTVKCVMIFKURUSUTVAVDVBVC $.

  ${
    $d j k N $.
    $( A positive integer is even or odd.  (Contributed by Jim Kingdon,
       15-Mar-2020.) $)
    nneoor $p |- ( N e. NN ->
                ( ( N / 2 ) e. NN \/ ( ( N + 1 ) / 2 ) e. NN ) ) $=
      ( vj vk cn wcel c1 caddc co c2 cdiv cv wceq oveq1d eleq1d orbi12d 2div2e1
      wo oveq1 cc 2cn df-2 oveq1i eqtr3i 1nn eqeltri orci peano2nn nncn cc0 cap
      add1p1 wbr wa 2ap0 pm3.2i divdirap mp3an23 oveq2i syl6eq eqtrd syl orim2d
      syl5ibr orcom syl6ib nnind orcomd ) ADEAFGHZIJHZDEZAIJHZDEZBKZFGHZIJHZDEZ
      VMIJHZDEZQFFGHZIJHZDEZFIJHZDEZQCKZFGHZIJHZDEZWDIJHZDEZQZWEFGHZIJHZDEZWGQZ
      VJVLQBCAVMFLZVPWAVRWCWOVOVTDWOVNVSIJVMFFGRMNWOVQWBDVMFIJRNOVMWDLZVPWGVRWI
      WPVOWFDWPVNWEIJVMWDFGRMNWPVQWHDVMWDIJRNOVMWELZVPWMVRWGWQVOWLDWQVNWKIJVMWE
      FGRMNWQVQWFDVMWEIJRNOVMALZVPVJVRVLWRVOVIDWRVNVHIJVMAFGRMNWRVQVKDVMAIJRNOW
      AWCVTFDIIJHZVTFIVSIJUAUBPUCUDUEUFWDDEZWJWGWMQWNWTWIWMWGWIWMWTWHFGHZDEWHUG
      WTWLXADWTWDSEZWLXALWDUHXBWLWDIGHZIJHZXAXBWKXCIJWDUKMXBXDWHWSGHZXAXBISEZXF
      IUIUJULZUMXDXELTXFXGTUNUOWDIIUPUQWSFWHGPURUSUTVANVCVBWGWMVDVEVFVG $.

    $( A positive integer is even or odd but not both.  (Contributed by NM,
       1-Jan-2006.)  (Proof shortened by Mario Carneiro, 18-May-2014.) $)
    nneo $p |- ( N e. NN ->
                ( ( N / 2 ) e. NN <-> -. ( ( N + 1 ) / 2 ) e. NN ) ) $=
      ( cn wcel c2 cdiv co c1 caddc cmul wceq nncn peano2cn syl 2cnd divcanap2d
      wn cc cc0 cz nnz cap wbr 2ap0 a1i oveq1d eqtr4d wne syl2an expcom syl5com
      zneo necon2bd nneoor orcomd ord impbid ) ABCZADEFZBCZAGHFZDEFZBCZPZUQDVAI
      FZDURIFZGHFZJUSVCUQVDUTVFUQUTDUQAQCUTQCAKZALMUQNZDRUAUBUQUCUDZOUQVEAGHUQA
      DVGVHVIOUEUFUSVBVDVFVBUSVDVFUGZVBVASCURSCVJUSVATURTVAURUKUHUIULUJUQVBUSUQ
      USVBAUMUNUOUP $.

    nneo.1 $e |- N e. NN $.
    $( A positive integer is even or odd but not both.  (Contributed by NM,
       20-Aug-2001.) $)
    nneoi $p |- ( ( N / 2 ) e. NN <-> -. ( ( N + 1 ) / 2 ) e. NN ) $=
      ( cn wcel c2 cdiv co c1 caddc wn wb nneo ax-mp ) ACDAEFGCDAHIGEFGCDJKBALM
      $.
  $}

  $( An integer is even or odd.  (Contributed by NM, 1-Jan-2006.) $)
  zeo $p |- ( N e. ZZ -> ( ( N / 2 ) e. ZZ \/ ( ( N + 1 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel cc0 wceq cn cneg c2 cdiv co c1 caddc 2cn 2ap0 syl cc mp3an23 cmin
    eleq1d ax-1cn cr w3o wa wo elz oveq1 div0api eqeltri syl6eqel adantl nneoor
    0z orcd nnz orim12i wi recn cap wbr divnegap nnnegz syl6bir halfcld negnegd
    sylibd peano2zm negsubdi2i 2m1e1 eqtr2i negcon2i mpbi negcl addsubass negdi
    subcli oveq2i mpan2 3eqtr4a oveq1d peano2cn pm3.2i 2div2e1 syl6reqr 3eqtr4d
    divsubdirap eqcomi syl5ib znegcl syl6 peano2re recnd orim12d adantr 3jaodan
    syl5 mpd sylbi ) ABCAUACZADEZAFCZAGZFCZUBUCAHIJZBCZAKLJZHIJZBCZUDZAUEWRWSXH
    WTXBWSXHWRWSXDXGWSXCDHIJZBADHIUFXIDBHMNUGULUHUIUMUJWTXHWRWTXCFCZXFFCZUDXHAU
    KXJXDXKXGXCUNXFUNUOOUJWRXBUCXAHIJZFCZXAKLJZHIJZFCZUDZXHXBXQWRXAUKUJWRXQXHUP
    XBWRXMXDXPXGWRXMXCGZGZBCZXDWRXMXRFCXTWRXRXLFWRAPCZXRXLEZAUQZYAHPCZHDURUSZYB
    MNAHUTQOSXRVAVBWRXSXCBWRXCWRAYCVCVDSVEXPXOBCZWRXGXOUNWRYFXFGZGZBCZXGWRYFYGB
    CZYIYFXOKRJZBCWRYJXOVFWRYKYGBWRYAYKYGEYCYAXNHRJZHIJZXEGZHIJZYKYGYAYLYNHIYAX
    AKHRJZLJZXAKGZLJZYLYNYPYRXALKYPGZEYPYREYTHKRJKKHTMVGVHVIKYPTKHTMVOVJVKVPYAX
    APCZYLYQEZAVLZUUAKPCZYDUUBTMXAKHVMQOYAUUDYNYSETAKVNVQVRVSYAYMXOHHIJZRJZYKYA
    XNPCZYMUUFEZYAUUAUUGUUCXAVTOUUGYDYDYEUCUUHMYDYEMNWAXNHHWEQOKUUEXORUUEKWBWFV
    PWCYAXEPCZYGYOEZAVTUUIYDYEUUJMNXEHUTQOWDOSWGYGWHWIWRYHXFBWRXFWRXEWRXEAWJWKV
    CVDSVEWOWLWMWPWNWQ $.

  $( An integer is even or odd but not both.  (Contributed by Mario Carneiro,
     12-Sep-2015.) $)
  zeo2 $p |- ( N e. ZZ ->
              ( ( N / 2 ) e. ZZ <-> -. ( ( N + 1 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c2 cdiv co c1 caddc wn cmul wceq cc zcn peano2cn syl 2cnd cc0 cap
    wbr divcanap2d a1i oveq1d eqtr4d wne expcom necon2bd syl5com zeo orcomd ord
    2ap0 zneo impbid ) ABCZADEFZBCZAGHFZDEFZBCZIZUNDURJFZDUOJFZGHFZKUPUTUNVAUQV
    CUNUQDUNALCUQLCAMZANOUNPZDQRSUNUKUAZTUNVBAGHUNADVDVEVFTUBUCUPUSVAVCUSUPVAVC
    UDURUOULUEUFUGUNUSUPUNUPUSAUHUIUJUM $.

  ${
    $d x A $.  $d x B $.
    $( Second Peano postulate for upper integers.  (Contributed by NM,
       3-Oct-2004.) $)
    peano2uz2 $p |- ( ( A e. ZZ /\ B e. { x e. ZZ | A <_ x } ) ->
                             ( B + 1 ) e. { x e. ZZ | A <_ x } ) $=
      ( cz wcel cle wbr wa c1 caddc co cv crab peano2z ad2antrl cr wi zre breq2
      elrab lep1 adantl peano2re ancli letr 3expb sylan2 mpan2d syl2an impr jca
      anbi2i 3imtr4i ) BDEZCDEZBCFGZHZHZCIJKZDEZBUSFGZHUNCBALZFGZADMZEZHUSVDEUR
      UTVAUOUTUNUPCNOUNUOUPVAUNBPEZCPEZUPVAQUOBRCRVFVGHUPCUSFGZVAVGVHVFCUAUBVGV
      FVGUSPEZHUPVHHVAQZVGVICUCUDVFVGVIVJBCUSUEUFUGUHUIUJUKVEUQUNVCUPACDVBCBFST
      ULVCVAAUSDVBUSBFSTUM $.
  $}

  ${
    $d k n x A $.  $d k n x N $.
    $( Peano's inductive postulate for upper integers.  (Contributed by NM,
       6-Jul-2005.)  (Revised by Mario Carneiro, 25-Jul-2013.) $)
    peano5uzti $p |- ( N e. ZZ -> ( ( N e. A /\ A. x e. A ( x + 1 ) e. A )
                          -> { k e. ZZ | N <_ k } C_ A ) ) $=
      ( vn cz wcel cv c1 caddc co wa cc wceq cn wi oveq1 eleq1d imbi2d ex breq2
      wral cle wbr crab wss elrab anbi2i cmin ad2antrl 1cnd subcld npcan syl2an
      zcn ax-1cn subsub mp3an3 cn0 znn0sub biimpa anasss ancoms adantll nn0p1nn
      eqeltrd simpr simpll adantr pncan3d simprl rspccv ad2antll nncnd ad2antlr
      syl add32d sylibd a2d nnind syl3c eqeltrrd sylanb expcom expdimp ssrdv )
      DFGZDBGZAHZIJKZBGZABUBZLZDCHZUCUDZCFUEZBUFWGWMLZEWPBWGWMEHZWPGZWRBGZWMWSL
      ZWGWTXAWMWRFGZDWRUCUDZLZLZWGWTWSXDWMWOXCCWRFWNWRDUCUAUGUHXEWGLZWRDIUIKZUI
      KZXGJKZWRBXEWRMGZXGMGZXIWRNWGXBXJWMXCWRUOUJZWGDIDUOZWGUKULZWRXGUMUNXFXHOG
      WGWMXIBGZXFXHWRDUIKZIJKZOXEXJDMGZXHXQNZWGXLXMXJXRIMGXSUPWRDIUQURUNXFXPUSG
      ZXQOGXDWGXTWMWGXDXTWGXBXCXTWGXBLXCXTDWRUTVAVBVCVDXPVEVPVFXEWGVGWMXDWGVHWG
      WMWNXGJKZBGZPZPWGWMIXGJKZBGZPZPWGWMWRXGJKZBGZPZPWGWMWRIJKZXGJKZBGZPZPWGWM
      XOPZPCEXHWNINZYCYFWGYOYBYEWMYOYAYDBWNIXGJQRSSWNWRNZYCYIWGYPYBYHWMYPYAYGBW
      NWRXGJQRSSWNYJNZYCYMWGYQYBYLWMYQYAYKBWNYJXGJQRSSWNXHNZYCYNWGYRYBXOWMYRYAX
      IBWNXHXGJQRSSWGWMYEWQYDDBWQIDWQUKWGXRWMXMVIVJWGWHWLVKVFTWROGZWGYIYMYSWGYI
      YMPYSWGLZWMYHYLYTWMYHYLPYTWMLZYHYGIJKZBGZYLWLYHUUCPYTWHWKUUCAYGBWIYGNWJUU
      BBWIYGIJQRVLVMUUAUUBYKBUUAWRXGIUUAWRYSWGWMVHVNWGXKYSWMXNVOUUAUKVQRVRTVSTV
      SVTWAWBWCWDWEWFT $.

    ${
      peano5uz.1 $e |- N e. ZZ $.
      $( Peano's inductive postulate for upper integers.  (Contributed by NM,
         6-Jul-2005.)  (Revised by Mario Carneiro, 3-May-2014.) $)
      peano5uzi $p |- ( ( N e. A /\ A. x e. A ( x + 1 ) e. A ) ->
                    { k e. ZZ | N <_ k } C_ A ) $=
        ( cz wcel cv c1 caddc co wral wa cle wbr crab wss wi peano5uzti ax-mp )
        DFGDBGAHIJKBGABLMDCHNOCFPBQREABCDST $.
    $}
  $}

  ${
    $d x y z w v u m N $.
    dfuz.1 $e |- N e. ZZ $.
    $( An expression for the upper integers that start at ` N ` that is
       analogous to ~ dfnn2 for positive integers.  (Contributed by NM,
       6-Jul-2005.)  (Proof shortened by Mario Carneiro, 3-May-2014.) $)
    dfuzi $p |- { z e. ZZ | N <_ z } =
               |^| { x | ( N e. x /\ A. y e. x ( y + 1 ) e. x ) } $=
      ( cv cle wbr cz crab wcel c1 caddc co wral wa cab wss mpbir2an eleq2 cint
      ssintab peano5uzi mpgbir zrei leidi breq2 elrab peano2uz2 mpan rgen rabex
      wi zex wceq raleqbi1dv anbi12d elab intss1 ax-mp eqssi ) DCFZGHZCIJZDAFZK
      ZBFZLMNZVEKZBVEOZPZAQZUAZVDVMRVKVDVERUMAVKAVDUBBVECDEUCUDVDVLKZVMVDRVNDVD
      KZVHVDKZBVDOZVODIKZDDGHZEDDEUEUFVCVSCDIVBDDGUGUHSVPBVDVRVGVDKVPECDVGUIUJU
      KVKVOVQPAVDVCCIUNULVEVDUOVFVOVJVQVEVDDTVIVPBVEVDVEVDVHTUPUQURSVDVLUSUTVA
      $.
  $}

  ${
    $d j z w N $.  $d j z ps $.  $d j z ch $.  $d j z th $.  $d j z ta $.
    $d k w ph $.  $d j k z w M $.
    $( Substitutions. $)
    uzind.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind.6 $e |- ( ( M e. ZZ /\ k e. ZZ /\ M <_ k ) -> ( ch -> th ) ) $.
    $( Induction on the upper integers that start at ` M ` .  The first four
       hypotheses give us the substitution instances we need; the last two are
       the basis and the induction step.  (Contributed by NM, 5-Jul-2005.) $)
    uzind $p |- ( ( M e. ZZ /\ N e. ZZ /\ M <_ N ) -> ta ) $=
      ( cz wcel cle wbr wa vw w3a cv crab c1 caddc wral wss zre leidd jca ancli
      co wceq breq2 anbi12d elrab sylibr wi peano2z a1i adantrd clt ltp1 adantl
      cr peano2re lelttr 3expb sylan2 mpan2d ltle syld syl2an expimpd 3exp jcad
      imp4d 3imtr4g ralrimiv peano5uzti mp2and sseld 3imtr3g 3impib simprd ) HP
      QZIPQZHIRSZUBZWIEWJWHWIETZWGWHWIWHWKTZWGIHUAUCZRSZUAPUDZQIHFUCZRSZATZFPUD
      ZQWHWITWLWGWOWSIWGHWSQZGUCZUEUFUMZWSQZGWSUGWOWSUHWGWGHHRSZBTZTWTWGXEWGXDB
      WGHHUIZUJNUKULWRXEFHPWPHUNWQXDABWPHHRUOJUPUQURWGXCGWSWGXAPQZHXARSZCTZTZXB
      PQZHXBRSZDTZTXAWSQXCWGXJXKXMWGXGXKXIXGXKUSWGXAUTVAVBWGXJXLDWGXGXIXLWGXGTX
      HXLCWGHVFQZXAVFQZXHXLUSXGXFXAUIXNXOTZXHHXBVCSZXLXPXHXAXBVCSZXQXOXRXNXAVDV
      EXOXNXOXBVFQZTXHXRTXQUSZXOXSXAVGZULXNXOXSXTHXAXBVHVIVJVKXOXNXSXQXLUSYAHXB
      VLVJVMVNVBVOWGXGXHCDWGXGXHCDUSOVPVRVQVQWRXIFXAPWPXAUNWQXHACWPXAHRUOKUPUQW
      RXMFXBPWPXBUNWQXLADWPXBHRUOLUPUQVSVTGWSUAHWAWBWCWNWIUAIPWMIHRUOUQWRWKFIPW
      PIUNWQWIAEWPIHRUOMUPUQWDWEWFWF $.
  $}

  ${
    $d j z w N $.  $d j z ps $.  $d j z ch $.  $d j z th $.  $d j z ta $.
    $d k w ph $.  $d j k z w M $.
    $( Substitutions. $)
    uzind2.1 $e |- ( j = ( M + 1 ) -> ( ph <-> ps ) ) $.
    uzind2.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind2.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind2.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind2.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind2.6 $e |- ( ( M e. ZZ /\ k e. ZZ /\ M < k ) -> ( ch -> th ) ) $.
    $( Induction on the upper integers that start _after_ an integer ` M ` .
       The first four hypotheses give us the substitution instances we need;
       the last two are the basis and the induction step.  (Contributed by NM,
       25-Jul-2005.) $)
    uzind2 $p |- ( ( M e. ZZ /\ N e. ZZ /\ M < N ) -> ta ) $=
      ( cz wcel wbr wi wceq clt wa c1 caddc co zltp1le peano2z cv imbi2d 3expia
      cle a1i w3a sylbird ex com3l imp 3adant1 a2d uzind 3exp syl com34 pm2.43a
      sylbid 3impia ) HPQZIPQZHIUARZEVGVHUBVIHUCUDUEZIUKRZEHIUFVGVHVKESZVHVGVLV
      GVHVKVGEVGVJPQZVHVKVGESZSSHUGVMVHVKVNVGASVGBSZVGCSVGDSVNFGVJIFUHZVJTABVGJ
      UIVPGUHZTACVGKUIVPVQUCUDUETADVGLUIVPITAEVGMUIVOVMNULVMVQPQZVJVQUKRZUMVGCD
      VRVSVGCDSZSZVMVRVSWAVGVRVSVTVGVRVSVTSVGVRUBVSHVQUARZVTHVQUFVGVRWBVTOUJUNU
      OUPUQURUSUTVAVBVCVDUQVEVF $.
  $}

  ${
    $d j k N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d m ph $.
    $d j m k M $.
    $( Substitutions. $)
    uzind3.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind3.2 $e |- ( j = m -> ( ph <-> ch ) ) $.
    uzind3.3 $e |- ( j = ( m + 1 ) -> ( ph <-> th ) ) $.
    uzind3.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind3.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind3.6 $e |- ( ( M e. ZZ /\ m e. { k e. ZZ | M <_ k } ) ->
                   ( ch -> th ) ) $.
    $( Induction on the upper integers that start at an integer ` M ` .  The
       first four hypotheses give us the substitution instances we need, and
       the last two are the basis and the induction step.  (Contributed by NM,
       26-Jul-2005.) $)
    uzind3 $p |- ( ( M e. ZZ /\ N e. { k e. ZZ | M <_ k } ) -> ta ) $=
      ( cle wbr cz wcel cv wa breq2 elrab wi sylan2br 3impb uzind 3expb sylan2b
      crab ) JIGUAZQRZGSUKZTISTZJSTZIJQRZUBEUMUQGJSULJIQUCUDUOUPUQEABCDEFHIJKLM
      NOUOHUAZSTZIURQRZCDUEZUSUTUBUOURUNTVAUMUTGURSULURIQUCUDPUFUGUHUIUJ $.
  $}

  ${
    $d x y $.  $d A x $.  $d ps x $.  $d ch x $.  $d th x $.  $d ta x $.
    $d ph y $.
    nn0ind.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    nn0ind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nn0ind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nn0ind.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    nn0ind.5 $e |- ps $.
    nn0ind.6 $e |- ( y e. NN0 -> ( ch -> th ) ) $.
    $( Principle of Mathematical Induction (inference schema) on nonnegative
       integers.  The first four hypotheses give us the substitution instances
       we need; the last two are the basis and the induction step.
       (Contributed by NM, 13-May-2004.) $)
    nn0ind $p |- ( A e. NN0 -> ta ) $=
      ( cn0 wcel cz cc0 cle wbr wa elnn0z 0z a1i cv sylbir 3adant1 uzind mp3an1
      wi sylbi ) HOPHQPZRHSTZUAEHUBRQPZULUMEUCABCDEFGRHIJKLBUNMUDGUEZQPZRUOSTZC
      DUJZUNUPUQUAUOOPURUOUBNUFUGUHUIUK $.
  $}

  ${
    $d K x $.  $d M x y $.  $d N x y $.  $d ch x $.  $d ph y $.  $d ps x $.
    $d ta x $.  $d th x $.
    fzind.1 $e |- ( x = M -> ( ph <-> ps ) ) $.
    fzind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    fzind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    fzind.4 $e |- ( x = K -> ( ph <-> ta ) ) $.
    fzind.5 $e |- ( ( M e. ZZ /\ N e. ZZ /\ M <_ N ) -> ps ) $.
    fzind.6 $e |- ( ( ( M e. ZZ /\ N e. ZZ ) /\
                      ( y e. ZZ /\ M <_ y /\ y < N ) ) -> ( ch -> th ) ) $.
    $( Induction on the integers from ` M ` to ` N ` inclusive .  The first
       four hypotheses give us the substitution instances we need; the last two
       are the basis and the induction step.  (Contributed by Paul Chapman,
       31-Mar-2011.) $)
    fzind $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\
                    ( K e. ZZ /\ M <_ K /\ K <_ N ) ) -> ta ) $=
      ( cle wbr wa wi cz wcel w3a cv c1 caddc co breq1 anbi2d imbi12d 3expib cr
      wceq zre p1le 3expia syl2an imdistanda imim1d 3ad2ant2 wb zltp1le adantlr
      clt expcom pm5.32d adantl 3expa com12 sylbird com23 expd 3impib impd syld
      ex a2d uzind expcomd 3expb 3impia impcom ) HUAUBZIHQRZHJQRZUCZIUAUBZJUAUB
      ZSZEWFWGWHEWCWDWEWGWHETZTWCWDSZWGWEWJWGWKWEWJTZWGWCWDWLWGWCWDUCWHWEEWHFUD
      ZJQRZSZATWHIJQRZSZBTWHGUDZJQRZSZCTZWHWRUEUFUGZJQRZSZDTZWHWESZETFGIHWMIUMZ
      WOWQABXGWNWPWHWMIJQUHUIKUJWMWRUMZWOWTACXHWNWSWHWMWRJQUHUILUJWMXBUMZWOXDAD
      XIWNXCWHWMXBJQUHUIMUJWMHUMZWOXFAEXJWNWEWHWMHJQUHUINUJWGWHWPBOUKWGWRUAUBZI
      WRQRZUCZXAXDCTZXEXKWGXAXNTXLXKXDWTCXKWHXCWSXKWRULUBZJULUBZXCWSTWHWRUNJUNX
      OXPXCWSWRJUOUPUQURUSUTXMXDCDXMWHXCCDTZXMXCWHXQWGXKXLXCWHXQTZTWGXKXLSZXCXR
      WGWHXSXCSZXQWGWHXTXQTWIXTXSWRJVDRZSZXQWHYBXTVAWGWHXSYAXCXSWHYAXCVAZXKWHYC
      XLWRJVBVCVEVFVGYBWIXQXKXLYAWIXQTWIXKXLYAUCXQPVEVHVIVJVPVKVLVMVKVNVQVOVRVS
      VTVEVKWAVNWB $.
  $}

  ${
    $d K x $.  $d M x y $.  $d N x y $.  $d ch x $.  $d ph y $.  $d ps x $.
    $d ta x $.  $d th x $.
    fnn0ind.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    fnn0ind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    fnn0ind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    fnn0ind.4 $e |- ( x = K -> ( ph <-> ta ) ) $.
    fnn0ind.5 $e |- ( N e. NN0 -> ps ) $.
    fnn0ind.6 $e |- ( ( N e. NN0 /\ y e. NN0 /\ y < N ) -> ( ch -> th ) ) $.
    $( Induction on the integers from ` 0 ` to ` N ` inclusive .  The first
       four hypotheses give us the substitution instances we need; the last two
       are the basis and the induction step.  (Contributed by Paul Chapman,
       31-Mar-2011.) $)
    fnn0ind $p |- ( ( N e. NN0 /\ K e. NN0 /\ K <_ N ) -> ta ) $=
      ( wcel wbr wa cc0 wi cn0 cle cz elnn0z w3a nn0z 0z sylbir 3adant1 clt zre
      cv cr 0re lelttr ltle 3adant2 mp3an1 syl2an ex com23 3impib impcom anbi1i
      syld 3expb syl2anbr expcom 3impa expd mpd adantll fzind mpanl1 syl5 3expa
      sylanb 3impb ) IUAPZHUAPZHIUBQZEVTWARVSEVTHUCPZSHUBQZRWAVSETZHUDWBWCWAWDV
      SIUCPZWBWCWAUEZEIUFWEWFESUCPZWEWFEUGABCDEFGHSIJKLMWESIUBQZBWGWEWHRZVSBIUD
      ZNUHUIWEGULZUCPZSWKUBQZWKIUJQZUEZCDTZWGWEWORWHWPWOWEWHWLWMWNWEWHTWLWEWMWN
      RZWHWLWEWQWHTZWLWKUMPZIUMPZWRWEWKUKIUKSUMPZWSWTWRUNXAWSWTUEWQSIUJQZWHSWKI
      UOXAWTXBWHTWSSIUPUQVEURUSUTVAVBVCWOWEWHWPTWOWEWHWPWLWMWNWIWPTWIWLWMRZWNRZ
      WPWIVSWKUAPZWNRWPXDWJXEXCWNWKUDVDVSXEWNWPOVFVGVHVIVJVCVKVLVMVNVHVOVPVQVCV
      R $.
  $}

  ${
    $d x y z $.  $d A x z $.  $d ps x z $.  $d ch x z $.  $d th x z $.
    $d ta x z $.  $d ph y z $.
    nn0ind-raph.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    nn0ind-raph.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nn0ind-raph.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nn0ind-raph.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    nn0ind-raph.5 $e |- ps $.
    nn0ind-raph.6 $e |- ( y e. NN0 -> ( ch -> th ) ) $.
    $( Principle of Mathematical Induction (inference schema) on nonnegative
       integers.  The first four hypotheses give us the substitution instances
       we need; the last two are the basis and the induction step.  Raph Levien
       remarks:  "This seems a bit painful.  I wonder if an explicit
       substitution version would be easier."  (Contributed by Raph Levien,
       10-Apr-2004.) $)
    nn0ind-raph $p |- ( A e. NN0 -> ta ) $=
      ( vz wcel cc0 wceq c1 wi cn0 cn wo elnn0 wsb wsbc dfsbcq2 cv sbhypf caddc
      nfv co nfsbc1v 1ex c0ex wa 0nn0 eleq1a ax-mp mpbiri eqeq2 syl6bir pm5.74d
      wb mpbii com12 vtocle sylc adantr oveq1 0p1e1 syl6eq eqeq2d imp mpbird ex
      sbceq1a mpbid vtoclef nnnn0 syl nnind bicomd sylan9bb sylbird eqcoms jaoi
      eqeq1 sylbi ) HUAPHUBPZHQRZUCEHUDWJEWKAFOUEAFSUFZCDEOGHAFOSUGACFOGUHZCFUK
      JUIADFOWMSUJULZDFUKKUIAEFOHEFUKLUIWLFSAFSUMUNFUHZSRZAWLWPATGQUOWMQRZWPAWQ
      WPUPADWQDWPWQWMUAPZCDQUAPWQWRTUQQUAWMURUSWQCTFQUOWQWOQRZCWQWSATWSCTWSABMI
      UTWQWSACWQWSWOWMRACVDWMQWOVAJVBVCVEVFVGNVHVIWQWPADVDZWQWPWOWNRWTWQWNSWOWQ
      WNQSUJULSWMQSUJVJVKVLVMKVBVNVOVPVGAFSVQVRVSWMUBPWRCDTWMVTNWAWBEQHQHRZETZF
      QXBFUKUOWSXAWOHRZEWOQHWHWSXCEWSXCUPBEMWSBAXCEWSABIWCLWDVEVPWEVSWFWGWI $.
  $}

  ${
    $d A x $.  $d ch x $.  $d et x $.  $d ph y $.  $d ps x $.  $d ta x $.
    $d th x $.  $d x y ze $.
    zindd.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    zindd.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    zindd.3 $e |- ( x = ( y + 1 ) -> ( ph <-> ta ) ) $.
    zindd.4 $e |- ( x = -u y -> ( ph <-> th ) ) $.
    zindd.5 $e |- ( x = A -> ( ph <-> et ) ) $.
    zindd.6 $e |- ( ze -> ps ) $.
    zindd.7 $e |- ( ze -> ( y e. NN0 -> ( ch -> ta ) ) ) $.
    zindd.8 $e |- ( ze -> ( y e. NN -> ( ch -> th ) ) ) $.
    $( Principle of Mathematical Induction on all integers, deduction version.
       The first five hypotheses give the substitutions; the last three are the
       basis, the induction, and the extension to negative numbers.
       (Contributed by Paul Chapman, 17-Apr-2009.)  (Proof shortened by Mario
       Carneiro, 4-Jan-2017.) $)
    zindd $p |- ( ze -> ( A e. ZZ -> et ) ) $=
      ( cz wcel wral wi cv cneg cn0 cn wo cr znegcl elznn0nn sylib simpr orim2i
      wa syl zcn negnegd eleq1d orbi2d mpbid cc0 wceq imbi2d c1 caddc com12 a2d
      co nn0ind nnnn0 mpdd jaod syl5 ralrimiv wb sylan9eqr eqcomd bicomd rspcdv
      negeq rspccv 3syl ) GDISUAZAHSUAJSTFUBGDISIUCZSTZWDUDZUETZWDUFTZUGZGDWEWG
      WFUDZUFTZUGZWIWEWGWFUHTZWKUNZUGZWLWEWFSTWOWDUIWFUJUKWNWKWGWMWKULUMUOWEWKW
      HWGWEWJWDUFWEWDWDUPUQURUSUTGWGDWHWGGDGAUBZGBUBZGCUBZGEUBZGDUBHIWFHUCZVAVB
      ABGKVCZWTWDVBACGLVCZWTWDVDVEVHVBAEGMVCZWTWFVBZADGNVCPWDUETZGCEGXECEUBQVFV
      GZVIVFGWHCDWHGCWHXEWRWDVJWPWQWRWSWRHIWDXAXBXCXBPXFVIUOVFRVKVLVMVNWCAHSWTS
      TZWCAXGDAIWTUDZSWTUIXGWDXHVBZUNZADXJXDADVOXJWFWTXIXGWFXHUDWTWDXHVTXGWTWTU
      PUQVPVQNUOVRVSVFVNAFHJSOWAWB $.
  $}

  ${
    $d x z A $.  $d y A $.
    $( Any real number can be sandwiched between two integers.  Exercise 2 of
       [Apostol] p. 28.  (Contributed by NM, 10-Nov-2004.) $)
    btwnz $p |- ( A e. RR -> ( E. x e. ZZ x < A /\ E. y e. ZZ A < y ) ) $=
      ( vz cr wcel cv clt wbr cz wrex cneg cn renegcl arch wa wb nnre ltnegcon1
      syl ex syl5 pm5.32d nnnegz breq1 rspcev sylan syl6bi expd rexlimdv anim1i
      mpd nnz reximi2 jca ) CEFZAGZCHIZAJKZCBGZHIZBJKZUPCLZDGZHIZDMKZUSUPVCEFVF
      CNVCDOTUPVEUSDMUPVDMFZVEUSUPVGVEPVGVDLZCHIZPUSUPVGVEVIVGVDEFZUPVEVIQZVDRU
      PVJVKCVDSUAUBUCVGVHJFVIUSVDUDURVIAVHJUQVHCHUEUFUGUHUIUJULUPVABMKVBCBOVAVA
      BMJUTMFUTJFVAUTUMUKUNTUO $.
  $}

  ${
    nn0zd.1 $e |- ( ph -> A e. NN0 ) $.
    $( A positive integer is an integer.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nn0zd $p |- ( ph -> A e. ZZ ) $=
      ( cn0 cz nn0ssz sseldi ) ADEBFCG $.
  $}

  ${
    nnzd.1 $e |- ( ph -> A e. NN ) $.
    $( A nonnegative integer is an integer.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nnzd $p |- ( ph -> A e. ZZ ) $=
      ( nnnn0d nn0zd ) ABABCDE $.
  $}

  ${
    zred.1 $e |- ( ph -> A e. ZZ ) $.
    $( An integer is a real number.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zred $p |- ( ph -> A e. RR ) $=
      ( cz cr zssre sseldi ) ADEBFCG $.

    $( An integer is a complex number.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zcnd $p |- ( ph -> A e. CC ) $=
      ( zred recnd ) ABABCDE $.

    $( Closure law for negative integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    znegcld $p |- ( ph -> -u A e. ZZ ) $=
      ( cz wcel cneg znegcl syl ) ABDEBFDECBGH $.

    $( Deduction from second Peano postulate generalized to integers.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    peano2zd $p |- ( ph -> ( A + 1 ) e. ZZ ) $=
      ( cz wcel c1 caddc co peano2z syl ) ABDEBFGHDECBIJ $.

    zaddcld.1 $e |- ( ph -> B e. ZZ ) $.
    $( Closure of addition of integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zaddcld $p |- ( ph -> ( A + B ) e. ZZ ) $=
      ( cz wcel caddc co zaddcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of subtraction of integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zsubcld $p |- ( ph -> ( A - B ) e. ZZ ) $=
      ( cz wcel cmin co zsubcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of multiplication of integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zmulcld $p |- ( ph -> ( A x. B ) e. ZZ ) $=
      ( cz wcel cmul co zmulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  $( Increasing an integer by 2 results in an integer.  (Contributed by
     Alexander van der Vekens, 16-Sep-2018.) $)
  zadd2cl $p |- ( N e. ZZ -> ( N + 2 ) e. ZZ ) $=
    ( cz wcel c2 id 2z a1i zaddcld ) ABCZADIEDBCIFGH $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                               Decimal arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ; $.
  $( Constant used for decimal constructor. $)
  cdc $a class ; A B $.

  $( Define the "decimal constructor", which is used to build up "decimal
     integers" or "numeric terms" in base 10.  For example,
     ` ( ; ; ; 1 0 0 0 + ; ; ; 2 0 0 0 ) = ; ; ; 3 0 0 0 ` .  (Contributed by
     Mario Carneiro, 17-Apr-2015.) $)
  df-dec $a |- ; A B = ( ( 10 x. A ) + B ) $.

  $( Equality theorem for the decimal constructor.  (Contributed by Mario
     Carneiro, 17-Apr-2015.) $)
  deceq1 $p |- ( A = B -> ; A C = ; B C ) $=
    ( wceq c10 cmul co caddc cdc oveq2 oveq1d df-dec 3eqtr4g ) ABDZEAFGZCHGEBFG
    ZCHGACIBCINOPCHABEFJKACLBCLM $.

  $( Equality theorem for the decimal constructor.  (Contributed by Mario
     Carneiro, 17-Apr-2015.) $)
  deceq2 $p |- ( A = B -> ; C A = ; C B ) $=
    ( wceq c10 cmul co caddc cdc oveq2 df-dec 3eqtr4g ) ABDECFGZAHGMBHGCAICBIAB
    MHJCAKCBKL $.

  ${
    deceq1i.1 $e |- A = B $.
    $( Equality theorem for the decimal constructor.  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    deceq1i $p |- ; A C = ; B C $=
      ( wceq cdc deceq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality theorem for the decimal constructor.  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    deceq2i $p |- ; C A = ; C B $=
      ( wceq cdc deceq2 ax-mp ) ABECAFCBFEDABCGH $.

    deceq12i.2 $e |- C = D $.
    $( Equality theorem for the decimal constructor.  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    deceq12i $p |- ; A C = ; B D $=
      ( cdc deceq1i deceq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
  $}

  ${
    numnncl.1 $e |- T e. NN0 $.
    numnncl.2 $e |- A e. NN0 $.
    ${
      numnncl.3 $e |- B e. NN $.
      $( Closure for a numeral (with units place).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      numnncl $p |- ( ( T x. A ) + B ) e. NN $=
        ( cmul co cn0 wcel cn caddc nn0mulcli nn0nnaddcl mp2an ) CAGHZIJBKJPBLH
        KJCADEMFPBNO $.
    $}

    $( Add a zero in the units place.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    num0u $p |- ( T x. A ) = ( ( T x. A ) + 0 ) $=
      ( cmul co cc0 caddc nn0mulcli nn0cni addid1i eqcomi ) BAEFZGHFMMMBACDIJKL
      $.

    $( Add a zero in the higher places.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    num0h $p |- A = ( ( T x. 0 ) + A ) $=
      ( cc0 cmul co caddc nn0cni mul01i oveq1i addid2i eqtr2i ) BEFGZAHGEAHGANE
      AHBBCIJKAADILM $.

    numcl.2 $e |- B e. NN0 $.
    $( Closure for a decimal integer (with units place).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    numcl $p |- ( ( T x. A ) + B ) e. NN0 $=
      ( cmul co nn0mulcli nn0addcli ) CAGHBCADEIFJ $.

    numsuc.4 $e |- ( B + 1 ) = C $.
    numsuc.5 $e |- N = ( ( T x. A ) + B ) $.
    $( The successor of a decimal integer (no carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    numsuc $p |- ( N + 1 ) = ( ( T x. A ) + C ) $=
      ( c1 caddc co cmul oveq1i nn0mulcli nn0cni ax-1cn addassi oveq2i 3eqtri )
      EKLMDANMZBLMZKLMUBBKLMZLMUBCLMEUCKLJOUBBKUBDAFGPQBHQRSUDCUBLITUA $.
  $}

  ${
    decnncl.1 $e |- A e. NN0 $.
    decnncl.2 $e |- B e. NN $.
    $( Closure for a numeral.  (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    decnncl $p |- ; A B e. NN $=
      ( cdc c10 cmul co caddc cn df-dec 10nn0 numnncl eqeltri ) ABEFAGHBIHJABKA
      BFLCDMN $.
  $}

  ${
    deccl.1 $e |- A e. NN0 $.
    deccl.2 $e |- B e. NN0 $.
    $( Closure for a numeral.  (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    deccl $p |- ; A B e. NN0 $=
      ( cdc c10 cmul co caddc cn0 df-dec 10nn0 numcl eqeltri ) ABEFAGHBIHJABKAB
      FLCDMN $.
  $}

  ${
    dec0u.1 $e |- A e. NN0 $.
    $( Add a zero in the units place.  (Contributed by Mario Carneiro,
       17-Apr-2015.) $)
    dec0u $p |- ( 10 x. A ) = ; A 0 $=
      ( c10 cmul co cc0 caddc cdc 10nn0 num0u df-dec eqtr4i ) CADEZMFGEAFHACIBJ
      AFKL $.

    $( Add a zero in the higher places.  (Contributed by Mario Carneiro,
       17-Apr-2015.) $)
    dec0h $p |- A = ; 0 A $=
      ( c10 cc0 cmul co caddc cdc 10nn0 num0h df-dec eqtr4i ) ACDEFAGFDAHACIBJD
      AKL $.
  $}

  ${
    numnncl2.1 $e |- T e. NN $.
    numnncl2.2 $e |- A e. NN $.
    $( Closure for a decimal integer (zero units place).  (Contributed by Mario
       Carneiro, 9-Mar-2015.) $)
    numnncl2 $p |- ( ( T x. A ) + 0 ) e. NN $=
      ( cmul co cc0 caddc cn nnmulcli nncni addid1i eqeltri ) BAEFZGHFNINNBACDJ
      ZKLOM $.
  $}

  ${
    decnncl2.1 $e |- A e. NN $.
    $( Closure for a decimal integer (zero units place).  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    decnncl2 $p |- ; A 0 e. NN $=
      ( cc0 cdc c10 cmul co caddc cn df-dec 10nn numnncl2 eqeltri ) ACDEAFGCHGI
      ACJAEKBLM $.
  $}

  ${
    numlt.1 $e |- T e. NN $.
    numlt.2 $e |- A e. NN0 $.
    numlt.3 $e |- B e. NN0 $.
    ${
      numlt.4 $e |- C e. NN $.
      numlt.5 $e |- B < C $.
      $( Comparing two decimal integers (equal higher places).  (Contributed by
         Mario Carneiro, 18-Feb-2014.) $)
      numlt $p |- ( ( T x. A ) + B ) < ( ( T x. A ) + C ) $=
        ( clt wbr cmul co caddc nn0rei nnrei nnnn0i nn0mulcli ltadd2i mpbi ) BC
        JKDALMZBNMUACNMJKIBCUABGOCHPUADADEQFROST $.
    $}

    numltc.3 $e |- C e. NN0 $.
    numltc.4 $e |- D e. NN0 $.
    numltc.5 $e |- C < T $.
    numltc.6 $e |- A < B $.
    $( Comparing two decimal integers (unequal higher places).  (Contributed by
       Mario Carneiro, 18-Feb-2014.) $)
    numltc $p |- ( ( T x. A ) + C ) < ( ( T x. B ) + D ) $=
      ( cmul co caddc clt wbr cle nn0rei wcel numlt nnrei ax-1cn adddii mulid1i
      c1 recni oveq2i eqtri breqtrri cn0 wb nn0ltp1le mp2an cc0 nngt0i peano2re
      mpbi cr ax-mp lemul2i remulcli readdcli ltletri nn0addge1i ) EAMNZCONZEBM
      NZPQZVHVHDONZRQVGVJPQVGEAUFONZMNZPQVLVHRQZVIVGVFEONZVLPACEEFGIFKUAVLVFEUF
      MNZONVNEAUFEEFUBZUGZAAGSZUGUCUDVOEVFOEVQUEUHUIUJVKBRQZVMABPQZVSLAUKTBUKTV
      TVSULGHABUMUNURUOEPQVSVMULEFUPVKBEAUSTVKUSTVRAUQUTZBHSZVPVAUTURVGVLVHVFCE
      AVPVRVBCISVCZEVKVPWAVBEBVPWBVBZVDUNVHDWDJVEVGVHVJWCWDVHDWDDJSVCVDUN $.
  $}

  ${
    declt.1 $e |- A e. NN0 $.
    declt.2 $e |- B e. NN0 $.
    ${
      declt.3 $e |- C e. NN $.
      declt.4 $e |- B < C $.
      $( Comparing two decimal integers (equal higher places).  (Contributed by
         Mario Carneiro, 17-Apr-2015.) $)
      declt $p |- ; A B < ; A C $=
        ( c10 cmul co caddc cdc clt 10nn numlt df-dec 3brtr4i ) HAIJZBKJRCKJABL
        ACLMABCHNDEFGOABPACPQ $.
    $}

    ${
      decltc.3 $e |- C e. NN0 $.
      decltc.4 $e |- D e. NN0 $.
      decltc.5 $e |- C < 10 $.
      decltc.6 $e |- A < B $.
      $( Comparing two decimal integers (unequal higher places).  (Contributed
         by Mario Carneiro, 18-Feb-2014.) $)
      decltc $p |- ; A C < ; B D $=
        ( c10 cmul co caddc cdc clt 10nn numltc df-dec 3brtr4i ) KALMCNMKBLMDNM
        ACOBDOPABCDKQEFGHIJRACSBDST $.
    $}

    decsuc.3 $e |- ( B + 1 ) = C $.
    decsuc.4 $e |- N = ; A B $.
    $( The successor of a decimal integer (no carry).  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    decsuc $p |- ( N + 1 ) = ; A C $=
      ( c1 caddc co c10 cmul cdc 10nn0 df-dec eqtri numsuc eqtr4i ) DIJKLAMKZCJ
      KACNABCLDOEFGDABNTBJKHABPQRACPS $.
  $}

  ${
    numlti.1 $e |- T e. NN $.
    numlti.2 $e |- A e. NN $.
    numlti.3 $e |- B e. NN0 $.
    numlti.4 $e |- C e. NN0 $.
    numlti.5 $e |- C < T $.
    $( Comparing a digit to a decimal integer.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    numlti $p |- C < ( ( T x. A ) + B ) $=
      ( cc0 cmul co caddc clt nnnn0i num0h 0nn0 nngt0i numltc eqbrtri ) CDJKLCM
      LDAKLBMLNCDDEOHPJACBDEQAFOHGIAFRST $.
  $}

  ${
    declti.1 $e |- A e. NN $.
    declti.2 $e |- B e. NN0 $.
    declti.3 $e |- C e. NN0 $.
    declti.4 $e |- C < 10 $.
    $( Comparing a digit to a decimal integer.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    declti $p |- C < ; A B $=
      ( c10 cmul co caddc cdc clt 10nn numlti df-dec breqtrri ) CHAIJBKJABLMABC
      HNDEFGOABPQ $.
  $}

  ${
    numsucc.1 $e |- Y e. NN0 $.
    numsucc.2 $e |- T = ( Y + 1 ) $.
    numsucc.3 $e |- A e. NN0 $.
    numsucc.4 $e |- ( A + 1 ) = B $.
    numsucc.5 $e |- N = ( ( T x. A ) + Y ) $.
    $( The successor of a decimal integer (with carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    numsucc $p |- ( N + 1 ) = ( ( T x. B ) + 0 ) $=
      ( c1 caddc co cmul cc0 cn0 1nn0 nn0addcli nn0cni oveq2i 3eqtr4ri eqeltrri
      eqeltri mulid1i ax-1cn adddii eqcomi numsuc num0u 3eqtri ) DKLMZCAKLMZNMZ
      CBNMZUNOLMCANMZCKNMZLMUOCLMUMUKUPCUOLCCCEKLMZPGEKFQRUCZSZUDTCAKUSAHSUEUFA
      ECCDURHFCUQGUGJUHUAULBCNITBCURULBPIAKHQRUBUIUJ $.
  $}

  ${
    decsucc.1 $e |- A e. NN0 $.
    decsucc.2 $e |- ( A + 1 ) = B $.
    decsucc.3 $e |- N = ; A 9 $.
    $( The successor of a decimal integer (with carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    decsucc $p |- ( N + 1 ) = ; B 0 $=
      ( c1 caddc co c10 cmul cc0 cdc c9 9nn0 df-10 df-dec eqtri numsucc eqtr4i
      ) CGHIJBKILHIBLMABJCNOPDECANMJAKINHIFANQRSBLQT $.
  $}

  $( The successor of zero.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
  1e0p1 $p |- 1 = ( 0 + 1 ) $=
    ( cc0 c1 caddc co 0p1e1 eqcomi ) ABCDBEF $.

  $( Ten plus an integer.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  dec10p $p |- ( 10 + A ) = ; 1 A $=
    ( c1 cdc c10 cmul co caddc df-dec 10nn nncni mulid1i oveq1i eqtr2i ) BACDBE
    FZAGFDAGFBAHNDAGDDIJKLM $.

  $( The decimal form of 10.  NB:  In our presentations of large numbers later
     on, we will use our symbol for 10 at the highest digits when advantageous,
     because we can use this theorem to convert back to "long form" (where each
     digit is in the range 0-9) with no extra effort.  However, we _cannot_ do
     this for lower digits while maintaining the ease of use of the decimal
     system, since it requires nontrivial number knowledge (more than just
     equality theorems) to convert back.  (Contributed by Mario Carneiro,
     18-Feb-2014.) $)
  dec10 $p |- 10 = ; 1 0 $=
    ( c10 cc0 caddc co c1 cdc 10nn nncni addid1i dec10p eqtr3i ) ABCDAEBFAAGHIB
    JK $.

  ${
    numma.1 $e |- T e. NN0 $.
    numma.2 $e |- A e. NN0 $.
    numma.3 $e |- B e. NN0 $.
    numma.4 $e |- C e. NN0 $.
    numma.5 $e |- D e. NN0 $.
    numma.6 $e |- M = ( ( T x. A ) + B ) $.
    numma.7 $e |- N = ( ( T x. C ) + D ) $.
    ${
      numma.8 $e |- P e. NN0 $.
      numma.9 $e |- ( ( A x. P ) + C ) = E $.
      numma.10 $e |- ( ( B x. P ) + D ) = F $.
      $( Perform a multiply-add of two decimal integers ` M ` and ` N ` against
         a fixed multiplicand ` P ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      numma $p |- ( ( M x. P ) + N ) = ( ( T x. E ) + F ) $=
        ( cmul caddc oveq1i oveq12i nn0cni mulcli adddii mulassi eqtr4i adddiri
        co add4i oveq2i 3eqtr2i ) IEUAUKZJUBUKFAUAUKZBUBUKZEUAUKZFCUAUKZDUBUKZU
        BUKZFAEUAUKZCUBUKZUAUKZBEUAUKZDUBUKZUBUKZFGUAUKZHUBUKUOURJUTUBIUQEUAPUC
        QUDVGUPEUAUKZUSUBUKZVFUBUKZVAVDVJVFUBVDFVBUAUKZUSUBUKVJFVBCFKUEZAEALUEZ
        ERUEZUFCNUEZUGVIVLUSUBFAEVMVNVOUHUCUIUCVAVIVEUBUKZUTUBUKVKURVQUTUBUPBEF
        AVMVNUFZBMUEZVOUJUCVIUSVEDUPEVRVOUFFCVMVPUFBEVSVOUFDOUEULUIUIVDVHVFHUBV
        CGFUASUMTUDUN $.
    $}

    ${
      nummac.8 $e |- P e. NN0 $.
      nummac.9 $e |- F e. NN0 $.
      nummac.10 $e |- G e. NN0 $.
      nummac.11 $e |- ( ( A x. P ) + ( C + G ) ) = E $.
      nummac.12 $e |- ( ( B x. P ) + D ) = ( ( T x. G ) + F ) $.
      $( Perform a multiply-add of two decimal integers ` M ` and ` N ` against
         a fixed multiplicand ` P ` (with carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      nummac $p |- ( ( M x. P ) + N ) = ( ( T x. E ) + F ) $=
        ( cmin co cmul caddc nn0cni mulcli addassi eqtri addcli eqeltrri subdii
        oveq1i wceq subadd2i mpbir eqcomi numma wcel npcan mp2an subcli 3eqtr4i
        cc eqtr3i ) FGIUDUEZUFUEZFIUFUEZHUGUEZUGUEFGUFUEZVJUDUEZVKUGUEZJEUFUEKU
        GUEVLHUGUEZVIVMVKUGFGIFLUHZAEUFUEZCUGUEZIUGUEZGVFVSVQCIUGUEUGUEGVQCIAEA
        MUHESUHUIZCOUHZIUAUHZUJUBUKZVRIVQCVTWAULZWBULUMZWBUNUOABCDEFVHVKJKLMNOP
        QRSVHVRVHVRUPVSGUPWCGIVRWEWBWDUQURUSUCUTVMVJUGUEZHUGUEVOVNWFVLHUGVLVFVA
        VJVFVAWFVLUPFGVPWEUIZFIVPWBUIZVLVJVBVCUOVMVJHVLVJWGWHVDWHHTUHUJVGVE $.
    $}

    ${
      numma2c.8 $e |- P e. NN0 $.
      numma2c.9 $e |- F e. NN0 $.
      numma2c.10 $e |- G e. NN0 $.
      numma2c.11 $e |- ( ( P x. A ) + ( C + G ) ) = E $.
      numma2c.12 $e |- ( ( P x. B ) + D ) = ( ( T x. G ) + F ) $.
      $( Perform a multiply-add of two decimal integers ` M ` and ` N ` against
         a fixed multiplicand ` P ` (with carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      numma2c $p |- ( ( P x. M ) + N ) = ( ( T x. E ) + F ) $=
        ( cmul co caddc nn0cni cn0 numcl eqeltri mulcomi oveq1i eqtri nummac )
        EJUDUEZKUFUEJEUDUEZKUFUEFGUDUEHUFUEUOUPKUFEJESUGZJJFAUDUEBUFUEUHQABFLMN
        UIUJUGUKULABCDEFGHIJKLMNOPQRSTUAAEUDUEZCIUFUEZUFUEEAUDUEZUSUFUEGURUTUSU
        FAEAMUGUQUKULUBUMBEUDUEZDUFUEEBUDUEZDUFUEFIUDUEHUFUEVAVBDUFBEBNUGUQUKUL
        UCUMUNUM $.
    $}

    ${
      numadd.8 $e |- ( A + C ) = E $.
      numadd.9 $e |- ( B + D ) = F $.
      $( Add two decimal integers ` M ` and ` N ` (no carry).  (Contributed by
         Mario Carneiro, 18-Feb-2014.) $)
      numadd $p |- ( M + N ) = ( ( T x. E ) + F ) $=
        ( co caddc c1 cmul numcl eqeltri nn0cni mulid1i oveq1i 1nn0 eqtri numma
        cn0 eqtr3i ) HUAUBSZITSHITSEFUBSGTSUMHITHHHEAUBSBTSUKOABEJKLUCUDUEUFUGA
        BCDUAEFGHIJKLMNOPUHAUAUBSZCTSACTSFUNACTAAKUEUFUGQUIBUAUBSZDTSBDTSGUOBDT
        BBLUEUFUGRUIUJUL $.
    $}

    ${
      numaddc.8 $e |- F e. NN0 $.
      numaddc.9 $e |- ( ( A + C ) + 1 ) = E $.
      numaddc.10 $e |- ( B + D ) = ( ( T x. 1 ) + F ) $.
      $( Add two decimal integers ` M ` and ` N ` (with carry).  (Contributed
         by Mario Carneiro, 18-Feb-2014.) $)
      numaddc $p |- ( M + N ) = ( ( T x. E ) + F ) $=
        ( co c1 cmul caddc cn0 numcl eqeltri nn0cni mulid1i oveq1i 1nn0 addassi
        ax-1cn 3eqtr2i eqtri nummac eqtr3i ) HUAUBTZIUCTHIUCTEFUBTGUCTUQHIUCHHH
        EAUBTBUCTUDOABEJKLUEUFUGUHUIABCDUAEFGUAHIJKLMNOPUJQUJAUAUBTZCUAUCTZUCTA
        USUCTACUCTUAUCTFURAUSUCAAKUGZUHUIACUAUTCMUGULUKRUMBUAUBTZDUCTBDUCTEUAUB
        TGUCTVABDUCBBLUGUHUISUNUOUP $.
    $}
  $}

  ${
    nummul1c.1 $e |- T e. NN0 $.
    nummul1c.2 $e |- P e. NN0 $.
    nummul1c.3 $e |- A e. NN0 $.
    nummul1c.4 $e |- B e. NN0 $.
    nummul1c.5 $e |- N = ( ( T x. A ) + B ) $.
    nummul1c.6 $e |- D e. NN0 $.
    nummul1c.7 $e |- E e. NN0 $.
    ${
      nummul1c.8 $e |- ( ( A x. P ) + E ) = C $.
      nummul1c.9 $e |- ( B x. P ) = ( ( T x. E ) + D ) $.
      $( The product of a decimal integer with a number.  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      nummul1c $p |- ( N x. P ) = ( ( T x. C ) + D ) $=
        ( co cc0 caddc cmul cn0 numcl eqeltri num0u num0h nn0cni addid2i oveq2i
        0nn0 eqtri eqtr3i nummac ) HEUARZUNSTRFCUARDTREHHFAUARBTRUBMABFIKLUCUDJ
        UEABSSEFCDGHSIKLUJUJMSFIUJUFJNOAEUARZSGTRZTRUOGTRCUPGUOTGGOUGUHUIPUKBEU
        ARZUQSTRFGUARDTREBLJUEQULUMUK $.
    $}

    ${
      nummul2c.7 $e |- ( ( P x. A ) + E ) = C $.
      nummul2c.8 $e |- ( P x. B ) = ( ( T x. E ) + D ) $.
      $( The product of a decimal integer with a number (with carry).
         (Contributed by Mario Carneiro, 18-Feb-2014.) $)
      nummul2c $p |- ( P x. N ) = ( ( T x. C ) + D ) $=
        ( cmul co caddc cn0 numcl eqeltri nn0cni oveq1i eqtri mulcomli nummul1c
        mulcomi ) HEFCRSDTSHHFARSBTSUAMABFIKLUBUCUDEJUDZABCDEFGHIJKLMNOAERSZGTS
        EARSZGTSCUKULGTAEAKUDUJUIUEPUFEBFGRSDTSUJBLUDQUGUHUG $.
    $}
  $}

  ${
    decma.1 $e |- A e. NN0 $.
    decma.2 $e |- B e. NN0 $.
    decma.3 $e |- C e. NN0 $.
    decma.4 $e |- D e. NN0 $.
    decma.5 $e |- M = ; A B $.
    decma.6 $e |- N = ; C D $.
    ${
      decma.7 $e |- P e. NN0 $.
      decma.8 $e |- ( ( A x. P ) + C ) = E $.
      decma.9 $e |- ( ( B x. P ) + D ) = F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplicand ` P ` (no carry).  (Contributed by Mario Carneiro,
         18-Feb-2014.) $)
      decma $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cmul co caddc c10 cdc 10nn0 df-dec eqtri numma eqtr4i ) HESTIUATUBFST
        GUATFGUCABCDEUBFGHIUDJKLMHABUCUBASTBUATNABUEUFICDUCUBCSTDUATOCDUEUFPQRU
        GFGUEUH $.
    $}

    ${
      decmac.7 $e |- P e. NN0 $.
      decmac.8 $e |- F e. NN0 $.
      decmac.9 $e |- G e. NN0 $.
      decmac.10 $e |- ( ( A x. P ) + ( C + G ) ) = E $.
      decmac.11 $e |- ( ( B x. P ) + D ) = ; G F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplicand ` P ` (with carry).  (Contributed by Mario Carneiro,
         18-Feb-2014.) $)
      decmac $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cmul co caddc c10 cdc 10nn0 df-dec eqtri nummac eqtr4i ) IEUBUCJUDUCU
        EFUBUCGUDUCFGUFABCDEUEFGHIJUGKLMNIABUFUEAUBUCBUDUCOABUHUIJCDUFUECUBUCDU
        DUCPCDUHUIQRSTBEUBUCDUDUCHGUFUEHUBUCGUDUCUAHGUHUIUJFGUHUK $.
    $}

    ${
      decma2c.7 $e |- P e. NN0 $.
      decma2c.8 $e |- F e. NN0 $.
      decma2c.9 $e |- G e. NN0 $.
      decma2c.10 $e |- ( ( P x. A ) + ( C + G ) ) = E $.
      decma2c.11 $e |- ( ( P x. B ) + D ) = ; G F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplicand ` P ` (with carry).  (Contributed by Mario Carneiro,
         18-Feb-2014.) $)
      decma2c $p |- ( ( P x. M ) + N ) = ; E F $=
        ( cmul co caddc c10 cdc 10nn0 df-dec eqtri numma2c eqtr4i ) EIUBUCJUDUC
        UEFUBUCGUDUCFGUFABCDEUEFGHIJUGKLMNIABUFUEAUBUCBUDUCOABUHUIJCDUFUECUBUCD
        UDUCPCDUHUIQRSTEBUBUCDUDUCHGUFUEHUBUCGUDUCUAHGUHUIUJFGUHUK $.
    $}

    ${
      decadd.7 $e |- ( A + C ) = E $.
      decadd.8 $e |- ( B + D ) = F $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decadd $p |- ( M + N ) = ; E F $=
        ( caddc co c10 cmul cdc 10nn0 df-dec eqtri numadd eqtr4i ) GHQRSETRFQRE
        FUAABCDSEFGHUBIJKLGABUASATRBQRMABUCUDHCDUASCTRDQRNCDUCUDOPUEEFUCUF $.
    $}

    decaddc.8 $e |- ( ( A + C ) + 1 ) = E $.
    ${
      decaddc.7 $e |- F e. NN0 $.
      decaddc.9 $e |- ( B + D ) = ; 1 F $.
      $( Add two numerals ` M ` and ` N ` (with carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decaddc $p |- ( M + N ) = ; E F $=
        ( caddc co c10 cmul cdc 10nn0 df-dec eqtri c1 numaddc eqtr4i ) GHRSTEUA
        SFRSEFUBABCDTEFGHUCIJKLGABUBTAUASBRSMABUDUEHCDUBTCUASDRSNCDUDUEPOBDRSUF
        FUBTUFUASFRSQUFFUDUEUGEFUDUH $.
    $}

    decaddc2.9 $e |- ( B + D ) = 10 $.
    $( Add two numerals ` M ` and ` N ` (with carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    decaddc2 $p |- ( M + N ) = ; E 0 $=
      ( cc0 0nn0 caddc co c10 c1 cdc dec10 eqtri decaddc ) ABCDEPFGHIJKLMNQBDRS
      TUAPUBOUCUDUE $.
  $}

  ${
    decaddi.1 $e |- A e. NN0 $.
    decaddi.2 $e |- B e. NN0 $.
    decaddi.3 $e |- N e. NN0 $.
    decaddi.4 $e |- M = ; A B $.
    ${
      decaddi.5 $e |- ( B + N ) = C $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decaddi $p |- ( M + N ) = ; A C $=
        ( cc0 0nn0 dec0h nn0cni addid1i decadd ) ABKEACDEFGLHIEHMAAFNOJP $.
    $}

    decaddci.5 $e |- ( A + 1 ) = D $.
    ${
      decaddci.6 $e |- C e. NN0 $.
      decaddci.7 $e |- ( B + N ) = ; 1 C $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decaddci $p |- ( M + N ) = ; D C $=
        ( cc0 0nn0 dec0h caddc co c1 nn0cni addid1i oveq1i eqtri decaddc ) ABNF
        DCEFGHOIJFIPANQRZSQRASQRDUEASQAAGTUAUBKUCLMUD $.
    $}

    ${
      decaddci2.6 $e |- ( B + N ) = 10 $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decaddci2 $p |- ( M + N ) = ; D 0 $=
        ( cc0 0nn0 caddc co c10 c1 cdc dec10 eqtri decaddci ) ABLCDEFGHIJMBENOP
        QLRKSTUA $.
    $}
  $}

  ${
    decmul1c.1 $e |- P e. NN0 $.
    decmul1c.2 $e |- A e. NN0 $.
    decmul1c.3 $e |- B e. NN0 $.
    decmul1c.4 $e |- N = ; A B $.
    decmul1c.5 $e |- D e. NN0 $.
    decmul1c.6 $e |- E e. NN0 $.
    ${
      decmul1c.7 $e |- ( ( A x. P ) + E ) = C $.
      decmul1c.8 $e |- ( B x. P ) = ; E D $.
      $( The product of a numeral with a number.  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decmul1c $p |- ( N x. P ) = ; C D $=
        ( cmul co c10 caddc cdc 10nn0 df-dec eqtri nummul1c eqtr4i ) GEPQRCPQDS
        QCDTABCDERFGUAHIJGABTRAPQBSQKABUBUCLMNBEPQFDTRFPQDSQOFDUBUCUDCDUBUE $.
    $}

    decmul2c.7 $e |- ( ( P x. A ) + E ) = C $.
    decmul2c.8 $e |- ( P x. B ) = ; E D $.
    $( The product of a numeral with a number (with carry).  (Contributed by
       Mario Carneiro, 18-Feb-2014.) $)
    decmul2c $p |- ( P x. N ) = ; C D $=
      ( cmul co c10 caddc cdc 10nn0 df-dec eqtri nummul2c eqtr4i ) EGPQRCPQDSQC
      DTABCDERFGUAHIJGABTRAPQBSQKABUBUCLMNEBPQFDTRFPQDSQOFDUBUCUDCDUBUE $.
  $}

  ${
    6p5lem.1 $e |- A e. NN0 $.
    6p5lem.2 $e |- D e. NN0 $.
    6p5lem.3 $e |- E e. NN0 $.
    6p5lem.4 $e |- B = ( D + 1 ) $.
    6p5lem.5 $e |- C = ( E + 1 ) $.
    6p5lem.6 $e |- ( A + D ) = ; 1 E $.
    $( Lemma for ~ 6p5e11 and related theorems.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    6p5lem $p |- ( A + B ) = ; 1 C $=
      ( caddc co c1 cdc oveq2i nn0cni ax-1cn addassi 1nn0 eqcomi decsuc 3eqtr2i
      ) ABLMADNLMZLMADLMZNLMNCOBUDALIPADNAFQDGQRSNECUETHCENLMJUAKUBUC $.
  $}

  $( 6 + 5 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6p5e11 $p |- ( 6 + 5 ) = ; 1 1 $=
    ( c6 c5 c1 c4 cc0 6nn0 4nn0 0nn0 df-5 1e0p1 caddc co c10 6p4e10 dec10 eqtri
    cdc 6p5lem ) ABCDEFGHIJADKLMCEQNOPR $.

  $( 6 + 6 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6p6e12 $p |- ( 6 + 6 ) = ; 1 2 $=
    ( c6 c2 c5 c1 6nn0 5nn0 1nn0 df-6 df-2 6p5e11 6p5lem ) AABCDEFGHIJK $.

  $( 7 + 4 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7p4e11 $p |- ( 7 + 4 ) = ; 1 1 $=
    ( c7 c4 c1 c3 cc0 7nn0 3nn0 0nn0 df-4 1e0p1 caddc co c10 7p3e10 dec10 eqtri
    cdc 6p5lem ) ABCDEFGHIJADKLMCEQNOPR $.

  $( 7 + 5 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7p5e12 $p |- ( 7 + 5 ) = ; 1 2 $=
    ( c7 c5 c2 c4 c1 7nn0 4nn0 1nn0 df-5 df-2 7p4e11 6p5lem ) ABCDEFGHIJKL $.

  $( 7 + 6 = 13.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7p6e13 $p |- ( 7 + 6 ) = ; 1 3 $=
    ( c7 c6 c3 c5 c2 7nn0 5nn0 2nn0 df-6 df-3 7p5e12 6p5lem ) ABCDEFGHIJKL $.

  $( 7 + 7 = 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7p7e14 $p |- ( 7 + 7 ) = ; 1 4 $=
    ( c7 c4 c6 c3 7nn0 6nn0 3nn0 df-7 df-4 7p6e13 6p5lem ) AABCDEFGHIJK $.

  $( 8 + 3 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p3e11 $p |- ( 8 + 3 ) = ; 1 1 $=
    ( c8 c3 c1 c2 cc0 8nn0 2nn0 0nn0 df-3 1e0p1 caddc co c10 8p2e10 dec10 eqtri
    cdc 6p5lem ) ABCDEFGHIJADKLMCEQNOPR $.

  $( 8 + 4 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p4e12 $p |- ( 8 + 4 ) = ; 1 2 $=
    ( c8 c4 c2 c3 c1 8nn0 3nn0 1nn0 df-4 df-2 8p3e11 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 5 = 13.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p5e13 $p |- ( 8 + 5 ) = ; 1 3 $=
    ( c8 c5 c3 c4 c2 8nn0 4nn0 2nn0 df-5 df-3 8p4e12 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 6 = 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p6e14 $p |- ( 8 + 6 ) = ; 1 4 $=
    ( c8 c6 c4 c5 c3 8nn0 5nn0 3nn0 df-6 df-4 8p5e13 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 7 = 15.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p7e15 $p |- ( 8 + 7 ) = ; 1 5 $=
    ( c8 c7 c5 c6 c4 8nn0 6nn0 4nn0 df-7 df-5 8p6e14 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 8 = 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p8e16 $p |- ( 8 + 8 ) = ; 1 6 $=
    ( c8 c6 c7 c5 8nn0 7nn0 5nn0 df-8 df-6 8p7e15 6p5lem ) AABCDEFGHIJK $.

  $( 9 + 2 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p2e11 $p |- ( 9 + 2 ) = ; 1 1 $=
    ( c9 c2 c1 cc0 9nn0 1nn0 0nn0 df-2 1e0p1 caddc co df-10 dec10 eqtr3i 6p5lem
    c10 cdc ) ABCCDEFGHIPACJKCDQLMNO $.

  $( 9 + 3 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p3e12 $p |- ( 9 + 3 ) = ; 1 2 $=
    ( c9 c3 c2 c1 9nn0 2nn0 1nn0 df-3 df-2 9p2e11 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 4 = 13.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p4e13 $p |- ( 9 + 4 ) = ; 1 3 $=
    ( c9 c4 c3 c2 9nn0 3nn0 2nn0 df-4 df-3 9p3e12 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 5 = 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p5e14 $p |- ( 9 + 5 ) = ; 1 4 $=
    ( c9 c5 c4 c3 9nn0 4nn0 3nn0 df-5 df-4 9p4e13 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 6 = 15.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p6e15 $p |- ( 9 + 6 ) = ; 1 5 $=
    ( c9 c6 c5 c4 9nn0 5nn0 4nn0 df-6 df-5 9p5e14 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 7 = 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p7e16 $p |- ( 9 + 7 ) = ; 1 6 $=
    ( c9 c7 c6 c5 9nn0 6nn0 5nn0 df-7 df-6 9p6e15 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 8 = 17.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p8e17 $p |- ( 9 + 8 ) = ; 1 7 $=
    ( c9 c8 c7 c6 9nn0 7nn0 6nn0 df-8 df-7 9p7e16 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 9 = 18.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p9e18 $p |- ( 9 + 9 ) = ; 1 8 $=
    ( c9 c8 c7 9nn0 8nn0 7nn0 df-9 df-8 9p8e17 6p5lem ) AABBCDEFGHIJ $.

  $( 10 + 10 = 20.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  10p10e20 $p |- ( 10 + 10 ) = ; 2 0 $=
    ( c1 cc0 c2 c10 1nn0 0nn0 dec10 1p1e2 00id decadd ) ABABCBDDEFEFGGHIJ $.

  ${
    4t3lem.1 $e |- A e. NN0 $.
    4t3lem.2 $e |- B e. NN0 $.
    4t3lem.3 $e |- C = ( B + 1 ) $.
    4t3lem.4 $e |- ( A x. B ) = D $.
    4t3lem.5 $e |- ( D + A ) = E $.
    $( Lemma for ~ 4t3e12 and related theorems.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    4t3lem $p |- ( A x. C ) = E $=
      ( cmul co c1 caddc oveq2i nn0cni ax-1cn adddii mulid1i eqtri oveq12i ) AC
      KLABMNLZKLZECUBAKHOUCDANLZEUCABKLZAMKLZNLUDABMAFPZBGPQRUEDUFANIAUGSUATJTT
      $.
  $}

  $( 4 times 3 equals 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  4t3e12 $p |- ( 4 x. 3 ) = ; 1 2 $=
    ( c4 c2 c3 c8 c1 cdc 4nn0 2nn0 df-3 4t2e8 8p4e12 4t3lem ) ABCDEBFGHIJKL $.

  $( 4 times 4 equals 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  4t4e16 $p |- ( 4 x. 4 ) = ; 1 6 $=
    ( c4 c3 c1 c2 cdc c6 4nn0 3nn0 df-4 4t3e12 1nn0 2nn0 4cn 2cn 4p2e6 addcomli
    eqid decaddi 4t3lem ) ABACDEZCFEGHIJCDFTAKLGTQADFMNOPRS $.

  $( 5 times 3 equals 15.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  5t3e15 $p |- ( 5 x. 3 ) = ; 1 5 $=
    ( c5 c2 c3 c10 c1 cdc 5nn0 2nn0 df-3 5t2e10 dec10p 4t3lem ) ABCDEAFGHIJAKL
    $.

  $( 5 times 4 equals 20.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  5t4e20 $p |- ( 5 x. 4 ) = ; 2 0 $=
    ( c5 c3 c4 c1 cdc c2 5nn0 3nn0 df-4 5t3e15 1nn0 eqid 1p1e2 5p5e10 decaddci2
    cc0 4t3lem ) ABCDAEZFPEGHIJDAFRAKGGRLMNOQ $.

  $( 5 times 5 equals 25.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  5t5e25 $p |- ( 5 x. 5 ) = ; 2 5 $=
    ( c5 c4 c10 c2 cmul cdc 5nn0 4nn0 df-5 cc0 5t4e20 dec0u eqtr4i caddc df-dec
    co 2nn0 eqcomi 4t3lem ) ABACDEPZDAFZGHIABEPDJFTKDQLMUATANPDAORS $.

  $( 6 times 2 equals 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t2e12 $p |- ( 6 x. 2 ) = ; 1 2 $=
    ( c6 c2 cmul co caddc c1 cdc 6cn times2i 6p6e12 eqtri ) ABCDAAEDFBGAHIJK $.

  $( 6 times 3 equals 18.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t3e18 $p |- ( 6 x. 3 ) = ; 1 8 $=
    ( c6 c2 c3 c1 cdc c8 6nn0 2nn0 df-3 6t2e12 1nn0 eqid 6cn 2cn 6p2e8 addcomli
    decaddi 4t3lem ) ABCDBEZDFEGHIJDBFSAKHGSLABFMNOPQR $.

  $( 6 times 4 equals 24.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t4e24 $p |- ( 6 x. 4 ) = ; 2 4 $=
    ( c6 c3 c4 c1 c8 cdc 6nn0 3nn0 df-4 6t3e18 1nn0 8nn0 eqid 1p1e2 4nn0 8p6e14
    c2 decaddci 4t3lem ) ABCDEFZQCFGHIJDECQTAKLGTMNOPRS $.

  $( 6 times 5 equals 30.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t5e30 $p |- ( 6 x. 5 ) = ; 3 0 $=
    ( c6 c4 c5 c2 cdc c3 cc0 6nn0 4nn0 df-5 6t4e24 2nn0 2p1e3 c10 nn0cni 6p4e10
    eqid addcomli decaddci2 4t3lem ) ABCDBEZFGEHIJKDBFUAALIHUAQMABNAHOBIOPRST
    $.

  $( 6 times 6 equals 36.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t6e36 $p |- ( 6 x. 6 ) = ; 3 6 $=
    ( c6 c5 c10 c3 cmul cdc 6nn0 5nn0 df-6 cc0 6t5e30 dec0u eqtr4i caddc df-dec
    co 3nn0 eqcomi 4t3lem ) ABACDEPZDAFZGHIABEPDJFTKDQLMUATANPDAORS $.

  $( 7 times 2 equals 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t2e14 $p |- ( 7 x. 2 ) = ; 1 4 $=
    ( c7 c2 cmul co caddc c1 c4 cdc 7cn times2i 7p7e14 eqtri ) ABCDAAEDFGHAIJKL
    $.

  $( 7 times 3 equals 21.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t3e21 $p |- ( 7 x. 3 ) = ; 2 1 $=
    ( c7 c2 c3 c1 c4 7nn0 2nn0 df-3 7t2e14 1nn0 4nn0 eqid 1p1e2 nn0cni addcomli
    cdc 7p4e11 decaddci 4t3lem ) ABCDEPZBDPFGHIDEDBTAJKFTLMJAEDDPAFNEKNQORS $.

  $( 7 times 4 equals 28.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t4e28 $p |- ( 7 x. 4 ) = ; 2 8 $=
    ( c7 c3 c4 c2 c1 cdc c8 7nn0 3nn0 df-4 7t3e21 2nn0 1nn0 7cn ax-1cn addcomli
    eqid 7p1e8 decaddi 4t3lem ) ABCDEFZDGFHIJKDEGUAALMHUAQAEGNORPST $.

  $( 7 times 5 equals 35.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t5e35 $p |- ( 7 x. 5 ) = ; 3 5 $=
    ( c7 c4 c5 c2 c8 cdc 7nn0 4nn0 df-5 7t4e28 2nn0 8nn0 eqid 2p1e3 5nn0 8p7e15
    c3 decaddci 4t3lem ) ABCDEFZQCFGHIJDECQTAKLGTMNOPRS $.

  $( 7 times 6 equals 42.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t6e42 $p |- ( 7 x. 6 ) = ; 4 2 $=
    ( c7 c5 c6 c3 cdc c4 c2 7nn0 5nn0 df-6 7t5e35 3nn0 eqid 3p1e4 nn0cni 7p5e12
    2nn0 c1 addcomli decaddci 4t3lem ) ABCDBEZFGEHIJKDBGFUBALIHUBMNQABRGEAHOBIO
    PSTUA $.

  $( 7 times 7 equals 49.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t7e49 $p |- ( 7 x. 7 ) = ; 4 9 $=
    ( c7 c6 c4 c2 cdc c9 7nn0 6nn0 df-7 7t6e42 4nn0 2nn0 7cn 2cn 7p2e9 addcomli
    eqid decaddi 4t3lem ) ABACDEZCFEGHIJCDFTAKLGTQADFMNOPRS $.

  $( 8 times 2 equals 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t2e16 $p |- ( 8 x. 2 ) = ; 1 6 $=
    ( c8 c2 cmul co caddc c1 c6 cdc 8cn times2i 8p8e16 eqtri ) ABCDAAEDFGHAIJKL
    $.

  $( 8 times 3 equals 24.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t3e24 $p |- ( 8 x. 3 ) = ; 2 4 $=
    ( c8 c2 c3 c1 c6 cdc 8nn0 2nn0 df-3 8t2e16 1nn0 6nn0 eqid 1p1e2 4nn0 nn0cni
    c4 8p6e14 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUBAKLGUBMNOAEDQFAGPE
    LPRSTUA $.

  $( 8 times 4 equals 32.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t4e32 $p |- ( 8 x. 4 ) = ; 3 2 $=
    ( c8 c3 c4 c2 8nn0 3nn0 df-4 8t3e24 2nn0 4nn0 eqid 2p1e3 c1 nn0cni addcomli
    cdc 8p4e12 decaddci 4t3lem ) ABCDCPZBDPEFGHDCDBTAIJETKLIACMDPAENCJNQORS $.

  $( 8 times 5 equals 40.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t5e40 $p |- ( 8 x. 5 ) = ; 4 0 $=
    ( c8 c4 c5 c3 c2 cdc cc0 8nn0 4nn0 df-5 8t4e32 3nn0 2nn0 eqid 3p1e4 c10 8cn
    2cn 8p2e10 addcomli decaddci2 4t3lem ) ABCDEFZBGFHIJKDEBUCALMHUCNOAEPQRSTUA
    UB $.

  $( 8 times 6 equals 48.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t6e48 $p |- ( 8 x. 6 ) = ; 4 8 $=
    ( c8 c5 c6 c10 c4 cmul co cdc 8nn0 5nn0 df-6 8t5e40 4nn0 dec0u eqtr4i caddc
    cc0 df-dec eqcomi 4t3lem ) ABCDEFGZEAHZIJKABFGEQHUALEMNOUBUAAPGEARST $.

  $( 8 times 7 equals 56.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t7e56 $p |- ( 8 x. 7 ) = ; 5 6 $=
    ( c8 c6 c7 c4 cdc c5 8nn0 6nn0 df-7 8t6e48 4nn0 eqid 8p8e16 decaddci 4t3lem
    4p1e5 ) ABCDAEZFBEGHIJDABFQAKGGQLPHMNO $.

  $( 8 times 8 equals 64.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t8e64 $p |- ( 8 x. 8 ) = ; 6 4 $=
    ( c8 c7 c5 c6 cdc c4 8nn0 7nn0 df-8 8t7e56 5nn0 6nn0 eqid 5p1e6 4nn0 nn0cni
    c1 8p6e14 addcomli decaddci 4t3lem ) ABACDEZDFEGHIJCDFDUBAKLGUBMNOADQFEAGPD
    LPRSTUA $.

  $( 9 times 2 equals 18.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t2e18 $p |- ( 9 x. 2 ) = ; 1 8 $=
    ( c9 c2 cmul co caddc c1 c8 cdc 9cn times2i 9p9e18 eqtri ) ABCDAAEDFGHAIJKL
    $.

  $( 9 times 3 equals 27.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t3e27 $p |- ( 9 x. 3 ) = ; 2 7 $=
    ( c9 c2 c3 c1 c8 cdc 9nn0 2nn0 df-3 9t2e18 1nn0 8nn0 eqid 1p1e2 7nn0 nn0cni
    c7 9p8e17 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUBAKLGUBMNOAEDQFAGPE
    LPRSTUA $.

  $( 9 times 4 equals 36.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t4e36 $p |- ( 9 x. 4 ) = ; 3 6 $=
    ( c9 c3 c4 c2 c7 cdc 9nn0 3nn0 df-4 9t3e27 2nn0 7nn0 eqid 2p1e3 6nn0 nn0cni
    c6 c1 9p7e16 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUCAKLGUCMNOAERQFA
    GPELPSTUAUB $.

  $( 9 times 5 equals 45.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t5e45 $p |- ( 9 x. 5 ) = ; 4 5 $=
    ( c9 c4 c5 c3 c6 cdc 9nn0 4nn0 df-5 9t4e36 3nn0 6nn0 eqid 3p1e4 5nn0 nn0cni
    c1 9p6e15 addcomli decaddci 4t3lem ) ABCDEFZBCFGHIJDECBUBAKLGUBMNOAEQCFAGPE
    LPRSTUA $.

  $( 9 times 6 equals 54.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t6e54 $p |- ( 9 x. 6 ) = ; 5 4 $=
    ( c9 c5 c6 cdc 9nn0 5nn0 df-6 9t5e45 4nn0 eqid 4p1e5 nn0cni 9p5e14 addcomli
    c4 c1 decaddci 4t3lem ) ABCOBDZBODEFGHOBOBSAIFESJKIABPODAELBFLMNQR $.

  $( 9 times 7 equals 63.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t7e63 $p |- ( 9 x. 7 ) = ; 6 3 $=
    ( c9 c6 c7 c5 c4 cdc 9nn0 6nn0 df-7 9t6e54 5nn0 4nn0 eqid 5p1e6 3nn0 nn0cni
    c3 c1 9p4e13 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUCAKLGUCMNOAERQFA
    GPELPSTUAUB $.

  $( 9 times 8 equals 72.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t8e72 $p |- ( 9 x. 8 ) = ; 7 2 $=
    ( c9 c7 c8 c6 c3 cdc c2 9nn0 7nn0 df-8 9t7e63 6nn0 3nn0 eqid 6p1e7 2nn0 9cn
    c1 3cn 9p3e12 addcomli decaddci 4t3lem ) ABCDEFZBGFHIJKDEGBUDALMHUDNOPAERGF
    QSTUAUBUC $.

  $( 9 times 9 equals 81.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t9e81 $p |- ( 9 x. 9 ) = ; 8 1 $=
    ( c9 c8 c7 c2 cdc c1 9nn0 8nn0 df-9 9t8e72 7nn0 2nn0 eqid 7p1e8 1nn0 9p2e11
    9cn 2cn addcomli decaddci 4t3lem ) ABACDEZBFEGHIJCDFBUBAKLGUBMNOADFFEQRPSTU
    A $.

  ${
    decbin.1 $e |- A e. NN0 $.
    $( Decompose base 4 into base 2.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    decbin0 $p |- ( 4 x. A ) = ( 2 x. ( 2 x. A ) ) $=
      ( c2 cmul co c4 2t2e4 oveq1i 2cn nn0cni mulassi eqtr3i ) CCDEZADEFADECCAD
      EDEMFADGHCCAIIABJKL $.

    $( Decompose base 4 into base 2.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    decbin2 $p |- ( ( 4 x. A ) + 2 ) = ( 2 x. ( ( 2 x. A ) + 1 ) ) $=
      ( c2 cmul co c1 caddc c4 2t1e2 oveq2i nn0cni mulcli ax-1cn adddii decbin0
      2cn oveq1i 3eqtr4ri ) CCADEZDEZCFDEZGETCGECSFGEDEHADEZCGEUACTGIJCSFPCAPAB
      KLMNUBTCGABOQR $.

    $( Decompose base 4 into base 2.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    decbin3 $p |- ( ( 4 x. A ) + 3 ) = ( ( 2 x. ( ( 2 x. A ) + 1 ) ) + 1 ) $=
      ( c2 cmul co c1 caddc c4 c3 4nn0 2nn0 2p1e3 decbin2 eqcomi numsuc ) CCADE
      FGEDEZFGEHADEZIGEACIHPJBKLQCGEPABMNON $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Upper sets of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ZZ>= $. $( ` ZZ ` with greater-than-or-equal-to subscript. $)

  $( Extend class notation with the upper integer function.
     Read " ` ZZ>= `` M ` " as "the set of integers greater than or equal to
     ` M ` ." $)
  cuz $a class ZZ>= $.

  ${
    $d j k y N $.  $d k M $.
    $( Define a function whose value at ` j ` is the semi-infinite set of
       contiguous integers starting at ` j ` , which we will also call the
       upper integers starting at ` j ` .  Read " ` ZZ>= `` M ` " as "the set
       of integers greater than or equal to ` M ` ."  See ~ uzval for its
       value, ~ uzssz for its relationship to ` ZZ ` , ~ nnuz and ~ nn0uz for
       its relationships to ` NN ` and ` NN0 ` , and ~ eluz1 and ~ eluz2 for
       its membership relations.  (Contributed by NM, 5-Sep-2005.) $)
    df-uz $a |- ZZ>= = ( j e. ZZ |-> { k e. ZZ | j <_ k } ) $.

    $( The value of the upper integers function.  (Contributed by NM,
       5-Sep-2005.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    uzval $p |- ( N e. ZZ -> ( ZZ>= ` N ) = { k e. ZZ | N <_ k } ) $=
      ( vj cv cle wbr cz crab cuz wceq breq1 rabbidv df-uz zex rabex fvmpt ) CB
      CDZADZEFZAGHBREFZAGHGIQBJSTAGQBREKLCAMTAGNOP $.

    $( The domain and range of the upper integers function.  (Contributed by
       Scott Fenton, 8-Aug-2013.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    uzf $p |- ZZ>= : ZZ --> ~P ZZ $=
      ( vj vk cv cle wbr cz crab cpw wcel wral cuz wss ssrab2 elpw2 mpbir rgenw
      wf zex df-uz fmpt mpbi ) ACBCDEZBFGZFHZIZAFJFUDKQUEAFUEUCFLUBBFMUCFRNOPAF
      UDUCKABSTUA $.

    $( Membership in the upper set of integers starting at ` M ` .
       (Contributed by NM, 5-Sep-2005.) $)
    eluz1 $p |- ( M e. ZZ ->
           ( N e. ( ZZ>= ` M ) <-> ( N e. ZZ /\ M <_ N ) ) ) $=
      ( vk cz wcel cuz cfv cv cle wbr crab wa uzval eleq2d breq2 elrab syl6bb )
      ADEZBAFGZEBACHZIJZCDKZEBDEABIJZLRSUBBCAMNUAUCCBDTBAIOPQ $.

    $( Implication of membership in an upper set of integers.  (Contributed by
       NM, 6-Sep-2005.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    eluzel2 $p |- ( N e. ( ZZ>= ` M ) -> M e. ZZ ) $=
      ( cuz cfv wcel cdm cz wrel cpw wf frel ax-mp relelfvdm mpan fdmi syl6eleq
      uzf ) BACDEZACFZGCHZRASEGGIZCJTQGUACKLBACMNGUACQOP $.

    $( Membership in an upper set of integers.  We use the fact that a
       function's value (under our function value definition) is empty outside
       of its domain to show ` M e. ZZ ` .  (Contributed by NM, 5-Sep-2005.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    eluz2 $p |- ( N e. ( ZZ>= ` M ) <-> ( M e. ZZ /\ N e. ZZ /\ M <_ N ) ) $=
      ( cuz cfv wcel cz cle wbr w3a eluzel2 simp1 wa eluz1 bitrd 3anass syl6bbr
      ibar pm5.21nii ) BACDEZAFEZTBFEZABGHZIZABJTUAUBKTSTUAUBLZLZUCTSUDUEABMTUD
      QNTUAUBOPR $.
  $}

  ${
    eluz.1 $e |- M e. ZZ $.
    $( Membership in an upper set of integers.  (Contributed by NM,
       5-Sep-2005.) $)
    eluz1i $p |- ( N e. ( ZZ>= ` M ) <-> ( N e. ZZ /\ M <_ N ) ) $=
      ( cz wcel cuz cfv cle wbr wa wb eluz1 ax-mp ) ADEBAFGEBDEABHIJKCABLM $.
  $}

  $( An integer in an upper set of integers is an element of an upper set of
     integers with a smaller bound.  (Contributed by Alexander van der Vekens,
     17-Jun-2018.) $)
  eluzuzle $p |- ( ( B e. ZZ /\ B <_ A )
                   -> ( C e. ( ZZ>= ` A ) -> C e. ( ZZ>= ` B ) ) ) $=
    ( cuz cfv wcel cz cle wbr w3a wa eluz2 simpll simpr2 cr zre ad2antrr adantl
    3ad2ant1 3ad2ant2 simplr simpr3 letrd syl3anbrc ex syl5bi ) CADEFAGFZCGFZAC
    HIZJZBGFZBAHIZKZCBDEFZACLUMUJUNUMUJKZUKUHBCHIUNUKULUJMUMUGUHUINUOBACUKBOFUL
    UJBPQUJAOFZUMUGUHUPUIAPSRUJCOFZUMUHUGUQUICPTRUKULUJUAUMUGUHUIUBUCBCLUDUEUF
    $.

  $( A member of an upper set of integers is an integer.  (Contributed by NM,
     6-Sep-2005.) $)
  eluzelz $p |- ( N e. ( ZZ>= ` M ) -> N e. ZZ ) $=
    ( cuz cfv wcel cz cle wbr eluz2 simp2bi ) BACDEAFEBFEABGHABIJ $.

  $( A member of an upper set of integers is a real.  (Contributed by Mario
     Carneiro, 31-Aug-2013.) $)
  eluzelre $p |- ( N e. ( ZZ>= ` M ) -> N e. RR ) $=
    ( cuz cfv wcel eluzelz zred ) BACDEBABFG $.

  $( A member of an upper set of integers is a complex number.  (Contributed by
     Glauco Siliprandi, 29-Jun-2017.) $)
  eluzelcn $p |- ( N e. ( ZZ>= ` M ) -> N e. CC ) $=
    ( cuz cfv wcel eluzelre recnd ) BACDEBABFG $.

  $( Implication of membership in an upper set of integers.  (Contributed by
     NM, 6-Sep-2005.) $)
  eluzle $p |- ( N e. ( ZZ>= ` M ) -> M <_ N ) $=
    ( cuz cfv wcel cz cle wbr eluz2 simp3bi ) BACDEAFEBFEABGHABIJ $.

  $( Membership in an upper set of integers.  (Contributed by NM,
     2-Oct-2005.) $)
  eluz $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
         ( N e. ( ZZ>= ` M ) <-> M <_ N ) ) $=
    ( cz wcel cuz cfv cle wbr eluz1 baibd ) ACDBAEFDBCDABGHABIJ $.

  $( Membership of the least member in an upper set of integers.  (Contributed
     by NM, 2-Sep-2005.) $)
  uzid $p |- ( M e. ZZ -> M e. ( ZZ>= ` M ) ) $=
    ( cz wcel cuz cfv cle wbr wa zre leidd ancli eluz1 mpbird ) ABCZAADECNAAFGZ
    HNONAAIJKAALM $.

  ${
    $d k M $.
    $( The upper integers are all nonempty.  (Contributed by Mario Carneiro,
       16-Jan-2014.) $)
    uzn0 $p |- ( M e. ran ZZ>= -> M =/= (/) ) $=
      ( vk cuz crn wcel cv cfv wceq cz wrex c0 wne cpw wfn uzf ffn fvelrnb mp2b
      wf wb uzid ne0i syl neeq1 syl5ibcom rexlimiv sylbi ) ACDEZBFZCGZAHZBIJZAK
      LZIIMZCSCINUHULTOIUNCPBIACQRUKUMBIUIIEZUJKLZUKUMUOUIUJEUPUIUAUJUIUBUCUJAK
      UDUEUFUG $.
  $}

  $( Transitive law for sets of upper integers.  (Contributed by NM,
     20-Sep-2005.) $)
  uztrn $p |- ( ( M e. ( ZZ>= ` K ) /\ K e. ( ZZ>= ` N ) ) ->
              M e. ( ZZ>= ` N ) ) $=
    ( cuz cfv wcel wa cz cle eluzel2 adantl eluzelz adantr eluzle zletr syl3anc
    wbr wi mp2and eluz2 syl3anbrc ) BADEFZACDEZFZGZCHFZBHFZCBIQZBUCFUDUFUBCAJKZ
    UBUGUDABLMZUECAIQZABIQZUHUDUKUBCANKUBULUDABNMUEUFAHFZUGUKULGUHRUIUDUMUBCALK
    UJCABOPSCBTUA $.

  ${
    uztrn2.1 $e |- Z = ( ZZ>= ` K ) $.
    $( Transitive law for sets of upper integers.  (Contributed by Mario
       Carneiro, 26-Dec-2013.) $)
    uztrn2 $p |- ( ( N e. Z /\ M e. ( ZZ>= ` N ) ) -> M e. Z ) $=
      ( wcel cuz cfv wa eleq2i uztrn ancoms sylanb syl6eleqr ) CDFZBCGHFZIBAGHZ
      DOCQFZPBQFZDQCEJPRSCBAKLMEN $.
  $}

  $( Contraposition law for upper integers.  (Contributed by NM,
     28-Nov-2005.) $)
  uzneg $p |- ( N e. ( ZZ>= ` M ) -> -u M e. ( ZZ>= ` -u N ) ) $=
    ( cuz cfv wcel cneg cle wbr eluzle cz wb eluzel2 eluzelz zre syl2an syl2anc
    cr leneg mpbid znegcl eluz mpbird ) BACDEZAFZBFZCDEZUEUDGHZUCABGHZUGABIUCAJ
    EZBJEZUHUGKZABLZABMZUIAQEBQEUKUJANBNABROPSUCUJUIUFUGKZUMULUJUEJEUDJEUNUIBTA
    TUEUDUAOPUB $.

  ${
    $d j k y M $.  $d k N $.
    $( An upper set of integers is a subset of all integers.  (Contributed by
       NM, 2-Sep-2005.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    uzssz $p |- ( ZZ>= ` M ) C_ ZZ $=
      ( vy cuz cfv cz cv eluzelz ssriv ) BACDEABFGH $.

    $( Subset relationship for two sets of upper integers.  (Contributed by NM,
       5-Sep-2005.) $)
    uzss $p |- ( N e. ( ZZ>= ` M ) ->
               ( ZZ>= ` N ) C_ ( ZZ>= ` M ) ) $=
      ( vk cuz cfv wcel cv cz cle wbr wa eluzle adantr wi eluzel2 eluzelz eluz1
      jca wb syl zletr 3expa sylan mpand imdistanda 3imtr4d ssrdv ) BADEZFZCBDE
      ZUHUICGZHFZBUKIJZKZULAUKIJZKZUKUJFZUKUHFZUIULUMUOUIULKABIJZUMUOUIUSULABLM
      UIAHFZBHFZKULUSUMKUONZUIUTVAABOZABPZRUTVAULVBABUKUAUBUCUDUEUIVAUQUNSVDBUK
      QTUIUTURUPSVCAUKQTUFUG $.
  $}

  $( Trichotomy of the ordering relation on integers, stated in terms of upper
     integers.  (Contributed by NM, 6-Jul-2005.)  (Revised by Mario Carneiro,
     25-Jun-2013.) $)
  uztric $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
      ( N e. ( ZZ>= ` M ) \/ M e. ( ZZ>= ` N ) ) ) $=
    ( cz wcel wa cuz cfv wo cle wbr zletric eluz wb ancoms orbi12d mpbird ) ACD
    ZBCDZEZBAFGDZABFGDZHABIJZBAIJZHABKSTUBUAUCABLRQUAUCMBALNOP $.

  $( The upper integers function is one-to-one.  (Contributed by NM,
     12-Dec-2005.) $)
  uz11 $p |- ( M e. ZZ ->
                ( ( ZZ>= ` M ) = ( ZZ>= ` N ) <-> M = N ) ) $=
    ( cz wcel cuz cfv wceq wa eleq2 eluzel2 syl6bi mpan9 cle wbr syl5ibr eluzle
    uzid syl6 cr zre syl5ib anim12d impl ancoms anassrs wb letri3 syl2an mpbird
    adantlr mpdan ex fveq2 impbid1 ) ACDZAEFZBEFZGZABGZUOURUSUOURHZBCDZUSUOAUPD
    ZURVAAQZURVBAUQDZVAUPUQAIZBAJKLUTVAHUSABMNZBAMNZHZUOURVAVHURVAHUOVHURVAUOVH
    URVAVFUOVGURVABUPDZVFVAVIURBUQDBQUPUQBIOABPRURUOVDVGUOVBURVDVCVEUABAPRUBUCU
    DUEUOVAUSVHUFZURUOASDBSDVJVAATBTABUGUHUJUIUKULABEUMUN $.

  $( Membership in the next upper set of integers.  (Contributed by NM,
     12-Sep-2005.) $)
  eluzp1m1 $p |- ( ( M e. ZZ /\
             N e. ( ZZ>= ` ( M + 1 ) ) ) -> ( N - 1 ) e. ( ZZ>= ` M ) ) $=
    ( cz wcel c1 caddc co cuz cfv cmin cle wbr wa peano2zm ad2antrl cr wb eluz1
    zre 1re leaddsub mp3an2 syl2an biimpa anasss jca ex peano2z syl 3imtr4d imp
    ) ACDZBAEFGZHIDZBEJGZAHIDZULBCDZUMBKLZMZUOCDZAUOKLZMZUNUPULUSVBULUSMUTVAUQU
    TULURBNOULUQURVAULUQMURVAULAPDZBPDZURVAQZUQASBSVCEPDVDVETAEBUAUBUCUDUEUFUGU
    LUMCDUNUSQAUHUMBRUIAUORUJUK $.

  $( Strict ordering implied by membership in the next upper set of integers.
     (Contributed by NM, 12-Sep-2005.) $)
  eluzp1l $p |- ( ( M e. ZZ /\
             N e. ( ZZ>= ` ( M + 1 ) ) ) -> M < N ) $=
    ( cz wcel c1 caddc cuz cfv clt wbr cle eluzle adantl eluzelz zltp1le sylan2
    co wa wb mpbird ) ACDZBAEFQZGHDZRABIJZUBBKJZUCUEUAUBBLMUCUABCDUDUESUBBNABOP
    T $.

  $( Membership in the next upper set of integers.  (Contributed by NM,
     5-Oct-2005.) $)
  eluzp1p1 $p |- ( N e. ( ZZ>= ` M ) ->
                       ( N + 1 ) e. ( ZZ>= ` ( M + 1 ) ) ) $=
    ( cz wcel cle wbr w3a c1 caddc co cuz cfv peano2z 3ad2ant1 3ad2ant2 zre 1re
    cr wb eluz2 leadd1 mp3an3 syl2an biimp3a 3jca 3imtr4i ) ACDZBCDZABEFZGZAHIJ
    ZCDZBHIJZCDZUKUMEFZGBAKLDUMUKKLDUJULUNUOUGUHULUIAMNUHUGUNUIBMOUGUHUIUOUGARD
    ZBRDZUIUOSZUHAPBPUPUQHRDURQABHUAUBUCUDUEABTUKUMTUF $.

  ${
    eluzaddi.1 $e |- M e. ZZ $.
    eluzaddi.2 $e |- K e. ZZ $.
    $( Membership in a later upper set of integers.  (Contributed by Paul
       Chapman, 22-Nov-2007.) $)
    eluzaddi $p |- ( N e. ( ZZ>= ` M )
          -> ( N + K ) e. ( ZZ>= ` ( M + K ) ) ) $=
      ( cuz cfv wcel caddc co cz cle wbr eluzelz zaddcl sylancl wa eluz1i zrei
      cr wb zre leadd1 mp3an13 syl biimpa sylbi mp2an sylanbrc ) CBFGHZCAIJZKHZ
      BAIJZUKLMZUKUMFGHUJCKHZAKHZULBCNECAOPUJUOBCLMZQUNBCDRUOUQUNUOCTHZUQUNUAZC
      UBBTHURATHUSBDSAESBCAUCUDUEUFUGUMUKBKHUPUMKHDEBAOUHRUI $.

    $( Membership in an earlier upper set of integers.  (Contributed by Paul
       Chapman, 22-Nov-2007.) $)
    eluzsubi $p |- ( N e. ( ZZ>= ` ( M + K ) )
         -> ( N - K ) e. ( ZZ>= ` M ) ) $=
      ( caddc co cuz cfv wcel cmin cz cle eluzelz zsubcl sylancl eluz1i cr zrei
      wbr wa zaddcl mp2an wb zre leaddsub mp3an12 syl biimpa sylbi sylanbrc ) C
      BAFGZHIJZCAKGZLJZBUNMTZUNBHIJUMCLJZALJZUOULCNECAOPUMUQULCMTZUAUPULCBLJURU
      LLJDEBAUBUCQUQUSUPUQCRJZUSUPUDZCUEBRJARJUTVABDSAESBACUFUGUHUIUJBUNDQUK $.
  $}

  $( Membership in a later upper set of integers.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  eluzadd $p |- ( ( N e. ( ZZ>= ` M ) /\ K e. ZZ ) ->
                                      ( N + K ) e. ( ZZ>= ` ( M + K ) ) ) $=
    ( cuz cfv wcel cz wa caddc co cle eluzelz zaddcl sylan adantr zred wb eluz1
    wbr syl eluzel2 simpr simpl mpbid simprd leadd1dd zaddcld mpbir2and ) CBDEF
    ZAGFZHZCAIJZBAIJZDEFZULGFZUMULKSZUICGFZUJUOBCLZCAMNUKBCAUKBUIBGFZUJBCUAOZPU
    KCUIUQUJUROPUKAUIUJUBZPUKUQBCKSZUKUIUQVBHZUIUJUCUKUSUIVCQUTBCRTUDUEUFUKUMGF
    UNUOUPHQUKBAUTVAUGUMULRTUH $.

  $( Membership in an earlier upper set of integers.  (Contributed by Jeff
     Madsen, 2-Sep-2009.) $)
  eluzsub $p |- ( ( M e. ZZ /\ K e. ZZ /\ N e. ( ZZ>= ` ( M + K ) ) )
                                          -> ( N - K ) e. ( ZZ>= ` M ) ) $=
    ( cz wcel caddc co cuz cfv w3a cmin cle wbr wa wb eluz1 syl mpbid cr zred
    eluzelz 3ad2ant3 simp2 zsubcld simp3 simp1 zaddcld simprd syl3anc mpbir2and
    leaddsub ) BDEZADEZCBAFGZHIEZJZCAKGZBHIEZUQDEZBUQLMZUPCAUOULCDEZUMUNCUAUBZU
    LUMUOUCZUDUPUNCLMZUTUPVAVDUPUOVAVDNZULUMUOUEUPUNDEUOVEOUPBAULUMUOUFZVCUGUNC
    PQRUHUPBSEASECSEVDUTOUPBVFTUPAVCTUPCVBTBACUKUIRUPULURUSUTNOVFBUQPQUJ $.

  $( Choices for an element of an upper interval of integers.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  uzm1 $p |- ( N e. ( ZZ>= ` M ) -> ( N = M \/ ( N - 1 ) e. ( ZZ>= ` M ) ) ) $=
    ( cuz cfv wcel wceq clt wbr wo c1 cmin co wn eluzle eluzel2 zred cz syl2anc
    cle wb eluzelz lenltd mpbid w3o ztri3or df-3or sylib ecased orcomd wi eqcom
    biimpi a1i zltlem1 1zzd zsubcld eluz bitr4d biimpd orim12d mpd ) BACDZEZABF
    ZABGHZIBAFZBJKLZVBEZIVCVEVDVCVEVDIZBAGHZVCABSHVJMABNVCABVCAABOZPVCBABUAZPUB
    UCVCVEVDVJUDZVIVJIVCAQEZBQEZVMVKVLABUERVEVDVJUFUGUHUIVCVDVFVEVHVDVFUJVCVDVF
    ABUKULUMVCVEVHVCVEAVGSHZVHVCVNVOVEVPTVKVLABUNRVCVNVGQEVHVPTVKVCBJVLVCUOUPAV
    GUQRURUSUTVA $.

  $( The nonnegative difference of integers is a nonnegative integer.
     (Contributed by NM, 4-Sep-2005.) $)
  uznn0sub $p |- ( N e. ( ZZ>= ` M ) -> ( N - M ) e. NN0 ) $=
    ( cuz cfv wcel cz cle wbr w3a cmin co cn0 eluz2 znn0sub biimp3a sylbi ) BAC
    DEAFEZBFEZABGHZIBAJKLEZABMQRSTABNOP $.

  $( Intersection of two upper intervals of integers.  (Contributed by Mario
     Carneiro, 24-Dec-2013.) $)
  uzin $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
    ( ( ZZ>= ` M ) i^i ( ZZ>= ` N ) ) = ( ZZ>= ` if ( M <_ N , N , M ) ) ) $=
    ( cz wcel wa cuz cfv wo cle wbr wceq wss uzss sylib eluzle fveq2d eqtr4d cr
    syl zre cin uztric sseqin2 iftrue df-ss wn wb eluzel2 eluzelz letri3 syl2an
    cif syl2anc biantrurd bitr4d biimprcd eqeq1d sylibrd com12 wi iffalse zdcle
    a1i wdc df-dc mpjaod jaoi ) ACDZBCDZEBAFGZDZABFGZDZHVJVLUAZABIJZBAULZFGZKZA
    BUBVKVRVMVKVNVLVQVKVLVJLVNVLKABMVLVJUCNVKVPBFVKVOVPBKABOVOBAUDZSPQVMVNVJVQV
    MVJVLLVNVJKBAMVJVLUENVMVPAFVMVOVPAKZVOUFZVOVMVTVOVMBAKZVTVMWBVOVMWBBAIJZVOE
    ZVOVMVIVHWBWDUGZBAUHZBAUIZVIBRDARDWEVHBTATBAUJUKUMVMWCVOBAOUNUOUPVOVPBAVSUQ
    URUSWAVTUTVMVOBAVAVCVMVOVDZVOWAHVMVHVIWHWGWFABVBUMVOVENVFPQVGS $.

  $( Choices for an element of an upper interval of integers.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  uzp1 $p |- ( N e. ( ZZ>= ` M ) -> ( N = M \/ N e. ( ZZ>= ` ( M + 1 ) ) ) ) $=
    ( cuz cfv wcel wceq c1 cmin co wo caddc uzm1 eluzp1p1 eluzelcn ax-1cn npcan
    cc sylancl eleq1d syl5ib orim2d mpd ) BACDZEZBAFZBGHIZUCEZJUEBAGKICDZEZJABL
    UDUGUIUEUGUFGKIZUHEUDUIAUFMUDUJBUHUDBQEGQEUJBFABNOBGPRSTUAUB $.

  $( Nonnegative integers expressed as an upper set of integers.  (Contributed
     by NM, 2-Sep-2005.) $)
  nn0uz $p |- NN0 = ( ZZ>= ` 0 ) $=
    ( vk cn0 cc0 cv cle wbr cz crab cuz nn0zrab wcel wceq 0z uzval ax-mp eqtr4i
    cfv ) BCADEFAGHZCIQZAJCGKSRLMACNOP $.

  $( Positive integers expressed as an upper set of integers.  (Contributed by
     NM, 2-Sep-2005.) $)
  nnuz $p |- NN = ( ZZ>= ` 1 ) $=
    ( vk cn c1 cv cle wbr cz crab cuz cfv nnzrab wcel wceq uzval ax-mp eqtr4i
    1z ) BCADEFAGHZCIJZAKCGLSRMQACNOP $.

  $( A positive integer expressed as a member of an upper set of integers.
     (Contributed by NM, 6-Jun-2006.) $)
  elnnuz $p |- ( N e. NN <-> N e. ( ZZ>= ` 1 ) ) $=
    ( cn c1 cuz cfv nnuz eleq2i ) BCDEAFG $.

  $( A nonnegative integer expressed as a member an upper set of integers.
     (Contributed by NM, 6-Jun-2006.) $)
  elnn0uz $p |- ( N e. NN0 <-> N e. ( ZZ>= ` 0 ) ) $=
    ( cn0 cc0 cuz cfv nn0uz eleq2i ) BCDEAFG $.

  $( An integer is greater than or equal to 2 is a positive integer.
     (Contributed by AV, 3-Nov-2018.) $)
  eluz2nn $p |- ( A e. ( ZZ>= ` 2 ) -> A e. NN ) $=
    ( c2 cuz cfv wcel c1 cn cz cle wbr wi 1z 1le2 eluzuzle mp2an nnuz syl6eleqr
    ) ABCDEZAFCDZGFHEFBIJRASEKLMBFANOPQ $.

  $( If an integer is greater than or equal to 2, then it is a nonnegative
     integer.  (Contributed by AV, 27-Aug-2018.)  (Proof shortened by AV,
     3-Nov-2018.) $)
  eluzge2nn0 $p |- ( N e. ( ZZ>= ` 2 ) -> N e. NN0 ) $=
    ( c2 cuz cfv wcel eluz2nn nnnn0d ) ABCDEAAFG $.

  $( An integer in the upper set of integers starting at 3 is element of the
     upper set of integers starting at 2.  (Contributed by Alexander van der
     Vekens, 17-Sep-2018.) $)
  uzuzle23 $p |- ( A e. ( ZZ>= ` 3 ) -> A e. ( ZZ>= ` 2 ) ) $=
    ( c2 cz wcel c3 cle wbr cuz cfv wi 2z 2re 3re 2lt3 ltleii eluzuzle mp2an )
    BCDBEFGAEHIDABHIDJKBELMNOEBAPQ $.

  $( If an integer is greater than 3, then it is a positive integer.
     (Contributed by Alexander van der Vekens, 17-Sep-2018.) $)
  eluzge3nn $p |- ( N e. ( ZZ>= ` 3 ) -> N e. NN ) $=
    ( c3 cuz cfv wcel c1 cn cz cle wbr wi 1z 1le3 eluzuzle mp2an elnnuz sylibr
    ) ABCDEZAFCDEZAGEFHEFBIJRSKLMBFANOAPQ $.

  $( An integer greater than or equal to 3 decreased by 2 is a positive
     integer.  (Contributed by Alexander van der Vekens, 17-Sep-2018.) $)
  uz3m2nn $p |- ( N e. ( ZZ>= ` 3 ) -> ( N - 2 ) e. NN ) $=
    ( c3 cuz cfv wcel c2 clt wbr cmin co cn cz cle w3a eluz2 2lt3 cr wa wi a1i
    2re 3re zre ltletr syl3anc mpani imp 3adant1 sylbi wb 2nn eluzge3nn sylancr
    nnsub mpbid ) ABCDEZFAGHZAFIJKEZUPBLEZALEZBAMHZNUQBAOUTVAUQUSUTVAUQUTFBGHZV
    AUQPUTFQEZBQEZAQEVBVARUQSVCUTUATVDUTUBTAUCFBAUDUEUFUGUHUIUPFKEAKEUQURUJUKAU
    LFAUNUMUO $.

  $( 1 is an integer greater than or equal to 0.  (Contributed by Alexander van
     der Vekens, 8-Jun-2018.) $)
  1eluzge0 $p |- 1 e. ( ZZ>= ` 0 ) $=
    ( c1 cc0 cuz cfv wcel cz cle wbr 0z 1z 0le1 eluz2 mpbir3an ) ABCDEBFEAFEBAG
    HIJKBALM $.

  $( 2 is an integer greater than or equal to 0.  (Contributed by Alexander van
     der Vekens, 8-Jun-2018.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
  2eluzge0 $p |- 2 e. ( ZZ>= ` 0 ) $=
    ( c2 cn0 cc0 cuz cfv 2nn0 nn0uz eleqtri ) ABCDEFGH $.

  $( 2 is an integer greater than or equal to 0.  (Contributed by Alexander van
     der Vekens, 8-Jun-2018.)  Obsolete version of ~ 2eluzge0 as of
     25-Mar-2020.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  2eluzge0OLD $p |- 2 e. ( ZZ>= ` 0 ) $=
    ( c2 cc0 cuz cfv wcel cz cle wbr 0z 2z 0le2 eluz2 mpbir3an ) ABCDEBFEAFEBAG
    HIJKBALM $.

  $( 2 is an integer greater than or equal to 1.  (Contributed by Alexander van
     der Vekens, 8-Jun-2018.) $)
  2eluzge1 $p |- 2 e. ( ZZ>= ` 1 ) $=
    ( c2 c1 cuz cfv wcel cz cle wbr 1z 2z 1le2 eluz2 mpbir3an ) ABCDEBFEAFEBAGH
    IJKBALM $.

  $( The upper integers starting from a natural are a subset of the naturals.
     (Contributed by Scott Fenton, 29-Jun-2013.) $)
  uznnssnn $p |- ( N e. NN -> ( ZZ>= ` N ) C_ NN ) $=
    ( cn wcel cuz cfv c1 wss elnnuz uzss sylbi nnuz syl6sseqr ) ABCZADEZFDEZBMA
    OCNOGAHFAIJKL $.

  ${
    $d m n M $.
    $( Restricted universal quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    raluz $p |- ( M e. ZZ -> ( A. n e. ( ZZ>= ` M ) ph <->
               A. n e. ZZ ( M <_ n -> ph ) ) ) $=
      ( cz wcel cv cle wbr wi cuz cfv wa eluz1 imbi1d impexp syl6bb ralbidv2 )
      CDEZACBFZGHZAIZBCJKZDRSUBEZAISDEZTLZAIUDUAIRUCUEACSMNUDTAOPQ $.

    $( Restricted universal quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    raluz2 $p |- ( A. n e. ( ZZ>= ` M ) ph <->
               ( M e. ZZ -> A. n e. ZZ ( M <_ n -> ph ) ) ) $=
      ( cuz cfv wral cz wcel cv cle wbr wi w3a eluz2 3anass bitri imbi1i impexp
      wa imbi2i bi2.04 ralbii2 r19.21v ) ABCDEZFCGHZCBIZJKZALZLZBGFUEUHBGFLAUIB
      UDGUFUDHZALUEUFGHZUGSZSZALZUKUILZUJUMAUJUEUKUGMUMCUFNUEUKUGOPQUNUEUKUHLZL
      ZUOUNUEULALZLUQUEULARURUPUEUKUGARTPUEUKUHUAPPUBUEUHBGUCP $.

    $( Restricted existential quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    rexuz $p |- ( M e. ZZ -> ( E. n e. ( ZZ>= ` M ) ph <->
               E. n e. ZZ ( M <_ n /\ ph ) ) ) $=
      ( cz wcel cv cle wbr wa cuz cfv eluz1 anbi1d anass syl6bb rexbidv2 ) CDEZ
      ACBFZGHZAIZBCJKZDQRUAEZAIRDEZSIZAIUCTIQUBUDACRLMUCSANOP $.

    $( Restricted existential quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    rexuz2 $p |- ( E. n e. ( ZZ>= ` M ) ph <->
               ( M e. ZZ /\ E. n e. ZZ ( M <_ n /\ ph ) ) ) $=
      ( cuz cfv wrex cz wcel cv cle wbr wa eluz2 df-3an bitri anbi1i anass an12
      w3a rexbii2 r19.42v ) ABCDEZFCGHZCBIZJKZALZLZBGFUCUFBGFLAUGBUBGUDUBHZALUC
      UDGHZLZUELZALZUIUGLZUHUKAUHUCUIUESUKCUDMUCUIUENOPULUJUFLZUMUJUEAQUNUCUIUF
      LLUMUCUIUFQUCUIUFROOOTUCUFBGUAO $.

    $( Double existential quantification in an upper set of integers.
       (Contributed by NM, 3-Nov-2005.) $)
    2rexuz $p |- ( E. m E. n e. ( ZZ>= ` m ) ph <->
                  E. m e. ZZ E. n e. ZZ ( m <_ n /\ ph ) ) $=
      ( cv cuz cfv wrex wex cz wcel cle wbr wa rexuz2 exbii df-rex bitr4i ) ACB
      DZEFGZBHRIJRCDKLAMCIGZMZBHTBIGSUABACRNOTBIPQ $.
  $}

  $( Second Peano postulate for an upper set of integers.  (Contributed by NM,
     7-Sep-2005.) $)
  peano2uz $p |- ( N e. ( ZZ>= ` M ) ->
                 ( N + 1 ) e. ( ZZ>= ` M ) ) $=
    ( cz wcel cle wbr w3a c1 caddc co cuz cfv simp1 peano2z 3ad2ant2 zre letrp1
    cr syl3an2 eluz2 syl3an1 3jca 3imtr4i ) ACDZBCDZABEFZGZUDBHIJZCDZAUHEFZGBAK
    LZDUHUKDUGUDUIUJUDUEUFMUEUDUIUFBNOUDARDZUEUFUJAPUEULBRDUFUJBPABQSUAUBABTAUH
    TUC $.

  ${
    peano2uzs.1 $e |- Z = ( ZZ>= ` M ) $.
    $( Second Peano postulate for an upper set of integers.  (Contributed by
       Mario Carneiro, 26-Dec-2013.) $)
    peano2uzs $p |- ( N e. Z -> ( N + 1 ) e. Z ) $=
      ( c1 caddc co wcel cuz cfv peano2uz syl6eleqr eleq2s ) BEFGZCHBAIJZCBOHNO
      CABKDLDM $.
  $}

  $( Reversed second Peano axiom for upper integers.  (Contributed by NM,
     2-Jan-2006.) $)
  peano2uzr $p |- ( ( M e. ZZ /\
             N e. ( ZZ>= ` ( M + 1 ) ) ) -> N e. ( ZZ>= ` M ) ) $=
    ( cz wcel c1 caddc co cuz cfv wa cmin wceq cc eluzelcn ax-1cn npcan sylancl
    adantl eluzp1m1 peano2uz syl eqeltrrd ) ACDZBAEFGZHIDZJZBEKGZEFGZBAHIZUEUHB
    LZUCUEBMDEMDUJUDBNOBEPQRUFUGUIDUHUIDABSAUGTUAUB $.

  ${
    $d j K $.  $d j k M $.  $d j k N $.
    $( Addition closure law for an upper set of integers.  (Contributed by NM,
       4-Jun-2006.) $)
    uzaddcl $p |- ( ( N e. ( ZZ>= ` M ) /\ K e. NN0 ) ->
                   ( N + K ) e. ( ZZ>= ` M ) ) $=
      ( vj vk cn0 wcel cuz caddc co cv wi cc0 c1 wceq oveq2 eleq1d imbi2d wa cc
      eluzelcn addid1d ibir ax-1cn addass mp3an3 syl2anr adantr peano2uz adantl
      cfv nn0cn eqeltrrd exp31 a2d nn0ind impcom ) AFGCBHUKZGZCAIJZURGZUSCDKZIJ
      ZURGZLUSCMIJZURGZLUSCEKZIJZURGZLUSCVGNIJZIJZURGZLUSVALDEAVBMOZVDVFUSVMVCV
      EURVBMCIPQRVBVGOZVDVIUSVNVCVHURVBVGCIPQRVBVJOZVDVLUSVOVCVKURVBVJCIPQRVBAO
      ZVDVAUSVPVCUTURVBACIPQRUSVFUSVECURUSCBCUAZUBQUCVGFGZUSVIVLVRUSVIVLVRUSSZV
      ISVHNIJZVKURVSVTVKOZVIUSCTGZVGTGZWAVRVQVGULWBWCNTGWAUDCVGNUEUFUGUHVIVTURG
      VSBVHUIUJUMUNUOUPUQ $.
  $}

  $( The sum of a nonnegative integer and an integer is an integer greater than
     or equal to that integer.  (Contributed by Alexander van der Vekens,
     3-Oct-2018.) $)
  nn0pzuz $p |- ( ( N e. NN0 /\ Z e. ZZ ) -> ( N + Z ) e. ( ZZ>= ` Z ) ) $=
    ( cn0 wcel cz wa caddc co cle wbr cuz cfv simpr nn0z zaddcl sylan nn0addge2
    cr zre ancoms eluz2 syl3anbrc ) ACDZBEDZFUDABGHZEDZBUEIJZUEBKLDUCUDMUCAEDUD
    UFANABOPUDUCUGUDBRDUCUGBSBAQPTBUEUAUB $.

  ${
    $d j m N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k ph $.
    $d j k m M $.
    $( Substitutions. $)
    uzind4.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind4.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind4.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind4.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind4.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind4.6 $e |- ( k e. ( ZZ>= ` M ) -> ( ch -> th ) ) $.
    $( Induction on the upper set of integers that starts at an integer
       ` M ` .  The first four hypotheses give us the substitution instances we
       need, and the last two are the basis and the induction step.
       (Contributed by NM, 7-Sep-2005.) $)
    uzind4 $p |- ( N e. ( ZZ>= ` M ) -> ta ) $=
      ( vm wcel cz cle wbr cuz cfv cv crab eluzel2 eluzelz breq2 elrab sylanbrc
      eluzle wa wi w3a eluz2 biimpri 3expb sylan2b syl uzind3 syl2anc ) IHUAUBZ
      QZHRQZIHPUCZSTZPRUDZQZEHIUEVBIRQHISTZVGHIUFHIUJVEVHPIRVDIHSUGUHUIABCDEFPG
      HIJKLMNVCGUCZVFQZUKVIVAQZCDULVJVCVIRQZHVISTZUKVKVEVMPVIRVDVIHSUGUHVCVLVMV
      KVKVCVLVMUMHVIUNUOUPUQOURUSUT $.
  $}

  ${
    $d j N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k ph $.
    $d j k M $.
    $( Basis. $)
    uzind4ALT.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind4ALT.6 $e |- ( k e. ( ZZ>= ` M ) -> ( ch -> th ) ) $.
    $( Substitutions. $)
    uzind4ALT.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind4ALT.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind4ALT.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind4ALT.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Induction on the upper set of integers that starts at an integer
       ` M ` .  The last four hypotheses give us the substitution instances we
       need; the first two are the basis and the induction step.  Either
       ~ uzind4 or ~ uzind4ALT may be used; see comment for ~ nnind .
       (Contributed by NM, 7-Sep-2005.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    uzind4ALT $p |- ( N e. ( ZZ>= ` M ) -> ta ) $=
      ( uzind4 ) ABCDEFGHILMNOJKP $.
  $}

  ${
    $d m k j M $.  $d j N $.  $d j m ph $.
    $( Basis. $)
    uzind4s.1 $e |- ( M e. ZZ -> [. M / k ]. ph ) $.
    $( Induction step. $)
    uzind4s.2 $e |- ( k e. ( ZZ>= ` M )
         -> ( ph -> [. ( k + 1 ) / k ]. ph ) ) $.
    $( Induction on the upper set of integers that starts at an integer ` M ` ,
       using explicit substitution.  The hypotheses are the basis and the
       induction step.  (Contributed by NM, 4-Nov-2005.) $)
    uzind4s $p |- ( N e. ( ZZ>= ` M ) -> [. N / k ]. ph ) $=
      ( vj vm wsb wsbc cv c1 caddc co dfsbcq2 sbequ wcel wi nfim imbi12d uzind4
      cuz cfv nfv nfs1v nfsbc1v weq eleq1 sbequ12 oveq1 sbceq1d chvar ) ABGIABC
      JABHIZABHKZLMNZJZABDJGHCDABGCOAGHBPABGUOOABGDOEBKZCUBUCZQZAABUQLMNZJZRZRU
      NURQZUMUPRZRBHVCVDBVCBUDUMUPBABHUEABUOUFSSBHUGZUSVCVBVDUQUNURUHVEAUMVAUPA
      BHUIVEABUTUOUQUNLMUJUKTTFULUA $.
  $}

  ${
    $d k m n M $.  $d m N $.  $d k m n ph $.  $d j k m n $.
    $( Basis. $)
    uzind4s2.1 $e |- ( M e. ZZ -> [. M / j ]. ph ) $.
    $( Induction step. $)
    uzind4s2.2 $e |- ( k e. ( ZZ>= ` M ) ->
                     ( [. k / j ]. ph -> [. ( k + 1 ) / j ]. ph ) ) $.
    $( Induction on the upper set of integers that starts at an integer ` M ` ,
       using explicit substitution.  The hypotheses are the basis and the
       induction step.  Use this instead of ~ uzind4s when ` j ` and ` k ` must
       be distinct in ` [. ( k + 1 ) / j ]. ph ` .  (Contributed by NM,
       16-Nov-2005.) $)
    uzind4s2 $p |- ( N e. ( ZZ>= ` M ) -> [. N / j ]. ph ) $=
      ( vm vn cv wsbc c1 caddc co dfsbcq wi cuz cfv weq oveq1 sbceq1d imbi12d
      vtoclga uzind4 ) ABHJZKABDKABIJZKZABUFLMNZKZABEKHIDEABUEDOABUEUFOABUEUHOA
      BUEEOFABCJZKZABUJLMNZKZPUGUIPCUFDQRCISZUKUGUMUIABUJUFOUNABULUHUJUFLMTUAUB
      GUCUD $.
  $}

  ${
    $d j m N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k ph $.
    $d j k m M $.
    $( Lower bound. $)
    uzind4i.1 $e |- M e. ZZ $.
    $( Substitutions. $)
    uzind4i.2 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind4i.3 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind4i.4 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind4i.5 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind4i.6 $e |- ps $.
    $( Induction step. $)
    uzind4i.7 $e |- ( k e. ( ZZ>= ` M ) -> ( ch -> th ) ) $.
    $( Induction on the upper integers that start at ` M ` .  The first
       hypothesis specifies the lower bound, the next four give us the
       substitution instances we need, and the last two are the basis and the
       induction step.  (Contributed by NM, 4-Sep-2005.) $)
    uzind4i $p |- ( N e. ( ZZ>= ` M ) -> ta ) $=
      ( cz wcel a1i uzind4 ) ABCDEFGHIKLMNBHQROSPT $.
  $}

  ${
    $d x y z $.  $d y w ph $.  $d x w z ps $.
    $( Substitutions. $)
    indstr.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Induction step. $)
    indstr.2 $e |- ( x e. NN -> ( A. y e. NN ( y < x -> ps ) -> ph ) ) $.
    $( Strong Mathematical Induction for positive integers (inference schema).
       (Contributed by NM, 17-Aug-2001.) $)
    indstr $p |- ( x e. NN -> ph ) $=
      ( vz vw vu cv cn wcel clt wbr wi wral c1 breq2 imbi1d ralbidv co wceq weq
      caddc nnnlt1 pm2.21d rgen wex wb 1nn elex2 nfra1 r19.3rm mp2b wa wo com12
      rsp adantl wsbc nfv nfsbc1v nfim sbceq1a imbi12d cbvral mpbi rspec dfsbcq
      vex sbcie syl5bbr biimprcd syl6 adantr jcad jaob syl6ibr cle nnleltp1 nnz
      cz zleloe syl2an bitr3d ancoms sylibrd ralimdva syl5bi nnind mpd ) CJZKLD
      JZWLMNZBOZDKPZAWMGJZMNZBOZDKPWMQMNZBOZDKPWMHJZMNZBOZDKPZWMXBQUDUAZMNZBOZD
      KPZWPGHWLWQQUBZWSXADKXJWRWTBWQQWMMRSTGHUCZWSXDDKXKWRXCBWQXBWMMRSTWQXFUBZW
      SXHDKXLWRXGBWQXFWMMRSTGCUCZWSWODKXMWRWNBWQWLWMMRSTXADKWMKLZWTBWMUEUFUGXEX
      EDKPZXBKLZXIQKLIJKLIUHXEXOUIUJIQKUKXEDIKXDDKULUMUNXPXEXHDKXPXNUOZXEXCDHUC
      ZUPZBOZXHXQXEXDXRBOZUOXTXQXEXDYAXNXEXDOXPXEXNXDXDDKURUQUSXPXEYAOXNXPXEACX
      BUTZYAXEYBOZHKWPAOZCKPYCHKPYDCKFUGYDYCCHKYDHVAXEYBCXECVAACXBVBVCCHUCZWPXE
      AYBYEWOXDDKYEWNXCBWLXBWMMRSTACXBVDVEVFVGVHXRBYBBACWMUTXRYBABCWMDVJEVKACWM
      XBVIVLVMVNVOVPXCBXRVQVRXQXGXSBXNXPXGXSUIXNXPUOWMXBVSNZXGXSWMXBVTXNWMWBLXB
      WBLYFXSUIXPWMWAXBWAWMXBWCWDWEWFSWGWHWIWJFWK $.
  $}

  $( Membership in a nonnegative upper set of integers implies membership in
     ` NN0 ` .  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  eluznn0 $p |- ( ( N e. NN0 /\ M e. ( ZZ>= ` N ) ) -> M e. NN0 ) $=
    ( cc0 cn0 nn0uz uztrn2 ) CABDEF $.

  $( Membership in a positive upper set of integers implies membership in
     ` NN ` .  (Contributed by JJ, 1-Oct-2018.) $)
  eluznn $p |- ( ( N e. NN /\ M e. ( ZZ>= ` N ) ) -> M e. NN ) $=
    ( c1 cn nnuz uztrn2 ) CABDEF $.

  $( Two ways to say "an integer greater than or equal to 2."  (Contributed by
     Paul Chapman, 23-Nov-2012.) $)
  eluz2b1 $p |- ( N e. ( ZZ>= ` 2 ) <-> ( N e. ZZ /\ 1 < N ) ) $=
    ( c2 cuz cfv wcel cz cle wbr wa c1 clt 2z eluz1i caddc co zltp1le mpan df-2
    wb 1z breq1i syl6bbr pm5.32i bitr4i ) ABCDEAFEZBAGHZIUEJAKHZIBALMUEUGUFUEUG
    JJNOZAGHZUFJFEUEUGUISTJAPQBUHAGRUAUBUCUD $.

  $( Two ways to say "an integer greater than or equal to 2."  (Contributed by
     Paul Chapman, 23-Nov-2012.) $)
  eluz2b2 $p |- ( N e. ( ZZ>= ` 2 ) <-> ( N e. NN /\ 1 < N ) ) $=
    ( c2 cuz cfv wcel cz c1 clt wbr wa cn eluz2b1 cle cr 1re zre ltle imdistani
    wi sylancr elnnz1 sylibr simpr jca nnz anim1i impbii bitri ) ABCDEAFEZGAHIZ
    JZAKEZUJJZALUKUMUKULUJUKUIGAMIZJULUIUJUNUIGNEANEUJUNSOAPGAQTRAUAUBUIUJUCUDU
    LUIUJAUEUFUGUH $.

  $( Two ways to say "an integer greater than or equal to 2."  (Contributed by
     Paul Chapman, 23-Nov-2012.) $)
  eluz2b3 $p |- ( N e. ( ZZ>= ` 2 ) <-> ( N e. NN /\ N =/= 1 ) ) $=
    ( c2 cuz cfv wcel cn c1 clt wbr wa wne eluz2b2 nngt1ne1 pm5.32i bitri ) ABC
    DEAFEZGAHIZJPAGKZJALPQRAMNO $.

  $( One less than an integer greater than or equal to 2 is a positive
     integer.  (Contributed by Paul Chapman, 17-Nov-2012.) $)
  uz2m1nn $p |- ( N e. ( ZZ>= ` 2 ) -> ( N - 1 ) e. NN ) $=
    ( c2 cuz cfv wcel cz c1 clt wbr wa cmin co cn eluz2b1 wb znnsub mpan biimpa
    1z sylbi ) ABCDEAFEZGAHIZJAGKLMEZANUAUBUCGFEUAUBUCOSGAPQRT $.

  $( 1 is not in ` ( ZZ>= `` 2 ) ` .  (Contributed by Paul Chapman,
     21-Nov-2012.) $)
  1nuz2 $p |- -. 1 e. ( ZZ>= ` 2 ) $=
    ( c1 c2 cuz cfv wcel wne neirr cn eluz2b3 simprbi mto ) ABCDEZAAFZAGLAHEMAI
    JK $.

  $( A positive integer is either 1 or greater than or equal to 2.
     (Contributed by Paul Chapman, 17-Nov-2012.) $)
  elnn1uz2 $p |- ( N e. NN <-> ( N = 1 \/ N e. ( ZZ>= ` 2 ) ) ) $=
    ( cn wcel c1 wceq c2 cuz cfv wo wne wa olc cz nnz wn 1z zdceq orbi2i sylibr
    wdc mpan2 df-dc sylib df-ne syl ordi sylanbrc eluz2b3 1nn eleq1 mpbiri jaoi
    eluz2nn impbii ) ABCZADEZAFGHCZIZUOUPUOADJZKZIZURUOUPUOIUPUSIZVAUOUPLUOAMCZ
    VBANVCUPUPOZIZVBVCUPTZVEVCDMCVFPADQUAUPUBUCUSVDUPADUDRSUEUPUOUSUFUGUQUTUPAU
    HRSUPUOUQUPUODBCUIADBUJUKAUMULUN $.

  $( Closure of multiplication of integers greater than or equal to 2.
     (Contributed by Paul Chapman, 26-Oct-2012.) $)
  uz2mulcl $p |- ( ( M e. ( ZZ>= ` 2 ) /\ N e. ( ZZ>= ` 2 ) ) ->
                   ( M x. N ) e. ( ZZ>= ` 2 ) ) $=
    ( c2 cuz cfv wcel wa cmul co cz c1 clt wbr eluzelz syl2an cr eluz2b1 anim1i
    zre sylbi zmulcl mulgt1 an4s sylanbrc ) ACDEZFZBUEFZGABHIZJFZKUHLMZUHUEFUFA
    JFZBJFZUIUGCANCBNABUAOUFAPFZKALMZGZBPFZKBLMZGZUJUGUFUKUNGUOAQUKUMUNASRTUGUL
    UQGURBQULUPUQBSRTUMUPUNUQUJABUBUCOUHQUD $.

  ${
    $d ph y $.  $d ps x $.  $d x y $.
    indstr2.1 $e |- ( x = 1 -> ( ph <-> ch ) ) $.
    indstr2.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    indstr2.3 $e |- ch $.
    indstr2.4 $e |- ( x e. ( ZZ>= ` 2 ) ->
                      ( A. y e. NN ( y < x -> ps ) -> ph ) ) $.
    $( Strong Mathematical Induction for positive integers (inference schema).
       The first two hypotheses give us the substitution instances we need; the
       last two are the basis and the induction step.  (Contributed by Paul
       Chapman, 21-Nov-2012.) $)
    indstr2 $p |- ( x e. NN -> ph ) $=
      ( cv cn wcel c1 wceq c2 cuz clt wbr wi wb cfv wral elnn1uz2 nnnlt1 adantl
      wo wa wn breq2 adantr mtbird pm2.21d ralrimiva pm5.5 syl bitrd jaoi sylbi
      mpbiri indstr ) ABDEGDJZKLVAMNZVAOPUALZUFEJZVAQRZBSZEKUBZASZVAUCVBVHVCVBV
      HCHVBVHACVBVGVHATVBVFEKVBVDKLZUGZVEBVJVEVDMQRZVIVKUHVBVDUDUEVBVEVKTVIVAMV
      DQUIUJUKULUMVGAUNUOFUPUSIUQURUT $.
  $}

  $( Membership of an integer in an upper set of integers is decidable.
     (Contributed by Jim Kingdon, 18-Apr-2020.) $)
  eluzdc $p |- ( ( M e. ZZ /\ N e. ZZ ) -> DECID N e. ( ZZ>= ` M ) ) $=
    ( cz wcel wa cle wbr clt wo cuz cfv wdc zlelttric wn eluz biimprd wb zltnle
    ancoms notbid sylbid orim12d df-dc syl6ibr mpd ) ACDZBCDZEZABFGZBAHGZIZBAJK
    DZLZABMUHUKULULNZIUMUHUIULUJUNUHULUIABOZPUHUJUINZUNUGUFUJUPQBARSUHUNUPUHULU
    IUOTPUAUBULUCUDUE $.

  ${
    $d A a b x y z $.
    $( The image under negation of a bounded-above set of reals is bounded
       below.  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    ublbneg $p |- ( E. x e. RR A. y e. A y <_ x ->
                    E. x e. RR A. y e. { z e. RR | -u z e. A } x <_ y ) $=
      ( vb va cv cle wbr wral cr wrex cneg wcel crab breq1 cbvralv wceq ralbidv
      rexbii breq2 cbvrexv bitri renegcl wa wi elrabi negeq eleq1d elrab3 mpcom
      biimpd rspcv adantl wb lenegcon1 sylan2 sylibrd ralrimdva rspcev rexlimiv
      syl syl6an sylbir ) BGZAGZHIZBDJZAKLZEGZFGZHIZEDJZFKLZVFVEHIZBCGZMZDNZCKO
      ZJZAKLZVNVEVKHIZBDJZFKLVIVMWCFKVLWBEBDVJVEVKHPQTWCVHFAKVKVFRWBVGBDVKVFVEH
      UASUBUCVMWAFKVKKNZVKMZKNVMWEVEHIZBVSJZWAVKUDWDVMWFBVSWDVEVSNZUEVMVEMZVKHI
      ZWFWHVMWJUFZWDWHWIDNZWKVEKNZWHWLVRCVEKUGZWMWHWLVRWLCVEKVPVERVQWIDVPVEUHUI
      UJULUKVLWJEWIDVJWIVKHPUMVBUNWHWDWMWFWJUOWNVKVEUPUQURUSVTWGAWEKVFWERVOWFBV
      SVFWEVEHPSUTVCVAVD $.
  $}

  ${
    $d A w z $.
    $( Two ways to express the image under negation of a set of integers.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    eqreznegel $p |- ( A C_ ZZ ->
                       { z e. RR | -u z e. A } = { z e. ZZ | -u z e. A } ) $=
      ( vw cz wss cv cneg wcel cr crab wa wi ssel cc recn caddc cc0 negid elrab
      co 0z syl6eqel pm4.71i zrevaddcl syl5bb syl5ib syl6 com23 impd simpr jcad
      a1i zre anim1i impbid1 weq negeq eleq1d 3bitr4g eqrdv ) BDEZCAFZGZBHZAIJZ
      VDADJZVACFZIHZVGGZBHZKZVGDHZVJKZVGVEHVGVFHVAVKVMVAVKVLVJVAVHVJVLVAVJVHVLV
      AVJVIDHZVHVLLBDVIMVHVGNHZVNVLVGOVOVOVGVIPTZDHZKVNVLVOVQVOVPQDVGRUAUBUCVGV
      IUDUEUFUGUHUIVKVJLVAVHVJUJULUKVLVHVJVGUMUNUOVDVJAVGIACUPVCVIBVBVGUQURZSVD
      VJAVGDVRSUSUT $.
  $}

  ${
    $d A w x y z $.
    $( The image under negation of an inhabited set of reals is inhabited.
       (Contributed by Jim Kingdon, 10-Apr-2020.) $)
    negm $p |- ( ( A C_ RR /\ E. x x e. A ) ->
        E. y y e. { z e. RR | -u z e. A } ) $=
      ( cr wss cv wcel wex cneg crab ssel renegcl wceq negeq eleq1d elrab3 recn
      wb syl negnegd bitrd biimprd syli elex2 syl6 exlimdv imp ) DEFZAGZDHZAIBG
      CGZJZDHZCEKZHBIZUIUKUPAUIUKUJJZUOHZUPUKUIUJEHZURDEUJLUSURUKUSURUQJZDHZUKU
      SUQEHURVASUJMUNVACUQEULUQNUMUTDULUQOPQTUSUTUJDUSUJUJRUAPUBUCUDBUQUOUEUFUG
      UH $.

    $( If a set of reals is bounded below, it is bounded below by an integer.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    lbzbi $p |- ( A C_ RR -> ( E. x e. RR A. y e. A x <_ y <->
                               E. x e. ZZ A. y e. A x <_ y ) ) $=
      ( vz cr wss cv cle wbr wral wrex cz wcel wi wa clt expdimp com23 imp ex
      nfv nfre1 btwnz simpld w3a zre ltleletr syl3an1 expd 3expia syl5 ralrimiv
      ssel2 ralim syl anasss expcom imdistand breq1 ralbidv rspcev syl6 ancomsd
      weq rexlimdv mpdi rexlimd zssre ssrexv ax-mp impbid1 ) CEFZAGZBGZHIZBCJZA
      EKZVPALKZVLVPVRAEVLAUAVPALUBVLVPVMEMZVRVLVPVSVRNVLVPOZVSDGZVMPIZDLKZVRVSW
      CVMWAPIDLKDDVMUCUDVSVTWCVRNZVSVLVPWDVSVLOZVPOWBVRDLWEVPWALMZWBVRNZWEWFVPW
      GWEWBWFVPOZVRWEWBWHVRNWEWBOZWHWFWAVNHIZBCJZOVRWIWFVPWKWEWBWFVPWKNZNWEWFWB
      WLWFWEWBWLNZWFVSVLWMWFVSOZVLOZWBWLWOWBOZVOWJNZBCJWLWPWQBCWOWBVNCMZWQNWOWR
      WBWQWNVLWRWBWQNZVLWROVNEMZWNWSCEVNUMWFVSWTWSWFVSWTUEWBVOWJWFWAEMVSWTWBVOO
      WJNWAUFWAVMVNUGUHUIUJUKQRSULVOWJBCUNUOTUPUQRSURVPWKAWALADVDVOWJBCVMWAVNHU
      SUTVAVBTRVCQVEUPUQVFTRVGLEFVRVQNVHVPALEVIVJVK $.
  $}

  $( A (nonnegative) integer between 1 and 3 must be 1, 2 or 3.  (Contributed
     by Alexander van der Vekens, 13-Sep-2018.) $)
  nn01to3 $p |- ( ( N e. NN0 /\ 1 <_ N /\ N <_ 3 )
      -> ( N = 1 \/ N = 2 \/ N = 3 ) ) $=
    ( cn0 wcel c1 cle wbr c3 c2 clt w3o wo wb cz zleloe sylancr syl mpbid caddc
    wceq co w3a simp2 simp1 1z nn0z 1nn0 nn0ltp1le mpan breq1i syl6bbr 2z bitrd
    orbi1d orcomd orcom orbi2i sylib 3orass sylibr wi 3mix1 eqcoms a1i 3mix2 wa
    df-2 simp3 biantrurd 2nn0 cr nn0red 3re letri3 sylancl 3bitr4d 3mix3 syl6bi
    df-3 3jaod mpd ) ABCZDAEFZAGEFZUAZDASZHASZHAIFZJZADSZAHSZAGSZJZWDWEWFWGKZKZ
    WHWDWEWGWFKZKWNWDWOWEWDDAIFZWEKZWOWEKZWDWBWQWAWBWCUBWDWAWBWQLZWAWBWCUCZWADM
    CAMCZWSUDAUEZDANOPQWDWAWQWRLWTWAWPWOWEWAWPHAEFZWOWAWPDDRTZAEFZXCDBCWAWPXELU
    FDAUGUHHXDAEVFUIUJWAHMCXAXCWOLUKXBHANOULUMPQUNWOWMWEWGWFUOUPUQWEWFWGURUSWDW
    EWLWFWGWEWLUTWDWLADWIWJWKVAVBVCWFWLUTWDWLAHWJWIWKVDVBVCWDWGWKWLWDGAEFZWCXFV
    EZWGWKWDWCXFWAWBWCVGVHWDWAWGXFLWTWAWGHDRTZAEFZXFHBCWAWGXILVIHAUGUHGXHAEVRUI
    UJPWDAVJCGVJCWKXGLWDAWTVKVLAGVMVNVOWKWIWJVPVQVSVT $.

  $( Alternate proof of ~ nn0ge2m1nn :  If a nonnegative integer is greater
     than or equal to two, the integer decreased by 1 is a positive integer.
     This version is proved using ~ eluz2 , a theorem for upper sets of
     integers, which are defined later than the positive and nonnegative
     integers.  This proof is, however, much shorter than the proof of
     ~ nn0ge2m1nn .  (Contributed by Alexander van der Vekens, 1-Aug-2018.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  nn0ge2m1nnALT $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. NN ) $=
    ( cn0 wcel c2 cle wbr wa cuz cfv c1 cmin co cn cz 2z a1i adantr simpr eluz2
    nn0z syl3anbrc uz2m1nn syl ) ABCZDAEFZGZADHICZAJKLMCUFDNCZANCZUEUGUHUFOPUDU
    IUEATQUDUERDASUAAUBUC $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Rational numbers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c QQ $. $( The set of rational numbers (blackboard bold Q). $)

  $( Extend class notation to include the class of rationals. $)
  cq $a class QQ $.

  $( Define the set of rational numbers.  Based on definition of rationals in
     [Apostol] p. 22.  See ~ elq for the relation "is rational."  (Contributed
     by NM, 8-Jan-2002.) $)
  df-q $a |- QQ = ( / " ( ZZ X. NN ) ) $.

  ${
    $d x y z $.

    $( Division restricted to ` ZZ X. NN ` is a function.  Given excluded
       middle, it would be easy to prove this for ` CC X. ( CC \ { 0 } ) ` .
       The key difference is that an element of ` NN ` is apart from zero,
       whereas being an element of ` CC \ { 0 } ` implies being not equal to
       zero.  (Contributed by Jim Kingdon, 19-Mar-2020.) $)
    divfnzn $p |- ( / |` ( ZZ X. NN ) ) Fn ( ZZ X. NN ) $=
      ( vy vz vx cv co wceq cc crio wcel cn wral cz cdiv cres nncn ad2antlr cc0
      wa adantl eqeltrrd cmul cxp wfn zcn ad2antrr cap wbr divmulapd riotabidva
      simpr nnap0 wb eqcom a1i riotabidv simpl divclapd reueq sylib riotacl syl
      wreu sylan rgen2 csn cdif cmpt2 df-div reseq1i wss zsscn eldifsn sylanbrc
      wne nnne0 ssriv resmpt2 mp2an eqtri fnmpt2 ax-mp ) ADZBDZUAECDZFZBGHZGIZA
      JKCLKMLJUBZNZWHUCWGCALJWDLIZWBJIZRZWDWBMEZWCFZBGHZWFGWLWNWEBGWLWCGIZRWDWB
      WCWJWDGIZWKWPWDUDZUEWKWBGIZWJWPWBOZPWLWPUJWKWBQUFUGZWJWPWBUKZPUHUIWLWCWMF
      ZBGHZWOGWLXCWNBGXCWNULWLWCWMUMUNUOWJWQWKXDGIZWRWQWKRZXCBGVBZXEXFWMGIXGXFW
      DWBWQWKUPWKWSWQWTSWKXAWQXBSUQBGWMURUSXCBGUTVAVCTTVDCALJWFWIGWICAGGQVEVFZW
      FVGZWHNZCALJWFVGZMXIWHCABVHVILGVJJXHVJXJXKFVKCJXHWDJIWQWDQVNWDXHIWDOWDVOW
      DGQVLVMVPCAGXHLJWFVQVRVSVTWA $.
  $}

  ${
    $d x y z A $.
    $( Membership in the set of rationals.  (Contributed by NM, 8-Jan-2002.)
       (Revised by Mario Carneiro, 28-Jan-2014.) $)
    elq $p |- ( A e. QQ <-> E. x e. ZZ E. y e. NN A = ( x / y ) ) $=
      ( cq wcel cv cdiv cz cn cxp cres co wceq wrex cima df-q eleq2i resima wfn
      wss wb divfnzn ssid ovelimab mp2an 3bitr2i wa ovres eqeq2d 2rexbiia bitri
      ) CDEZCAFZBFZGHIJZKZLZMZBINAHNZCUMUNGLZMZBINAHNULCGUOOZECUPUOOZEZUSDVBCPQ
      VCVBCGUORQUPUOSUOUOTVDUSUAUBUOUCABUOHICUPUDUEUFURVAABHIUMHEUNIEUGUQUTCUMU
      NHIGUHUIUJUK $.

    $( If ` A ` is rational, then some integer multiple of it is an integer.
       (Contributed by NM, 7-Nov-2008.)  (Revised by Mario Carneiro,
       22-Jul-2014.) $)
    qmulz $p |- ( A e. QQ -> E. x e. NN ( A x. x ) e. ZZ ) $=
      ( vy cq wcel cv cdiv co wceq cn wrex cz elq rexcom wa cc zcn adantr sylbi
      cmul adantl nncn cc0 cap nnap0 divcanap1d simpr eqeltrd eleq1d syl5ibrcom
      wbr oveq1 rexlimdva reximia ) BDEBCFZAFZGHZIZAJKCLKZBUPTHZLEZAJKZCABMUSUR
      CLKZAJKVBURCALJNVCVAAJUPJEZURVACLVDUOLEZOZVAURUQUPTHZLEVFVGUOLVFUOUPVEUOP
      EVDUOQUAVDUPPEVEUPUBRVDUPUCUDUKVEUPUERUFVDVEUGUHURUTVGLBUQUPTULUIUJUMUNSS
      $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The ratio of an integer and a positive integer is a rational number.
       (Contributed by NM, 12-Jan-2002.) $)
    znq $p |- ( ( A e. ZZ /\ B e. NN ) -> ( A / B ) e. QQ ) $=
      ( vx vy cz wcel cn wa cdiv co cv wceq wrex eqid rspceov mp3an3 elq sylibr
      cq ) AEFZBGFZHABIJZCKDKIJLDGMCEMZUBSFTUAUBUBLUCUBNCDEGABUBIOPCDUBQR $.
  $}

  ${
    $d x y A $.
    $( A rational number is a real number.  (Contributed by NM,
       14-Nov-2002.) $)
    qre $p |- ( A e. QQ -> A e. RR ) $=
      ( vx vy cq wcel cv cdiv co wceq cn wrex cz cr elq wa cc0 cap wbr zre nnre
      nnap0 jca redivclap 3expb syl2an eleq1 syl5ibrcom rexlimivv sylbi ) ADEAB
      FZCFZGHZIZCJKBLKAMEZBCANUMUNBCLJUJLEZUKJEZOUNUMULMEZUOUJMEZUKMEZUKPQRZOUQ
      UPUJSUPUSUTUKTUKUAUBURUSUTUQUJUKUCUDUEAULMUFUGUHUI $.

    $( An integer is a rational number.  (Contributed by NM, 9-Jan-2002.) $)
    zq $p |- ( A e. ZZ -> A e. QQ ) $=
      ( vx vy cv wceq cz wrex cdiv co cn wcel cq c1 div1d eqeq2d eqcom syl6rbbr
      zcn 1nn oveq2 rspcev mpan syl6bi reximia risset elq 3imtr4i ) BDZAEZBFGAU
      HCDZHIZEZCJGZBFGAFKALKUIUMBFUHFKZUIAUHMHIZEZUMUNUPAUHEUIUNUOUHAUNUHUHRNOU
      HAPQMJKUPUMSULUPCMJUJMEUKUOAUJMUHHTOUAUBUCUDBAFUEBCAUFUG $.
  $}

  $( The integers are a subset of the rationals.  (Contributed by NM,
     9-Jan-2002.) $)
  zssq $p |- ZZ C_ QQ $=
    ( vx cz cq cv zq ssriv ) ABCADEF $.

  $( The nonnegative integers are a subset of the rationals.  (Contributed by
     NM, 31-Jul-2004.) $)
  nn0ssq $p |- NN0 C_ QQ $=
    ( cn0 cz cq nn0ssz zssq sstri ) ABCDEF $.

  $( The positive integers are a subset of the rationals.  (Contributed by NM,
     31-Jul-2004.) $)
  nnssq $p |- NN C_ QQ $=
    ( cn cz cq nnssz zssq sstri ) ABCDEF $.

  $( The rationals are a subset of the reals.  (Contributed by NM,
     9-Jan-2002.) $)
  qssre $p |- QQ C_ RR $=
    ( vx cq cr cv qre ssriv ) ABCADEF $.

  $( The rationals are a subset of the complex numbers.  (Contributed by NM,
     2-Aug-2004.) $)
  qsscn $p |- QQ C_ CC $=
    ( cq cr cc qssre ax-resscn sstri ) ABCDEF $.

  $( The set of rational numbers exists.  (Contributed by NM, 30-Jul-2004.)
     (Revised by Mario Carneiro, 17-Nov-2014.) $)
  qex $p |- QQ e. _V $=
    ( cq cc cnex qsscn ssexi ) ABCDE $.

  $( A positive integer is rational.  (Contributed by NM, 17-Nov-2004.) $)
  nnq $p |- ( A e. NN -> A e. QQ ) $=
    ( cn cq nnssq sseli ) BCADE $.

  $( A rational number is a complex number.  (Contributed by NM,
     2-Aug-2004.) $)
  qcn $p |- ( A e. QQ -> A e. CC ) $=
    ( cq cc qsscn sseli ) BCADE $.

  ${
    $d x y z w v u A $.  $d x y z w v u B $.
    $( Closure of addition of rationals.  (Contributed by NM, 1-Aug-2004.) $)
    qaddcl $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A + B ) e. QQ ) $=
      ( vx vy vz vw vv vu cq wcel cv cdiv co wceq cn wrex cz caddc wa cc elq wi
      cmul zmulcl sylan2 ad2ant2rl simpl adantl syl2anr zaddcld adantr ad2ant2l
      nnz nnmulcl oveq12 cc0 cap wbr anim12i nncn nnap0 divadddivap syl2an an4s
      zcn jca sylan9eqr w3a rspceov sylibr syl3anc rexlimivv rexlimdvv syl2anb
      exp43 imp ) AIJACKZDKZLMZNZDOPCQPZBEKZFKZLMZNZFOPEQPZABRMZIJZBIJCDAUAEFBU
      AWAWFWHWAWEWHEFQOVTWBQJZWCOJZSZWEWHUBUBCDQOVQQJZVROJZSZVTWKWEWHWNWKVTWEWH
      WNWKSZVTWESZSVQWCUCMZWBVRUCMZRMZQJZVRWCUCMZOJZWGWSXALMZNZWHWOWTWPWOWQWRWL
      WJWQQJZWMWIWJWLWCQJXEWCUMVQWCUDUEUFWKWIVRQJZWRQJWNWIWJUGWMXFWLVRUMUHWBVRU
      DUIUJUKWOXBWPWMWJXBWLWIVRWCUNULUKWPWOWGVSWDRMZXCAVSBWDRUOWLWIWMWJXGXCNZWL
      WISVQTJZWBTJZSVRTJZVRUPUQURZSZWCTJZWCUPUQURZSZSXHWMWJSWLXIWIXJVQVEWBVEUSW
      MXMWJXPWMXKXLVRUTVRVAVFWJXNXOWCUTWCVAVFUSVQWBVRWCVBVCVDVGWTXBXDVHWGGKHKLM
      NHOPGQPWHGHQOWSXAWGLVIGHWGUAVJVKVDVOVLVMVPVN $.

    $( Closure law for the negative of a rational.  (Contributed by NM,
       2-Aug-2004.)  (Revised by Mario Carneiro, 15-Sep-2014.) $)
    qnegcl $p |- ( A e. QQ -> -u A e. QQ ) $=
      ( vx vy cq wcel cv cdiv co wceq cn wrex cz cneg elq wa cc zcn adantr nncn
      adantl cc0 cap wbr nnap0 divnegapd znegcl sylan eqeltrd eleq1d syl5ibrcom
      znq negeq rexlimivv sylbi ) ADEABFZCFZGHZIZCJKBLKAMZDEZBCANURUTBCLJUOLEZU
      PJEZOZUTURUQMZDEVCVDUOMZUPGHZDVCUOUPVAUOPEVBUOQRVBUPPEVAUPSTVBUPUAUBUCVAU
      PUDTUEVAVELEVBVFDEUOUFVEUPUKUGUHURUSVDDAUQULUIUJUMUN $.

    $( Closure of multiplication of rationals.  (Contributed by NM,
       1-Aug-2004.) $)
    qmulcl $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A x. B ) e. QQ ) $=
      ( vx vy vz vw vv vu cq wcel cv cdiv co wceq cn wrex cz cmul wa cc nnmulcl
      elq zmulcl anim12i an4s adantr oveq12 cc0 cap wbr zcn ad2ant2r nncn nnap0
      jca ad2ant2l divmuldivap syl2anc sylan9eqr rspceov 3expa sylibr rexlimivv
      wi exp43 rexlimdvv imp syl2anb ) AIJACKZDKZLMZNZDOPCQPZBEKZFKZLMZNZFOPEQP
      ZABRMZIJZBIJCDAUBEFBUBVMVRVTVMVQVTEFQOVLVNQJZVOOJZSZVQVTVDVDCDQOVIQJZVJOJ
      ZSZVLWCVQVTWFWCVLVQVTWFWCSZVLVQSZSVIVNRMZQJZVJVORMZOJZSZVSWIWKLMZNZVTWGWM
      WHWDWAWEWBWMWDWASWJWEWBSWLVIVNUCVJVOUAUDUEUFWHWGVSVKVPRMZWNAVKBVPRUGWGVIT
      JZVNTJZSZVJTJZVJUHUIUJZSZVOTJZVOUHUIUJZSZSZWPWNNWDWAWSWEWBWDWQWAWRVIUKVNU
      KUDULWEWBXFWDWAWEXBWBXEWEWTXAVJUMVJUNUOWBXCXDVOUMVOUNUOUDUPVIVNVJVOUQURUS
      WMWOSVSGKHKLMNHOPGQPZVTWJWLWOXGGHQOWIWKVSLUTVAGHVSUBVBURUEVEVCVFVGVH $.
  $}

  $( Closure of subtraction of rationals.  (Contributed by NM, 2-Aug-2004.) $)
  qsubcl $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A - B ) e. QQ ) $=
    ( cq wcel wa cneg caddc co cmin wceq qcn negsub syl2an qnegcl qaddcl sylan2
    cc eqeltrrd ) ACDZBCDZEABFZGHZABIHZCSAQDBQDUBUCJTAKBKABLMTSUACDUBCDBNAUAOPR
    $.

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Apartness is equivalent to not equal for rationals.  (Contributed by Jim
       Kingdon, 20-Mar-2020.) $)
    qapne $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A # B <-> A =/= B ) ) $=
      ( vz vw vx vy wcel wa cv cdiv co wceq cn cz cap wbr wb cmul c1 cc cq wrex
      wne elq biimpi adantl simplll sylib simplrl simprl ad3antrrr simprr nncnd
      cc0 zcnd syl divclapd simplrr mulcld recclapd recap0d syl112anc divrecapd
      nnap0 apmul1 eqcomd mulassd recidapd oveq2d mulid1d breq12d bitrd zmulcld
      3eqtrd breq1d mulcomd 3eqtr2d breq2d simpr simpllr 3bitr4d syl2anc bitr3d
      nnzd zapne wn notbid apti qcn ad2antrr eqeltrd necon3bid rexlimdvva mpd
      ex ) AUAGZBUAGZHZBCIZDIZJKZLZDMUBCNUBZABOPZABUCZQZWQXCWPWQXCCDBUDUEUFWRXB
      XFCDNMWRWSNGZWTMGZHZHZXBXFXJXBHZAEIZFIZJKZLZFMUBENUBZXFXKWPXPWPWQXIXBUGEF
      AUDUHXKXOXFEFNMXKXLNGZXMMGZHZHZXOXFXTXOHZXDXLWTRKZXMWSRKZUCZXEYAYBYCOPZXD
      YDYAXLXAXMRKZOPZXNXAOPZYEXDYAYGXLSXMJKZRKZYFYIRKZOPZYHYAXLTGYFTGYITGYIUNO
      PYGYLQYAXLXKXQXRXOUIZUOZYAXAXMYAWSWTYAWSXJXGXBXSXOWRXGXHUJUKZUOZYAWTXJXHX
      BXSXOWRXGXHULUKZUMZYAXHWTUNOPYQWTVDUPZUQZYAXMXKXQXRXOURZUMZUSYAXMUUBYAXRX
      MUNOPUUAXMVDUPZUTZYAXMUUBUUCVAXLYFYIVEVBYAYJXNYKXAOYAXNYJYAXLXMYNUUBUUCVC
      VFYAYKXAXMYIRKZRKXASRKXAYAXAXMYIYTUUBUUDVGYAUUESXARYAXMUUBUUCVHVIYAXAYTVJ
      VNVKVLYAYEXLYCSWTJKZRKZOPZYGYAYEYBUUFRKZUUGOPZUUHYAYBTGZYCTGZUUFTGUUFUNOP
      YEUUJQYAYBYAXLWTYMYAWTYQWDVMZUOZYAYCYAXMWSYAXMUUAWDYOVMZUOZYAWTYRYSUTZYAW
      TYRYSVAYBYCUUFVEVBYAUUIXLUUGOYAUUIXLWTUUFRKZRKXLSRKXLYAXLWTUUFYNYRUUQVGYA
      UURSXLRYAWTYRYSVHVIYAXLYNVJVNVOVLYAUUGYFXLOYAUUGXMWSUUFRKZRKXMXARKYFYAXMW
      SUUFUUBYPUUQVGYAXAUUSXMRYAWSWTYPYRYSVCVIYAXMXAUUBYTVPVQVRVLYAAXNBXAOXTXOV
      SXJXBXSXOVTZVKWAZYAYBNGYCNGYEYDQUUMUUOYBYCWEWBWCYAYBYCABYAYEWFZXDWFZYBYCL
      ZABLZYAYEXDUVAWGYAUUKUULUVDUVBQUUNUUPYBYCWHWBYAATGZBTGUVEUVCQXJUVFXBXSXOW
      PUVFWQXIAWIWJUKYABXATUUTYTWKABWHWBWAWLVLWOWMWNWOWMWN $.
  $}

  ${
    $d x y z w A $.
    $( Closure of reciprocal of rationals.  (Contributed by NM, 3-Aug-2004.) $)
    qreccl $p |- ( ( A e. QQ /\ A =/= 0 ) -> ( 1 / A ) e. QQ ) $=
      ( vx vy vz vw cq wcel cc0 cap wbr c1 cdiv co wb cz cn cv wceq wrex wa wne
      ax-1cn 1ap0 div0api 0z 1nn znq mp2an eqeltrri qapne mpan2 biimpar wi cmul
      elq nnne0 ancli nnz zapne sylancl adantl pm5.32i anbi1i breq1 cc zcn nncn
      anim12i divap0b 3expa sylan bicomd sylan9bbr sylbir simplll zmulcl sylan2
      bitrd adantr msqznn adantlr bitri oveq2 dividap oveq1d simpll simpl simpr
      jca divdivdivap syl22anc eqtr3d anass1rs sylan9eqr an32s ex sylbid anasss
      an4s rspceov sylibr syl8 rexlimivv sylbi imp syldan ) AFGZAHUAZAHIJZKALMZ
      FGZXGXIXHXGHFGXIXHNHKLMZHFKUBUCUDHOGZKPGXLFGUEUFHKUGUHUIAHUJUKULXGXIXKXGA
      BQZCQZLMZRZCPSBOSXIXKUMZBCAUOXQXRBCOPXNOGZXOPGZTZXQXIXNXOUNMZOGZXNXNUNMZP
      GZTZXJYBYDLMZRZTZXKXTXSXTXOHUAZTXQXIYIUMZUMZXTYJXOUPUQXSXTYJYLYAYJTZXQYKY
      MXQTZXIXNHUAZYIYNXIXNHIJZYOYNYAXOHIJZTZXQTZXIYPNYRYMXQYAYQYJXTYQYJNZXSXTX
      OOGZXMYTXOURZUEXOHUSUTVAVBVCZXQXIXPHIJZYRYPAXPHIVDYRYPUUDYAXNVEGZXOVEGZTZ
      YQYPUUDNZXSUUEXTUUFXNVFXOVGVHZUUEUUFYQUUHXNXOVIVJVKVLVMVNYNXSXMYPYONXSXTY
      JXQVOUEXNHUSUTZVRYNYOYIYNYOTZYFYHYMYOYFXQYAYOYFYJYAYOTYCYEYAYCYOXTXSUUAYC
      UUBXNXOVPVQVSXSYOYEXTXNVTWAWIWAWAUUKYSYPTZYHUULYNYPTUUKYSYNYPUUCVCYNYPYOU
      UJVBWBYRYPXQYHXQYRYPTXJKXPLMZYGAXPKLWCYAYPYQUUMYGRZYAUUGYPYQTUUNUUIUUEYPU
      UFYQUUNUUEYPTZUUFYQTZTZXNXNLMZXPLMZUUMYGUUQUURKXPLUUOUURKRUUPXNWDVSWEUUQU
      UEUUOUUOUUPUUSYGRUUEYPUUPWFUUOUUPWGZUUTUUOUUPWHXNXNXNXOWJWKWLWSVKWMWNWOVN
      WIWPWQWPWRVQYIXJDQEQLMREPSDOSZXKYCYEYHUVADEOPYBYDXJLWTVJDEXJUOXAXBXCXDXEX
      F $.
  $}

  ${
    $d x y z w A $.
    $( Closure of division of rationals.  (Contributed by NM, 3-Aug-2004.) $)
    qdivcl $p |- ( ( A e. QQ /\ B e. QQ /\ B =/= 0 ) -> ( A / B ) e. QQ ) $=
      ( cq wcel cc0 wne w3a cdiv co c1 cmul qcn 3ad2ant1 3ad2ant2 cap wbr simp3
      cc wb cz 0z zq ax-mp qapne mpan2 mpbird divrecapd wa qreccl qmulcl sylan2
      3impb eqeltrd ) ACDZBCDZBEFZGZABHIAJBHIZKIZCUQABUNUOARDUPALMUOUNBRDUPBLNU
      QBEOPZUPUNUOUPQUOUNUTUPSZUPUOECDZVAETDVBUAEUBUCBEUDUENUFUGUNUOUPUSCDZUOUP
      UHUNURCDVCBUIAURUJUKULUM $.
  $}

  $( Reverse closure law for addition of rationals.  (Contributed by NM,
     2-Aug-2004.) $)
  qrevaddcl $p |- ( B e. QQ ->
                   ( ( A e. CC /\ ( A + B ) e. QQ ) <-> A e. QQ ) ) $=
    ( cq wcel cc caddc co wa cmin qcn pncan sylan2 ancoms adantr qsubcl adantlr
    wceq eqeltrrd ex wi qaddcl expcom impbid pm5.32da pm4.71ri syl6bbr ) BCDZAE
    DZABFGZCDZHUHACDZHUKUGUHUJUKUGUHHZUJUKULUJUKULUJHUIBIGZACULUMAQZUJUHUGUNUGU
    HBEDUNBJABKLMNUGUJUMCDZUHUJUGUOUIBOMPRSUGUKUJTUHUKUGUJABUAUBNUCUDUKUHAJUEUF
    $.

  $( The reciprocal of a positive integer is rational.  (Contributed by NM,
     17-Nov-2004.) $)
  nnrecq $p |- ( A e. NN -> ( 1 / A ) e. QQ ) $=
    ( c1 cz wcel cn cdiv co cq 1z znq mpan ) BCDAEDBAFGHDIBAJK $.

  $( The sum of an irrational number and a rational number is irrational.
     (Contributed by NM, 7-Nov-2008.) $)
  irradd $p |- ( ( A e. ( RR \ QQ ) /\ B e. QQ )
                -> ( A + B ) e. ( RR \ QQ ) ) $=
    ( cr cq cdif wcel wa caddc co wn eldif qre readdcl sylan2 adantlr wi qsubcl
    cmin expcom cc adantl wceq qcn pncan syl2an eleq1d sylibd con3d com23 imp31
    recn ex jca sylanb sylibr ) ACDEZFZBDFZGABHIZCFZUSDFZJZGZUSUPFUQACFZADFZJZG
    ZURVCACDKVGURGUTVBVDURUTVFURVDBCFUTBLABMNOVDVFURVBVDURVFVBVDURVFVBPVDURGZVA
    VEVHVAUSBRIZDFZVEURVAVJPVDVAURVJUSBQSUAVHVIADVDATFBTFVIAUBURAUKBUCABUDUEUFU
    GUHULUIUJUMUNUSCDKUO $.

  $( The product of a real which is not rational with a nonzero rational is not
     rational.  Note that by "not rational" we mean the negation of "is
     rational" (whereas "irrational" is often defined to mean apart from any
     rational number - given excluded middle these two definitions would be
     equivalent).  (Contributed by NM, 7-Nov-2008.) $)
  irrmul $p |- ( ( A e. ( RR \ QQ ) /\ B e. QQ /\ B =/= 0 )
                -> ( A x. B ) e. ( RR \ QQ ) ) $=
    ( cr cq cdif wcel cc0 wne w3a cmul co wn wa eldif remulcl wi 3expb 3ad2ant2
    qre cc sylan2 ad2ant2r cdiv qdivcl expcom adantl wceq recn 3ad2ant1 qcn cap
    simp3 wb cz 0z zq ax-mp qapne mpan2 mpbird divcanap4d eleq1d con3d ex com23
    wbr sylibd imp31 jca 3impb syl3an1b sylibr ) ACDEZFZBDFZBGHZIABJKZCFZVQDFZL
    ZMZVQVMFVNACFZADFZLZMZVOVPWAACDNWEVOVPWAWEVOVPMZMVRVTWBVOVRWDVPVOWBBCFVRBSA
    BOUAUBWBWDWFVTWBWFWDVTWBWFWDVTPWBWFMZVSWCWGVSVQBUCKZDFZWCWFVSWIPWBVSWFWIVSV
    OVPWIVQBUDQUEUFWGWHADWBVOVPWHAUGWBVOVPIZABWBVOATFVPAUHUIVOWBBTFVPBUJRWJBGUK
    VFZVPWBVOVPULVOWBWKVPUMZVPVOGDFZWLGUNFWMUOGUPUQBGURUSRUTVAQVBVGVCVDVEVHVIVJ
    VKVQCDNVL $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           Complex numbers as pairs of reals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F u v w z $.  $d x y u v w z $.
    cnref1o.1 $e |- F = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
    $( There is a natural one-to-one mapping from ` ( RR X. RR ) ` to ` CC ` ,
       where we map ` <. x , y >. ` to ` ( x + ( _i x. y ) ) ` .  In our
       construction of the complex numbers, this is in fact our _definition_ of
       ` CC ` (see ~ df-c ), but in the axiomatic treatment we can only show
       that there is the expected mapping between these two sets.  (Contributed
       by Mario Carneiro, 16-Jun-2013.)  (Revised by Mario Carneiro,
       17-Feb-2014.) $)
    cnref1o $p |- F : ( RR X. RR ) -1-1-onto-> CC $=
      ( vz vw vu vv cr cc cv cfv wceq wral wcel ci cmul co caddc wa cxp wf1 wfo
      wf1o wf wi wfn simpl recnd ax-icn simpr mulcld addcld rgen2a fnmpt2 ax-mp
      a1i c1st c2nd 1st2nd2 fveq2d df-ov syl6eqr xp1st xp2nd oveq1 oveq2 oveq2d
      cop ovmpt2g syl3anc eqtrd eqeltrd rgen ffnfv mpbir2an wb jca syl2an fveq2
      cru oveq12d eqeq12d vtoclga eqeqan12d cvv vex 1stexg 2ndexg syl6bb biimpd
      opth 3bitr4d dff13 wrex cnre eqeq2d 2rexbiia sylibr rexxp dffo3 df-f1o )
      IIUAZJCUDXCJCUBZXCJCUCZXDXCJCUEZEKZCLZFKZCLZMZXGXIMZUFZFXCNEXCNXFCXCUGZXH
      JOZEXCNAKZPBKZQRZSRZJOZBINAINXNXTABIXPIOZXQIOZTZXPXRYCXPYAYBUHUIYCPXQPJOZ
      YCUJUQYCXQYAYBUKUIULUMUNABIIXSCJDUOUPXOEXCXGXCOZXHXGURLZPXGUSLZQRZSRZJYEX
      HYFYGCRZYIYEXHYFYGVIZCLYJYEXGYKCXGIIUTZVAYFYGCVBVCYEYFIOZYGIOZYIJOYJYIMXG
      IIVDZXGIIVEZYEYFYHYEYFYOUIYEPYGYDYEUJUQYEYGYPUIULUMZABYFYGIIXSYICYFXRSRJX
      PYFXRSVFXQYGMXRYHYFSXQYGPQVGVHDVJVKVLZYQVMVNEXCJCVOVPZXMEFXCYEXIXCOZTZXKX
      LUUAYIXIURLZPXIUSLZQRZSRZMZYFUUBMYGUUCMTZXKXLYEYMYNTUUBIOZUUCIOZTUUFUUGVQ
      YTYEYMYNYOYPVRYTUUHUUIXIIIVDXIIIVEVRYFYGUUBUUCWAVSYEYTXHYIXJUUEYRXHYIMXJU
      UEMEXIXCXLXHXJYIUUEXGXICVTXLYFUUBYHUUDSXGXIURVTXLYGUUCPQXGXIUSVTVHWBWCYRW
      DWEUUAXLYKUUBUUCVIZMUUGYEYTXGYKXIUUJYLXIIIUTWEYFYGUUBUUCXGWFOZYFWFOEWGZXG
      WFWHUPUUKYGWFOUULXGWFWIUPWLWJWMWKUNEFXCJCWNVPXEXFXIXHMZEXCWOZFJNYSUUNFJXI
      JOZXIGKZHKZCRZMZHIWOGIWOZUUNUUOXIUUPPUUQQRZSRZMZHIWOGIWOUUTGHXIWPUUSUVCGH
      IIUUPIOZUUQIOZTZUURUVBXIUVFUVDUVEUVBJOUURUVBMUVDUVEUHZUVDUVEUKZUVFUUPUVAU
      VFUUPUVGUIUVFPUUQYDUVFUJUQUVFUUQUVHUIULUMABUUPUUQIIXSUVBCUUPXRSRJXPUUPXRS
      VFXQUUQMXRUVAUUPSXQUUQPQVGVHDVJVKWQWRWSUUMUUSEGHIIXGUUPUUQVIZMZXHUURXIUVJ
      XHUVICLUURXGUVICVTUUPUUQCVBVCWQWTWSVNEFXCJCXAVPXCJCXBVP $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
           Order sets
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Positive reals (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RR+ $. $( The set of positive reals (blackboard bold R^+). $)

  $( Extend class notation to include the class of positive reals. $)
  crp $a class RR+ $.

  $( Define the set of positive reals.  Definition of positive numbers in
     [Apostol] p. 20.  (Contributed by NM, 27-Oct-2007.) $)
  df-rp $a |- RR+ = { x e. RR | 0 < x } $.

  ${
    $d x A $.
    $( Membership in the set of positive reals.  (Contributed by NM,
       27-Oct-2007.) $)
    elrp $p |- ( A e. RR+ <-> ( A e. RR /\ 0 < A ) ) $=
      ( vx cc0 cv clt wbr cr crp breq2 df-rp elrab2 ) CBDZEFCAEFBAGHLACEIBJK $.
  $}

  ${
    elrpi.1 $e |- A e. RR $.
    elrpi.2 $e |- 0 < A $.
    $( Membership in the set of positive reals.  (Contributed by NM,
       23-Feb-2008.) $)
    elrpii $p |- A e. RR+ $=
      ( crp wcel cr cc0 clt wbr elrp mpbir2an ) ADEAFEGAHIBCAJK $.
  $}

  $( 1 is a positive real.  (Contributed by Jeff Hankins, 23-Nov-2008.) $)
  1rp $p |- 1 e. RR+ $=
    ( c1 1re 0lt1 elrpii ) ABCD $.

  $( 2 is a positive real.  (Contributed by Mario Carneiro, 28-May-2016.) $)
  2rp $p |- 2 e. RR+ $=
    ( c2 2re 2pos elrpii ) ABCD $.

  $( A positive real is a real.  (Contributed by NM, 27-Oct-2007.) $)
  rpre $p |- ( A e. RR+ -> A e. RR ) $=
    ( vx crp cr cc0 cv clt wbr crab df-rp ssrab2 eqsstri sseli ) CDACEBFGHZBDID
    BJNBDKLM $.

  $( A positive real is an extended real.  (Contributed by Mario Carneiro,
     21-Aug-2015.) $)
  rpxr $p |- ( A e. RR+ -> A e. RR* ) $=
    ( crp wcel rpre rexrd ) ABCAADE $.

  $( A positive real is a complex number.  (Contributed by NM, 11-Nov-2008.) $)
  rpcn $p |- ( A e. RR+ -> A e. CC ) $=
    ( crp wcel rpre recnd ) ABCAADE $.

  $( A positive integer is a positive real.  (Contributed by NM,
     28-Nov-2008.) $)
  nnrp $p |- ( A e. NN -> A e. RR+ ) $=
    ( cn wcel cr cc0 clt wbr crp nnre nngt0 elrp sylanbrc ) ABCADCEAFGAHCAIAJAK
    L $.

  $( The positive reals are a subset of the reals.  (Contributed by NM,
     24-Feb-2008.) $)
  rpssre $p |- RR+ C_ RR $=
    ( vx crp cr cv rpre ssriv ) ABCADEF $.

  $( A positive real is greater than zero.  (Contributed by FL,
     27-Dec-2007.) $)
  rpgt0 $p |- ( A e. RR+ -> 0 < A ) $=
    ( crp wcel cr cc0 clt wbr elrp simprbi ) ABCADCEAFGAHI $.

  $( A positive real is greater than or equal to zero.  (Contributed by NM,
     22-Feb-2008.) $)
  rpge0 $p |- ( A e. RR+ -> 0 <_ A ) $=
    ( crp wcel cr cc0 clt wbr cle rpre rpgt0 wi 0re ltle mpan sylc ) ABCADCZEAF
    GZEAHGZAIAJEDCPQRKLEAMNO $.

  $( A positive real is a positive real number.  (Contributed by NM,
     11-Nov-2008.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
  rpregt0 $p |- ( A e. RR+ -> ( A e. RR /\ 0 < A ) ) $=
    ( crp wcel cr cc0 clt wbr wa elrp biimpi ) ABCADCEAFGHAIJ $.

  $( A positive real is a nonnegative real number.  (Contributed by Mario
     Carneiro, 31-Jan-2014.) $)
  rprege0 $p |- ( A e. RR+ -> ( A e. RR /\ 0 <_ A ) ) $=
    ( crp wcel cr cc0 cle wbr rpre rpge0 jca ) ABCADCEAFGAHAIJ $.

  $( A positive real is nonzero.  (Contributed by NM, 18-Jul-2008.) $)
  rpne0 $p |- ( A e. RR+ -> A =/= 0 ) $=
    ( crp wcel cr cc0 clt wbr wa wne rpregt0 gt0ne0 syl ) ABCADCEAFGHAEIAJAKL
    $.

  $( A positive real is apart from zero.  (Contributed by Jim Kingdon,
     22-Mar-2020.) $)
  rpap0 $p |- ( A e. RR+ -> A # 0 ) $=
    ( crp wcel rpre rpgt0 gt0ap0d ) ABCAADAEF $.

  $( A positive real is a nonzero real number.  (Contributed by NM,
     11-Nov-2008.) $)
  rprene0 $p |- ( A e. RR+ -> ( A e. RR /\ A =/= 0 ) ) $=
    ( crp wcel cr cc0 wne rpre rpne0 jca ) ABCADCAEFAGAHI $.

  $( A positive real is a real number apart from zero.  (Contributed by Jim
     Kingdon, 22-Mar-2020.) $)
  rpreap0 $p |- ( A e. RR+ -> ( A e. RR /\ A # 0 ) ) $=
    ( crp wcel cr cc0 cap wbr rpre rpap0 jca ) ABCADCAEFGAHAIJ $.

  $( A positive real is a nonzero complex number.  (Contributed by NM,
     11-Nov-2008.) $)
  rpcnne0 $p |- ( A e. RR+ -> ( A e. CC /\ A =/= 0 ) ) $=
    ( crp wcel cc cc0 wne rpcn rpne0 jca ) ABCADCAEFAGAHI $.

  $( A positive real is a complex number apart from zero.  (Contributed by Jim
     Kingdon, 22-Mar-2020.) $)
  rpcnap0 $p |- ( A e. RR+ -> ( A e. CC /\ A # 0 ) ) $=
    ( crp wcel cc cc0 cap wbr rpcn rpap0 jca ) ABCADCAEFGAHAIJ $.

  $( Quantification over positive reals.  (Contributed by NM, 12-Feb-2008.) $)
  ralrp $p |- ( A. x e. RR+ ph <-> A. x e. RR ( 0 < x -> ph ) ) $=
    ( cc0 cv clt wbr wi crp cr wcel wa elrp imbi1i impexp bitri ralbii2 ) ACBDZ
    EFZAGZBHIQHJZAGQIJZRKZAGUASGTUBAQLMUARANOP $.

  $( Quantification over positive reals.  (Contributed by Mario Carneiro,
     21-May-2014.) $)
  rexrp $p |- ( E. x e. RR+ ph <-> E. x e. RR ( 0 < x /\ ph ) ) $=
    ( cc0 cv clt wbr wa crp cr wcel elrp anbi1i anass bitri rexbii2 ) ACBDZEFZA
    GZBHIPHJZAGPIJZQGZAGTRGSUAAPKLTQAMNO $.

  $( Closure law for addition of positive reals.  Part of Axiom 7 of [Apostol]
     p. 20.  (Contributed by NM, 27-Oct-2007.) $)
  rpaddcl $p |- ( ( A e. RR+ /\ B e. RR+ ) -> ( A + B ) e. RR+ ) $=
    ( crp wcel wa caddc co cr cc0 clt wbr rpre readdcl syl2an elrp an4s syl2anb
    addgt0 sylanbrc ) ACDZBCDZEABFGZHDZIUBJKZUBCDTAHDZBHDZUCUAALBLABMNTUEIAJKZE
    UFIBJKZEUDUAAOBOUEUFUGUHUDABRPQUBOS $.

  $( Closure law for multiplication of positive reals.  Part of Axiom 7 of
     [Apostol] p. 20.  (Contributed by NM, 27-Oct-2007.) $)
  rpmulcl $p |- ( ( A e. RR+ /\ B e. RR+ ) -> ( A x. B ) e. RR+ ) $=
    ( crp wcel wa cmul co cc0 clt wbr rpre remulcl syl2an elrp syl2anb sylanbrc
    cr mulgt0 ) ACDZBCDZEABFGZQDZHUAIJZUACDSAQDZBQDZUBTAKBKABLMSUDHAIJEUEHBIJEU
    CTANBNABROUANP $.

  $( Closure law for division of positive reals.  (Contributed by FL,
     27-Dec-2007.) $)
  rpdivcl $p |- ( ( A e. RR+ /\ B e. RR+ ) -> ( A / B ) e. RR+ ) $=
    ( crp wcel wa cdiv co cr cc0 clt wbr cap rpre rpreap0 redivclap syl2an elrp
    3expb divgt0 syl2anb sylanbrc ) ACDZBCDZEABFGZHDZIUDJKZUDCDUBAHDZBHDZBILKZE
    UEUCAMBNUGUHUIUEABORPUBUGIAJKEUHIBJKEUFUCAQBQABSTUDQUA $.

  $( Closure law for reciprocation of positive reals.  (Contributed by Jeff
     Hankins, 23-Nov-2008.) $)
  rpreccl $p |- ( A e. RR+ -> ( 1 / A ) e. RR+ ) $=
    ( c1 crp wcel cdiv co 1rp rpdivcl mpan ) BCDACDBAEFCDGBAHI $.

  $( Closure law for half of a positive real.  (Contributed by Mario Carneiro,
     31-Jan-2014.) $)
  rphalfcl $p |- ( A e. RR+ -> ( A / 2 ) e. RR+ ) $=
    ( crp wcel c2 cdiv co 2rp rpdivcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( A number greater or equal to a positive real is positive real.
     (Contributed by Mario Carneiro, 28-May-2016.) $)
  rpgecl $p |- ( ( A e. RR+ /\ B e. RR /\ A <_ B ) -> B e. RR+ ) $=
    ( crp wcel cle wbr w3a cc0 clt simp2 0red rpre 3ad2ant1 rpgt0 simp3 ltletrd
    cr elrp sylanbrc ) ACDZBQDZABEFZGZUAHBIFBCDTUAUBJZUCHABUCKTUAAQDUBALMUDTUAH
    AIFUBANMTUAUBOPBRS $.

  $( Half of a positive real is less than the original number.  (Contributed by
     Mario Carneiro, 21-May-2014.) $)
  rphalflt $p |- ( A e. RR+ -> ( A / 2 ) < A ) $=
    ( crp wcel cr cc0 clt wbr wa c2 cdiv co elrp halfpos biimpa sylbi ) ABCADCZ
    EAFGZHAIJKAFGZALPQRAMNO $.

  $( Closure law for division of a real by a positive real.  (Contributed by
     NM, 10-Nov-2008.) $)
  rerpdivcl $p |- ( ( A e. RR /\ B e. RR+ ) -> ( A / B ) e. RR ) $=
    ( crp wcel cr cc0 cap wbr wa cdiv co rpreap0 redivclap 3expb sylan2 ) BCDAE
    DZBEDZBFGHZIABJKEDZBLPQRSABMNO $.

  $( A nonnegative number plus one is a positive number.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  ge0p1rp $p |- ( ( A e. RR /\ 0 <_ A ) -> ( A + 1 ) e. RR+ ) $=
    ( cr wcel cc0 cle wbr wa c1 caddc co clt crp peano2re 0red simpl simpr ltp1
    adantr lelttrd elrp sylanbrc ) ABCZDAEFZGZAHIJZBCZDUEKFUELCUBUFUCAMRZUDDAUE
    UDNUBUCOUGUBUCPUBAUEKFUCAQRSUETUA $.

  $( Either a real apart from zero or its negation is a positive real, but not
     both.  (Contributed by Jim Kingdon, 23-Mar-2020.) $)
  rpnegap $p |- ( ( A e. RR /\ A # 0 ) -> ( A e. RR+ \/_ -u A e. RR+ ) ) $=
    ( cr wcel cc0 cap wbr wa crp cneg wxo clt 0re reapltxor mpan2 xorcom syl6bb
    wb pm5.32i anxordi elrp bitri biimpi a1i renegcl biantrurd syl6rbbr lt0neg1
    ibar 3bitr2d adantr xorbi12d mpbird ) ABCZADEFZGZAHCZAIZHCZJUMDAKFZGZUMADKF
    ZGZJZUOVCUOUMUSVAJZGVCUMUNVDUMUNVAUSJZVDUMDBCUNVEQLADMNVAUSOPRUMUSVASUAUBUO
    UPUTURVBUPUTQUOATUCUMURVBQUNUMURDUQKFZVAVBUMVFUQBCZVFGURUMVGVFAUDUEUQTUFAUG
    UMVAUHUIUJUKUL $.

  $( Zero is not a positive real.  Axiom 9 of [Apostol] p. 20.  (Contributed by
     NM, 27-Oct-2007.) $)
  0nrp $p |- -. 0 e. RR+ $=
    ( cc0 crp wcel clt wbr 0re ltnri rpgt0 mto ) ABCAADEAFGAHI $.

  $( Subtracting a positive real from another number decreases it.
     (Contributed by FL, 27-Dec-2007.) $)
  ltsubrp $p |- ( ( A e. RR /\ B e. RR+ ) -> ( A - B ) < A ) $=
    ( crp wcel cr cc0 clt wbr wa cmin co elrp wi ltsubpos biimpd expcom sylan2b
    imp32 ) BCDAEDZBEDZFBGHZIABJKAGHZBLSTUAUBTSUAUBMTSIUAUBBANOPRQ $.

  $( Adding a positive number to another number increases it.  (Contributed by
     FL, 27-Dec-2007.) $)
  ltaddrp $p |- ( ( A e. RR /\ B e. RR+ ) -> A < ( A + B ) ) $=
    ( crp wcel cr cc0 clt wbr wa caddc co elrp wi ltaddpos biimpd imp32 sylan2b
    expcom ) BCDAEDZBEDZFBGHZIAABJKGHZBLSTUAUBTSUAUBMTSIUAUBBANORPQ $.

  $( Two ways to say one number is less than another.  (Contributed by Mario
     Carneiro, 21-May-2014.) $)
  difrp $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A < B <-> ( B - A ) e. RR+ ) ) $=
    ( cr wcel wa clt wbr cc0 cmin co crp posdif wb resubcl ancoms elrp baib syl
    bitr4d ) ACDZBCDZEZABFGHBAIJZFGZUCKDZABLUBUCCDZUEUDMUATUFBANOUEUFUDUCPQRS
    $.

  ${
    elrpd.1 $e |- ( ph -> A e. RR ) $.
    elrpd.2 $e |- ( ph -> 0 < A ) $.
    $( Membership in the set of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    elrpd $p |- ( ph -> A e. RR+ ) $=
      ( cr wcel cc0 clt wbr crp elrp sylanbrc ) ABEFGBHIBJFCDBKL $.
  $}

  ${
    nnrpd.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is a positive real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nnrpd $p |- ( ph -> A e. RR+ ) $=
      ( cn wcel crp nnrp syl ) ABDEBFECBGH $.
  $}

  ${
    rpred.1 $e |- ( ph -> A e. RR+ ) $.
    $( A positive real is a real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpred $p |- ( ph -> A e. RR ) $=
      ( crp cr rpssre sseldi ) ADEBFCG $.

    $( A positive real is an extended real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpxrd $p |- ( ph -> A e. RR* ) $=
      ( rpred rexrd ) ABABCDE $.

    $( A positive real is a complex number.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpcnd $p |- ( ph -> A e. CC ) $=
      ( rpred recnd ) ABABCDE $.

    $( A positive real is greater than zero.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpgt0d $p |- ( ph -> 0 < A ) $=
      ( crp wcel cc0 clt wbr rpgt0 syl ) ABDEFBGHCBIJ $.

    $( A positive real is greater than or equal to zero.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpge0d $p |- ( ph -> 0 <_ A ) $=
      ( crp wcel cc0 cle wbr rpge0 syl ) ABDEFBGHCBIJ $.

    $( A positive real is nonzero.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpne0d $p |- ( ph -> A =/= 0 ) $=
      ( crp wcel cc0 wne rpne0 syl ) ABDEBFGCBHI $.

    $( A positive real is real and greater than zero.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpregt0d $p |- ( ph -> ( A e. RR /\ 0 < A ) ) $=
      ( cr wcel cc0 clt wbr rpred rpgt0d jca ) ABDEFBGHABCIABCJK $.

    $( A positive real is real and greater or equal to zero.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    rprege0d $p |- ( ph -> ( A e. RR /\ 0 <_ A ) ) $=
      ( cr wcel cc0 cle wbr rpred rpge0d jca ) ABDEFBGHABCIABCJK $.

    $( A positive real is a nonzero real number.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rprene0d $p |- ( ph -> ( A e. RR /\ A =/= 0 ) ) $=
      ( cr wcel cc0 wne rpred rpne0d jca ) ABDEBFGABCHABCIJ $.

    $( A positive real is a nonzero complex number.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpcnne0d $p |- ( ph -> ( A e. CC /\ A =/= 0 ) ) $=
      ( cc wcel cc0 wne rpcnd rpne0d jca ) ABDEBFGABCHABCIJ $.

    $( Closure law for reciprocation of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpreccld $p |- ( ph -> ( 1 / A ) e. RR+ ) $=
      ( crp wcel c1 cdiv co rpreccl syl ) ABDEFBGHDECBIJ $.

    $( Closure law for reciprocation of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rprecred $p |- ( ph -> ( 1 / A ) e. RR ) $=
      ( c1 cdiv co rpreccld rpred ) ADBEFABCGH $.

    $( Closure law for half of a positive real.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rphalfcld $p |- ( ph -> ( A / 2 ) e. RR+ ) $=
      ( crp wcel c2 cdiv co rphalfcl syl ) ABDEBFGHDECBIJ $.

    $( The reciprocal of a positive number less than 1 is greater than 1.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    reclt1d $p |- ( ph -> ( A < 1 <-> 1 < ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co wb rpregt0d reclt1 syl ) ABDEFBGHIBJG
      HJJBKLGHMABCNBOP $.

    $( The reciprocal of a positive number greater than 1 is less than 1.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    recgt1d $p |- ( ph -> ( 1 < A <-> ( 1 / A ) < 1 ) ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co wb rpregt0d recgt1 syl ) ABDEFBGHIJBG
      HJBKLJGHMABCNBOP $.

    rpaddcld.1 $e |- ( ph -> B e. RR+ ) $.
    $( Closure law for addition of positive reals.  Part of Axiom 7 of
       [Apostol] p. 20.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    rpaddcld $p |- ( ph -> ( A + B ) e. RR+ ) $=
      ( crp wcel caddc co rpaddcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for multiplication of positive reals.  Part of Axiom 7 of
       [Apostol] p. 20.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    rpmulcld $p |- ( ph -> ( A x. B ) e. RR+ ) $=
      ( crp wcel cmul co rpmulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for division of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpdivcld $p |- ( ph -> ( A / B ) e. RR+ ) $=
      ( crp wcel cdiv co rpdivcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( The reciprocal of both sides of 'less than'.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    ltrecd $p |- ( ph -> ( A < B <-> ( 1 / B ) < ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co wb rpregt0d ltrec syl2anc ) ABFGHBIJK
      CFGHCIJKBCIJLCMNLBMNIJOABDPACEPBCQR $.

    $( The reciprocal of both sides of 'less than or equal to'.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    lerecd $p |- ( ph -> ( A <_ B <-> ( 1 / B ) <_ ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle c1 cdiv co wb rpregt0d lerec syl2anc ) ABFGH
      BIJKCFGHCIJKBCLJMCNOMBNOLJPABDQACEQBCRS $.

    ${
      ltrec1d.2 $e |- ( ph -> ( 1 / A ) < B ) $.
      $( Reciprocal swap in a 'less than' relation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      ltrec1d $p |- ( ph -> ( 1 / B ) < A ) $=
        ( c1 cdiv co clt wbr cr wcel cc0 wa wb rpregt0d ltrec1 syl2anc mpbid )
        AGBHICJKZGCHIBJKZFABLMNBJKOCLMNCJKOUAUBPABDQACEQBCRST $.
    $}

    ${
      lerec2d.2 $e |- ( ph -> A <_ ( 1 / B ) ) $.
      $( Reciprocal swap in a 'less than or equal to' relation.  (Contributed
         by Mario Carneiro, 28-May-2016.) $)
      lerec2d $p |- ( ph -> B <_ ( 1 / A ) ) $=
        ( c1 cdiv co cle wbr cr wcel cc0 clt wa wb rpregt0d lerec2 syl2anc
        mpbid ) ABGCHIJKZCGBHIJKZFABLMNBOKPCLMNCOKPUBUCQABDRACERBCSTUA $.
    $}

    ${
      lediv2ad.3 $e |- ( ph -> C e. RR ) $.
      lediv2ad.4 $e |- ( ph -> 0 <_ C ) $.
      lediv2ad.5 $e |- ( ph -> A <_ B ) $.
      $( Division of both sides of 'less than or equal to' into a nonnegative
         number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      lediv2ad $p |- ( ph -> ( C / B ) <_ ( C / A ) ) $=
        ( cr wcel cc0 clt wbr wa cle cdiv co rpregt0d jca lediv2a syl31anc ) AB
        JKLBMNOCJKLCMNODJKZLDPNZOBCPNDCQRDBQRPNABESACFSAUCUDGHTIBCDUAUB $.
    $}

    ltdiv2d.3 $e |- ( ph -> C e. RR+ ) $.
    $( Division of a positive number by both sides of 'less than'.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdiv2d $p |- ( ph -> ( A < B <-> ( C / B ) < ( C / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co wb rpregt0d ltdiv2 syl3anc ) ABHIJBKLMCH
      IJCKLMDHIJDKLMBCKLDCNODBNOKLPABEQACFQADGQBCDRS $.

    $( Division of a positive number by both sides of 'less than or equal to'.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    lediv2d $p |- ( ph -> ( A <_ B <-> ( C / B ) <_ ( C / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cdiv co wb rpregt0d lediv2 syl3anc ) ABHIJBK
      LMCHIJCKLMDHIJDKLMBCNLDCOPDBOPNLQABERACFRADGRBCDST $.

    ledivdivd.4 $e |- ( ph -> D e. RR+ ) $.
    ${
      ledivdivd.5 $e |- ( ph -> ( A / B ) <_ ( C / D ) ) $.
      $( Invert ratios of positive numbers and swap their ordering.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      ledivdivd $p |- ( ph -> ( D / C ) <_ ( B / A ) ) $=
        ( cdiv co cle wbr cr wcel cc0 clt wa rpregt0d ledivdiv syl22anc mpbid
        wb ) ABCKLDEKLMNZEDKLCBKLMNZJABOPQBRNSCOPQCRNSDOPQDRNSEOPQERNSUEUFUDABF
        TACGTADHTAEITBCDEUAUBUC $.
    $}
  $}

  ${
    rpgecld.1 $e |- ( ph -> A e. RR ) $.
    ${
      ge0p1rp.2 $e |- ( ph -> 0 <_ A ) $.
      $( A nonnegative number plus one is a positive number.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      ge0p1rpd $p |- ( ph -> ( A + 1 ) e. RR+ ) $=
        ( cr wcel cc0 cle wbr c1 caddc co crp ge0p1rp syl2anc ) ABEFGBHIBJKLMFC
        DBNO $.
    $}

    rpgecld.2 $e |- ( ph -> B e. RR+ ) $.
    $( Closure law for division of a real by a positive real.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    rerpdivcld $p |- ( ph -> ( A / B ) e. RR ) $=
      ( cr wcel crp cdiv co rerpdivcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

    $( Subtracting a positive real from another number decreases it.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltsubrpd $p |- ( ph -> ( A - B ) < A ) $=
      ( cr wcel crp cmin co clt wbr ltsubrp syl2anc ) ABFGCHGBCIJBKLDEBCMN $.

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    ltaddrpd $p |- ( ph -> A < ( A + B ) ) $=
      ( cr wcel crp caddc co clt wbr ltaddrp syl2anc ) ABFGCHGBBCIJKLDEBCMN $.

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    ltaddrp2d $p |- ( ph -> A < ( B + A ) ) $=
      ( caddc co clt ltaddrpd recnd rpcnd addcomd breqtrd ) ABBCFGCBFGHABCDEIAB
      CABDJACEKLM $.

    $( Multiplication by a number greater than 1.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    ltmulgt11d $p |- ( ph -> ( 1 < A <-> B < ( B x. A ) ) ) $=
      ( cr wcel cc0 clt wbr c1 cmul co wb rpred rpgt0d ltmulgt11 syl3anc ) ACFG
      BFGHCIJKBIJCCBLMIJNACEODACEPCBQR $.

    $( Multiplication by a number greater than 1.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    ltmulgt12d $p |- ( ph -> ( 1 < A <-> B < ( A x. B ) ) ) $=
      ( cr wcel cc0 clt wbr c1 cmul co wb rpred rpgt0d ltmulgt12 syl3anc ) ACFG
      BFGHCIJKBIJCBCLMIJNACEODACEPCBQR $.

    $( Division of a positive number by a positive number.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    gt0divd $p |- ( ph -> ( 0 < A <-> 0 < ( A / B ) ) ) $=
      ( cr wcel cc0 clt wbr cdiv co wb rpred rpgt0d gt0div syl3anc ) ABFGCFGHCI
      JHBIJHBCKLIJMDACENACEOBCPQ $.

    $( Division of a nonnegative number by a positive number.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    ge0divd $p |- ( ph -> ( 0 <_ A <-> 0 <_ ( A / B ) ) ) $=
      ( cr wcel cc0 clt wbr cle cdiv co wb rpred rpgt0d ge0div syl3anc ) ABFGCF
      GHCIJHBKJHBCLMKJNDACEOACEPBCQR $.

    ${
      rpgecld.3 $e |- ( ph -> B <_ A ) $.
      $( A number greater or equal to a positive real is positive real.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      rpgecld $p |- ( ph -> A e. RR+ ) $=
        ( crp wcel cr cle wbr rpgecl syl3anc ) ACGHBIHCBJKBGHEDFCBLM $.
    $}

    divge0d.3 $e |- ( ph -> 0 <_ A ) $.
    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    divge0d $p |- ( ph -> 0 <_ ( A / B ) ) $=
      ( cr wcel cc0 cle wbr clt wa cdiv co rpregt0d divge0 syl21anc ) ABGHIBJKC
      GHICLKMIBCNOJKDFACEPBCQR $.
  $}

  ${
    ltmul1d.1 $e |- ( ph -> A e. RR ) $.
    ltmul1d.2 $e |- ( ph -> B e. RR ) $.
    ltmul1d.3 $e |- ( ph -> C e. RR+ ) $.
    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltmul1d $p |- ( ph -> ( A < B <-> ( A x. C ) < ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co wb rpregt0d ltmul1 syl3anc ) ABHICHIDHIJ
      DKLMBCKLBDNOCDNOKLPEFADGQBCDRS $.

    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    ltmul2d $p |- ( ph -> ( A < B <-> ( C x. A ) < ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co wb rpregt0d ltmul2 syl3anc ) ABHICHIDHIJ
      DKLMBCKLDBNODCNOKLPEFADGQBCDRS $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    lemul1d $p |- ( ph -> ( A <_ B <-> ( A x. C ) <_ ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cmul co wb rpregt0d lemul1 syl3anc ) ABHICHI
      DHIJDKLMBCNLBDOPCDOPNLQEFADGRBCDST $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    lemul2d $p |- ( ph -> ( A <_ B <-> ( C x. A ) <_ ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cmul co wb rpregt0d lemul2 syl3anc ) ABHICHI
      DHIJDKLMBCNLDBOPDCOPNLQEFADGRBCDST $.

    $( Division of both sides of 'less than' by a positive number.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdiv1d $p |- ( ph -> ( A < B <-> ( A / C ) < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co wb rpregt0d ltdiv1 syl3anc ) ABHICHIDHIJ
      DKLMBCKLBDNOCDNOKLPEFADGQBCDRS $.

    $( Division of both sides of a less than or equal to relation by a positive
       number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    lediv1d $p |- ( ph -> ( A <_ B <-> ( A / C ) <_ ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cdiv co wb rpregt0d lediv1 syl3anc ) ABHICHI
      DHIJDKLMBCNLBDOPCDOPNLQEFADGRBCDST $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltmuldivd $p |- ( ph -> ( ( A x. C ) < B <-> A < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cdiv wb rpregt0d ltmuldiv syl3anc ) ABHI
      CHIDHIJDKLMBDNOCKLBCDPOKLQEFADGRBCDST $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltmuldiv2d $p |- ( ph -> ( ( C x. A ) < B <-> A < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cdiv wb rpregt0d ltmuldiv2 syl3anc ) ABH
      ICHIDHIJDKLMDBNOCKLBCDPOKLQEFADGRBCDST $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    lemuldivd $p |- ( ph -> ( ( A x. C ) <_ B <-> A <_ ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cle cdiv wb rpregt0d lemuldiv syl3anc )
      ABHICHIDHIJDKLMBDNOCPLBCDQOPLREFADGSBCDTUA $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    lemuldiv2d $p |- ( ph -> ( ( C x. A ) <_ B <-> A <_ ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cle cdiv wb rpregt0d lemuldiv2 syl3anc )
      ABHICHIDHIJDKLMDBNOCPLBCDQOPLREFADGSBCDTUA $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdivmuld $p |- ( ph -> ( ( A / C ) < B <-> A < ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cmul wb rpregt0d ltdivmul syl3anc ) ABHI
      CHIDHIJDKLMBDNOCKLBDCPOKLQEFADGRBCDST $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdivmul2d $p |- ( ph -> ( ( A / C ) < B <-> A < ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cmul wb rpregt0d ltdivmul2 syl3anc ) ABH
      ICHIDHIJDKLMBDNOCKLBCDPOKLQEFADGRBCDST $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    ledivmuld $p |- ( ph -> ( ( A / C ) <_ B <-> A <_ ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cle cmul wb rpregt0d ledivmul syl3anc )
      ABHICHIDHIJDKLMBDNOCPLBDCQOPLREFADGSBCDTUA $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    ledivmul2d $p |- ( ph -> ( ( A / C ) <_ B <-> A <_ ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cle cmul wb rpregt0d ledivmul2 syl3anc )
      ABHICHIDHIJDKLMBDNOCPLBCDQOPLREFADGSBCDTUA $.

    ${
      ltdiv1dd.4 $e |- ( ph -> A < B ) $.
      $( The ratio of nonnegative and positive numbers is nonnegative.
         (Contributed by Mario Carneiro, 30-May-2016.) $)
      ltmul1dd $p |- ( ph -> ( A x. C ) < ( B x. C ) ) $=
        ( clt wbr cmul co ltmul1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Multiplication of both sides of 'less than' by a positive number.
         Theorem I.19 of [Apostol] p. 20.  (Contributed by Mario Carneiro,
         30-May-2016.) $)
      ltmul2dd $p |- ( ph -> ( C x. A ) < ( C x. B ) ) $=
        ( clt wbr cmul co ltmul2d mpbid ) ABCIJDBKLDCKLIJHABCDEFGMN $.

      $( Division of both sides of 'less than' by a positive number.
         (Contributed by Mario Carneiro, 30-May-2016.) $)
      ltdiv1dd $p |- ( ph -> ( A / C ) < ( B / C ) ) $=
        ( clt wbr cdiv co ltdiv1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.
    $}

    ${
      lediv1dd.4 $e |- ( ph -> A <_ B ) $.
      $( Division of both sides of a less than or equal to relation by a
         positive number.  (Contributed by Mario Carneiro, 30-May-2016.) $)
      lediv1dd $p |- ( ph -> ( A / C ) <_ ( B / C ) ) $=
        ( cle wbr cdiv co lediv1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.
    $}

    ${
      lediv12ad.4 $e |- ( ph -> D e. RR ) $.
      lediv12ad.5 $e |- ( ph -> 0 <_ A ) $.
      lediv12ad.6 $e |- ( ph -> A <_ B ) $.
      lediv12ad.7 $e |- ( ph -> C <_ D ) $.
      $( Comparison of ratio of two nonnegative numbers.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      lediv12ad $p |- ( ph -> ( A / D ) <_ ( B / C ) ) $=
        ( cr wcel wa cc0 cle wbr cdiv jca clt co rpred rpgt0d lediv12a syl22anc
        ) ABMNZCMNZOPBQRZBCQRZODMNZEMNZOPDUARZDEQRZOBESUBCDSUBQRAUGUHFGTAUIUJJK
        TAUKULADHUCITAUMUNADHUDLTBCDEUEUF $.
    $}
  $}

  ${
    ltdiv23d.1 $e |- ( ph -> A e. RR ) $.
    ltdiv23d.2 $e |- ( ph -> B e. RR+ ) $.
    ltdiv23d.3 $e |- ( ph -> C e. RR+ ) $.
    ${
      ltdiv23d.4 $e |- ( ph -> ( A / B ) < C ) $.
      $( Swap denominator with other side of 'less than'.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      ltdiv23d $p |- ( ph -> ( A / C ) < B ) $=
        ( cdiv co clt wbr cr wcel cc0 wa wb rpregt0d ltdiv23 syl3anc mpbid ) AB
        CIJDKLZBDIJCKLZHABMNCMNOCKLPDMNODKLPUBUCQEACFRADGRBCDSTUA $.
    $}

    ${
      lediv23d.4 $e |- ( ph -> ( A / B ) <_ C ) $.
      $( Swap denominator with other side of 'less than or equal to'.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      lediv23d $p |- ( ph -> ( A / C ) <_ B ) $=
        ( cdiv co cle wbr cr wcel cc0 clt wa wb rpregt0d lediv23 syl3anc mpbid
        ) ABCIJDKLZBDIJCKLZHABMNCMNOCPLQDMNODPLQUCUDREACFSADGSBCDTUAUB $.
    $}
  $}

  ${
    lt2mul2divd.1 $e |- ( ph -> A e. RR ) $.
    lt2mul2divd.2 $e |- ( ph -> B e. RR+ ) $.
    lt2mul2divd.3 $e |- ( ph -> C e. RR ) $.
    lt2mul2divd.4 $e |- ( ph -> D e. RR+ ) $.
    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    lt2mul2divd $p |- ( ph ->
      ( ( A x. B ) < ( C x. D ) <-> ( A / D ) < ( C / B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cdiv wb rpregt0d lt2mul2div syl22anc ) A
      BJKCJKLCMNODJKEJKLEMNOBCPQDEPQMNBERQDCRQMNSFACGTHAEITBCDEUAUB $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
           Infinity and the extended real number system (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $c -e $. $( the negative of an extended real number. $)
  $c +e $. $( Addition of extended real numbers. $)
  $c *e $. $( Multiplication of extended real numbers. $)

  $( Extend class notation to include the negative of an extended real. $)
  cxne $a class -e A $.

  $( Extend class notation to include addition of extended reals. $)
  cxad $a class +e $.

  $( Extend class notation to include multiplication of extended reals. $)
  cxmu $a class *e $.

  $( Define the negative of an extended real number.  (Contributed by FL,
     26-Dec-2011.) $)
  df-xneg $a |- -e A = if ( A = +oo , -oo , if ( A = -oo , +oo , -u A ) ) $.

  ${
    $d x y $.
    $( Define addition over extended real numbers.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    df-xadd $a |- +e = ( x e. RR* , y e. RR* |-> if ( x = +oo ,
            if ( y = -oo , 0 , +oo ) , if ( x = -oo ,
            if ( y = +oo , 0 , -oo ) , if ( y = +oo , +oo ,
                 if ( y = -oo , -oo , ( x + y ) ) ) ) ) ) $.

    $( Define multiplication over extended real numbers.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    df-xmul $a |- *e = ( x e. RR* , y e. RR* |-> if ( ( x = 0 \/ y = 0 ) , 0 ,
            if ( ( ( ( 0 < y /\ x = +oo ) \/ ( y < 0 /\ x = -oo ) ) \/
                   ( ( 0 < x /\ y = +oo ) \/ ( x < 0 /\ y = -oo ) ) ) , +oo ,
            if ( ( ( ( 0 < y /\ x = -oo ) \/ ( y < 0 /\ x = +oo ) ) \/
                   ( ( 0 < x /\ y = -oo ) \/ ( x < 0 /\ y = +oo ) ) ) , -oo ,
                 ( x x. y ) ) ) ) ) $.
  $}

  $( Plus infinity belongs to the set of extended reals.  (Contributed by NM,
     13-Oct-2005.)  (Proof shortened by Anthony Hart, 29-Aug-2011.) $)
  pnfxr $p |- +oo e. RR* $=
    ( cpnf cr cmnf cpr cun cxr ssun2 cc cuni cpw df-pnf cnex uniex pwex eqeltri
    cvv prid1 sselii df-xr eleqtrri ) ABACDZEZFUAUBAUABGACAHIZJPKUCHLMNOQRST $.

  $( Plus infinity exists (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  pnfex $p |- +oo e. _V $=
    ( cpnf cxr pnfxr elexi ) ABCD $.

  $( Minus infinity belongs to the set of extended reals.  (Contributed by NM,
     13-Oct-2005.)  (Proof shortened by Anthony Hart, 29-Aug-2011.)  (Proof
     shortened by Andrew Salmon, 19-Nov-2011.) $)
  mnfxr $p |- -oo e. RR* $=
    ( cmnf cr cpnf cpr cun cxr wcel cpw cvv df-mnf pnfex pwex prid2 elun2 ax-mp
    eqeltri df-xr eleqtrri ) ABCADZEZFASGATGCAACHIJCKLPMASBNOQR $.

  ${
    $d x y A $.  $d x y B $.
    $( The 'less than' binary relation on the set of extended reals.
       Definition 12-3.1 of [Gleason] p. 173.  (Contributed by NM,
       14-Oct-2005.) $)
    ltxr $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B <->
              ( ( ( ( A e. RR /\ B e. RR ) /\ A <RR B ) \/
                   ( A = -oo /\ B = +oo ) ) \/ ( ( A e. RR /\ B = +oo )
                  \/ ( A = -oo /\ B e. RR ) ) ) ) ) $=
      ( vx vy cxr wcel wa cv cr cltrr wbr cmnf csn cun cpnf cxp wceq clt syl5bb
      wo w3a copab breq12 df-3an opabbii brab2ga a1i brun brxp elun orcom bitri
      wb elsncg orbi1d bi2anan9 andir syl6bb anbi1d orbi12d orass df-ltxr breqi
      adantr 3bitr4g ) AEFZBEFZGZABCHZIFZDHZIFZVIVKJKZUAZCDUBZKZABILMZNZOMZPZVQ
      IPZNZKZTZAIFZBIFZGABJKZGZALQZBOQZGZWEWJGZWIWFGZTZTZTABRKZWHWKTWNTVHVPWHWC
      WOVPWHUMVHVMWGCDABIIVOVIAVKBJUCVNVJVLGVMGCDVJVLVMUDUEUFUGWCABVTKZABWAKZTZ
      VHWOABVTWAUHVHWSWKWLTZWMTWOVHWQWTWRWMWQAVRFZBVSFZGZVHWTABVRVSUIVHXCWIWETZ
      WJGWTVFXAXDVGXBWJXAAVQFZWETZVFXDXAWEXETXFAIVQUJWEXEUKULVFXEWIWEALEUNZUOSB
      OEUNUPWIWEWJUQURSWRXEWFGZVHWMABVQIUIVFXHWMUMVGVFXEWIWFXGUSVDSUTWKWLWMVAUR
      SUTWPABVOWBNZKWDABRXICDVBVCABVOWBUHULWHWKWNVAVE $.
  $}

  $( Membership in the set of extended reals.  (Contributed by NM,
     14-Oct-2005.) $)
  elxr $p |- ( A e. RR* <-> ( A e. RR \/ A = +oo \/ A = -oo ) ) $=
    ( cxr wcel cr cpnf cmnf cpr cun wo wceq df-xr eleq2i elun pnfex mnfxr elexi
    w3o elpr2 orbi2i 3orass bitr4i 3bitri ) ABCADEFGZHZCADCZAUCCZIZUEAEJZAFJZQZ
    BUDAKLADUCMUGUEUHUIIZIUJUFUKUEAEFNFBOPRSUEUHUITUAUB $.

  $( Plus and minus infinity are different elements of ` RR* ` .  (Contributed
     by NM, 14-Oct-2005.) $)
  pnfnemnf $p |- +oo =/= -oo $=
    ( cpnf cpw cmnf cxr wcel wne pnfxr pwne ax-mp necomi df-mnf neeqtrri ) AABZ
    CMAADEMAFGADHIJKL $.

  $( Minus and plus infinity are different (common case).  (Contributed by
     David A. Wheeler, 8-Dec-2018.) $)
  mnfnepnf $p |- -oo =/= +oo $=
    ( cpnf cmnf pnfnemnf necomi ) ABCD $.

  $( An extended real other than minus infinity is real or positive infinite.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xrnemnf $p |- ( ( A e. RR* /\ A =/= -oo ) <-> ( A e. RR \/ A = +oo ) ) $=
    ( cr wcel cpnf wceq wo cmnf wn cxr wne pm5.61 w3o elxr df-3or bitri anbi12i
    wa df-ne renemnf pnfnemnf neeq1 mpbiri jaoi neneqd pm4.71i 3bitr4i ) ABCZAD
    EZFZAGEZFZUJHZQUIULQAICZAGJZQUIUIUJKUMUKUNULUMUGUHUJLUKAMUGUHUJNOAGRPUIULUI
    AGUGUNUHASUHUNDGJTADGUAUBUCUDUEUF $.

  $( An extended real other than plus infinity is real or negative infinite.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xrnepnf $p |- ( ( A e. RR* /\ A =/= +oo ) <-> ( A e. RR \/ A = -oo ) ) $=
    ( cr wcel cmnf wceq wo cpnf wn wa cxr wne pm5.61 w3o elxr df-3or or32 df-ne
    3bitri anbi12i renepnf mnfnepnf neeq1 mpbiri jaoi neneqd pm4.71i 3bitr4i )
    ABCZADEZFZAGEZFZUKHZIUJUMIAJCZAGKZIUJUJUKLUNULUOUMUNUHUKUIMUHUKFUIFULANUHUK
    UIOUHUKUIPRAGQSUJUMUJAGUHUOUIATUIUODGKUAADGUBUCUDUEUFUG $.

  $( The extended real 'less than' is irreflexive.  (Contributed by NM,
     14-Oct-2005.) $)
  xrltnr $p |- ( A e. RR* -> -. A < A ) $=
    ( cxr wcel cr cpnf wceq cmnf clt wbr wa cltrr neli intnanr pnfnemnf pm3.2ni
    wo intnan wb pnfxr ltxr w3o elxr ltnr pnfnre neii mp2an mtbir breq12 anidms
    wn mtbiri mnfnre nesymi mnfxr 3jaoi sylbi ) ABCADCZAEFZAGFZUAAAHIZUJZAUBUQV
    AURUSAUCURUTEEHIZVBEDCZVCJZEEKIZJZEGFZEEFZJZPZVCVHJZVGVCJZPZPZVJVMVFVIVDVEV
    CVCEDUDLZQMVGVHEGNUEMOVKVLVCVHVOMVCVGVOQOOEBCZVPVBVNRSSEETUFUGURUTVBRAEAEHU
    HUIUKUSUTGGHIZVQGDCZVRJZGGKIZJZGGFZGEFZJZPZVRWCJZWBVRJZPZPZWEWHWAWDVSVTVRVR
    GDULLZQMWCWBEGNUMQOWFWGVRWCWJMVRWBWJQOOGBCZWKVQWIRUNUNGGTUFUGUSUTVQRAGAGHUH
    UIUKUOUP $.

  $( Any (finite) real is less than plus infinity.  (Contributed by NM,
     14-Oct-2005.) $)
  ltpnf $p |- ( A e. RR -> A < +oo ) $=
    ( cr wcel cpnf clt wbr wa cltrr cmnf wceq wo eqid orc mpan2 olcd rexr pnfxr
    cxr wb ltxr sylancl mpbird ) ABCZADEFZUCDBCZGADHFGAIJZDDJZGKZUCUGGZUFUEGZKZ
    KZUCUKUHUCUGUKDLUIUJMNOUCARCDRCUDULSAPQADTUAUB $.

  $( Zero is less than plus infinity (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  0ltpnf $p |- 0 < +oo $=
    ( cc0 cr wcel cpnf clt wbr 0re ltpnf ax-mp ) ABCADEFGAHI $.

  $( Minus infinity is less than any (finite) real.  (Contributed by NM,
     14-Oct-2005.) $)
  mnflt $p |- ( A e. RR -> -oo < A ) $=
    ( cr wcel cmnf clt wbr wa cltrr wceq cpnf wo eqid olc mpan olcd cxr wb rexr
    mnfxr ltxr sylancr mpbird ) ABCZDAEFZDBCZUCGDAHFGDDIZAJIZGKZUEUGGZUFUCGZKZK
    ZUCUKUHUFUCUKDLUJUIMNOUCDPCAPCUDULQSARDATUAUB $.

  $( Minus infinity is less than 0 (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  mnflt0 $p |- -oo < 0 $=
    ( cc0 cr wcel cmnf clt wbr 0re mnflt ax-mp ) ABCDAEFGAHI $.

  $( Minus infinity is less than plus infinity.  (Contributed by NM,
     14-Oct-2005.) $)
  mnfltpnf $p |- -oo < +oo $=
    ( cmnf cpnf clt wbr cr wcel wa cltrr wceq wo eqid olc mp2an cxr mnfxr pnfxr
    orci wb ltxr mpbir ) ABCDZAEFZBEFZGABHDGZAAIZBBIZGZJZUBUFGUEUCGJZJZUHUIUEUF
    UHAKBKUGUDLMQANFBNFUAUJROPABSMT $.

  $( Minus infinity is less than an extended real that is either real or plus
     infinity.  (Contributed by NM, 2-Feb-2006.) $)
  mnfltxr $p |- ( ( A e. RR \/ A = +oo ) -> -oo < A ) $=
    ( cr wcel cmnf clt wbr cpnf wceq mnflt mnfltpnf breq2 mpbiri jaoi ) ABCDAEF
    ZAGHZAIONDGEFJAGDEKLM $.

  $( No extended real is greater than plus infinity.  (Contributed by NM,
     15-Oct-2005.) $)
  pnfnlt $p |- ( A e. RR* -> -. +oo < A ) $=
    ( cxr wcel cpnf clt wbr cr wa cltrr cmnf wceq wo neli intnanr pnfnemnf neii
    pnfnre pm3.2ni wb pnfxr ltxr mpan mtbiri ) ABCZDAEFZDGCZAGCZHZDAIFZHZDJKZAD
    KZHZLZUFULHZUKUGHZLZLZUNUQUJUMUHUIUFUGDGQMZNNUKULDJOPZNRUOUPUFULUSNUKUGUTNR
    RDBCUDUEURSTDAUAUBUC $.

  $( No extended real is less than minus infinity.  (Contributed by NM,
     15-Oct-2005.) $)
  nltmnf $p |- ( A e. RR* -> -. A < -oo ) $=
    ( cxr wcel cmnf clt wbr cr wa cltrr wceq cpnf wo mnfnre neli intnan intnanr
    pnfnemnf nesymi pm3.2ni wb mnfxr ltxr mpan2 mtbiri ) ABCZADEFZAGCZDGCZHZADI
    FZHZADJZDKJZHZLZUGUMHZULUHHZLZLZUOURUKUNUIUJUHUGDGMNZOPUMULKDQRZOSUPUQUMUGV
    AOUHULUTOSSUEDBCUFUSTUAADUBUCUD $.

  $( Plus infinity is an upper bound for extended reals.  (Contributed by NM,
     30-Jan-2006.) $)
  pnfge $p |- ( A e. RR* -> A <_ +oo ) $=
    ( cxr wcel cpnf cle wbr clt wn pnfnlt wb pnfxr xrlenlt mpan2 mpbird ) ABCZA
    DEFZDAGFHZAIODBCPQJKADLMN $.

  $( 0 less than or equal to positive infinity.  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  0lepnf $p |- 0 <_ +oo $=
    ( cc0 cxr wcel cpnf cle wbr 0xr pnfge ax-mp ) ABCADEFGAHI $.

  $( If a number is a nonnegative integer or positive infinity, it is greater
     than or equal to 0.  (Contributed by Alexander van der Vekens,
     6-Jan-2018.) $)
  nn0pnfge0 $p |- ( ( N e. NN0 \/ N = +oo ) -> 0 <_ N ) $=
    ( cn0 wcel cc0 cle wbr cpnf wceq nn0ge0 0lepnf breq2 mpbiri jaoi ) ABCDAEFZ
    AGHZAIONDGEFJAGDEKLM $.

  $( Minus infinity is less than or equal to any extended real.  (Contributed
     by NM, 19-Jan-2006.) $)
  mnfle $p |- ( A e. RR* -> -oo <_ A ) $=
    ( cxr wcel cmnf cle wbr clt wn nltmnf wb mnfxr xrlenlt mpan mpbird ) ABCZDA
    EFZADGFHZAIDBCOPQJKDALMN $.

  $( Ordering on the extended reals is not symmetric.  (Contributed by NM,
     15-Oct-2005.) $)
  xrltnsym $p |- ( ( A e. RR* /\ B e. RR* ) ->
                ( A < B -> -. B < A ) ) $=
    ( cxr wcel cr cpnf wceq cmnf clt wbr wn pnfnlt syl adantr adantl mtbird a1d
    wa wb pm2.21d wi elxr ltnsym rexr breq1 nltmnf breq2 3jaodan sylan2br mnfxr
    w3o ax-mp breq12 mtbiri ancoms xrltnr 3jaoian syl2anb ) ACDZAEDZAFGZAHGZUKB
    EDZBFGZBHGZUKZABIJZBAIJZKZUAZBCDZAUBBUBZUTVFVJVAVBUTVCVJVDVEABUCUTVDRZVIVGV
    MVHFAIJZUTVNKZVDUTUSVOAUDZALMNVDVHVNSUTBFAIUEOPQUTVERZVGVIVQVGAHIJZUTVRKZVE
    UTUSVSVPAUFMNVEVGVRSUTBHAIUGOPTUHVFVAVKVJVLVAVKRZVGVIVTVGFBIJZVKWAKVABLOVAV
    GWASVKAFBIUENPTUIVBVCVJVDVEVBVCRZVIVGWBVHBHIJZVCWCKZVBVCVKWDBUDBUFMOVBVHWCS
    VCAHBIUGNPQVBVDRVIVGVDVBVIVDVBRVHFHIJZHCDZWEKUJHLULBFAHIUMUNUOQVBVERZVGVIWG
    VGHHIJZWFWHKUJHUPULAHBHIUMUNTUHUQUR $.

  $( 'Less than' is antisymmetric and irreflexive for extended reals.
     (Contributed by NM, 6-Feb-2007.) $)
  xrltnsym2 $p |- ( ( A e. RR* /\ B e. RR* ) -> -. ( A < B /\ B < A ) ) $=
    ( cxr wcel wa clt wbr wn wi xrltnsym imnan sylib ) ACDBCDEABFGZBAFGZHIMNEHA
    BJMNKL $.

  $( Ordering on the extended reals is transitive.  (Contributed by NM,
     15-Oct-2005.) $)
  xrlttr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A < B /\ B < C ) -> A < C ) ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o clt wbr wa wn adantr adantl mtbird pm2.21d
    wb adantlr wi elxr lttr 3expa an32s pnfnlt syl breq1 adantll adantld nltmnf
    rexr breq2 adantrd 3jaodan sylan2b ltpnf mpbird a1d anasss adantrr mnfltpnf
    mnflt breq12 mpbiri 3jaoian 3impb syl3an3b syl3an1b ) ADEZAFEZAGHZAIHZJZBDE
    ZCDEZABKLZBCKLZMZACKLZUAZAUBVPVNVOCFEZCGHZCIHZJZWACUBVNVOWEWAVKVOWEMWAVLVMV
    KVOWEWAVKVOMZWBWAWCWDVKWBVOWAVOVKWBMZBFEZBGHZBIHZJWABUBWGWHWAWIWJVKWHWBWAVK
    WHWBWAABCUCUDUEWGWIMVRVTVQWBWIVRVTUAVKWBWIMZVRVTWKVRGCKLZWBWLNZWIWBVPWMCULC
    UFUGOWIVRWLSWBBGCKUHPQRUIUJWGWJMVQVTVRVKWJVQVTUAWBVKWJMZVQVTWNVQAIKLZVKWONZ
    WJVKVJWPAULAUKUGOWJVQWOSVKBIAKUMPQRTUNUOUPUEWFWCMVTVSVKWCVTVOVKWCMVTAGKLZVK
    WQWCAUQOWCVTWQSVKCGAKUMPURTUSVOWDWAVKVOWDMZVRVTVQWRVRVTWRVRBIKLZVOWSNWDBUKO
    WDVRWSSVOCIBKUMPQRUJZUIUOUTVLVOWAWEVLVOMZVQVTVRXAVQVTXAVQGBKLZVOXBNVLBUFPVL
    VQXBSVOAGBKUHOQRUNVAVMVOWEWAVMVOMWBWAWCWDVMWBWAVOVMWBMZVTVSXCVTICKLZWBXDVMC
    VCPVMVTXDSWBAICKUHOURUSTVMWCWAVOVMWCMZVTVSXEVTIGKLVBAICGKVDVEUSTVOWDWAVMWTU
    IUOUTVFVGVHVI $.

  ${
    $d x y z A $.
    $( 'Less than' is a weakly linear ordering on the extended reals.
       (Contributed by NM, 15-Oct-2005.) $)
    xrltso $p |- < Or RR* $=
      ( vx vy vz cxr clt cv wbr wo wcel adantl wa cpnf wceq cmnf mpbird 3jaodan
      wb a1d sylan2b ancoms wor wpo wi wral wtru wn xrltnr xrlttr ispod trud cr
      w3a w3o elxr simplr simpll simpr axltwlin ltpnf ad2antlr breq2 orcd mnflt
      syl3anc ad2antrr breq1 olcd anasss mnfltpnf breq12 mpbiri rexr nltmnf syl
      adantlr mtbird pm2.21d pnfnlt df-3or bitri adantr eqtr3 breq1d olc syl6bi
      mnfltxr jaodan 3impa syl3an3b 3com13 rgen3 df-iso mpbir2an ) DEUADEUBZAFZ
      BFZEGZWOCFZEGZWRWPEGZHZUCZCDUDBDUDADUDWNUEABCDEWODIZWOWOEGUFUEWOUGJXCWPDI
      ZWRDIZULWQWPWREGKWSUCUEWOWPWRUHJUIUJXBABCDDDXEXDXCXBXCXEXDWOUKIZWOLMZWONM
      ZUMZXBWOUNXEXDXIXBXEXDKZXFXBXGXHXFXJXBXFXEXDXBXDXFXEKZWPUKIZWPLMZWPNMZUMX
      BWPUNXKXLXBXMXNXLXKXBXLXFXEXBXEXLXFKZWRUKIZWRLMZWRNMZUMZXBWRUNZXOXPXBXQXR
      XOXPKXFXLXPXBXLXFXPUOXLXFXPUPXOXPUQWOWPWRURVDXOXQKZXAWQYAWSWTYAWSWOLEGZXF
      YBXLXQWOUSZUTXQWSYBQZXOWRLWOEVAZJOVBRXOXRKZXAWQYFWTWSYFWTNWPEGZXLYGXFXRWP
      VCVEXRWTYGQXOWRNWPEVFJOVGRPSVHTXMXKXBXMXFXEXBXEXMXFKZXSXBXTYHXPXBXQXRYHXP
      KZXAWQYIWTWSYIWTWRLEGZXPYJYHWRUSJXMWTYJQXFXPWPLWREVAVEOVGRYHXQKZXAWQYKWSW
      TYKWSYBXFYBXMXQYCUTXQYDYHYEJOVBRYHXRKZXAWQYLWTWSXMXRWTXFXMXRKWTNLEGZVIXRX
      MWTYMQWRNWPLEVJTVKVOVGRPSVHTXKXNKZWQXAYNWQWONEGZXFYOUFZXEXNXFXCYPWOVLWOVM
      VNVEXNWQYOQXKWPNWOEVAJVPVQPSVHTXJXGKZWQXAYQWQLWPEGZXDYRUFXEXGWPVRUTXGWQYR
      QXJWOLWPEVFJVPVQXEXHXBXDXHXEXBXEXHXPXQHZXRHZXBXEXSYTXTXPXQXRVSVTXHYSXBXRX
      HYSKZXAWQUUAWSWTUUAWSNWREGZYSUUBXHWRWFJXHWSUUBQYSWONWREVFWAOVBRXHXRKZWQWT
      XAUUCWOWRWPEWOWRNWBWCWTWSWDWEWGSTVOPWHWIWJWKABCDEWLWM $.
  $}

  $( Extended real version of ~ lttri3 .  (Contributed by NM, 9-Feb-2006.) $)
  xrlttri3 $p |- ( ( A e. RR* /\ B e. RR* ) ->
                ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
    ( wcel cpnf wceq cmnf clt wbr wn wa ancoms wne adantr adantl mpbird 2falsed
    wb neneqd breq12 mtbiri cxr cr elxr lttri3 renepnf neeq2 necomd ltpnf breq2
    w3o wo notnot1 olcs ioran sylnib syl renemnf mnflt breq1 orc oranim 3jaodan
    3syl eqtr3 eqcomd pnfxr xrltnr ax-mp jca mnfnepnf eqeq12 necon3bid mnfltpnf
    2thd mpbiri neii neneqad mnfxr syl2anb ) AUACAUBCZADEZAFEZUJZBUBCZBDEZBFEZU
    JABEZABGHZIZBAGHZIZJZQZBUACAUCBUCWCWDWMWEWFWDWCWMWDVTWMWAWBVTWDWMABUDKWDWAJ
    ZWGWLWNABWNBAWNBALZBDLZWDWPWABUEMWAWOWPQWDADBUFNOUGRWNWJWLIZWNWJBDGHZWDWRWA
    BUHMWAWJWRQWDADBGUINOWJWHWJUKZIZWLWHWJWTIWSULUMWHWJUNUOZUPPWDWBJZWGWLXBABXB
    BAXBWOBFLZWDXCWBBUQMWBWOXCQWDAFBUFNOUGRXBWHWSWQXBWHFBGHZWDXDWBBURMWBWHXDQWD
    AFBGUSNOWHWJUTZWHWJVAZVCPVBKWEWCWMWEVTWMWAWBWEVTJZWGWLXGABXGABLZADLZVTXIWEA
    UENWEXHXIQVTBDAUFMORXGWHWSWQXGWHADGHZVTXJWEAUHNWEWHXJQVTBDAGUIMOXEXFVCPWEWA
    JZWGWLXKBABADVDVEXKWIWKXKWHDDGHZDUACXLIVFDVGVHZWAWEWHXLQADBDGSKTXKWJXLXMBDA
    DGSTVIVNWEWBJZWGWLXNABWBWEXHWBWEJZXHFDLVJXOABFDAFBDVKVLVOKRXNWHWSWQWBWEWHXO
    WHFDGHZVMAFBDGSVOKXEXFVCPVBKWFWCWMWFVTWMWAWBWFVTJZWGWLXQABXQXHAFLZVTXRWFAUQ
    NWFXHXRQVTBFAUFMORXQWJWQXQWJFAGHZVTXSWFAURNWFWJXSQVTBFAGUSMOXAUPPWFWAJZWGWL
    XTABXTBAXTBAXTBAEFDEFDVJVPBFADVKTVQUGRXTWJWQXTWJXPVMBFADGSVOXAUPPWFWBJZWGWL
    WBWFWGABFVDKYAWIWKYAWHFFGHZFUACYBIVRFVGVHZWBWFWHYBQAFBFGSKTYAWJYBYCBFAFGSTV
    IVNVBKVBVS $.

  $( 'Less than' implies 'less than or equal' for extended reals.  (Contributed
     by NM, 19-Jan-2006.) $)
  xrltle $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B -> A <_ B ) ) $=
    ( cxr wcel wa clt wbr wn cle xrltnsym xrlenlt sylibrd ) ACDBCDEABFGBAFGHABI
    GABJABKL $.

  $( 'Less than or equal to' is reflexive for extended reals.  (Contributed by
     NM, 7-Feb-2007.) $)
  xrleid $p |- ( A e. RR* -> A <_ A ) $=
    ( cxr wcel cle wbr clt wn xrltnr wb xrlenlt anidms mpbird ) ABCZAADEZAAFEGZ
    AHMNOIAAJKL $.

  $( Trichotomy law for extended reals.  (Contributed by FL, 2-Aug-2009.) $)
  xrletri3 $p |- ( ( A e. RR* /\ B e. RR* ) ->
                   ( A = B <-> ( A <_ B /\ B <_ A ) ) ) $=
    ( cxr wcel wa wceq clt wbr wn cle xrlttri3 ancom syl6bbr xrlenlt wb anbi12d
    ancoms bitr4d ) ACDZBCDZEZABFZBAGHIZABGHIZEZABJHZBAJHZEUAUBUDUCEUEABKUCUDLM
    UAUFUCUGUDABNTSUGUDOBANQPR $.

  $( Transitive law for ordering on extended reals.  (Contributed by NM,
     19-Jan-2006.) $)
  xrlelttr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A <_ B /\ B < C ) -> A < C ) ) $=
    ( cxr wcel w3a cle wbr clt wa wn simprl simpl1 simpl2 xrlenlt syl2anc mpbid
    wb pm2.21d idd wo simprr wi simpl3 wor xrltso sowlin mpan syl3anc mpjaod ex
    mpd ) ADEZBDEZCDEZFZABGHZBCIHZJZACIHZUPUSJZBAIHZUTUTVAVBUTVAUQVBKZUPUQURLVA
    UMUNUQVCRUMUNUOUSMZUMUNUOUSNZABOPQSVAUTTVAURVBUTUAZUPUQURUBVAUNUOUMURVFUCZV
    EUMUNUOUSUDVDDIUEUNUOUMFVGUFDBCAIUGUHUIULUJUK $.

  $( Transitive law for ordering on extended reals.  (Contributed by NM,
     19-Jan-2006.) $)
  xrltletr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A < B /\ B <_ C ) -> A < C ) ) $=
    ( cxr wcel w3a clt wbr cle wa wn simprr simpl2 simpl3 xrlenlt syl2anc mpbid
    wb wo simprl wi wor xrltso sowlin mpan adantr mpd ecased ex ) ADEZBDEZCDEZF
    ZABGHZBCIHZJZACGHZUMUPJZUQCBGHZURUOUSKZUMUNUOLURUKULUOUTRUJUKULUPMUJUKULUPN
    BCOPQURUNUQUSSZUMUNUOTUMUNVAUAZUPDGUBUMVBUCDABCGUDUEUFUGUHUI $.

  $( Transitive law for ordering on extended reals.  (Contributed by NM,
     9-Feb-2006.) $)
  xrletr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A <_ B /\ B <_ C ) -> A <_ C ) ) $=
    ( cxr wcel w3a clt wbr wo wn cle wa wi wor xrltso sowlin mpan 3coml xrlenlt
    wb orcom syl6ib con3d 3adant3 3adant1 anbi12d ioran syl6bbr 3adant2 3imtr4d
    ) ADEZBDEZCDEZFZBAGHZCBGHZIZJZCAGHZJZABKHZBCKHZLZACKHZUNUSUQUNUSUPUOIZUQUMU
    KULUSVEMZDGNUMUKULFVFODCABGPQRUPUOUAUBUCUNVCUOJZUPJZLURUNVAVGVBVHUKULVAVGTU
    MABSUDULUMVBVHTUKBCSUEUFUOUPUGUHUKUMVDUTTULACSUIUJ $.

  ${
    xrlttrd.1 $e |- ( ph -> A e. RR* ) $.
    xrlttrd.2 $e |- ( ph -> B e. RR* ) $.
    xrlttrd.3 $e |- ( ph -> C e. RR* ) $.
    ${
      xrlttrd.4 $e |- ( ph -> A < B ) $.
      xrlttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrlttrd $p |- ( ph -> A < C ) $=
        ( clt wbr cxr wcel wa wi xrlttr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLM
        CLMDLMSTNUAOEFGBCDPQR $.
    $}

    ${
      xrlelttrd.4 $e |- ( ph -> A <_ B ) $.
      xrlelttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrlelttrd $p |- ( ph -> A < C ) $=
        ( cle wbr clt cxr wcel wa wi xrlelttr syl3anc mp2and ) ABCJKZCDLKZBDLKZ
        HIABMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      xrltletrd.4 $e |- ( ph -> A < B ) $.
      xrltletrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrltletrd $p |- ( ph -> A < C ) $=
        ( clt wbr cle cxr wcel wa wi xrltletr syl3anc mp2and ) ABCJKZCDLKZBDJKZ
        HIABMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      xrletrd.4 $e |- ( ph -> A <_ B ) $.
      xrletrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrletrd $p |- ( ph -> A <_ C ) $=
        ( cle wbr cxr wcel wa wi xrletr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLM
        CLMDLMSTNUAOEFGBCDPQR $.
    $}
  $}

  $( 'Less than' implies not equal for extended reals.  (Contributed by NM,
     20-Jan-2006.) $)
  xrltne $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> B =/= A ) $=
    ( cxr wcel clt wbr wne wceq xrltnr breq2 notbid syl5ibrcom necon2ad 3adant2
    wn imp ) ACDZABEFZBAGZBCDQRSQRBAQROBAHZAAEFZOAITRUABAAEJKLMPN $.

  $( An extended real is not less than plus infinity iff they are equal.
     (Contributed by NM, 30-Jan-2006.) $)
  nltpnft $p |- ( A e. RR* -> ( A = +oo <-> -. A < +oo ) ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o clt wbr wn wb renepnf neneqd ltpnf notnot1
    elxr 2falsed breq1 mtbiri id pnfxr xrltnr ax-mp 2thd mnfnepnf neii mnfltpnf
    syl eqeq1 mpbiri necon3bi necon2bi 3jaoi sylbi ) ABCADCZAEFZAGFZHUQAEIJZKZL
    ZAQUPVAUQURUPUQUTUPAEAMNUPUSUTKAOUSPUIRUQUQUTUQUAUQUSEEIJZEBCVBKUBEUCUDAEEI
    STUEURUQUTURUQGEFGEUFUGAGEUJTUTAGUSAGURUSGEIJUHAGEISUKULUMRUNUO $.

  $( An extended real is not greater than minus infinity iff they are equal.
     (Contributed by NM, 2-Feb-2006.) $)
  ngtmnft $p |- ( A e. RR* -> ( A = -oo <-> -. -oo < A ) ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o clt wbr wn wb renemnf neneqd mnflt 2falsed
    elxr wne mpbiri breq2 notnot1 syl pnfnemnf neeq1 mnfltpnf necon3bi necon2bi
    id mnfxr xrltnr ax-mp mtbiri 2thd 3jaoi sylbi ) ABCADCZAEFZAGFZHURGAIJZKZLZ
    AQUPVAUQURUPURUTUPAGAMNUPUSUTKAOUSUAUBPUQURUTUQAGUQAGREGRUCAEGUDSNUTAEUSAEU
    QUSGEIJUEAEGITSUFUGPURURUTURUHURUSGGIJZGBCVBKUIGUJUKAGGITULUMUNUO $.

  $( An extended real is real iff it is strictly bounded by infinities.
     (Contributed by NM, 2-Feb-2006.) $)
  xrrebnd $p |- ( A e. RR* -> ( A e. RR <-> ( -oo < A /\ A < +oo ) ) ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o clt wa wb elxr id necon2bi wn xrltnr ax-mp
    wbr mtbiri 2falsed mnflt ltpnf jca 2thd renepnf pnfxr breq1 intnand renemnf
    mnfxr breq2 intnanrd 3jaoi sylbi ) ABCADCZAEFZAGFZHUOGAIRZAEIRZJZKZALUOVAUP
    UQUOUOUTUOMUOURUSAUAAUBUCUDUPUOUTUOAEAUENUPUSURUPUSEEIRZEBCVBOUFEPQAEEIUGSU
    HTUQUOUTUOAGAUINUQURUSUQURGGIRZGBCVCOUJGPQAGGIUKSULTUMUN $.

  $( A way of proving that an extended real is real.  (Contributed by NM,
     9-Mar-2006.) $)
  xrre $p |- ( ( ( A e. RR* /\ B e. RR ) /\ ( -oo < A /\ A <_ B ) ) ->
              A e. RR ) $=
    ( cxr wcel cr wa cmnf clt wbr cle cpnf simprl ltpnf adantl wi rexr xrlelttr
    pnfxr mp3an3 sylan2 mpan2d imp adantrl wb xrrebnd ad2antrr mpbir2and ) ACDZ
    BEDZFZGAHIZABJIZFZFAEDZUKAKHIZUJUKULLUJULUOUKUJULUOUJULBKHIZUOUIUPUHBMNUIUH
    BCDZULUPFUOOZBPUHUQKCDURRABKQSTUAUBUCUHUNUKUOFUDUIUMAUEUFUG $.

  $( An extended real between two others is real.  (Contributed by NM,
     6-Feb-2007.) $)
  xrre2 $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
              ( A < B /\ B < C ) ) -> B e. RR ) $=
    ( cxr wcel w3a clt wbr wa cr cmnf wi cle mnfle adantr mnfxr xrlelttr mp3an1
    cpnf mpand 3adant3 pnfge adantl pnfxr mp3an3 mpan2d 3adant1 anim12d xrrebnd
    xrltletr wb 3ad2ant2 sylibrd imp ) ADEZBDEZCDEZFZABGHZBCGHZIZBJEZURVAKBGHZB
    SGHZIZVBURUSVCUTVDUOUPUSVCLUQUOUPIKAMHZUSVCUOVFUPANOKDEUOUPVFUSIVCLPKABQRTU
    AUPUQUTVDLUOUPUQIUTCSMHZVDUQVGUPCUBUCUPUQSDEUTVGIVDLUDBCSUJUEUFUGUHUPUOVBVE
    UKUQBUIULUMUN $.

  $( A way of proving that an extended real is real.  (Contributed by FL,
     29-May-2014.) $)
  xrre3 $p |- ( ( ( A e. RR* /\ B e. RR ) /\ ( B <_ A /\ A < +oo ) )
      -> A e. RR ) $=
    ( cxr wcel cr wa cle wbr cpnf clt cmnf mnflt adantl wi mnfxr a1i rexr simpl
    xrltletr syl3anc mpand imp adantrr simprr wb xrrebnd ad2antrr mpbir2and ) A
    CDZBEDZFZBAGHZAIJHZFZFAEDZKAJHZUMUKULUPUMUKULUPUKKBJHZULUPUJUQUIBLMUKKCDZBC
    DZUIUQULFUPNURUKOPUJUSUIBQMUIUJRKBASTUAUBUCUKULUMUDUIUOUPUMFUEUJUNAUFUGUH
    $.

  $( A nonnegative extended real is greater than negative infinity.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  ge0gtmnf $p |- ( ( A e. RR* /\ 0 <_ A ) -> -oo < A ) $=
    ( cxr wcel cmnf cc0 clt wbr cle mnflt0 wa wi mnfxr 0xr xrltletr mp3an12 imp
    mpanr1 ) ABCZDEFGZEAHGZDAFGZIRSTJZUADBCEBCRUBUAKLMDEANOPQ $.

  $( A nonnegative extended real is greater than negative infinity.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  ge0nemnf $p |- ( ( A e. RR* /\ 0 <_ A ) -> A =/= -oo ) $=
    ( cxr wcel cc0 cle wbr wa cmnf clt wne ge0gtmnf wn wb ngtmnft adantr biimpd
    wceq necon2ad mpd ) ABCZDAEFZGZHAIFZAHJAKUBUCAHUBAHQZUCLZTUDUEMUAANOPRS $.

  $( A nonnegative extended real that is less than a real bound is real.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xrrege0 $p |- ( ( ( A e. RR* /\ B e. RR ) /\ ( 0 <_ A /\ A <_ B ) ) ->
              A e. RR ) $=
    ( cxr wcel cr cc0 cle wbr cmnf clt ge0gtmnf ad2ant2r simprr jca xrre syldan
    wa ) ACDZBEDZQZFAGHZABGHZQZIAJHZUBQAEDTUCQUDUBRUAUDSUBAKLTUAUBMNABOP $.

  ${
    $d k M $.  $d k N $.
    $( There exists an integer greater than or equal to any two others.
       (Contributed by NM, 28-Aug-2005.) $)
    z2ge $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                E. k e. ZZ ( M <_ k /\ N <_ k ) ) $=
      ( cz wcel wa cle wbr cv wrex simplr simpr zred leidd breq2 anbi12d rspcev
      wceq syl12anc simpll zletric mpjaodan ) BDEZCDEZFZBCGHZBAIZGHZCUGGHZFZADJ
      ZCBGHZUEUFFZUDUFCCGHZUKUCUDUFKZUEUFLUMCUMCUOMNUJUFUNFACDUGCRUHUFUIUNUGCBG
      OUGCCGOPQSUEULFZUCBBGHZULUKUCUDULTZUPBUPBURMNUEULLUJUQULFABDUGBRUHUQUIULU
      GBBGOUGBCGOPQSBCUAUB $.
  $}

  $( Equality of two extended numbers with ` -e ` in front of them.
     (Contributed by FL, 26-Dec-2011.)  (Proof shortened by Mario Carneiro,
     20-Aug-2015.) $)
  xnegeq $p |- ( A = B -> -e A = -e B ) $=
    ( wceq cpnf cmnf cneg cif cxne eqeq1 negeq ifbieq2d df-xneg 3eqtr4g ) ABCZA
    DCZEAECZDAFZGZGBDCZEBECZDBFZGZGAHBHNOSRUBEABDINPTQUADABEIABJKKALBLM $.

  $( Minus ` +oo ` .  Remark of [BourbakiTop1] p.  IV.15.  (Contributed by FL,
     26-Dec-2011.) $)
  xnegpnf $p |- -e +oo = -oo $=
    ( cpnf cxne wceq cmnf cneg cif df-xneg eqid iftruei eqtri ) ABAACZDADCAAEFZ
    FDAGKDLAHIJ $.

  $( Minus ` -oo ` .  Remark of [BourbakiTop1] p.  IV.15.  (Contributed by FL,
     26-Dec-2011.)  (Revised by Mario Carneiro, 20-Aug-2015.) $)
  xnegmnf $p |- -e -oo = +oo $=
    ( cmnf cxne cpnf wceq cneg cif df-xneg wne mnfnepnf ifnefalse ax-mp iftruei
    eqid 3eqtri ) ABACDAAADZCAEZFZFZQCAGACHRQDIACAQJKOCPAMLN $.

  $( Minus a real number.  Remark [BourbakiTop1] p.  IV.15.  (Contributed by
     FL, 26-Dec-2011.)  (Proof shortened by Mario Carneiro, 20-Aug-2015.) $)
  rexneg $p |- ( A e. RR -> -e A = -u A ) $=
    ( cr wcel cxne cpnf wceq cmnf cif df-xneg wne renepnf ifnefalse syl renemnf
    cneg eqtrd syl5eq ) ABCZADAEFGAGFEAOZHZHZSAIRUATSRAEJUATFAKAEGTLMRAGJTSFANA
    GESLMPQ $.

  $( The negative of zero.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xneg0 $p |- -e 0 = 0 $=
    ( cc0 cxne cneg cr wcel wceq 0re rexneg ax-mp neg0 eqtri ) ABZACZAADELMFGAH
    IJK $.

  $( Closure of extended real negative.  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnegcl $p |- ( A e. RR* -> -e A e. RR* ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o cxne elxr cneg rexneg renegcl rexrd xnegeq
    eqeltrd xnegpnf mnfxr eqeltri syl6eqel xnegmnf pnfxr 3jaoi sylbi ) ABCADCZA
    EFZAGFZHAIZBCZAJUEUIUFUGUEUHUEUHAKDALAMPNUFUHEIZBAEOUJGBQRSTUGUHGIZBAGOUKEB
    UAUBSTUCUD $.

  $( Extended real version of ~ negneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnegneg $p |- ( A e. RR* -> -e -e A = A ) $=
    ( cxr wcel cpnf wceq cmnf w3o cxne elxr cneg rexneg renegcl xnegmnf xnegpnf
    cr xnegeq syl syl6eq id 3eqtr4a recn negnegd 3eqtrd 3jaoi sylbi ) ABCAOCZAD
    EZAFEZGAHZHZAEZAIUFUKUGUHUFUJAJZHZULJZAUFUIULEUJUMEAKUIULPQUFULOCUMUNEALULK
    QUFAAUAUBUCUGFHZDUJAMUGUIFEUJUOEUGUIDHZFADPNRUIFPQUGSTUHUPFUJANUHUIDEUJUPEU
    HUIUODAFPMRUIDPQUHSTUDUE $.

  $( Extended real version of ~ neg11 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xneg11 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( -e A = -e B <-> A = B ) ) $=
    ( cxr wcel wa cxne wceq xnegeq xnegneg eqeqan12d syl5ib impbid1 ) ACDZBCDZE
    ZAFZBFZGZABGZRPFZQFZGOSPQHMNTAUABAIBIJKABHL $.

  $( Forward direction of ~ xltneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xltnegi $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> -e B < -e A ) $=
    ( cxr wcel clt wbr cxne cr cpnf wceq cmnf w3o wa wi elxr cneg syl adantr wn
    sylbid rexneg breqan12rd bitr4d biimpd xnegeq xnegpnf syl6eq adantl renegcl
    ltneg eqeltrd mnflt eqbrtrd a1d simpr breq2d nltmnf pm2.21d 3jaodan sylan2b
    rexr expimpd simpl breq1d pnfnlt breq1 anbi2d ltpnf mnfltpnf syl6eqbr breq2
    mnfxr ax-mp pm2.21i syl6bi imp 3jaoian sylanb xnegmnf syl5ibr 3jaoi 3impib
    sylbi ) ACDZBCDZABEFZBGZAGZEFZWDAHDZAIJZAKJZLWEWFMZWINZAOWJWNWKWLWJWEWFWIWE
    WJBHDZBIJZBKJZLZWFWINZBOZWJWOWSWPWQWJWOMZWFWIXAWFBPZAPZEFWIABUJWOWJWGXBWHXC
    EBUAZAUAZUBUCUDWJWPMZWIWFXFWGKWHEWPWGKJZWJWPWGIGKBIUEUFUGZUHWJKWHEFZWPWJWHH
    DXIWJWHXCHXEAUIUKWHULQRUMUNWJWQMZWFAKEFZWIXJBKAEWJWQUOUPXJXKWIWJXKSZWQWJWDX
    LAVAAUQQRURTUSUTVBWKWEWFWIWKWEMZWFIBEFZWIXMAIBEWKWEVCVDXMXNWIWEXNSWKBVEUHUR
    TVBWLWMWEKBEFZMZWIWLWFXOWEAKBEVFVGXPWIWLWGIEFZWEWRXOXQWTWOXOXQWPWQWOXOMWGHD
    ZXQWOXRXOWOWGXBHXDBUIUKRWGVHQWPXOMWGKIEWPXGXOXHRVIVJWQXOXQWQXOKKEFZXQBKKEVK
    XSXQKCDXSSVLKUQVMVNVOVPVQVRWLWHIWGEWLWHKGIAKUEVSUGUPVTTWAWCWB $.

  $( Extended real version of ~ ltneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xltneg $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B <-> -e B < -e A ) ) $=
    ( cxr wcel wa clt xltnegi 3expia wi xnegcl syl2anr xnegneg breqan12d sylibd
    wbr cxne impbid ) ACDZBCDZEZABFOZBPZAPZFOZRSUAUDABGHTUDUCPZUBPZFOZUASUBCDZU
    CCDZUDUGIRBJAJUHUIUDUGUBUCGHKRSUEAUFBFALBLMNQ $.

  $( Extended real version of ~ leneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xleneg $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A <_ B <-> -e B <_ -e A ) ) $=
    ( cxr wcel wa clt wbr wn cle wb xltneg ancoms notbid xrlenlt xnegcl syl2anr
    cxne 3bitr4d ) ACDZBCDZEZBAFGZHAQZBQZFGZHZABIGUDUCIGZUAUBUETSUBUEJBAKLMABNT
    UDCDUCCDUGUFJSBOAOUDUCNPR $.

  $( Extended real version of ~ lt0neg1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xlt0neg1 $p |- ( A e. RR* -> ( A < 0 <-> 0 < -e A ) ) $=
    ( cxr wcel cc0 clt wbr cxne wb 0xr xltneg mpan2 xneg0 breq1i syl6bb ) ABCZA
    DEFZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Extended real version of ~ lt0neg2 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xlt0neg2 $p |- ( A e. RR* -> ( 0 < A <-> -e A < 0 ) ) $=
    ( cxr wcel cc0 clt wbr cxne wb 0xr xltneg mpan xneg0 breq2i syl6bb ) ABCZDA
    EFZAGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  $( Extended real version of ~ le0neg1 .  (Contributed by Mario Carneiro,
     9-Sep-2015.) $)
  xle0neg1 $p |- ( A e. RR* -> ( A <_ 0 <-> 0 <_ -e A ) ) $=
    ( cxr wcel cc0 cle wbr cxne wb 0xr xleneg mpan2 xneg0 breq1i syl6bb ) ABCZA
    DEFZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Extended real version of ~ le0neg2 .  (Contributed by Mario Carneiro,
     9-Sep-2015.) $)
  xle0neg2 $p |- ( A e. RR* -> ( 0 <_ A <-> -e A <_ 0 ) ) $=
    ( cxr wcel cc0 cle wbr cxne wb 0xr xleneg mpan xneg0 breq2i syl6bb ) ABCZDA
    EFZAGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  ${
    xnegcld.1 $e |- ( ph -> A e. RR* ) $.
    $( Closure of extended real negative.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    xnegcld $p |- ( ph -> -e A e. RR* ) $=
      ( cxr wcel cxne xnegcl syl ) ABDEBFDECBGH $.
  $}

  $( The set of extended reals exists.  (Contributed by NM, 24-Dec-2006.) $)
  xrex $p |- RR* e. _V $=
    ( cxr cr cpnf cmnf cpr cun cvv df-xr reex wcel pnfxr mnfxr prexg mp2an unex
    eqeltri ) ABCDEZFGHBQICAJDAJQGJKLCDAAMNOP $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Real number intervals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c (,) $.
  $c (,] $.
  $c [,) $.
  $c [,] $.

  $( Extend class notation with the set of open intervals of extended reals. $)
  cioo $a class (,) $.

  $( Extend class notation with the set of open-below, closed-above intervals
     of extended reals. $)
  cioc $a class (,] $.

  $( Extend class notation with the set of closed-below, open-above intervals
     of extended reals. $)
  cico $a class [,) $.

  $( Extend class notation with the set of closed intervals of extended
     reals. $)
  cicc $a class [,] $.

  ${
    $d x y z $.
    $( Define the set of open intervals of extended reals.  (Contributed by NM,
       24-Dec-2006.) $)
    df-ioo $a |- (,) = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x < z /\ z < y ) } ) $.

    $( Define the set of open-below, closed-above intervals of extended reals.
       (Contributed by NM, 24-Dec-2006.) $)
    df-ioc $a |- (,] = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x < z /\ z <_ y ) } ) $.

    $( Define the set of closed-below, open-above intervals of extended reals.
       (Contributed by NM, 24-Dec-2006.) $)
    df-ico $a |- [,) = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x <_ z /\ z < y ) } ) $.

    $( Define the set of closed intervals of extended reals.  (Contributed by
       NM, 24-Dec-2006.) $)
    df-icc $a |- [,] = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x <_ z /\ z <_ y ) } ) $.
  $}

  ${
    $d b w x y z A $.  $d w x y z C $.  $d w x y z D $.  $d b w O $.  $d w Q $.
    $d b w x y z B $.  $d b w P $.  $d x y z R $.  $d x y z S $.  $d x y z T $.
    $d x y z U $.  $d w V $.  $d w W $.  $d w X $.
    ixx.1 $e |- O = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x R z /\ z S y ) } ) $.
    $( Value of the interval function.  (Contributed by Mario Carneiro,
       3-Nov-2013.) $)
    ixxval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A O B ) =
                 { z e. RR* | ( A R z /\ z S B ) } ) $=
      ( cxr cv wbr wa crab wceq breq1 anbi1d rabbidv breq2 anbi2d rabex ovmpt2
      xrex ) ABDEJJAKZCKZFLZUEBKZGLZMZCJNDUEFLZUEEGLZMZCJNHUJUHMZCJNUDDOZUIUMCJ
      UNUFUJUHUDDUEFPQRUGEOZUMULCJUOUHUKUJUGEUEGSTRIULCJUCUAUB $.

    $( Membership in an interval of extended reals.  (Contributed by Mario
       Carneiro, 3-Nov-2013.) $)
    elixx1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A O B ) <->
                 ( C e. RR* /\ A R C /\ C S B ) ) ) $=
      ( cxr wcel wa co cv wbr crab w3a ixxval eleq2d breq2 breq1 anbi12d 3anass
      wceq elrab bitr4i syl6bb ) DKLEKLMZFDEINZLFDCOZGPZUKEHPZMZCKQZLZFKLZDFGPZ
      FEHPZRZUIUJUOFABCDEGHIJSTUPUQURUSMZMUTUNVACFKUKFUEULURUMUSUKFDGUAUKFEHUBU
      CUFUQURUSUDUGUH $.

    $( The set of intervals of extended reals maps to subsets of extended
       reals.  (Contributed by FL, 14-Jun-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.) $)
    ixxf $p |- O : ( RR* X. RR* ) --> ~P RR* $=
      ( cv wbr wa cxr crab cpw wcel wral cxp wf wss ssrab2 xrex elpw2 rgen2w
      mpbir fmpt2 mpbi ) AHCHZDIUFBHEIJZCKLZKMZNZBKOAKOKKPUIFQUJABKKUJUHKRUGCKS
      UHKTUAUCUBABKKUHUIFGUDUE $.

    $( The set of intervals of extended reals exists.  (Contributed by Mario
       Carneiro, 3-Nov-2013.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    ixxex $p |- O e. _V $=
      ( cxr cxp cpw xrex xpex pwex wf wss ixxf fssxp ax-mp ssexi ) FHHIZHJZIZTU
      AHHKKLHKMLTUAFNFUBOABCDEFGPTUAFQRS $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z A $.  $d x y z B $.  $d x y z C $.
    ixxssxr.1 $e |- O = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x R z /\ z S y ) } ) $.
    ${
      $d x y z O $.
      $( The set of intervals of extended reals maps to subsets of extended
         reals.  (Contributed by Mario Carneiro, 4-Jul-2014.) $)
      ixxssxr $p |- ( A O B ) C_ RR* $=
        ( co cxr wcel wa cv wbr crab elmpt2cl cpw ixxf fovcl elpwid sseld mpcom
        ssriv ) ADEHJZKDKLEKLMZANZUELUGKLABKKUGCNZFOUHBNGOMCKPDEHUGIQUFUEKUGUFU
        EKDEKRKKHABCFGHISTUAUBUCUD $.
    $}

    $( Membership in a set of open intervals of extended reals.  We use the
       fact that an operation's value is empty outside of its domain to show
       ` A e. RR* ` and ` B e. RR* ` .  (Contributed by Mario Carneiro,
       3-Nov-2013.) $)
    elixx3g $p |- ( C e. ( A O B ) <->
          ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ ( A R C /\ C S B ) ) ) $=
      ( cxr wcel wa wbr w3a co anass df-3an anbi1i cv crab elixx1 3anass syl6bb
      elmpt2cl biadan2 3bitr4ri ) DKLZEKLZMZFKLZMZDFGNZFEHNZMZMUJUKUOMZMUHUIUKO
      ZUOMFDEIPLZUJUKUOQUQULUOUHUIUKRSURUJUPABKKATCTZGNUSBTHNMCKUADEIFJUEUJURUK
      UMUNOUPABCDEFGHIJUBUKUMUNUCUDUFUG $.
  $}

  ${
    $d b w x y z A $.  $d w x y z C $.  $d w x y z D $.  $d b w x O $.
    $d w Q $.  $d b w x y z B $.  $d b w P $.  $d x y z R $.  $d x y z S $.
    $d x y z T $.  $d x y z U $.  $d w V $.  $d w W $.  $d w X $.
    ixxssixx.1 $e |- O = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x R z /\ z S y ) } ) $.
    ${
      ixx.2 $e |- P = ( x e. RR* , y e. RR* |->
                       { z e. RR* | ( x T z /\ z U y ) } ) $.
      ixx.3 $e |- ( ( A e. RR* /\ w e. RR* ) -> ( A R w -> A T w ) ) $.
      ixx.4 $e |- ( ( w e. RR* /\ B e. RR* ) -> ( w S B -> w U B ) ) $.
      $( An interval is a subset of its closure.  (Contributed by Paul Chapman,
         18-Oct-2007.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
      ixxssixx $p |- ( A O B ) C_ ( A P B ) $=
        ( cxr wcel wa wbr co cv crab elmpt2cl w3a wi simp1 simpl 3simpa expimpd
        a1i syl2im simpr 3simpb ancoms 3jcad elixx1 3imtr4d mpcom ssriv ) DEFLU
        AZEFGUAZEQRZFQRZSZDUBZVARZVFVBRZABQQAUBCUBZHTVIBUBITSCQUCEFLVFMUDVEVFQR
        ZEVFHTZVFFITZUEZVJEVFJTZVFFKTZUEVGVHVEVMVJVNVOVMVJUFVEVJVKVLUGUKVEVCVMV
        JVKSVNVCVDUHVJVKVLUIVCVJVKVNOUJULVEVDVMVJVLSVOVCVDUMVJVKVLUNVDVJVLVOVJV
        DVLVOUFPUOUJULUPABCEFVFHILMUQABCEFVFJKGNUQURUSUT $.
    $}

    ${
      ixxun.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x T z /\ z U y ) } ) $.
      ixxun.3 $e |- ( ( B e. RR* /\ w e. RR* ) -> ( B T w <-> -. w S B ) ) $.
      $( Split an interval into disjoint pieces.  (Contributed by Mario
         Carneiro, 16-Jun-2014.) $)
      ixxdisj $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
                      ( ( A O B ) i^i ( B P C ) ) = (/) ) $=
        ( cxr wcel c0 wbr w3a co cin wss wceq elin elixx1 3adant3 biimpa simp3d
        cv wa wb adantrr wn 3adant1 simp2d simpl2 simp1d syl2anc mpbid pm2.65da
        adantrl pm2.21d syl5bi ssrdv ss0 syl ) EQRZFQRZGQRZUAZEFMUBZFGHUBZUCZSU
        DVOSUEVLDVOSDUKZVORVPVMRZVPVNRZULZVLVPSRZVPVMVNUFVLVSVTVLVSVPFJTZVLVQWA
        VRVLVQULVPQRZEVPITZWAVLVQWBWCWAUAZVIVJVQWDUMVKABCEFVPIJMNUGUHUIUJUNVLVR
        WAUOZVQVLVRULZFVPKTZWEWFWBWGVPGLTZVLVRWBWGWHUAZVJVKVRWIUMVIABCFGVPKLHOU
        GUPUIZUQWFVJWBWGWEUMVIVJVKVRURWFWBWGWHWJUSPUTVAVCVBVDVEVFVOVGVH $.
    $}

    ${
      ixxss1.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x T z /\ z S y ) } ) $.
      ixxss1.3 $e |- ( ( A e. RR* /\ B e. RR* /\ w e. RR* ) ->
                       ( ( A W B /\ B T w ) -> A R w ) ) $.
      $( Subset relationship for intervals of extended reals.  (Contributed by
         Mario Carneiro, 3-Nov-2013.)  (Revised by Mario Carneiro,
         28-Apr-2015.) $)
      ixxss1 $p |- ( ( A e. RR* /\ A W B ) ->
                   ( B P C ) C_ ( A O C ) ) $=
        ( cxr wcel wbr wa co cv w3a elixx3g simplbi adantl simp3d simplr simpld
        simprbi wi simpll simp1d syl3anc mp2and simprd wb simp2d elixx1 syl2anc
        mpbir3and ex ssrdv ) EQRZEFMSZTZDFGHUAZEGLUAZVFDUBZVGRZVIVHRZVFVJTZVKVI
        QRZEVIISZVIGJSZVLFQRZGQRZVMVJVPVQVMUCZVFVJVRFVIKSZVOTZABCFGVIKJHOUDZUEU
        FZUGZVLVEVSVNVDVEVJUHVLVSVOVJVTVFVJVRVTWAUJUFZUIVLVDVPVMVEVSTVNUKVDVEVJ
        ULZVLVPVQVMWBUMWCPUNUOVLVSVOWDUPVLVDVQVKVMVNVOUCUQWEVLVPVQVMWBURABCEGVI
        IJLNUSUTVAVBVC $.
    $}

    ${
      ixxss2.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x R z /\ z T y ) } ) $.
      ixxss2.3 $e |- ( ( w e. RR* /\ B e. RR* /\ C e. RR* ) ->
                       ( ( w T B /\ B W C ) -> w S C ) ) $.
      $( Subset relationship for intervals of extended reals.  (Contributed by
         Mario Carneiro, 3-Nov-2013.)  (Revised by Mario Carneiro,
         28-Apr-2015.) $)
      ixxss2 $p |- ( ( C e. RR* /\ B W C ) ->
                   ( A P B ) C_ ( A O C ) ) $=
        ( cxr wcel wbr wa co cv w3a elixx3g simplbi adantl simp3d simpld simprd
        simprbi simplr wi simp2d simpll syl3anc mp2and wb simp1d elixx1 syl2anc
        mpbir3and ex ssrdv ) GQRZFGMSZTZDEFHUAZEGLUAZVFDUBZVGRZVIVHRZVFVJTZVKVI
        QRZEVIISZVIGJSZVLEQRZFQRZVMVJVPVQVMUCZVFVJVRVNVIFKSZTZABCEFVIIKHOUDZUEU
        FZUGZVLVNVSVJVTVFVJVRVTWAUJUFZUHVLVSVEVOVLVNVSWDUIVDVEVJUKVLVMVQVDVSVET
        VOULWCVLVPVQVMWBUMVDVEVJUNZPUOUPVLVPVDVKVMVNVOUCUQVLVPVQVMWBURWEABCEGVI
        IJLNUSUTVAVBVC $.
    $}

    ${
      ixxss12.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x T z /\ z U y ) } ) $.
      ixxss12.3 $e |- ( ( A e. RR* /\ C e. RR* /\ w e. RR* ) ->
                        ( ( A W C /\ C T w ) -> A R w ) ) $.
      ixxss12.4 $e |- ( ( w e. RR* /\ D e. RR* /\ B e. RR* ) ->
                        ( ( w U D /\ D X B ) -> w S B ) ) $.
      $( Subset relationship for intervals of extended reals.  (Contributed by
         Mario Carneiro, 20-Feb-2015.)  (Revised by Mario Carneiro,
         28-Apr-2015.) $)
      ixxss12 $p |- ( ( ( A e. RR* /\ B e. RR* ) /\ ( A W C /\ D X B ) ) ->
        ( C P D ) C_ ( A O B ) ) $=
        ( cxr wa wbr co cv elixx3g simplbi adantl simp3d simplrl simprbi simpld
        wcel w3a wi simplll simp1d syl3anc mp2and simprd simplrr simp2d simpllr
        wb elixx1 ad2antrr mpbir3and ex ssrdv ) EUAUMZFUAUMZUBZEGOUCZHFPUCZUBZU
        BZDGHIUDZEFNUDZVPDUEZVQUMZVSVRUMZVPVTUBZWAVSUAUMZEVSJUCZVSFKUCZWBGUAUMZ
        HUAUMZWCVTWFWGWCUNZVPVTWHGVSLUCZVSHMUCZUBZABCGHVSLMIRUFZUGUHZUIZWBVMWIW
        DVLVMVNVTUJWBWIWJVTWKVPVTWHWKWLUKUHZULWBVJWFWCVMWIUBWDUOVJVKVOVTUPWBWFW
        GWCWMUQWNSURUSWBWJVNWEWBWIWJWOUTVLVMVNVTVAWBWCWGVKWJVNUBWEUOWNWBWFWGWCW
        MVBVJVKVOVTVCTURUSVLWAWCWDWEUNVDVOVTABCEFVSJKNQVEVFVGVHVI $.
    $}
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d x y z D $.
    $( The set of open intervals of extended reals exists.  (Contributed by NM,
       6-Feb-2007.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooex $p |- (,) e. _V $=
      ( vx vy vz clt cioo df-ioo ixxex ) ABCDDEABCFG $.

    $( Value of the open interval function.  (Contributed by NM, 24-Dec-2006.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,) B ) =
                 { x e. RR* | ( A < x /\ x < B ) } ) $=
      ( vy vz clt cioo df-ioo ixxval ) DEABCFFGDEAHI $.

    $( An open interval with identical lower and upper bounds is empty.
       (Contributed by Jim Kingdon, 29-Mar-2020.) $)
    iooidg $p |- ( A e. RR* -> ( A (,) A ) = (/) ) $=
      ( vx cxr wcel cioo co cv clt wa crab c0 wceq iooval anidms wral xrltnsym2
      wbr wn ralrimiva rabeq0 sylibr eqtrd ) ACDZAAEFZABGZHQUEAHQIZBCJZKUCUDUGL
      BAAMNUCUFRZBCOUGKLUCUHBCAUEPSUFBCTUAUB $.

    $( Membership in a set of open intervals of extended reals.  We use the
       fact that an operation's value is empty outside of its domain to show
       ` A e. RR* ` and ` B e. RR* ` .  (Contributed by NM, 24-Dec-2006.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elioo3g $p |- ( C e. ( A (,) B ) <->
          ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ ( A < C /\ C < B ) ) ) $=
      ( vx vy vz clt cioo df-ioo elixx3g ) DEFABCGGHDEFIJ $.

    $( Membership in an open interval of extended reals.  (Contributed by NM,
       24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elioo1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A (,) B ) <->
                 ( C e. RR* /\ A < C /\ C < B ) ) ) $=
      ( vx vy vz clt cioo df-ioo elixx1 ) DEFABCGGHDEFIJ $.

    $( A member of an open interval of reals is a real.  (Contributed by NM,
       17-Aug-2008.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elioore $p |- ( A e. ( B (,) C ) -> A e. RR ) $=
      ( cioo co wcel cxr w3a clt wbr wa cr elioo3g 3ancomb xrre2 sylanb sylbi )
      ABCDEFBGFZCGFZAGFZHZBAIJACIJKZKALFZBCAMUARTSHUBUCRSTNBACOPQ $.

    $( An open interval does not contain its left endpoint.  (Contributed by
       Jim Kingdon, 30-Mar-2020.) $)
    lbioog $p |- ( ( A e. RR* /\ B e. RR* ) -> -. A e. ( A (,) B ) ) $=
      ( cxr wcel wa cioo co clt wbr w3a xrltnr simp2 nsyl adantr elioo1 mtbird
      wn ) ACDZBCDZEAABFGDRAAHIZABHIZJZRUBQSRTUBAKRTUALMNABAOP $.

    $( An open interval does not contain its right endpoint.  (Contributed by
       Jim Kingdon, 30-Mar-2020.) $)
    ubioog $p |- ( ( A e. RR* /\ B e. RR* ) -> -. B e. ( A (,) B ) ) $=
      ( cxr wcel wa cioo co clt wbr w3a xrltnr simp3 nsyl adantl elioo1 mtbird
      wn ) ACDZBCDZEBABFGDSABHIZBBHIZJZSUBQRSUAUBBKSTUALMNABBOP $.

    $( Value of the open interval function.  (Contributed by NM, 6-Feb-2007.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooval2 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,) B ) =
                 { x e. RR | ( A < x /\ x < B ) } ) $=
      ( cxr wcel wa cioo co cv clt wbr crab cr iooval cin inrab2 ressxr sseqin2
      wceq wss mpbi rabeq ax-mp eqtri elioore ssriv syl6eqssr df-ss sylib eqtrd
      syl5reqr ) BDECDEFZBCGHZBAIZJKUNCJKFZADLZUOAMLZABCNZULUQUPMOZUPUSUOADMOZL
      ZUQUOADMPUTMSZVAUQSMDTVBQMDRUAUOAUTMUBUCUDULUPMTUSUPSULUPUMMURAUMMUNBCUEU
      FUGUPMUHUIUKUJ $.

    $( Subset relationship for open intervals of extended reals.  (Contributed
       by NM, 7-Feb-2007.)  (Revised by Mario Carneiro, 20-Feb-2015.) $)
    iooss1 $p |- ( ( A e. RR* /\ A <_ B ) ->
                 ( B (,) C ) C_ ( A (,) C ) ) $=
      ( vx vy vz vw cioo clt cle df-ioo cv xrlelttr ixxss1 ) DEFGABCHIIIHJDEFKZ
      OABGLMN $.

    $( Subset relationship for open intervals of extended reals.  (Contributed
       by NM, 7-Feb-2007.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooss2 $p |- ( ( C e. RR* /\ B <_ C ) ->
                 ( A (,) B ) C_ ( A (,) C ) ) $=
      ( vx vy vz vw cioo clt cle df-ioo cv xrltletr ixxss2 ) DEFGABCHIIIHJDEFKZ
      OGLBCMN $.

    $( Value of the open-below, closed-above interval function.  (Contributed
       by NM, 24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iocval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,] B ) =
                 { x e. RR* | ( A < x /\ x <_ B ) } ) $=
      ( vy vz clt cle cioc df-ioc ixxval ) DEABCFGHDEAIJ $.

    $( Value of the closed-below, open-above interval function.  (Contributed
       by NM, 24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    icoval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A [,) B ) =
                 { x e. RR* | ( A <_ x /\ x < B ) } ) $=
      ( vy vz cle clt cico df-ico ixxval ) DEABCFGHDEAIJ $.

    $( Value of the closed interval function.  (Contributed by NM,
       24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iccval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A [,] B ) =
                 { x e. RR* | ( A <_ x /\ x <_ B ) } ) $=
      ( vy vz cle cicc df-icc ixxval ) DEABCFFGDEAHI $.

    $( Membership in an open interval of extended reals.  (Contributed by NM,
       6-Feb-2007.) $)
    elioo2 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A (,) B ) <->
                 ( C e. RR /\ A < C /\ C < B ) ) ) $=
      ( vx cxr wcel wa cioo co cv clt wbr cr crab w3a iooval2 eleq2d wceq breq2
      breq1 anbi12d elrab 3anass bitr4i syl6bb ) AEFBEFGZCABHIZFCADJZKLZUHBKLZG
      ZDMNZFZCMFZACKLZCBKLZOZUFUGULCDABPQUMUNUOUPGZGUQUKURDCMUHCRUIUOUJUPUHCAKS
      UHCBKTUAUBUNUOUPUCUDUE $.

    $( Membership in an open-below, closed-above interval of extended reals.
       (Contributed by NM, 24-Dec-2006.)  (Revised by Mario Carneiro,
       3-Nov-2013.) $)
    elioc1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A (,] B ) <->
                 ( C e. RR* /\ A < C /\ C <_ B ) ) ) $=
      ( vx vy vz clt cle cioc df-ioc elixx1 ) DEFABCGHIDEFJK $.

    $( Membership in a closed-below, open-above interval of extended reals.
       (Contributed by NM, 24-Dec-2006.)  (Revised by Mario Carneiro,
       3-Nov-2013.) $)
    elico1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A [,) B ) <->
                 ( C e. RR* /\ A <_ C /\ C < B ) ) ) $=
      ( vx vy vz cle clt cico df-ico elixx1 ) DEFABCGHIDEFJK $.

    $( Membership in a closed interval of extended reals.  (Contributed by NM,
       24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elicc1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A [,] B ) <->
                 ( C e. RR* /\ A <_ C /\ C <_ B ) ) ) $=
      ( vx vy vz cle cicc df-icc elixx1 ) DEFABCGGHDEFIJ $.

    $( A closed interval with identical lower and upper bounds is a singleton.
       (Contributed by Jeff Hankins, 13-Jul-2009.) $)
    iccid $p |- ( A e. RR* -> ( A [,] A ) = { A } ) $=
      ( vx cxr wcel co csn cv cle wbr w3a wb wi wa clt wn xrlenlt ancoms sylbid
      cicc syl5ibrcom elicc1 anidms xrlttri3 biimprd expcomd com23 3impd eleq1a
      wceq ex xrleid breq2 breq1 3jcad impbid elsn syl6bbr bitrd eqrdv ) ACDZBA
      ASEZAFZUTBGZVADZVCCDZAVCHIZVCAHIZJZVCVBDZUTVDVHKAAVCUAUBUTVHVCAUIZVIUTVHV
      JUTVEVFVGVJUTVEVFVGVJLZLUTVEMZVFVCANIOZVKAVCPVLVGVMVJVLVGAVCNIOZVMVJLVEUT
      VGVNKVCAPQVLVMVNVJVEUTVMVNMZVJLVEUTMVJVOVCAUCUDQUERUFRUJUGUTVJVEVFVGACVCU
      HUTVFVJAAHIZAUKZVCAAHULTUTVGVJVPVQVCAAHUMTUNUOBAUPUQURUS $.

    $( An empty closed interval of extended reals.  (Contributed by Jim
       Kingdon, 30-Mar-2020.) $)
    icc0r $p |- ( ( A e. RR* /\ B e. RR* ) ->
        ( B < A -> ( A [,] B ) = (/) ) ) $=
      ( vx cxr wcel wa clt wbr cv cle wrex wn cicc co c0 wi xrletr 3com23 3expa
      wceq rexlimdva xrlenlt sylibd con2d crab iccval eqeq1d wral rabeq0 ralnex
      bitri syl6bb sylibrd ) ADEZBDEZFZBAGHZACIZJHURBJHFZCDKZLZABMNZOTZUPUTUQUP
      UTABJHZUQLUPUSVDCDUNUOURDEZUSVDPZUNVEUOVFAURBQRSUAABUBUCUDUPVCUSCDUEZOTZV
      AUPVBVGOCABUFUGVHUSLCDUHVAUSCDUIUSCDUJUKULUM $.
  $}

  ${
    $d x y z $.
    $( An inhabited open interval spans an interval of extended reals.
       (Contributed by NM, 17-Aug-2008.) $)
    eliooxr $p |- ( A e. ( B (,) C ) -> ( B e. RR* /\ C e. RR* ) ) $=
      ( vx vy vz cxr cv clt wbr wa crab cioo df-ioo elmpt2cl ) DEGGDHFHZIJPEHIJ
      KFGLBCMADEFNO $.
  $}

  $( Ordering implied by a member of an open interval of reals.  (Contributed
     by NM, 17-Aug-2008.)  (Revised by Mario Carneiro, 9-May-2014.) $)
  eliooord $p |- ( A e. ( B (,) C ) -> ( B < A /\ A < C ) ) $=
    ( cioo co wcel cr clt wbr w3a wa cxr wb eliooxr elioo2 syl ibi 3simpc ) ABC
    DEFZAGFZBAHIZACHIZJZUAUBKSUCSBLFCLFKSUCMABCNBCAOPQTUAUBRP $.

  $( The upper bound belongs to an open-below, closed-above interval.  See
     ~ ubicc2 .  (Contributed by FL, 29-May-2014.) $)
  ubioc1 $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> B e. ( A (,] B ) ) $=
    ( cxr wcel clt wbr w3a co cle simp2 simp3 xrleid 3ad2ant2 wb elioc1 3adant3
    cioc mpbir3and ) ACDZBCDZABEFZGBABQHDZTUABBIFZSTUAJSTUAKTSUCUABLMSTUBTUAUCG
    NUAABBOPR $.

  $( The lower bound belongs to a closed-below, open-above interval.  See
     ~ lbicc2 .  (Contributed by FL, 29-May-2014.) $)
  lbico1 $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> A e. ( A [,) B ) ) $=
    ( cxr wcel clt wbr w3a co cle simp1 xrleid 3ad2ant1 simp3 wb elico1 3adant3
    cico mpbir3and ) ACDZBCDZABEFZGAABQHDZSAAIFZUASTUAJSTUCUAAKLSTUAMSTUBSUCUAG
    NUAABAOPR $.

  $( An element of a closed interval is less than or equal to its upper bound.
     (Contributed by Jeff Hankins, 14-Jul-2009.) $)
  iccleub $p |- ( ( A e. RR* /\ B e. RR* /\ C e. ( A [,] B ) ) -> C <_ B ) $=
    ( cxr wcel cicc co cle wbr wa w3a elicc1 simp3 syl6bi 3impia ) ADEZBDEZCABF
    GEZCBHIZPQJRCDEZACHIZSKSABCLTUASMNO $.

  $( An element of a closed interval is more than or equal to its lower bound
     (Contributed by Thierry Arnoux, 23-Dec-2016.) $)
  iccgelb $p |- ( ( A e. RR* /\ B e. RR* /\ C e. ( A [,] B ) ) -> A <_ C ) $=
    ( cxr wcel cicc co cle wbr wa w3a elicc1 biimpa simp2d 3impa ) ADEZBDEZCABF
    GEZACHIZPQJZRJCDEZSCBHIZTRUASUBKABCLMNO $.

  $( TODO - see if this shortens the uses of any other
     elioo*'s $)
  $( Membership in an open interval of extended reals.  (Contributed by NM,
     17-Aug-2008.) $)
  elioo5 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* )
           -> ( C e. ( A (,) B ) <-> ( A < C /\ C < B ) ) ) $=
    ( cxr wcel w3a co clt wbr wa wb elioo1 3adant3 3anass baibr 3ad2ant3 bitr4d
    cioo ) ADEZBDEZCDEZFCABRGEZUAACHIZCBHIZFZUCUDJZSTUBUEKUAABCLMUASUFUEKTUEUAU
    FUAUCUDNOPQ $.

  $( Membership in an open interval of extended reals.  (Contributed by NM,
     8-Jun-2007.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  elioo4g $p |- ( C e. ( A (,) B ) <->
        ( ( A e. RR* /\ B e. RR* /\ C e. RR ) /\ ( A < C /\ C < B ) ) ) $=
    ( cioo co wcel cxr cr w3a clt wbr wa eliooxr elioore df-3an sylibr eliooord
    jca rexr 3anim3i anim1i elioo3g impbii ) CABDEFZAGFZBGFZCHFZIZACJKCBJKLZLZU
    DUHUIUDUEUFLZUGLUHUDUKUGCABMCABNRUEUFUGOPCABQRUJUEUFCGFZIZUILUDUHUMUIUGULUE
    UFCSTUAABCUBPUC $.

  ${
    $d x A $.  $d x B $.
    $( An open interval is a set of reals.  (Contributed by NM,
       31-May-2007.) $)
    ioossre $p |- ( A (,) B ) C_ RR $=
      ( vx cioo co cr cv elioore ssriv ) CABDEFCGABHI $.
  $}

  ${
    $d v w x y z A $.  $d v x y z B $.  $d x y z C $.
    $( Membership in an open-below, closed-above real interval.  (Contributed
       by Paul Chapman, 30-Dec-2007.)  (Revised by Mario Carneiro,
       14-Jun-2014.) $)
    elioc2 $p |- ( ( A e. RR* /\ B e. RR ) ->
        ( C e. ( A (,] B ) <-> ( C e. RR /\ A < C /\ C <_ B ) ) ) $=
      ( cxr wcel cr wa cioc co clt wbr cle wb rexr cmnf cpnf xrlelttrd ad2antlr
      w3a a1i elioc1 sylan2 mnfxr simpll simpr1 mnfle simpr2 pnfxr simpr3 ltpnf
      ad2antrr xrrebnd syl mpbir2and 3jca ex 3anim1i impbid1 bitrd ) ADEZBFEZGZ
      CABHIEZCDEZACJKZCBLKZSZCFEZVEVFSZVAUTBDEZVCVGMBNZABCUAUBVBVGVIVBVGVIVBVGG
      ZVHVEVFVLVHOCJKZCPJKZVLOACODEVLUCTUTVAVGUDVBVDVEVFUEZUTOALKVAVGAUFUKVBVDV
      EVFUGZQVLCBPVOVAVJUTVGVKRPDEVLUHTVBVDVEVFUIZVABPJKUTVGBUJRQVLVDVHVMVNGMVO
      CULUMUNVPVQUOUPVHVDVEVFCNUQURUS $.

    $( Membership in a closed-below, open-above real interval.  (Contributed by
       Paul Chapman, 21-Jan-2008.)  (Revised by Mario Carneiro,
       14-Jun-2014.) $)
    elico2 $p |- ( ( A e. RR /\ B e. RR* ) ->
        ( C e. ( A [,) B ) <-> ( C e. RR /\ A <_ C /\ C < B ) ) ) $=
      ( cr wcel cxr wa cico co cle wbr clt wb rexr cmnf cpnf ad2antrr xrltletrd
      w3a a1i elico1 sylan mnfxr simpr1 mnflt simpr2 simplr pnfxr pnfge xrrebnd
      simpr3 ad2antlr syl mpbir2and 3jca ex 3anim1i impbid1 bitrd ) ADEZBFEZGZC
      ABHIEZCFEZACJKZCBLKZSZCDEZVEVFSZUTAFEZVAVCVGMANZABCUAUBVBVGVIVBVGVIVBVGGZ
      VHVEVFVLVHOCLKZCPLKZVLOACOFEVLUCTUTVJVAVGVKQVBVDVEVFUDZUTOALKVAVGAUEQVBVD
      VEVFUFZRVLCBPVOUTVAVGUGPFEVLUHTVBVDVEVFUKZVABPJKUTVGBUIULRVLVDVHVMVNGMVOC
      UJUMUNVPVQUOUPVHVDVEVFCNUQURUS $.

    $( Membership in a closed real interval.  (Contributed by Paul Chapman,
       21-Sep-2007.)  (Revised by Mario Carneiro, 14-Jun-2014.) $)
    elicc2 $p |- ( ( A e. RR /\ B e. RR ) -> ( C e. ( A [,] B ) <->
                      ( C e. RR /\ A <_ C /\ C <_ B ) ) ) $=
      ( cr wcel wa cicc co cxr cle wbr w3a rexr cmnf clt cpnf ad2antrr ad2antlr
      wb a1i elicc1 syl2an mnfxr simpr1 mnflt simpr2 xrltletrd simpr3 xrlelttrd
      pnfxr ltpnf xrrebnd syl mpbir2and 3jca ex 3anim1i impbid1 bitrd ) ADEZBDE
      ZFZCABGHEZCIEZACJKZCBJKZLZCDEZVEVFLZUTAIEZBIEZVCVGSVAAMZBMZABCUAUBVBVGVIV
      BVGVIVBVGFZVHVEVFVNVHNCOKZCPOKZVNNACNIEVNUCTUTVJVAVGVLQVBVDVEVFUDZUTNAOKV
      AVGAUEQVBVDVEVFUFZUGVNCBPVQVAVKUTVGVMRPIEVNUJTVBVDVEVFUHZVABPOKUTVGBUKRUI
      VNVDVHVOVPFSVQCULUMUNVRVSUOUPVHVDVEVFCMUQURUS $.
  $}

  ${
    elicc2i.1 $e |- A e. RR $.
    elicc2i.2 $e |- B e. RR $.
    $( Inference for membership in a closed interval.  (Contributed by Scott
       Fenton, 3-Jun-2013.) $)
    elicc2i $p |- ( C e. ( A [,] B ) <-> ( C e. RR /\ A <_ C /\ C <_ B ) ) $=
      ( cr wcel cicc co cle wbr w3a wb elicc2 mp2an ) AFGBFGCABHIGCFGACJKCBJKLM
      DEABCNO $.
  $}

  $( Membership in a closed real interval.  (Contributed by Stefan O'Rear,
     16-Nov-2014.)  (Proof shortened by Mario Carneiro, 1-Jan-2017.) $)
  elicc4 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
      ( C e. ( A [,] B ) <-> ( A <_ C /\ C <_ B ) ) ) $=
    ( cxr wcel cicc co cle wbr wa wb w3a elicc1 3anass syl6bb baibd 3impa ) ADE
    ZBDEZCDEZCABFGEZACHIZCBHIZJZKRSJZUATUDUEUATUBUCLTUDJABCMTUBUCNOPQ $.

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d w x y z D $.
    $( Condition for a closed interval to be a subset of another closed
       interval.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 20-Feb-2015.) $)
    iccss $p |- ( ( ( A e. RR /\ B e. RR ) /\
                    ( A <_ C /\ D <_ B ) ) -> ( C [,] D ) C_ ( A [,] B ) ) $=
      ( vx vy vz vw cr wcel wa cxr cle wbr cicc co wss rexr anim12i xrletr cv
      df-icc ixxss12 sylan ) AIJZBIJZKALJZBLJZKACMNDBMNKCDOPABOPQUEUGUFUHARBRSE
      FGHABCDOMMMMOMMEFGUBZUIACHUAZTUJDBTUCUD $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Mario Carneiro, 20-Feb-2015.) $)
    iccssioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A < C /\ D < B ) ) -> ( C [,] D ) C_ ( A (,) B ) ) $=
      ( vx vy vz vw cicc clt cle cioo df-ioo df-icc xrltletr xrlelttr ixxss12
      cv ) EFGHABCDIJJKKLJJEFGMEFGNACHRZOSDBPQ $.

    $( Condition for a closed-below, open-above interval to be a subset of a
       closed-below, open-above interval.  (Contributed by Thierry Arnoux,
       21-Sep-2017.) $)
    icossico $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D <_ B ) ) -> ( C [,) D ) C_ ( A [,) B ) ) $=
      ( vx vy vz vw cico cle clt df-ico cv xrletr xrltletr ixxss12 ) EFGHABCDIJ
      KJKIJJEFGLZQACHMZNRDBOP $.

    $( Condition for a closed interval to be a subset of another closed
       interval.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    iccss2 $p |- ( ( C e. ( A [,] B ) /\ D e. ( A [,] B ) ) ->
      ( C [,] D ) C_ ( A [,] B ) ) $=
      ( vx vy vz vw cicc co wcel cxr cle wbr w3a elixx3g adantr simprbi xrletr
      wa wss df-icc simplbi simp1d simp2d simpld simprd adantl ixxss12 syl22anc
      cv ) CABIJZKZDULKZTZALKZBLKZACMNZDBMNZCDIJULUAUOUPUQCLKZUMUPUQUTOZUNUMVAU
      RCBMNZTZEFGABCMMIEFGUBZPZUCQZUDUOUPUQUTVFUEUOURVBUMVCUNUMVAVCVERQUFUNUSUM
      UNADMNZUSUNUPUQDLKOVGUSTEFGABDMMIVDPRUGUHEFGHABCDIMMMMIMMVDVDACHUKZSVHDBS
      UIUJ $.

    $( Condition for a closed interval to be a subset of a half-open interval.
       (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    iccssico $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D < B ) ) -> ( C [,] D ) C_ ( A [,) B ) ) $=
      ( vx vy vz vw cicc cle clt cico df-ico df-icc cv xrletr xrlelttr ixxss12
      ) EFGHABCDIJKJJLJKEFGMEFGNACHOZPSDBQR $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Mario Carneiro, 20-Feb-2015.) $)
    iccssioo2 $p |- ( ( C e. ( A (,) B ) /\ D e. ( A (,) B ) ) ->
      ( C [,] D ) C_ ( A (,) B ) ) $=
      ( cioo co wcel cxr clt wbr cicc wss eliooxr adantr eliooord simpld adantl
      wa simprd iccssioo syl12anc ) CABEFZGZDUBGZRZAHGBHGRZACIJZDBIJZCDKFUBLUCU
      FUDCABMNUEUGCBIJZUCUGUIRUDCABONPUEADIJZUHUDUJUHRUCDABOQSABCDTUA $.

    $( Condition for a closed interval to be a subset of a closed-below,
       open-above interval.  (Contributed by Mario Carneiro, 20-Feb-2015.) $)
    iccssico2 $p |- ( ( C e. ( A [,) B ) /\ D e. ( A [,) B ) ) ->
      ( C [,] D ) C_ ( A [,) B ) ) $=
      ( vx vy vz cico co wcel wa cxr cle wbr clt cv adantr w3a elixx3g simprbi
      cicc wss crab df-ico elmpt2cl1 elmpt2cl2 simpld simprd iccssico syl22anc
      adantl ) CABHIZJZDULJZKALJZBLJZACMNZDBONZCDUAIULUBUMUOUNEFLLEPGPZMNUSFPON
      KGLUCZABHCEFGUDZUEQUMUPUNEFLLUTABHCVAUFQUMUQUNUMUQCBONZUMUOUPCLJRUQVBKEFG
      ABCMOHVASTUGQUNURUMUNADMNZURUNUOUPDLJRVCURKEFGABDMOHVASTUHUKABCDUIUJ $.
  $}

  $( The open interval from minus to plus infinity.  (Contributed by NM,
     6-Feb-2007.) $)
  ioomax $p |- ( -oo (,) +oo ) = RR $=
    ( vx cmnf cpnf cioo co cv clt wbr wa crab cxr wcel wceq mnfxr pnfxr iooval2
    cr mp2an rabid2 mnflt ltpnf jca mprgbir eqtr4i ) BCDEZBAFZGHZUFCGHZIZAQJZQB
    KLCKLUEUJMNOABCPRQUJMUIAQUIAQSUFQLUGUHUFTUFUAUBUCUD $.

  $( The closed interval from minus to plus infinity.  (Contributed by Mario
     Carneiro, 4-Jul-2014.) $)
  iccmax $p |- ( -oo [,] +oo ) = RR* $=
    ( vx cmnf cpnf cicc co cv cle wbr wa cxr crab wcel mnfxr pnfxr iccval mp2an
    wceq rabid2 mnfle pnfge jca mprgbir eqtr4i ) BCDEZBAFZGHZUECGHZIZAJKZJBJLCJ
    LUDUIQMNABCOPJUIQUHAJUHAJRUEJLUFUGUESUETUAUBUC $.

  $( The set of positive reals expressed as an open interval.  (Contributed by
     NM, 7-May-2007.) $)
  ioopos $p |- ( 0 (,) +oo ) = { x e. RR | 0 < x } $=
    ( cc0 cpnf cioo co cv clt wbr wa crab cxr wcel wceq 0xr pnfxr iooval2 mp2an
    cr ltpnf biantrud rabbiia eqtr4i ) BCDEZBAFZGHZUDCGHZIZARJZUEARJBKLCKLUCUHM
    NOABCPQUEUGARUDRLUFUEUDSTUAUB $.

  $( The set of positive reals expressed as an open interval.  (Contributed by
     Steve Rodriguez, 25-Nov-2007.) $)
  ioorp $p |- ( 0 (,) +oo ) = RR+ $=
    ( vx cc0 cpnf cioo co cv clt wbr cr crab crp ioopos df-rp eqtr4i ) BCDEBAFG
    HAIJKALAMN $.

  $( Shift the arguments of the open interval function.  (Contributed by NM,
     17-Aug-2008.) $)
  iooshf $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) )
     -> ( ( A - B ) e. ( C (,) D ) <-> A e. ( ( C + B ) (,) ( D + B ) ) ) ) $=
    ( cr wcel wa caddc co clt wbr cioo wb 3expa cxr readdcl rexrd rexr ad2antrl
    elioo5 ltaddsub 3com13 adantrr w3a ltsubadd bicomd adantrl anbi12d ad2ant2l
    cmin ad2ant2rl syl3anc ancoms ad2antll resubcl adantr 3bitr4rd ) AEFZBEFZGZ
    CEFZDEFZGZGZCBHIZAJKZADBHIZJKZGZCABUJIZJKZVJDJKZGZAVEVGLIFZVJCDLIFZVDVFVKVH
    VLUTVAVFVKMZVBURUSVAVPVAUSURVPCBAUAUBNUCUTVBVHVLMZVAURUSVBVQURUSVBUDVLVHABD
    UEUFNUGUHVCUTVNVIMZVCUTGVEOFZVGOFZAOFZVRVAUSVSVBURVAUSGVECBPQUKVBUSVTVAURVB
    USGVGDBPQUIURWAVCUSARSVEVGATULUMVDCOFZDOFZVJOFZVOVMMVAWBUTVBCRSVBWCUTVADRUN
    UTWDVCUTVJABUOQUPCDVJTULUQ $.

  ${
    $d v w x y z A $.  $d v w x y z B $.
    $( A closed-above interval with real upper bound is a set of reals.
       (Contributed by FL, 29-May-2014.) $)
    iocssre $p |- ( ( A e. RR* /\ B e. RR ) -> ( A (,] B ) C_ RR ) $=
      ( vx cxr wcel cr wa cioc co cv w3a clt wbr cle elioc2 simp1d 3expia ssrdv
      biimp3a ) ADEZBFEZGCABHIZFTUACJZUBEZUCFEZTUAUDKUEAUCLMZUCBNMZTUAUDUEUFUGK
      ABUCOSPQR $.

    $( A closed-below interval with real lower bound is a set of reals.
       (Contributed by Mario Carneiro, 14-Jun-2014.) $)
    icossre $p |- ( ( A e. RR /\ B e. RR* ) -> ( A [,) B ) C_ RR ) $=
      ( vx cr wcel cxr wa cico co cv w3a cle wbr clt elico2 simp1d 3expia ssrdv
      biimp3a ) ADEZBFEZGCABHIZDTUACJZUBEZUCDEZTUAUDKUEAUCLMZUCBNMZTUAUDUEUFUGK
      ABUCOSPQR $.

    $( A closed real interval is a set of reals.  (Contributed by FL,
       6-Jun-2007.)  (Proof shortened by Paul Chapman, 21-Jan-2008.) $)
    iccssre $p |- ( ( A e. RR /\ B e. RR ) -> ( A [,] B ) C_ RR ) $=
      ( vx cr wcel wa cicc co cv w3a cle wbr elicc2 biimp3a simp1d 3expia ssrdv
      ) ADEZBDEZFCABGHZDRSCIZTEZUADEZRSUBJUCAUAKLZUABKLZRSUBUCUDUEJABUAMNOPQ $.

    $( A closed interval is a set of extended reals.  (Contributed by FL,
       28-Jul-2008.)  (Revised by Mario Carneiro, 4-Jul-2014.) $)
    iccssxr $p |- ( A [,] B ) C_ RR* $=
      ( vx vy vz cle cicc df-icc ixxssxr ) CDEABFFGCDEHI $.

    $( An open-below, closed-above interval is a subset of the extended reals.
       (Contributed by FL, 29-May-2014.)  (Revised by Mario Carneiro,
       4-Jul-2014.) $)
    iocssxr $p |- ( A (,] B ) C_ RR* $=
      ( vx vy vz clt cle cioc df-ioc ixxssxr ) CDEABFGHCDEIJ $.

    $( A closed-below, open-above interval is a subset of the extended reals.
       (Contributed by FL, 29-May-2014.)  (Revised by Mario Carneiro,
       4-Jul-2014.) $)
    icossxr $p |- ( A [,) B ) C_ RR* $=
      ( vx vy vz cle clt cico df-ico ixxssxr ) CDEABFGHCDEIJ $.

    $( An open interval is a subset of its closure.  (Contributed by Paul
       Chapman, 18-Oct-2007.) $)
    ioossicc $p |- ( A (,) B ) C_ ( A [,] B ) $=
      ( vx vy vz vw cicc clt cle cioo df-ioo df-icc cv xrltle ixxssixx ) CDEFAB
      GHHIIJCDEKCDELAFMZNPBNO $.
  $}

  ${
    $d a b w x A $.  $d a b w x B $.  $d a b w x C $.  $d a b w x D $.
    $( A closed-below, open-above interval is a subset of its closure.
       (Contributed by Thierry Arnoux, 25-Oct-2016.) $)
    icossicc $p |- ( A [,) B ) C_ ( A [,] B ) $=
      ( va vb vx vw cicc cle clt cico df-ico df-icc cxr wcel cv wa wbr ixxssixx
      idd xrltle ) CDEFABGHIHHJCDEKCDELAMNFOZMNPAUAHQSUABTR $.

    $( A closed-above, open-below interval is a subset of its closure.
       (Contributed by Thierry Arnoux, 1-Apr-2017.) $)
    iocssicc $p |- ( A (,] B ) C_ ( A [,] B ) $=
      ( va vb vx vw cicc clt cle cioc df-ioc df-icc cv xrltle cxr wcel ixxssixx
      wa wbr idd ) CDEFABGHIIIJCDEKCDELAFMZNUAOPBOPRUABISTQ $.

    $( An open interval is a subset of its closure-below.  (Contributed by
       Thierry Arnoux, 3-Mar-2017.) $)
    ioossico $p |- ( A (,) B ) C_ ( A [,) B ) $=
      ( va vb vx vw cico clt cle cioo df-ioo df-ico cv xrltle cxr wcel ixxssixx
      wa wbr idd ) CDEFABGHHIHJCDEKCDELAFMZNUAOPBOPRUABHSTQ $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Thierry Arnoux, 29-Mar-2017.) $)
    iocssioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D < B ) ) -> ( C (,] D ) C_ ( A (,) B ) ) $=
      ( va vb vx vw cioc clt cle cioo df-ioo df-ioc cv xrlelttr ixxss12 ) EFGHA
      BCDIJJJKLKJEFGMEFGNACHOZPRDBPQ $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Thierry Arnoux, 29-Mar-2017.) $)
    icossioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A < C /\ D <_ B ) ) -> ( C [,) D ) C_ ( A (,) B ) ) $=
      ( va vb vx vw cico clt cle cioo df-ioo df-ico cv xrltletr ixxss12 ) EFGHA
      BCDIJJKJLJKEFGMEFGNACHOZPRDBPQ $.

    $( Condition for an open interval to be a subset of an open interval.
       (Contributed by Thierry Arnoux, 26-Sep-2017.) $)
    ioossioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D <_ B ) ) -> ( C (,) D ) C_ ( A (,) B ) ) $=
      ( va vb vx vw cioo clt cle df-ioo cv xrlelttr xrltletr ixxss12 ) EFGHABCD
      IJJJJIKKEFGLZQACHMZNRDBOP $.
  $}

  ${
    $d A y $.  $d B x y $.  $d S x y $.
    $( A nonempty subset of a closed real interval satisfies the conditions for
       the existence of its supremum.  To be useful without excluded middle,
       we'll probably need to change not equal to apart, and perhaps make other
       changes, but the theorem does hold as stated here.  (Contributed by Paul
       Chapman, 21-Jan-2008.) $)
    iccsupr $p |- ( ( ( A e. RR /\ B e. RR ) /\ S C_ ( A [,] B ) /\ C e. S ) ->
                   ( S C_ RR /\ S =/= (/) /\ E. x e. RR A. y e. S y <_ x ) ) $=
      ( cr wcel wa cicc co wss w3a c0 wne cv cle wbr wral 3adant3 iccssre sylan
      wrex sstr ancoms ne0i 3ad2ant3 simplr elicc2 biimpd sylan9r imp ralrimiva
      ssel simp3d wceq breq2 ralbidv rspcev syl2anc 3jca ) CGHZDGHZIZFCDJKZLZEF
      HZMFGLZFNOZBPZAPZQRZBFSZAGUCZVDVFVHVGVDVEGLZVFVHCDUAVFVOVHFVEGUDUEUBTVGVD
      VIVFFEUFUGVDVFVNVGVDVFIZVCVJDQRZBFSZVNVBVCVFUHVPVQBFVPVJFHZIVJGHZCVJQRZVQ
      VPVSVTWAVQMZVFVSVJVEHZVDWBFVEVJUNVDWCWBCDVJUIUJUKULUOUMVMVRADGVKDUPVLVQBF
      VKDVJQUQURUSUTTVA $.
  $}

  ${
    $d w x y z A $.  $d x B $.
    $( Membership in an unbounded interval of extended reals.  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    elioopnf $p |- ( A e. RR* ->
                     ( B e. ( A (,) +oo ) <-> ( B e. RR /\ A < B ) ) ) $=
      ( cxr wcel cpnf cioo co cr clt wbr w3a wa pnfxr elioo2 mpan2 df-3an ltpnf
      wb adantr pm4.71i bitr4i syl6bb ) ACDZBAEFGDZBHDZABIJZBEIJZKZUEUFLZUCECDU
      DUHRMAEBNOUHUIUGLUIUEUFUGPUIUGUEUGUFBQSTUAUB $.

    $( Membership in an unbounded interval of extended reals.  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    elioomnf $p |- ( A e. RR* ->
                     ( B e. ( -oo (,) A ) <-> ( B e. RR /\ B < A ) ) ) $=
      ( cxr wcel cmnf cioo co cr clt wbr w3a wa wb mnfxr elioo2 mpan an32 mnflt
      df-3an adantr pm4.71i 3bitr4i syl6bb ) ACDZBEAFGDZBHDZEBIJZBAIJZKZUFUHLZE
      CDUDUEUIMNEABOPUFUGLUHLUJUGLUIUJUFUGUHQUFUGUHSUJUGUFUGUHBRTUAUBUC $.

    $( Membership in a closed unbounded interval of reals.  (Contributed by
       Mario Carneiro, 16-Sep-2014.) $)
    elicopnf $p |- ( A e. RR ->
                     ( B e. ( A [,) +oo ) <-> ( B e. RR /\ A <_ B ) ) ) $=
      ( cr wcel cpnf cico co cle wbr clt w3a wa cxr wb pnfxr elico2 mpan2 ltpnf
      adantr pm4.71i df-3an bitr4i syl6bbr ) ACDZBAEFGDZBCDZABHIZBEJIZKZUFUGLZU
      DEMDUEUINOAEBPQUJUJUHLUIUJUHUFUHUGBRSTUFUGUHUAUBUC $.

    $( Two ways of saying that a real number is positive.  (Contributed by NM,
       7-May-2007.) $)
    repos $p |- ( A e. ( 0 (,) +oo ) <-> ( A e. RR /\ 0 < A ) ) $=
      ( vx cc0 cv clt wbr cr cpnf cioo co breq2 ioopos elrab2 ) CBDZEFCAEFBAGCH
      IJNACEKBLM $.

    $( The set of open intervals of extended reals maps to subsets of reals.
       (Contributed by NM, 7-Feb-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.) $)
    ioof $p |- (,) : ( RR* X. RR* ) --> ~P RR $=
      ( vx vz vy cv clt wbr wa cxr crab cr cpw wcel wral cxp cioo wf iooval cvv
      co vex wss ioossre cop df-ov iooex opex fvex eqeltri elpw mpbir syl6eqelr
      cfv rgen2a df-ioo fmpt2 mpbi ) ADZBDZEFURCDZEFGBHIZJKZLZCHMAHMHHNVAOPVBAC
      HUQHLUSHLGUTUQUSOSZVABUQUSQVCVALVCJUAUQUSUBVCJVCUQUSUCZOULRUQUSOUDVDORRUE
      UQUSATCTUFUGUHUIUJUKUMACHHUTVAOACBUNUOUP $.

    $( The set of closed intervals of extended reals maps to subsets of
       extended reals.  (Contributed by FL, 14-Jun-2007.)  (Revised by Mario
       Carneiro, 3-Nov-2013.) $)
    iccf $p |- [,] : ( RR* X. RR* ) --> ~P RR* $=
      ( vx vy vz cle cicc df-icc ixxf ) ABCDDEABCFG $.

    $( The union of the range of the open interval function.  (Contributed by
       NM, 7-May-2007.)  (Revised by Mario Carneiro, 30-Jan-2014.) $)
    unirnioo $p |- RR = U. ran (,) $=
      ( cr cioo crn cuni wcel wss cmnf cpnf co ioomax cxr cxp wfn wf ioof ax-mp
      cpw ffn mnfxr pnfxr fnovrn mp3an eqeltrri elssuni frn sspwuni mpbi eqssi
      ) ABCZDZAUIEAUJFGHBIZAUIJBKKLZMZGKEHKEUKUIEULAQZBNZUMOULUNBRPSTKKGHBUAUBU
      CAUIUDPUIUNFZUJAFUOUPOULUNBUEPUIAUFUGUH $.

    $( Alternate definition of the set of open intervals of extended reals.
       (Contributed by NM, 1-Mar-2007.)  (Revised by Mario Carneiro,
       1-Sep-2015.) $)
    dfioo2 $p |- (,) = ( x e. RR* , y e. RR* |->
                         { w e. RR | ( x < w /\ w < y ) } ) $=
      ( cioo cxr cv co cmpt2 clt wbr wa cr crab cxp cpw wf wfn wceq ioof ffn
      fnovim mp2b iooval2 mpt2eq3ia eqtri ) DABEEAFZBFZDGZHZABEEUFCFZIJUJUGIJKC
      LMZHEENZLOZDPDULQDUIRSULUMDTABEEDUAUBABEEUHUKCUFUGUCUDUE $.

    $( Open intervals are elements of the set of all open intervals.
       (Contributed by Jim Kingdon, 4-Apr-2020.) $)
    ioorebasg $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,) B ) e. ran (,) ) $=
      ( cioo cxr cxp wfn wcel co crn cr cpw wf ioof ffn ax-mp fnovrn mp3an1 ) C
      DDEZFZADGBDGABCHCIGRJKZCLSMRTCNODDABCPQ $.
  $}

  $( The predicate "is a nonnegative real".  (Contributed by Jeff Madsen,
     2-Sep-2009.)  (Proof shortened by Mario Carneiro, 18-Jun-2014.) $)
  elrege0 $p |- ( A e. ( 0 [,) +oo ) <-> ( A e. RR /\ 0 <_ A ) ) $=
    ( cc0 cr wcel cpnf cico co cle wbr wa wb 0re elicopnf ax-mp ) BCDABEFGDACDB
    AHIJKLBAMN $.

  $( Nonnegative real numbers are real numbers.  (Contributed by Thierry
     Arnoux, 9-Sep-2018.)  (Proof shortened by AV, 8-Sep-2019.) $)
  rge0ssre $p |- ( 0 [,) +oo ) C_ RR $=
    ( vx cc0 cpnf cico co cr cv wcel cle wbr elrege0 simplbi ssriv ) ABCDEZFAGZ
    NHOFHBOIJOKLM $.

  $( Elementhood in the set of nonnegative extended reals.  (Contributed by
     Mario Carneiro, 28-Jun-2014.) $)
  elxrge0 $p |- ( A e. ( 0 [,] +oo ) <-> ( A e. RR* /\ 0 <_ A ) ) $=
    ( cxr wcel cc0 cle wbr cpnf w3a wa cicc co df-3an wb 0xr pnfxr elicc1 mp2an
    pnfge adantr pm4.71i 3bitr4i ) ABCZDAEFZAGEFZHZUBUCIZUDIADGJKCZUFUBUCUDLDBC
    GBCUGUEMNODGAPQUFUDUBUDUCARSTUA $.

  $( 0 is a member of ` ( 0 [,) +oo ) ` (common case).  (Contributed by David
     A. Wheeler, 8-Dec-2018.) $)
  0e0icopnf $p |- 0 e. ( 0 [,) +oo ) $=
    ( cc0 cpnf cico co wcel cr cle wbr 0re 0le0 elrege0 mpbir2an ) AABCDEAFEAAG
    HIJAKL $.

  $( 0 is a member of ` ( 0 [,] +oo ) ` (common case).  (Contributed by David
     A. Wheeler, 8-Dec-2018.) $)
  0e0iccpnf $p |- 0 e. ( 0 [,] +oo ) $=
    ( cc0 cpnf cicc co wcel cxr cle wbr 0xr 0le0 elxrge0 mpbir2an ) AABCDEAFEAA
    GHIJAKL $.

  $( The nonnegative reals are closed under addition.  (Contributed by Mario
     Carneiro, 19-Jun-2014.) $)
  ge0addcl $p |- ( ( A e. ( 0 [,) +oo ) /\ B e. ( 0 [,) +oo ) ) ->
                   ( A + B ) e. ( 0 [,) +oo ) ) $=
    ( cc0 cpnf cico co wcel cr cle wbr wa caddc elrege0 readdcl ad2ant2r addge0
    an4s sylanbrc syl2anb ) ACDEFZGAHGZCAIJZKZBHGZCBIJZKZABLFZTGZBTGAMBMUCUFKUG
    HGZCUGIJZUHUAUDUIUBUEABNOUAUDUBUEUJABPQUGMRS $.

  $( The nonnegative reals are closed under multiplication.  (Contributed by
     Mario Carneiro, 19-Jun-2014.) $)
  ge0mulcl $p |- ( ( A e. ( 0 [,) +oo ) /\ B e. ( 0 [,) +oo ) ) ->
                   ( A x. B ) e. ( 0 [,) +oo ) ) $=
    ( cc0 cpnf cico co wcel cr cle wbr wa cmul elrege0 ad2ant2r mulge0 sylanbrc
    remulcl syl2anb ) ACDEFZGAHGZCAIJZKZBHGZCBIJZKZABLFZSGZBSGAMBMUBUEKUFHGZCUF
    IJUGTUCUHUAUDABQNABOUFMPR $.

  $( The lower bound of a closed interval is a member of it.  (Contributed by
     Paul Chapman, 26-Nov-2007.)  (Revised by FL, 29-May-2014.)  (Revised by
     Mario Carneiro, 9-Sep-2015.) $)
  lbicc2 $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) -> A e. ( A [,] B ) ) $=
    ( cxr wcel cle wbr w3a cicc co simp1 xrleid 3ad2ant1 simp3 elicc1 mpbir3and
    wb 3adant3 ) ACDZBCDZABEFZGAABHIDZRAAEFZTRSTJRSUBTAKLRSTMRSUARUBTGPTABANQO
    $.

  $( The upper bound of a closed interval is a member of it.  (Contributed by
     Paul Chapman, 26-Nov-2007.)  (Revised by FL, 29-May-2014.) $)
  ubicc2 $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) -> B e. ( A [,] B ) ) $=
    ( cxr wcel cle wbr w3a cicc co simp2 simp3 xrleid 3ad2ant2 elicc1 mpbir3and
    wb 3adant3 ) ACDZBCDZABEFZGBABHIDZSTBBEFZRSTJRSTKSRUBTBLMRSUASTUBGPTABBNQO
    $.

  $( Zero is an element of the closed unit.  (Contributed by Scott Fenton,
     11-Jun-2013.) $)
  0elunit $p |- 0 e. ( 0 [,] 1 ) $=
    ( cc0 c1 cicc co wcel cr cle wbr 0re 0le0 0le1 1re elicc2i mpbir3an ) AABCD
    EAFEAAGHABGHIJKABAILMN $.

  $( One is an element of the closed unit.  (Contributed by Scott Fenton,
     11-Jun-2013.) $)
  1elunit $p |- 1 e. ( 0 [,] 1 ) $=
    ( c1 cc0 cicc co wcel cr cle wbr 1re 0le1 1le1 0re elicc2i mpbir3an ) ABACD
    EAFEBAGHAAGHIJKBAALIMN $.

  $( Membership in a negated open real interval.  (Contributed by Paul Chapman,
     26-Nov-2007.) $)
  iooneg $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( C e. ( A (,) B ) <-> -u C e. ( -u B (,) -u A ) ) ) $=
    ( cr wcel w3a clt wbr wa cneg cioo co ltneg 3adant2 cxr rexr elioo5 renegcl
    wb syl3an ancoms 3adant1 anbi12d ancom syl6bb 3com12 3bitr4d ) ADEZBDEZCDEZ
    FZACGHZCBGHZIZBJZCJZGHZUPAJZGHZIZCABKLEZUPUOURKLEZUKUNUSUQIUTUKULUSUMUQUHUJ
    ULUSSUIACMNUIUJUMUQSZUHUJUIVCCBMUAUBUCUSUQUDUEUHAOEUIBOEUJCOEVAUNSAPBPCPABC
    QTUIUHUJVBUTSZUIUODEZUHURDEZUJUPDEZVDBRARCRVEUOOEVFUROEVGUPOEVDUOPURPUPPUOU
    RUPQTTUFUG $.

  $( Membership in a negated closed real interval.  (Contributed by Paul
     Chapman, 26-Nov-2007.) $)
  iccneg $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( C e. ( A [,] B ) <-> -u C e. ( -u B [,] -u A ) ) ) $=
    ( cr wcel w3a cle wbr wa cneg cicc co renegcl anbi12d elicc2 3adant3 3anass
    wb leneg syl6bb ax-1 impbid2 3ad2ant3 ancom 3adant1 3adant2 syl5bbr syl2anr
    ancoms 3bitr4d ) ADEZBDEZCDEZFZUMACGHZCBGHZIZIZCJZDEZBJZUSGHZUSAJZGHZIZIZCA
    BKLEZUSVAVCKLEZUNUMUTUQVEUMUKUMUTRULUMUMUTCMUMUTUAUBUCUQUPUOIUNVEUPUOUDUNUP
    VBUOVDULUMUPVBRZUKUMULVICBSUIUEUKUMUOVDRULACSUFNUGNUNVGUMUOUPFZURUKULVGVJRU
    MABCOPUMUOUPQTUNVHUTVBVDFZVFUKULVHVKRZUMULVADEVCDEVLUKBMAMVAVCUSOUHPUTVBVDQ
    TUJ $.

  $( A shifted real is a member of a shifted, closed-below, open-above real
     interval.  (Contributed by Paul Chapman, 25-Mar-2008.) $)
  icoshft $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) -> ( X e. ( A [,) B ) ->
                  ( X + C ) e. ( ( A + C ) [,) ( B + C ) ) ) ) $=
    ( cr wcel w3a cico co cle wbr clt wa caddc wi cxr wb rexr elico2 readdcl
    sylan2 biimpd 3adant3 3anass syl6ib leadd1 3com12 3expib 3adant2 imp ltadd1
    com12 3adant1 anbi12d pm5.32da expcom syl6ibr 3ad2ant3 biimprd syl2anc syld
    anim1d sylbid ) AEFZBEFZCEFZGZDABHIFZDEFZADJKZDBLKZMZMZDCNIZACNIZBCNIZHIFZV
    GVHVIVJVKGZVMVDVEVHVROVFVDVEMVHVRVEVDBPFVHVRQBRABDSUAUBUCVIVJVKUDUEVGVMVIVO
    VNJKZVNVPLKZMZMZVQVGVIVLWAVGVIMVJVSVKVTVGVIVJVSQZVDVFVIWCOVEVIVDVFMWCVIVDVF
    WCVDVIVFWCADCUFUGUHULUIUJVGVIVKVTQZVEVFVIWDOVDVIVEVFMWDVIVEVFWDDBCUKUHULUMU
    JUNUOVGWBVNEFZVSVTGZVQVFVDWBWFOVEVFWBWEWAMWFVFVIWEWAVIVFWEDCTUPVBWEVSVTUDUQ
    URVGVOEFZVPEFZWFVQOVDVFWGVEACTUIVEVFWHVDBCTUMWGWHMVQWFWHWGVPPFVQWFQVPRVOVPV
    NSUAUSUTVAVCVA $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d y F $.
    icoshftf1o.1 $e |- F = ( x e. ( A [,) B ) |-> ( x + C ) ) $.
    $( Shifting a closed-below, open-above interval is one-to-one onto.
       (Contributed by Paul Chapman, 25-Mar-2008.)  (Proof shortened by Mario
       Carneiro, 1-Sep-2015.) $)
    icoshftf1o $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
        F : ( A [,) B ) -1-1-onto-> ( ( A + C ) [,) ( B + C ) ) ) $=
      ( vy cr wcel cv caddc co cico wral wceq wreu icoshft cmin recnd negsubd
      wf1o ralrimiv wa cneg wi readdcl 3adant2 3adant1 renegcl 3ad2ant3 syl3anc
      w3a imp cxr rexrd icossre syl2anc sselda simpl3 simp3 simp1 eqtrd oveq12d
      wss pncand simp2 adantr 3eltr3d reueq sylib simpll3 simpl1 subadd2d eqcom
      simpl2 3bitr4g reubidva mpbid ralrimiva f1ompt sylanbrc ) BHIZCHIZDHIZULZ
      AJZDKLZBDKLZCDKLZMLZIZABCMLZNGJZWGOZAWLPZGWJNWLWJEUAWEWKAWLBCDWFQUBWEWOGW
      JWEWMWJIZUCZWFWMDRLZOZAWLPZWOWQWRWLIWTWQWMDUDZKLZWHXAKLZWIXAKLZMLZWRWLWEW
      PXBXEIZWEWHHIZWIHIZXAHIZWPXFUEWBWDXGWCBDUFUGZWCWDXHWBCDUFUHZWDWBXIWCDUIUJ
      WHWIXAWMQUKUMWQWMDWQWMWEWJHWMWEXGWIUNIWJHVDXJWEWIXKUOWHWIUPUQURZSWQDWBWCW
      DWPUSSTWEXEWLOWPWEXCBXDCMWEXCWHDRLBWEWHDWEWHXJSWEDWBWCWDUTSZTWEBDWEBWBWCW
      DVASXMVEVBWEXDWIDRLCWEWIDWEWIXKSXMTWECDWECWBWCWDVFSXMVEVBVCVGVHAWLWRVIVJW
      QWSWNAWLWQWFWLIZUCZWRWFOWGWMOWSWNXOWMDWFXOWMWQWMHIXNXLVGSXODWBWCWDWPXNVKS
      XOWFWQWLHWFWQWBCUNIWLHVDWBWCWDWPVLWQCWBWCWDWPVOUOBCUPUQURSVMWFWRVNWMWGVNV
      PVQVRVSAGWLWJWGEFVTWA $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d w x y z D $.
    $( End-to-end closed-below, open-above real intervals are disjoint.
       (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    icodisj $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
                    ( ( A [,) B ) i^i ( B [,) C ) ) = (/) ) $=
      ( vx cxr wcel w3a cico co cin c0 wss wceq wa clt wbr cle wb elico1 biimpa
      cv 3adant3 simp3d adantrr wn 3adant1 simp2d simpl2 simp1d xrlenlt syl2anc
      elin mpbid adantrl pm2.65da pm2.21d syl5bi ssrdv ss0 syl ) AEFZBEFZCEFZGZ
      ABHIZBCHIZJZKLVGKMVDDVGKDUAZVGFVHVEFZVHVFFZNZVDVHKFZVHVEVFULVDVKVLVDVKVHB
      OPZVDVIVMVJVDVINVHEFZAVHQPZVMVDVIVNVOVMGZVAVBVIVPRVCABVHSUBTUCUDVDVJVMUEZ
      VIVDVJNZBVHQPZVQVRVNVSVHCOPZVDVJVNVSVTGZVBVCVJWARVABCVHSUFTZUGVRVBVNVSVQR
      VAVBVCVJUHVRVNVSVTWBUIBVHUJUKUMUNUOUPUQURVGUSUT $.

    $( If the upper bound of one open interval is less than or equal to the
       lower bound of the other, the intervals are disjoint.  (Contributed by
       Jeff Hankins, 13-Jul-2009.) $)
    ioodisj $p |- ( ( ( ( A e. RR* /\ B e. RR* ) /\ ( C e. RR* /\ D e. RR* ) )
     /\ B <_ C ) -> ( ( A (,) B ) i^i ( C (,) D ) ) = (/) ) $=
      ( vx vy vz vw cxr wcel wa cle cioo co cin c0 wss wceq cicc syl wbr iooss1
      simpllr sylancom ioossicc syl6ss sslin simplll simplrr clt df-ioo xrlenlt
      df-icc cv ixxdisj syl3anc sseqtrd ss0 ) AIJZBIJZKZCIJZDIJZKZKZBCLUAZKZABM
      NZCDMNZOZPQVJPRVGVJVHBDSNZOZPVGVIVKQVJVLQVGVIBDMNZVKVEVFUTVIVMQUSUTVDVFUC
      ZBCDUBUDBDUEUFVIVKVHUGTVGUSUTVCVLPRUSUTVDVFUHVNVAVBVCVFUIEFGHABDSUJUJLLME
      FGUKEFGUMBHUNULUOUPUQVJURT $.

  $}

  ${
    iccshftr.1 $e |- ( A + R ) = C $.
    iccshftr.2 $e |- ( B + R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftr $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR ) )
                  -> ( X e. ( A [,] B ) <-> ( X + R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a caddc co cicc wb readdcl leadd1 simpl 2thd 3expb
      adantl adantlr breq1i syl6bb an12s adantll breq2i 3anbi123d elicc2 adantr
      syl5eqelr syl2an anandirs adantrl 3bitr4d ) AIJZBIJZKZFIJZEIJZKZKZVBAFLMZ
      FBLMZNZFEOPZIJZCVILMZVIDLMZNZFABQPJZVICDQPJZVEVBVJVFVKVGVLVDVBVJRVAVDVBVJ
      VBVCUAFESUBUDVEVFAEOPZVILMZVKUSVDVFVQRZUTUSVBVCVRAFETUCUEVPCVILGUFUGVEVGV
      IBEOPZLMZVLUTVDVGVTRZUSVBUTVCWAVBUTVCWAFBETUCUHUIVSDVILHUJUGUKVAVNVHRVDAB
      FULUMVAVCVOVMRZVBUSUTVCWBUSVCKZCIJDIJWBUTVCKZWCCVPIGAESUNWDDVSIHBESUNCDVI
      ULUOUPUQUR $.
  $}

  ${
    iccshftri.1 $e |- A e. RR $.
    iccshftri.2 $e |- B e. RR $.
    iccshftri.3 $e |- R e. RR $.
    iccshftri.4 $e |- ( A + R ) = C $.
    iccshftri.5 $e |- ( B + R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftri $p |- ( X e. ( A [,] B ) -> ( X + R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co caddc wss iccssre mp2an sseli wb iccshftr mpanl12 mpan2
      wa biimpd mpcom ) FLMZFABNOZMZFEPOCDNOMZUILFALMZBLMZUILQGHABRSTUHUJUKUHEL
      MZUJUKUAZIULUMUHUNUEUOGHABCDEFJKUBUCUDUFUG $.
  $}

  ${
    iccshftl.1 $e |- ( A - R ) = C $.
    iccshftl.2 $e |- ( B - R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftl $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR ) )
                  -> ( X e. ( A [,] B ) <-> ( X - R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a cmin co cicc wb resubcl lesub1 simpl 2thd adantl
      3expb adantlr breq1i syl6bb adantll breq2i 3anbi123d elicc2 adantr syl2an
      an12s syl5eqelr anandirs adantrl 3bitr4d ) AIJZBIJZKZFIJZEIJZKZKZVBAFLMZF
      BLMZNZFEOPZIJZCVILMZVIDLMZNZFABQPJZVICDQPJZVEVBVJVFVKVGVLVDVBVJRVAVDVBVJV
      BVCUAFESUBUCVEVFAEOPZVILMZVKUSVDVFVQRZUTUSVBVCVRAFETUDUEVPCVILGUFUGVEVGVI
      BEOPZLMZVLUTVDVGVTRZUSVBUTVCWAVBUTVCWAFBETUDUNUHVSDVILHUIUGUJVAVNVHRVDABF
      UKULVAVCVOVMRZVBUSUTVCWBUSVCKZCIJDIJWBUTVCKZWCCVPIGAESUOWDDVSIHBESUOCDVIU
      KUMUPUQUR $.
  $}

  ${
    iccshftli.1 $e |- A e. RR $.
    iccshftli.2 $e |- B e. RR $.
    iccshftli.3 $e |- R e. RR $.
    iccshftli.4 $e |- ( A - R ) = C $.
    iccshftli.5 $e |- ( B - R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftli $p |- ( X e. ( A [,] B ) -> ( X - R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co cmin wss iccssre mp2an sseli wb iccshftl mpanl12 biimpd
      wa mpan2 mpcom ) FLMZFABNOZMZFEPOCDNOMZUILFALMZBLMZUILQGHABRSTUHUJUKUHELM
      ZUJUKUAZIULUMUHUNUEUOGHABCDEFJKUBUCUFUDUG $.
  $}

  ${
    iccdil.1 $e |- ( A x. R ) = C $.
    iccdil.2 $e |- ( B x. R ) = D $.
    $( Membership in a dilated interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccdil $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR+ ) )
                  -> ( X e. ( A [,] B ) <-> ( X x. R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a cmul co cicc wb remulcl sylan2 simpl rpre adantl
      crp 2thd cc0 clt elrp lemul1 syl3an3b 3expb adantlr breq1i syl6bb adantll
      breq2i 3anbi123d elicc2 adantr syl5eqelr syl2an anandirs adantrl 3bitr4d
      an12s ) AIJZBIJZKZFIJZEUDJZKZKZVIAFLMZFBLMZNZFEOPZIJZCVPLMZVPDLMZNZFABQPJ
      ZVPCDQPJZVLVIVQVMVRVNVSVKVIVQRVHVKVIVQVIVJUAVJVIEIJZVQEUBZFESTUEUCVLVMAEO
      PZVPLMZVRVFVKVMWFRZVGVFVIVJWGVJVFVIWCUFEUGMKZWGEUHZAFEUIUJUKULWECVPLGUMUN
      VLVNVPBEOPZLMZVSVGVKVNWKRZVFVIVGVJWLVIVGVJWLVJVIVGWHWLWIFBEUIUJUKVEUOWJDV
      PLHUPUNUQVHWAVORVKABFURUSVHVJWBVTRZVIVJVHWCWMWDVFVGWCWMVFWCKZCIJDIJWMVGWC
      KZWNCWEIGAESUTWODWJIHBESUTCDVPURVAVBTVCVD $.
  $}

  ${
    iccdili.1 $e |- A e. RR $.
    iccdili.2 $e |- B e. RR $.
    iccdili.3 $e |- R e. RR+ $.
    iccdili.4 $e |- ( A x. R ) = C $.
    iccdili.5 $e |- ( B x. R ) = D $.
    $( Membership in a dilated interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccdili $p |- ( X e. ( A [,] B ) -> ( X x. R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co cmul wss iccssre mp2an sseli wb wa iccdil mpanl12 mpan2
      crp biimpd mpcom ) FLMZFABNOZMZFEPOCDNOMZUJLFALMZBLMZUJLQGHABRSTUIUKULUIE
      UFMZUKULUAZIUMUNUIUOUBUPGHABCDEFJKUCUDUEUGUH $.
  $}

  ${
    icccntr.1 $e |- ( A / R ) = C $.
    icccntr.2 $e |- ( B / R ) = D $.
    $( Membership in a contracted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    icccntr $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR+ ) )
                  -> ( X e. ( A [,] B ) <-> ( X / R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a cdiv co cicc wb rerpdivcl lediv1 crp 2thd adantl
      simpl cc0 clt elrp syl3an3b 3expb adantlr breq1i syl6bb adantll 3anbi123d
      an12s breq2i elicc2 adantr syl5eqelr syl2an anandirs adantrl 3bitr4d ) AI
      JZBIJZKZFIJZEUAJZKZKZVGAFLMZFBLMZNZFEOPZIJZCVNLMZVNDLMZNZFABQPJZVNCDQPJZV
      JVGVOVKVPVLVQVIVGVORVFVIVGVOVGVHUDFESUBUCVJVKAEOPZVNLMZVPVDVIVKWBRZVEVDVG
      VHWCVHVDVGEIJUEEUFMKZWCEUGZAFETUHUIUJWACVNLGUKULVJVLVNBEOPZLMZVQVEVIVLWGR
      ZVDVGVEVHWHVGVEVHWHVHVGVEWDWHWEFBETUHUIUOUMWFDVNLHUPULUNVFVSVMRVIABFUQURV
      FVHVTVRRZVGVDVEVHWIVDVHKZCIJDIJWIVEVHKZWJCWAIGAESUSWKDWFIHBESUSCDVNUQUTVA
      VBVC $.
  $}

  ${
    icccntri.1 $e |- A e. RR $.
    icccntri.2 $e |- B e. RR $.
    icccntri.3 $e |- R e. RR+ $.
    icccntri.4 $e |- ( A / R ) = C $.
    icccntri.5 $e |- ( B / R ) = D $.
    $( Membership in a contracted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    icccntri $p |- ( X e. ( A [,] B ) -> ( X / R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co cdiv wss iccssre mp2an sseli crp icccntr mpanl12 biimpd
      wb wa mpan2 mpcom ) FLMZFABNOZMZFEPOCDNOMZUJLFALMZBLMZUJLQGHABRSTUIUKULUI
      EUAMZUKULUEZIUMUNUIUOUFUPGHABCDEFJKUBUCUGUDUH $.
  $}

  $( A condition for a ratio to be a member of the closed unit.  (Contributed
     by Scott Fenton, 11-Jun-2013.) $)
  divelunit $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 < B ) ) ->
      ( ( A / B ) e. ( 0 [,] 1 ) <-> A <_ B ) ) $=
    ( cdiv co cc0 c1 cicc wcel cr cle wbr wa clt w3a 0re 1re elicc2i bitri cmul
    df-3an wb ledivmul mp3an2 simpll simprl cap gt0ap0 adantl redivclapd divge0
    adantlr jca biantrurd cc recn ad2antrl mulid1d breq2d 3bitr3d syl5bb ) ABCD
    ZEFGDHZVAIHZEVAJKZLZVAFJKZLZAIHZEAJKZLZBIHZEBMKZLZLZABJKZVBVCVDVFNVGEFVAOPQ
    VCVDVFTRVNVFABFSDZJKZVGVOVHVMVFVQUAZVIVHFIHVMVRPAFBUBUCUKVNVEVFVNVCVDVNABVH
    VIVMUDVJVKVLUEVMBEUFKVJBUGUHUIABUJULUMVNVPBAJVNBVKBUNHVJVLBUOUPUQURUSUT $.

  ${
    $( A linear combination of two reals which lies in the interval between
       them.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by
       Mario Carneiro, 8-Sep-2015.) $)
    lincmb01cmp $p |- ( ( ( A e. RR /\ B e. RR /\ A < B ) /\ T e. ( 0 [,] 1 ) )
                    -> ( ( ( 1 - T ) x. A ) + ( T x. B ) ) e. ( A [,] B ) ) $=
      ( cr wcel wbr cc0 c1 cicc co cmin cmul caddc 0re a1i 1re cle eqid recnd
      wb clt w3a simpr crp elicc2i simp1bi adantl difrp biimp3a adantr syl22anc
      wa iccdil simpl2 simpl1 resubcld mul02d mulid2d oveq12d remulcld iccshftr
      mpbid eleqtrd mulcld subadd23d subdid oveq1d resubcl sylancr addcomd 1cnd
      subdird eqtrd oveq2d 3eqtr4d addid2d npcand 3eltr3d ) ADEZBDEZABUAFZUBZCG
      HIJEZULZCBAKJZLJZAMJZGAMJZWEAMJZIJZHCKJZALJZCBLJZMJZABIJWDWFGWEIJZEZWGWJE
      ZWDWFGWELJZHWELJZIJZWOWDWCWFWTEZWBWCUCWDGDEZHDEZCDEZWEUDEZWCXATXBWDNOZXCW
      DPOWCXDWBWCXDGCQFCHQFGHCNPUEUFUGZWBXEWCVSVTWAXEABUHUIUJGHWRWSWECWRRWSRUMU
      KVBWDWRGWSWEIWDWEWDWEWDBAVSVTWAWCUNZVSVTWAWCUOZUPZSZUQWDWEXKURUSVCWDXBWED
      EWFDEVSWPWQTXFXJWDCWEXGXJUTXIGWEWHWIAWFWHRWIRVAUKVBWDWMCALJZKJZAMJWMAXLKJ
      ZMJZWGWNWDWMXLAWDCBWDCXGSZWDBXHSZVDZWDCAXPWDAXISZVDXSVEWDWFXMAMWDCBAXPXQX
      SVFVGWDWNWMWLMJXOWDWLWMWDWLWDWKAWDXCXDWKDEPXGHCVHVIXIUTSXRVJWDWLXNWMMWDWL
      HALJZXLKJXNWDHCAWDVKXPXSVLWDXTAXLKWDAXSURVGVMVNVMVOWDWHAWIBIWDAXSVPWDBAXQ
      XSVQUSVR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    iccf1o.1 $e |- F = ( x e. ( 0 [,] 1 ) |->
      ( ( x x. B ) + ( ( 1 - x ) x. A ) ) ) $.
    $( Describe a bijection from ` [ 0 , 1 ] ` to an arbitrary nontrivial
       closed interval ` [ A , B ] ` .  (Contributed by Mario Carneiro,
       8-Sep-2015.) $)
    iccf1o $p |- ( ( A e. RR /\ B e. RR /\ A < B ) ->
      ( F : ( 0 [,] 1 ) -1-1-onto-> ( A [,] B ) /\ `' F =
        ( y e. ( A [,] B ) |-> ( ( y - A ) / ( B - A ) ) ) ) ) $=
      ( cr wcel wbr cc0 c1 cicc co cmul cmin caddc recnd cc wceq adantrl clt cv
      w3a cdiv wa cle 0re 1re elicc2i simp1bi adantl simpl2 mulcld ax-1cn subcl
      sylancr simpl1 addcomd lincmb01cmp eqeltrd simpr wb elicc2 3adant3 biimpa
      simp1d eqid iccshftl syl22anc mpbid resubcld crp difrp biimp3a adantr cap
      rpcnd rpap0 syl divcanap1d mul02d subidd eqtr4d mulid2d oveq12d 0red 1red
      3eltr4d rerpdivcld iccdil mpbird eqcom adantrr divmulap3d syl5bb remulcld
      subadd2d syl6bb subadd23d subdid oveq1d 1cnd subdird eqtrd oveq2d 3eqtr4d
      eqeq2d 3bitrd f1ocnv2d ) CGHZDGHZCDUAIZUCZABJKLMZCDLMZAUBZDNMZKXPOMZCNMZP
      MZBUBZCOMZDCOMZUDMZEFXMXPXNHZUEZXTXSXQPMXOYFXQXSYFXPDYFXPYEXPGHZXMYEYGJXP
      UFIXPKUFIJKXPUGUHUIUJUKZQZYFDXJXKXLYEULZQZUMZYFXRCYFKRHXPRHZXRRHUNYIKXPUO
      UPYFCXJXKXLYEUQZQZUMURCDXPUSUTXMYAXOHZUEZYDXNHZYDYCNMZJYCNMZKYCNMZLMZHZYQ
      YBCCOMZYCLMZYSUUBYQYPYBUUEHZXMYPVAYQXJXKYAGHZXJYPUUFVBXJXKXLYPUQZXJXKXLYP
      ULYQUUGCYAUFIZYADUFIZXMYPUUGUUIUUJUCZXJXKYPUUKVBXLCDYAVCVDVEVFZUUHCDUUDYC
      CYAUUDVGYCVGVHVIVJYQYBYCYQYBYQYACUULUUHVKZQZYQYCXMYCVLHZYPXJXKXLUUOCDVMVN
      VOZVQZYQUUOYCJVPIZUUPYCVRVSZVTYQYTUUDUUAYCLYQYTJUUDYQYCUUQWAYQCYQCUUHQZWB
      WCYQYCUUQWDWEWHYQJGHKGHYDGHUUOYRUUCVBYQWFYQWGYQYBYCUUMUUPWIUUPJKYTUUAYCYD
      YTVGUUAVGWJVIWKXMYEYPUEUEZXPYDSZYBXPYCNMZSZYAUVCCPMZSZYAXTSUVBYDXPSUVAUVD
      XPYDWLUVAYBXPYCXMYPYBRHYEUUNTXMYEYMYPYIWMXMYPYCRHYEUUQTXMYPUURYEUUSTWNWOU
      VAUVDUVEYASUVFUVAYACUVCUVAYAXMYPUUGYEUULTQXMYPCRHYEUUTTUVAUVCXMYEUVCGHYPY
      FXPYCYHYFDCYJYNVKWPWMQWQUVEYAWLWRUVAUVEXTYAXMYEUVEXTSYPYFXQXPCNMZOMZCPMXQ
      CUVGOMZPMUVEXTYFXQUVGCYLYFXPCYIYOUMYOWSYFUVCUVHCPYFXPDCYIYKYOWTXAYFXSUVIX
      QPYFXSKCNMZUVGOMUVIYFKXPCYFXBYIYOXCYFUVJCUVGOYFCYOWDXAXDXEXFWMXGXHXI $.
  $}

  $( ` ( 0 [,] 1 ) ` is a subset of the reals.  (Contributed by David Moews,
     28-Feb-2017.) $)
  unitssre $p |- ( 0 [,] 1 ) C_ RR $=
    ( cc0 cr wcel c1 cicc co wss 0re 1re iccssre mp2an ) ABCDBCADEFBGHIADJK $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Finite intervals of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ... $. $( Dots. $)

  $( Extend class notation to include the notation for a contiguous finite set
     of integers.  Read " ` M ... N ` " as "the set of integers from ` M ` to
     ` N ` inclusive." $)
  cfz $a class ... $.

  ${
    $d m n k z $.
    $( Define an operation that produces a finite set of sequential integers.
       Read " ` M ... N ` " as "the set of integers from ` M ` to ` N `
       inclusive."  See ~ fzval for its value and additional comments.
       (Contributed by NM, 6-Sep-2005.) $)
    df-fz $a |- ... = ( m e. ZZ , n e. ZZ |->
                  { k e. ZZ | ( m <_ k /\ k <_ n ) } ) $.
  $}

  ${
    $d k m n z M $.  $d k m n z N $.
    $( The value of a finite set of sequential integers.  E.g., ` 2 ... 5 `
       means the set ` { 2 , 3 , 4 , 5 } ` .  A special case of this definition
       (starting at 1) appears as Definition 11-2.1 of [Gleason] p. 141, where
       ` NN ` _k means our ` 1 ... k ` ; he calls these sets _segments_ of the
       integers.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario Carneiro,
       3-Nov-2013.) $)
    fzval $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M ... N ) =
                 { k e. ZZ | ( M <_ k /\ k <_ N ) } ) $=
      ( vm vn cz cv cle wbr wa crab cfz breq1 anbi1d rabbidv breq2 anbi2d df-fz
      wceq zex rabex ovmpt2 ) DEBCFFDGZAGZHIZUDEGZHIZJZAFKBUDHIZUDCHIZJZAFKLUIU
      GJZAFKUCBSZUHULAFUMUEUIUGUCBUDHMNOUFCSZULUKAFUNUGUJUIUFCUDHPQOADERUKAFTUA
      UB $.

    $( An alternative way of expressing a finite set of sequential integers.
       (Contributed by Mario Carneiro, 3-Nov-2013.) $)
    fzval2 $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
        ( M ... N ) = ( ( M [,] N ) i^i ZZ ) ) $=
      ( vk cz wcel wa cfz co cv cle wbr crab cicc cin fzval wceq cr zssre sseli
      cxr ressxr sstri iccval syl2an ineq1d inrab2 wss sseqin2 mpbi rabeq ax-mp
      eqtri syl6req eqtrd ) ADEZBDEZFZABGHACIZJKURBJKFZCDLZABMHZDNZCABOUQVBUSCT
      LZDNZUTUQVAVCDUOATEBTEVAVCPUPDTADQTRUAUBZSDTBVESCABUCUDUEVDUSCTDNZLZUTUSC
      TDUFVFDPZVGUTPDTUGVHVEDTUHUIUSCVFDUJUKULUMUN $.

    $( Establish the domain and codomain of the finite integer sequence
       function.  (Contributed by Scott Fenton, 8-Aug-2013.)  (Revised by Mario
       Carneiro, 16-Nov-2013.) $)
    fzf $p |- ... : ( ZZ X. ZZ ) --> ~P ZZ $=
      ( vm vk vn cv cle wbr wa cz crab cpw wcel cxp cfz wf wss ssrab2 zex elpw2
      wral mpbir rgen2w df-fz fmpt2 mpbi ) ADBDZEFUECDEFGZBHIZHJZKZCHSAHSHHLUHM
      NUIACHHUIUGHOUFBHPUGHQRTUAACHHUGUHMBACUBUCUD $.
  $}

  ${
    $d j K $.  $d j M $.  $d j N $.
    $( Membership in a finite set of sequential integers.  (Contributed by NM,
       21-Jul-2005.) $)
    elfz1 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ... N ) <->
                 ( K e. ZZ /\ M <_ K /\ K <_ N ) ) ) $=
      ( vj cz wcel wa cfz co cv cle wbr crab w3a fzval wceq breq2 breq1 anbi12d
      eleq2d elrab 3anass bitr4i syl6bb ) BEFCEFGZABCHIZFABDJZKLZUGCKLZGZDEMZFZ
      AEFZBAKLZACKLZNZUEUFUKADBCOTULUMUNUOGZGUPUJUQDAEUGAPUHUNUIUOUGABKQUGACKRS
      UAUMUNUOUBUCUD $.
  $}

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     29-Sep-2005.) $)
  elfz $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ... N ) <->
                 ( M <_ K /\ K <_ N ) ) ) $=
    ( cz wcel cfz co cle wbr wa wb w3a elfz1 3anass baib sylan9bb 3impa 3comr )
    BDEZCDEZADEZABCFGEZBAHIZACHIZJZKZSTUAUFSTJUBUAUCUDLZUAUEABCMUGUAUEUAUCUDNOP
    QR $.

  ${
    $d x y z M $.  $d z N $.
    $( Membership in a finite set of sequential integers.  We use the fact that
       an operation's value is empty outside of its domain to show ` M e. ZZ `
       and ` N e. ZZ ` .  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    elfz2 $p |- ( K e. ( M ... N ) <->
           ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) /\ ( M <_ K /\ K <_ N ) ) ) $=
      ( vx vy vz cz wcel wa cle wbr w3a cfz co anass df-3an anbi1i crab df-fz
      cv elmpt2cl simpl elfz1 3anass ibar syl5bb bitrd pm5.21nii 3bitr4ri ) BGH
      ZCGHZIZAGHZIZBAJKZACJKZIZIULUMUQIZIZUJUKUMLZUQIABCMNHZULUMUQOUTUNUQUJUKUM
      PQVAULUSDEGGDTFTZJKVBETJKIFGRBCMAFDESUAULURUBULVAUMUOUPLZUSABCUCVCURULUSU
      MUOUPUDULURUEUFUGUHUI $.
  $}

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     26-Dec-2005.) $)
  elfz5 $p |- ( ( K e. ( ZZ>= ` M ) /\ N e. ZZ ) ->
                 ( K e. ( M ... N ) <-> K <_ N ) ) $=
    ( cuz cfv wcel cz wa cfz co cle wbr wb eluzelz eluzel2 jca elfz 3expa sylan
    eluzle biantrurd adantr bitr4d ) ABDEFZCGFZHABCIJFZBAKLZACKLZHZUHUDAGFZBGFZ
    HUEUFUIMZUDUJUKBANBAOPUJUKUEULABCQRSUDUHUIMUEUDUGUHBATUAUBUC $.

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     21-Jul-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  elfz4 $p |- ( ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) /\ ( M <_ K /\ K <_ N ) )
               -> K e. ( M ... N ) ) $=
    ( cfz co wcel cz w3a cle wbr wa elfz2 biimpri ) ABCDEFBGFCGFAGFHBAIJACIJKKA
    BCLM $.

  $( Membership in a finite set of sequential integers in terms of sets of
     upper integers.  (Contributed by NM, 18-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzuzb $p |- ( K e. ( M ... N ) <->
         ( K e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` K ) ) ) $=
    ( cz wcel w3a cle wbr wa cfz cuz cfv df-3an an6 anandir ancom anbi2i 3bitri
    co eluz2 anbi1i 3bitr4ri elfz2 anbi12i 3bitr4i ) BDEZCDEZADEZFZBAGHZACGHZIZ
    IZUFUHUJFZUHUGUKFZIZABCJSEABKLEZCAKLEZIUFUHIZUHUGIZULFUSUTIZULIUPUMUSUTULMU
    FUHUJUHUGUKNUIVAULUIUFUGIUHIUSUGUHIZIVAUFUGUHMUFUGUHOVBUTUSUGUHPQRUAUBABCUC
    UQUNURUOBATACTUDUE $.

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     4-Oct-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  eluzfz $p |- ( ( K e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` K ) )
               -> K e. ( M ... N ) ) $=
    ( cfz co wcel cuz cfv wa elfzuzb biimpri ) ABCDEFABGHFCAGHFIABCJK $.

  $( A member of a finite set of sequential integers belongs to an upper set of
     integers.  (Contributed by NM, 17-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfzuz $p |- ( K e. ( M ... N ) -> K e. ( ZZ>= ` M ) ) $=
    ( cfz co wcel cuz cfv elfzuzb simplbi ) ABCDEFABGHFCAGHFABCIJ $.

  $( Membership in a finite set of sequential integers implies membership in an
     upper set of integers.  (Contributed by NM, 28-Sep-2005.)  (Revised by
     Mario Carneiro, 28-Apr-2015.) $)
  elfzuz3 $p |- ( K e. ( M ... N ) -> N e. ( ZZ>= ` K ) ) $=
    ( cfz co wcel cuz cfv elfzuzb simprbi ) ABCDEFABGHFCAGHFABCIJ $.

  $( Membership in a finite set of sequential integer implies the upper bound
     is an integer.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzel2 $p |- ( K e. ( M ... N ) -> N e. ZZ ) $=
    ( cfz co wcel cuz cfv cz elfzuz3 eluzelz syl ) ABCDEFCAGHFCIFABCJACKL $.

  $( Membership in a finite set of sequential integer implies the lower bound
     is an integer.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzel1 $p |- ( K e. ( M ... N ) -> M e. ZZ ) $=
    ( cfz co wcel cuz cfv cz elfzuz eluzel2 syl ) ABCDEFABGHFBIFABCJBAKL $.

  $( A member of a finite set of sequential integer is an integer.
     (Contributed by NM, 6-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfzelz $p |- ( K e. ( M ... N ) -> K e. ZZ ) $=
    ( cfz co wcel cuz cfv cz elfzuz eluzelz syl ) ABCDEFABGHFAIFABCJBAKL $.

  $( A member of a finite set of sequential integer is greater than or equal to
     the lower bound.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzle1 $p |- ( K e. ( M ... N ) -> M <_ K ) $=
    ( cfz co wcel cuz cfv cle wbr elfzuz eluzle syl ) ABCDEFABGHFBAIJABCKBALM
    $.

  $( A member of a finite set of sequential integer is less than or equal to
     the upper bound.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzle2 $p |- ( K e. ( M ... N ) -> K <_ N ) $=
    ( cfz co wcel cuz cfv cle wbr elfzuz3 eluzle syl ) ABCDEFCAGHFACIJABCKACLM
    $.

  $( Implication of membership in a finite set of sequential integers.
     (Contributed by NM, 20-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfzuz2 $p |- ( K e. ( M ... N ) -> N e. ( ZZ>= ` M ) ) $=
    ( cfz co wcel cuz cfv wa elfzuzb eqid uztrn2 sylbi ) ABCDEFABGHZFCAGHFICNFA
    BCJBCANNKLM $.

  $( Membership in a finite set of sequential integer implies the bounds are
     comparable.  (Contributed by NM, 18-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzle3 $p |- ( K e. ( M ... N ) -> M <_ N ) $=
    ( cfz co wcel cuz cfv cle wbr elfzuz2 eluzle syl ) ABCDEFCBGHFBCIJABCKBCLM
    $.

  $( Membership in a finite set of sequential integers - special case.
     (Contributed by NM, 21-Jul-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  eluzfz1 $p |- ( N e. ( ZZ>= ` M ) -> M e. ( M ... N ) ) $=
    ( cuz cfv wcel cfz co cz eluzel2 uzid syl eluzfz mpancom ) AACDZEZBNEZAABFG
    EPAHEOABIAJKAABLM $.

  $( Membership in a finite set of sequential integers - special case.
     (Contributed by NM, 13-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  eluzfz2 $p |- ( N e. ( ZZ>= ` M ) -> N e. ( M ... N ) ) $=
    ( cuz cfv wcel cfz co cz eluzelz uzid syl eluzfz mpdan ) BACDEZBBCDEZBABFGE
    NBHEOABIBJKBABLM $.

  $( Membership in a finite set of sequential integers - special case.
     (Contributed by NM, 14-Sep-2005.) $)
  eluzfz2b $p |- ( N e. ( ZZ>= ` M ) <-> N e. ( M ... N ) ) $=
    ( cuz cfv wcel cfz co eluzfz2 elfzuz impbii ) BACDEBABFGEABHBABIJ $.

  $( Membership in a finite set of sequential integers containing one integer.
     (Contributed by NM, 21-Jul-2005.) $)
  elfz3 $p |- ( N e. ZZ -> N e. ( N ... N ) ) $=
    ( cz wcel cuz cfv cfz co uzid eluzfz1 syl ) ABCAADECAAAFGCAHAAIJ $.

  $( Membership in a finite set of sequential integers containing one integer.
     (Contributed by NM, 19-Sep-2005.) $)
  elfz1eq $p |- ( K e. ( N ... N ) -> K = N ) $=
    ( cfz co wcel wceq cle wbr elfzle2 elfzle1 cz wa elfzelz elfzel2 zre letri3
    wb cr syl2an syl2anc mpbir2and ) ABBCDEZABFZABGHZBAGHZABBIABBJUBAKEZBKEZUCU
    DUELQZABBMABBNUFAREBREUHUGAOBOABPSTUA $.

  $( If there is a member in a finite set of sequential integers, the upper
     bound is also a member of this finite set of sequential integers.
     (Contributed by Alexander van der Vekens, 31-May-2018.) $)
  elfzubelfz $p |- ( K e. ( M ... N ) -> N e. ( M ... N ) ) $=
    ( cfz co wcel cuz cfv elfzuz2 eluzfz2 syl ) ABCDEZFCBGHFCLFABCIBCJK $.

  $( A Peano-postulate-like theorem for downward closure of a finite set of
     sequential integers.  (Contributed by Mario Carneiro, 27-May-2014.) $)
  peano2fzr $p |- ( ( K e. ( ZZ>= ` M ) /\ ( K + 1 ) e. ( M ... N ) )
                    -> K e. ( M ... N ) ) $=
    ( cuz cfv wcel c1 caddc co cfz wa simpl cz eluzelz elfzuz3 peano2uzr syl2an
    elfzuzb sylanbrc ) ABDEFZAGHIZBCJIZFZKTCADEFZAUBFTUCLTAMFCUADEFUDUCBANUABCO
    ACPQABCRS $.

  ${
    $d M x $.  $d N x $.  $d A x $.
    $( Properties of a finite interval of integers which is inhabited.
       (Contributed by Jim Kingdon, 15-Apr-2020.) $)
    fzm $p |- ( E. x x e. ( M ... N ) <-> N e. ( ZZ>= ` M ) ) $=
      ( cv cfz co wcel wex cuz cfv elfzuz2 exlimiv eluzfz1 elex2 syl impbii ) A
      DZBCEFZGZAHZCBIJGZSUAAQBCKLUABRGTBCMABRNOP $.
  $}

  $( Trichotomy in terms of a finite interval of integers.  (Contributed by Jim
     Kingdon, 1-Jun-2020.) $)
  fztri3or $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
      ( K < M \/ K e. ( M ... N ) \/ N < K ) ) $=
    ( cz wcel clt wbr wn adantl wa cle simpr zred lenltd mpbird adantr wo zdclt
    wdc df-dc w3a cfz co 3mix1 3mix3 simpl2 simpl1 cr simpll3 wb elfz mpbir2and
    w3o 3mix2d ancoms 3adant2 sylib mpjaodan 3adant3 ) ADEZBDEZCDEZUAZABFGZVDAB
    CUBUCEZCAFGZUMZVDHZVDVGVCVDVEVFUDIVCVHJZVFVGVFHZVFVGVIVFVDVEUEIVIVJJZVEVDVF
    VKVEBAKGZACKGZVIVLVJVIVLVHVCVHLVIBAVIBUTVAVBVHUFMVIAUTVAVBVHUGMZNOPVKVMVJVI
    VJLVKACVIAUHEVJVNPVKCUTVAVBVHVJUIMNOVIVEVLVMJUJZVJVCVOVHABCUKPPULUNVIVFSZVF
    VJQVCVPVHUTVBVPVAVBUTVPCARUOUPPVFTUQURVCVDSZVDVHQUTVAVQVBABRUSVDTUQUR $.

  $( Decidability of membership in a finite interval of integers.  (Contributed
     by Jim Kingdon, 1-Jun-2020.) $)
  fzdcel $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
      DECID K e. ( M ... N ) ) $=
    ( cz wcel w3a clt wbr cfz co w3o wn cle wb zltnle con3i syl6bi nsyld sylibr
    syl6 wdc fztri3or wa 3adant3 simpl elfz biimpd wo olc df-dc orc a1i 3adant2
    wi ancoms simpr 3jaod mpd ) ADEZBDEZCDEZFZABGHZABCIJEZCAGHZKVDUAZABCUBVBVCV
    FVDVEVBVCVDLZVFVBVCBAMHZACMHZUCZVDVBVCVHLZVJLZUSUTVCVKNVAABOUDVJVHVHVIUEPQV
    BVDVJABCUFUGZRVGVDVGUHZVFVGVDUIVDUJZSZTVDVFUNVBVDVNVFVDVGUKVOSULVBVEVGVFVBV
    EVJVDVBVEVILZVLUSVAVEVQNZUTVAUSVRCAOUOUMVJVIVHVIUPPQVMRVPTUQUR $.

  ${
    $d K x k m $.  $d M x k m $.  $d N x k m $.
    $( A finite set of sequential integers is empty if the bounds are
       reversed.  (Contributed by Jim Kingdon, 16-Apr-2020.) $)
    fznlem $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
        ( N < M -> ( M ... N ) = (/) ) ) $=
      ( vk cz wcel wa clt wbr cfz co c0 wceq cv cle wn cr wb zre adantr zred wi
      crab wral lenlt syl2an biimpd con2d imp simplll simpllr letr syl3anc mtod
      simpr ralrimiva rabeq0 sylibr fzval eqeq1d mpbird ex ) ADEZBDEZFZBAGHZABI
      JZKLZVDVEFZVGACMZNHVIBNHFZCDUBZKLZVHVJOZCDUCVLVHVMCDVHVIDEZFZVJABNHZVHVPO
      ZVNVDVEVQVDVPVEVDVPVEOZVBAPEZBPEZVPVRQVCARBRABUDUEUFUGUHSVOVSVIPEVTVJVPUA
      VOAVBVCVEVNUITVOVIVHVNUNTVOBVBVCVEVNUJTAVIBUKULUMUOVJCDUPUQVDVGVLQVEVDVFV
      KKCABURUSSUTVA $.

    $( A finite set of sequential integers is empty if the bounds are
       reversed.  (Contributed by NM, 22-Aug-2005.) $)
    fzn $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( N < M <-> ( M ... N ) = (/) ) ) $=
      ( vx cz wcel wa clt wbr cfz co c0 wceq fznlem cle wn cv wex neq0r adantr
      wb simpr nsyl3 cuz cfv eluz syl5rbb mtbird zltnle ancoms mpbird ex impbid
      fzm ) ADEZBDEZFZBAGHZABIJZKLZABMUPUSUQUPUSFZUQABNHZOZUTVACPURECQZVCUSUTCU
      RRUPUSUAUBUPVAVCTUSVCBAUCUDEUPVACABUMABUEUFSUGUPUQVBTZUSUOUNVDBAUHUISUJUK
      UL $.

    $( A shifted finite set of sequential integers is equinumerous to the
       original set.  (Contributed by Paul Chapman, 11-Apr-2009.) $)
    fzen $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) ->
                 ( M ... N ) ~~ ( ( M + K ) ... ( N + K ) ) ) $=
      ( cz wcel w3a cfz co caddc cle wbr wi wa elfz1 biimpd cr zre syl3an wceq
      wb vk vm cv cmin cvv cxp wfn cpw wf fzf ax-mp fnovex mp3an1 3adant3 simp1
      simp3 zaddcld syl2anc zaddcl expcom 3ad2ant3 adantrd leadd1 3com23 3expia
      simp2 impd 3adant2 adantld 3coml 3adant1 3jcad biimprd com12 3impb zsubcl
      ffn syld leaddsub lesubadd ancoms imp simp1d ex zcn subadd 3bitr3g addcom
      cc eqcom eqeq2d bitrd 3expib syl2and en3d ) BDEZCDEZADEZFZUAUBBCGHZBAIHZC
      AIHZGHZUAUCZAIHZUBUCZAUDHZWPWQWTUEEZWRGDDUFZUGZWPWQXHXIDUHZGUIXJUJXIXKGVQ
      UKZBCDDGULUMUNWSXADEZXBDEZXCUEEZWSBAWPWQWRUOWPWQWRUPZUQWSCAWPWQWRVFXPUQXJ
      XMXNXOXLXAXBDDGULUMURWSXDWTEZXDDEZBXDJKZXDCJKZFZXEXCEZWPWQXQYALWRWPWQMZXQ
      YAXDBCNOUNZYAWSYBXRXSXTWSYBLWSXRXSXTMZMZYBWSYFXEDEZXAXEJKZXEXBJKZFZYBWSYF
      YGYHYIWSXRYGYEWRWPXRYGLWQXRWRYGXDAUSUTVAVBWPWRYFYHLWQWPWRMZXRYEYHWPWRXRYE
      YHLZWPXRWRYLWPXRWRFZXSYHXTYMXSYHWPBPEZXRXDPEZWRAPEZXSYHTBQZXDQZAQZBXDAVCR
      OVBVDVEVGVHWQWRYFYILWPWQWRMXRYEYIWQWRXRYEYILZXRWQWRYTXRWQWRFZXTYIXSUUAXTY
      IXRYOWQCPEZWRYPXTYITYRCQZYSXDCAVCROVIVJVEVGVKVLWSYBYJWSXMXNYBYJTWPWRXMWQB
      AUSVHZWQWRXNWPCAUSVKZXEXAXBNURVMVRVNVOVNVRWSXFXCEZXFDEZXAXFJKZXFXBJKZFZXG
      WTEZWSUUFUUJWSXMXNUUFUUJTUUDUUEXFXAXBNUROZUUJWSUUKUUGUUHUUIWSUUKLWSUUGUUH
      UUIMZMZUUKWSUUNXGDEZBXGJKZXGCJKZFZUUKWSUUNUUOUUPUUQWSUUGUUOUUMWRWPUUGUUOL
      WQUUGWRUUOXFAVPUTVAVBWPWRUUNUUPLWQYKUUGUUMUUPWPWRUUGUUMUUPLWPWRUUGFZUUHUU
      PUUIUUSUUHUUPWPYNWRYPUUGXFPEZUUHUUPTYQYSXFQZBAXFVSROVBVEVGVHWQWRUUNUUQLZW
      PWRWQUVBWRWQMUUGUUMUUQWRWQUUGUUMUUQLZUUGWRWQUVCUUGWRWQFZUUIUUQUUHUVDUUQUU
      IUUGUUTWRYPWQUUBUUQUUITUVAYSUUCXFACVTRVMVIVJVEVGWAVKVLWPWQUURUUKLWRYCUUKU
      URXGBCNVMUNVRVNVOVNVRWSXQXRUUFUUGXDXGSZXFXESZTZWSXQXRWSXQMXRXSXTWSXQYAYDW
      BWCWDWSUUFUUGWSUUFMUUGUUHUUIWSUUFUUJUULWBWCWDWRWPXRUUGMUVGLWQWRXRUUGUVGUU
      GWRXRUVGUUGXFWIEZWRAWIEZXRXDWIEZUVGXFWEAWEXDWEUVHUVIUVJFZUVEXFAXDIHZSZUVF
      UVKXGXDSUVLXFSUVEUVMXFAXDWFXGXDWJUVLXFWJWGUVKUVLXEXFUVIUVJUVLXESUVHAXDWHV
      KWKWLRVJWMVAWNWO $.
  $}

  $( A 1-based finite set of sequential integers is empty iff it ends at index
     ` 0 ` .  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  fz1n $p |- ( N e. NN0 -> ( ( 1 ... N ) = (/) <-> N = 0 ) ) $=
    ( cn0 wcel c1 clt wbr cfz co c0 wceq cc0 cz wb 1z nn0z fzn sylancr nn0lt10b
    bitr3d ) ABCZADEFZDAGHIJZAKJTDLCALCUAUBMNAODAPQARS $.

  $( Two ways to say a finite 1-based sequence is empty.  (Contributed by Paul
     Chapman, 26-Oct-2012.) $)
  0fz1 $p |- ( ( N e. NN0 /\ F Fn ( 1 ... N ) ) -> ( F = (/) <-> N = 0 ) ) $=
    ( c1 cfz co wfn c0 wceq cn0 wcel cc0 fndmu sylan2br ex fneq2 syl6bb biimpcd
    fn0 impbid fz1n sylan9bbr ) ACBDEZFZAGHZUBGHZBIJBKHUCUDUEUCUDUEUDUCAGFZUEAR
    ZUBGALMNUEUCUDUEUCUFUDUBGAOUGPQSBTUA $.

  $( There are no integers between 1 and 0.  (Contributed by Jeff Madsen,
     16-Jun-2010.)  (Proof shortened by Mario Carneiro, 28-Apr-2015.) $)
  fz10 $p |- ( 1 ... 0 ) = (/) $=
    ( cc0 c1 clt wbr cfz co c0 wceq 0lt1 cz wcel wb 1z 0z fzn mp2an mpbi ) ABCD
    ZBAEFGHZIBJKAJKRSLMNBAOPQ $.

  $( Membership of an integer greater than L decreased by ( L - M ) in an M
     based finite set of sequential integers.  (Contributed by Alexander van
     der Vekens, 14-Sep-2018.) $)
  uzsubsubfz $p |- ( ( L e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` L ) )
                     -> ( N - ( L - M ) ) e. ( M ... N ) ) $=
    ( cuz wcel cmin co cz cle wbr w3a wi wa adantr cr zre adantl syl2anr cc zcn
    cfv cfz eluz2 simpr zsubcl adantlr zsubcld 3jca 3adant3 com12 imp caddc cc0
    subge0d exbiri com23 3impia impcom resubcl addge02d mpbid 3ad2ant2 3ad2ant1
    ex subsubd breqtrrd subge0 imp31 subge02d jca elfz2 sylanbrc 3adant2 syl5bi
    wb sylbi ) ABDUAEZCADUAEZCABFGZFGZBCUBGEZVQBHEZAHEZBAIJZKZVRWALBAUCVRWCCHEZ
    ACIJZKZWEWAACUCWBWDWHWALWCWBWDMZWHWAWIWHMZWBWFVTHEZKZBVTIJZVTCIJZMWAWIWHWLW
    BWHWLLWDWHWBWLWCWFWBWLLWGWCWFMZWBWLWOWBMZWBWFWKWOWBUDWOWFWBWCWFUDNZWPCVSWQW
    CWBVSHEWFABUEUFUGUHVDUIUJNUKWJWMWNWJBCAFGZBULGZVTIWJUMWRIJZBWSIJWHWIWTWCWFW
    GWIWTLWOWIWGWTWOWIWTWGWOWIMCAWOCOEZWIWFXAWCCPZQNWOAOEZWIWCXCWFAPZNNUNUOUPUQ
    URWJBWRWIBOEZWHWBXEWDBPZNZNWHWROEZWIWCWFXHWGWFXAXCXHWCXBXDCAUSRUIQUTVAWJCAB
    WHCSEZWIWFWCXIWGCTVBQWHASEZWIWCWFXJWGATVCQWIBSEZWHWBXKWDBTNNVEVFWJUMVSIJZWN
    WBWDWHXLWBWHWDXLWBWHXLWDWHXCXEXLWDVOWBWCWFXCWGXDVCZXFABVGRUOUPVHWJCVSWHXAWI
    WFWCXAWGXBVBQWHXCXEVSOEWIXMXGABUSRVIVAVJVTBCVKVLVDVMVNVPUK $.

  $( Membership of an integer greater than L decreased by ( L - 1 ) in a 1
     based finite set of sequential integers.  (Contributed by Alexander van
     der Vekens, 14-Sep-2018.) $)
  uzsubsubfz1 $p |- ( ( L e. NN /\ N e. ( ZZ>= ` L ) )
                      -> ( N - ( L - 1 ) ) e. ( 1 ... N ) ) $=
    ( cn wcel c1 cuz cfv cmin co cfz elnnuz uzsubsubfz sylanb ) ACDAEFGDBAFGDBA
    EHIHIEBJIDAKAEBLM $.

  $( Membership of an integer greater than 2 decreased by 2 in a 1 based finite
     set of sequential integers.  (Contributed by Alexander van der Vekens,
     14-Sep-2018.) $)
  ige3m2fz $p |- ( N e. ( ZZ>= ` 3 ) -> ( N - 2 ) e. ( 1 ... N ) ) $=
    ( c3 cuz cfv wcel c2 cmin co c1 cfz wceq 3m1e2 eqcomi oveq2d cn uzsubsubfz1
    a1i 3nn mpan eqeltrd ) ABCDEZAFGHABIGHZGHZIAJHZUAFUBAGFUBKUAUBFLMQNBOEUAUCU
    DERBAPST $.

  ${
    $d M x $.  $d N x $.  $d K x $.
    $( Split a finite interval of integers into two parts.  (Contributed by
       Mario Carneiro, 13-Apr-2016.) $)
    fzsplit2 $p |- ( ( ( K + 1 ) e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` K ) ) ->
      ( M ... N ) = ( ( M ... K ) u. ( ( K + 1 ) ... N ) ) ) $=
      ( vx co cuz cfv wcel wa cfz wo cle wbr cz adantl syl2anr wb elfzuz syl2an
      elfzuz3 c1 caddc cun cv clt elfzelz eluzel2 zlelttric elfz5 simpl eluzelz
      syl eluz elfzuzb rbaib zltp1le 3bitr4d mpbird simpr uztrn sylanbrc jaodan
      orbi12d impbida elun syl6bbr eqrdv ) AUAUBEZBFGZHZCAFGHZIZDBCJEZBAJEZVHCJ
      EZUCZVLDUDZVMHZVQVNHZVQVOHZKZVQVPHVLVRWAVLVRIZWAVQALMZAVQUEMZKZVRVQNHZANH
      ZWEVLVQBCUFZVKWGVJACUGOZVQAUHPWBVSWCVTWDVRVQVIHZWGVSWCQVLVQBCRWIVQBAUIPWB
      VQVHFGHZVHVQLMZVTWDVLVHNHZWFWKWLQVRVLVJWMVJVKUJZBVHUKULWHVHVQUMSWBCVQFGZH
      ZVTWKQVRWPVLVQBCTOVTWKWPVQVHCUNUOULVLWGWFWDWLQVRWIWHAVQUPSUQVCURVLVSVRVTV
      LVSIWJWPVRVSWJVLVQBAROVLVKAWOHWPVSVJVKUSVQBATACVQUTSVQBCUNZVAVLVTIWJWPVRV
      TWKVJWJVLVQVHCRWNVHVQBUTPVTWPVLVQVHCTOWQVAVBVDVQVNVOVEVFVG $.

    $( Split a finite interval of integers into two parts.  (Contributed by
       Jeff Madsen, 17-Jun-2010.)  (Revised by Mario Carneiro, 13-Apr-2016.) $)
    fzsplit $p |- ( K e. ( M ... N ) ->
      ( M ... N ) = ( ( M ... K ) u. ( ( K + 1 ) ... N ) ) ) $=
      ( cfz co wcel caddc cuz cfv cun wceq elfzuz peano2uz syl elfzuz3 fzsplit2
      c1 syl2anc ) ABCDEZFZAQGEZBHIZFZCAHIFSBADEUACDEJKTAUBFUCABCLBAMNABCOABCPR
      $.

    $d J x $.  $d A x $.
    $( Condition for two finite intervals of integers to be disjoint.
       (Contributed by Jeff Madsen, 17-Jun-2010.) $)
    fzdisj $p |- ( K < M -> ( ( J ... K ) i^i ( M ... N ) ) = (/) ) $=
      ( vx clt wbr cfz co cin cv wcel wa wn elin cle cz adantl zred adantr cr
      elfzel1 elfzelz elfzel2 elfzle1 elfzle2 letrd lenltd mpbid sylbi eq0rdv
      con2i ) BCFGZEABHIZCDHIZJZEKZUPLZUMURUQUNLZUQUOLZMZUMNZUQUNUOOVACBPGVBVAC
      UQBVACUTCQLUSUQCDUBRSZUTUQUALUSUTUQUQCDUCSRVABUSBQLUTUQABUDTSZUTCUQPGUSUQ
      CDUERUSUQBPGUTUQABUFTUGVACBVCVDUHUIUJULUK $.
  $}

  $( 0-based and 1-based finite sets of sequential integers are equinumerous.
     (Contributed by Paul Chapman, 11-Apr-2009.) $)
  fz01en $p |- ( N e. ZZ -> ( 0 ... ( N - 1 ) ) ~~ ( 1 ... N ) ) $=
    ( cz wcel cc0 c1 cmin co cfz caddc cen wbr peano2zm 0z 1z fzen mp3an13 wceq
    syl 0p1e1 cc a1i zcn ax-1cn npcan sylancl oveq12d breqtrd ) ABCZDAEFGZHGZDE
    IGZUIEIGZHGZEAHGJUHUIBCZUJUMJKZALDBCUNEBCUOMNEDUIOPRUHUKEULAHUKEQUHSUAUHATC
    ETCULAQAUBUCAEUDUEUFUG $.

  $( A member of a finite set of sequential integers starting at 1 is a
     positive integer.  (Contributed by NM, 24-Aug-2005.) $)
  elfznn $p |- ( K e. ( 1 ... N ) -> K e. NN ) $=
    ( c1 cfz co wcel cz cle wbr cn elfzelz elfzle1 elnnz1 sylanbrc ) ACBDEFAGFC
    AHIAJFACBKACBLAMN $.

  $( A nonempty finite range of integers contains its end point.  (Contributed
     by Stefan O'Rear, 10-Oct-2014.) $)
  elfz1end $p |- ( A e. NN <-> A e. ( 1 ... A ) ) $=
    ( cn wcel c1 cfz co cuz cfv elnnuz biimpi cz nnz uzid eluzfz syl2anc elfznn
    syl impbii ) ABCZADAEFCZSADGHCZAAGHCZTSUAAIJSAKCUBALAMQADANOAAPR $.

  $( Subtraction closure for a member of a finite set of sequential integers.
     (Contributed by NM, 16-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fznn0sub $p |- ( K e. ( M ... N ) -> ( N - K ) e. NN0 ) $=
    ( cfz co wcel cuz cfv cmin cn0 elfzuz3 uznn0sub syl ) ABCDEFCAGHFCAIEJFABCK
    ACLM $.

  $( Subtracting the difference of a member of a finite range of integers and
     the lower bound of the range from the difference of the upper bound and
     the lower bound of the range results in the difference of the upper bound
     of the range and the member.  (Contributed by Alexander van der Vekens,
     27-May-2018.) $)
  fzmmmeqm $p |- ( M e. ( L ... N )
                   -> ( ( N - L ) - ( M - L ) ) = ( N - M ) ) $=
    ( cfz co wcel cc w3a cmin wceq cz cle wa elfz2 3anim123i 3comr adantr sylbi
    wbr zcn nnncan2 syl ) BACDEFZCGFZBGFZAGFZHZCAIEBAIEIECBIEJUCAKFZCKFZBKFZHZA
    BLSBCLSMZMUGBACNUKUGULUIUJUHUGUIUDUJUEUHUFCTBTATOPQRCBAUAUB $.

  $( Membership of a sum in a finite set of sequential integers.  (Contributed
     by NM, 30-Jul-2005.) $)
  fzaddel $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( J e. ( M ... N ) <-> ( J + K ) e. ( ( M + K ) ... ( N + K ) ) ) ) $=
    ( cz wcel wa cle wbr w3a caddc co cfz wb zaddcl cr zre leadd1 syl3an 3expb
    simpl adantl adantlr 3com12 adantll 3anbi123d elfz1 adantr anandirs adantrl
    2thd syl2an 3bitr4d ) CEFZDEFZGZAEFZBEFZGZGZUQCAHIZADHIZJZABKLZEFZCBKLZVDHI
    ZVDDBKLZHIZJZACDMLFZVDVFVHMLFZUTUQVEVAVGVBVIUSUQVENUPUSUQVEUQURUAABOUKUBUNU
    SVAVGNZUOUNUQURVMUNCPFUQAPFZURBPFZVMCQAQZBQZCABRSTUCUOUSVBVINZUNUOUQURVRUQU
    OURVRUQVNUODPFURVOVRVPDQVQADBRSUDTUEUFUPVKVCNUSACDUGUHUPURVLVJNZUQUNUOURVSU
    NURGVFEFVHEFVSUOURGCBODBOVDVFVHUGULUIUJUM $.

  $( Membership of a difference in a finite set of sequential integers.
     (Contributed by NM, 30-Jul-2005.) $)
  fzsubel $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( J e. ( M ... N ) <-> ( J - K ) e. ( ( M - K ) ... ( N - K ) ) ) ) $=
    ( cz wcel wa cfz co cneg caddc cmin wb znegcl fzaddel cc zcn anim12i negsub
    wceq sylanr2 adantl oveqan12d anandirs adantrl eleq12d syl2an bitrd ) CEFZD
    EFZGZAEFZBEFZGZGACDHIFZABJZKIZCUPKIZDUPKIZHIZFZABLIZCBLIZDBLIZHIZFZUMUKULUP
    EFUOVAMBNAUPCDOUAUKCPFZDPFZGZAPFZBPFZGZVAVFMUNUIVGUJVHCQDQRULVJUMVKAQBQRVIV
    LGUQVBUTVEVLUQVBTVIABSUBVIVKUTVETZVJVGVHVKVMVGVKGVHVKGURVCUSVDHCBSDBSUCUDUE
    UFUGUH $.

  $( A finite set of sequential integers can represent an ordered pair.
     (Contributed by NM, 31-Oct-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fzopth $p |- ( N e. ( ZZ>= ` M ) ->
                ( ( M ... N ) = ( J ... K ) <-> ( M = J /\ N = K ) ) ) $=
    ( cuz cfv wcel cfz co wceq wa wss eluzfz1 adantr eleqtrd uzss 3syl eleqtrrd
    elfzuz eqssd simpr elfzuz2 cz wb eluzel2 uz11 mpbid eluzfz2 elfzuz3 eluzelz
    syl jca ex oveq12 impbid1 ) DCEFZGZCDHIZABHIZJZCAJZDBJZKZUQUTVCUQUTKZVAVBVD
    UPAEFZJZVAVDUPVEVDCUSGZCVEGUPVELVDCURUSUQCURGUTCDMNUQUTUAZOZCABSACPQVDAURGA
    UPGVEUPLVDAUSURVDVGBVEGZAUSGVICABUBZABMQVHRACDSCAPQTVDCUCGZVFVAUDUQVLUTCDUE
    NCAUFUKUGVDDEFZBEFZJZVBVDVMVNVDBURGDVNGVMVNLVDBUSURVDVGVJBUSGVIVKABUHQVHRBC
    DUIBDPQVDDUSGBVMGVNVMLVDDURUSUQDURGUTCDUHNVHODABUIDBPQTVDDUCGZVOVBUDUQVPUTC
    DUJNDBUFUKUGULUMCADBHUNUO $.

  $( Two ways to express a nondecreasing sequence of four integers.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzass4 $p |- ( ( B e. ( A ... D ) /\ C e. ( B ... D ) ) <->
      ( B e. ( A ... C ) /\ C e. ( A ... D ) ) ) $=
    ( cuz cfv wcel wa cfz co simpll simprl uztrn ancoms ad2ant2r simprr elfzuzb
    jca jca32 anbi12i ad2ant2l simplr impbii 3bitr4i ) BAEFZGZDBEFZGZHZCUGGZDCE
    FGZHZHZUFUJHZCUEGZUKHZHZBADIJZGZCBDIJGZHBACIJGZCURGZHUMUQUMUNUOUKUMUFUJUFUH
    ULKUIUJUKLRUFUJUOUHUKUJUFUOBCAMNOUIUJUKPSUQUIUJUKUQUFUHUFUJUPKUJUKUHUFUOUKU
    JUHCDBMNUARUFUJUPUBUNUOUKPSUCUSUIUTULBADQCBDQTVAUNVBUPBACQCADQTUD $.

$(
  @{
    @d j K @.  @d j M @.  @d j N @.
    @( Union of two adjacent finite sets of sequential integers. @)
    fzunt @p |- ( ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\ ( K <_ M /\ M <_ N ) )
                 -> ( ( K ... M ) u. ( M ... N ) ) = ( K ... N ) ) @=
      ( vj cz wcel w3a cle wbr wa cfz co cun cv wo cr wb wi letr expd com23
      3exp com3l imp42 adantlll adantrl anim2d 3expa imp adantlrl adantrr
      anim1d jaod impbid exp42 com34 ex 3imp zre syl3anOLD syl5OLD pm5.32d andi
      bicomi syl5bbOLD elfz1 3anass syl6bb 3adant3 adantr 3adant1 orbi12d
      3adant2 3bitr4d elun eqrdv ) AEFZBEFZCEFZGZABHIZBCHIZJZJZDABKLZBCKLZMZACK
      LZWDDNZWEFZWIWFFZOZWIWHFZWIWGFWDWIEFZAWIHIZWIBHIZJZJZWNBWIHIZWICHIZJZJZOZ
      WNWOWTJZJZWLWMWDWNWQXAOZJZXEXCWDWNXFXDWDWIPFZXFXDQZWNVTWCXHXIRZAPFZBPFZCP
      FZWCXJRZVQVRVSXKXLXMXNXKXLXMXNRXKXLJZXMXHWCXIXOXMXHWCXIXOXMXHJZJZWCJZXFXD
      XRWQXDXAXRWPWTWOXQWBWPWTRZWAXLXPWBXSXKXLXMXHWBXSXHXLXMWBXSRZXHXLXMXTXHXLX
      MGZWPWBWTYAWPWBWTWIBCSTUAUBUCUDUEUFUGXRWSWOWTXQWAWSWORZWBXOXHWAYBXMXOXHJZ
      WAYBYCWAWSWOXKXLXHWAWSJWORABWISUHTUIUJUKULUM?UNUOUPUQURAUSBUSCUSUTUIWIUSV
      AVBXGXCWNWQXAVCVDVEWDWJWRWKXBVTWJWRQZWCVQVRYDVSVQVRJWJWNWOWPGWRWIABVFWNWO
      WPVGVHVIVJVTWKXBQZWCVRVSYEVQVRVSJWKWNWSWTGXBWIBCVFWNWSWTVGVHVKVJVLVTWMXEQ
      ZWCVQVSYFVRVQVSJWMWNWOWTGXEWIACVFWNWOWTVGVHVMVJVNWIWEWFVOVEVP @.
      @( [ ?] @) @( [21-Jul-2005] @)
  @}
$)

  ${
    $d k M $.  $d k N $.  $d k K $.  $d k V $.
    $( Subset relationship for finite sets of sequential integers.
       (Contributed by NM, 28-Sep-2005.)  (Proof shortened by Mario Carneiro,
       28-Apr-2015.) $)
    fzss1 $p |- ( K e. ( ZZ>= ` M ) -> ( K ... N ) C_ ( M ... N ) ) $=
      ( vk cuz cfv wcel co cv wa elfzuz id uztrn syl2anr elfzuz3 adantl elfzuzb
      cfz sylanbrc ex ssrdv ) ABEFZGZDACRHZBCRHZUCDIZUDGZUFUEGZUCUGJUFUBGZCUFEF
      GZUHUGUFAEFGUCUIUCUFACKUCLAUFBMNUGUJUCUFACOPUFBCQSTUA $.

    $( Subset relationship for finite sets of sequential integers.
       (Contributed by NM, 4-Oct-2005.)  (Revised by Mario Carneiro,
       30-Apr-2015.) $)
    fzss2 $p |- ( N e. ( ZZ>= ` K ) -> ( M ... K ) C_ ( M ... N ) ) $=
      ( vk cuz cfv wcel cfz co cv wa elfzuz adantl elfzuz3 uztrn sylan2 elfzuzb
      sylanbrc ex ssrdv ) CAEFGZDBAHIZBCHIZUADJZUBGZUDUCGZUAUEKUDBEFGZCUDEFZGZU
      FUEUGUAUDBALMUEUAAUHGUIUDBANACUDOPUDBCQRST $.

    $( A finite set of sequential integers is a subset of an upper set of
       integers.  (Contributed by NM, 28-Oct-2005.) $)
    fzssuz $p |- ( M ... N ) C_ ( ZZ>= ` M ) $=
      ( vk cfz co cuz cfv cv elfzuz ssriv ) CABDEAFGCHABIJ $.

    $( A finite interval of integers with one element.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    fzsn $p |- ( M e. ZZ -> ( M ... M ) = { M } ) $=
      ( vk cz wcel cfz co csn cv elfz1eq elfz3 eleq1 syl5ibrcom impbid2 syl6bbr
      wceq elsn eqrdv ) ACDZBAAEFZAGZRBHZSDZUAAOZUATDRUBUCUAAIRUBUCASDAJUAASKLM
      BAPNQ $.

    $( Subset relationship for finite sets of sequential integers.
       (Contributed by NM, 21-Jul-2005.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    fzssp1 $p |- ( M ... N ) C_ ( M ... ( N + 1 ) ) $=
      ( vk cfz co c1 caddc cv wcel cuz cfv wss elfzel2 uzid peano2uz fzss2 4syl
      cz id sseldd ssriv ) CABDEZABFGEZDEZCHZUBIZUBUDUEUFBRIBBJKZIUCUGIUBUDLUEA
      BMBNBBOBAUCPQUFSTUA $.
  $}

  $( Join a successor to the end of a finite set of sequential integers.
     (Contributed by NM, 19-Jul-2008.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fzsuc $p |- ( N e. ( ZZ>= ` M ) ->
                ( M ... ( N + 1 ) ) = ( ( M ... N ) u. { ( N + 1 ) } ) ) $=
    ( cuz cfv wcel c1 caddc co cfz cun csn peano2uz eluzfz2 syl peano2fzr mpdan
    wceq fzsplit cz eluzelz fzsn 3syl uneq2d eqtrd ) BACDZEZABFGHZIHZABIHZUGUGI
    HZJZUIUGKZJUFBUHEZUHUKQUFUGUHEZUMUFUGUEEZUNABLZAUGMNBAUGOPBAUGRNUFUJULUIUFU
    OUGSEUJULQUPAUGTUGUAUBUCUD $.

  $( Join a predecessor to the beginning of a finite set of sequential
     integers.  (Contributed by AV, 24-Aug-2019.) $)
  fzpred $p |- ( N e. ( ZZ>= ` M )
                 -> ( M ... N ) = ( { M } u. ( ( M + 1 ) ... N ) ) ) $=
    ( cuz cfv wcel cfz co c1 caddc cun wceq eluzel2 uzid peano2uz 3syl fzsplit2
    csn cz mpancom fzsn syl uneq1d eqtrd ) BACDZEZABFGZAAFGZAHIGZBFGZJZAQZUIJUH
    UDEZUEUFUJKUEAREZAUDEULABLZAMAANOAABPSUEUGUKUIUEUMUGUKKUNATUAUBUC $.

  $( A finite set of sequential integers is disjoint with its predecessor.
     (Contributed by AV, 24-Aug-2019.) $)
  fzpreddisj $p |- ( N e. ( ZZ>= ` M )
                 -> ( { M } i^i ( ( M + 1 ) ... N ) ) = (/) ) $=
    ( cuz cfv wcel csn c1 caddc co cfz cin c0 wn cz cle wbr wa cc0 wb cr w3a 0z
    incom wceq clt 0lt1 1z zltnle mpbi eluzel2 zred 1re leaddle0 sylancl mtbiri
    mp2an intnanrd intnand elfz2 sylnibr disjsn sylibr syl5eqr ) BACDEZAFZAGHIZ
    BJIZKVGVEKZLVGVEUCVDAVGEZMVHLUDVDVFNEBNEANEUAZVFAOPZABOPZQZQVIVDVMVJVDVKVLV
    DVKGROPZRGUEPZVNMZUFRNEGNEVOVPSUBUGRGUHUPUIVDATEGTEVKVNSVDAABUJUKULAGUMUNUO
    UQURAVFBUSUTVGAVAVBVC $.

  $( Append an element to a finite set of sequential integers.  (Contributed by
     NM, 19-Sep-2005.)  (Proof shortened by Mario Carneiro, 28-Apr-2015.) $)
  elfzp1 $p |- ( N e. ( ZZ>= ` M ) ->
    ( K e. ( M ... ( N + 1 ) ) <-> ( K e. ( M ... N ) \/ K = ( N + 1 ) ) ) ) $=
    ( cuz cfv wcel c1 caddc co cfz csn cun wceq wo fzsuc eleq2d elun cz eluzelz
    wb peano2zd elsnc2g syl orbi2d syl5bb bitrd ) CBDEFZABCGHIZJIZFABCJIZUHKZLZ
    FZAUJFZAUHMZNZUGUIULABCOPUMUNAUKFZNUGUPAUJUKQUGUQUOUNUGUHRFUQUOTUGCBCSUAAUH
    RUBUCUDUEUF $.

  $( Subset relationship for finite sets of sequential integers.  (Contributed
     by NM, 26-Jul-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  fzp1ss $p |- ( M e. ZZ -> ( ( M + 1 ) ... N ) C_ ( M ... N ) ) $=
    ( cz wcel cuz cfv c1 caddc co cfz wss uzid peano2uz fzss1 3syl ) ACDAAEFZDA
    GHIZPDQBJIABJIKALAAMQABNO $.

  $( Membership in a set of sequential integers with an appended element.
     (Contributed by NM, 7-Dec-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fzelp1 $p |- ( K e. ( M ... N ) -> K e. ( M ... ( N + 1 ) ) ) $=
    ( cfz co c1 caddc fzssp1 sseli ) BCDEBCFGEDEABCHI $.

  $( Add one to an element of a finite set of integers.  (Contributed by Jeff
     Madsen, 6-Jun-2010.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  fzp1elp1 $p |- ( K e. ( M ... N ) -> ( K + 1 ) e. ( M ... ( N + 1 ) ) ) $=
    ( cfz co wcel c1 caddc cuz cfv elfzuz peano2uz syl elfzuz3 eluzp1p1 elfzuzb
    sylanbrc ) ABCDEFZAGHEZBIJZFZCGHEZSIJFZSBUBDEFRATFUAABCKBALMRCAIJFUCABCNACO
    MSBUBPQ $.

  $( Shift membership in a finite sequence of naturals.  (Contributed by Scott
     Fenton, 17-Jul-2013.) $)
  fznatpl1 $p |- ( ( N e. NN /\ I e. ( 1 ... ( N - 1 ) ) ) ->
           ( I + 1 ) e. ( 1 ... N ) ) $=
    ( wcel c1 co cfz wa caddc cle wbr cr zred adantl peano2re syl wb 1re mp3an2
    cz syl2anc cn cmin elfzelz ltp1d elfzle1 leadd1 mp3an13 mpbid ltletrd ltled
    1red elfzle2 nnz adantr leaddsub mpbird peano2zd 1z elfz mpbir2and ) BUACZA
    DBDUBEZFECZGZADHEZDBFECZDVEIJZVEBIJZVDDVEVDUKZVDAKCZVEKCVCVJVAVCAADVBUCZLMZ
    ANOZVDDDDHEZVEVIVDDKCZVNKCVIDNOVMVDDVIUDVDDAIJZVNVEIJZVCVPVAADVBUEMVDVJVPVQ
    PZVLVOVJVOVRQQDADUFUGOUHUIUJVDVHAVBIJZVCVSVAADVBULMVDVJBKCZVHVSPZVLVDBVABSC
    ZVCBUMUNZLVJVOVTWAQADBUORTUPVDVESCZWBVFVGVHGPZVCWDVAVCAVKUQMWCWDDSCWBWEURVE
    DBUSRTUT $.

  ${
    $d M m $.

    $( A finite interval of integers with two elements.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    fzpr $p |- ( M e. ZZ -> ( M ... ( M + 1 ) ) = { M , ( M + 1 ) } ) $=
      ( vm cz wcel c1 caddc co cfz cpr cv wceq cuz cfv uzid elfzp1 syl csn fzsn
      wo wb eleq2d elsn syl6bb orbi1d bitrd vex elpr syl6bbr eqrdv ) ACDZBAAEFG
      ZHGZAUKIZUJBJZULDZUNAKZUNUKKZSZUNUMDUJUOUNAAHGZDZUQSZURUJAALMDUOVATANUNAA
      OPUJUTUPUQUJUTUNAQZDUPUJUSVBUNARUABAUBUCUDUEUNAUKBUFUGUHUI $.

    $( A finite interval of integers with three elements.  (Contributed by NM,
       13-Sep-2011.)  (Revised by Mario Carneiro, 7-Mar-2014.) $)
    fztp $p |- ( M e. ZZ -> ( M ... ( M + 2 ) )
                 = { M , ( M + 1 ) , ( M + 2 ) } ) $=
      ( cz wcel c1 caddc co cfz csn cun c2 ctp cuz cfv wceq uzid peano2uz fzsuc
      cc ax-1cn syl6eqr 3syl zcn addass mp3an23 syl df-2 oveq2i oveq2d cpr fzpr
      sneqd uneq12d df-tp 3eqtr3d ) ABCZAADEFZDEFZGFZAUPGFZUQHZIZAAJEFZGFAUPVBK
      ZUOAALMZCUPVDCURVANAOAAPAUPQUAUOUQVBAGUOUQADDEFZEFZVBUOARCZUQVFNZAUBVGDRC
      ZVIVHSSADDUCUDUEJVEAEUFUGTZUHUOVAAUPUIZVBHZIVCUOUSVKUTVLAUJUOUQVBVJUKULAU
      PVBUMTUN $.
  $}

  ${
    $d M k $.  $d N k $.
    $( Join a successor to the end of a finite set of sequential integers.
       (Contributed by Mario Carneiro, 7-Mar-2014.) $)
    fzsuc2 $p |- ( ( M e. ZZ /\ N e. ( ZZ>= ` ( M - 1 ) ) ) ->
                   ( M ... ( N + 1 ) ) = ( ( M ... N ) u. { ( N + 1 ) } ) ) $=
      ( c1 cmin co cuz cfv wcel cz wceq caddc wo cfz csn cun cc oveq2d c0 sneqd
      uneq12d uzp1 zcn npcan sylancl uncom un0 eqtri clt wbr zre ltm1d peano2zm
      ax-1cn fzn mpdan mpbid fzsn 3eqtr4a eqtr4d oveq1 oveq2 eqeq12d syl5ibrcom
      wb imp wa fveq2d eleq2d biimpa fzsuc syl jaodan sylan2 ) BACDEZFGHAIHZBVN
      JZBVNCKEZFGZHZLABCKEZMEZABMEZVTNZOZJZVNBUAVOVPWEVSVOVPWEVOWEVPAVQMEZAVNME
      ZVQNZOZJVOWFAAMEZWIVOVQAAMVOAPHCPHVQAJAUBUMACUCUDZQVORANZOZWLWIWJWMWLROWL
      RWLUEWLUFUGVOWGRWHWLVOVNAUHUIZWGRJZVOAAUJUKVOVNIHWNWOVDAULAVNUNUOUPVOVQAW
      KSTAUQURUSVPWAWFWDWIVPVTVQAMBVNCKUTZQVPWBWGWCWHBVNAMVAVPVTVQWPSTVBVCVEVOV
      SVFBAFGZHZWEVOVSWRVOVRWQBVOVQAFWKVGVHVIABVJVKVLVM $.
  $}

  $( ` ( M ... ( N + 1 ) ) ` is the disjoint union of ` ( M ... N ) ` with
     ` { ( N + 1 ) } ` .  (Contributed by Mario Carneiro, 7-Mar-2014.) $)
  fzp1disj $p |- ( ( M ... N ) i^i { ( N + 1 ) } ) = (/) $=
    ( cfz co c1 caddc csn cin c0 wceq wcel wn cle wbr elfzle2 elfzel2 clt ltp1d
    cz zre wb peano2z zltnle mpdan mpbid syl pm2.65i disjsn mpbir ) ABCDZBEFDZG
    HIJUKUJKZLULUKBMNZUKABOULBSKZUMLZUKABPUNBUKQNZUOUNBBTRUNUKSKUPUOUABUBBUKUCU
    DUEUFUGUJUKUHUI $.

  ${
    $d M k $.  $d N k $.
    $( Remove a successor from the end of a finite set of sequential integers.
       (Contributed by AV, 4-Sep-2019.) $)
    fzdifsuc $p |- ( N e. ( ZZ>= ` M )
        -> ( M ... N ) = ( ( M ... ( N + 1 ) ) \ { ( N + 1 ) } ) ) $=
      ( vk wcel cfz co cz elfzelz adantl wa cle wbr adantr elfz syl3anc syl2anc
      wb wn anbi2d bitr4d cuz cfv c1 caddc csn cdif cv eldifi syl simpr eluzel2
      eluzelz clt wne eldif peano2zd wceq elsn notbii bitr4i a1i anbi12d syl5bb
      nesym anass syl6bb zltlen zleltp1 eqrdav ) BAUAUBDZCABEFZABUCUDFZEFZVLUEZ
      UFZGCUGZVKDZVPGDZVJVPABHIVPVODZVRVJVSVPVMDZVRVPVMVNUHVPAVLHUIIVJVRJZVQAVP
      KLZVPBKLZJZVSWAVRAGDZBGDZVQWDQVJVRUJZVJWEVRABUKMZVJWFVRABULMZVPABNOWAVSWB
      VPVLUMLZJZWDWAVSWBVPVLKLZVLVPUNZJZJZWKWAVSWBWLJZWMJZWOVSVTVPVNDZRZJWAWQVP
      VMVNUOWAVTWPWSWMWAVRWEVLGDZVTWPQWGWHWABWIUPZVPAVLNOWSWMQWAWSVPVLUQZRWMWRX
      BCVLURUSVLVPVDUTVAVBVCWBWLWMVEVFWAWJWNWBWAVRWTWJWNQWGXAVPVLVGPSTWAWCWJWBW
      AVRWFWCWJQWGWIVPBVHPSTTVI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( Two ways of defining the first two values of a sequence on ` NN ` .
       (Contributed by NM, 5-Sep-2011.) $)
    fzprval $p |- ( A. x e. ( 1 ... 2 ) ( F ` x ) = if ( x = 1 , A , B )
                  <-> ( ( F ` 1 ) = A /\ ( F ` 2 ) = B ) ) $=
      ( cv cfv c1 wceq cif c2 cfz co wral cpr wa caddc df-2 fveq2 eqeq12d wne
      cz wcel 1z fzpr ax-mp oveq2i preq2i 3eqtr4i raleqi 1ex iftrue 1ne2 necomi
      2ex pm13.181 mpan2 neneqd iffalsed ralpr bitri ) AEZDFZVAGHZBCIZHZAGJKLZM
      VEAGJNZMGDFZBHZJDFZCHZOVEAVFVGGGGPLZKLZGVLNZVFVGGUAUBVMVNHUCGUDUEJVLGKQUF
      JVLGQUGUHUIVEVIVKAGJUJUNVCVBVHVDBVAGDRVCBCUKSVAJHZVBVJVDCVAJDRVOVCBCVOVAG
      VOJGTVAGTGJULUMVAJGUOUPUQURSUSUT $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( Two ways of defining the first three values of a sequence on ` NN ` .
       (Contributed by NM, 13-Sep-2011.) $)
    fztpval $p |- ( A. x e. ( 1 ... 3 ) ( F ` x )
                      = if ( x = 1 , A , if ( x = 2 , B , C ) )
                  <-> ( ( F ` 1 ) = A /\ ( F ` 2 ) = B /\ ( F ` 3 ) = C ) ) $=
      ( cfv c1 wceq c2 c3 cfz co ctp caddc ax-mp fveq2 eqeq12d wne gtneii neeq1
      cv cif wral w3a cz wcel 1z fztp df-3 2cn ax-1cn addcomi eqtri oveq2i df-2
      tpeq3 tpeq2 3eqtr4i raleqi 1ex 2ex 3ex iftrue 1lt2 mpbiri ifnefalse eqtrd
      1re syl 1lt3 2re 2lt3 raltp bitri ) AUAZEFZVOGHZBVOIHZCDUBZUBZHZAGJKLZUCW
      AAGIJMZUCGEFZBHZIEFZCHZJEFZDHZUDWAAWBWCGGINLZKLZGGGNLZWJMZWBWCGUEUFWKWMHU
      GGUHOJWJGKJIGNLWJUIIGUJUKULUMZUNWCGIWJMZWMJWJHWCWOHWNJWJGIUPOIWLHWOWMHUOI
      WLGWJUQOUMURUSWAWEWGWIAGIJUTVAVBVQVPWDVTBVOGEPVQBVSVCQVRVPWFVTCVOIEPVRVTV
      SCVRVOGRZVTVSHZVRWPIGRGIVHVDSVOIGTVEVOGBVSVFZVIVRCDVCVGQVOJHZVPWHVTDVOJEP
      WSVTVSDWSWPWQWSWPJGRGJVHVJSVOJGTVEWRVIWSVOIRZVSDHWSWTJIRIJVKVLSVOJITVEVOI
      CDVFVIVGQVMVN $.
  $}

  $( Reversal of start and end of a finite set of sequential integers.
     (Contributed by NM, 25-Nov-2005.) $)
  fzrev $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( K e. ( ( J - N ) ... ( J - M ) ) <-> ( J - K ) e. ( M ... N ) ) ) $=
    ( cz wcel wa cmin co cle wbr cfz wb cr zre syl3an 3expb zsubcl ancoms elfz
    ancom suble 3comr adantll lesub adantlr anbi12d syl5rbbr ad2ant2lr ad2ant2r
    simprr syl3anc adantl simpll simplr 3bitr4d ) CEFZDEFZGZAEFZBEFZGZGZADHIZBJ
    KZBACHIZJKZGZCABHIZJKZVIDJKZGZBVDVFLIFZVICDLIFZVLVKVJGVCVHVKVJUAVCVKVEVJVGU
    RVBVKVEMZUQURUTVAVOUTVAURVOUTANFZVABNFZURDNFVOAOZBOZDOABDUBPUCQUDUQVBVJVGMZ
    URUQUTVAVTUQCNFUTVPVAVQVTCOVRVSCABUEPQUFUGUHVCVAVDEFZVFEFZVMVHMUSUTVAUKURUT
    WAUQVAUTURWAADRSUIUQUTWBURVAUTUQWBACRSUJBVDVFTULVCVIEFZUQURVNVLMVBWCUSABRUM
    UQURVBUNUQURVBUOVICDTULUP $.

  $( Reversal of start and end of a finite set of sequential integers.
     (Contributed by NM, 25-Nov-2005.) $)
  fzrev2 $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( K e. ( M ... N ) <-> ( J - K ) e. ( ( J - N ) ... ( J - M ) ) ) ) $=
    ( cz wcel wa cmin co cfz wb simpl zsubcl jca fzrev sylan2 wceq cc zcn nncan
    syl2an adantl eleq1d bitr2d ) CEFDEFGZAEFZBEFZGZGZABHIZADHIACHIJIFZAUJHIZCD
    JIZFZBUMFUHUEUFUJEFZGUKUNKUHUFUOUFUGLABMNAUJCDOPUIULBUMUHULBQZUEUFARFBRFUPU
    GASBSABTUAUBUCUD $.

  $( Reversal of start and end of a finite set of sequential integers.
     (Contributed by NM, 25-Nov-2005.) $)
  fzrev2i $p |- ( ( J e. ZZ /\ K e. ( M ... N ) )
                 -> ( J - K ) e. ( ( J - N ) ... ( J - M ) ) ) $=
    ( cz wcel co wa cmin simpr wb elfzel1 adantl elfzel2 simpl elfzelz syl22anc
    cfz fzrev2 mpbid ) AEFZBCDRGFZHZUBABIGADIGACIGRGFZUAUBJUCCEFZDEFZUABEFZUBUD
    KUBUEUABCDLMUBUFUABCDNMUAUBOUBUGUABCDPMABCDSQT $.

  $( The "complement" of a member of a finite set of sequential integers.
     (Contributed by NM, 20-Nov-2005.) $)
  fzrev3 $p |- ( K e. ZZ -> ( K e. ( M ... N )
                <-> ( ( M + N ) - K ) e. ( M ... N ) ) ) $=
    ( cz wcel cfz co caddc cmin w3a wa simpl elfzel1 adantl elfzel2 3jca wb zcn
    cc 3adant1 wceq pncan pncan2 syl2an eleq2d 3simpc zaddcl simp1 fzrev bitr3d
    oveq12d syl12anc pm5.21nd ) ADEZABCFGZEZBCHGZAIGZUOEZUNBDEZCDEZJZUNUPKUNUTV
    AUNUPLUPUTUNABCMNUPVAUNABCONPUNUSKUNUTVAUNUSLUSUTUNURBCMNUSVAUNURBCONPVBAUQ
    CIGZUQBIGZFGZEZUPUSUTVAVFUPQUNUTVAKZVEUOAUTBSEZCSEZVEUOUAVABRCRVHVIKVCBVDCF
    BCUBBCUCUKUDUETVBVGUQDEZUNVFUSQUNUTVAUFUTVAVJUNBCUGTUNUTVAUHUQABCUIULUJUM
    $.

  $( The "complement" of a member of a finite set of sequential integers.
     (Contributed by NM, 20-Nov-2005.) $)
  fzrev3i $p |- ( K e. ( M ... N ) -> ( ( M + N ) - K ) e. ( M ... N ) ) $=
    ( cfz co wcel caddc cmin cz wb elfzelz fzrev3 syl ibi ) ABCDEZFZBCGEAHEOFZP
    AIFPQJABCKABCLMN $.

  $( Finite set of sequential integers starting at 1.  (Contributed by NM,
     31-Aug-2011.)  (Revised by Mario Carneiro, 18-Jun-2015.) $)
  fznn $p |- ( N e. ZZ
              -> ( K e. ( 1 ... N ) <-> ( K e. NN /\ K <_ N ) ) ) $=
    ( c1 cfz co wcel cn cuz cfv wa cz cle wbr elfzuzb elnnuz anbi1i bitr4i eluz
    wb nnz sylan ancoms pm5.32da syl5bb ) ACBDEFZAGFZBAHIFZJZBKFZUFABLMZJUEACHI
    FZUGJUHACBNUFUKUGAOPQUIUFUGUJUFUIUGUJSZUFAKFUIULATABRUAUBUCUD $.

  $( Membership in a 1 based finite set of sequential integers.  (Contributed
     by AV, 30-Oct-2018.) $)
  elfz1b $p |- ( N e. ( 1 ... M ) <-> ( N e. NN /\ M e. NN /\ N <_ M ) ) $=
    ( c1 wcel cz w3a cle wbr wa cn wi cc0 clt simpl 0red 1red zre 3jca adantr
    cr cfz co elfz2 a1i simpr ltletr imp syl12anc elnnz sylanbrc 3ad2ant3 com12
    0lt1 impcom 3anim123i 3com23 letr syl ltletrd 3ad2ant2 syld simprr 1zzd nnz
    ex 3ad2ant1 nnge1 simp3 jca32 impbii bitri ) BCAUAUBDCEDZAEDZBEDZFZCBGHZBAG
    HZIZIZBJDZAJDZVQFZBCAUCVSWBVSVTWAVQVRVOVTVPVOVTKVQVOVPVTVNVLVPVTKVMVNVPVTVN
    VPIZVNLBMHZVTVNVPNWCLTDZCTDZBTDZFZLCMHZVPWDVNWHVPVNWEWFWGVNOVNPBQZRSWIWCUMU
    DVNVPUEWHWIVPIWDLCBUFUGUHBUIUJVEUKULSUNVOVRWAVOVRCAGHZWAVOWFWGATDZFZVRWKKVL
    VNVMWMVLWFVNWGVMWLCQWJAQZUOUPCBAUQURVMVLWKWAKVNVMWKWAVMWKIZVMLAMHWAVMWKNWOL
    CAWOOWOPVMWLWKWNSWIWOUMUDVMWKUEUSAUIUJVEUTVAUGVOVPVQVBRWBVOVPVQWBVLVMVNWBVC
    WAVTVMVQAVDUTVTWAVNVQBVDVFRVTWAVPVQBVGVFVTWAVQVHVIVJVK $.

  $( Membership in a finite set of sequential integers.  (Contributed by Paul
     Chapman, 21-Mar-2011.) $)
  elfzm11 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ... ( N - 1 ) ) <->
                                         ( K e. ZZ /\ M <_ K /\ K < N ) ) ) $=
    ( cz wcel wa c1 cmin co cfz cle wbr w3a clt wb peano2zm elfz1 sylan2 3anass
    zltlem1 anbi2d expcom pm5.32d 3bitr4g adantl bitr4d ) BDEZCDEZFABCGHIZJIEZA
    DEZBAKLZAUIKLZMZUKULACNLZMZUHUGUIDEUJUNOCPABUIQRUHUPUNOUGUHUKULUOFZFUKULUMF
    ZFUPUNUHUKUQURUKUHUQUROUKUHFUOUMULACTUAUBUCUKULUOSUKULUMSUDUEUF $.

  ${
    $d k M $.  $d k N $.
    $( Express an upper integer set as the disjoint (see ~ uzdisj ) union of
       the first ` N ` values and the rest.  (Contributed by Mario Carneiro,
       24-Apr-2014.) $)
    uzsplit $p |- ( N e. ( ZZ>= ` M ) -> ( ZZ>= ` M ) =
                  ( ( M ... ( N - 1 ) ) u. ( ZZ>= ` N ) ) ) $=
      ( vk cuz cfv wcel c1 cmin co cfz cun cv wo wa cle wbr cz eluzelz syl2an
      wb clt zlelttric eluz eluzel2 elfzm11 df-3an syl6bb syl2anr eluzle adantl
      w3a jca biantrurd bitr4d orbi12d mpbird orcomd ex elfzuz a1i uztrn expcom
      wi jaod impbid elun syl6bbr eqrdv ) BADEZFZCVIABGHIZJIZBDEZKZVJCLZVIFZVOV
      LFZVOVMFZMZVOVNFVJVPVSVJVPVSVJVPNZVRVQVTVRVQMBVOOPZVOBUAPZMZVJBQFZVOQFZWC
      VPABRZAVORZBVOUBSVTVRWAVQWBVJWDWEVRWATVPWFWGBVOUCSVTVQWEAVOOPZNZWBNZWBVPA
      QFZWDVQWJTVJAVOUDWFWKWDNVQWEWHWBUKWJVOABUEWEWHWBUFUGUHVTWIWBVPWIVJVPWEWHW
      GAVOUIULUJUMUNUOUPUQURVJVQVPVRVQVPVCVJVOAVKUSUTVRVJVPBVOAVAVBVDVEVOVLVMVF
      VGVH $.

    $( The first ` N ` elements of an upper integer set are distinct from any
       later members.  (Contributed by Mario Carneiro, 24-Apr-2014.) $)
    uzdisj $p |- ( ( M ... ( N - 1 ) ) i^i ( ZZ>= ` N ) ) = (/) $=
      ( vk c1 cmin co cfz cuz cfv cin c0 wss wceq wcel wbr cle syl mpbid zred
      cz cv elin simprbi eluzle eluzel2 eluzelz zlem1lt syl2anc simplbi elfzle2
      clt wb wn peano2zm lenltd pm2.21dd ssriv ss0 ax-mp ) ABDEFZGFZBHIZJZKLVCK
      MCVCKCUAZVCNZUTVDUKOZVDKNVEBVDPOZVFVEVDVBNZVGVEVDVANZVHVDVAVBUBZUCZBVDUDQ
      VEBTNZVDTNZVGVFULVEVHVLVKBVDUEQZVEVHVMVKBVDUFQZBVDUGUHRVEVDUTPOZVFUMVEVIV
      PVEVIVHVJUIVDAUTUJQVEVDUTVEVDVOSVEUTVEVLUTTNVNBUNQSUORUPUQVCURUS $.
  $}

  ${
    fseq1p1m1.1 $e |- H = { <. ( N + 1 ) , B >. } $.
    $( Add/remove an item to/from the end of a finite sequence.  (Contributed
       by Paul Chapman, 17-Nov-2012.)  (Revised by Mario Carneiro,
       7-Mar-2014.) $)
    fseq1p1m1 $p |- ( N e. NN0 ->
        ( ( F : ( 1 ... N ) --> A /\ B e. A /\ G = ( F u. H ) ) <->
          ( G : ( 1 ... ( N + 1 ) ) --> A /\ ( G ` ( N + 1 ) ) = B /\
            F = ( G |` ( 1 ... N ) ) ) ) ) $=
      ( cn0 wcel c1 co wf cun wceq cfv cres csn c0 cn 3syl cfz w3a caddc wa cin
      simpr1 nn0p1nn adantr simpr2 fsng mpbiri syl2anc snssd fssd fzp1disj fun2
      cop a1i syl21anc cz cmin cuz simpl cc0 nn0uz 1m1e0 fveq2i eqtr4i syl6eleq
      1z fzsuc2 sylancr eqcomd feq2d mpbid simpr3 feq1d mpbird wfn wb fnresdisj
      reseq1d ffn uneq1d resundir uncom un0 eqtr2i 3eqtr4g fnresdm 3eqtrd nn0zd
      fveq1d peano2zd snidg fvres fveq1i fvsng syl5eq 3eqtr3d incom uneq2d 3jca
      eqcomi 3eqtrrd fzssp1 fssres sylancl nnuz eluzfz2 ffvelrnd eqeltrrd opeq2
      wss fnressn sneqd eqtrd syl6reqr uneq12d reseq2d resundi syl6req impbida
      syl ) FHIZJFUAKZACLZBAIZDCEMZNZUBZJFJUCKZUAKZADLZYLDOZBNZCDYFPZNZUBZYEYKU
      DZYNYPYRYTYNYMAYILZYTYFYLQZMZAYILZUUAYTYGUUBAELZYFUUBUEZRNZUUDYEYGYHYJUFZ
      YTUUBBQZAEYTYLSIZYHUUBUUIELZYEUUJYKFUGZUHZYEYGYHYJUIZUUJYHUDZUUKEYLBUQZQZ
      NGYLBSAEUJUKULZYTBAUUNUMUNZUUGYTJFUOURZYFUUBACEUPUSYTUUCYMAYIYTYMUUCYTJUT
      IZFJJVAKZVBOZIZYMUUCNZVJYTFHUVCYEYKVCZHVDVBOUVCVEUVBVDVBVFVGVHZVIJFVKZVLV
      MVNVOYTYMADYIYEYGYHYJVPZVQVRYTYLDUUBPZOZYLEOZYOBYTYLUVJEYTUVJYIUUBPZEUUBP
      ZEYTDYIUUBUVIWBYTCUUBPZUVNMRUVNMZUVMUVNYTUVORUVNYTUUGUVORNZUUTYTYGCYFVSZU
      UGUVQVTUUHYFACWCZYFUUBCWATVOWDCEUUBWEUVPUVNRMUVNRUVNWFUVNWGWHWIYTUUEEUUBV
      SZUVNENUUSUUBAEWCUUBEWJTWKWMYTYLUTIYLUUBIUVKYONYTFYTFUVFWLWNYLUTWOYLUUBDW
      PTYTUUJYHUVLBNUUMUUNUUOUVLYLUUQOBYLEUUQGWQYLBSAWRWSULWTYTYQYIYFPZCYFPZCYT
      DYIYFUVIWBYTUWBEYFPZMUWBRMZUWAUWBYTUWCRUWBYTUUBYFUEZRNZUWCRNZYTUWEUUFRUUB
      YFXAUUTWSYTUUKUVTUWFUWGVTUURUUBUUIEWCUUBYFEWATVOXBCEYFWEUWDUWBUWBWGXDWIYT
      YGUVRUWBCNUUHUVSYFCWJTXEXCYEYSUDZYGYHYJUWHYGYFAYQLZUWHYNYFYMXNUWIYEYNYPYR
      UFZJFXFYMAYFDXGXHUWHYFACYQYEYNYPYRVPZVQVRUWHYOBAYEYNYPYRUIZUWHYMAYLDUWJUW
      HYLJVBOZIYLYMIZUWHYLSUWMYEUUJYSUULUHXIVIJYLXJYDZXKXLUWHYIYQUVJMZDYMPZDUWH
      CYQEUVJUWKUWHUVJUUQEUWHUVJYLYOUQZQZUUQUWHDYMVSZUWNUVJUWSNUWHYNUWTUWJYMADW
      CZYDUWOYMYLDXOULUWHYPUWSUUQNUWLYPUWRUUPYOBYLXMXPYDXQGXRXSUWHUWQDUUCPUWPUW
      HYMUUCDUWHUVAUVDUVEVJUWHFHUVCYEYSVCUVGVIUVHVLXTDYFUUBYAYBUWHYNUWTUWQDNUWJ
      UXAYMDWJTXEXCYC $.
  $}

  ${
    fseq1m1p1.1 $e |- H = { <. N , B >. } $.
    $( Add/remove an item to/from the end of a finite sequence.  (Contributed
       by Paul Chapman, 17-Nov-2012.) $)
    fseq1m1p1 $p |- ( N e. NN ->
        ( ( F : ( 1 ... ( N - 1 ) ) --> A /\ B e. A /\ G = ( F u. H ) ) <->
          ( G : ( 1 ... N ) --> A /\ ( G ` N ) = B /\
            F = ( G |` ( 1 ... ( N - 1 ) ) ) ) ) ) $=
      ( cn wcel c1 co cfz wf cop csn cun wceq w3a cfv cc cmin caddc cres cn0 wb
      nnm1nn0 eqid fseq1p1m1 syl nncn ax-1cn npcan sylancl opeq1d sneqd syl6eqr
      uneq2d eqeq2d 3anbi3d oveq2d feq2d fveq2d eqeq1d 3anbi12d 3bitr3d ) FHIZJ
      FJUAKZLKZACMZBAIZDCVGJUBKZBNZOZPZQZRZJVKLKZADMZVKDSZBQZCDVHUCQZRZVIVJDCEP
      ZQZRJFLKZADMZFDSZBQZWARVFVGUDIVPWBUEFUFABCDVMVGVMUGUHUIVFVOWDVIVJVFVNWCDV
      FVMECVFVMFBNZOEVFVLWIVFVKFBVFFTIJTIVKFQFUJUKFJULUMZUNUOGUPUQURUSVFVRWFVTW
      HWAVFVQWEADVFVKFJLWJUTVAVFVSWGBVFVKFDWJVBVCVDVE $.
  $}

  ${
    $d k N $.
    $( Quantification over a one-member finite set of sequential integers in
       terms of substitution.  (Contributed by NM, 28-Nov-2005.) $)
    fz1sbc $p |- ( N e. ZZ
        -> ( A. k e. ( N ... N ) ph <-> [. N / k ]. ph ) ) $=
      ( cz wcel wsbc cv wceq wi wal cfz co wral sbc6g df-ral elfz1eq syl5ibrcom
      elfz3 eleq1 impbid2 imbi1d albidv syl5rbb bitr2d ) CDEZABCFBGZCHZAIZBJZAB
      CCKLZMZABCDNUKUFUJEZAIZBJUEUIABUJOUEUMUHBUEULUGAUEULUGUFCPUEULUGCUJECRUFC
      UJSQTUAUBUCUD $.
  $}

  $( An integer is a member of a 0-based finite set of sequential integers iff
     its successor is a member of the corresponding 1-based set.  (Contributed
     by Paul Chapman, 22-Jun-2011.) $)
  elfzp1b $p |- ( ( K e. ZZ /\ N e. ZZ ) ->
                ( K e. ( 0 ... ( N - 1 ) ) <-> ( K + 1 ) e. ( 1 ... N ) ) ) $=
    ( cz wcel wa c1 caddc co cfz cc0 wb peano2z 1z fzsubel mpanl1 mpanr2 sylan2
    cmin cc wceq ancoms zcn ax-1cn pncan sylancl 1m1e0 oveq1i a1i adantr bitr2d
    eleq12d ) ACDZBCDZEAFGHZFBIHDZUNFRHZFFRHZBFRHZIHZDZAJURIHZDZUMULUOUTKZULUMU
    NCDZVCALUMVDFCDZVCMVEUMVDVEEVCMUNFFBNOPQUAULUTVBKUMULUPAUSVAULASDFSDUPATAUB
    UCAFUDUEUSVATULUQJURIUFUGUHUKUIUJ $.

  $( An integer is a member of a 1-based finite set of sequential integers iff
     its predecessor is a member of the corresponding 0-based set.
     (Contributed by Paul Chapman, 22-Jun-2011.) $)
  elfzm1b $p |- ( ( K e. ZZ /\ N e. ZZ ) ->
                ( K e. ( 1 ... N ) <-> ( K - 1 ) e. ( 0 ... ( N - 1 ) ) ) ) $=
    ( cz wcel c1 cfz co cmin wb wa 1z fzsubel mpanl1 mpanr2 1m1e0 oveq1i eleq2i
    cc0 syl6bb ancoms ) BCDZACDZAEBFGDZAEHGZRBEHGZFGZDZIUAUBJUCUDEEHGZUEFGZDZUG
    UAUBECDZUCUJIZKUKUAUBUKJULKAEEBLMNUIUFUDUHRUEFOPQST $.

  $( Options for membership in a finite interval of integers.  (Contributed by
     Jeff Madsen, 18-Jun-2010.) $)
  elfzp12 $p |- ( N e. ( ZZ>= ` M ) -> ( K e. ( M ... N ) <->
                                ( K = M \/ K e. ( ( M + 1 ) ... N ) ) ) ) $=
    ( cuz cfv wcel cfz co wceq c1 caddc wo cz elfzelz anim2i eluzel2 syl5ibrcom
    wa eleq1 imdistani jaodan csn cun fzpred eleq2d elun syl6bb elsncg sylan9bb
    orbi1d pm5.21nd ) CBDEFZABCGHZFZABIZABJKHZCGHZFZLZULAMFZRZUNUTULABCNOULUOVA
    URULUOUTULUTUOBMFBCPABMSQTURUTULAUPCNOUAULUNABUBZFZURLZUTUSULUNAVBUQUCZFVDU
    LUMVEABCUDUEAVBUQUFUGUTVCUOURABMUHUJUIUK $.

  $( Choices for an element of a finite interval of integers.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  fzm1 $p |- ( N e. ( ZZ>= ` M ) -> ( K e. ( M ... N ) <->
                              ( K e. ( M ... ( N - 1 ) ) \/ K = N ) ) ) $=
    ( cuz wcel wceq cfz co c1 wo wb wa eleq2d adantl c0 clt wbr cz adantr mpbid
    cfv cmin wi oveq1 elfz1eq syl6bir olc syl6 noel eluzelz ltm1d breq2 eluzel2
    zred 1zzd zsubcld syl2anc mtbiri pm2.21d eluzfz2 ad2antrr eleq1 mpbird jaod
    fzn ex impbid caddc elfzp1 cc zcnd npcan1 oveq2d eqeq2d orbi2d 3bitr3d uzm1
    syl mpjaodan ) CBDUAZEZCBFZABCGHZEZABCIUBHZGHZEZACFZJZKWEVTEZWAWBLZWDWIWBWD
    WIUCWAWBWDWHWIWBWDACCGHZEWHWBWLWCACBCGUDMACUEUFWHWGUGUHNWKWGWDWHWKWGWDWKWGA
    OEAUIWKWFOAWKWEBPQZWFOFZWKWECPQZWMWKCWKCWACREZWBBCUJZSZUNUKWBWOWMKWACBWEPUL
    NTWKBREZWEREWMWNKWAWSWBBCUMSWKCIWRWKUOUPBWEVEUQTMURUSWKWHWDWKWHLWDCWCEZWAWT
    WBWHBCUTVAWHWDWTKWKACWCVBNVCVFVDVGWAWJLZABWEIVHHZGHZEZWGAXBFZJZWDWIWJXDXFKW
    AABWEVINXAXCWCAXAXBCBGXACVJEXBCFXACWAWPWJWQSVKCVLVRZVMMXAXEWHWGXAXBCAXGVNVO
    VPBCVQVS $.

  $( No finite set of sequential integers equals an upper set of integers.
     (Contributed by NM, 11-Dec-2005.) $)
  fzneuz $p |- ( ( N e. ( ZZ>= ` M ) /\ K e. ZZ )
               -> -. ( M ... N ) = ( ZZ>= ` K ) ) $=
    ( cuz cfv wcel cz wa cfz co wceq wn c1 peano2uz adantl wbr ad2antrr nelneq2
    caddc syl2anc cle eluzelz clt zre ltp1d wb peano2z zltnle mpdan syl elfzle2
    mpbid nsyl eqcom sylnib eluzfz2 sylancom wo simpr adantr eluzdc df-dc sylib
    wdc mpjaodan ) CBDEFZAGFZHZCADEZFZBCIJZVIKZLZVJLZVHVJHZVIVKKZVLVOCMSJZVIFZV
    QVKFZLZVPLVJVRVHACNOVFVTVGVJVFVQCUAPZVSVFCGFZWALZBCUBZWBCVQUCPZWCWBCCUDUEWB
    VQGFWEWCUFCUGCVQUHUIULUJVQBCUKUMQVQVIVKRTVIVKUNUOVHVNCVKFZVMVFWFVGVNBCUPQCV
    KVIRUQVHVJVDZVJVNURVHVGWBWGVFVGUSVFWBVGWDUTACVATVJVBVCVE $.

  $( Disjointness of the upper integers and a finite sequence.  (Contributed by
     Mario Carneiro, 30-Jun-2013.)  (Revised by Mario Carneiro,
     24-Aug-2013.) $)
  fznuz $p |- ( K e. ( M ... N ) -> -. K e. ( ZZ>= ` ( N + 1 ) ) ) $=
    ( cfz co wcel c1 caddc cuz cfv cle wbr elfzle2 clt wn cz wi elfzel2 eluzp1l
    ex syl wb elfzelz zltnle syl2anc sylibd mt2d ) ABCDEFZACGHEIJFZACKLZABCMUHU
    ICANLZUJOZUHCPFZUIUKQABCRZUMUIUKCASTUAUHUMAPFUKULUBUNABCUCCAUDUEUFUG $.

  $( Disjointness of the upper integers and a finite sequence.  (Contributed by
     Mario Carneiro, 24-Aug-2013.) $)
  uznfz $p |- ( K e. ( ZZ>= ` N ) -> -. K e. ( M ... ( N - 1 ) ) ) $=
    ( cuz cfv wcel c1 cmin co cfz cle wbr eluzle clt wn cz eluzel2 wi elfzel1
    wa w3a elfzm11 simp3 syl6bi impancom mpancom syl5com eluzelz zltnle syl2anc
    wb sylibd mt2d ) ACDEFZABCGHIZJIFZCAKLZCAMUNUPACNLZUQOZUNCPFZUPURCAQZBPFZUP
    UTURRABUOSVBUTUPURVBUTTUPAPFZBAKLZURUAURABCUBVCVDURUCUDUEUFUGUNVCUTURUSUKCA
    UHVAACUIUJULUM $.

  $( One plus the upper bound of a finite set of integers is not a member of
     that set.  (Contributed by Scott Fenton, 16-Dec-2017.) $)
  fzp1nel $p |- -. ( N + 1 ) e. ( M ... N ) $=
    ( c1 caddc co cfz wcel wn cz w3a cle wbr wa wi clt zre ltp1d peano2z zltnle
    wb mpdan mpbid intnand 3ad2ant2 elfz2 notbii imnan bitr4i mpbir ) BCDEZABFE
    GZHZAIGZBIGZUJIGZJZAUJKLZUJBKLZMZHZNZUNUMUTUOUNURUQUNBUJOLZURHZUNBBPQUNUOVB
    VCTBRBUJSUAUBUCUDULUPUSMZHVAUKVDUJABUEUFUPUSUGUHUI $.

  ${
    $d j k x K $.  $d j k x M $.  $d j k x N $.  $d k x ph $.
    $( Reversal of scanning order inside of a quantification over a finite set
       of sequential integers.  (Contributed by NM, 25-Nov-2005.) $)
    fzrevral $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
     -> ( A. j e. ( M ... N ) ph
         <-> A. k e. ( ( K - N ) ... ( K - M ) ) [. ( K - k ) / j ]. ph ) ) $=
      ( cz wcel cfz co wral cv cmin wsbc wi wa wb elfzelz syl wceq simpr sylan2
      w3a fzrev anassrs mpbid rspsbc ex 3impa ralrimdv nfv nfcv nfsbc1v nfralxy
      com23 fzrev2i oveq2 sbceq1d rspcv cc zcn zcnd nncan syl2an eqcomd sbceq1a
      sylibrd ralrimd 3ad2ant3 impbid ) EGHZFGHZDGHZUCZABEFIJZKZABDCLZMJZNZCDFM
      JZDEMJZIJZKZVNVPVSCWBVNVQWBHZVPVSVKVLVMWDVPVSOZOVKVLPZVMPZWDWEWGWDPZVRVOH
      ZWEWHWDWIWGWDUAWDWGVQGHZWDWIQZVQVTWARWFVMWJWKDVQEFUDUEUBUFABVRVOUGSUHUIUO
      UJVMVKWCVPOVLVMWCABVOVMBUKVSBCWBBWBULABVRUMUNVMBLZVOHZWCAVMWMWCAOVMWMPZWC
      ABDDWLMJZMJZNZAWNWOWBHWCWQODWLEFUPVSWQCWOWBVQWOTABVRWPVQWODMUQURUSSWNWLWP
      TAWQQWNWPWLVMDUTHWLUTHWPWLTWMDVAWMWLWLEFRVBDWLVCVDVEABWPVFSVGUHUOVHVIVJ
      $.

    $( Reversal of scanning order inside of a quantification over a finite set
       of sequential integers.  (Contributed by NM, 25-Nov-2005.) $)
    fzrevral2 $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
        -> ( A. j e. ( ( K - N ) ... ( K - M ) ) ph
             <-> A. k e. ( M ... N ) [. ( K - k ) / j ]. ph ) ) $=
      ( cz wcel cmin co cfz wral wb w3a zsubcl 3adant2 3adant3 cc wceq zcn wsbc
      cv simp1 fzrevral syl3anc nncan oveq12d syl3an raleqdv bitrd 3coml ) DGHZ
      EGHZFGHZABDFIJZDEIJZKJLZABDCUBIJUAZCEFKJZLZMULUMUNNZUQURCDUPIJZDUOIJZKJZL
      ZUTVAUOGHZUPGHZULUQVEMULUNVFUMDFOPULUMVGUNDEOQULUMUNUCABCDUOUPUDUEVAURCVD
      USULDRHZUMERHZUNFRHZVDUSSDTETFTVHVIVJNVBEVCFKVHVIVBESVJDEUFQVHVJVCFSVIDFU
      FPUGUHUIUJUK $.

    $( Reversal of scanning order inside of a quantification over a finite set
       of sequential integers.  (Contributed by NM, 20-Nov-2005.) $)
    fzrevral3 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( A. j e. ( M ... N ) ph
              <-> A. k e. ( M ... N ) [. ( ( M + N ) - k ) / j ]. ph ) ) $=
      ( cz wcel wa cfz co wral caddc cv cmin wsbc wb zaddcl fzrevral cc zcn
      mpd3an3 wceq pncan pncan2 oveq12d syl2an raleqdv bitrd ) DFGZEFGZHZABDEIJ
      ZKZABDELJZCMNJOZCUNENJZUNDNJZIJZKZUOCULKUIUJUNFGUMUSPDEQABCUNDERUAUKUOCUR
      ULUIDSGZESGZURULUBUJDTETUTVAHUPDUQEIDEUCDEUDUEUFUGUH $.

    $( Shift the scanning order inside of a quantification over a finite set of
       sequential integers.  (Contributed by NM, 27-Nov-2005.) $)
    fzshftral $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
        -> ( A. j e. ( M ... N ) ph
          <-> A. k e. ( ( M + K ) ... ( N + K ) ) [. ( k - K ) / j ]. ph ) ) $=
      ( vx cz wcel cfz co wral cc0 cmin wsbc caddc wb wa cc wceq cv 0z fzrevral
      w3a mp3an3 3adant3 zsubcl mpan id syl3an 3com12 elfzelz oveq2 sbcco3g syl
      sylan2 ralbidva 3ad2ant3 cneg df-neg oveq2i subneg addcom syl5eqr 3adant2
      zcn eqtrd oveq12d 3coml raleqdv zcnd negsubdi2 syl2an sbceq1d 3bitrd ) EH
      IZFHIZDHIZUDZABEFJKLZABMGUAZNKZOZGMFNKZMENKZJKLZWCGDCUAZNKZOZCDWENKZDWDNK
      ZJKZLZABWGDNKZOZCEDPKZFDPKZJKZLZVPVQVTWFQZVRVPVQMHIZWTUBABGMEFUCUEUFVQVPV
      RWFWMQZVQWDHIZVPWEHIZVRVRXBXAVQXCUBMFUGUHXAVPXDUBMEUGUHVRUIWCGCDWDWEUCUJU
      KVSWMABMWHNKZOZCWLLZXFCWRLZWSVRVPWMXGQVQVRWIXFCWLWGWLIVRWGHIZWIXFQZWGWJWK
      ULVRXIRWHHIXJDWGUGAGBWHWBXEHWAWHMNUMUNUOUPUQURVSXFCWLWRVPESIZVQFSIZVRDSIZ
      WLWRTZEVFFVFDVFZXMXKXLXNXMXKXLUDWJWPWKWQJXMXKWJWPTXLXMXKRZWJDEUSZNKZWPXQW
      EDNEUTVAXPXRDEPKWPDEVBDEVCVGVDUFXMXLWKWQTXKXMXLRZWKDFUSZNKZWQXTWDDNFUTVAX
      SYADFPKWQDFVBDFVCVGVDVEVHVIUJVJVRVPXHWSQVQVRXFWOCWRVRWGWRIZRABXEWNVRXMWGS
      IZXEWNTYBXOYBWGWGWPWQULVKXMYCRXEWHUSWNWHUTDWGVLVDVMVNUQURVOVO $.
  $}

  $( Membership of an integer greater than 1 decreased by 1 in a 1 based finite
     set of sequential integers (Contributed by Alexander van der Vekens,
     14-Sep-2018.) $)
  ige2m1fz1 $p |- ( N e. ( ZZ>= ` 2 ) -> ( N - 1 ) e. ( 1 ... N ) ) $=
    ( c2 cuz cfv wcel c1 cmin co cfz wceq 1e2m1 a1i oveq2d 2nn uzsubsubfz1 mpan
    cn eqeltrd ) ABCDEZAFGHABFGHZGHZFAIHZSFTAGFTJSKLMBQESUAUBENBAOPR $.

  $( Membership in a 0 based finite set of sequential integers.  (Contributed
     by Alexander van der Vekens, 18-Jun-2018.)  (Proof shortened by Alexander
     van der Vekens, 15-Sep-2018.) $)
  ige2m1fz $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. ( 0 ... N ) ) $=
    ( cn0 wcel c2 cle wbr wa c1 cfz co cc0 cmin cuz cfv 1eluzge0 fzss1 ax-mp cz
    wss 2z a1i nn0z adantr simpr eluz2 syl3anbrc ige2m1fz1 syl sseldi ) ABCZDAE
    FZGZHAIJZKAIJZAHLJZHKMNCUMUNSOHKAPQULADMNCZUOUMCULDRCZARCZUKUPUQULTUAUJURUK
    AUBUCUJUKUDDAUEUFAUGUHUI $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Finite intervals of nonnegative integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Finite intervals of nonnegative integers (or "finite sets of sequential
nonnegative integers") are finite intervals of integers with 0 as lower bound:
` ( 0 ... N ) `, usually abbreviated by "fz0".
$)

  $( Membership in a finite set of sequential nonnegative integers.
     (Contributed by NM, 16-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfz2nn0 $p |- ( K e. ( 0 ... N ) <-> ( K e. NN0 /\ N e. NN0 /\ K <_ N ) ) $=
    ( cc0 cuz cfv wcel cn0 cle wbr cfz w3a elnn0uz anbi1i eluznn0 eluzle adantl
    wa co cz nn0z jca wb eluz syl2an biimprd impr impbida pm5.32i bitr3i 3anass
    elfzuzb 3bitr4i ) ACDEFZBADEFZQZAGFZBGFZABHIZQZQZACBJRFUPUQURKUOUPUNQZUTUPU
    MUNALMUPUNUSUPUNUSVAUQURBANUNURUPABOPUAUPUQURUNUPUQQUNURUPASFBSFUNURUBUQATB
    TABUCUDUEUFUGUHUIACBUKUPUQURUJUL $.

  $( Characterization of a finite set of sequential nonnegative integers.
     (Contributed by NM, 1-Aug-2005.) $)
  fznn0 $p |- ( N e. NN0
                -> ( K e. ( 0 ... N ) <-> ( K e. NN0 /\ K <_ N ) ) ) $=
    ( cn0 wcel cc0 cfz co cz cle wbr w3a wa wb nn0z elfz1 sylancr df-3an elnn0z
    0z anbi1i bitr4i syl6bb ) BCDZAEBFGDZAHDZEAIJZABIJZKZACDZUGLZUCEHDBHDUDUHMS
    BNAEBOPUHUEUFLZUGLUJUEUFUGQUIUKUGARTUAUB $.

  $( A member of a finite set of sequential nonnegative integers is a
     nonnegative integer.  (Contributed by NM, 5-Aug-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfznn0 $p |- ( K e. ( 0 ... N ) -> K e. NN0 ) $=
    ( cc0 cfz co wcel cn0 cle wbr elfz2nn0 simp1bi ) ACBDEFAGFBGFABHIABJK $.

  $( The upper bound of a nonempty finite set of sequential nonnegative
     integers is a nonnegative integer.  (Contributed by NM, 16-Sep-2005.)
     (Revised by Mario Carneiro, 28-Apr-2015.) $)
  elfz3nn0 $p |- ( K e. ( 0 ... N ) -> N e. NN0 ) $=
    ( cc0 cfz co wcel cn0 cle wbr elfz2nn0 simp2bi ) ACBDEFAGFBGFABHIABJK $.

  $( 0 is an element of a finite set of sequential nonnegative integers with a
     nonnegative integer as upper bound.  (Contributed by AV, 6-Apr-2018.) $)
  0elfz $p |- ( N e. NN0 -> 0 e. ( 0 ... N ) ) $=
    ( cn0 wcel cc0 cle wbr cfz co 0nn0 a1i id nn0ge0 elfz2nn0 syl3anbrc ) ABCZD
    BCZODAEFDDAGHCPOIJOKALDAMN $.

  $( A nonnegative integer is always part of the finite set of sequential
     nonnegative integers with this integer as upper bound.  (Contributed by
     Scott Fenton, 21-Mar-2018.) $)
  nn0fz0 $p |- ( N e. NN0 <-> N e. ( 0 ... N ) ) $=
    ( cn0 wcel cc0 cfz co cle wbr nn0re leidd fznn0 mpbir2and elfz3nn0 impbii
    id ) ABCZADAEFCZPQPAAGHPOPAAIJAAKLAAMN $.

  $( An element of a finite set of sequential nonnegative integers is an
     element of an extended finite set of sequential nonnegative integers.
     (Contributed by Alexander van der Vekens, 28-Mar-2018.)  (Proof shortened
     by OpenAI, 25-Mar-2020.) $)
  elfz0add $p |- ( ( A e. NN0 /\ B e. NN0 )
                   -> ( N e. ( 0 ... A ) -> N e. ( 0 ... ( A + B ) ) ) ) $=
    ( cn0 wcel wa cc0 cfz co caddc cuz cfv wss cz nn0z uzid syl anim12i uzaddcl
    id fzss2 sseld ) ADEZBDEZFZGAHIZGABJIZHIZCUEUGAKLZEZUFUHMUEAUIEZUDFUJUCUKUD
    UDUCANEUKAOAPQUDTRBAASQAGUGUAQUB $.

  $( An element of a finite set of sequential nonnegative integers is an
     element of an extended finite set of sequential nonnegative integers.
     (Contributed by Alexander van der Vekens, 28-Mar-2018.)  Obsolete version
     of ~ elfz0add as of 25-Mar-2020.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  elfz0addOLD $p |- ( ( A e. NN0 /\ B e. NN0 )
                   -> ( N e. ( 0 ... A ) -> N e. ( 0 ... ( A + B ) ) ) ) $=
    ( cn0 wcel wa cc0 cfz co caddc cuz cfv wss cz cle wbr nn0z adantr cr nn0re
    nn0addcl nn0zd nn0ge0 adantl addge01 syl2an mpbid eluz2 syl3anbrc fzss2 syl
    wb sseld ) ADEZBDEZFZGAHIZGABJIZHIZCUPURAKLEZUQUSMUPANEZURNEAUROPZUTUNVAUOA
    QRUPURABUAUBUPGBOPZVBUOVCUNBUCUDUNASEBSEVCVBULUOATBTABUEUFUGAURUHUIAGURUJUK
    UM $.

  $( An integer range from 0 to 2 is an unordered triple.  (Contributed by
     Alexander van der Vekens, 1-Feb-2018.) $)
  fz0tp $p |- ( 0 ... 2 ) = { 0 , 1 , 2 } $=
    ( cc0 c2 cfz co caddc c1 ctp 2cn addid2i eqcomi oveq2i cz wcel wceq 0z fztp
    ax-mp eqid id a1i 0p1e1 tpeq123d 3eqtri ) ABCDAABEDZCDZAAFEDZUDGZAFBGZBUDAC
    UDBBHIZJKALMUEUGNOAPQAANZUGUHNARUJAAUFFUDBUJSUFFNUJUATUDBNUJUITUBQUC $.

  $( An element of a finite set of sequential nonnegative integers is an
     element of a finite set of sequential nonnegative integers with the upper
     bound being an element of the finite set of sequential nonnegative
     integers with the same lower bound as for the first interval and the
     element under consideration as upper bound.  (Contributed by Alexander van
     der Vekens, 3-Apr-2018.) $)
  elfz0ubfz0 $p |- ( ( K e. ( 0 ... N ) /\ L e. ( K ... N ) )
                     -> K e. ( 0 ... L ) ) $=
    ( cc0 cfz co wa cn0 cle wbr w3a wi elfz2nn0 cz elfz2 elnn0z sylbi com12 imp
    wcel simpr1 simpr 0z zletr mp3an1 simplbi2 sylsyld impancom adantr 3ad2ant3
    expd com13 3ad2ant1 impcom simplrl 3jca ex sylibr ) ADCEFTZBACEFTZGAHTZBHTZ
    ABIJZKZADBEFTUSUTVDUSVACHTZACIJZKZUTVDLACMUTVGVDUTANTZCNTZBNTZKZVCBCIJZGZGZ
    VGVDLBACOVNVGVDVNVGGVAVBVCVNVAVEVFUAVGVNVBVAVEVNVBLVFVNVAVBVKVMVAVBLZVJVHVM
    VOLVIVMVJVOVCVJVOLVLVAVJVCVBVAVHDAIJZGVJVCVBLZLAPVHVJVPVQVHVJGZVPVCVBVRVJVP
    VCGZDBIJZVBVHVJUBDNTVHVJVSVTLUCDABUDUEVBVJVTBPUFUGUKUHQULUIRUJSRUMUNVKVCVLV
    GUOUPUQQRQSABMUR $.

  $( A member of a finite set of sequential nonnegative integers is a member of
     a finite set of sequential nonnegative integers with a member of a finite
     set of sequential nonnegative integers starting at the upper bound of the
     first interval.  (Contributed by Alexander van der Vekens,
     27-May-2018.) $)
  elfz0fzfz0 $p |- ( ( M e. ( 0 ... L ) /\ N e. ( L ... X ) )
                     -> M e. ( 0 ... N ) ) $=
    ( cc0 cfz co wcel wa cn0 cle wbr w3a wi elfz2nn0 cz cr adantr imp sylbi zre
    elfz2 nn0re 3anim123i 3expa letr syl simplll simpr elnn0z 0red adantl exp4b
    syl3anc com23 sylanbrc 3jca ex syld 3impia com13 com12 3ad2ant3 sylibr ) BE
    AFGHZCADFGHZIBJHZCJHZBCKLZMZBECFGHVEVFVJVEVGAJHZBAKLZMZVFVJNBAOVFVMVJVFAPHZ
    DPHZCPHZMZACKLZCDKLZIZIVMVJNZCADUBVQVTWAVPVNVTWANVOVTVPWAVRVPWANVSVMVPVRVJV
    GVKVLVPVRVJNZNVGVKIZVPVLWBWCVPVLVRVJWCVPIZVLVRIZVIVJWDBQHZAQHZCQHZMZWEVINVG
    VKVPWIVGWFVKWGVPWHBUCAUCCUAZUDUEBACUFUGWDVIVJWDVIIZVGVHVIVGVKVPVIUHWKVPECKL
    ZVHWDVPVIWCVPUIRWDVIWLWCVPVIWLNZVGVPWMNZVKVGBPHZEBKLZIWNBUJWOWPWNWOVPWPWMWO
    VPWPVIWLWOVPIZEQHWFWHWPVIIWLNWQUKWOWFVPBUARVPWHWOWJULEBCUFUNUMUOSTRSSCUJUPW
    DVIUIUQURUSUMUOUTVARVBVCSTVBTSBCOVD $.

  $( If a member of a finite set of sequential integers with a lower bound
     being a member of a finite set of sequential nonnegative integers with the
     same upper bound, this member is also a member of the finite set of
     sequential nonnegative integers.  (Contributed by Alexander van der
     Vekens, 21-Apr-2018.) $)
  fz0fzelfz0 $p |- ( ( N e. ( 0 ... R ) /\ M e. ( N ... R ) )
                     -> M e. ( 0 ... R ) ) $=
    ( cc0 cfz co wcel wa cn0 cle wbr w3a wi elfz2nn0 cz adantr 3jca imp sylbi
    cr elfz2 simplr 0red nn0re zre adantl nn0ge0 anim1i letr elnn0z exp31 com23
    sylc sylanbrc 3ad2ant1 com13 adantrd 3ad2ant3 simpr2 simplrr com12 sylibr
    ex ) CDAEFZGZBCAEFGZHBIGZAIGZBAJKZLZBVDGVEVFVJVECIGZVHCAJKZLZVFVJMCANVFVMVJ
    VFCOGZAOGZBOGZLZCBJKZVIHZHZVMVJMBCAUAVTVMVJVTVMHVGVHVIVTVMVGVQVSVMVGMZVPVNV
    SWAMVOVPVRWAVIVMVRVPVGVKVHVRVPVGMMVLVKVPVRVGVKVPVRVGVKVPHZVRHZVPDBJKZVGVKVP
    VRUBWCDTGZCTGZBTGZLZDCJKZVRHWDWBWHVRWBWEWFWGWBUCVKWFVPCUDPVPWGVKBUEUFQPWBWI
    VRVKWIVPCUGPUHDCBUIUMBUJUNUKULUOUPUQURRRVTVKVHVLUSVQVRVIVMUTQVCSVASRBANVB
    $.

  $( Subtraction closure for a member of a finite set of sequential nonnegative
     integers.  (Contributed by NM, 26-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fznn0sub2 $p |- ( K e. ( 0 ... N ) -> ( N - K ) e. ( 0 ... N ) ) $=
    ( cc0 cfz co wcel cmin cle wbr elfzle1 cz wb elfzel2 elfzelz cr zre subge02
    syl2an syl2anc mpbid cuz cfv cn0 fznn0sub nn0uz syl6eleq elfz5 mpbird ) ACB
    DEZFZBAGEZUIFZUKBHIZUJCAHIZUMACBJUJBKFZAKFZUNUMLZACBMZACBNUOBOFAOFUQUPBPAPB
    AQRSTUJUKCUAUBZFUOULUMLUJUKUCUSACBUDUEUFURUKCBUGSUH $.

  $( Membership of an integer greater than L decreased by L in a finite set of
     sequential nonnegative integers.  (Contributed by Alexander van der
     Vekens, 16-Sep-2018.) $)
  uzsubfz0 $p |- ( ( L e. NN0 /\ N e. ( ZZ>= ` L ) )
                   -> ( N - L ) e. ( 0 ... N ) ) $=
    ( cn0 wcel cuz cfv wa cc0 cfz co cmin cle wbr simpl eluznn0 eluzle elfz2nn0
    adantl syl3anbrc fznn0sub2 syl ) ACDZBAEFDZGZAHBIJZDZBAKJUEDUDUBBCDABLMZUFU
    BUCNBAOUCUGUBABPRABQSABTUA $.

  $( The difference of an integer in a finite set of sequential nonnegative
     integers and and an integer of a finite set of sequential integers with
     the same upper bound and the nonnegative integer as lower bound is a
     member of the finite set of sequential nonnegative integers.  (Contributed
     by Alexander van der Vekens, 6-Jun-2018.) $)
  fz0fzdiffz0 $p |- ( ( M e. ( 0 ... N ) /\ K e. ( M ... N ) )
                      -> ( K - M ) e. ( 0 ... N ) ) $=
    ( cc0 cfz co wcel wa cn0 cle wbr w3a adantl wb elfznn0 adantr mpbid wi cz
    cr cmin fz0fzelfz0 elfzle1 nn0sub syl2anr elfz3nn0 elfz2 zsubcl zred ancoms
    elfz2nn0 3adant2 zre 3ad2ant3 3ad2ant2 3jca nn0ge0 nn0re syl2an anim1i letr
    subge02 sylc exp31 a1i com14 impcom sylbi com13 3adant3 imp mpancom sylibr
    ) BDCEFZGZABCEFGZHZABUAFZIGZCIGZVRCJKZLZVRVNGAVNGZVQWBCABUBWCVQHZVSVTWAWDBA
    JKZVSVQWEWCVPWEVOABCUCMMVQBIGZAIGWEVSNWCVOWFVPBCOPACOBAUDUEQWCVTVQACUFPVQWA
    WCVOVPWAVOWFVTBCJKZLVPWARZBCUKWFVTWHWGVTWFWHVPWFVTWAVPBSGZCSGZASGZLZWEACJKZ
    HZHWFVTWARRZABCUGWNWLWOWMWLWORWEVTWLWFWMWAWLWFWMWARRRVTWLWFWMWAWLWFHZWMHVRT
    GZATGZCTGZLZVRAJKZWMHWAWPWTWMWLWTWFWLWQWRWSWIWKWQWJWKWIWQWKWIHVRABUHUIUJULW
    KWIWRWJAUMUNZWJWIWSWKCUMUOUPPPWPXAWMWPDBJKZXAWFXCWLBUQMWLWRBTGXCXANWFXBBURA
    BVBUSQUTVRACVAVCVDVEVFMVGVHVIVGVJVHVKMUPVLVRCUKVM $.

  $( Subtracting the lower bound of a finite set of sequential integers from an
     element of this set.  (Contributed by Alexander van der Vekens,
     29-Mar-2018.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
  elfzmlbm $p |- ( K e. ( M ... N ) -> ( K - M ) e. ( 0 ... ( N - M ) ) ) $=
    ( cfz wcel cmin cn0 cle wbr cc0 cuz cfv elfzuz uznn0sub syl elfzuz2 elfzelz
    co zred elfzel2 elfzel1 elfzle2 lesub1dd elfz2nn0 syl3anbrc ) ABCDREZABFRZG
    EZCBFRZGEZUGUIHIUGJUIDREUFABKLZEUHABCMBANOUFCUKEUJABCPBCNOUFACBUFAABCQSUFCA
    BCTSUFBABCUASABCUBUCUGUIUDUE $.

  $( Subtracting the lower bound of a finite set of sequential integers from an
     element of this set.  (Contributed by Alexander van der Vekens,
     29-Mar-2018.)  Obsolete version of ~ elfzmlbm as of 25-Mar-2020.
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  elfzmlbmOLD $p |- ( K e. ( M ... N ) -> ( K - M ) e. ( 0 ... ( N - M ) ) ) $=
    ( cz wcel w3a cle wbr wa cmin co cn0 cfz wi znn0sub biimpd com12 impcom zre
    cr cc0 3adant2 adantr 3anim123i 3com23 syl 3adant3 imp 3com13 lesub1 adantl
    letr syld wb 3jca elfz2 elfz2nn0 3imtr4i ) BDEZCDEZADEZFZBAGHZACGHZIZIZABJK
    ZLEZCBJKZLEZVGVIGHZFABCMKEVGUAVIMKEVFVHVJVKVEVBVHVCVBVHNVDVBVCVHUSVAVCVHNUT
    USVAIVCVHBAOPUBQUCRVBVEVJVBVEBCGHZVJVBBTEZATEZCTEZFZVEVLNUSVAUTVPUSVMVAVNUT
    VOBSZASZCSZUDUEBACULUFUSUTVLVJNVAUSUTIVLVJBCOPUGUMUHVEVBVKVDVBVKNVCVBVDVKVB
    VDVKVBVNVOVMFZVDVKUNVAUTUSVTVAVNUTVOUSVMVRVSVQUDUIACBUJUFPQUKRUOABCUPVGVIUQ
    UR $.

  $( Subtracting the lower bound of a finite set of sequential integers from an
     element of this set.  (Contributed by Alexander van der Vekens,
     29-Mar-2018.) $)
  elfzmlbp $p |- ( ( N e. ZZ /\ K e. ( M ... ( M + N ) ) )
                   -> ( K - M ) e. ( 0 ... N ) ) $=
    ( cz wcel co cfz wa cn0 cle wbr w3a cc0 wi wb adantr cr zre adantl imp cmin
    caddc elfz2 znn0sub biimpcd impcom zaddcl adantlr zred letr syl3anc addge01
    syl2an elnn0z simplbi2 sylbird syld df-3an bitr3i 3anim123i sylbi lesubadd2
    3ancoma syl biimprcd 3jca exp31 com23 3adant2 com12 syl5bi elfz2nn0 sylibr
    ) CDEZABBCUBFZGFEZHABUAFZIEZCIEZVQCJKZLZVQMCGFEVNVPWAVPBDEZVODEZADEZLZBAJKZ
    AVOJKZHZHZVNWAABVOUCWIVNWAWEWHVNWANZWBWDWHWJNWCWBWDHZVNWHWAWKVNWHWAWKVNHZWH
    HVRVSVTWHWLVRWFWLVRNWGWLWFVRWKWFVROVNBAUDPUEPUFWLWHVSWLWHBVOJKZVSWLBQEZAQEZ
    VOQEWHWMNWKWNVNWBWNWDBRZPZPWKWOVNWDWOWBARZSPWLVOWBVNWCWDBCUGUHUIBAVOUJUKWLW
    MMCJKZVSWKWNCQEZWSWMOVNWQCRZBCULUMVNWSVSNWKVSVNWSCUNUOSUPUQTWHWLVTWGWLVTNWF
    WLVTWGWLWOWNWTLZVTWGOWLWDWBVNLZXBWLWBWDVNLXCWBWDVNURWBWDVNVCUSWDWOWBWNVNWTW
    RWPXAUTVAABCVBVDVESUFVFVGVHVITVJVKTVQCVLVM $.

  $( Lemma for theorems about the central binomial coefficient.  (Contributed
     by Mario Carneiro, 8-Mar-2014.)  (Revised by Mario Carneiro,
     2-Aug-2014.) $)
  fzctr $p |- ( N e. NN0 -> N e. ( 0 ... ( 2 x. N ) ) ) $=
    ( cn0 wcel cc0 c2 cmul co cfz cle wbr nn0ge0 caddc cr nn0re nn0addge1 nn0cn
    mpancom 2timesd breqtrrd cz wa wb nn0z 0zd 2z zmulcl sylancr elfz mpbir2and
    syl3anc ) ABCZADEAFGZHGCZDAIJZAULIJZAKUKAAALGZULIAMCUKAUPIJANAAOQUKAAPRSUKA
    TCZDTCULTCZUMUNUOUAUBAUCZUKUDUKETCUQURUEUSEAUFUGADULUHUJUI $.

  $( The difference of two integers from a finite set of sequential nonnegative
     integers is also element of this finite set of sequential integers.
     (Contributed by Alexander van der Vekens, 12-Jun-2018.) $)
  difelfzle $p |- ( ( K e. ( 0 ... N ) /\ M e. ( 0 ... N ) /\ K <_ M )
                   -> ( M - K ) e. ( 0 ... N ) ) $=
    ( cc0 co wcel cle wbr w3a cn0 cz wa wi elfznn0 nn0z syl2anr adantr cr nn0re
    wb cfz cmin zsubcl subge0 biimpar jca exp31 syl2im elnn0z elfz3nn0 3ad2ant1
    3imp sylibr elfz2nn0 resubcl syl2an 3ad2ant2 nn0ge0 adantl subge02 mpbid ex
    simpl3 letrd sylbi syl5com a1dd syl3anbrc ) ADCUAEZFZBVIFZABGHZIZBAUBEZJFZC
    JFZVNCGHZVNVIFVMVNKFZDVNGHZLZVOVJVKVLVTVJAJFZVKBJFZVLVTMACNZBCNWAWBVLVTWAWB
    LZVLLVRVSWDVRVLWBBKFAKFVRWABOAOBAUCPQWDVSVLWBBRFZARFZVSVLTWABSZASZBAUDPUEUF
    UGUHULVNUIUMVJVKVPVLACUJUKVJVKVLVQVJVKVQVLVJWAVKVQWCVKWBVPBCGHZIZWAVQMBCUNW
    JWAVQWJWALZVNBCWJWEWFVNRFWAWBVPWEWIWGUKZWHBAUOUPWJWEWAWLQWJCRFZWAVPWBWMWICS
    UQQWKDAGHZVNBGHZWAWNWJAURUSWJWEWFWNWOTWAWLWHBAUTUPVAWBVPWIWAVCVDVBVEVFVGULV
    NCUNVH $.

  $( The difference of two integers from a finite set of sequential nonnegative
     integers increased by the upper bound is also element of this finite set
     of sequential integers.  (Contributed by Alexander van der Vekens,
     12-Jun-2018.) $)
  difelfznle $p |- ( ( K e. ( 0 ... N ) /\ M e. ( 0 ... N ) /\ -. K <_ M )
                   -> ( ( M + N ) - K ) e. ( 0 ... N ) ) $=
    ( cc0 co wcel cle wbr w3a caddc cn0 cz elfz2nn0 wa 3adant3 sylbi cr zred wb
    syl wn cmin nn0addcl nn0zd elfzelz zsubcl syl2anr adantr elfzel2 nn0readdcl
    cfz adantl elfzle2 elfzle1 nn0re anim12ci addge02 anim12i letr imp syl31anc
    mpbid zre readdcl sylan subge0 mpbird elnn0z sylanbrc elfz3nn0 3ad2ant1 clt
    wi zltnle ancoms ltle sylbird syl2an 3impia leadd1d lesubadd2d syl3anbrc )
    ADCUKEZFZBWCFZABGHUAZIZBCJEZAUBEZKFZCKFZWICGHZWIWCFWGWILFZDWIGHZWJWDWEWMWFW
    EWHLFZALFZWMWDWEBKFZWKBCGHZIZWOBCMZWQWKWOWRWQWKNWHBCUCUDOPADCUEZWHAUFUGOWGW
    NAWHGHZWDWEXBWFWDWENZAQFZCQFZWHQFZACGHZCWHGHZNZXBWDXDWEWDAXARUHZWDXEWEWDCAD
    CUIRUHZWEXFWDWEWSXFWTWQWKXFWRBCUJOPULZWDXGWEXHADCUMWEDBGHZXHBDCUNWEXEBQFZNZ
    XMXHSWEWSXOWTWQWKXOWRWQXNWKXEBUOZCUOZUPOPCBUQTVBURXDXEXFIXIXBACWHUSUTVAOWGX
    FXDNZWNXBSWDWEXRWFWDWPWEXRXAWPXDWEXFAVCZWEXNXENZXFWEWSXTWTWQWKXTWRWQXNWKXEX
    PXQUROPBCVDTUPVEOWHAVFTVGWIVHVIWDWEWKWFACVJVKWGWLWHACJEGHZWGBAGHZYAWDWEWFYB
    WDWPBLFZWFYBVMWEXABDCUEZWPYCNWFBAVLHZYBYCWPYEWFSBAVNVOYCXNXDYEYBVMWPBVCXSBA
    VPUGVQVRVSWDWEYBYASWFXCBACWEXNWDWEBYDRULXJXKVTOVBWDWEWLYASWFXCWHACXLXJXKWAO
    VGWICMWB $.

  ${
    $( Express the set of nonnegative integers as the disjoint (see ~ nn0disj )
       union of the first ` N + 1 ` values and the rest.  (Contributed by AV,
       8-Nov-2019.) $)
    nn0split $p |- ( N e. NN0
                     -> NN0 = ( ( 0 ... N ) u. ( ZZ>= ` ( N + 1 ) ) ) ) $=
      ( cn0 wcel cc0 cuz cfv c1 caddc co cmin cfz wceq nn0uz peano2nn0 syl6eleq
      cun a1i uzsplit syl cc nn0cn pncan1 oveq2d uneq1d 3eqtrd ) ABCZBDEFZDAGHI
      ZGJIZKIZUHEFZPZDAKIZUKPBUGLUFMQUFUHUGCUGULLUFUHBUGANMODUHRSUFUJUMUKUFUIAD
      KUFATCUIALAUAAUBSUCUDUE $.

    $d N k $.
    $( The first ` N + 1 ` elements of the set of nonnegative integers are
       distinct from any later members.  (Contributed by AV, 8-Nov-2019.) $)
    nn0disj $p |- ( ( 0 ... N ) i^i ( ZZ>= ` ( N + 1 ) ) ) = (/) $=
      ( vk cc0 cfz co c1 caddc cuz cfv c0 wceq wcel clt wbr cle syl cz mpbid wn
      zred cin wss cv cmin elin simprbi eluzel2 eluzelz zlem1lt syl2anc simplbi
      eluzle wb elfzle2 elfzel2 adantr sylbi lenltd pncan1 eqcomd breq1d notbid
      wa cc zcnd bitrd pm2.21dd ssriv ss0 ax-mp ) CADEZAFGEZHIZUAZJUBVNJKBVNJBU
      CZVNLZVLFUDEZVOMNZVOJLVPVLVOONZVRVPVOVMLZVSVPVOVKLZVTVOVKVMUEZUFZVLVOULPV
      PVLQLZVOQLZVSVRUMVPVTWDWCVLVOUGPVPVTWEWCVLVOUHPZVLVOUIUJRVPVOAONZVRSZVPWA
      WGVPWAVTWBUKVOCAUNPVPWGAVOMNZSWHVPVOAVPVOWFTVPAVPWAVTVCAQLZWBWAWJVTVOCAUO
      UPUQZTURVPWIVRVPAVQVOMVPVQAVPAVDLVQAKVPAWKVEAUSPUTVAVBVFRVGVHVNVIVJ $.
  $}

  $( A one value function.  (Contributed by Alexander van der Vekens,
     3-Dec-2017.) $)
  1fv $p |- ( ( N e. V /\ P = { <. 0 , N >. } )
                 -> ( P : ( 0 ... 0 ) --> V /\ ( P ` 0 ) = N ) ) $=
    ( wcel cc0 cop csn wceq wa cfz co wf cfv wf1o cz f1osng mpan biimpi adantr
    0z wfo crn wi f1ofo dffo2 wss fzsn ax-mp eqcomi feq2i snssi fss syl2an 3syl
    ex mpcom fvsng jca wb feq1 fveq1 eqeq1d anbi12d adantl mpbird ) BCDZAEBFGZH
    ZIEEJKZCALZEAMZBHZIZVICVGLZEVGMZBHZIZVFVQVHVFVNVPEGZBGZVGNZVFVNEODZVFVTTEBO
    CPQVTVRVSVGUAZVRVSVGLZVGUBVSHZIZVFVNUCZVRVSVGUDWBWEVRVSVGUERWCWFWDWCVFVNWCV
    IVSVGLZVSCUFVNVFWCWGVRVIVSVGVIVRWAVIVRHTEUGUHUIUJRBCUKVIVSCVGULUMUOSUNUPWAV
    FVPTEBOCUQQURSVHVMVQUSVFVHVJVNVLVPVICAVGUTVHVKVOBEAVGVAVBVCVDVE $.

  ${
    $d P a b c d $.  $d V a b c d $.
    $( The first four function values of a word of length at least 4.
       (Contributed by Alexander van der Vekens, 18-Nov-2017.) $)
    4fvwrd4 $p |- ( ( L e. ( ZZ>= ` 3 ) /\ P : ( 0 ... L ) --> V )
                    -> E. a e. V E. b e. V E. c e. V E. d e. V
                       ( ( ( P ` 0 ) = a /\ ( P ` 1 ) = b )
                      /\ ( ( P ` 2 ) = c /\ ( P ` 3 ) = d ) ) ) $=
      ( c3 cuz cfv wcel cc0 wa cv wceq wrex c1 c2 rexbii bitri cfz co simpr cn0
      wf 0nn0 elnn0uz mpbi 3nn0 uzss ax-mp sseli eluzfz sylancr adantr ffvelrnd
      wss risset eqcom sylib 1eluzge0 cz cle 1z 3z 1le3 eluz2 mpbir3an 2eluzge0
      wbr jca uzuzle23 mpan r19.42v anbi2i 2rexbii r19.41v anbi1i 3bitri sylibr
      jca32 ) BHIJZKZLBUAUBZCAUEZMZLAJZDNZOZDCPZQAJZENZOZECPZMZRAJZFNZOZFCPZHAJ
      ZGNZOZGCPZMZMZWIWMMZWRXBMZMGCPZFCPZECPDCPZWFWOWSXCWFWJWNWFWGCKZWJWFWDCLAW
      CWEUCZWCLWDKZWEWCLLIJZKZBXNKXMLUDKXOUFLUGUHWBXNBHXNKZWBXNUQHUDKXPUIHUGUHZ
      LHUJUKULLLBUMUNUOUPXKWHWGOZDCPWJDWGCURXRWIDCWHWGUSSTUTWFWKCKZWNWFWDCQAXLW
      CQWDKZWEWCQXNKBQIJZKXTVAWBYABHYAKZWBYAUQYBQVBKHVBKQHVCVJVDVEVFQHVGVHQHUJU
      KULQLBUMUNUOUPXSWLWKOZECPWNEWKCURYCWMECWLWKUSSTUTVKWFWPCKZWSWFWDCRAXLWCRW
      DKZWEWCRXNKBRIJKYEVIBVLRLBUMUNUOUPYDWQWPOZFCPWSFWPCURYFWRFCWQWPUSSTUTWFWT
      CKZXCWFWDCHAXLWCHWDKZWEXPWCYHXQHLBUMVMUOUPYGXAWTOZGCPXCGWTCURYIXBGCXAWTUS
      STUTWAXJXFWRXCMZMZFCPZECPDCPXFXDMZECPZDCPZXEXIYLDECCXHYKFCXHXFXGGCPZMYKXF
      XGGCVNYPYJXFWRXBGCVNVOTSVPYLYMDECCYLXFYJFCPZMYMXFYJFCVNYQXDXFWRXCFCVQVOTV
      PYOWIWNMZXDMZDCPYRDCPZXDMXEYNYSDCYNXFECPZXDMYSXFXDECVQUUAYRXDWIWMECVNVRTS
      YRXDDCVQYTWOXDWIWNDCVQVRVSVSVT $.
  $}

  ${
    $d F i $.  $d M i $.  $d P i $.
    $( Two functions over 0 based finite set of sequential integers are equal
       if and only if their domains have the same length and the function
       values are the same at each position.  (Contributed by Alexander van der
       Vekens, 30-Jun-2018.) $)
    2ffzeq $p |- ( ( M e. NN0 /\ F : ( 0 ... M ) --> X
                              /\ P : ( 0 ... N ) --> Y ) -> ( F = P
              <-> ( M = N /\ A. i e. ( 0 ... M ) ( F ` i ) = ( P ` i ) ) ) ) $=
      ( cn0 wcel cc0 cfz co wf w3a wceq cfv wa wfn wb ffn cv anim12i syl fzopth
      wral 3adant1 eqfnfv2 cuz elnn0uz sylbi simpr syl6bi anim1d anim1i impbid1
      oveq2 3ad2ant1 bitrd ) DHIZJDKLZFCMZJEKLZGAMZNZCAOZUTVBOZBUAZCPVGAPOBUTUE
      ZQZDEOZVHQZVDCUTRZAVBRZQZVEVISVAVCVNUSVAVLVCVMUTFCTVBGATUBUFBUTVBCAUGUCUS
      VAVIVKSVCUSVIVKUSVFVJVHUSVFJJOZVJQZVJUSDJUHPIVFVPSDUIJEJDUDUJVOVJUKULUMVJ
      VFVHDEJKUPUNUOUQUR $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Half-open integer ranges
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ..^ $.
  $( Syntax for half-open integer ranges. $)
  cfzo $a class ..^ $.

  ${
    $d m n N $.  $d m n M $.  $d x A $.  $d x M $.  $d x N $.  $d x K $.
    $d x B $.  $d x C $.  $d x D $.
    $( Define a function generating sets of integers using a _half-open_
       range.  Read ` ( M ..^ N ) ` as the integers from ` M ` up to, but not
       including, ` N ` ; contrast with ` ( M ... N ) ` ~ df-fz , which
       includes ` N ` .  Not including the endpoint simplifies a number of
       formulae related to cardinality and splitting; contrast ~ fzosplit with
       ~ fzsplit , for instance.  (Contributed by Stefan O'Rear,
       14-Aug-2015.) $)
    df-fzo $a |- ..^ = ( m e. ZZ , n e. ZZ |-> ( m ... ( n - 1 ) ) ) $.

    $( Functionality of the half-open integer set function.  (Contributed by
       Stefan O'Rear, 14-Aug-2015.) $)
    fzof $p |- ..^ : ( ZZ X. ZZ ) --> ~P ZZ $=
      ( vm vn cv c1 cmin co cfz cz cpw wcel wral cxp cfzo wf peano2zm fzf fovcl
      sylan2 rgen2a df-fzo fmpt2 mpbi ) ACZBCZDEFZGFZHIZJZBHKAHKHHLUGMNUHABHUDH
      JUCHJUEHJUHUDOUCUEUGHHGPQRSABHHUFUGMABTUAUB $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoel1 $p |- ( A e. ( B ..^ C ) -> B e. ZZ ) $=
      ( vm vn cz cv c1 cmin co cfz cfzo df-fzo elmpt2cl1 ) DEFFDGEGHIJKJBCLADEM
      N $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoel2 $p |- ( A e. ( B ..^ C ) -> C e. ZZ ) $=
      ( vm vn cz cv c1 cmin co cfz cfzo df-fzo elmpt2cl2 ) DEFFDGEGHIJKJBCLADEM
      N $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoelz $p |- ( A e. ( B ..^ C ) -> A e. ZZ ) $=
      ( cfzo co wcel cz cpw elfzoel1 elfzoel2 fzof fovcl syl2anc elpwid sseldd
      id ) ABCDEZFZQGARQGRBGFCGFQGHZFABCIABCJBCSGGDKLMNRPO $.
  $}

  ${
    $d x y z N $.  $d x y z M $.
    $( Value of the half-open integer set in terms of the closed integer set.
       (Contributed by Stefan O'Rear, 14-Aug-2015.) $)
    fzoval $p |- ( N e. ZZ -> ( M ..^ N ) = ( M ... ( N - 1 ) ) ) $=
      ( vx vy vz cz wcel cfzo co c1 cmin cfz cv wi elfzoel1 a1i elfzel1 wb wceq
      wa cpw peano2zm fzf fovcl sylan2 id oveq1 oveqan12d df-fzo mpd3an3 eleq2d
      ovmpt2ga expcom pm5.21ndd eqrdv ) BFGZCABHIZABJKIZLIZUPAFGZCMZUQGZVAUSGZV
      BUTNUPVAABOPVCUTNUPVAAURQPUTUPVBVCRUTUPTUQUSVAUTUPUSFUAZGZUQUSSUPUTURFGVE
      BUBAURVDFFLUCUDUEDEABFFDMZEMZJKIZLIUSHVDVFASZVGBSVFAVHURLVIUFVGBJKUGUHDEU
      IULUJUKUMUNUO $.
  $}

  $( Membership in a half-open finite set of integers.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.) $)
  elfzo $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ..^ N ) <->
        ( M <_ K /\ K < N ) ) ) $=
    ( cz wcel w3a c1 cmin co cfz cle wbr wa cfzo clt wb peano2zm syl3an3 fzoval
    elfz eleq2d 3ad2ant3 zltlem1 3adant2 anbi2d 3bitr4d ) ADEZBDEZCDEZFZABCGHIZ
    JIZEZBAKLZAUKKLZMZABCNIZEZUNACOLZMUIUGUHUKDEUMUPPCQABUKTRUIUGURUMPUHUIUQULA
    BCSUAUBUJUSUOUNUGUIUSUOPUHACUCUDUEUF $.

  $( Membership in a half-open integer interval.  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  elfzo2 $p |- ( K e. ( M ..^ N ) <->
      ( K e. ( ZZ>= ` M ) /\ N e. ZZ /\ K < N ) ) $=
    ( cz wcel w3a cle wbr clt wa cuz cfv cfzo an4 df-3an anbi1i 3ancoma 3bitr4i
    co eluz2 3bitri elfzoelz elfzoel1 elfzoel2 3jca elfzo biadan2 3anass ) ADEZ
    BDEZCDEZFZBAGHZACIHZJZJZABKLEZUKUNJZJZABCMSEZUQUKUNFUIUJJZUKJZUOJVAUMJZURJU
    PUSVAUKUMUNNULVBUOUIUJUKOPUQVCURUQUJUIUMFUIUJUMFVCBATUJUIUMQUIUJUMOUAPRUTUL
    UOUTUIUJUKABCUBABCUCABCUDUEABCUFUGUQUKUNUHR $.

  $( Membership in a half-open integer interval.  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  elfzouz $p |- ( K e. ( M ..^ N ) -> K e. ( ZZ>= ` M ) ) $=
    ( cfzo co wcel cuz cfv cz clt wbr elfzo2 simp1bi ) ABCDEFABGHFCIFACJKABCLM
    $.

  $( The left endpoint of a half-open integer interval is in the set iff the
     two arguments are integers with ` M < N ` .  This provides an alternative
     notation for the "strict upper integer" predicate by analogy to the "weak
     upper integer" predicate ` M e. ( ZZ>= `` N ) ` .  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  fzolb $p |- ( M e. ( M ..^ N ) <-> ( M e. ZZ /\ N e. ZZ /\ M < N ) ) $=
    ( cfzo co wcel cuz cfv clt wbr w3a elfzo2 eluzel2 uzid impbii 3anbi1i bitri
    cz ) AABCDEAAFGEZBQEZABHIZJAQEZSTJAABKRUASTRUAAALAMNOP $.

  $( The left endpoint of a half-open integer interval is in the set iff the
     two arguments are integers with ` M < N ` .  This provides an alternative
     notation for the "strict upper integer" predicate by analogy to the "weak
     upper integer" predicate ` M e. ( ZZ>= `` N ) ` .  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  fzolb2 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M e. ( M ..^ N ) <-> M < N ) ) $=
    ( cfzo co wcel cz wa clt wbr w3a fzolb df-3an bitri baib ) AABCDEZAFEZBFEZG
    ZABHIZOPQSJRSGABKPQSLMN $.

  $( A member in a half-open integer interval is greater than or equal to the
     lower bound.  (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  elfzole1 $p |- ( K e. ( M ..^ N ) -> M <_ K ) $=
    ( cfzo co cle wbr clt wa cz wb elfzoelz elfzoel1 elfzoel2 elfzo syl3anc ibi
    wcel simpld ) ABCDERZBAFGZACHGZTUAUBIZTAJRBJRCJRTUCKABCLABCMABCNABCOPQS $.

  $( A member in a half-open integer interval is less than the upper bound.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  elfzolt2 $p |- ( K e. ( M ..^ N ) -> K < N ) $=
    ( cfzo co cle wbr clt wa cz wb elfzoelz elfzoel1 elfzoel2 elfzo syl3anc ibi
    wcel simprd ) ABCDERZBAFGZACHGZTUAUBIZTAJRBJRCJRTUCKABCLABCMABCNABCOPQS $.

  $( Membership in a half-open integer interval implies that the bounds are
     unequal.  (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  elfzolt3 $p |- ( K e. ( M ..^ N ) -> M < N ) $=
    ( cfzo co wcel elfzoel1 zred elfzoelz elfzoel2 elfzole1 elfzolt2 lelttrd )
    ABCDEFZBACNBABCGHNAABCIHNCABCJHABCKABCLM $.

  $( A member in a half-open integer interval is less than the upper bound.
     (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzolt2b $p |- ( K e. ( M ..^ N ) -> K e. ( K ..^ N ) ) $=
    ( cfzo co wcel cz clt wbr elfzoelz elfzoel2 elfzolt2 fzolb syl3anbrc ) ABCD
    EFAGFCGFACHIAACDEFABCJABCKABCLACMN $.

  $( Membership in a half-open integer interval implies that the bounds are
     unequal.  (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzolt3b $p |- ( K e. ( M ..^ N ) -> M e. ( M ..^ N ) ) $=
    ( cfzo co wcel cz clt wbr elfzoel1 elfzoel2 elfzolt3 fzolb syl3anbrc ) ABCD
    EZFBGFCGFBCHIBOFABCJABCKABCLBCMN $.

  $( A half-open range does not contain its right endpoint.  (Contributed by
     Stefan O'Rear, 25-Aug-2015.) $)
  fzonel $p |- -. B e. ( A ..^ B ) $=
    ( cfzo co wcel clt wbr elfzolt2 elfzoel2 zred ltnrd pm2.65i ) BABCDEZBBFGBA
    BHMBMBBABIJKL $.

  $( The upper bound of a half-open range is greater or equal to an element of
     the range.  (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzouz2 $p |- ( K e. ( M ..^ N ) -> N e. ( ZZ>= ` K ) ) $=
    ( cfzo co wcel cz cle wbr cuz cfv elfzoelz elfzoel2 clt elfzolt2 wi cr ltle
    zre syl2an syl2anc mpd eluz2 syl3anbrc ) ABCDEFZAGFZCGFZACHIZCAJKFABCLZABCM
    ZUEACNIZUHABCOUEUFUGUKUHPZUIUJUFAQFCQFULUGASCSACRTUAUBACUCUD $.

  $( A half-open range is contained in the corresponding closed range.
     (Contributed by Stefan O'Rear, 23-Aug-2015.) $)
  elfzofz $p |- ( K e. ( M ..^ N ) -> K e. ( M ... N ) ) $=
    ( cfzo co wcel cuz cfv cfz elfzouz elfzouz2 elfzuzb sylanbrc ) ABCDEFABGHFC
    AGHFABCIEFABCJABCKABCLM $.

  $( Express membership in a half-open integer interval in terms of the "less
     than or equal" and "less than" predicates on integers, resp.
     ` K e. ( ZZ>= `` M ) <-> M <_ K ` , ` K e. ( K ..^ N ) <-> K < N ` .
     (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzo3 $p |- ( K e. ( M ..^ N ) <->
      ( K e. ( ZZ>= ` M ) /\ K e. ( K ..^ N ) ) ) $=
    ( cuz cfv wcel cz clt wbr wa cfzo co 3anass elfzo2 eluzelz fzolb bitri baib
    w3a wb syl pm5.32i 3bitr4i ) ABDEFZCGFZACHIZSUDUEUFJZJABCKLFUDAACKLFZJUDUEU
    FMABCNUDUHUGUDAGFZUHUGTBAOUHUIUGUHUIUEUFSUIUGJACPUIUEUFMQRUAUBUC $.

  ${
    $d x A $.  $d x B $.  $d x M $.  $d x N $.
    $( A half-open integer interval is inhabited iff it contains its left
       endpoint.  (Contributed by Jim Kingdon, 20-Apr-2020.) $)
    fzom $p |- ( E. x x e. ( M ..^ N ) <-> M e. ( M ..^ N ) ) $=
      ( cv cfzo co wcel wex elfzolt3b exlimiv elex2 impbii ) ADZBCEFZGZAHBNGZOP
      AMBCIJABNKL $.

    $( A half-open range is contained in the corresponding closed range.
       (Contributed by Stefan O'Rear, 23-Aug-2015.)  (Revised by Mario
       Carneiro, 29-Sep-2015.) $)
    fzossfz $p |- ( A ..^ B ) C_ ( A ... B ) $=
      ( vx cfzo co cfz cv elfzofz ssriv ) CABDEABFECGABHI $.
  $}

  $( A half-open set of sequential integers is empty if the bounds are equal or
     reversed.  (Contributed by Alexander van der Vekens, 30-Oct-2017.) $)
  fzon $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( N <_ M <-> ( M ..^ N ) = (/) ) ) $=
    ( cz wcel wa c1 cmin co clt wbr cfz c0 wceq cle cfzo wb peano2zm fzn sylan2
    zlem1lt ancoms fzoval adantl eqeq1d 3bitr4d ) ACDZBCDZEZBFGHZAIJZAUIKHZLMZB
    ANJZABOHZLMUGUFUICDUJULPBQAUIRSUGUFUMUJPBATUAUHUNUKLUGUNUKMUFABUBUCUDUE $.

  $( A half-open integer range is empty if the bounds are equal or reversed.
     (Contributed by AV, 20-Oct-2018.) $)
  fzonlt0 $p |- ( ( M e. ZZ /\ N e. ZZ )
                  -> ( -. M < N <-> ( M ..^ N ) = (/) ) ) $=
    ( cz wcel wa cle wbr clt wn cfzo co c0 wceq cr wb lenlt syl2anr fzon bitr3d
    zre ) ACDZBCDZEBAFGZABHGIZABJKLMUBBNDANDUCUDOUABTATBAPQABRS $.

  ${
    $d A x $.
    $( Half-open sets with equal endpoints are empty.  (Contributed by Stefan
       O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
    fzo0 $p |- ( A ..^ A ) = (/) $=
      ( vx cfzo co c0 wceq cv wcel wn wal wex fzonel fzom mtbir alnex mpbir eq0
      ) AACDZEFBGRHZIBJZTSBKZIUAARHAALBAAMNSBOPBRQP $.
  $}

  $( If ` K < N ` then ` N - K ` is a positive integer.  (Contributed by Mario
     Carneiro, 29-Sep-2015.)  (Revised by Mario Carneiro, 1-Jan-2017.) $)
  fzonnsub $p |- ( K e. ( M ..^ N ) -> ( N - K ) e. NN ) $=
    ( cfzo co wcel clt wbr cmin cn elfzolt2 cz elfzoelz elfzoel2 znnsub syl2anc
    wb mpbid ) ABCDEFZACGHZCAIEJFZABCKSALFCLFTUAQABCMABCNACOPR $.

  $( If ` M < N ` then ` N - M ` is a positive integer.  (Contributed by Mario
     Carneiro, 1-Jan-2017.) $)
  fzonnsub2 $p |- ( K e. ( M ..^ N ) -> ( N - M ) e. NN ) $=
    ( cfzo co wcel cmin cn elfzolt3b fzonnsub syl ) ABCDEZFBLFCBGEHFABCIBBCJK
    $.

  ${
    $d K x $.  $d M x $.  $d N x $.
    $( Subset relationship for half-open sequences of integers.  (Contributed
       by Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro,
       29-Sep-2015.) $)
    fzoss1 $p |- ( K e. ( ZZ>= ` M ) -> ( K ..^ N ) C_ ( M ..^ N ) ) $=
      ( vx cuz cfv wcel cfzo co cv wa cz elfzoel2 adantl c1 cmin cfz wss fzoval
      wceq fzss1 adantr 3sstr4d sseld impancom mpd ex ssrdv ) ABEFGZDACHIZBCHIZ
      UIDJZUJGZULUKGZUIUMKCLGZUNUMUOUIULACMNUIUOUMUNUIUOKZUJUKULUPACOPIZQIZBUQQ
      IZUJUKUIURUSRUOABUQUAUBUOUJURTUIACSNUOUKUSTUIBCSNUCUDUEUFUGUH $.
  $}

  $( Subset relationship for half-open sequences of integers.  (Contributed by
     Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  fzoss2 $p |- ( N e. ( ZZ>= ` K ) -> ( M ..^ K ) C_ ( M ..^ N ) ) $=
    ( cuz cfv wcel c1 cmin co cfz cfzo wss cz caddc eluzel2 peano2zm syl fzoval
    cc wceq 1zzd id zcnd ax-1cn sylancl fveq2d eleqtrrd eluzsub syl3anc eluzelz
    npcan fzss2 3sstr4d ) CADEZFZBAGHIZJIZBCGHIZJIZBAKIZBCKIZUOURUPDEFZUQUSLUOU
    PMFZGMFCUPGNIZDEZFVBUOAMFZVCACOZAPQUOUAUOCUNVEUOUBUOVDADUOASFGSFVDATUOAVGUC
    UDAGUKUEUFUGGUPCUHUIUPBURULQUOVFUTUQTVGBARQUOCMFVAUSTACUJBCRQUM $.

  $( Subset of a half open range.  (Contributed by Alexander van der Vekens,
     1-Nov-2017.) $)
  fzossrbm1 $p |- ( N e. ZZ -> ( 0 ..^ ( N - 1 ) ) C_ ( 0 ..^ N ) ) $=
    ( cz wcel c1 cmin co cuz cfv cc0 cfzo wss cle wbr peano2zm id zre syl3anbrc
    lem1d eluz2 fzoss2 syl ) ABCZAADEFZGHCZIUCJFIAJFKUBUCBCUBUCALMUDANUBOUBAAPR
    UCASQUCIATUA $.

  $( Subset relationship for half-open integer ranges with lower bounds 0 and
     1.  (Contributed by Alexander van der Vekens, 18-Mar-2018.) $)
  fzo0ss1 $p |- ( 1 ..^ N ) C_ ( 0 ..^ N ) $=
    ( c1 cc0 cuz cfv wcel cfzo co wss 1eluzge0 fzoss1 ax-mp ) BCDEFBAGHCAGHIJBC
    AKL $.

  $( A half-open integer range starting at a nonnegative integer is a subset of
     the nonnegative integers.  (Contributed by Alexander van der Vekens,
     13-May-2018.) $)
  fzossnn0 $p |- ( M e. NN0 -> ( M ..^ N ) C_ NN0 ) $=
    ( cn0 wcel cfzo co cc0 cfz fzossfz wss cuz fzss1 nn0uz eleq2s syl5ss fzssuz
    cfv sseqtr4i syl6ss ) ACDZABEFZGBHFZCTUAABHFZUBABIUCUBJAGKQZCAGBLMNOUBUDCGB
    PMRS $.

  $( One direction of splitting a half-open integer range in half.
     (Contributed by Stefan O'Rear, 14-Aug-2015.) $)
  fzospliti $p |- ( ( A e. ( B ..^ C ) /\ D e. ZZ ) ->
      ( A e. ( B ..^ D ) \/ A e. ( D ..^ C ) ) ) $=
    ( cfzo co wcel cz wa wo cle wbr clt simpr elfzoelz adantr a1d elfzo syl3anc
    wb zlelttric syl2anc orcomd elfzole1 ancrd elfzolt2 ancld elfzoel1 elfzoel2
    orim12d mpd orbi12d mpbird ) ABCEFGZDHGZIZABDEFGZADCEFGZJBAKLZADMLZIZDAKLZA
    CMLZIZJZUPUTVBJVEUPVBUTUPUOAHGZVBUTJUNUONZUNVFUOABCOPZDAUAUBUCUPUTVAVBVDUPU
    TUSUPUSUTUNUSUOABCUDPQUEUPVBVCUPVCVBUNVCUOABCUFPQUGUJUKUPUQVAURVDUPVFBHGZUO
    UQVATVHUNVIUOABCUHPVGABDRSUPVFUOCHGZURVDTVHVGUNVJUOABCUIPADCRSULUM $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( Split a half-open integer range in half.  (Contributed by Stefan O'Rear,
       14-Aug-2015.) $)
    fzosplit $p |- ( D e. ( B ... C ) -> ( B ..^ C ) =
          ( ( B ..^ D ) u. ( D ..^ C ) ) ) $=
      ( vx cfz co wcel cfzo cun cv wa wo simpr elfzelz adantr cuz cfv wss syl
      cz fzospliti syl2anc elun sylibr ssrdv elfzuz3 fzoss2 elfzuz fzoss1 unssd
      ex eqssd ) CABEFGZABHFZACHFZCBHFZIZUMDUNUQUMDJZUNGZURUQGZUMUSKZURUOGURUPG
      LZUTVAUSCTGZVBUMUSMUMVCUSCABNOURABCUAUBURUOUPUCUDUKUEUMUOUPUNUMBCPQGUOUNR
      CABUFCABUGSUMCAPQGUPUNRCABUHCABUISUJUL $.

    $( Abutting half-open integer ranges are disjoint.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    fzodisj $p |- ( ( A ..^ B ) i^i ( B ..^ C ) ) = (/) $=
      ( vx cfzo co cin c0 wceq cv wcel wn wi disj1 cle wbr clt elfzolt2 cz wb
      elfzoelz elfzoel2 zltnle syl2anc mpbid elfzole1 nsyl mpgbir ) ABEFZBCEFZG
      HIDJZUIKZUKUJKZLMDDUIUJNULBUKOPZUMULUKBQPZUNLZUKABRULUKSKBSKUOUPTUKABUAUK
      ABUBUKBUCUDUEUKBCUFUGUH $.

    $( Split an upper integer set into a half-open integer range and another
       upper integer set.  (Contributed by Mario Carneiro, 21-Sep-2016.) $)
    fzouzsplit $p |- ( B e. ( ZZ>= ` A ) ->
      ( ZZ>= ` A ) = ( ( A ..^ B ) u. ( ZZ>= ` B ) ) ) $=
      ( vx cuz cfv wcel co cun cv wo wa clt wbr cle cz eluzelz zlelttric syl2an
      cfzo wb orcomd id elfzo2 df-3an bitri baib syl2anr eluz orbi12d mpbird ex
      w3a elun syl6ibr ssrdv wss elfzouz ssriv a1i uzss unssd eqssd ) BADEZFZVC
      ABSGZBDEZHZVDCVCVGVDCIZVCFZVHVEFZVHVFFZJZVHVGFVDVIVLVDVIKZVLVHBLMZBVHNMZJ
      VMVOVNVDBOFZVHOFZVOVNJVIABPZAVHPZBVHQRUAVMVJVNVKVOVIVIVPVJVNTVDVIUBVRVJVI
      VPKZVNVJVIVPVNULVTVNKVHABUCVIVPVNUDUEUFUGVDVPVQVKVOTVIVRVSBVHUHRUIUJUKVHV
      EVFUMUNUOVDVEVFVCVEVCUPVDCVEVCVHABUQURUSABUTVAVB $.

    $( A half-open integer range does not overlap the upper integer range
       starting at the endpoint of the first range.  (Contributed by Mario
       Carneiro, 21-Sep-2016.) $)
    fzouzdisj $p |- ( ( A ..^ B ) i^i ( ZZ>= ` B ) ) = (/) $=
      ( vx cfzo co cuz cfv cin c0 wceq cv wcel wn eq0 wa elfzolt2 adantr adantl
      clt wbr cle eluzle cz eluzel2 zred cr eluzelre lenltd mpbid pm2.65i mtbir
      elin mpgbir ) ABDEZBFGZHZIJCKZUPLZMCCUPNURUQUNLZUQUOLZOZVAUQBSTZUSVBUTUQA
      BPQVABUQUATZVBMUTVCUSBUQUBRVABUQVABUTBUCLUSBUQUDRUEUTUQUFLUSBUQUGRUHUIUJU
      QUNUOULUKUM $.
  $}

  $( An integer is strictly greater than zero iff it is a member of ` NN ` .
     (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  lbfzo0 $p |- ( 0 e. ( 0 ..^ A ) <-> A e. NN ) $=
    ( cc0 cz wcel clt wbr w3a wa cfzo co cn 3anass mpbiran fzolb elnnz 3bitr4i
    0z ) BCDZACDZBAEFZGZSTHZBBAIJDAKDUARUBQRSTLMBANAOP $.

  $( Membership in a half-open integer range based at 0.  (Contributed by
     Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  elfzo0 $p |- ( A e. ( 0 ..^ B ) <-> ( A e. NN0 /\ B e. NN /\ A < B ) ) $=
    ( cc0 cfzo co wcel cn0 clt wbr w3a cuz cfv elfzouz elnn0uz sylibr elfzolt3b
    cn lbfzo0 sylib elfzolt2 3jca cz simp1 nnz 3ad2ant2 elfzo2 syl3anbrc impbii
    simp3 ) ACBDEZFZAGFZBQFZABHIZJZUKULUMUNUKACKLFZULACBMANZOUKCUJFUMACBPBRSACB
    TUAUOUPBUBFZUNUKUOULUPULUMUNUCUQSUMULURUNBUDUEULUMUNUIACBUFUGUH $.

  $( An integer between 1 and an upper bound of a half-open integer range is
     not 0 and between 0 and the upper bound of the half-open integer range.
     (Contributed by Alexander van der Vekens, 21-Mar-2018.) $)
  fzo1fzo0n0 $p |- ( K e. ( 1 ..^ N ) <-> ( K e. ( 0 ..^ N ) /\ K =/= 0 ) ) $=
    ( c1 cfzo co wcel cc0 wne wa cz clt wbr w3a cn wi adantr adantl 3jca sylbir
    cr cuz cfv elfzo2 cn0 nnnn0 nngt0 0red nnre zre lttr syl3anc elnnz simplbi2
    elnnuz syld exp4b com13 mpcom imp31 simpr exp31 3imp elfzo0 sylibr 3ad2ant1
    nnne0 jca sylbi cle elnnne0 nnge1 3ad2antl1 simpl3 wb nn0z 1zzd nnz 3adant3
    elfzo syl mpbir2and sylanb impbii ) ACBDEFZAGBDEFZAGHZIZWDACUAUBFZBJFZABKLZ
    MZWGACBUCWKWEWFWKAUDFZBNFZWJMZWEWHWIWJWNWHANFZWIWJWNOOAUNZWOWIWJWNWOWIIZWJI
    WLWMWJWQWLWJWOWLWIAUEPPWOWIWJWMGAKLZWOWIWJWMOZOAUFWIWOWRWSWIWOWRWJWMWIWOIZW
    RWJIZGBKLZWMWTGTFATFZBTFZXAXBOWTUGWOXCWIAUHQWIXDWOBUIPGABUJUKWIXBWMOWOWMWIX
    BBULUMPUOUPUQURUSWQWJUTRVASVBABVCZVDWHWIWFWJWHWOWFWPAVFSVEVGVHWEWNWFWDXEWNW
    FIZWDCAVILZWJWLWMWFXGWJWLWFIWOXGAVJAVKSVLWLWMWJWFVMXFAJFZCJFZWIMZWDXGWJIVNW
    NXJWFWLWMXJWJWLWMIZXHXIWIWLXHWMAVOPXKVPWMWIWLBVQQRVRPACBVSVTWAWBWC $.

  $( Membership in a half-open range of nonnegative integers, generalization of
     ~ elfzo0 requiring the upper bound to be an integer only.  (Contributed by
     Alexander van der Vekens, 23-Sep-2018.) $)
  elfzo0z $p |- ( A e. ( 0 ..^ B ) <-> ( A e. NN0 /\ B e. ZZ /\ A < B ) ) $=
    ( cc0 cfzo co wcel cn0 cn clt wbr w3a cz elfzo0 nnz 3anim2i wa wi cr adantl
    zre simp1 cle elnn0z 0red adantr lelttr syl3anc simplbi2 syld expd impancom
    elnnz sylbi 3imp simp3 3jca impbii bitri ) ACBDEFAGFZBHFZABIJZKZUSBLFZVAKZA
    BMVBVDUTVCUSVABNOVDUSUTVAUSVCVAUAUSVCVAUTUSALFZCAUBJZPVCVAUTQZQAUCVEVCVFVGV
    EVCPZVFVAUTVHVFVAPZCBIJZUTVHCRFARFZBRFZVIVJQVHUDVEVKVCATUEVCVLVEBTSCABUFUGV
    CVJUTQVEUTVCVJBULUHSUIUJUKUMUNUSVCVAUOUPUQUR $.

  $( A member in a half-open range of nonnegative integers is less than or
     equal to the upper bound of the range.  (Contributed by Alexander van der
     Vekens, 23-Sep-2018.) $)
  elfzo0le $p |- ( A e. ( 0 ..^ B ) -> A <_ B ) $=
    ( cc0 cfzo co wcel cn0 cn clt wbr w3a elfzo0 cr wi nn0re nnre syl2an 3impia
    cle ltle sylbi ) ACBDEFAGFZBHFZABIJZKABSJZABLUBUCUDUEUBAMFBMFUDUENUCAOBPABT
    QRUA $.

  $( A member of a half-open range of nonnegative integers is a nonnegative
     integer.  (Contributed by Alexander van der Vekens, 21-May-2018.) $)
  elfzonn0 $p |- ( K e. ( 0 ..^ N ) -> K e. NN0 ) $=
    ( cc0 cfzo co wcel cuz cfv cn0 elfzouz elnn0uz sylibr ) ACBDEFACGHFAIFACBJA
    KL $.

  $( The result of subtracting a nonnegative integer from a positive integer
     and adding another nonnegative integer which is less than the first one is
     less then the positive integer.  (Contributed by Alexander van der Vekens,
     19-May-2018.) $)
  fzonmapblen $p |- ( ( A e. ( 0 ..^ N ) /\ B e. ( 0 ..^ N ) /\ B < A )
                      -> ( B + ( N - A ) ) < N ) $=
    ( cc0 cfzo co wcel clt wbr cmin caddc cr wa wi cn0 cn anim12i adantr recn
    cc w3a elfzo0 nn0re nnre 3adant3 sylbi elfzoelz simpr simpll resubcl ancoms
    zred ltadd1d biimpa wceq pncan3 syl breqtrd ex syl2an 3impia ) ADCEFZGZBVBG
    ZBAHIZBCAJFZKFZCHIZVCALGZCLGZMZBLGZVEVHNVDVCAOGZCPGZACHIZUAVKACUBVMVNVKVOVM
    VIVNVJAUCCUDQUEUFVDBBDCUGULVKVLMZVEVHVPVEMZVGAVFKFZCHVPVEVGVRHIVPBAVFVKVLUH
    VIVJVLUIVKVFLGZVLVJVIVSCAUJUKRUMUNVQATGZCTGZMZVRCUOVPWBVEVKWBVLVIVTVJWAASCS
    QRRACUPUQURUSUTVA $.

  $( If a nonnegative integer in a finite interval of integers is not the upper
     bound of the interval, it is contained in the corresponding half-open
     integer range.  (Contributed by Alexander van der Vekens, 15-Jun-2018.) $)
  fzofzim $p |- ( ( K =/= M /\ K e. ( 0 ... M ) ) -> K e. ( 0 ..^ M ) ) $=
    ( wne cc0 co wcel wa cn0 clt wbr w3a cle wi cz nn0z adantl expd sylbi imp
    cr cn cfzo elfz2nn0 simpl1 necom wb zltlen syl2an bicomd elnn0z 0red adantr
    cfz zre nn0re lelttr syl3anc elnnz simplbi2 syl syld impancom sylbid syl7bi
    3impia biimpd exp4b 3imp syl5bi 3jca ex impcom elfzo0 sylibr ) ABCZADBUMEFZ
    GAHFZBUAFZABIJZKZADBUBEFVPVOVTVPVQBHFZABLJZKZVOVTMABUCWCVOVTWCVOGVQVRVSVQWA
    WBVOUDWCVOVRVQWAWBVOVRMVOBACZVQWAGZWBVRABUEZWEWBWDVRWEWBWDGZVSVRWEVSWGVQANF
    ZBNFZVSWGUFWAAOBOZABUGUHUIZVQWAVSVRMZVQWHDALJZGWAWLMAUJWHWAWMWLWHWAGZWMVSVR
    WNWMVSGZDBIJZVRWNDTFATFZBTFZWOWPMWNUKWHWQWAAUNULWAWRWHBUOPDABUPUQWAWPVRMZWH
    WAWIWSWJVRWIWPBURUSUTPVAQVBRSVCQVDVESWCVOVSVOWDWCVSWFVQWAWBWDVSMVQWAWBWDVSW
    EWGVSWKVFVGVHVISVJVKRVLABVMVN $.

  ${
    $d k N $.
    $( Half-open integer ranges starting with 1 are subsets of NN. (Contributed
       by Thierry Arnoux, 28-Dec-2016.) $)
    fzossnn $p |- ( 1 ..^ N ) C_ NN $=
      ( vk c1 cfzo co cfz cn fzossfz cv elfznn ssriv sstri ) CADECAFEZGCAHBMGBI
      AJKL $.
  $}

  $( Membership in a half-open integer range based at 1.  (Contributed by
     Thierry Arnoux, 14-Feb-2017.) $)
  elfzo1 $p |- ( N e. ( 1 ..^ M ) <-> ( N e. NN /\ M e. NN /\ N < M ) ) $=
    ( c1 cfzo co wcel clt wbr w3a fzossnn sseli cuz cfv elfzouz2 eluznn syl2anc
    cn elfzolt2 3jca cz nnuz eqimssi nnz id 3anim123i elfzo2 sylibr impbii ) BC
    ADEZFZBQFZAQFZBAGHZIZUJUKULUMUIQBAJKZUJUKABLMFULUOBCANABOPBCARSUNBCLMZFZATF
    ZUMIUJUKUQULURUMUMQUPBQUPUAUBKAUCUMUDUEBCAUFUGUH $.

  ${
    $d A x $.
    $( A half-open integer range based at 0 is inhabited precisely if the upper
       bound is a positive integer.  (Contributed by Jim Kingdon,
       20-Apr-2020.) $)
    fzo0m $p |- ( E. x x e. ( 0 ..^ A ) <-> A e. NN ) $=
      ( cv cc0 cfzo co wcel wex cn fzom lbfzo0 bitri ) ACDBEFZGAHDMGBIGADBJBKL
      $.
  $}

  $( Translate membership in a half-open integer range.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.) $)
  fzoaddel $p |- ( ( A e. ( B ..^ C ) /\ D e. ZZ ) ->
      ( A + D ) e. ( ( B + D ) ..^ ( C + D ) ) ) $=
    ( cfzo co wcel cz wa caddc cle wbr clt elfzoel1 adantr zred elfzoelz zaddcl
    simpr sylan elfzole1 leadd1dd elfzoel2 elfzolt2 ltadd1dd wb elfzo mpbir2and
    syl3anc ) ABCEFGZDHGZIZADJFZBDJFZCDJFZEFGZUNUMKLZUMUOMLZULBADULBUJBHGZUKABC
    NZOPULAUJAHGZUKABCQZOPZULDUJUKSPZUJBAKLUKABCUAOUBULACDVCULCUJCHGZUKABCUCZOP
    VDUJACMLUKABCUDOUEULUMHGZUNHGZUOHGZUPUQURIUFUJVAUKVGVBADRTUJUSUKVHUTBDRTUJV
    EUKVIVFCDRTUMUNUOUGUIUH $.

  $( Translate membership in a shifted-down half-open integer range.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzoaddel2 $p |- ( ( A e. ( 0 ..^ ( B - C ) ) /\ B e. ZZ /\ C e. ZZ ) ->
      ( A + C ) e. ( C ..^ B ) ) $=
    ( cc0 cmin co cfzo wcel cz w3a caddc fzoaddel 3adant2 wceq cc zcn wa addid2
    adantl npcan oveq12d syl2an 3adant1 eleqtrd ) ADBCEFZGFHZBIHZCIHZJACKFZDCKF
    ZUECKFZGFZCBGFZUFUHUIULHUGADUECLMUGUHULUMNZUFUGBOHZCOHZUNUHBPCPUOUPQUJCUKBG
    UPUJCNUOCRSBCTUAUBUCUD $.

  $( Translate membership in a half-open integer range.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.) $)
  fzosubel $p |- ( ( A e. ( B ..^ C ) /\ D e. ZZ ) ->
      ( A - D ) e. ( ( B - D ) ..^ ( C - D ) ) ) $=
    ( cfzo co wcel cz wa cneg caddc cmin znegcl fzoaddel sylan2 elfzoelz adantr
    zcnd simpr negsubd elfzoel1 elfzoel2 oveq12d 3eltr3d ) ABCEFGZDHGZIZADJZKFZ
    BUHKFZCUHKFZEFZADLFBDLFZCDLFZEFUFUEUHHGUIULGDMABCUHNOUGADUGAUEAHGUFABCPQRUG
    DUEUFSRZTUGUJUMUKUNEUGBDUGBUEBHGUFABCUAQRUOTUGCDUGCUECHGUFABCUBQRUOTUCUD $.

  $( Membership in a translated half-open integer range implies translated
     membership in the original range.  (Contributed by Stefan O'Rear,
     15-Aug-2015.) $)
  fzosubel2 $p |- ( ( A e. ( ( B + C ) ..^ ( B + D ) ) /\ ( B e. ZZ /\
        C e. ZZ /\ D e. ZZ ) ) -> ( A - B ) e. ( C ..^ D ) ) $=
    ( caddc co cfzo wcel cz w3a cmin fzosubel 3ad2antr1 wceq zcn pncan2 3adant3
    wa cc 3adant2 oveq12d syl3an adantl eleqtrd ) ABCEFZBDEFZGFHZBIHZCIHZDIHZJZ
    RABKFZUEBKFZUFBKFZGFZCDGFZUGUIUHULUOHUJAUEUFBLMUKUOUPNZUGUHBSHZUICSHZUJDSHZ
    UQBOCODOURUSUTJUMCUNDGURUSUMCNUTBCPQURUTUNDNUSBDPTUAUBUCUD $.

  $( Membership in a translated half-open integer range when the original range
     is zero-based.  (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzosubel3 $p |- ( ( A e. ( B ..^ ( B + D ) ) /\ D e. ZZ ) ->
      ( A - B ) e. ( 0 ..^ D ) ) $=
    ( caddc co cfzo wcel cz wa cmin simpl elfzoel1 adantr zcnd addid1d eleqtrrd
    cc0 oveq1d 0zd simpr fzosubel2 syl13anc ) ABBCDEZFEZGZCHGZIZABQDEZUCFEZGBHG
    ZQHGUFABJEQCFEGUGAUDUIUEUFKUGUHBUCFUGBUGBUEUJUFABUCLMZNORPUKUGSUEUFTABQCUAU
    B $.

  $( Membership of the difference of integers in a half-open range of
     nonnegative integers.  (Contributed by Alexander van der Vekens,
     17-Sep-2018.) $)
  eluzgtdifelfzo $p |- ( ( A e. ZZ /\ B e. ZZ )
                         -> ( ( N e. ( ZZ>= ` A ) /\ B < A )
                              -> ( N - A ) e. ( 0 ..^ ( N - B ) ) ) ) $=
    ( cz wcel wa clt wbr cmin co cc0 cfzo caddc simpl adantl adantr ad2antrr cr
    zre cc cuz cfv eluzelz simprr zsubcld ancoms zaddcld posdif syl2anr adantld
    wi biimpd imp resubcl syl2an eluzelre ad2antrl ltaddposd mpbid zcn eluzelcn
    wb w3a addsub12 breq2d syl3anc mpbird elfzo2 syl3anbrc fzosubel3 syl2anc ex
    ) ADEZBDEZFZCAUAUBEZBAGHZFZCAIJKCBIJZLJEZVOVRFZCAAVSMJZLJEZVSDEZVTWAVPWBDEC
    WBGHZWCVRVPVOVPVQNOWAAVSVOVMVRVMVNNPVRVOWDVRVOFCBVPCDEVQVOACUCQVRVMVNUDUEUF
    ZUGWAWECCABIJZMJZGHZWAKWGGHZWIVOVRWJVOVQWJVPVNBREZAREZVQWJUKVMBSZASZWKWLFVQ
    WJBAUHULUIUJUMWAWGCVOWGREZVRVMWLWKWOVNWNWMABUNUOPVPCREVOVQACUPUQURUSWAATEZC
    TEZBTEZWEWIVBVMWPVNVRAUTQVPWQVOVQACVAUQVOWRVRVNWRVMBUTOPWPWQWRVCWBWHCGACBVD
    VEVFVGCAWBVHVIWFCAVSVJVKVL $.

  $( Membership of an integer greater than 1 decreased by 2 in a half-open
     range of nonnegative integers.  (Contributed by Alexander van der Vekens,
     3-Oct-2018.) $)
  ige2m2fzo $p |- ( N e. ( ZZ>= ` 2 ) -> ( N - 2 ) e. ( 0 ..^ ( N - 1 ) ) ) $=
    ( c2 cuz cfv wcel cz c1 wa clt wbr cmin co cc0 cfzo eluzel2 jctir 1lt2 jctr
    1z eluzgtdifelfzo sylc ) ABCDEZBFEZGFEZHUBGBIJZHABKLMAGKLNLEUBUCUDBAOSPUBUE
    QRBGATUA $.

  $( Translate membership in a half-open integer range.  (Contributed by
     Thierry Arnoux, 28-Sep-2018.) $)
  fzocatel $p |- ( ( ( A e. ( 0 ..^ ( B + C ) ) /\ -. A e. ( 0 ..^ B ) )
    /\ ( B e. ZZ /\ C e. ZZ ) ) -> ( A - B ) e. ( 0 ..^ C ) ) $=
    ( cc0 caddc co cfzo wcel wn wa cz cmin simplr wo fzospliti ad2ant2r ord mpd
    simprl zcnd fzosubel syl2anc wceq zcn subidd simprr pncan2d oveq12d eleqtrd
    syl ) ADBCEFZGFHZADBGFHZIZJZBKHZCKHZJZJZABLFZBBLFZUKBLFZGFZDCGFUSABUKGFHZUP
    UTVCHUSUNVDULUNURMUSUMVDULUPUMVDNUNUQADUKBOPQRUOUPUQSZABUKBUAUBUSVADVBCGUSU
    PVADUCVEUPBBUDUEUJUSBCUSBVETUSCUOUPUQUFTUGUHUI $.

  $( If an integer in a 1 based finite set of sequential integers is subtracted
     from the upper bound of this finite set of sequential integers, the result
     is contained in a half-open range of nonnegative integers with the same
     upper bound.  (Contributed by AV, 18-Mar-2018.)  (Revised by AV,
     30-Oct-2018.) $)
  ubmelfzo $p |- ( K e. ( 1 ... N ) -> ( N - K ) e. ( 0 ..^ N ) ) $=
    ( cn wcel cle wbr w3a co cn0 clt cc0 wa wb nnnn0 anim12i 3adant3 mpbid nnre
    syl cr cmin cfz cfzo simp3 nn0sub simp2 nngt0 3ad2ant1 ltsubpos 3jca elfz1b
    c1 elfzo0 3imtr4i ) ACDZBCDZABEFZGZBAUAHZIDZUPUSBJFZGAULBUBHDUSKBUCHDURUTUP
    VAURUQUTUOUPUQUDURAIDZBIDZLZUQUTMUOUPVDUQUOVBUPVCANBNOPABUESQUOUPUQUFURKAJF
    ZVAUOUPVEUQAUGUHURATDZBTDZLZVEVAMUOUPVHUQUOVFUPVGARBROPABUISQUJBAUKUSBUMUN
    $.

  $( If an integer is in a half-open range of nonnegative integers with a
     difference as upper bound, the sum of the integer with the subtrahend of
     the difference is in the a half-open range of nonnegative integers
     containing the minuend of the difference.  (Contributed by AV,
     13-Nov-2018.) $)
  elfzodifsumelfzo $p |- ( ( M e. ( 0 ... N ) /\ N e. ( 0 ... P ) )
                           -> ( I e. ( 0 ..^ ( N - M ) )
                                -> ( I + M ) e. ( 0 ..^ P ) ) ) $=
    ( cc0 co wcel wi cn0 cle wbr w3a wa clt cz adantr cr nn0re adantl imp caddc
    cfz cmin cfzo elfz2nn0 cn elfzo0 wb nn0z znnsub syl2an simpr simpll syl2anr
    nn0addcl 0red 3jca nn0ge0 anim1i lelttr sylc ex ltletr syl3anc simplbi2 syl
    elnnz syld exp4b com24 com13 readdcl ltaddsubd exbiri impd anasss syl3anbrc
    com23 exp53 sylbird 3adant3 com14 3imp sylbi 3adant1 com12 ) CEDUBFGZDEAUBF
    GZBEDCUCFZUDFGZBCUAFZEAUDFGZHZWGCIGZDIGZCDJKZLZWHWMHCDUEWHWQWMWHWOAIGZDAJKZ
    LWQWMHZDAUEWRWSWTWOWJWQWRWSMZWLWJBIGZWIUFGZBWINKZLWQXAWLHZHZBWIUGXBXCXDXFWQ
    XCXDXBXEWNWOXCXDXBXEHHZHWPWNWOMZXCCDNKZXGWNCOGDOGXIXCUHWOCUIDUICDUJUKXHXIXD
    XBXAWLXHXIMZXDXBMZMZXAMWKIGZAUFGZWKANKZWLXLXMXAXKXBWNXMXJXDXBULWNWOXIUMBCUO
    UNPXLXAXNXJXAXNHZXKXHXIXPXHXIEDNKZXPXHXIXQXJEQGZCQGZDQGZLZECJKZXIMXQXHYAXIX
    HXRXSXTXHUPWNXSWOCRPZWOXTWNDRZSZUQPXHYBXIWNYBWOCURPUSECDUTVAVBWOXQXPHWNXAXQ
    WOXNWRWSXQWOXNHHWRWOXQWSXNWRWOXQWSXNWRWOMZXQWSMZEANKZXNYFXRXTAQGZYGYHHYFUPW
    OXTWRYDSWRYIWOARZPEDAVCVDWRYHXNHZWOWRAOGZYKAUIXNYLYHAVGVEVFPVHVIVJTVKSVHTPT
    XLWRWSXOXLWRMZWSMWKQGZXTYILZWKDNKZWSMXOYMYOWSYMYNXTYIXLYNWRXKBQGZXSYNXJXBYQ
    XDBRZSXHXSXIYCPBCVLUNPXLXTWRXJXTXKXHXTXIYEPPPWRYIXLYJSUQPYMYPWSXLYPWRXJXKYP
    XHXKYPHXIXHXDXBYPXHXBXDYPXHXBYPXDXHXBMBCDXBYQXHYRSXHXSXBYCPXHXTXBYEPVMVNVRV
    OPTPUSWKDAVCVAVPWKAUGVQVSVTWAWBWCWDVKWEWDWFWDT $.

  $( Membership of an integer incremented by one in a half-open range of
     nonnegative integers.  (Contributed by Alexander van der Vekens,
     24-Jun-2018.)  (Proof shortened by AV, 5-Jan-2020.) $)
  elfzom1elp1fzo $p |- ( ( N e. ZZ /\ I e. ( 0 ..^ ( N - 1 ) ) )
                         -> ( I + 1 ) e. ( 0 ..^ N ) ) $=
    ( cz wcel cc0 c1 cmin co cfzo cfz caddc cn0 cle wbr w3a sylibr 3syl wss jca
    wa cn cuz cfv wi elfzofz elfzuz2 elnn0uz cc zcn anim1i expcom sylbir impcom
    elnnnn0 1nn0 a1i nnnn0 nnge1 3jca syl fzossrbm1 adantr fzossfz syl6ss simpr
    elfz2nn0 ssel2 elfzubelfz elfzodifsumelfzo sylc ) BCDZAEBFGHZIHZDZTZFEBJHZD
    ZBVPDZTVNAFKHEBIHZDVOVQVRVOFLDZBLDZFBMNZOZVQVOBUADZWCVNVKWDVNAEVLJHDVLEUBUC
    DZVKWDUDZAEVLUEAEVLUFWEVLLDZWFVLUGVKWGWDVKWGTBUHDZWGTWDVKWHWGBUIUJBUNPUKULQ
    UMWDVTWAWBVTWDUOUPBUQBURUSUTFBVFPVOVMVPRZVNTAVPDVRVOWIVNVOVMVSVPVKVMVSRVNBV
    AVBEBVCVDVKVNVEZSVMVPAVGAEBVHQSWJBAFBVIVJ $.

  $( Membership in a half-open range of nonnegative integers.  (Contributed by
     Alexander van der Vekens, 18-Jun-2018.) $)
  elfzom1elfzo $p |- ( ( N e. ZZ /\ I e. ( 0 ..^ ( N - 1 ) ) )
                       -> I e. ( 0 ..^ N ) ) $=
    ( cz wcel cc0 c1 cmin co cfzo fzossrbm1 sselda ) BCDEBFGHIHEBIHABJK $.

  $( Expressing a closed integer range as a half-open integer range.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzval3 $p |- ( N e. ZZ -> ( M ... N ) = ( M ..^ ( N + 1 ) ) ) $=
    ( cz wcel c1 caddc co cfzo cmin cfz wceq peano2z fzoval syl cc ax-1cn pncan
    zcn sylancl oveq2d eqtr2d ) BCDZABEFGZHGZAUCEIGZJGZABJGUBUCCDUDUFKBLAUCMNUB
    UEBAJUBBODEODUEBKBRPBEQSTUA $.

  $( Expressing a singleton as a half-open range.  (Contributed by Stefan
     O'Rear, 23-Aug-2015.) $)
  fzosn $p |- ( A e. ZZ -> ( A ..^ ( A + 1 ) ) = { A } ) $=
    ( cz wcel cfz co c1 caddc cfzo csn fzval3 fzsn eqtr3d ) ABCAADEAAFGEHEAIAAJ
    AKL $.

  $( Membership of an integer in the smallest open range of integers.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  elfzomin $p |- ( Z e. ZZ -> Z e. ( Z ..^ ( Z + 1 ) ) ) $=
    ( cz wcel csn c1 caddc co cfzo snidg fzosn eleqtrrd ) ABCAADAAEFGHGABIAJK
    $.

  $( Membership of an integer increased by a nonnegative integer in a half-
     open integer range.  (Contributed by Alexander van der Vekens,
     22-Sep-2018.) $)
  zpnn0elfzo $p |- ( ( Z e. ZZ /\ N e. NN0 )
                     -> ( Z + N ) e. ( Z ..^ ( ( Z + N ) + 1 ) ) ) $=
    ( cz wcel cn0 wa cuz cfv caddc cfzo uzid anim1i nn0z zaddcl sylan2 elfzomin
    co c1 syl wss uzaddcl fzoss1 sselda syl2anc ) BCDZAEDZFZBBGHZDZUFFZBAIQZUKU
    KRIQZJQZDZUKBULJQZDUEUIUFBKLUGUKCDZUNUFUEACDUPAMBANOUKPSUJUMUOUKUJUKUHDUMUO
    TABBUAUKBULUBSUCUD $.

  $( Membership of an integer increased by a nonnegative integer in a half-
     open integer range.  (Contributed by Alexander van der Vekens,
     22-Sep-2018.) $)
  zpnn0elfzo1 $p |- ( ( Z e. ZZ /\ N e. NN0 )
                     -> ( Z + N ) e. ( Z ..^ ( Z + ( N + 1 ) ) ) ) $=
    ( cz wcel cn0 wa caddc co c1 cfzo zpnn0elfzo cc adantr nn0cn adantl addassd
    zcn 1cnd oveq2d eleqtrd ) BCDZAEDZFZBAGHZBUDIGHZJHBBAIGHGHZJHABKUCUEUFBJUCB
    AIUABLDUBBQMUBALDUAANOUCRPST $.

  $( Removing a singleton from a half-open integer range at the end.
     (Contributed by Alexander van der Vekens, 23-Mar-2018.) $)
  fzosplitsnm1 $p |- ( ( A e. ZZ /\ B e. ( ZZ>= ` ( A + 1 ) ) ) ->
      ( A ..^ B ) = ( ( A ..^ ( B - 1 ) ) u. { ( B - 1 ) } ) ) $=
    ( cz wcel c1 caddc co cuz cfv wa cfzo cmin cun csn wceq eluzelz zcnd adantl
    cc syl ax-1cn npcan eqcomd sylancl cfz eluzp1m1 peano2zm uzid peano2uz 4syl
    oveq2d elfzuzb sylanbrc fzosplit fzosn uneq2d 3eqtrd ) ACDZBAEFGZHIDZJZABKG
    ABELGZEFGZKGZAVBKGZVBVCKGZMZVEVBNZMVABVCAKVABSDZESDZBVCOUTVIURUTBUSBPZQRUAV
    IVJJVCBBEUBUCUDUKVAVBAVCUEGDZVDVGOVAVBAHIDVCVBHIZDZVLABUFVABCDZVBCDZVBVMDVN
    UTVOURVKRBUGZVBUHVBVBUIUJVBAVCULUMAVCVBUNTVAVFVHVEVAVPVFVHOUTVPURUTVOVPVKVQ
    TRVBUOTUPUQ $.

  $( If an element of a half-open integer range is not less than the upper
     bound of the range decreased by 1, it must be equal to the upper bound of
     the range decreased by 1.  (Contributed by AV, 3-Nov-2018.) $)
  elfzonlteqm1 $p |- ( ( A e. ( 0 ..^ B ) /\ -. A < ( B - 1 ) )
                       -> A = ( B - 1 ) ) $=
    ( cc0 cfzo co wcel c1 cmin clt wbr wn wceq csn cun cuz cfv w3a elfzo0 sylbi
    cn wi cz caddc 0z elnnuz biimpi 0p1e1 fveq2d eleqtrrd 3ad2ant2 fzosplitsnm1
    cn0 a1i sylancr eleq2 elun pm2.24 3ad2ant3 elsni a1d jaoi syl6bi mpcom imp
    wo ) ACBDEZFZABGHEZIJZKZAVHLZVFCVHDEZVHMZNZLZVGVJVKUAZVGCUBFBCGUCEZOPZFZVOU
    DVGAULFZBTFZABIJZQVSABRWAVTVSWBWABGOPZVRWABWCFBUEUFWAVQGOVQGLWAUGUMUHUIUJSC
    BUKUNVOVGAVNFZVPVFVNAUOWDAVLFZAVMFZVEVPAVLVMUPWEVPWFWEVTVHTFZVIQVPAVHRVIVTV
    PWGVIVKUQURSWFVKVJAVHUSUTVASVBVCVD $.

  $( A nonnegative integer is element of the half-open range of nonnegative
     integers with the element increased by one as an upper bound.
     (Contributed by Alexander van der Vekens, 5-Aug-2018.) $)
  fzonn0p1 $p |- ( N e. NN0 -> N e. ( 0 ..^ ( N + 1 ) ) ) $=
    ( cn0 wcel c1 caddc co cn clt wbr cc0 cfzo id nn0p1nn nn0re ltp1d syl3anbrc
    elfzo0 ) ABCZRADEFZGCASHIAJSKFCRLAMRAANOASQP $.

  $( A half-open range of nonnegative integers is a subset of a half-open range
     of nonnegative integers with the upper bound increased by one.
     (Contributed by Alexander van der Vekens, 5-Aug-2018.) $)
  fzossfzop1 $p |- ( N e. NN0 -> ( 0 ..^ N ) C_ ( 0 ..^ ( N + 1 ) ) ) $=
    ( cn0 wcel c1 caddc co cuz cfv cc0 cfzo wss cz cle wbr w3a nn0z peano2z zre
    id syl lep1d 3jca eluz2 sylibr fzoss2 ) ABCZADEFZAGHCZIAJFIUGJFKUFALCZUGLCZ
    AUGMNZOZUHUFUIULAPUIUIUJUKUISAQUIAARUAUBTAUGUCUDAIUGUET $.

  $( If a nonnegative integer is element of a half-open range of nonnegative
     integers, increasing this integer by one results in an element of a half-
     open range of nonnegative integers with the upper bound increased by one.
     (Contributed by Alexander van der Vekens, 5-Aug-2018.) $)
  fzonn0p1p1 $p |- ( I e. ( 0 ..^ N ) -> ( I + 1 ) e. ( 0 ..^ ( N + 1 ) ) ) $=
    ( cc0 cfzo co wcel cn0 cn clt wbr w3a c1 elfzo0 peano2nn0 3ad2ant1 peano2nn
    caddc 3ad2ant2 simp3 cr nn0re nnre 1red ltadd1 syl3an mpbid syl3anbrc sylbi
    wb ) ACBDEFAGFZBHFZABIJZKZALQEZCBLQEZDEFZABMUMUNGFZUOHFZUNUOIJZUPUJUKUQULAN
    OUKUJURULBPRUMULUSUJUKULSUJATFUKBTFULLTFULUSUIAUABUBULUCABLUDUEUFUNUOMUGUH
    $.

  $( Increasing an element of a half-open range of nonnegative integers by 1
     results in an element of the half-open range of nonnegative integers with
     an upper bound increased by 1.  (Contributed by Alexander van der Vekens,
     1-Aug-2018.) $)
  elfzom1p1elfzo $p |- ( ( N e. NN /\ X e. ( 0 ..^ ( N - 1 ) ) )
                           -> ( X + 1 ) e. ( 0 ..^ N ) ) $=
    ( cc0 c1 cmin co cfzo wcel cn caddc cn0 clt wbr w3a elfzo0 peano2nn0 adantr
    wi wa cr 3ad2ant1 simpr 1red nnre adantl ltaddsubd biimprd impancom 3adant2
    nn0re imp syl3anbrc ex sylbi impcom ) BCADEFZGFHZAIHZBDJFZCAGFHZUQBKHZUPIHZ
    BUPLMZNZURUTRBUPOVDURUTVDURSUSKHZURUSALMZUTVDVEURVAVBVEVCBPUAQVDURUBVDURVFV
    AVCURVFRVBVAURVCVFVAURSZVFVCVGBDAVABTHURBUJQVGUCURATHVAAUDUEUFUGUHUIUKUSAOU
    LUMUNUO $.

  ${
    $d k N $.
    $( Half-open integer ranges starting with 0 are subsets of NN0.
       (Contributed by Thierry Arnoux, 8-Oct-2018.) $)
    fzo0ssnn0 $p |- ( 0 ..^ N ) C_ NN0 $=
      ( vk cc0 cfzo co cfz cn0 fzossfz cv elfznn0 ssriv sstri ) CADECAFEZGCAHBM
      GBIAJKL $.
  $}

  $( Expressing the singleton of ` 0 ` as a half-open integer range.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzo01 $p |- ( 0 ..^ 1 ) = { 0 } $=
    ( cc0 c1 cfzo co caddc csn 1e0p1 oveq2i cz wcel wceq 0z fzosn ax-mp eqtri )
    ABCDAABEDZCDZAFZBPACGHAIJQRKLAMNO $.

  $( A 1-based half-open integer interval up to, but not including, 2 is a
     singleton.  (Contributed by Alexander van der Vekens, 31-Jan-2018.) $)
  fzo12sn $p |- ( 1 ..^ 2 ) = { 1 } $=
    ( c1 c2 cfzo co caddc csn df-2 oveq2i cz wcel wceq 1z fzosn ax-mp eqtri ) A
    BCDAAAEDZCDZAFZBPACGHAIJQRKLAMNO $.

  $( A half-open integer range from 0 to 2 is an unordered pair.  (Contributed
     by Alexander van der Vekens, 4-Dec-2017.) $)
  fzo0to2pr $p |- ( 0 ..^ 2 ) = { 0 , 1 } $=
    ( cc0 c2 cfzo co c1 cmin cfz caddc cz wcel wceq 2z fzoval ax-mp 2m1e1 0p1e1
    cpr eqtr4i oveq2i 0z fzpr preq2i syl6eq 3eqtri ) ABCDZABEFDZGDZAAEHDZGDZAEQ
    ZBIJUEUGKLABMNUFUHAGUFEUHOPRSAIJZUIUJKTUKUIAUHQUJAUAUHEAPUBUCNUD $.

  $( A half-open integer range from 0 to 3 is an unordered triple.
     (Contributed by Alexander van der Vekens, 9-Nov-2017.) $)
  fzo0to3tp $p |- ( 0 ..^ 3 ) = { 0 , 1 , 2 } $=
    ( cc0 c3 cfzo co c1 cmin cfz c2 caddc ctp cz wcel 3z fzoval ax-mp 3m1e2 2cn
    wceq addid2i a1i eqtr4i oveq2i 0z fztp eqidd 0p1e1 tpeq123d eqtrd 3eqtri )
    ABCDZABEFDZGDZAAHIDZGDZAEHJZBKLUJULRMABNOUKUMAGUKHUMPHQSZUAUBAKLZUNUORUCUQU
    NAAEIDZUMJUOAUDUQAAUREUMHUQAUEURERUQUFTUMHRUQUPTUGUHOUI $.

  $( A half-open integer range from 0 to 4 is a union of two unordered pairs.
     (Contributed by Alexander van der Vekens, 17-Nov-2017.) $)
  fzo0to42pr $p |- ( 0 ..^ 4 ) = ( { 0 , 1 } u. { 2 , 3 } ) $=
    ( cc0 c4 cfzo co c2 cun c1 cpr c3 cfz wcel wceq ax-mp caddc cz ax-1cn eqtri
    cn0 3cn eqcomi cle wbr 2nn0 4nn0 2re 2lt4 ltleii elfz2nn0 mpbir3an fzosplit
    4re fzo0to2pr cmin 4z fzoval 4cn df-4 addcomi subaddrii df-3 oveq2i 2z fzpr
    preq2i 3eqtri uneq12i ) ABCDZAECDZEBCDZFZAGHZEIHZFEABJDKZVGVJLVMERKBRKEBUAU
    BUCUDEBUEUKUFUGEBUHUIABEUJMVHVKVIVLULVIEBGUMDZJDZEEGNDZHZVLBOKVIVOLUNEBUOMV
    OEVPJDZVQVNVPEJVNIVPBGIUPPSBGINDZBIGNDVSUQIGSPURQTUSUTQVAEOKVRVQLVBEVCMQVPI
    EIVPUTTVDVEVFQ $.

  $( A half-open range of nonnegative integers is the union of the singleton
     set containing 0 and a half-open range of positive integers.  (Contributed
     by Alexander van der Vekens, 18-May-2018.) $)
  fzo0sn0fzo1 $p |- ( N e. NN -> ( 0 ..^ N ) = ( { 0 } u. ( 1 ..^ N ) ) ) $=
    ( cn wcel cc0 cfzo co c1 cun csn cfz wceq cn0 cle 1nn0 nnnn0 nnge1 elfz2nn0
    wbr a1i syl3anbrc fzosplit syl fzo01 uneq1d eqtrd ) ABCZDAEFZDGEFZGAEFZHZDI
    ZUIHUFGDAJFCZUGUJKUFGLCZALCGAMRULUMUFNSAOAPGAQTDAGUAUBUFUHUKUIUHUKKUFUCSUDU
    E $.

  $( The endpoint of a half-open integer range.  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  fzoend $p |- ( A e. ( A ..^ B ) -> ( B - 1 ) e. ( A ..^ B ) ) $=
    ( cfzo co wcel c1 cmin cfz cuz cfv wceq elfzoel2 fzoval syl eleqtrd elfzuz3
    id cz eluzfz2 eleqtrrd ) AABCDZEZBFGDZAUCHDZUAUBUCAIJEZUCUDEUBAUDEUEUBAUAUD
    UBQUBBREUAUDKAABLABMNZOAAUCPNAUCSNUFT $.

  $( The endpoint of a zero-based half-open range.  (Contributed by Stefan
     O'Rear, 27-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  fzo0end $p |- ( B e. NN -> ( B - 1 ) e. ( 0 ..^ B ) ) $=
    ( cn wcel cc0 cfzo co c1 cmin lbfzo0 fzoend sylbir ) ABCDDAEFZCAGHFLCAIDAJK
    $.

  $( Subset relationship for half-open integer ranges.  (Contributed by
     Alexander van der Vekens, 16-Mar-2018.) $)
  ssfzo12 $p |- ( ( K e. ZZ /\ L e. ZZ /\ K < L )
                 -> ( ( K ..^ L ) C_ ( M ..^ N ) -> ( M <_ K /\ L <_ N ) ) ) $=
    ( cfzo co wcel cz clt wbr w3a wss cle wa wi fzolb2 biimp3ar ssel2 ex mpcom
    c1 cmin fzoend elfzolt2 wb simp2 elfzoel2 zlem1lt elfzole1 pm3.2 syl adantr
    syl2anr sylbird com13 3syl com24 syl5com pm2.43a com14 ) AABEFZGZAHGZBHGZAB
    IJZKZVACDEFZLZCAMJZBDMJZNZOZVCVDVBVEABPQBUAUBFZVAGZVBVFVLOABUCVHVBVFVNVKVBV
    HVFVNVKOOZVHVBVHVOOVHVBNAVGGZVHVOVAVGARVHVNVFVPVKVHVNVFVPVKOOZVHVNNVMVGGVMD
    IJZVQVAVGVMRVMCDUDVPVFVRVKVPVFVRVKOVPVFNVRVJVKVFVDDHGVJVRUEVPVCVDVEUFACDUGB
    DUHUMVPVJVKOZVFVPVIVSACDUIVIVJUJUKULUNSUOUPSUQURSUSUTTT $.

  ${
    $d K x $.  $d L x $.  $d M x $.  $d N x $.
    $( Subset relationship for half-open integer ranges.  (Contributed by
       Alexander van der Vekens, 5-Nov-2018.) $)
    ssfzo12bi $p |- ( ( ( K e. ZZ /\ L e. ZZ ) /\ ( M e. ZZ /\ N e. ZZ )
                        /\ K < L )
                -> ( ( K ..^ L ) C_ ( M ..^ N ) <-> ( M <_ K /\ L <_ N ) ) ) $=
      ( vx cz wcel wa clt wbr w3a cfzo cle wi adantr cr zre adantl imp com12 co
      wss df-3an biimpri 3adant2 ssfzo12 syl cv cuz elfzo2 eluz2 simprrl simpll
      cfv letr syl3anc exp31 com23 expdimp impancom com13 3adant3 impcom sylibr
      simpl2r ad3antlr ltletr ex expcomd adantld syl3anbrc 3adant1 sylbi impbid
      3jca ssrdv ) AFGZBFGZHZCFGZDFGZHZABIJZKZABLUAZCDLUAZUBZCAMJZBDMJZHZWDVQVR
      WCKZWGWJNVSWCWKWBWKVSWCHVQVRWCUCUDUEABCDUFUGWDWJWGWDWJHZEWEWFEUHZWEGZWLWM
      WFGZWNWMAUIUNGZVRWMBIJZKWLWONZWMABUJWPWQWRVRWPWQWRWPVQWMFGZAWMMJZKWQWRNZA
      WMUKWSWTXAVQWSWTHZWQWLWOXBWQHZWLHZWMCUIUNGZWAWMDIJZWOXDVTWSCWMMJZKZXEXCWL
      XHXBWLXHNWQWLXBXHWJWDXBXHNZWHWDXINWIWDWHXIVSWBWHXINWCXBWHVSWBHZXHWSWHWTXJ
      XHNZWSWHWTXKWSXJWHWTHZXHWSXJXLXHWSXJHZXLHVTWSXGXMVTXLWSVSVTWAULOWSXJXLUMX
      MXLXGXMCPGZAPGZWMPGZXLXGNXJXNWSWBXNVSVTXNWACQORRXJXOWSVSXOWBVQXOVRAQOORWS
      XPXJWMQZOCAWMUOUPSVOUQURUSUTVAVBTOVCTOSCWMUKVDWLWAXCVTWAVSWCWJVERXCWLXFXB
      WQWLXFNZWSWQXRNWTWLWQWSXFWDWJWQWSXFNZNZWDWIXTWHWDWQWIXSVSWBWQWIHZXSNWCXJW
      SYAXFXJWSYAXFNZXJWSHXPBPGZDPGZYBWSXPXJXQRVRYCVQWBWSBQVFXJYDWSWBYDVSWAYDVT
      DQRROWMBDVGUPVHURVBVIVJSVAOSSWMCDUJVKUQVLVMSUEVMTVPVHVN $.
  $}

  $( The result of subtracting 1 and an integer of a half-open range of
     nonnegative integers from the upper bound of this range is contained in
     this range.  (Contributed by AV, 23-Mar-2018.)  (Revised by AV,
     30-Oct-2018.) $)
  ubmelm1fzo $p |- ( K e. ( 0 ..^ N ) -> ( ( N - K ) - 1 ) e. ( 0 ..^ N ) ) $=
    ( cc0 co wcel cn0 cn clt wbr cmin c1 elfzo0 cz wa adantr adantl syl 3adant3
    wb cr cfzo w3a cle nnz zsubcld ancoms peano2zm simp3 anim12i znnsub nnm1ge0
    nn0z mpbid elnn0z sylanbrc simp2 caddc cc nncn nn0cn 1cnd subsub4d nn0p1gt0
    nn0re peano2re nnre ltsubpos syl2an eqbrtrd syl3anbrc sylbi ) ACBUADZEAFEZB
    GEZABHIZUBZBAJDZKJDZVLEZABLVPVRFEZVNVRBHIZVSVPVRMEZCVRUCIZVTVMVNWBVOVMVNNZV
    QMEZWBVNVMWEVNVMNBAVNBMEZVMBUDZOVMAMEZVNAULZPUEUFVQUGQRVPVQGEZWCVPVOWJVMVNV
    OUHVPWHWFNZVOWJSVMVNWKVOVMWHVNWFWIWGUIRABUJQUMVQUKQVRUNUOVMVNVOUPVMVNWAVOWD
    VRBAKUQDZJDZBHWDBAKVNBUREVMBUSPVMAUREVNAUTOWDVAVBWDCWLHIZWMBHIZVMWNVNAVCOVM
    WLTEZBTEWNWOSVNVMATEWPAVDAVEQBVFWLBVGVHUMVIRVRBLVJVK $.

  $( If a point is in a half-open range, the next point is in the closed
     range.  (Contributed by Stefan O'Rear, 23-Aug-2015.) $)
  fzofzp1 $p |- ( C e. ( A ..^ B ) -> ( C + 1 ) e. ( A ... B ) ) $=
    ( cfzo co wcel c1 caddc cfz cz cuz cfv wss elfzoel1 uzid peano2uz fzoss1 1z
    4syl fzoaddel mpan2 sseldd wceq elfzoel2 fzval3 syl eleqtrrd ) CABDEFZCGHEZ
    ABGHEZDEZABIEZUHAGHEZUJDEZUKUIUHAJFAAKLZFUMUOFUNUKMCABNAOAAPUMAUJQSUHGJFUIU
    NFRCABGTUAUBUHBJFULUKUCCABUDABUEUFUG $.

  $( If a point is in a half-open range, the next point is in the closed
     range.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
  fzofzp1b $p |- ( C e. ( ZZ>= ` A ) ->
      ( C e. ( A ..^ B ) <-> ( C + 1 ) e. ( A ... B ) ) ) $=
    ( cuz cfv wcel cfzo co c1 caddc fzofzp1 cmin simpl eluzelz elfzuz3 eluzp1m1
    cfz wa cz syl2an elfzuzb sylanbrc wceq elfzel2 adantl fzoval syl ex impbid2
    eleqtrrd ) CADEFZCABGHZFZCIJHZABQHFZABCKUKUOUMUKUORZCABILHZQHZULUPUKUQCDEFZ
    CURFUKUOMUKCSFBUNDEFUSUOACNUNABOCBPTCAUQUAUBUPBSFZULURUCUOUTUKUNABUDUEABUFU
    GUJUHUI $.

  $( An integer is a member of a 1-based finite set of sequential integers iff
     its predecessor is a member of the corresponding 0-based set.
     (Contributed by Mario Carneiro, 27-Sep-2015.) $)
  elfzom1b $p |- ( ( K e. ZZ /\ N e. ZZ ) ->
      ( K e. ( 1 ..^ N ) <-> ( K - 1 ) e. ( 0 ..^ ( N - 1 ) ) ) ) $=
    ( cz wcel wa c1 cmin co cfz cc0 cfzo wb peano2zm elfzm1b sylan2 wceq fzoval
    adantl eleq2d syl 3bitr4d ) ACDZBCDZEZAFBFGHZIHZDZAFGHZJUEFGHIHZDZAFBKHZDUH
    JUEKHZDUCUBUECDZUGUJLBMZAUENOUDUKUFAUCUKUFPUBFBQRSUDULUIUHUDUMULUIPUCUMUBUN
    RJUEQTSUA $.

  $( If an element of a half-open integer range is not contained in the lower
     subrange, it must be in the upper subrange.  (Contributed by Alexander van
     der Vekens, 30-Mar-2018.) $)
  elfzonelfzo $p |- ( N e. ZZ -> ( ( K e. ( M ..^ R ) /\ -. K e. ( M ..^ N ) )
                                   -> K e. ( N ..^ R ) ) ) $=
    ( cfzo co wcel wn wa cz cuz cfv clt wbr wi elfzo2 cle simpr 3ad2ant1 adantr
    w3a eluzelz ad2antrr wb eluzel2 syl3anc eluzle biantrurd bitr4d notbid zred
    elfzo lenltd biimpd ex com23 imp31 eluz2 syl3anbrc simpll2 simpll3 sylanb
    com12 ) BCAEFGZBCDEFGZHZIDJGZBDAEFGZVDBCKLGZAJGZBAMNZUAZVFVGVHOBCAPVLVFIZVG
    VHVMVGIZBDKLGZVJVKVHVNVGBJGZDBQNZVOVMVGRVLVPVFVGVIVJVPVKCBUBZSUCVLVFVGVQVIV
    JVFVGVQOOVKVIVGVFVQVIVGVFVQOVIVGIZVFVQVSVFBDMNZHVQVSVEVTVSVECBQNZVTIZVTVSVP
    CJGZVGVEWBUDVIVPVGVRTZVIWCVGCBUETVIVGRZBCDULUFVSWAVTVIWAVGCBUGTUHUIUJVSDBVS
    DWEUKVSBWDUKUMUIUNUOUPSUQDBURUSVIVJVKVFVGUTVIVJVKVFVGVABDAPUSUOVBVC $.

  $( An integer increased by another integer is an element of a half-open
     integer range if and only if the integer is contained in the half-open
     integer range with bounds decreased by the other integer.  (Contributed by
     Alexander van der Vekens, 30-Mar-2018.) $)
  elfzomelpfzo $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( K e. ZZ /\ L e. ZZ ) )
      -> ( K e. ( ( M - L ) ..^ ( N - L ) ) <-> ( K + L ) e. ( M ..^ N ) ) ) $=
    ( cz wcel wa cmin co cuz cfv clt wbr w3a cfzo adantr 2thd adantl cr zre cle
    caddc zsubcl ad2ant2rl simpl zaddcl lesubaddd eluz2 3bitr4g ad2ant2l simplr
    3anbi123d ltaddsubd bicomd elfzo2 ) CEFZDEFZGZAEFZBEFZGZGZACBHIZJKFZDBHIZEF
    ZAVELMZNABUBIZCJKFZUQVHDLMZNAVCVEOIFVHCDOIFVBVDVIVFUQVGVJVBVCEFZUSVCAUAMZNU
    PVHEFZCVHUAMZNVDVIVBVKUPUSVMVLVNVBVKUPUPUTVKUQUSCBUCUDURUPVAUPUQUEPQVBUSVMV
    AUSURUSUTUERVAVMURABUFRQVBCBAURCSFZVAUPVOUQCTPPVABSFZURUTVPUSBTRRZVAASFZURU
    SVRUTATPRZUGULVCAUHCVHUHUIVBVFUQUQUTVFUPUSDBUCUJUPUQVAUKQVBVJVGVBABDVSVQURD
    SFZVAUQVTUPDTRPUMUNULAVCVEUOVHCDUOUI $.

  $( A Peano-postulate-like theorem for downward closure of a half-open integer
     range.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
  peano2fzor $p |- ( ( K e. ( ZZ>= ` M ) /\ ( K + 1 ) e. ( M ..^ N ) ) ->
    K e. ( M ..^ N ) ) $=
    ( cuz cfv wcel c1 caddc co cfzo wa cmin cfz simpr cz elfzoel2 adantl fzoval
    wceq syl eleqtrd peano2fzr syldan eleqtrrd ) ABDEFZAGHIZBCJIZFZKZABCGLIZMIZ
    UGUEUHUFUKFAUKFUIUFUGUKUEUHNUICOFZUGUKSUHULUEUFBCPQBCRTZUAABUJUBUCUMUD $.

  $( Extending a half-open range by a singleton on the end.  (Contributed by
     Stefan O'Rear, 23-Aug-2015.) $)
  fzosplitsn $p |- ( B e. ( ZZ>= ` A ) ->
      ( A ..^ ( B + 1 ) ) = ( ( A ..^ B ) u. { B } ) ) $=
    ( cuz cfv wcel c1 caddc co cfzo cun csn cfz wceq eluzelz uzid peano2uz 3syl
    id cz syl elfzuzb sylanbrc fzosplit fzosn uneq2d eqtrd ) BACDEZABFGHZIHZABI
    HZBUHIHZJZUJBKZJUGBAUHLHEZUIULMUGUGUHBCDZEZUNUGRUGBSEZBUOEUPABNZBOBBPQBAUHU
    AUBAUHBUCTUGUKUMUJUGUQUKUMMURBUDTUEUF $.

  $( Extending a half-open integer range by an unordered pair at the end.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  fzosplitprm1 $p |- ( ( A e. ZZ /\ B e. ZZ /\ A < B ) ->
      ( A ..^ ( B + 1 ) ) = ( ( A ..^ ( B - 1 ) ) u. { ( B - 1 ) , B } ) ) $=
    ( cz wcel wbr c1 caddc co cfzo csn cun wceq cle cr zre syl3anbrc fzosplitsn
    eluz2 syl cc clt w3a cmin cpr cuz cfv simp1 simp2 wi ltle syl2an 3impia zcn
    ax-1cn npcan eqcomd sylancl 3ad2ant2 oveq2d peano2zm zltlem1 biimp3a uneq1d
    wa eqtrd unass df-pr eqcomi a1i uneq2d syl5eq 3eqtrd ) ACDZBCDZABUAEZUBZABF
    GHIHZABIHZBJZKZABFUCHZIHZWAJZKZVSKZWBWABUDZKZVPBAUEUFZDZVQVTLVPVMVNABMEZWIV
    MVNVOUGZVMVNVOUHVMVNVOWJVMANDBNDVOWJUIVNAOBOABUJUKULABRPABQSVPVRWDVSVPVRAWA
    FGHZIHZWDVPBWLAIVNVMBWLLZVOVNBTDZFTDZWNBUMUNWOWPVDWLBBFUOUPUQURUSVPWAWHDZWM
    WDLVPVMWACDZAWAMEZWQWKVNVMWRVOBUTURVMVNVOWSABVAVBAWARPAWAQSVEVCVPWEWBWCVSKZ
    KWGWBWCVSVFVPWTWFWBWTWFLVPWFWTWABVGVHVIVJVKVL $.

  $( Membership in a half-open range extended by a singleton.  (Contributed by
     Stefan O'Rear, 23-Aug-2015.) $)
  fzosplitsni $p |- ( B e. ( ZZ>= ` A ) -> ( C e. ( A ..^ ( B + 1 ) ) <->
        ( C e. ( A ..^ B ) \/ C = B ) ) ) $=
    ( cuz cfv wcel c1 caddc co cfzo csn cun wceq fzosplitsn eleq2d elun elsnc2g
    wo orbi2d syl5bb bitrd ) BADEZFZCABGHIJIZFCABJIZBKZLZFZCUEFZCBMZRZUCUDUGCAB
    NOUHUICUFFZRUCUKCUEUFPUCULUJUICBUBQSTUA $.

  $( A finite interval of integers as union of a half-open integer range and a
     singleton.  (Contributed by Alexander van der Vekens, 15-Jun-2018.) $)
  fzisfzounsn $p |- ( B e. ( ZZ>= ` A )
                      -> ( A ... B ) = ( ( A ..^ B ) u. { B } ) ) $=
    ( cuz cfv wcel cfz co caddc cfzo csn cun wceq eluzelz fzval3 syl fzosplitsn
    c1 cz eqtrd ) BACDEZABFGZABQHGIGZABIGBJKTBREUAUBLABMABNOABPS $.

  $( Two possibilities for a number one greater than a number in a half-open
     range.  (Contributed by Stefan O'Rear, 23-Aug-2015.) $)
  fzostep1 $p |- ( A e. ( B ..^ C ) -> ( ( A + 1 ) e. ( B ..^ C ) \/
          ( A + 1 ) = C ) ) $=
    ( cfzo co wcel c1 caddc wceq wo cz cuz cfv wss elfzoel1 peano2uz wbr cr zre
    uzid fzoss1 4syl 1z fzoaddel mpan2 sseldd wb cle elfzoel2 clt elfzolt3 ltle
    wi syl2an syl2anc mpd eluz2 syl3anbrc fzosplitsni syl mpbid ) ABCDEZFZAGHEZ
    BCGHEZDEZFZVDVBFVDCIJZVCBGHEZVEDEZVFVDVCBKFZBBLMZFVIVLFVJVFNABCOZBTBBPVIBVE
    UAUBVCGKFVDVJFUCABCGUDUEUFVCCVLFZVGVHUGVCVKCKFZBCUHQZVNVMABCUIZVCBCUJQZVPAB
    CUKVCVKVOVRVPUMZVMVQVKBRFCRFVSVOBSCSBCULUNUOUPBCUQURBCVDUSUTVA $.

  ${
    $d K j k $.  $d M j k $.  $d N j k $.  $d ph k $.
    $( Shift the scanning order inside of a quantification over a half-open
       integer range, analogous to ~ fzshftral .  (Contributed by Alexander van
       der Vekens, 23-Sep-2018.) $)
    fzoshftral $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
        -> ( A. j e. ( M ..^ N ) ph
          <-> A. k e. ( ( M + K ) ..^ ( N + K ) ) [. ( k - K ) / j ]. ph ) ) $=
      ( cz wcel cfzo co wral c1 cmin cfz caddc wceq fzoval raleqdv 3adant1 cc
      w3a cv 3ad2ant2 wb peano2zm fzshftral syl3an2 zaddcl syl wa adantr adantl
      wsbc zcn 1cnd addsubd oveq2d eqtr2d 3bitrd ) EGHZFGHZDGHZUAZABEFIJZKABEFL
      MJZNJZKZABCUBDMJUMZCEDOJZVEDOJZNJZKZVHCVIFDOJZIJZKVCABVDVFVAUTVDVFPVBEFQU
      CRVAUTVEGHVBVGVLUDFUEABCDEVEUFUGVCVHCVKVNVCVNVIVMLMJZNJZVKVCVMGHZVNVPPVAV
      BVQUTFDUHSVIVMQUIVCVOVJVINVAVBVOVJPUTVAVBUJZFDLVAFTHVBFUNUKVBDTHVADUNULVR
      UOUPSUQURRUS $.
  $}

  ${
    $d K x $.  $d M x y $.  $d N x y $.  $d ch x $.  $d ph y $.  $d ps x $.
    $d ta x $.  $d th x $.
    fzind2.1 $e |- ( x = M -> ( ph <-> ps ) ) $.
    fzind2.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    fzind2.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    fzind2.4 $e |- ( x = K -> ( ph <-> ta ) ) $.
    fzind2.5 $e |- ( N e. ( ZZ>= ` M ) -> ps ) $.
    fzind2.6 $e |- ( y e. ( M ..^ N ) -> ( ch -> th ) ) $.
    $( Induction on the integers from ` M ` to ` N ` inclusive.  The first four
       hypotheses give us the substitution instances we need; the last two are
       the basis and the induction step.  Version of ~ fzind using integer
       range definitions.  (Contributed by Mario Carneiro, 6-Feb-2016.) $)
    fzind2 $p |- ( K e. ( M ... N ) -> ta ) $=
      ( wcel wa wbr w3a cfz co cz cle elfz2 df-3an anbi1i 3anass anbi2i 3bitr4i
      anass bitri cuz cfv eluz2 sylbir cv clt wi cfzo elfzo syl6bir 3coml 3expa
      impr sylan2b fzind sylbi ) HIJUAUBQZIUCQZJUCQZRZHUCQZIHUDSZHJUDSZTZRZEVIV
      JVKVMTZVNVORZRZVQHIJUEVLVMRZVSRVLVMVSRZRVTVQVLVMVSUKVRWAVSVJVKVMUFUGVPWBV
      LVMVNVOUHUIUJULABCDEFGHIJKLMNVJVKIJUDSTJIUMUNQBIJUOOUPGUQZUCQZIWCUDSZWCJU
      RSZTVLWDWEWFRZRCDUSZWDWEWFUHVLWDWGWHVJVKWDWGWHUSZWDVJVKWIWDVJVKTWGWCIJUTU
      BQWHWCIJVAPVBVCVDVEVFVGVH $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Miscellaneous theorems about integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A w y z $.  $d B w z $.  $d C v w x y z $.  $d G v w y z $.
    frec2uz.1 $e |- ( ph -> C e. ZZ ) $.
    frec2uz.2 $e |- G = frec ( ( x e. ZZ |-> ( x + 1 ) ) , C ) $.
    $( The mapping ` G ` is a one-to-one mapping from ` _om ` onto upper
       integers that will be used to construct a recursive definition
       generator.  Ordinal natural number 0 maps to complex number ` C `
       (normally 0 for the upper integers ` NN0 ` or 1 for the upper integers
       ` NN ` ), 1 maps to ` C ` + 1, etc.  This theorem shows the value of
       ` G ` at ordinal natural number zero.  (Contributed by Jim Kingdon,
       16-May-2020.) $)
    frec2uz0d $p |- ( ph -> ( G ` (/) ) = C ) $=
      ( c0 cfv cz cv c1 caddc co cmpt cfrec fveq1i wcel wceq frec0g syl syl5eq
      ) AGDHGBIBJKLMNZCOZHZCGDUCFPACIQUDCRECUBISTUA $.

    ${
      $d ph w y z $.
      frec2uzzd.a $e |- ( ph -> A e. _om ) $.
      $( The value of ` G ` (see ~ frec2uz0d ) is an integer.  (Contributed by
         Jim Kingdon, 16-May-2020.) $)
      frec2uzzd $p |- ( ph -> ( G ` A ) e. ZZ ) $=
        ( vw vz com wcel cfv cz cv wi wceq eleq1d c1 caddc vy wa fveq2d imbi12d
        simpr c0 csuc fveq2 frec2uz0d eqeltrd cmpt cfrec cvv wal zex mptex fvex
        co vex ax-gen frecsuc mp3an1 sylan fveq1i 3eqtr4g oveq1 cbvmptv peano2z
        fveq2i fvmpt3 sylan9eq adantl ex expcom finds2 com12 vtocld mpd ) ACKLZ
        CEMZNLZHAIOZKLZWBEMZNLZPVSWAPICKHAWBCQZUBZWCVSWEWAWGWBCKAWFUEZRWGWDVTNW
        GWBCEWHUCRUDWCAWEWEUFEMZNLUAOZEMZNLZWJUGZEMZNLZAIUAWBUFQWDWINWBUFEUHRWB
        WJQWDWKNWBWJEUHRWBWMQWDWNNWBWMEUHRAWIDNABDEFGUIFUJAWJKLZWLWOPAWPUBZWLWO
        WQWLUBWNWKSTURZNWQWLWNWKBNBOZSTURZUKZMZWRWQWMXADULZMZWJXCMZXAMZWNXBADNL
        ZWPXDXFQZFJOZXAMUMLZJUNXGWPXHXJJXIXAUMUMBNWTUOUPJUSUQUTJDWJXANVAVBVCWME
        XCGVDWKXEXAWJEXCGVDVIVEJWKXISTURZWRNXANXIWKSTVFBJNWTXKWSXISTVFVGXIVHVJV
        KWLWRNLWQWKVHVLUJVMVNVOVPVQVR $.

      $( The value of ` G ` (see ~ frec2uz0d ) at a successor.  (Contributed by
         Jim Kingdon, 16-May-2020.) $)
      frec2uzsucd $p |- ( ph -> ( G ` suc A ) = ( ( G ` A ) + 1 ) ) $=
        ( vy vz cfv cz cv c1 caddc co wcel wceq cvv fveq1i csuc cfrec com mptex
        cmpt wal zex vex ax-gen frecsuc mp3an1 syl2anc fveq2i 3eqtr4g frec2uzzd
        fvex oveq1 cbvmptv peano2z fvmpt3 syl eqtrd ) ACUAZEKZCEKZBLBMZNOPZUEZK
        ZVENOPZAVCVHDUBZKZCVKKZVHKZVDVIADLQZCUCQZVLVNRZFHIMZVHKSQZIUFVOVPVQVSIV
        RVHSSBLVGUGUDIUHUPUIIDCVHLUJUKULVCEVKGTVEVMVHCEVKGTUMUNAVELQVIVJRABCDEF
        GHUOJVEJMZNOPZVJLVHLVTVENOUQBJLVGWAVFVTNOUQURVTUSUTVAVB $.

      $( The value ` G ` (see ~ frec2uz0d ) at an ordinal natural number is in
         the upper integers.  (Contributed by Jim Kingdon, 16-May-2020.) $)
      frec2uzuzd $p |- ( ph -> ( G ` A ) e. ( ZZ>= ` C ) ) $=
        ( vy vz com wcel cfv cv wi wceq wa eleq1d c0 fveq2 simpr fveq2d imbi12d
        cuz csuc frec2uz0d cz uzid syl eqeltrd c1 caddc co peano2uz frec2uzsucd
        adantl simpl syl5ibr ex finds2 com12 vtocld mpd ) ACKLZCEMZDUDMZLZHAINZ
        KLZVHEMZVFLZOVDVGOICKHAVHCPZQZVIVDVKVGVMVHCKAVLUAZRVMVJVEVFVMVHCEVNUBRU
        CVIAVKVKSEMZVFLJNZEMZVFLZVPUEZEMZVFLZAIJVHSPVJVOVFVHSETRVHVPPVJVQVFVHVP
        ETRVHVSPVJVTVFVHVSETRAVODVFABDEFGUFADUGLZDVFLFDUHUIUJVPKLZAVRWAOVRWAWCA
        QZVQUKULUMZVFLDVQUNWDVTWEVFWDBVPDEAWBWCFUPGWCAUQUORURUSUTVAVBVC $.

      frec2uzltd.b $e |- ( ph -> B e. _om ) $.
      $( Less-than relation for ` G ` (see ~ frec2uz0d ).  (Contributed by Jim
         Kingdon, 16-May-2020.) $)
      frec2uzltd $p |- ( ph -> ( A e. B -> ( G ` A ) < ( G ` B ) ) ) $=
        ( wcel cfv clt wbr wi c0 wceq fveq2 breq2d imbi12d vz vy com csuc eleq2
        cv imbi2d noel pm2.21i a1i wo wa id orim12d wb elsuc2g bicomd adantr c1
        caddc co cle cz adantl simpl frec2uzsucd cuz frec2uzuzd eluzelz zleltp1
        syl2an syl2anc frec2uzzd zleloe 3bitr2rd syl5ib ex a2d finds mpcom ) DU
        CKACDKZCFLZDFLZMNZOZJACUAUFZKZWBWFFLZMNZOZOACPKZWBPFLZMNZOZOACUBUFZKZWB
        WOFLZMNZOZOACWOUDZKZWBWTFLZMNZOZOAWEOUAUBDWFPQZWJWNAXEWGWKWIWMWFPCUEXEW
        HWLWBMWFPFRSTUGWFWOQZWJWSAXFWGWPWIWRWFWOCUEXFWHWQWBMWFWOFRSTUGWFWTQZWJX
        DAXGWGXAWIXCWFWTCUEXGWHXBWBMWFWTFRSTUGWFDQZWJWEAXHWGWAWIWDWFDCUEXHWHWCW
        BMWFDFRSTUGWNAWKWMCUHUIUJWOUCKZAWSXDXIAWSXDOWSWPCWOQZUKZWRWBWQQZUKZOXIA
        ULZXDWSWPWRXJXLWSUMXJXLOWSCWOFRUJUNXNXKXAXMXCXIXKXAUOAXIXAXKCWOUCUPUQUR
        XNXCWBWQUSUTVAZMNZWBWQVBNZXMXNXBXOWBMXNBWOEFAEVCKXIGVDZHXIAVEZVFSXNWBEV
        GLZKZWQXTKZXQXPUOZXNBCEFXRHACUCKXIIVDZVHXNBWOEFXRHXSVHYAWBVCKZWQVCKZYCY
        BEWBVIEWQVIWBWQVJVKVLXNYEYFXQXMUOXNBCEFXRHYDVMXNBWOEFXRHXSVMWBWQVNVLVOT
        VPVQVRVSVT $.

      $( The mapping ` G ` (see ~ frec2uz0d ) preserves order.  (Contributed by
         Jim Kingdon, 16-May-2020.) $)
      frec2uzlt2d $p |- ( ph -> ( A e. B <-> ( G ` A ) < ( G ` B ) ) ) $=
        ( wcel cfv clt wbr frec2uzltd wceq wa adantr zred ex w3o wi com syl2anc
        nntri3or ax-1 a1i fveq2 adantl breq2d biimpar cz frec2uzzd pm2.21dd imp
        ltnrd ltnsymd pm2.21d 3jaod mpd impbid ) ACDKZCFLZDFLZMNZABCDEFGHIJOAVB
        CDPZDCKZUAZVEVBUBZACUCKDUCKVHIJCDUEUDAVBVIVFVGVBVIUBAVBVEUFUGAVFVIAVFQZ
        VEVBVJVEQZVCVCMNZVBVJVLVEVJVCVDVCMVFVCVDPACDFUHUIUJUKVKVCVKVCVJVCULKZVE
        AVMVFABCEFGHIUMZRRSUPUNTTAVGVIAVGQZVEVBVOVDVCVOVDAVDULKVGABDEFGHJUMRSVO
        VCAVMVGVNRSAVGVDVCMNABDCEFGHJIOUOUQURTUSUTVA $.
    $}

    ${
      $d ph x y z $.
      $( Range of ` G ` (see ~ frec2uz0d ).  (Contributed by Jim Kingdon,
         17-May-2020.) $)
      frec2uzrand $p |- ( ph -> ran G = ( ZZ>= ` C ) ) $=
        ( vy vz cz wcel cfv cv com c1 caddc co cvv syl eleq1 c0 vw crn cuz wceq
        wrex wfn wb cmpt cfrec wal zex mptex fvex ax-gen frecfnom fneq1i sylibr
        vex fvelrnb simpl simpr frec2uzuzd syl5ibcom rexlimdva sylbid frec2uz0d
        mpan wa id peano1 fnfvelrn sylancl eqeltrrd wi eluzel2 csuc frec2uzsucd
        oveq1 sylan9eq peano2 syl2an adantr ex uzind4 impbid1 eqrdv ) ACIJZDUBZ
        CUCKZUDEWGGWHWIWGGLZWHJZWJWIJZWGWKHLZDKZWJUDZHMUEZWLWGDMUFZWKWPUGWGBIBL
        NOPZUHZCUIZMUFZWQWMWSKQJZHUJWGXAXBHWMWSQQBIWRUKULHURUMUNHCWSIUOVGMDWTFU
        PUQZHMWJDUSRZWGWOWLHMWGWMMJZVHZWNWIJWOWLXFBWMCDWGXEUTZFWGXEVAZVBWNWJWIS
        VCVDVEUALZWHJCWHJWKWJNOPZWHJZWKUAGCWJXICWHSXIWJWHSZXIXJWHSXLWGTDKZCWHWG
        BCDWGVIFVFWGWQTMJXMWHJXCVJMTDVKVLVMWLWGWKXKVNCWJVOWGWKWPXKXDWGWOXKHMXFW
        OXKXFWOVHWMVPZDKZXJWHXFWOXOWNNOPXJXFBWMCDXGFXHVQWNWJNOVRVSXFXOWHJZWOWGW
        QXNMJXPXEXCWMVTMXNDVKWAWBVMWCVDVERWDWEWFR $.

      $( ` G ` (see ~ frec2uz0d ) is a one-to-one onto mapping.  (Contributed
         by Jim Kingdon, 17-May-2020.) $)
      frec2uzf1od $p |- ( ph -> G : _om -1-1-onto-> ( ZZ>= ` C ) ) $=
        ( vy vz com cfv wceq cv wi cz cvv wcel sylanbrc wn clt adantr wf1o wral
        cuz wf1 crn wf wfn wss c1 caddc co cmpt cfrec wal zex mptex fvex ax-gen
        vex frecfnom sylancr fneq1i sylibr frec2uzrand eqimss syl df-f wa simpr
        w3a wbr frec2uzzd 3adant3 zred ltnrd mtbid simp2 simp3 frec2uzltd con3d
        breq2d mpd breq1d wb nntri3 3adant1 mpbir2and ex 3expb ralrimivva dff13
        mtod dff1o5 ) AICUCJZDUDZDUEZWNKZIWNDUAAIWNDUFZGLZDJZHLZDJZKZWSXAKZMZHI
        UBGIUBWOADIUGZWPWNUHZWRABNBLUIUJUKZULZCUMZIUGZXFAXAXIJOPZHUNCNPZXKXLHXA
        XIOOBNXHUOUPHUSUQUREHCXINUTVAIDXJFVBVCAWQXGABCDEFVDZWPWNVEVFIWNDVGQAXEG
        HIIAWSIPZXAIPZXEAXOXPVJZXCXDXQXCVHZXDWSXAPZRZXAWSPZRZXRWTXBSVKZRZXTXRWT
        WTSVKZYCXQYERXCXQWTXQWTAXOWTNPXPAXOVHBWSCDAXMXOETZFAXOVIVLVMVNVOTZXRWTX
        BWTSXQXCVIZWAVPXQYDXTMXCXQXSYCXQBWSXACDAXOXMXPYFVMZFAXOXPVQZAXOXPVRZVSV
        TTWBXRYAXBWTSVKZXRYEYLYGXRWTXBWTSYHWCVPXQYAYLMXCXQBXAWSCDYIFYKYJVSTWLXQ
        XDXTYBVHWDZXCXOXPYMAWSXAWEWFTWGWHWIWJGHIWNDWKQXNIWNDWMQ $.

      $( ` G ` (see ~ frec2uz0d ) is an isomorphism from natural ordinals to
         upper integers.  (Contributed by Jim Kingdon, 17-May-2020.) $)
      frec2uzisod $p |- ( ph -> G Isom _E , < ( _om , ( ZZ>= ` C ) ) ) $=
        ( vy vz com cuz cfv wf1o cv cep wbr clt wb wral wcel wa wiso ralrimivva
        frec2uzf1od cz adantr simprl simprr frec2uzlt2d syl5bb df-isom sylanbrc
        epel ) AICJKZDLGMZHMZNOZUNDKUODKPOZQZHIRGIRIUMNPDUAABCDEFUCAURGHIIUPUNU
        OSAUNISZUOISZTZTZUQGHULVBBUNUOCDACUDSVAEUEFAUSUTUFAUSUTUGUHUIUBGHIUMNPD
        UJUK $.
    $}

    ${
      $d w x y z F $.  $d A w y z $.  $d C v w x y z $.  $d G v w y z $.
      $d R v w z $.  $d S w x y z $.  $d ph v w x y z $.
      uzrdg.s $e |- ( ph -> S e. V ) $.
      uzrdg.a $e |- ( ph -> A e. S ) $.
      uzrdg.f $e |- ( ( ph /\ ( x e. ( ZZ>= ` C ) /\ y e. S ) ) ->
        ( x F y ) e. S ) $.
      uzrdg.2 $e |- R = frec ( ( x e. ( ZZ>= ` C ) , y e. S |->
        <. ( x + 1 ) , ( x F y ) >. ) , <. C , A >. ) $.

      ${
        $d D z $.
        $( The function ` R ` (used in the definition of the recursive
           definition generator on upper integers) yields ordered pairs of
           integers and elements of ` S ` .  (Contributed by Jim Kingdon,
           27-May-2020.) $)
        frecuzrdgrrn $p |- ( ( ph /\ D e. _om ) ->
            ( R ` D ) e. ( ( ZZ>= ` C ) X. S ) ) $=
          ( wcel cfv cvv vz com wa cuz cv c1 caddc co cop cmpt2 cfrec fveq1i cz
          cxp zex uzssz ssexi a1i adantr mpt2exga syl2anc vex fvexg alrimiv syl
          uzid opelxp sylanbrc c1st c2nd wceq 1st2nd2 fveq2 df-ov syl6eqr xp1st
          adantl xp2nd peano2uz wral ralrimivva ad2antrr wi oveq1 eleq1d rspc2v
          oveq2 mpd opeq12d opeq2d ovmpt2g syl3anc eqtrd eqeltrd simpr syl5eqel
          eqid freccl ) AFUBRZUCZFGSFBCEUDSZHBUEZUFUGUHZXBCUEZIUHZUIZUJZEDUIZUK
          ZSXAHUNZFGXIQULWTUAXHFXJXGWTUAUEZXGSZTRZUAWTXGTRZXKTRZXMWTXATRZHKRZXN
          XPWTXAUMUOEUPUQURAXQWSNUSBCXAHXFTKUTVAXOWTUAVBURXKXGTTVCVAVDAXHXJRZWS
          AEXARZDHRXRAEUMRXSLEVFVEOEDXAHVGVHUSWTXKXJRZUCZXLXKVISZUFUGUHZYBXKVJS
          ZIUHZUIZXJYAXLYBYDXGUHZYFXTXLYGVKZWTXTXKYBYDUIZVKZYHXKXAHVLYJXLYIXGSY
          GXKYIXGVMYBYDXGVNVOVEVQYAYBXARZYDHRZYFXJRZYGYFVKXTYKWTXKXAHVPVQZXTYLW
          TXKXAHVRVQZYAYCXARZYEHRZYMYAYKYPYNEYBVSVEYAXEHRZCHVTBXAVTZYQAYSWSXTAY
          RBCXAHPWAWBYAYKYLYSYQWCYNYOYRYQYBXDIUHZHRBCYBYDXAHXBYBVKZXEYTHXBYBXDI
          WDZWEXDYDVKZYTYEHXDYDYBIWGZWEWFVAWHYCYEXAHVGVHZBCYBYDXAHXFYFXGYCYTUIX
          JUUAXCYCXEYTXBYBUFUGWDUUBWIUUCYTYEYCUUDWJXGWQWKWLWMUUEWNAWSWOWRWP $.
      $}

      ${
        $d B w z $.
        uzrdg.b $e |- ( ph -> B e. _om ) $.
        $( A helper lemma for the value of a recursive definition generator on
           upper integers (typically either ` NN ` or ` NN0 ` ) with
           characteristic function ` F ( x , y ) ` and initial value ` A ` .
           This lemma shows that evaluating ` R ` at an element of ` _om `
           gives an ordered pair whose first element is the index (translated
           from ` _om ` to ` ( ZZ>= `` C ) ` ).  See comment in ~ frec2uz0d
           which describes ` G ` and the index translation.  (Contributed by
           Jim Kingdon, 24-May-2020.) $)
        frec2uzrdg $p |- ( ph -> ( R ` B ) =
            <. ( G ` B ) , ( 2nd ` ( R ` B ) ) >. ) $=
          ( wcel cfv vz vv vw com c2nd cop wceq cv fveq2 fveq2d opeq12d eqeq12d
          wi imbi2d c0 csuc cuz c1 caddc co cmpt2 cfrec fveq1i cz opexg syl2anc
          cvv frec0g syl syl5eq frec2uz0d uzid op2ndg eqtrd eqtr4d wa wal uzssz
          zex ssexi a1i adantr mpt2exga vex fvexg alrimiv simpr frecsuc syl3anc
          fveq2i 3eqtr4g df-ov frec2uzuzd frecuzrdgrrn peano2uz caovclg adantlr
          cxp xp2nd caovcld opelxp sylanbrc oveq1 oveq2 opeq2d cbvmpt2v ovmpt2g
          syl5eqr sylan9eqr frec2uzsucd frec2uzzd peano2zd expcom vtoclga mpcom
          ex finds2 ) EUDSAEGTZEJTZXRUETZUFZUGZRAUAUHZGTZYCJTZYDUETZUFZUGZUMAYB
          UMUAEUDYCEUGZYHYBAYIYDXRYGYAYCEGUIZYIYEXSYFXTYCEJUIYIYDXRUEYJUJUKULUN
          YHUOGTZUOJTZYKUETZUFZUGUBUHZGTZYOJTZYPUETZUFZUGZYOUPZGTZUUAJTZUUBUETZ
          UFZUGZAUAUBYCUOUGZYDYKYGYNYCUOGUIZUUGYEYLYFYMYCUOJUIUUGYDYKUEUUHUJUKU
          LYCYOUGZYDYPYGYSYCYOGUIZUUIYEYQYFYRYCYOJUIUUIYDYPUEUUJUJUKULYCUUAUGZY
          DUUBYGUUEYCUUAGUIZUUKYEUUCYFUUDYCUUAJUIUUKYDUUBUEUULUJUKULAYKFDUFZYNA
          YKUOBCFUQTZHBUHZURUSUTZUUOCUHZIUTZUFZVAZUUMVBZTZUUMUOGUVAQVCAUUMVGSZU
          VBUUMUGAFVDSZDHSZUVCLOFDVDHVEVFZUUMUUTVGVHVIVJZAYLFYMDABFJLMVKAYMUUMU
          ETZDAYKUUMUEUVGUJAFUUNSZUVEUVHDUGAUVDUVILFVLVIOFDUUNHVMVFVNUKVOAYOUDS
          ZYTUUFUMAUVJVPZYTUUFUVKYTVPZUUBYQURUSUTZYQYRIUTZUFZUUEUVLUUBYPUUTTZUV
          OUVKUUBUVPUGYTUVKUUAUVATZYOUVATZUUTTZUUBUVPUVKYCUUTTVGSZUAVQUVCUVJUVQ
          UVSUGUVKUVTUAUVKUUTVGSZYCVGSZUVTUVKUUNVGSZHKSZUWAUWCUVKUUNVDVSFVRVTWA
          AUWDUVJNWBBCUUNHUUSVGKWCVFUWBUVKUAWDWAYCUUTVGVGWEVFWFAUVCUVJUVFWBAUVJ
          WGZUAUUMYOUUTVGWHWIUUAGUVAQVCYPUVRUUTYOGUVAQVCWJWKWBYTUVKUVPYSUUTTZUV
          OYPYSUUTUIUVKUWFYQYRUUTUTZUVOYQYRUUTWLUVKYQUUNSZYRHSZUVOUUNHWRZSZUWGU
          VOUGUVKBYOFJAUVDUVJLWBZMUWEWMZUVKYPUWJSUWIABCDFYOGHIJKLMNOPQWNYPUUNHW
          SVIZUVKUVMUUNSZUVNHSZUWKUVKUWHUWOUWMFYQWOVIUVKUAUCYQYRUUNHHIAYCUUNSUC
          UHZHSVPYCUWQIUTHSUVJABCYCUWQUUNHHIPWPWQUWMUWNWTZUVMUVNUUNHXAXBUCUAYQY
          RUUNHUWQURUSUTZUWQYCIUTZUFZUVOUUTUVMYQYCIUTZUFUWJUWQYQUGUWSUVMUWTUXBU
          WQYQURUSXCUWQYQYCIXCUKYCYRUGUXBUVNUVMYCYRYQIXDXEBCUCUAUUNHUUSUXAUWSUW
          QUUQIUTZUFUUOUWQUGUUPUWSUURUXCUUOUWQURUSXCUUOUWQUUQIXCUKUUQYCUGUXCUWT
          UWSUUQYCUWQIXDXEXFXGWIXHXIVNZUVLUUCUVMUUDUVNUVKUUCUVMUGYTUVKBYOFJUWLM
          UWEXJWBUVLUUDUVOUETZUVNUVLUUBUVOUEUXDUJUVLUVMVDSZUWPUXEUVNUGUVKUXFYTU
          VKYQUVKBYOFJUWLMUWEXKXLWBUVKUWPYTUWRWBUVMUVNVDHVMVFVNUKVOXPXMXQXNXO
          $.
      $}

      $( The function ` R ` (used in the definition of the recursive definition
         generator on upper integers) is a function defined for all natural
         numbers.  (Contributed by Jim Kingdon, 26-May-2020.) $)
      frecuzrdgrom $p |- ( ph -> R Fn _om ) $=
        ( vz cv cvv wcel cuz cfv c1 caddc co cop cmpt2 cfrec com wfn wal cxp cz
        zex uzssz ssexi mpt2exga sylancr vex fvexg sylancl alrimiv syl sylanbrc
        uzid opelxp frecfnom syl2anc fneq1i sylibr ) ABCEUAUBZGBRZUCUDUEVLCRHUE
        UFZUGZEDUFZUHZUIUJZFUIUJAQRZVNUBSTZQUKVOVKGULZTZVQAVSQAVNSTZVRSTVSAVKST
        GJTWBVKUMUNEUOUPMBCVKGVMSJUQURQUSVRVNSSUTVAVBAEVKTZDGTWAAEUMTWCKEVEVCNE
        DVKGVFVDQVOVNVTVGVHUIFVPPVIVJ $.

      ${
        $d B w x y z $.
        frecuzrdglem.b $e |- ( ph -> B e. ( ZZ>= ` C ) ) $.
        $( A helper lemma for the value of a recursive definition generator on
           upper integers.  (Contributed by Jim Kingdon, 26-May-2020.) $)
        frecuzrdglem $p |- ( ph ->
            <. B , ( 2nd ` ( R ` ( `' G ` B ) ) ) >. e. ran R ) $=
          ( cfv com ccnv c2nd cop crn wf1o wcel frec2uzf1od f1ocnvdm frec2uzrdg
          cuz syl2anc f1ocnvfv2 opeq1d eqtrd wfn frecuzrdgrom fnfvelrn eqeltrrd
          wceq ) AEJUASZGSZEVAUBSZUCZGUDZAVAUTJSZVBUCVCABCDUTFGHIJKLMNOPQATFUJS
          ZJUEZEVFUFZUTTUFZABFJLMUGZRTVFEJUHUKZUIAVEEVBAVGVHVEEUSVJRTVFEJULUKUM
          UNAGTUOVIVAVDUFABCDFGHIJKLMNOPQUPVKTUTGUQUKUR $.
      $}

      ${
        $d v w z T $.
        frecuzrdgfn.3 $e |- ( ph -> T = ran R ) $.
        $( The recursive definition generator on upper integers is a function.
           See comment in ~ frec2uz0d for the description of ` G ` as the
           mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by Jim
           Kingdon, 26-May-2020.) $)
        frecuzrdgfn $p |- ( ph -> T Fn ( ZZ>= ` C ) ) $=
          ( vz wcel vv vw wfun cdm cuz cfv wceq wfn wrel cv wbr wmo cvv cxp wss
          wral com crn eleq2d wb frecuzrdgrom fvelrnb syl bitrd wa frecuzrdgrrn
          wrex eleq1 syl5ibcom rexlimdva sylbid ssrdv xpss syl6ss df-rel sylibr
          cop wi wal wex ccnv c2nd wf1o frec2uzf1od f1ocnvdm sylan syldan xp2nd
          cz adantr co adantlr simpr frec2uzrdg eqeq1d vex opth2 simplbi syl6bi
          f1ocnvfv syld fveq2 fveq2d syl6 op2ndd adantl eqtr2d ex alrimiv eqeq2
          imp imbi2d albidv spcegv sylc mo2r dmxpss frecuzrdglem mpbird opeldmg
          dmss mpan eqssd pm5.32i df-br mobii 3imtr4i ralrimiva dffun7 sylanbrc
          nfv df-fn ) AHUCZHUDZEUEUFZUGHYOUHAHUIZUAUJZSUJZHUKZSULZUAYNUPYMAHUMU
          MUNZUOYPAHYOGUNZUUAASHUUBAYRHTZUBUJZFUFZYRUGZUBUQVGZYRUUBTZAUUCYRFURZ
          TZUUGAHUUIYRRUSAFUQUHZUUJUUGUTABCDEFGIJKLMNOPQVAZUBUQYRFVBVCVDAUUFUUH
          UBUQAUUDUQTZVEZUUEUUBTUUFUUHABCDEUUDFGIJKLMNOPQVFUUEYRUUBVHVIVJVKVLZY
          OGVMVNHVOVPAYTUAYNAYQYOTZVEZYQYRVQZHTZSULZAYQYNTZVEYTUUQUUSYRUUDUGZVR
          ZSVSZUBVTZUUTUUQYQJWAUFZFUFZWBUFZGTZUUSYRUVHUGZVRZSVSZUVEUUQUVGUUBTZU
          VIAUUPUVFUQTZUVMAUQYOJWCZUUPUVNABEJLMWDZUQYOYQJWEWFABCDEUVFFGIJKLMNOP
          QVFWGUVGYOGWHVCZAUVLUUPAUVKSAUUSUUEUURUGZUBUQVGZUVJAUUSUURUUITZUVSAHU
          UIUURRUSAUUKUVTUVSUTUULUBUQUURFVBVCVDAUVRUVJUBUQUUNUVRUVJUUNUVRVEUVHU
          UEWBUFZYRUUNUVRUVHUWAUGZUUNUVRUVFUUDUGZUWBUUNUVRUUDJUFZYQUGZUWCUUNUVR
          UWDUWAVQZUURUGZUWEUUNUUEUWFUURUUNBCDUUDEFGIJKAEWITZUUMLWJMAGKTZUUMNWJ
          ADGTZUUMOWJABUJZYOTCUJZGTVEZUWKUWLIWKGTZUUMPWLQAUUMWMWNWOUWGUWEUWAYRU
          GZUWDUWAYQYRUAWPZSWPZWQWRWSAUVOUUMUWEUWCVRUVPUQYOUUDYQJWTWFXAUWCUVGUU
          EWBUVFUUDFXBXCXDXKUVRUWOUUNYQYRUUEUWPUWQXEXFXGXHVJVKXIWJUVDUVLUBUVHGU
          UDUVHUGZUVCUVKSUWRUVBUVJUUSUUDUVHYRXJXLXMXNXOUUSSUBUUSUBYKXPVCAUVAUUP
          AYNYOYQAYNYOAYNUUBUDZYOAHUUBUOYNUWSUOUUOHUUBYAVCYOGXQVNAUAYOYNAUUPUVA
          UUQUVIYQUVHVQZHTZUVAUVQUUQUXAUWTUUITZUUQBCDYQEFGIJKAUWHUUPLWJMAUWIUUP
          NWJAUWJUUPOWJAUWMUWNUUPPWLQAUUPWMXRAUXAUXBUTUUPAHUUIUWTRUSWJXSYQUMTUV
          IUXAUVAVRUWPYQUVHHUMGXTYBXOXHVLYCZUSYDYSUUSSYQYRHYEYFYGYHUASHYIYJUXCH
          YOYLYJ $.

        $d B w x y z $.
        $( Closure law for the recursive definition generator on upper
           integers.  See comment in ~ frec2uz0d for the description of ` G `
           as the mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by
           Jim Kingdon, 31-May-2020.) $)
        frecuzrdgcl $p |- ( ( ph /\ B e. ( ZZ>= ` C ) ) ->
            ( T ` B ) e. S ) $=
          ( wcel cuz cfv wa ccnv c2nd cop wceq crn cz adantr cv co frecuzrdglem
          adantlr simpr eleqtrrd wi wfn wfun frecuzrdgfn fnfun funopfv 3syl mpd
          cxp com wf1o frec2uzf1od f1ocnvdm sylan frecuzrdgrrn syldan xp2nd syl
          eqeltrd ) AEFUAUBZTZUCZEIUBZEKUDUBZGUBZUEUBZHVREWBUFZITZVSWBUGZVRWCGU
          HZIVRBCDEFGHJKLAFUITVQMUJNAHLTVQOUJADHTVQPUJABUKZVPTCUKZHTUCWGWHJULHT
          VQQUNRAVQUOUMAIWFUGVQSUJUPAWDWEUQZVQAIVPURIUSWIABCDFGHIJKLMNOPQRSUTVP
          IVAEWBIVBVCUJVDVRWAVPHVETZWBHTAVQVTVFTZWJAVFVPKVGVQWKABFKMNVHVFVPEKVI
          VJABCDFVTGHJKLMNOPQRVKVLWAVPHVMVNVO $.

        $( Initial value of a recursive definition generator on upper
           integers.  See comment in ~ frec2uz0d for the description of ` G `
           as the mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by
           Jim Kingdon, 27-May-2020.) $)
        frecuzrdg0 $p |- ( ph -> ( T ` C ) = A ) $=
          ( wcel c0 wfun cop cfv wceq cuz wfn frecuzrdgfn fnfun syl cv c1 caddc
          crn co cmpt2 cfrec fveq1i cz opexg syl2anc frec0g syl5eq frecuzrdgrom
          cvv com peano1 fnfvelrn sylancl eqeltrrd eleqtrrd funopfv sylc ) AHUA
          ZEDUBZHSEHUCDUDAHEUEUCZUFVMABCDEFGHIJKLMNOPQRUGVOHUHUIAVNFUMZHATFUCZV
          NVPAVQTBCVOGBUJZUKULUNVRCUJIUNUBUOZVNUPZUCZVNTFVTQUQAVNVDSZWAVNUDAEUR
          SDGSWBLOEDURGUSUTVNVSVDVAUIVBAFVEUFTVESVQVPSABCDEFGIJKLMNOPQVCVFVETFV
          GVHVIRVJEDHVKVL $.

        $( Successor value of a recursive definition generator on upper
           integers.  See comment in ~ frec2uz0d for the description of ` G `
           as the mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by
           Jim Kingdon, 28-May-2020.) $)
        frecuzrdgsuc $p |- ( ( ph /\ B e. ( ZZ>= ` C ) ) ->
            ( T ` ( B + 1 ) ) = ( B F ( T ` B ) ) ) $=
          ( wcel vz vw cuz cfv wa c1 caddc co ccnv csuc c2nd cop wceq cz adantr
          crn cv adantlr peano2uz adantl frecuzrdglem eleqtrrd wfun frecuzrdgfn
          wfn fnfun syl funopfv mpd wf1o frec2uzf1od f1ocnvdm sylan frec2uzsucd
          wi com f1ocnvfv2 oveq1d eqtrd peano2 f1ocnvfv syldan fveq2d cmpt2 cvv
          cfrec wal cxp zex uzssz ssexi mpt2exga vex fvexg mpan2 alrimiv opelxp
          mpan sylanbrc frecsuc syl3anc fveq1i 3eqtr4g frec2uzrdg df-ov syl6eqr
          3syl fveq2i frec2uzuzd frecuzrdgrrn mpdan xp2nd eqeltrd caovclg opexg
          caovcld syl2anc oveq1 opeq12d oveq2 opeq2d 3eqtrd op2ndg simpr eqcomd
          cbvmpt2v ovmpt2g oveq12d ) AEFUCUDZTZUEZEUFUGUHZIUDZEKUIZUDZUJZGUDZUK
          UDZYOKUDZYOGUDZUKUDZJUHZEEIUDZJUHYKYMYLYNUDZGUDZUKUDZYRYKYLUUFULZITZY
          MUUFUMZYKUUGGUPZIYKBCDYLFGHJKLAFUNTZYJMUOZNAHLTZYJOUOZADHTZYJPUOZABUQ
          ZYITCUQZHTUEUUQUURJUHZHTYJQURZRYJYLYITAFEUSUTZVAAIUUJUMYJSUOZVBAUUHUU
          IVOZYJAIVCZUVCAIYIVEUVDABCDFGHIJKLMNOPQRSVDYIIVFVGZYLUUFIVHVGUOVIYKUU
          EYQUKYKUUDYPGYKYPKUDZYLUMZUUDYPUMZYKUVFYSUFUGUHZYLYKBYOFKUULNAVPYIKVJ
          ZYJYOVPTZABFKMNVKZVPYIEKVLVMZVNYKYSEUFUGAUVJYJYSEUMUVLVPYIEKVQVMZVRZV
          SAYJYPVPTZUVGUVHVOZYKUVKUVPUVMYOVTVGAUVJUVPUVQUVLVPYIYPYLKWAVMWBVIWCW
          CVSYKYRUVIUUBULZUKUDZUUBYKYQUVRUKYKYQYTBCYIHUUQUFUGUHZUUSULZWDZUDZYSU
          UAUWBUHZUVRYKYPUWBFDULZWFZUDZYOUWFUDZUWBUDZYQUWCYKUAUQZUWBUDWETZUAWGU
          WEUNHWHZTZUVKUWGUWIUMYKUWKUAYKUUMUWBWETZUWKUUNYIWETUUMUWNYIUNWIFWJWKB
          CYIHUWAWELWLWRUWNUWJWETUWKUAWMUWJUWBWEWEWNWOXGWPAUWMYJAUUKUUOUWMMPFDU
          NHWQWSUOUVMUAUWEYOUWBUWLWTXAYPGUWFRXBYTUWHUWBYOGUWFRXBXHXCYKUWCYSUUAU
          LZUWBUDUWDYKYTUWOUWBYKBCDYOFGHJKLUULNUUNUUPUUTRUVMXDWCYSUUAUWBXEXFYKY
          SYITUUAHTZUVRWETZUWDUVRUMYKBYOFKUULNUVMXIZYKYTYIHWHTZUWPYKUVKUWSUVMYK
          BCDFYOGHJKLUULNUUNUUPUUTRXJXKYTYIHXLVGZYKUVIYITZUUBHTZUWQYKUVIYLYIUVO
          UVAXMZYKUAUBYSUUAYIHHJYKBCUWJUBUQZYIHHJUUTXNUWRUWTXPZUVIUUBYIHXOXQUAU
          BYSUUAYIHUWJUFUGUHZUWJUXDJUHZULZUVRUWBUVIYSUXDJUHZULWEUWJYSUMUXFUVIUX
          GUXIUWJYSUFUGXRUWJYSUXDJXRXSUXDUUAUMUXIUUBUVIUXDUUAYSJXTYABCUAUBYIHUW
          AUXHUXFUWJUURJUHZULUUQUWJUMUVTUXFUUSUXJUUQUWJUFUGXRUUQUWJUURJXRXSUURU
          XDUMUXJUXGUXFUURUXDUWJJXTYAYFYGXAYBWCYKUXAUXBUVSUUBUMUXCUXEUVIUUBYIHY
          CXQVSYKYSEUUAUUCJUVNYKUUCUUAYKEUUAULZITZUUCUUAUMZYKUXKUUJIYKBCDEFGHJK
          LUULNUUNUUPUUTRAYJYDVAUVBVBAUXLUXMVOZYJAUVDUXNUVEEUUAIVHVGUOVIYEYHYB
          $.
      $}
    $}
  $}

  ${
    $d x M $.
    uzinf.1 $e |- Z = ( ZZ>= ` M ) $.
    $( An upper integer set is denumerable.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    uzenom $p |- ( M e. ZZ -> Z ~~ _om ) $=
      ( vx cz wcel com cuz cfv cen cv c1 caddc co cmpt cfrec wf1o wbr id eqid
      frec2uzf1od omex f1oen syl syl6breqr ensymd ) AEFZGBUGGAHIZBJUGGUHDEDKLMN
      OAPZQGUHJRUGDAUIUGSUITUAGUHUIUBUCUDCUEUF $.
  $}

  ${
    $d m n G $.  $d n N $.  $d x z $.
    frecfzennn.1 $e |- G = frec ( ( x e. ZZ |-> ( x + 1 ) ) , 0 ) $.
    $( The cardinality of a finite set of sequential integers.  (See
       ~ frec2uz0d for a description of the hypothesis.)  (Contributed by Jim
       Kingdon, 18-May-2020.) $)
    frecfzennn $p |- ( N e. NN0 -> ( 1 ... N ) ~~ ( `' G ` N ) ) $=
      ( vz c1 cv cfz co cfv cen wbr cc0 wceq c0 com wcel cn0 cvv cz vn vm caddc
      ccnv oveq2 fveq2 breq12d 0ex enref fz10 cuz wf1o wa wtru frec2uzf1od trud
      0zd peano1 frec2uz0d f1ocnvfv mp2 3brtr4i csn cun cin simpr peano2nn0 wfn
      pm3.2i cmpt cfrec wal zex mptex vex ax-gen 0z frecfnom mp2an fneq1i mpbir
      fvex omex fnex cnvex en2sn sylancl adantr fzp1disj a1i word f1ocnvdm mpan
      wn nn0uz eleq2s nnord ordirr 3syl disjsn sylibr unen syl22anc cmin fveq2i
      1z 1m1e0 eqtr4i eleq2i biimpi fzsuc2 sylancr peano2 syl jctil frec2uzsucd
      csuc id f1ocnvfv2 oveq1d eqtrd sylc df-suc syl6eq 3brtr4d ex nn0ind ) FUA
      GZHIZYHBUDZJZKLFMHIZMYJJZKLFUBGZHIZYNYJJZKLZFYNFUCIZHIZYRYJJZKLZFCHIZCYJJ
      ZKLUAUBCYHMNYIYLYKYMKYHMFHUEYHMYJUFUGYHYNNYIYOYKYPKYHYNFHUEYHYNYJUFUGYHYR
      NYIYSYKYTKYHYRFHUEYHYRYJUFUGYHCNYIUUBYKUUCKYHCFHUEYHCYJUFUGOOYLYMKOUHUIUJ
      PMUKJZBULZOPQZUMOBJMNZYMONUUEUUFUUEUNAMBUNUQZDUOUPZURVIUUGUNAMBUUHDUSUPPU
      UDOMBUTVAVBYNRQZYQUUAUUJYQUMZYOYRVCZVDZYPYPVCZVDZYSYTKUUKYQUULUUNKLZYOUUL
      VEONZYPUUNVEONZUUMUUOKLUUJYQVFUUJUUPYQUUJYRRQYPSQUUPYNVGYNYJSSBBPVHZPSQBS
      QUUSATAGFUCIZVJZMVKZPVHZEGZUVAJSQZEVLMTQUVCUVEEUVDUVASSATUUTVMVNEVOWBVPVQ
      EMUVATVRVSPBUVBDVTWAWCPSBWDVSWEUBVOWBYRYPRSWFWGWHUUQUUKFYNWIWJUUKYPYPQWNZ
      UURUUJUVFYQUUJYPPQZYPWKUVFUVGYNUUDRUUEYNUUDQZUVGUUIPUUDYNBWLWMWOWPZYPWQYP
      WRWSWHYPYPWTXAYOYPUULUUNXBXCUUJYSUUMNZYQUUJFTQYNFFXDIZUKJZQZUVJXFUUJUVMRU
      VLYNRUUDUVLWOUVKMUKXGXEXHXIXJFYNXKXLWHUUKYTYPXQZUUOUUJYTUVNNZYQUUJUUEUVNP
      QZUMUVNBJZYRNUVOUUJUVPUUEUUJUVGUVPUVIYPXMXNUUIXOUUJUVQYPBJZFUCIZYRUUJUVGU
      VQUVSNUVIUVGAYPMBUVGUQDUVGXRXPXNUUJUVRYNFUCUUJUUEUVHUVRYNNUUIUUJUVHRUUDYN
      WOXIXJPUUDYNBXSXLXTYAPUUDUVNYRBUTYBWHYPYCYDYEYFYG $.

    $( The cardinality of a finite set of sequential integers with arbitrary
       endpoints.  (Contributed by Jim Kingdon, 18-May-2020.) $)
    frecfzen2 $p |- ( N e. ( ZZ>= ` M ) ->
        ( M ... N ) ~~ ( `' G ` ( ( N + 1 ) - M ) ) ) $=
      ( cfv wcel cfz co c1 caddc cmin cen wbr cz cc wceq ax-1cn zcn syl2anc cuz
      ccnv eluzel2 eluzelz 1z zsubcl sylancr fzen syl3anc zcnd pncan3 addsubass
      sylancl mp3an2 syl2an eqcomd oveq12d breqtrd peano2uz uznn0sub frecfzennn
      cn0 3syl entr ) DCUAFZGZCDHIZJDJKIZCLIZHIZMNVJVIBUBFZMNZVGVKMNVFVGCJCLIZK
      IZDVMKIZHIZVJMVFCOGZDOGZVMOGZVGVPMNCDUCZCDUDZVFJOGVQVSUEVTJCUFUGVMCDUHUIV
      FVNJVOVIHVFCPGZJPGZVNJQVFCVTUJRCJUKUMVFVIVOVFVRVQVIVOQZWAVTVRDPGZWBWDVQDS
      CSWEWCWBWDRDJCULUNUOTUPUQURVFVHVEGVIVBGVLCDUSCVHUTABVIEVAVCVGVJVKVDT $.

    $( ` G ` maps ` _om ` one-to-one onto ` NN0 ` .  (Contributed by Jim
       Kingdon, 19-May-2020.) $)
    frechashgf1o $p |- G : _om -1-1-onto-> NN0 $=
      ( com cn0 wf1o cc0 cuz cfv wtru 0zd frec2uzf1od trud wceq wb nn0uz f1oeq3
      ax-mp mpbir ) DEBFZDGHIZBFZUBJAGBJKCLMEUANTUBOPEUADBQRS $.
  $}

  ${
    $d M n $.  $d N n $.
    $( A finite interval of integers is finite.  (Contributed by Jim Kingdon,
       19-May-2020.) $)
    fzfig $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M ... N ) e. Fin ) $=
      ( vx cz wcel wa cle wbr cfz co cfn wn cuz cfv c1 caddc com cn0 syl c0 cc0
      eluz cmin cv cmpt cfrec ccnv cen wf1o eqid frechashgf1o peano2uz uznn0sub
      f1ocnvdm sylancr nnfi frecfzen2 syl2anc syl6bir wceq clt wb zltnle ancoms
      enfii fzn bitr3d 0fin eleq1 mpbiri syl6bi wdc wo zdcle df-dc sylib mpjaod
      ) ADEZBDEZFZABGHZABIJZKEZWALZVTWABAMNZEZWCABUBWFBOPJZAUCJZCDCUDOPJUEUAUFZ
      UGNZKEZWBWJUHHWCWFWJQEZWKWFQRWIUIWHREZWLCWIWIUJZUKWFWGWEEWMABULAWGUMSQRWH
      WIUNUOWJUPSCWIABWNUQWBWJVEURUSVTWDWBTUTZWCVTBAVAHZWDWOVSVRWPWDVBBAVCVDABV
      FVGWOWCTKEVHWBTKVIVJVKVTWAVLWAWDVMABVNWAVOVPVQ $.
  $}

  ${
    fzfigd.m $e |- ( ph -> M e. ZZ ) $.
    fzfigd.n $e |- ( ph -> N e. ZZ ) $.
    $( Deduction form of ~ fzfig .  (Contributed by Jim Kingdon,
       21-May-2020.) $)
    fzfigd $p |- ( ph -> ( M ... N ) e. Fin ) $=
      ( cz wcel cfz co cfn fzfig syl2anc ) ABFGCFGBCHIJGDEBCKL $.
  $}

  $( Half-open integer sets are finite.  (Contributed by Jim Kingdon,
     21-May-2020.) $)
  fzofig $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M ..^ N ) e. Fin ) $=
    ( cz wcel wa cfzo co cmin cfz cfn wceq fzoval adantl peano2zm fzfig eqeltrd
    c1 sylan2 ) ACDZBCDZEABFGZABQHGZIGZJTUAUCKSABLMTSUBCDUCJDBNAUBORP $.

  ${
    $d x y z $.
    $( The nonnegative integers are equinumerous to the positive integers.
       (Contributed by NM, 19-Jul-2004.) $)
    nn0ennn $p |- NN0 ~~ NN $=
      ( vx vy cn cv c1 caddc co cmin nn0ex nnex nn0p1nn nnm1nn0 wcel cc wceq wb
      cn0 nncn ax-1cn eqcom nn0cn wa subadd mp3an2 3bitr4g addcom eqeq2d adantl
      mpan bitrd syl2anr en3i ) ABQCADZEFGZBDZEHGZIJUMKUOLUOCMUONMZUMNMZUMUPOZU
      OUNOZPUMQMUORUMUAUQURUBZUSUOEUMFGZOZUTVAUPUMOZVBUOOZUSVCUQENMZURVDVEPSUOE
      UMUCUDUMUPTUOVBTUEURVCUTPUQURVBUNUOVFURVBUNOSEUMUFUIUGUHUJUKUL $.

    $( The set of positive integers (as a subset of complex numbers) is
       equinumerous to omega (the set of finite ordinal numbers).  (Contributed
       by NM, 31-Jul-2004.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    nnenom $p |- NN ~~ _om $=
      ( vx com cn0 cn cvv wcel cz cv c1 caddc cmpt cc0 cfrec wf1o cen wbr nn0ex
      co omex eqid frechashgf1o f1oen2g mp3an nn0ennn entr2i ) BCDBEFCEFBCAGAHI
      JRKLMZNBCOPSQAUFUFTUABCUFEEUBUCUDUE $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        The infinite sequence builder "seq"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c seq $.
  $( Extend class notation with recursive sequence builder. $)
  cseq $a class seq M ( .+ , F , S ) $.

  ${
    $d .+ x y $.  $d F x y $.  $d M x y $.  $d S x y $.
    $( Define a general-purpose operation that builds a recursive sequence
       (i.e. a function on the positive integers ` NN ` or some other upper
       integer set) whose value at an index is a function of its previous value
       and the value of an input sequence at that index.  This definition is
       complicated, but fortunately it is not intended to be used directly.
       Instead, the only purpose of this definition is to provide us with an
       object that has the properties expressed by ~ iseq1 and ~ iseqp1 .
       Typically, those are the main theorems that would be used in practice.

       The first operand in the parentheses is the operation that is applied to
       the previous value and the value of the input sequence (second
       operand).  The operand to the left of the parenthesis is the integer to
       start from.  For example, for the operation ` + ` , an input sequence
       ` F ` with values 1, 1/2, 1/4, 1/8,... would be transformed into the
       output sequence ` seq 1 ( + , F , QQ ) ` with values 1, 3/2, 7/4,
       15/8,.., so that ` ( seq 1 ( + , F , QQ ) `` 1 ) = 1 ` ,
       ` ( seq 1 ( + , F , QQ ) `` 2 ) = ` 3/2, etc.  In other words,
       ` seq M ( + , F , QQ ) ` transforms a sequence ` F ` into an infinite
       series.

       Internally, the ` frec ` function generates as its values a set of
       ordered pairs starting at ` <. M , ( F `` M ) >. ` , with the first
       member of each pair incremented by one in each successive value.  So,
       the range of ` frec ` is exactly the sequence we want, and we just
       extract the range and throw away the domain.

       (Contributed by Jim Kingdon, 29-May-2020.) $)
    df-iseq $a |- seq M ( .+ , F , S ) = ran frec (
       ( x e. ( ZZ>= ` M ) , y e. S |->
         <. ( x + 1 ) , ( y .+ ( F ` ( x + 1 ) ) ) >. ) ,
       <. M , ( F ` M ) >. ) $.
  $}

  ${
    $d x y F $.  $d x y .+ $.  $d x y G $.  $d x y M $.  $d x y N $.
    $d x y Q $.  $d x y S $.  $d x y T $.
    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq1 $p |- ( M = N -> seq M ( .+ , F , S ) = seq N ( .+ , F , S ) ) $=
      ( vx vy wceq cuz cfv cv co cop cmpt2 cfrec crn cseq fveq2 syl df-iseq c1
      caddc opeq12d freceq2 eqid mpt2eq12 sylancl freceq1 eqtrd rneqd 3eqtr4g
      id ) DEHZFGDIJZBFKUAUBLZGKUOCJALMZNZDDCJZMZOZPFGEIJZBUPNZEECJZMZOZPABCDQA
      BCEQUMUTVEUMUTUQVDOZVEUMUSVDHUTVFHUMDEURVCUMULDECRUCUSVDUQUDSUMUQVBHZVFVE
      HUMUNVAHBBHVGDEIRBUEFGUNBVABUPUFUGVDUQVBUHSUIUJFGABCDTFGABCETUK $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq2 $p |- ( .+ = Q -> seq M ( .+ , F , S ) = seq M ( Q , F , S ) ) $=
      ( vx vy wceq cuz cfv cv c1 co cop cmpt2 cfrec crn cseq wcel df-iseq caddc
      w3a simp1 oveqd opeq2d mpt2eq3dva freceq1 syl rneqd 3eqtr4g ) ABHZFGEIJZC
      FKZLUAMZGKZUNDJZAMZNZOZEEDJNZPZQFGULCUNUOUPBMZNZOZUTPZQACDERBCDERUKVAVEUK
      USVDHVAVEHUKFGULCURVCUKUMULSZUOCSZUBZUQVBUNVHABUOUPUKVFVGUCUDUEUFUTUSVDUG
      UHUIFGACDETFGBCDETUJ $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq3 $p |- ( F = G -> seq M ( .+ , F , S ) = seq M ( .+ , G , S ) ) $=
      ( vx vy wceq cuz cfv cv co cop cmpt2 cfrec crn cseq wcel opeq2d df-iseq
      c1 caddc w3a simp1 fveq1d oveq2d mpt2eq3dva fveq1 freceq1 freceq2 syl2anc
      sylan9eq rneqd 3eqtr4g ) CDHZFGEIJZBFKZUAUBLZGKZURCJZALZMZNZEECJZMZOZPFGU
      PBURUSURDJZALZMZNZEEDJZMZOZPABCEQABDEQUOVFVMUOVCVJHZVEVLHZVFVMHUOFGUPBVBV
      IUOUQUPRZUSBRZUCZVAVHURVRUTVGUSAVRURCDUOVPVQUDUEUFSUGUOVDVKEECDUHSVNVOVFV
      JVEOVMVEVCVJUIVEVLVJUJULUKUMFGABCETFGABDETUN $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq4 $p |- ( S = T -> seq M ( .+ , F , S ) = seq M ( .+ , F , T ) ) $=
      ( vx vy wceq cuz cfv cv c1 caddc co cop cmpt2 cfrec crn cseq df-iseq eqid
      mpt2eq12 mpan freceq1 syl rneqd 3eqtr4g ) BCHZFGEIJZBFKLMNZGKUJDJANOZPZEE
      DJOZQZRFGUICUKPZUMQZRABDESACDESUHUNUPUHULUOHZUNUPHUIUIHUHUQUIUAFGUIBUICUK
      UBUCUMULUOUDUEUFFGABDETFGACDETUG $.
  $}

  ${
    $d x y z $.  $d y z F $.  $d y z .+ $.  $d y z M $.  $d y z S $.
    nfiseq.1 $e |- F/_ x M $.
    nfiseq.2 $e |- F/_ x .+ $.
    nfiseq.3 $e |- F/_ x F $.
    nfiseq.4 $e |- F/_ x S $.
    $( Hypothesis builder for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    nfiseq $p |- F/_ x seq M ( .+ , F , S ) $=
      ( vy vz cseq cuz cfv cv co cop nfcv nffv nfop c1 caddc cmpt2 df-iseq nfov
      cfrec crn nfmpt2 nffrec nfrn nfcxfr ) ABCDELJKEMNZCJOUAUBPZKOZUMDNZBPZQZU
      CZEEDNZQZUFZUGJKBCDEUDAVAAUTURJKAULCUQAEMAMRFSIAUMUPAUMRZAUNUOBAUNRGAUMDH
      VBSUETUHAEUSFAEDHFSTUIUJUK $.
  $}

  ${
    $d F w x y z $.  $d .+ w x y z $.  $d S w x y z $.  $d w x y z ph $.
    $d M w x z $.
    iseqovex.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqovex.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Closure of a function used in proving sequence builder theorems.  This
       can be thought of as a lemma for the small number of sequence builder
       theorems which need it.  (Contributed by Jim Kingdon, 31-May-2020.) $)
    iseqovex $p |- ( ( ph /\ ( x e. ( ZZ>= ` M ) /\ y e. S ) ) -> ( x
        ( z e. ( ZZ>= ` M ) , w e. S |-> ( w .+ ( F ` ( z + 1 ) ) ) )
        y ) e. S ) $=
      ( cv cfv wcel wa c1 caddc co weq simprr cmpt2 eqidd simprl oveq1d oveq12d
      cuz fveq2d caovclg adantlr wral peano2uz syl ralrimiva fveq2 eleq1d sylib
      cbvralv adantr wceq rspcv sylc caovcld ovmpt2d eqeltrd ) ABLZIUFMZNZCLZGN
      ZOZOZVEVHDEVFGELZDLZPQRZHMZFRZUAZRVHVEPQRZHMZFRZGVKDEVEVHVFGVPVTVQGVKVQUB
      VKDBSZECSZOOZVLVHVOVSFVKWAWBTWCVNVRHWCVMVEPQVKWAWBUCUDUGUEAVGVIUCZAVGVITZ
      VKDEVHVSGGGFAVMGNVLGNOVMVLFRGNVJABCVMVLGGGFKUHUIWEVKVRVFNZVMHMZGNZDVFUJZV
      SGNZVKVGWFWDIVEUKULAWIVJAVEHMZGNZBVFUJWIAWLBVFJUMWLWHBDVFBDSWKWGGVEVMHUNU
      OUQUPURWHWJDVRVFVMVRUSWGVSGVMVRHUNUOUTVAVBZVCWMVD $.
  $}

  ${
    $d F a b m w x y z $.  $d .+ a b m w x y z $.  $d M a b m w x y z $.
    $d R m $.  $d S a b w x y z $.  $d a b x y ph $.
    iseqval.1 $e |- R = frec (
        ( x e. ( ZZ>= ` M ) , y e. S |-> <. ( x + 1 ) ,
          ( x ( z e. ( ZZ>= ` M ) , w e. S |->
            ( w .+ ( F ` ( z + 1 ) ) ) ) y ) >. ) ,
          <. M , ( F ` M ) >. ) $.
    iseqval.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqval.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Value of the sequence builder function.  (Contributed by Jim Kingdon,
       30-May-2020.) $)
    iseqval $p |- ( ph -> seq M ( .+ , F , S ) = ran R ) $=
      ( cfv cv c1 caddc co wceq wcel va crn cuz cop cmpt2 cfrec cseq w3a simprl
      vb wa simprr caovclg adantlr wral ralrimiva fveq2 eleq1d cbvralv sylib wi
      adantr peano2uz rspcv syl ad2antrl mpd caovcld fveq2d oveq2d eqid ovmpt2g
      oveq1 syl3anc 3impb opeq2d mpt2eq3dva freceq1 syl5eq df-iseq syl6reqr
      rneqd ) AGUBBCJUCNZHBOZPQRZCOZWEINZFRZUDZUEZJJINUDZUFZUBFHIJUGAGWLAGBCWCH
      WEWDWFDEWCHEOZDOZPQRZINZFRZUEZRZUDZUEZWKUFZWLKAXAWJSXBWLSABCWCHWTWIAWDWCT
      ZWFHTZUHWSWHWEAXCXDWSWHSZAXCXDUKZUKZXCXDWHHTXEAXCXDUIAXCXDULZXGUAUJWFWGHH
      HFAUAOZHTUJOZHTUKXIXJFRHTXFABCXIXJHHHFMUMUNXHXGWFINZHTZCWCUOZWGHTZAXMXFAW
      DINZHTZBWCUOXMAXPBWCLUPXPXLBCWCWDWFSXOXKHWDWFIUQURUSUTVBXCXMXNVAZAXDXCWEW
      CTXQJWDVCXLXNCWEWCWFWESXKWGHWFWEIUQURVDVEVFVGVHDEWDWFWCHWQWHWRWMWGFRHWNWD
      SZWPWGWMFXRWOWEIWNWDPQVMVIVJWMWFWGFVMWRVKVLVNVOVPVQWKXAWJVRVEVSWBBCFHIJVT
      WA $.
  $}

  ${
    $d w x y z F $.  $d w x y z .+ $.  $d w x y z M $.  $d x y z w S $.
    $d x y z w ph $.
    iseqfn.m $e |- ( ph -> M e. ZZ ) $.
    iseqfn.ex $e |- ( ph -> S e. V ) $.
    iseqfn.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqfn.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( The sequence builder function is a function.  (Contributed by Jim
       Kingdon, 30-May-2020.) $)
    iseqfn $p |- ( ph -> seq M ( .+ , F , S ) Fn ( ZZ>= ` M ) ) $=
      ( vz vw cfv cv c1 caddc co wcel cuz cmpt2 cop cseq cz cmpt eqid wral uzid
      cfrec ralrimiva wceq fveq2 eleq1d rspcv sylc iseqovex iseqval frecuzrdgfn
      syl ) ABCGFOZGBCGUAOZEBPZQRSZVCCPMNVBENPMPQRSFODSUBZSUCUBGVAUCUJZEDEFGUDV
      EBUEVDUFGUJZHIVGUGJAGVBTZVCFOZETZBVBUHVAETZAGUETVHIGUIUTAVJBVBKUKVJVKBGVB
      VCGULVIVAEVCGFUMUNUOUPABCMNDEFGKLUQVFUGZABCMNDVFEFGVLKLURUS $.

    $( Value of the sequence builder function at its initial value.
       (Contributed by Jim Kingdon, 31-May-2020.) $)
    iseq1 $p |- ( ph -> ( seq M ( .+ , F , S ) ` M ) = ( F ` M ) ) $=
      ( vz vw cfv cv c1 caddc co wcel cuz cmpt2 cop cseq cz cmpt eqid wral uzid
      cfrec ralrimiva wceq fveq2 eleq1d rspcv sylc iseqovex iseqval frecuzrdg0
      syl ) ABCGFOZGBCGUAOZEBPZQRSZVCCPMNVBENPMPQRSFODSUBZSUCUBGVAUCUJZEDEFGUDV
      EBUEVDUFGUJZHIVGUGJAGVBTZVCFOZETZBVBUHVAETZAGUETVHIGUIUTAVJBVBKUKVJVKBGVB
      VCGULVIVAEVCGFUMUNUOUPABCMNDEFGKLUQVFUGZABCMNDVFEFGVLKLURUS $.
  $}

  ${
    $d .+ w x y z $.  $d F w x y z $.  $d M w x y z $.  $d N x y $.
    $d S w x y z $.  $d ph w x y z $.
    iseqcl.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqcl.ex $e |- ( ph -> S e. V ) $.
    iseqcl.2 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqcl.3 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Closure properties of the recursive sequence builder.  (Contributed by
       Jim Kingdon, 1-Jun-2020.) $)
    iseqcl $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) e. S ) $=
      ( vz vw cfv wcel cv c1 co cuz cseq caddc cmpt2 cop cfrec cmpt eluzel2 syl
      cz eqid wral uzid ralrimiva wceq fveq2 eleq1d rspcv sylc iseqovex iseqval
      frecuzrdgcl mpdan ) AHGUAPZQZHDEFGUBZPEQJABCGFPZHGBCVDEBRZSUCTZVHCRNOVDEO
      RNRSUCTFPDTUDZTUEUDGVGUEUFZEVFVJBUJVIUGGUFZIAVEGUJQZJGHUHUIZVLUKKAGVDQZVH
      FPZEQZBVDULVGEQZAVMVOVNGUMUIAVQBVDLUNVQVRBGVDVHGUOVPVGEVHGFUPUQURUSABCNOD
      EFGLMUTVKUKZABCNODVKEFGVSLMVAVBVC $.
  $}

  ${
    $d w x y z F $.  $d w x y z .+ $.  $d w x y z M $.  $d w x y z N $.
    $d x y z w S $.  $d x y z w ph $.
    iseqp1.m $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqp1.ex $e |- ( ph -> S e. V ) $.
    iseqp1.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqp1.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Value of the sequence builder function at a successor.  (Contributed by
       Jim Kingdon, 31-May-2020.) $)
    iseqp1 $p |- ( ph ->
        ( seq M ( .+ , F , S ) ` ( N + 1 ) ) =
          ( ( seq M ( .+ , F , S ) ` N ) .+ ( F ` ( N + 1 ) ) ) ) $=
      ( vz vw c1 co cfv wcel wceq caddc cseq cuz cv cmpt2 cfrec cz cmpt eluzel2
      cop syl eqid wral uzid ralrimiva fveq2 eleq1d rspcv sylc iseqovex iseqval
      frecuzrdgsuc mpdan iseqcl peano2uz caovcld fveq2d oveq2d ovmpt2g syl3anc
      oveq1 eqtrd ) AHPUAQZDEFGUBZRZHHVNRZNOGUCRZEOUDZNUDZPUAQZFRZDQZUEZQZVPVMF
      RZDQZAHVQSZVOWDTJABCGFRZHGBCVQEBUDZPUAQZWICUDWCQUJUEGWHUJUFZEVNWCBUGWJUHG
      UFZIAWGGUGSZJGHUIUKZWLULKAGVQSZWIFRZESZBVQUMZWHESZAWMWOWNGUNUKAWQBVQLUOZW
      QWSBGVQWIGTWPWHEWIGFUPUQURUSABCNODEFGLMUTWKULZABCNODWKEFGXALMVAVBVCAWGVPE
      SWFESWDWFTJABCDEFGHIJKLMVDZABCVPWEEEEDMXBAVMVQSZWRWEESZAWGXCJGHVEUKWTWQXD
      BVMVQWIVMTWPWEEWIVMFUPUQURUSVFNOHVPVQEWBWFWCVRWEDQEVSHTZWAWEVRDXEVTVMFVSH
      PUAVKVGVHVRVPWEDVKWCULVIVJVL $.
  $}

  ${
    $d k x y z w F $.  $d k x y z w G $.  $d k x y z w K $.  $d k x y z w N $.
    $d k x y z w ph $.  $d k x y z w M $.  $d k x y z w .+ $.
    $d k x y z w S $.
    iseqfveq2.1 $e |- ( ph -> K e. ( ZZ>= ` M ) ) $.
    iseqfveq2.2 $e |- ( ph -> ( seq M ( .+ , F , S ) ` K ) = ( G ` K ) ) $.
    iseqfveq2.s $e |- ( ph -> S e. V ) $.
    iseqfveq2.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqfveq2.g $e |- ( ( ph /\ x e. ( ZZ>= ` K ) ) -> ( G ` x ) e. S ) $.
    iseqfveq2.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x .+ y ) e. S ) $.
    ${
      iseqfveq2.3 $e |- ( ph -> N e. ( ZZ>= ` K ) ) $.
      iseqfveq2.4 $e |- ( ( ph /\ k e. ( ( K + 1 ) ... N ) ) ->
                         ( F ` k ) = ( G ` k ) ) $.
      $( Equality of sequences.  (Contributed by Jim Kingdon, 3-Jun-2020.) $)
      iseqfveq2 $p |- ( ph ->
          ( seq M ( .+ , F , S ) ` N ) = ( seq K ( .+ , G , S ) ` N ) ) $=
        ( vz vw cfz co wcel cseq cfv cuz eluzfz2 syl wi cv c1 caddc eleq1 fveq2
        eqeq12d imbi12d imbi2d cz eluzelz iseq1 eqtr4d a1d a1i peano2fzr adantl
        wceq wa expr imim1d oveq1 simprl adantr syl2anc adantlr iseqp1 eluzp1p1
        uztrn ad2antrl elfzuz3 ad2antll elfzuzb sylanbrc ralrimiva rspcv oveq2d
        wral sylc syl5ibr a2d syld expcom uzind4 mpcom mpd ) AKIKUCUDZUEZKDEGJU
        FZUGZKDEHIUFZUGZVHZAKIUHUGZUEZWRSIKUIUJXEAWRXCUKZSAUAULZWQUEZXGWSUGZXGX
        AUGZVHZUKZUKAIWQUEZIWSUGZIXAUGZVHZUKZUKZAUBULZWQUEZXSWSUGZXSXAUGZVHZUKZ
        UKAXSUMUNUDZWQUEZYEWSUGZYEXAUGZVHZUKZUKAXFUKUAUBIKXGIVHZXLXQAYKXHXMXKXP
        XGIWQUOYKXIXNXJXOXGIWSUPXGIXAUPUQURUSXGXSVHZXLYDAYLXHXTXKYCXGXSWQUOYLXI
        YAXJYBXGXSWSUPXGXSXAUPUQURUSXGYEVHZXLYJAYMXHYFXKYIXGYEWQUOYMXIYGXJYHXGY
        EWSUPXGYEXAUPUQURUSXGKVHZXLXFAYNXHWRXKXCXGKWQUOYNXIWTXJXBXGKWSUPXGKXAUP
        UQURUSXRIUTUEZAXPXMAXNIHUGXONABCDEHILAIJUHUGZUEZYOMJIVAUJOQRVBVCVDVEXSX
        DUEZAYDYJAYRYDYJUKAYRVIZYDYFYCUKYJYSYFXTYCAYRYFXTYRYFVIZXTAXSIKVFVGVJVK
        YSYFYCYIAYRYFYCYIUKYCYIAYTVIZYAYEGUGZDUDZYBUUBDUDZVHYAYBUUBDVLUUAYGUUCY
        HUUDUUABCDEGJXSLUUAYRYQXSYPUEAYRYFVMZAYQYTMVNIXSJVSVOAELUEYTOVNZABULZYP
        UEUUGGUGEUEYTPVPAUUGEUECULZEUEVIUUGUUHDUDEUEYTRVPZVQUUAYHYBYEHUGZDUDUUD
        UUABCDEHIXSLUUEUUFAUUGXDUEUUGHUGEUEYTQVPUUIVQUUAUUBUUJYBDUUAYEIUMUNUDZK
        UCUDZUEZFULZGUGZUUNHUGZVHZFUULWHZUUBUUJVHZUUAYEUUKUHUGUEZKYEUHUGUEZUUMY
        RUUTAYFIXSVRVTYFUVAAYRYEIKWAWBYEUUKKWCWDAUURYTAUUQFUULTWEVNUUQUUSFYEUUL
        UUNYEVHUUOUUBUUPUUJUUNYEGUPUUNYEHUPUQWFWIWGVCUQWJVJWKWLWMWKWNWOWP $.
    $}

    iseqfeq2.4 $e |- ( ( ph /\ k e. ( ZZ>= ` ( K + 1 ) ) ) ->
                       ( F ` k ) = ( G ` k ) ) $.
    $( Equality of sequences.  (Contributed by Jim Kingdon, 3-Jun-2020.) $)
    iseqfeq2 $p |- ( ph -> ( seq M ( .+ , F , S ) |` ( ZZ>= ` K ) ) =
                            seq K ( .+ , G , S ) ) $=
      ( cfv wcel vz cuz cseq cres wfn wss cz eluzel2 syl iseqfn fnssres syl2anc
      uzss eluzelz cv wa wceq fvres adantl adantr adantlr co simpr c1 caddc cfz
      elfzuz sylan2 iseqfveq2 eqtrd eqfnfvd ) AUAIUBSZDEGJUCZVLUDZDEHIUCZAVMJUB
      SZUEVLVPUFZVNVLUEABCDEGJKAIVPTZJUGTLJIUHUINOQUJAVRVQLJIUMUIVPVLVMUKULABCD
      EHIKAVRIUGTLJIUNUINPQUJAUAUOZVLTZUPZVSVNSZVSVMSZVSVOSVTWBWCUQAVSVLVMURUSW
      ABCDEFGHIJVSKAVRVTLUTAIVMSIHSUQVTMUTAEKTVTNUTABUOZVPTWDGSETVTOVAAWDVLTWDH
      SETVTPVAAWDETCUOZETUPWDWEDVBETVTQVAAVTVCAFUOZIVDVEVBZVSVFVBTZWFGSWFHSUQZV
      TWHAWFWGUBSTWIWFWGVSVGRVHVAVIVJVK $.
  $}

  ${
    $d k x y F $.  $d k x y G $.  $d k x y M $.  $d k x y N $.  $d k x y ph $.
    $d k x y .+ $.  $d k x y S $.
    iseqfveq.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqfveq.2 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
      ( F ` k ) = ( G ` k ) ) $.
    iseqfveq.s $e |- ( ph -> S e. V ) $.
    iseqfveq.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqfveq.g $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( G ` x ) e. S ) $.
    iseqfveq.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x .+ y ) e. S ) $.
    $( Equality of sequences.  (Contributed by Jim Kingdon, 4-Jun-2020.) $)
    iseqfveq $p |- ( ph ->
        ( seq M ( .+ , F , S ) ` N ) = ( seq M ( .+ , G , S ) ` N ) ) $=
      ( wcel cfv syl cz cuz eluzel2 uzid cseq iseq1 cfz co cv wceq wral eluzfz1
      ralrimiva fveq2 eqeq12d rspcv sylc eqtrd c1 caddc fzp1ss sselda iseqfveq2
      wss syldan ) ABCDEFGHIIJKAIUARZIIUBSZRAJVGRZVFLIJUCTZIUDTAIDEGIUESIGSZIHS
      ZABCDEGIKVINOQUFAIIJUGUHZRZFUIZGSZVNHSZUJZFVLUKVJVKUJZAVHVMLIJULTAVQFVLMU
      MVQVRFIVLVNIUJVOVJVPVKVNIGUNVNIHUNUOUPUQURNOPQLAVNIUSUTUHJUGUHZRVNVLRVQAV
      SVLVNAVFVSVLVDVIIJVATVBMVEVC $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Integer powers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ^ $. $( Exponentiation. $)

  $( Extend class notation to include exponentiation of a complex number to an
     integer power. $)
  cexp $a class ^ $.

  ${
    $d x y $.
    $( Define exponentiation to nonnegative integer powers.  This definition is
       not meant to be used directly; instead, ~ exp0 and ~ expp1 provide the
       standard recursive definition.  The up-arrow notation is used by Donald
       Knuth for iterated exponentiation (_Science_ 194, 1235-1242, 1976) and
       is convenient for us since we don't have superscripts. 10-Jun-2005:  The
       definition was extended to include zero exponents, so that ` 0 ^ 0 = 1 `
       per the convention of Definition 10-4.1 of [Gleason] p. 134.
       4-Jun-2014:  The definition was extended to include negative integer
       exponents.  The case ` x = 0 , y < 0 ` gives the value ` ( 1 / 0 ) ` ,
       so we will avoid this case in our theorems.  (Contributed by Jim
       Kingdon, 7-Jun-2020.) $)
    df-iexp $a |- ^ = ( x e. CC , y e. ZZ |-> if ( y = 0 , 1 , if ( 0 < y ,
        ( seq 1 ( x. , ( NN X. { x } ) , CC ) ` y ) ,
        ( 1 / ( seq 1 ( x. , ( NN X. { x } ) , CC ) ` -u y ) ) ) ) ) $.
  $}

  ${
    $d A k n x y $.  $d N n $.

    $( Lemma for ~ expival .  If we take a complex number apart from zero and
       raise it to a positive integer power, the result is apart from zero.
       (Contributed by Jim Kingdon, 7-Jun-2020.) $)
    expivallem $p |- ( ( A e. CC /\ A # 0 /\ N e. NN ) ->
        ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` N ) # 0 ) $=
      ( vx vy cc wcel cc0 cap wbr cn cmul c1 cfv wa cv wi co wceq fveq2 breq1d
      vn csn cxp cseq caddc imbi2d simpr cvv 1zzd cnex a1i cuz elnnuz fvconst2g
      sylan2br adantlr simpll eqeltrd mulcl adantl iseq1 1nn mpan2 adantr eqtrd
      vk mpbird simpl sylib adantll iseqcl simplrl simplrr mulap0d wb peano2nnd
      iseqp1 simprl syl2anc oveq2d exp31 a2d nnind impcom 3impa ) AEFZAGHIZBJFZ
      BKEJAUBUCZLUDZMZGHIZWHWFWGNZWLWMUAOZWJMZGHIZPWMLWJMZGHIZPWMVFOZWJMZGHIZPW
      MWSLUEQZWJMZGHIZPWMWLPUAVFBWNLRZWPWRWMXEWOWQGHWNLWJSTUFWNWSRZWPXAWMXFWOWT
      GHWNWSWJSTUFWNXBRZWPXDWMXGWOXCGHWNXBWJSTUFWNBRZWPWLWMXHWOWKGHWNBWJSTUFWMW
      RWGWFWGUGWMWQAGHWMWQLWIMZAWMCDKEWILUHWMUIEUHFZWMUJUKWMCOZLULMZFZNXKWIMZAE
      WFXMXNARZWGXMWFXKJFXOXKUMJAXKEUNUOUPWFWGXMUQURZXKEFDOZEFNZXKXQKQEFZWMXKXQ
      USZUTVAWFXIARZWGWFLJFYAVBJALEUNVCVDVETVGWSJFZWMXAXDYBWMXAXDYBWMNZXANZXDWT
      AKQZGHIZYDWTAYDCDKEWILWSUHYCWSXLFZXAYCYBYGYBWMVHZWSUMVIZVDXJYDUJUKYCXMXNE
      FZXAWMXMYJYBXPVJZUPXRXSYDXTUTVKYBWFWGXAVLYCXAUGYBWFWGXAVMVNYCXDYFVOXAYCXC
      YEGHYCXCWTXBWIMZKQYEYCCDKEWILWSUHYIXJYCUJUKYKXRXSYCXTUTVQYCYLAWTKYCWFXBJF
      YLARYBWFWGVRYCWSYHVPJAXBEUNVSVTVETVDVGWAWBWCWDWE $.
  $}

  ${
    $d x y z w A $.  $d x y z w N $.
    $( Value of exponentiation to integer powers.  (Contributed by Jim Kingdon,
       7-Jun-2020.) $)
    expival $p |- ( ( A e. CC /\ N e. ZZ /\ ( A # 0 \/ 0 <_ N ) ) ->
        ( A ^ N ) =
        if ( N = 0 , 1 , if ( 0 < N ,
        ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` N ) ,
        ( 1 / ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` -u N ) ) ) ) ) $=
      ( cc wcel cz cc0 wbr wceq c1 clt cmul cn cfv cdiv co cif wa mpbird adantl
      wb vz vw vx vy cap cle wo csn cxp cseq cneg w3a wn iftrue ax-1cn syl6eqel
      cexp wi a1i cvv cuz elnnz elnnuz bitr3i biimpi adantll cv simpl fvconst2g
      cnex sylan2br eleq1d adantlr mulcl iseqcl adantr 3adantl3 simpll2 znegcld
      ex wne simpr zred 0red lenltd simplr neneqad necomd zltlen mpan2 3ad2ant2
      ad2antrr mpbir2and lt0neg1d mpbid sylanbrc sylib 3ad2antl1 simpll1 3com23
      expivallem 3expia syl2anc neneqd ioran zleloe mpan mtbird pm2.21d simpll3
      0z mpjaod recclapd iffalse wdc zdclt df-dc sneq xpeq2d iseqeq3 syl fveq1d
      zdceq oveq2d ifeq12d ifeq2d eqeq1 breq2 fveq2d ifbieq12d ifbieq2d df-iexp
      fveq2 negeq ovmpt2g syld3an3 ) ACDZBEDZAFUEGZFBUFGZUGZBFHZIFBJGZBKCLAUHZU
      IZIUJZMZIBUKZUUFMZNOZPZPZCDZABUQOUULHYQYRUUAULZUUBUUMUUBUMZUUBUUMURUUNUUB
      UULICUUBIUUKUNUOUPUSUUNUUOUUMUUNUUOQZUUMUUKCDZUUPUUCUUQUUCUMZYQYRUUOUUCUU
      QURZUUAYQYRQZUUSUUOUUTUUCUUQUUTUUCQZUUQUUGCDZUVAUAUBKCUUEIBUTYRUUCBIVAMZD
      ZYQYRUUCQZUVDUVEBLDUVDBVBBVCVDVEVFCUTDZUVAVJUSUUTUAVGZUVCDZUVGUUEMZCDZUUC
      YQUVHUVJYRYQUVHQZUVJYQYQUVHVHUVKUVIACUVHYQUVGLDUVIAHUVGVCLAUVGCVIVKVLRZVM
      VMUVGCDUBVGZCDQZUVGUVMKOCDZUVAUVGUVMVNZSVOUUCUUQUVBTUUTUUCUUKUUGCUUCUUGUU
      JUNVLSRVTVPVQUUPUURUUQUUPUURQZUUQUUJCDZUVQUUIUVQUAUBKCUUEIUUHUTUVQUUHLDZU
      UHUVCDUVQUUHEDFUUHJGZUVSUVQBYQYRUUAUUOUURVRZVSUVQBFJGZUVTUVQUWBBFUFGZFBWA
      ZUVQUWCUURUUPUURWBZUVQBFUVQBUWAWCZUVQWDWERUVQBFUVQBFUUNUUOUURWFWGWHZUUNUW
      BUWCUWDQTZUUOUURYRYQUWHUUAYRFEDZUWHXKBFWIWJWKWLWMUVQBUWFWNWOUUHVBWPZUUHVC
      WQUVFUVQVJUSUUPUVHUVJUURUUNUVHUVJUUOYQYRUVHUVJUUAUVLWRVMVMUVNUVOUVQUVPSVO
      UVQYSUUIFUEGZYTUVQYQUVSYSUWKURYQYRUUAUUOUURWSUWJYQUVSYSUWKYQYSUVSUWKAUUHX
      AWTXBXCUVQYTUWKUVQYTUUCFBHZUGZUVQUURUWLUMUWMUMUWEUVQFBUWGXDUUCUWLXEWPUUNY
      TUWMTZUUOUURYRYQUWNUUAUWIYRUWNXKFBXFXGWKWLXHXIYQYRUUAUUOUURXJXLXMUURUUQUV
      RTUUPUURUUKUUJCUUCUUGUUJXNVLSRVTYQYRUUOUUCUURUGZUUAUUTUWOUUOYRUWOYQYRUUCX
      OZUWOUWIYRUWPXKFBXPXGUUCXQWQSVPVQXLUUOUUMUUQTUUNUUOUULUUKCUUBIUUKXNVLSRVT
      YRYQUUBUUOUGZUUAYRUUBXOZUWQYRUWIUWRXKBFYCWJUUBXQWQWKXLUCUDABCEUDVGZFHZIFU
      WSJGZUWSKCLUCVGZUHZUIZIUJZMZIUWSUKZUXEMZNOZPZPUULUQUWTIUXAUWSUUFMZIUXGUUF
      MZNOZPZPCUXBAHZUWTUXJUXNIUXOUXAUXFUXKUXIUXMUXOUWSUXEUUFUXOUXDUUEHUXEUUFHU
      XOUXCUUDLUXBAXRXSKCUXDUUEIXTYAZYBUXOUXHUXLINUXOUXGUXEUUFUXPYBYDYEYFUWSBHZ
      UWTUUBUXNUUKIUWSBFYGUXQUXAUUCUXKUXMUUGUUJUWSBFJYHUWSBUUFYMUXQUXLUUIINUXQU
      XGUUHUUFUWSBYNYIYDYJYKUCUDYLYOYP $.
  $}

  ${
    $d x y A $.  $d y N $.
    $( Value of exponentiation to positive integer powers.  (Contributed by Jim
       Kingdon, 8-Jun-2020.) $)
    expinnval $p |- ( ( A e. CC /\ N e. NN ) -> ( A ^ N ) =
        ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` N ) ) $=
      ( cc wcel cn wa cexp co cc0 wceq c1 clt wbr cmul csn cxp cfv adantl eqtrd
      cif cseq cneg cdiv cz cap cle simpl nnz simpr nnnn0d nn0ge0d olcd expival
      wo syl3anc nnne0 neneqd iffalsed nngt0 iftrued ) ACDZBEDZFZABGHZBIJZKIBLM
      ZBNCEAOPKUAZQZKBUBVGQUCHZTZTZVHVCVABUDDZAIUEMZIBUFMZUNVDVKJVAVBUGVBVLVABU
      HRVCVNVMVCBVCBVAVBUIUJUKULABUMUOVBVKVHJVAVBVKVJVHVBVEKVJVBBIBUPUQURVBVFVH
      VIBUSUTSRS $.
  $}

  $( Value of a complex number raised to the 0th power.  Note that under our
     definition, ` 0 ^ 0 = 1 ` , following the convention used by Gleason.
     Part of Definition 10-4.1 of [Gleason] p. 134.  (Contributed by NM,
     20-May-2004.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
  exp0 $p |- ( A e. CC -> ( A ^ 0 ) = 1 ) $=
    ( cc wcel cc0 cexp co wceq c1 clt wbr cmul cn csn cxp cseq cfv cneg cdiv cz
    cif cap cle wo 0zd 0le0 a1i olcd expival mpd3an23 eqid iftruei syl6eq ) ABC
    ZADEFZDDGZHDDIJDKBLAMNHOZPHDQUPPRFTZTZHUMDSCADUAJZDDUBJZUCUNURGUMUDUMUTUSUT
    UMUEUFUGADUHUIUOHUQDUJUKUL $.

  $( ` 0 ^ 0 = 1 ` (common case).  This is our convention.  It follows the
     convention used by Gleason; see Part of Definition 10-4.1 of [Gleason]
     p. 134.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  0exp0e1 $p |- ( 0 ^ 0 ) = 1 $=
    ( cc0 cc wcel cexp co c1 wceq 0cn exp0 ax-mp ) ABCAADEFGHAIJ $.

  ${
    $d A x y $.
    $( Value of a complex number raised to the first power.  (Contributed by
       NM, 20-Oct-2004.)  (Revised by Mario Carneiro, 2-Jul-2013.) $)
    exp1 $p |- ( A e. CC -> ( A ^ 1 ) = A ) $=
      ( vx vy cc wcel c1 cexp co cmul cn csn cxp cfv 1nn mpan2 cvv cv fvconst2g
      wceq wa cseq expinnval 1zzd cnex a1i elnnuz sylan2br simpl eqeltrd adantl
      cuz mulcl iseq1 3eqtrd ) ADEZAFGHZFIDJAKLZFUAMZFUQMZAUOFJEZUPURSNAFUBOUOB
      CIDUQFPUOUCDPEUOUDUEUOBQZFUKMEZTVAUQMZADVBUOVAJEVCASVAUFJAVADRUGUOVBUHUIV
      ADECQZDETVAVDIHDEUOVAVDULUJUMUOUTUSASNJAFDROUN $.
  $}

  ${
    $d A x y $.  $d N x y $.
    $( Value of a complex number raised to a nonnegative integer power plus
       one.  Part of Definition 10-4.1 of [Gleason] p. 134.  (Contributed by
       NM, 20-May-2005.)  (Revised by Mario Carneiro, 2-Jul-2013.) $)
    expp1 $p |- ( ( A e. CC /\ N e. NN0 ) -> ( A ^ ( N + 1 ) ) =
                 ( ( A ^ N ) x. A ) ) $=
      ( vx vy wcel cc cn cc0 wceq c1 caddc co cexp cmul wa cfv cvv simpr elnnuz
      oveq1d cn0 wo elnn0 csn cxp cseq cuz sylib a1i cv simpll fvconst2g eleq1d
      cnex wb sylan2br adantlr mpbird mulcl adantl iseqp1 peano2nn sylan2 eqtrd
      oveq2d expinnval 3eqtr4d exp1 mulid2 eqtr4d adantr 0p1e1 syl6eq sylan9eqr
      oveq2 exp0 jaodan sylan2b ) BUAEAFEZBGEZBHIZUBABJKLZMLZABMLZANLZIZBUCVSVT
      WFWAVSVTOZWBNFGAUDUEZJUFZPZBWIPZANLZWCWEWGWJWKWBWHPZNLWLWGCDNFWHJBQWGVTBJ
      UGPZEVSVTRBSUHFQEWGUNUIWGCUJZWNEZOWOWHPZFEZVSVSVTWPUKVSWPWRVSUOZVTWPVSWOG
      EZWSWOSVSWTOWQAFGAWOFULUMUPUQURWOFEDUJZFEOWOXANLFEWGWOXAUSUTVAWGWMAWKNVTV
      SWBGEZWMAIBVBZGAWBFULVCVEVDVTVSXBWCWJIXCAWBVFVCWGWDWKANABVFTVGVSWAOZAJMLZ
      JANLZWCWEVSXEXFIWAVSXEAXFAVHAVIVJVKXDWBJAMXDWBHJKLJXDBHJKVSWARTVLVMVEXDWD
      JANWAVSWDAHMLJBHAMVOAVPVNTVGVQVR $.
  $}

  $( Value of a complex number raised to a negative integer power.
     (Contributed by Jim Kingdon, 8-Jun-2020.) $)
  expnegap0 $p |- ( ( A e. CC /\ A # 0 /\ N e. NN0 ) ->
      ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
    ( cc wcel cc0 wbr cneg cexp co c1 cdiv wceq wa cn wo clt cfv adantl adantlr
    oveq2d cap cn0 elnn0 cmul csn cxp cseq cif wn nnne0 nncn negeq0d necon3abid
    wne mpbid iffalsed nnnn0 nn0nlt0 syl nn0red mtbid negnegd fveq2d 3eqtrd w3a
    lt0neg1d cz cle simp1 simp3 nnzd znegcld simp2 orcd expival 3expa expinnval
    syl3anc 3eqtr4d 1div1e1 eqcomi negeq neg0 syl6eq exp0 oveq2 3eqtr4a sylan2b
    sylan9eqr jaodan 3impa ) ACDZAEUAFZBUBDZABGZHIZJABHIZKIZLZWNWLWMMZBNDZBELZO
    WSBUCWTXAWSXBWTXAMWOELZJEWOPFZWOUDCNAUEUFJUGZQZJWOGZXEQZKIZUHZUHZJBXEQZKIZW
    PWRWLXAXKXMLWMWLXAMZXKXJXIXMXNXCJXJXNBEUNZXCUIXAXOWLBUJRXNXCBEXNBXABCDWLBUK
    RZULUMUOUPXNXDXFXIXNBEPFZXDXNWNXQUIXAWNWLBUQRZBURUSXNBXNBXRUTVFVAUPXNXHXLJK
    XNXGBXEXNBXPVBVCTVDSWLWMXAWPXKLZWLWMXAVEZWLWOVGDWMEWOVHFZOXSWLWMXAVIXTBXTBW
    LWMXAVJVKVLXTWMYAWLWMXAVMVNAWOVOVRVPWLXAWRXMLWMXNWQXLJKABVQTSVSWLXBWSWMWLXB
    MZJJJKIZWPWRYCJVTWAXBWLWPAEHIZJXBWOEAHXBWOEGEBEWBWCWDTAWEZWIYBWQJJKXBWLWQYD
    JBEAHWFYEWITWGSWJWHWK $.

  $( Value of a complex number raised to a negative integer power.
     (Contributed by Jim Kingdon, 8-Jun-2020.) $)
  expineg2 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( N e. CC /\ -u N e. NN0 ) ) ->
      ( A ^ N ) = ( 1 / ( A ^ -u N ) ) ) $=
    ( cc wcel cc0 cap wbr wa cneg cn0 cexp co c1 cdiv negneg ad2antrl expnegap0
    wceq oveq2d 3expa adantrl eqtr3d ) ACDZAEFGZHZBCDZBIZJDZHHZAUGIZKLZABKLMAUG
    KLNLZUIUJBAKUFUJBRUEUHBOPSUEUHUKULRZUFUCUDUHUMAUGQTUAUB $.

  $( A number to the negative one power is the reciprocal.  (Contributed by Jim
     Kingdon, 8-Jun-2020.) $)
  expn1ap0 $p |- ( ( A e. CC /\ A # 0 ) -> ( A ^ -u 1 ) = ( 1 / A ) ) $=
    ( cc wcel cc0 cap wbr wa cneg cexp cdiv cn0 wceq 1nn0 expnegap0 mp3an3 exp1
    c1 co oveq2d adantr eqtrd ) ABCZADEFZGAQHIRZQAQIRZJRZQAJRZUBUCQKCUDUFLMAQNO
    UBUFUGLUCUBUEAQJAPSTUA $.

  ${
    $d x y z w A $.  $d x z B $.  $d x y z w F $.
    expcllem.1 $e |- F C_ CC $.
    expcllem.2 $e |- ( ( x e. F /\ y e. F ) -> ( x x. y ) e. F ) $.
    expcllem.3 $e |- 1 e. F $.
    $( Lemma for proving nonnegative integer exponentiation closure laws.
       (Contributed by NM, 14-Dec-2005.) $)
    expcllem $p |- ( ( A e. F /\ B e. NN0 ) -> ( A ^ B ) e. F ) $=
      ( vz wcel cc0 wceq cexp co wi c1 oveq2 eleq1d imbi2d wa vw cn wo elnn0 cv
      cn0 caddc cc sseli exp1 syl ibir caovcl ancoms adantlr nnnn0 expp1 syl2an
      cmul adantr mpbird exp31 com12 a2d nnind impcom sylan9eqr syl6eqel jaodan
      wb exp0 sylan2b ) DUFJCEJZDUBJZDKLZUCCDMNZEJZDUDVMVNVQVOVNVMVQVMCIUEZMNZE
      JZOVMCPMNZEJZOVMCUAUEZMNZEJZOVMCWCPUGNZMNZEJZOVMVQOIUADVRPLZVTWBVMWIVSWAE
      VRPCMQRSVRWCLZVTWEVMWJVSWDEVRWCCMQRSVRWFLZVTWHVMWKVSWGEVRWFCMQRSVRDLZVTVQ
      VMWLVSVPEVRDCMQRSVMWBVMWACEVMCUHJZWACLEUHCFUIZCUJUKRULWCUBJZVMWEWHVMWOWEW
      HOVMWOWEWHVMWOTZWETWHWDCUSNZEJZVMWEWRWOWEVMWRABWDCEUSGUMUNUOWPWHWRVJWEWPW
      GWQEVMWMWCUFJWGWQLWOWNWCUPCWCUQURRUTVAVBVCVDVEVFVMVOTVPPEVOVMVPCKMNZPDKCM
      QVMWMWSPLWNCVKUKVGHVHVIVL $.

    expcl2lemap.4 $e |- ( ( x e. F /\ x # 0 ) -> ( 1 / x ) e. F ) $.
    $( Lemma for proving integer exponentiation closure laws.  (Contributed by
       Jim Kingdon, 8-Jun-2020.) $)
    expcl2lemap $p |- ( ( A e. F /\ A # 0 /\ B e. ZZ ) -> ( A ^ B ) e. F ) $=
      ( vz wcel cc0 cap wbr co wa c1 cc breq1 elrab cz cexp cr cneg cn elznn0nn
      cn0 wo wi expcllem ex adantr cdiv simpll sseldi simplr simprl recnd nnnn0
      wceq ad2antll expineg2 syl22anc crab ssrab2 simpl sylibr sstri cmul sseli
      cv syl2an anim1i sylbi mulap0 sylanbrc 1ap0 mpbir2an syl2anc sylib simprd
      oveq2 eleq1d imbi12d vtoclga sylc eqeltrd jaod syl5bi 3impia ) CEKZCLMNZD
      UAKZCDUBOZEKZWMDUGKZDUCKZDUDZUEKZPZUHWKWLPZWODUFXAWPWOWTWKWPWOUIWLWKWPWOA
      BCDEFGHUJUKULXAWTWOXAWTPZWNQCWRUBOZUMOZEXBCRKWLDRKWRUGKZWNXDUTXBERCFWKWLW
      TUNUOWKWLWTUPXBDXAWQWSUQURWSXEXAWQWRUSVAZCDVBVCXBXCEKZXCLMNZXDEKZXBJVKZLM
      NZJEVDZEXCXKJEVEZXBCXLKZXEXCXLKZXBXAXNXAWTVFXKWLJCEXJCLMSTVGXFABCWRXLXLER
      XMFVHAVKZXLKZBVKZXLKZPXPXRVIOZEKZXTLMNZXTXLKXQXPEKZXREKZYAXSXLEXPXMVJXLEX
      RXMVJGVLXQXPRKZXPLMNZPZXRRKZXRLMNZPZYBXSXQYCYFPYGXKYFJXPEXJXPLMSTYCYEYFER
      XPFVJVMVNXSYDYIPYJXKYIJXREXJXRLMSTYDYHYIERXRFVJVMVNXPXRVOVLXKYBJXTEXJXTLM
      STVPQXLKQEKQLMNZHVQXKYKJQEXJQLMSTVRUJVSZUOXBXGXHXBXOXGXHPYLXKXHJXCEXJXCLM
      STVTWAYFQXPUMOZEKZUIXHXIUIAXCEXPXCUTZYFXHYNXIXPXCLMSYOYMXDEXPXCQUMWBWCWDY
      CYFYNIUKWEWFWGUKWHWIWJ $.
  $}

  ${
    $d x y z A $.  $d x y z N $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by NM,
       16-Dec-2005.) $)
    nnexpcl $p |- ( ( A e. NN /\ N e. NN0 ) -> ( A ^ N ) e. NN ) $=
      ( vx vy cn nnsscn cv nnmulcl 1nn expcllem ) CDABEFCGDGHIJ $.

    $( Closure of exponentiation of nonnegative integers.  (Contributed by NM,
       14-Dec-2005.) $)
    nn0expcl $p |- ( ( A e. NN0 /\ N e. NN0 ) -> ( A ^ N ) e. NN0 ) $=
      ( vx vy cn0 nn0sscn cv nn0mulcl 1nn0 expcllem ) CDABEFCGDGHIJ $.

    $( Closure of exponentiation of integers.  (Contributed by NM,
       16-Dec-2005.) $)
    zexpcl $p |- ( ( A e. ZZ /\ N e. NN0 ) -> ( A ^ N ) e. ZZ ) $=
      ( vx vy cz zsscn cv zmulcl 1z expcllem ) CDABEFCGDGHIJ $.

    $( Closure of exponentiation of rationals.  (Contributed by NM,
       16-Dec-2005.) $)
    qexpcl $p |- ( ( A e. QQ /\ N e. NN0 ) -> ( A ^ N ) e. QQ ) $=
      ( vx vy cq qsscn cv qmulcl c1 cz wcel 1z zq ax-mp expcllem ) CDABEFCGDGHI
      JKIEKLIMNO $.

    $( Closure of exponentiation of reals.  (Contributed by NM,
       14-Dec-2005.) $)
    reexpcl $p |- ( ( A e. RR /\ N e. NN0 ) -> ( A ^ N ) e. RR ) $=
      ( vx vy cr ax-resscn cv remulcl 1re expcllem ) CDABEFCGDGHIJ $.

    $( Closure law for nonnegative integer exponentiation.  (Contributed by NM,
       26-May-2005.) $)
    expcl $p |- ( ( A e. CC /\ N e. NN0 ) -> ( A ^ N ) e. CC ) $=
      ( vx vy cc ssid cv mulcl ax-1cn expcllem ) CDABEEFCGDGHIJ $.

    $( Closure law for exponentiation of positive reals.  (Contributed by NM,
       24-Feb-2008.)  (Revised by Mario Carneiro, 9-Sep-2014.) $)
    rpexpcl $p |- ( ( A e. RR+ /\ N e. ZZ ) -> ( A ^ N ) e. RR+ ) $=
      ( vx vy crp wcel cz wa cc0 cap wbr cexp co simpl rpap0 adantr simpr cr cc
      cv rpssre ax-resscn sstri rpmulcl 1rp c1 cdiv rpreccl expcl2lemap syl3anc
      ) AEFZBGFZHUKAIJKZULABLMEFUKULNUKUMULAOPUKULQCDABEERSUAUBUCCTZDTUDUEUNEFU
      FUNUGMEFUNIJKUNUHPUIUJ $.

    $( Closure of exponentiation of reals.  (Contributed by Jim Kingdon,
       9-Jun-2020.) $)
    reexpclzap $p |- ( ( A e. RR /\ A # 0 /\ N e. ZZ ) ->
        ( A ^ N ) e. RR ) $=
      ( vx vy cr ax-resscn cv remulcl 1re rerecclap expcl2lemap ) CDABEFCGZDGHI
      LJK $.

    $( Closure of exponentiation of rational numbers.  (Contributed by Mario
       Carneiro, 9-Sep-2014.) $)
    qexpclz $p |- ( ( A e. QQ /\ A =/= 0 /\ N e. ZZ ) -> ( A ^ N ) e. QQ ) $=
      ( vx vy cq wcel cc0 wne cz w3a cap wbr co wb zq ax-mp qapne mpan2 cv c1
      cexp 0z 3anbi2d 3ad2ant1 ibir qsscn qmulcl 1z wa cdiv pm5.32i expcl2lemap
      qreccl sylbi syl ) AEFZAGHZBIFZJZUPAGKLZURJZABUAMEFUSVAUPUQVAUSNURUPUTUQU
      PURUPGEFZUTUQNGIFVBUBGOPZAGQRUCUDUECDABEUFCSZDSUGTIFTEFUHTOPVDEFZVDGKLZUI
      VEVDGHZUITVDUJMEFVEVFVGVEVBVFVGNVCVDGQRUKVDUMUNULUO $.

    $( Closure of exponentiation of negative one.  (Contributed by Mario
       Carneiro, 18-Jun-2015.) $)
    m1expcl2 $p |- ( N e. ZZ -> ( -u 1 ^ N ) e. { -u 1 , 1 } ) $=
      ( vx vy c1 cneg wcel cc0 cap wbr neg1cn ax-1cn cmul wceq eqeltri syl6eqel
      co cc jaoi syl cdiv cpr cz cexp prid1g ax-mp neg1ap0 prssi mp2an cv wo wi
      wss elpri sseli mulm1d negeq negneg1e1 prid2 eqeltrd oveq1 eleq1d syl5ibr
      1ex mulid2d id imp oveq2 1ap0 divneg2ap 1div1e1 negeqi eqtr3i expcl2lemap
      mp3an adantr mp3an12 ) DEZVQDUAZFZVQGHIAUBFVQAUCPVRFVQQFZVSJVQDQUDUEZUFBC
      VQAVRVTDQFZVRQULJKVQDQUGUHZBUIZVRFZCUIZVRFZWDWFLPZVRFZWEWDVQMZWDDMZUJZWGW
      IUKZWDVQDUMZWJWMWKWGWIWJVQWFLPZVRFWGWOWFEZVRWGWFVRQWFWCUNZUOWGWFVQMZWFDMZ
      UJWPVRFZWFVQDUMWRWTWSWRWPVQEZVRWFVQUPXADVRUQVQDVCURZNOWSWPVQVRWFDUPWAORSU
      SWJWHWOVRWDVQWFLUTVAVBWGWIWKDWFLPZVRFWGXCWFVRWGWFWQVDWGVEUSWKWHXCVRWDDWFL
      UTVAVBRSVFXBWEDWDTPZVRFZWDGHIWEWLXEWNWJXEWKWJXDDVQTPZVRWDVQDTVGXFVQVRDDTP
      ZEZXFVQWBWBDGHIXHXFMKKVHDDVIVNXGDVJVKVLWANOWKXDXGVRWDDDTVGXGDVRVJXBNORSVO
      VMVP $.

    $( Closure of exponentiation of negative one.  (Contributed by Mario
       Carneiro, 18-Jun-2015.) $)
    m1expcl $p |- ( N e. ZZ -> ( -u 1 ^ N ) e. ZZ ) $=
      ( cz wcel c1 cneg cpr cexp co wss neg1z 1z prssi mp2an m1expcl2 sseldi )
      ABCDEZDFZBPAGHPBCDBCQBIJKPDBLMANO $.

    $( Closure law for integer exponentiation.  Lemma for ~ expclzap and
       ~ expap0i .  (Contributed by Jim Kingdon, 9-Jun-2020.) $)
    expclzaplem $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) ->
        ( A ^ N ) e. { z e. CC | z # 0 } ) $=
      ( vx vy cc wcel cc0 cap wbr cz cexp co cv crab wi wa breq1 elrab c1 mulcl
      ssrab2 cmul ad2ant2r mulap0 sylanbrc syl2anb ax-1cn 1ap0 mpbir2an recclap
      cdiv recap0 jca 3imtr4i adantr expcl2lemap 3expia sylanbr anabss3 3impia
      ) BFGZBHIJZCKGZBCLMANZHIJZAFOZGZVBVCVDVHPZVBVCQBVGGZVCVIVFVCABFVEBHIRSVJV
      CVDVHDEBCVGVFAFUBDNZVGGZVKFGZVKHIJZQZENZFGZVPHIJZQZVKVPUCMZVGGZVPVGGVFVNA
      VKFVEVKHIRSZVFVRAVPFVEVPHIRSVOVSQVTFGZVTHIJZWAVMVQWCVNVRVKVPUAUDVKVPUEVFW
      DAVTFVEVTHIRSUFUGTVGGTFGTHIJZUHUIVFWEATFVETHIRSUJVLTVKULMZVGGZVNVOWFFGZWF
      HIJZQVLWGVOWHWIVKUKVKUMUNWBVFWIAWFFVEWFHIRSUOUPUQURUSUTVA $.

    $( Closure law for integer exponentiation.  (Contributed by Jim Kingdon,
       9-Jun-2020.) $)
    expclzap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ N ) e. CC ) $=
      ( vz cc wcel cc0 cap wbr cz cexp co cv crab expclzaplem breq1 elrab sylib
      w3a wa simpld ) ADEAFGHBIERZABJKZDEZUBFGHZUAUBCLZFGHZCDMEUCUDSCABNUFUDCUB
      DUEUBFGOPQT $.
  $}

  ${
    nn0expcli.1 $e |- A e. NN0 $.
    nn0expcli.2 $e |- N e. NN0 $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by
       Mario Carneiro, 17-Apr-2015.) $)
    nn0expcli $p |- ( A ^ N ) e. NN0 $=
      ( cn0 wcel cexp co nn0expcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( The square of a nonnegative integer is a nonnegative integer.
     (Contributed by Stefan O'Rear, 16-Oct-2014.) $)
  nn0sqcl $p |- ( A e. NN0 -> ( A ^ 2 ) e. NN0 ) $=
    ( cn0 wcel c2 cexp co 2nn0 nn0expcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( Exponentiation in terms of predecessor exponent.  (Contributed by NM,
     19-Dec-2005.) $)
  expm1t $p |- ( ( A e. CC /\ N e. NN ) -> ( A ^ N ) =
               ( ( A ^ ( N - 1 ) ) x. A ) ) $=
    ( cc wcel cn wa c1 cmin co caddc cexp cmul wceq ax-1cn npcan sylancl oveq2d
    nncn adantl cn0 nnm1nn0 expp1 sylan2 eqtr3d ) ACDZBEDZFABGHIZGJIZKIZABKIZAU
    GKIALIZUFUIUJMUEUFUHBAKUFBCDGCDUHBMBRNBGOPQSUFUEUGTDUIUKMBUAAUGUBUCUD $.

  ${
    $d x y j N $.  $d j k A $.
    $( Value of one raised to a nonnegative integer power.  (Contributed by NM,
       15-Dec-2005.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
    1exp $p |- ( N e. ZZ -> ( 1 ^ N ) = 1 ) $=
      ( vx vy wcel c1 co wceq cc0 cap wbr 1ex cc cv wa cmul syl6eq cvv syl cdiv
      elsni cz cexp csn snid 1ap0 wss ax-1cn snssi ax-mp oveq12 1t1e1 syl2an wb
      eleq1 mpbiri elsncg ibir oveq2d 1div1e1 adantr expcl2lemap mp3an12 ) AUAD
      ZEAUBFZEUCZDZVDEGEVEDEHIJVCVFEKUDZUEBCEAVEELDVELUFUGELUHUIBMZVEDZCMZVEDZN
      VHVJOFZEGZVLVEDZVIVHEGZVJEGZVMVKVHETZVJETVOVPNVLEEOFEVHEVJEOUJUKPULVMVNVM
      VLQDZVNVMUMVMVREQDZKVLEQUNUOVLEQUPRUQRVGVIEVHSFZVEDZVHHIJVIVTEGZWAVIVTEES
      FEVIVHEESVQURUSPWBWAWBVTQDZWAWBUMWBWCVSKVTEQUNUOVTEQUPRUQRUTVAVBVDETR $.
  $}

  ${
    $d A j k $.  $d N j $.
    $( Positive integer exponentiation is apart from zero iff its mantissa is
       apart from zero.  That it is easier to prove this first, and then prove
       ~ expeq0 in terms of it, rather than the other way around, is perhaps an
       illustration of the maxim "In constructive analysis, the apartness is
       more basic [ than ] equality."  ([Geuvers], p. 1).  (Contributed by Jim
       Kingdon, 10-Jun-2020.) $)
    expap0 $p |- ( ( A e. CC /\ N e. NN ) ->
                    ( ( A ^ N ) # 0 <-> A # 0 ) ) $=
      ( vj vk cn wcel cexp co cc0 cap wbr wb wi wceq oveq2 breq1d bibi1d imbi2d
      c1 wa cc cv caddc exp1 cmul cn0 nnnn0 expp1 ancoms adantr simplr ad2antrr
      sylan expcl syl2anc mulap0bd anbi1 adantl 3bitr2d anidm syl6bb a2d impcom
      exp31 nnind ) BEFAUAFZABGHZIJKZAIJKZLZVFACUBZGHZIJKZVILZMVFASGHZIJKZVILZM
      VFADUBZGHZIJKZVILZMVFAVRSUCHZGHZIJKZVILZMVFVJMCDBVKSNZVNVQVFWFVMVPVIWFVLV
      OIJVKSAGOPQRVKVRNZVNWAVFWGVMVTVIWGVLVSIJVKVRAGOPQRVKWBNZVNWEVFWHVMWDVIWHV
      LWCIJVKWBAGOPQRVKBNZVNVJVFWIVMVHVIWIVLVGIJVKBAGOPQRVFVOAIJAUDPVREFZVFWAWE
      WJVFWAWEWJVFTZWATZWDVIVITZVIWLWDVSAUEHZIJKZVTVITZWMWKWDWOLZWAWJVRUFFZVFWQ
      VRUGZVFWRWQVFWRTWCWNIJAVRUHPUIUMUJWLVSAWLVFWRVSUAFWJVFWAUKZWJWRVFWAWSULAV
      RUNUOWTUPWAWPWMLWKVTVIVIUQURUSVIUTVAVDVBVEVC $.
  $}

  $( Positive integer exponentiation is 0 iff its mantissa is 0.  (Contributed
     by NM, 23-Feb-2005.) $)
  expeq0 $p |- ( ( A e. CC /\ N e. NN ) -> ( ( A ^ N ) = 0 <-> A = 0 ) ) $=
    ( cc wcel cn wa cexp co cc0 cap wbr wn wceq expap0 notbid wb cn0 nnnn0 apti
    0cn expcl sylan2 sylancl mpan2 adantr 3bitr4d ) ACDZBEDZFZABGHZIJKZLZAIJKZL
    ZUJIMZAIMZUIUKUMABNOUIUJCDZICDZUOULPUHUGBQDUQBRABUAUBTUJISUCUGUPUNPZUHUGURU
    STAISUDUEUF $.

  ${
    $d A z $.  $d N z $.
    $( Integer exponentiation is apart from zero if its mantissa is apart from
       zero.  (Contributed by Jim Kingdon, 10-Jun-2020.) $)
    expap0i $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ N ) # 0 ) $=
      ( vz cc wcel cc0 cap wbr cz cexp co cv crab expclzaplem breq1 elrab sylib
      w3a wa simprd ) ADEAFGHBIERZABJKZDEZUBFGHZUAUBCLZFGHZCDMEUCUDSCABNUFUDCUB
      DUEUBFGOPQT $.
  $}

  $( Nonnegative integer exponentiation with a positive mantissa is positive.
     (Contributed by NM, 16-Dec-2005.)  (Revised by Mario Carneiro,
     4-Jun-2014.) $)
  expgt0 $p |- ( ( A e. RR /\ N e. ZZ /\ 0 < A ) -> 0 < ( A ^ N ) ) $=
    ( cr wcel cc0 clt wbr cz cexp co wa crp rpexpcl rpgt0d sylanbr 3impa 3com23
    elrp ) ACDZEAFGZBHDZEABIJZFGZSTUAUCSTKALDZUAUCARUDUAKUBABMNOPQ $.

  $( Value of a complex number raised to a negative power.  (Contributed by
     Mario Carneiro, 4-Jun-2014.) $)
  expnegzap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) ->
      ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
    ( cc wcel cc0 cap wbr cz cneg cexp co c1 cdiv wceq cr cn0 wo wa elznn0 wi
    expnegap0 3expia adantr simpl simprl recnd simprr expineg2 oveq2d ad2ant2rl
    syl12anc expcl simpll simplr nn0zd expap0i syl3anc recrecapd eqtr2d expimpd
    expr jaod syl5bi 3impia ) ACDZAEFGZBHDZABIZJKZLABJKZMKZNZVGBODZBPDZVHPDZQZR
    VEVFRZVLBSVQVMVPVLVQVMRVNVLVOVQVNVLTVMVEVFVNVLABUAUBUCVQVMVOVLVQVMVORZRZVKL
    LVIMKZMKVIVSVJVTLMVSVQBCDVOVJVTNVQVRUDVSBVQVMVOUEUFVQVMVOUGZABUHUKUIVSVIVEV
    OVICDVFVMAVHULUJVSVEVFVHHDVIEFGVEVFVRUMVEVFVRUNVSVHWAUOAVHUPUQURUSVAVBUTVCV
    D $.

  $( Value of zero raised to a positive integer power.  (Contributed by NM,
     19-Aug-2004.) $)
  0exp $p |- ( N e. NN -> ( 0 ^ N ) = 0 ) $=
    ( cn wcel cc0 cexp co wceq eqid cc wb 0cn expeq0 mpan mpbiri ) ABCZDAEFDGZD
    DGZDHDICOPQJKDALMN $.

  ${
    $d x y z A $.  $d x z N $.
    $( Nonnegative integer exponentiation with a nonnegative mantissa is
       nonnegative.  (Contributed by NM, 16-Dec-2005.)  (Revised by Mario
       Carneiro, 4-Jun-2014.) $)
    expge0 $p |- ( ( A e. RR /\ N e. NN0 /\ 0 <_ A ) -> 0 <_ ( A ^ N ) ) $=
      ( vz vx vy cr wcel cc0 cle wbr cn0 cexp co wa cv crab breq2 elrab cc c1
      ssrab2 ax-resscn sstri cmul remulcl ad2ant2r mulge0 sylanbrc syl2anb 0le1
      1re mpbir2an expcllem simprbi syl sylanbr 3impa 3com23 ) AFGZHAIJZBKGZHAB
      LMZIJZUSUTVAVCUSUTNAHCOZIJZCFPZGZVAVCVEUTCAFVDAHIQRVGVANVBVFGZVCDEABVFVFF
      SVECFUAUBUCDOZVFGVIFGZHVIIJZNZEOZFGZHVMIJZNZVIVMUDMZVFGZVMVFGVEVKCVIFVDVI
      HIQRVEVOCVMFVDVMHIQRVLVPNVQFGZHVQIJZVRVJVNVSVKVOVIVMUEUFVIVMUGVEVTCVQFVDV
      QHIQRUHUITVFGTFGHTIJZUKUJVEWACTFVDTHIQRULUMVHVBFGVCVEVCCVBFVDVBHIQRUNUOUP
      UQUR $.

    $( Nonnegative integer exponentiation with a mantissa greater than or equal
       to 1 is greater than or equal to 1.  (Contributed by NM, 21-Feb-2005.)
       (Revised by Mario Carneiro, 4-Jun-2014.) $)
    expge1 $p |- ( ( A e. RR /\ N e. NN0 /\ 1 <_ A ) -> 1 <_ ( A ^ N ) ) $=
      ( vz vx vy cr wcel cn0 c1 cle wbr w3a co cv wa breq2 elrab cmul 1re jctl
      cexp crab cc ssrab2 ax-resscn sstri remulcl ad2ant2r 1t1e1 wi 0le1 pm3.2i
      cc0 lemul12a syl2an imp syl5eqbrr an4s sylanbrc syl2anb mpbir2an expcllem
      1le1 sylanbr 3impa 3com23 simprbi syl ) AFGZBHGZIAJKZLABUAMZICNZJKZCFUBZG
      ZIVLJKZVIVKVJVPVIVKVJVPVIVKOAVOGVJVPVNVKCAFVMAIJPQDEABVOVOFUCVNCFUDUEUFDN
      ZVOGVRFGZIVRJKZOZENZFGZIWBJKZOZVRWBRMZVOGZWBVOGVNVTCVRFVMVRIJPQVNWDCWBFVM
      WBIJPQWAWEOWFFGZIWFJKZWGVSWCWHVTWDVRWBUGUHVSWCVTWDWIVSWCOZVTWDOZOIIIRMZWF
      JUIWJWKWLWFJKZVSIFGZUMIJKZOZVSOWPWCOWKWMUJWCVSWPWNWOSUKULZTWCWPWQTIVRIWBU
      NUOUPUQURVNWICWFFVMWFIJPQUSUTIVOGWNIIJKZSVCVNWRCIFVMIIJPQVAVBVDVEVFVPVLFG
      VQVNVQCVLFVMVLIJPQVGVH $.
  $}

  $( Positive integer exponentiation with a mantissa greater than 1 is greater
     than 1.  (Contributed by NM, 13-Feb-2005.)  (Revised by Mario Carneiro,
     4-Jun-2014.) $)
  expgt1 $p |- ( ( A e. RR /\ N e. NN /\ 1 < A ) -> 1 < ( A ^ N ) ) $=
    ( cr wcel cn c1 clt wbr w3a cexp 1re a1i simp1 cn0 reexpcl syl2anc cmul cle
    co cc0 simp2 nnnn0d simp3 cmin nnm1nn0 syl wi sylancr mpd expge1 syl3anc wb
    ltle 0red 0lt1 lttrd lemul1 syl112anc mpbid cc recn 3ad2ant1 mulid2d eqcomd
    wceq expm1t 3brtr4d ltletrd ) ACDZBEDZFAGHZIZFAABJSZFCDZVLKLZVIVJVKMZVLVIBN
    DVMCDVPVLBVIVJVKUAZUBABOPVIVJVKUCZVLFAQSZABFUDSZJSZAQSZAVMRVLFWARHZVSWBRHZV
    LVIVTNDZFARHZWCVPVLVJWEVQBUEUFZVLVKWFVRVLVNVIVKWFUGKVPFAUMUHUIAVTUJUKVLVNWA
    CDZVITAGHWCWDULVOVLVIWEWHVPWGAVTOPVPVLTFAVLUNVOVPTFGHVLUOLVRUPFWAAUQURUSVLV
    SAVLAVIVJAUTDZVKAVAVBZVCVDVLWIVJVMWBVEWJVQABVFPVGVH $.

  ${
    $d j k A $.  $d j k B $.  $d j k M $.  $d j N $.
    $( Positive integer exponentiation of a product.  Proposition 10-4.2(c) of
       [Gleason] p. 135, restricted to nonnegative integer exponents.
       (Contributed by NM, 13-Feb-2005.) $)
    mulexp $p |- ( ( A e. CC /\ B e. CC /\ N e. NN0 ) ->
                  ( ( A x. B ) ^ N ) = ( ( A ^ N ) x. ( B ^ N ) ) ) $=
      ( vj cc wcel cmul co cexp wceq wa wi c1 oveq2 oveq12d eqeq12d imbi2d exp0
      cc0 expp1 vk cn0 cv caddc mulcl oveqan12d 1t1e1 syl6eq eqtr4d sylan oveq1
      syl adantr expcl anim12i anandirs simpl syl2anc adantlr adantll sylan9eqr
      mul4 eqtrd exp31 com12 a2d nn0ind expdcom 3imp ) AEFZBEFZCUBFZABGHZCIHZAC
      IHZBCIHZGHZJZVLVJVKVRVJVKKZVMDUCZIHZAVTIHZBVTIHZGHZJZLVSVMSIHZASIHZBSIHZG
      HZJZLVSVMUAUCZIHZAWKIHZBWKIHZGHZJZLVSVMWKMUDHZIHZAWQIHZBWQIHZGHZJZLVSVRLD
      UACVTSJZWEWJVSXCWAWFWDWIVTSVMINXCWBWGWCWHGVTSAINVTSBINOPQVTWKJZWEWPVSXDWA
      WLWDWOVTWKVMINXDWBWMWCWNGVTWKAINVTWKBINOPQVTWQJZWEXBVSXEWAWRWDXAVTWQVMINX
      EWBWSWCWTGVTWQAINVTWQBINOPQVTCJZWEVRVSXFWAVNWDVQVTCVMINXFWBVOWCVPGVTCAINV
      TCBINOPQVSWFMWIVSVMEFZWFMJABUEZVMRULVSWIMMGHMVJVKWGMWHMGARBRUFUGUHUIWKUBF
      ZVSWPXBVSXIWPXBLVSXIWPXBVSXIKZWPKWRWLVMGHZXAXJWRXKJZWPVSXGXIXLXHVMWKTUJUM
      WPXJXKWOVMGHZXAWLWOVMGUKXJXMWMAGHZWNBGHZGHZXAXJWMEFZWNEFZKZVSXMXPJVJVKXIX
      SVJXIKXQVKXIKXRAWKUNBWKUNUOUPVSXIUQWMWNABVBURXJWSXNWTXOGVJXIWSXNJVKAWKTUS
      VKXIWTXOJVJBWKTUTOUIVAVCVDVEVFVGVHVI $.

    $( Integer exponentiation of a product.  (Contributed by Jim Kingdon,
       10-Jun-2020.) $)
    mulexpzap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) /\
          N e. ZZ ) ->
        ( ( A x. B ) ^ N ) = ( ( A ^ N ) x. ( B ^ N ) ) ) $=
      ( cc wcel cc0 cap wbr wa cz cmul cexp wceq cdiv expineg2 syl22anc syl3anc
      co c1 eqtr4d cn0 cr cneg cn wo elznn0nn simpl anim12i 3expa sylan simplll
      mulexp simplrl mulcld simpllr simplrr mulap0d recn ad2antrl nnnn0 oveq12d
      ad2antll oveq2d 1t1e1 oveq1i syl6eqr expcl syl2anc nnz ax-1cn divmuldivap
      expap0i mpanl12 jaodan sylan2b 3impa ) ADEZAFGHZIZBDEZBFGHZIZCJEZABKRZCLR
      ZACLRZBCLRZKRZMZWCVSWBIZCUAEZCUBEZCUCZUDEZIZUEWICUFWJWKWIWOWJVQVTIWKWIVSV
      QWBVTVQVRUGVTWAUGUHVQVTWKWIABCULUIUJWJWOIZWESWDWMLRZNRZWHWPWDDEWDFGHCDEZW
      MUAEZWEWRMWPABVQVRWBWOUKZVSVTWAWOUMZUNWPABXAXBVQVRWBWOUOZVSVTWAWOUPZUQWLW
      SWJWNCURUSZWNWTWJWLWMUTVBZWDCOPWPWHSAWMLRZNRZSBWMLRZNRZKRZWRWPWFXHWGXJKWP
      VQVRWSWTWFXHMXAXCXEXFACOPWPVTWAWSWTWGXJMXBXDXEXFBCOPVAWPWRSSKRZXGXIKRZNRZ
      XKWPWRSXMNRXNWPWQXMSNWPVQVTWTWQXMMXAXBXFABWMULQVCXLSXMNVDVEVFWPXGDEZXGFGH
      ZXIDEZXIFGHZXKXNMZWPVQWTXOXAXFAWMVGVHWPVQVRWMJEZXPXAXCWNXTWJWLWMVIVBZAWMV
      LQWPVTWTXQXBXFBWMVGVHWPVTWAXTXRXBXDYABWMVLQSDEZYBXOXPIXQXRIIXSVJVJSSXGXIV
      KVMPTTTVNVOVP $.

    $( Nonnegative integer exponentiation of a reciprocal.  (Contributed by Jim
       Kingdon, 10-Jun-2020.) $)
    exprecap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) ->
        ( ( 1 / A ) ^ N ) = ( 1 / ( A ^ N ) ) ) $=
      ( cc wcel cc0 cap wbr cz w3a cexp co cdiv expclzap recclap 3adant3 recap0
      c1 simp3 cmul wceq syl3anc expap0i simp1 simp2 oveq1d mulexpzap syl221anc
      recidapd 1exp syl 3eqtr3d mvllmulapd ) ACDZAEFGZBHDZIZABJKZQALKZBJKZQABMU
      PURCDZUREFGZUOUSCDUMUNUTUOANOZUMUNVAUOAPOZUMUNUORZURBMUAABUBUPAURSKZBJKZQ
      BJKZUQUSSKZQUPVEQBJUPAUMUNUOUCZUMUNUOUDZUHUEUPUMUNUTVAUOVFVHTVIVJVBVCVDAU
      RBUFUGUPUOVGQTVDBUIUJUKUL $.

    $( Sum of exponents law for nonnegative integer exponentiation.
       Proposition 10-4.2(a) of [Gleason] p. 135.  (Contributed by NM,
       30-Nov-2004.) $)
    expadd $p |- ( ( A e. CC /\ M e. NN0 /\ N e. NN0 ) ->
                  ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
      ( vj cc wcel cn0 caddc co cexp cmul wi cc0 c1 oveq2 oveq2d eqeq12d imbi2d
      wceq eqtr4d vk wa cv nn0cn addid1d adantl expcl mulid1d exp0 adantr oveq1
      ax-1cn addass mp3an3 syl2an adantll simpll nn0addcl expp1 syl2anc adantlr
      eqtr3d mulassd syl5ibr expcom a2d nn0ind expdcom 3imp ) AEFZBGFZCGFZABCHI
      ZJIZABJIZACJIZKIZSZVLVJVKVRVJVKUBZABDUCZHIZJIZVOAVTJIZKIZSZLVSABMHIZJIZVO
      AMJIZKIZSZLVSABUAUCZHIZJIZVOAWKJIZKIZSZLVSABWKNHIZHIZJIZVOAWQJIZKIZSZLVSV
      RLDUACVTMSZWEWJVSXCWBWGWDWIXCWAWFAJVTMBHOPXCWCWHVOKVTMAJOPQRVTWKSZWEWPVSX
      DWBWMWDWOXDWAWLAJVTWKBHOPXDWCWNVOKVTWKAJOPQRVTWQSZWEXBVSXEWBWSWDXAXEWAWRA
      JVTWQBHOPXEWCWTVOKVTWQAJOPQRVTCSZWEVRVSXFWBVNWDVQXFWAVMAJVTCBHOPXFWCVPVOK
      VTCAJOPQRVSWGVONKIZWIVSWGVOXGVSWFBAJVKWFBSVJVKBBUDZUEUFPVSVOABUGZUHTVSWHN
      VOKVJWHNSVKAUIUJPTWKGFZVSWPXBVSXJWPXBLWPXBVSXJUBZWMAKIZWOAKIZSWMWOAKUKXKW
      SXLXAXMXKAWLNHIZJIZWSXLXKXNWRAJVKXJXNWRSZVJVKBEFZWKEFZXPXJXHWKUDXQXRNEFXP
      ULBWKNUMUNUOUPPXKVJWLGFZXOXLSVJVKXJUQZVKXJXSVJBWKURUPAWLUSUTVBXKXAVOWNAKI
      ZKIXMXKWTYAVOKVJXJWTYASVKAWKUSVAPXKVOWNAVSVOEFXJXIUJVJXJWNEFVKAWKUGVAXTVC
      TQVDVEVFVGVHVI $.

    $( Lemma for ~ expaddzap .  (Contributed by Jim Kingdon, 10-Jun-2020.) $)
    expaddzaplem $p |- ( ( ( A e. CC /\ A # 0 ) /\
                       ( M e. RR /\ -u M e. NN ) /\ N e. NN0 ) ->
                       ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
      ( cc wcel wa cn0 cexp co cdiv c1 cmul caddc cz syl3anc wceq adantr eqtr3d
      eqtrd oveq1d cc0 cap wbr cr cneg cn w3a simp1l simp3 expcl syl2anc simp2r
      nnnn0d simp1r expap0i divrecap2d simp2l recnd negnegd nnnegz syl eqeltrrd
      nnzd nn0zd zaddcld expclzap divcanap4d expadd cmin negsubd nn0cnd pncan2d
      simpr oveq2d expineg2 syl22anc znegcld negdi2d negcld npcand recdivapd wo
      zcnd elznn0 simprbi mpjaodan 3eqtr4d ) ADEZAUAUBUCZFZBUDEZBUEZUFEZFZCGEZU
      GZACHIZAWLHIZJIZKWRJIZWQLIABCMIZHIZABHIZWQLIWPWQWRWPWHWOWQDEZWHWIWNWOUHZW
      JWNWOUIZACUJUKZWPWHWLGEZWRDEZXEWPWLWJWKWMWOULZUMZAWLUJUKZWPWHWIWLNEWRUAUB
      UCZXEWHWIWNWOUNZWPWLXJVCAWLUOOZUPWPXAGEZXBWSPXAUEZGEZWPXPFZXBWRLIZWRJIXBW
      SXSXBWRWPXBDEZXPWPWHWIXANEZYAXEXNWPBCWPWLUEZBNWPBWPBWJWKWMWOUQURZUSWPWMYC
      NEXJWLUTVAVBWPCXFVDZVEZAXAVFOQWPXIXPXLQWPXMXPXOQVGXSXTWQWRJXSAXAWLMIZHIZX
      TWQXSWHXPXHYHXTPWPWHXPXEQWPXPVMWPXHXPXKQAXAWLVHOXSYGCAHWPYGCPXPWPYGXABVII
      CWPXABWPXAYFWCZYDVJWPBCYDWPCXFVKZVLSQVNRTRWPXRFZXBKAXQHIZJIZWSYKWHWIXADEZ
      XRXBYMPWPWHXRXEQZWPWIXRXNQWPYNXRYIQWPXRVMZAXAVOVPYKYMKWRWQJIZJIZWSYKYLYQK
      JYKYLWQLIZWQJIYLYQYKYLWQWPYLDEZXRWPWHWIXQNEYTXEXNWPXAYFVQAXQVFOQWPXDXRXGQ
      WPWQUAUBUCZXRWPWHWICNEUUAXEXNYEACUOOZQVGYKYSWRWQJYKAXQCMIZHIZYSWRYKWHXRWO
      UUDYSPYOYPWPWOXRXFQAXQCVHOYKUUCWLAHWPUUCWLPXRWPUUCWLCVIIZCMIWLWPXQUUECMWP
      BCYDYJVRTWPWLCWPBYDVSYJVTSQVNRTRVNWPYRWSPXRWPWRWQXLXGXOUUBWAQSSWPYBXPXRWB
      ZYFYBXAUDEUUFXAWDWEVAWFWPXCWTWQLWPWHWIBDEXHXCWTPXEXNYDXKABVOVPTWG $.

    $( Sum of exponents law for integer exponentiation.  (Contributed by Jim
       Kingdon, 10-Jun-2020.) $)
    expaddzap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
                  ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
      ( cc wcel cc0 cap wa cz co cexp cmul wceq cn0 cneg 3expia syl3anc c1 cdiv
      syl22anc wbr caddc cr cn wo elznn0nn wi expadd adantlr expaddzaplem simp3
      jaodan w3a nn0cnd simp2l recnd addcomd oveq2d simp1l expcl syl2anc simp1r
      negnegd simp2r nnnn0d nn0negz syl eqeltrrd expclzap mulcomd simp3l negdid
      3eqtr4d impancom simp3r eqtrd 1t1e1 oveq1i syl6eqr expap0i ax-1cn mpanl12
      divmuldivap eqtr4d addcld nn0addcld eqeltrd expineg2 oveq12d jaod sylan2b
      nn0zd syl5bi impr ) ADEZAFGUAZHZBIEZCIEZABCUBJZKJZABKJZACKJZLJZMZWSCNEZCU
      CEZCOZUDEZHZUEZWQWRHXECUFWRWQBNEZBUCEZBOZUDEZHZUEZXKXEUGBUFWQXQHXFXEXJWQX
      LXFXEUGZXPWOXLXRWPWOXLXFXEABCUHPUIWQXPXFXEABCUJPULWQXLXJXEUGXPWQXJXLXEWQX
      JXLXEWQXJXLUMZACBUBJZKJXCXBLJXAXDACBUJXSWTXTAKXSBCXSBWQXJXLUKZUNXSCWQXGXI
      XLUOUPZUQURXSXBXCXSWOXLXBDEWOWPXJXLUSZYAABUTVAXSWOWPWSXCDEYCWOWPXJXLVBXSX
      HOZCIXSCYBVCXSXHNEZYDIEXSXHWQXGXIXLVDVEXHVFVGVHACVIQVJVMPVNWQXPXJXEWQXPXJ
      UMZRAWTOZKJZSJZRAXNKJZSJZRAXHKJZSJZLJZXAXDYFYIRRLJZYJYLLJZSJZYNYFYIRYPSJY
      QYFYHYPRSYFYHAXNXHUBJZKJZYPYFYGYRAKYFBCYFBWQXMXOXJUOUPZYFCWQXPXGXIVKUPZVL
      ZURYFWOXNNEZYEYSYPMWOWPXPXJUSZYFXNWQXMXOXJVDVEZYFXHWQXPXGXIVOVEZAXNXHUHQV
      PURYORYPSVQVRVSYFYJDEZYJFGUAZYLDEZYLFGUAZYNYQMZYFWOUUCUUGUUDUUEAXNUTVAYFW
      OWPXNIEUUHUUDWOWPXPXJVBZYFXNUUEWLAXNVTQYFWOYEUUIUUDUUFAXHUTVAYFWOWPXHIEUU
      JUUDUULYFXHUUFWLAXHVTQRDEZUUMUUGUUHHUUIUUJHHUUKWAWARRYJYLWCWBTWDYFWOWPWTD
      EYGNEXAYIMUUDUULYFBCYTUUAWEYFYGYRNUUBYFXNXHUUEUUFWFWGAWTWHTYFXBYKXCYMLYFW
      OWPBDEUUCXBYKMUUDUULYTUUEABWHTYFWOWPCDEYEXCYMMUUDUULUUAUUFACWHTWIVMPULWJW
      KWMWN $.

    $( Product of exponents law for positive integer exponentiation.
       Proposition 10-4.2(b) of [Gleason] p. 135, restricted to nonnegative
       integer exponents.  (Contributed by NM, 4-Jan-2006.) $)
    expmul $p |- ( ( A e. CC /\ M e. NN0 /\ N e. NN0 ) ->
               ( A ^ ( M x. N ) ) = ( ( A ^ M ) ^ N ) ) $=
      ( vj cc wcel cn0 cmul co cexp wceq wa wi cc0 c1 caddc oveq2 oveq2d imbi2d
      eqeq12d vk cv nn0cn mul01d exp0 sylan9eqr expcl eqtr4d oveq1 ax-1cn adddi
      mp3an3 mulid1 adantr syl2an adantll simpll nn0mulcl simplr expadd syl3anc
      syl eqtrd expp1 sylan syl5ibr expcom a2d nn0ind expdcom 3imp ) AEFZBGFZCG
      FZABCHIZJIZABJIZCJIZKZVNVLVMVSVLVMLZABDUBZHIZJIZVQWAJIZKZMVTABNHIZJIZVQNJ
      IZKZMVTABUAUBZHIZJIZVQWJJIZKZMVTABWJOPIZHIZJIZVQWOJIZKZMVTVSMDUACWANKZWEW
      IVTWTWCWGWDWHWTWBWFAJWANBHQRWANVQJQTSWAWJKZWEWNVTXAWCWLWDWMXAWBWKAJWAWJBH
      QRWAWJVQJQTSWAWOKZWEWSVTXBWCWQWDWRXBWBWPAJWAWOBHQRWAWOVQJQTSWACKZWEVSVTXC
      WCVPWDVRXCWBVOAJWACBHQRWACVQJQTSVTWGOWHVMVLWGANJIOVMWFNAJVMBBUCZUDRAUEUFV
      TVQEFZWHOKABUGZVQUEVBUHWJGFZVTWNWSVTXGWNWSMWNWSVTXGLZWLVQHIZWMVQHIZKWLWMV
      QHUIXHWQXIWRXJXHWQAWKBPIZJIZXIXHWPXKAJVMXGWPXKKZVLVMBEFZWJEFZXMXGXDWJUCXN
      XOLZWPWKBOHIZPIZXKXNXOOEFWPXRKUJBWJOUKULXPXQBWKPXNXQBKXOBUMUNRVCUOUPRXHVL
      WKGFZVMXLXIKVLVMXGUQVMXGXSVLBWJURUPVLVMXGUSAWKBUTVAVCVTXEXGWRXJKXFVQWJVDV
      ETVFVGVHVIVJVK $.

    $( Product of exponents law for integer exponentiation.  (Contributed by
       Jim Kingdon, 11-Jun-2020.) $)
    expmulzap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
        ( A ^ ( M x. N ) ) = ( ( A ^ M ) ^ N ) ) $=
      ( cc wcel cc0 cap wbr wa cz cmul co cexp wceq cn0 c1 cdiv oveq2d syl22anc
      syl3anc cr cn wo elznn0nn wi expmul 3expia adantlr w3a simp2l recnd simp3
      cneg nn0cnd simp1l simp2r nnnn0d eqtr3d expcl syl2anc simp1r nnzd expap0i
      mulneg1d nn0zd exprecap eqtr4d mulcld nn0mulcld eqeltrrd expineg2 3eqtr4d
      oveq1d jaodan simp3l mulneg2d recclapd recap0d recrecapd mul2negd 3eqtrrd
      simp2 simp3r 3eqtrd jaod sylan2b syl5bi impr ) ADEZAFGHZIZBJEZCJEZABCKLZM
      LZABMLZCMLZNZWMCOEZCUAEZCUMZUBEZIZUCZWKWLIWRCUDWLWKBOEZBUAEZBUMZUBEZIZUCZ
      XDWRUEBUDWKXJIWSWRXCWKXEWSWRUEZXIWIXEXKWJWIXEWSWRABCUFUGUHWKXIWSWRWKXIWSU
      IZPAWNUMZMLZQLZPAXGMLZQLZCMLZWOWQXLXOPXPCMLZQLZXRXLXNXSPQXLAXGCKLZMLZXNXS
      XLYAXMAMXLBCXLBWKXFXHWSUJUKZXLCWKXIWSULZUNZVDZRXLWIXGOEZWSYBXSNWIWJXIWSUO
      ZXLXGWKXFXHWSUPZUQZYDAXGCUFTURRXLXPDEZXPFGHZWMXRXTNXLWIYGYKYHYJAXGUSZUTXL
      WIWJXGJEZYLYHWIWJXIWSVAZXLXGYIVBAXGVCZTXLCYDVEXPCVFTVGXLWIWJWNDEZXMOEZWOX
      ONZYHYOXLBCYCYEVHXLYAXMOYFXLXGCYJYDVIVJAWNVKZSXLWPXQCMXLWIWJBDEZYGWPXQNZY
      HYOYCYJABVKZSVMVLUGVNWKXEXCWRUEXIWKXEXCWRWKXEXCUIZXOPWPXAMLZQLZWOWQUUDXNU
      UEPQUUDABXAKLZMLZXNUUEUUDUUGXMAMUUDBCUUDBWKXEXCWBZUNZUUDCWKXEWTXBVOUKZVPZ
      RUUDWIXEXAOEZUUHUUENWIWJXEXCUOZUUIUUDXAWKXEWTXBWCUQZABXAUFTURRUUDWIWJYQYR
      YSUUNWIWJXEXCVAZUUDBCUUJUUKVHUUDUUGXMOUULUUDBXAUUIUUOVIVJYTSUUDWPDEZWPFGH
      ZCDEZUUMWQUUFNUUDWIXEUUQUUNUUIABUSUTUUDWIWJWLUURUUNUUPUUDBUUIVEABVCTUUKUU
      OWPCVKSVLUGWKXIXCWRWKXIXCUIZWQXRPXQXAMLZQLZWOUUTWPXQCMUUTWIWJUUAYGUUBWIWJ
      XIXCUOZWIWJXIXCVAZUUTBWKXFXHXCUJUKZUUTXGWKXFXHXCUPZUQZUUCSVMUUTXQDEXQFGHU
      USUUMXRUVBNUUTXPUUTWIYGYKUVCUVGYMUTZUUTWIWJYNYLUVCUVDUUTXGUVFVBYPTZVQUUTX
      PUVHUVIVRUUTCWKXIWTXBVOUKZUUTXAWKXIWTXBWCZUQZXQCVKSUUTUVBPPXPXAMLZQLZQLUV
      MWOUUTUVAUVNPQUUTYKYLXAJEZUVAUVNNUVHUVIUUTXAUVKVBZXPXAVFTRUUTUVMUUTYKUUMU
      VMDEUVHUVLXPXAUSUTUUTYKYLUVOUVMFGHUVHUVIUVPXPXAVCTVSUUTAXGXAKLZMLZUVMWOUU
      TWIYGUUMUVRUVMNUVCUVGUVLAXGXAUFTUUTUVQWNAMUUTBCUVEUVJVTRURWDWAUGVNWEWFWGW
      H $.
  $}

  $( Exponent subtraction law for nonnegative integer exponentiation.
     (Contributed by Jim Kingdon, 11-Jun-2020.) $)
  expsubap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
      ( A ^ ( M - N ) ) = ( ( A ^ M ) / ( A ^ N ) ) ) $=
    ( cc wcel cc0 cap wbr wa cz co cexp cmul cdiv wceq zcn oveq2d 3expa adantrl
    expclzap cneg caddc znegcl expaddzap sylanr2 negsub syl2an adantl expnegzap
    cmin c1 adantrr expap0i divrecapd eqtr4d 3eqtr3d ) ADEZAFGHZIZBJEZCJEZIZIZA
    BCUAZUBKZLKZABLKZAVDLKZMKZABCUJKZLKVGACLKZNKZVAUSUTVDJEVFVIOCUCABVDUDUEVCVE
    VJALVBVEVJOZUSUTBDECDEVMVABPCPBCUFUGUHQVCVIVGUKVKNKZMKVLVCVHVNVGMUSVAVHVNOZ
    UTUQURVAVOACUIRSQVCVGVKUSUTVGDEZVAUQURUTVPABTRULUSVAVKDEZUTUQURVAVQACTRSUSV
    AVKFGHZUTUQURVAVRACUMRSUNUOUP $.

  $( Value of a nonzero complex number raised to an integer power plus one.
     (Contributed by Jim Kingdon, 11-Jun-2020.) $)
  expp1zap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ ( N + 1 ) ) =
      ( ( A ^ N ) x. A ) ) $=
    ( cc wcel cc0 cap wbr cz w3a c1 caddc co cexp cmul wceq wa expaddzap mpanr2
    1z 3impa exp1 3ad2ant1 oveq2d eqtrd ) ACDZAEFGZBHDZIZABJKLMLZABMLZAJMLZNLZU
    JANLUEUFUGUIULOZUEUFPUGJHDUMSABJQRTUHUKAUJNUEUFUKAOUGAUAUBUCUD $.

  $( Value of a complex number raised to an integer power minus one.
     (Contributed by Jim Kingdon, 11-Jun-2020.) $)
  expm1ap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ ( N - 1 ) ) =
      ( ( A ^ N ) / A ) ) $=
    ( cc wcel cc0 cap wbr cz w3a c1 cmin co cexp cdiv wceq wa 1z expsubap 3impa
    mpanr2 exp1 3ad2ant1 oveq2d eqtrd ) ACDZAEFGZBHDZIZABJKLMLZABMLZAJMLZNLZUJA
    NLUEUFUGUIULOZUEUFPUGJHDUMQABJRTSUHUKAUJNUEUFUKAOUGAUAUBUCUD $.

  $( Nonnegative integer exponentiation of a quotient.  (Contributed by Jim
     Kingdon, 11-Jun-2020.) $)
  expdivap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ N e. NN0 ) ->
      ( ( A / B ) ^ N ) = ( ( A ^ N ) / ( B ^ N ) ) ) $=
    ( cc wcel cc0 cap wbr wa cn0 w3a cdiv co cexp c1 cmul wceq divrecap syl3anc
    expcl 3expb 3adant3 oveq1d recclap mulexp syl3an2 cz simp2l simp2r 3ad2ant3
    exprecap oveq2d 3adant2 adantlr 3adant1 expap0i divrecapd eqtr4d 3eqtrd
    nn0z ) ADEZBDEZBFGHZIZCJEZKZABLMZCNMAOBLMZPMZCNMZACNMZVHCNMZPMZVKBCNMZLMZVF
    VGVICNVAVDVGVIQZVEVAVBVCVPABRUAUBUCVDVAVHDEVEVJVMQBUDAVHCUEUFVFVMVKOVNLMZPM
    VOVFVLVQVKPVFVBVCCUGEZVLVQQVAVBVCVEUHZVAVBVCVEUIZVEVAVRVDCUTUJZBCUKSULVFVKV
    NVAVEVKDEVDACTUMVDVEVNDEZVAVBVEWBVCBCTUNUOVFVBVCVRVNFGHVSVTWABCUPSUQURUS $.

  $( Ordering relationship for exponentiation.  (Contributed by NM,
     2-Aug-2006.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
  ltexp2a $p |- ( ( ( A e. RR /\ M e. ZZ /\ N e. ZZ ) /\
             ( 1 < A /\ M < N ) ) -> ( A ^ M ) < ( A ^ N ) ) $=
    ( cr wcel cz w3a c1 clt wbr wa cexp co cmul crp rpexpcl syl2anc rpred recnd
    cc0 simpl1 0red 1red 0lt1 a1i simprl lttrd elrpd simpl2 mulid2d cdiv simprr
    cmin cn wb simpl3 znnsub mpbid expgt1 syl3anc cc cap wceq expsubap syl22anc
    gt0ap0d breqtrd ltmuldivd mpbird eqbrtrrd ) ADEZBFEZCFEZGZHAIJZBCIJZKZKZHAB
    LMZNMZVSACLMZIVRVSVRVSVRVSVRAOEZVLVSOEVRAVKVLVMVQUAZVRTHAVRUBVRUCZWCTHIJVRU
    DUEVNVOVPUFZUGZUHZVKVLVMVQUIZABPQZRSUJVRVTWAIJHWAVSUKMZIJVRHACBUMMZLMZWJIVR
    VKWKUNEZVOHWLIJWCVRVPWMVNVOVPULVRVLVMVPWMUOWHVKVLVMVQUPZBCUQQURWEAWKUSUTVRA
    VAEATVBJVMVLWLWJVCVRAWCSVRAWCWFVFWNWHACBVDVEVGVRHWAVSWDVRWAVRWBVMWAOEWGWNAC
    PQRWIVHVIVJ $.

  $( Weak ordering relationship for exponentiation.  (Contributed by NM,
     14-Dec-2005.)  (Revised by Mario Carneiro, 5-Jun-2014.) $)
  leexp2a $p |- ( ( A e. RR /\ 1 <_ A /\ N e. ( ZZ>= ` M ) ) ->
                   ( A ^ M ) <_ ( A ^ N ) ) $=
    ( cr wcel c1 cle wbr cuz cfv cexp co crp cc0 3ad2ant3 rpexpcl syl2anc rpred
    cz recnd w3a cmul simp1 0red 1red clt 0lt1 simp2 ltletrd elrpd eluzel2 cdiv
    a1i mulid2d cmin cn0 uznn0sub expge1 syl3anc wceq gt0ap0d expsubap syl22anc
    cc cap eluzelz breqtrd lemuldivd mpbird eqbrtrrd ) ADEZFAGHZCBIJEZUAZFABKLZ
    UBLZVOACKLZGVNVOVNVOVNVOVNAMEZBSEZVOMEVNAVKVLVMUCZVNNFAVNUDVNUEZVTNFUFHVNUG
    UMVKVLVMUHZUIZUJZVMVKVSVLBCUKOZABPQZRTUNVNVPVQGHFVQVOULLZGHVNFACBUOLZKLZWGG
    VNVKWHUPEZVLFWIGHVTVMVKWJVLBCUQOWBAWHURUSVNAVDEANVEHCSEZVSWIWGUTVNAVTTVNAVT
    WCVAVMVKWKVLBCVFOZWEACBVBVCVGVNFVQVOWAVNVQVNVRWKVQMEWDWLACPQRWFVHVIVJ $.

  ${
    $d j k A $.  $d j k B $.  $d j k M $.  $d j k N $.
    $( Weak ordering relationship for exponentiation.  (Contributed by Paul
       Chapman, 14-Jan-2008.)  (Revised by Mario Carneiro, 29-Apr-2014.) $)
    leexp2r $p |- ( ( ( A e. RR /\ M e. NN0 /\ N e. ( ZZ>= ` M ) ) /\
                        ( 0 <_ A /\ A <_ 1 ) ) ->
                      ( A ^ N ) <_ ( A ^ M ) ) $=
      ( vj cr wcel cn0 cle wbr c1 wa cexp co wceq breq1d imbi2d reexpcl syl2anc
      wi oveq2 vk cuz cfv w3a cc0 cv caddc cz adantr leidd cmul simprll simprlr
      1red simpl eluznn0 simprrl expge0 syl3anc simprrr lemul2ad cc recnd expp1
      a1i mulid1d eqcomd 3brtr4d peano2nn0 syl ad2antrl letr ex a2d uzind4 expd
      mpand com12 3impia imp ) AEFZBGFZCBUBUCZFZUDUEAHIZAJHIZKZACLMZABLMZHIZWAW
      BWDWGWJSZWDWAWBKZWKWDWLWGWJWLWGKZADUFZLMZWIHIZSWMWIWIHIZSZWMAUAUFZLMZWIHI
      ZSWMAWSJUGMZLMZWIHIZSWMWJSDUABCWNBNZWPWQWMXEWOWIWIHWNBALTOPWNWSNZWPXAWMXF
      WOWTWIHWNWSALTOPWNXBNZWPXDWMXGWOXCWIHWNXBALTOPWNCNZWPWJWMXHWOWHWIHWNCALTO
      PWRBUHFWMWIWLWIEFZWGABQZUIUJVEWSWCFZWMXAXDXKWMXAXDSXKWMKZXCWTHIZXAXDXLWTA
      UKMZWTJUKMZXCWTHXLAJWTXKWAWBWGULZXLUNXLWAWSGFZWTEFZXPXLWBXKXQXKWAWBWGUMXK
      WMUOWSBUPRZAWSQRZXLWAXQWEUEWTHIXPXSXKWLWEWFUQAWSURUSXKWLWEWFUTVAXLAVBFXQX
      CXNNXLAXPVCXSAWSVDRXLXOWTXLWTXLWTXTVCVFVGVHXLXCEFZXRXIXMXAKXDSXLWAXBGFZYA
      XPXLXQYBXSWSVIVJAXBQRXTWLXIXKWGXJVKXCWTWIVLUSVQVMVNVOVPVRVSVT $.

    $( Weak mantissa ordering relationship for exponentiation.  (Contributed by
       NM, 18-Dec-2005.) $)
    leexp1a $p |- ( ( ( A e. RR /\ B e. RR /\ N e. NN0 ) /\
               ( 0 <_ A /\ A <_ B ) ) -> ( A ^ N ) <_ ( B ^ N ) ) $=
      ( cr wcel cc0 cle wa cexp co wi c1 wceq oveq2 breq12d imbi2d adantr sylan
      wbr adantlr vj vk cn0 cv caddc cc recn exp0 1le1 syl6eqbr adantl breqtrrd
      syl2an simpll reexpcl simplll simpr simplrl expge0 syl3anc simplr anim12i
      cmul jca31 simpl simpllr jca32 simplrr jca lemul12a expp1 adantll 3brtr4d
      sylc ex expcom a2d nn0ind exp4c com3l 3imp1 ) ADEZBDEZCUCEZFAGSZABGSZHZAC
      IJZBCIJZGSZWDWBWCWGWJKWDWBWCWGWJWBWCHZWGHZAUAUDZIJZBWMIJZGSZKWLAFIJZBFIJZ
      GSZKWLAUBUDZIJZBWTIJZGSZKWLAWTLUEJZIJZBXDIJZGSZKWLWJKUAUBCWMFMZWPWSWLXHWN
      WQWOWRGWMFAINWMFBINOPWMWTMZWPXCWLXIWNXAWOXBGWMWTAINWMWTBINOPWMXDMZWPXGWLX
      JWNXEWOXFGWMXDAINWMXDBINOPWMCMZWPWJWLXKWNWHWOWIGWMCAINWMCBINOPWKWSWGWBAUF
      EZBUFEZWSWCAUGZBUGZXLXMHZWQLWRGXPWQLLGXLWQLMXMAUHQUIUJXMWRLMXLBUHUKULUMQW
      TUCEZWLXCXGWLXQXCXGKWLXQHZXCXGXRXCHZXAAVCJZXBBVCJZXEXFGXSXADEZFXAGSZHXBDE
      ZHZWBWEHZWCHHZXCWFHXTYAGSXRYGXCXRYEYFWCXRYBYCYDWLWBXQYBWBWCWGUNAWTUORXRWB
      XQWEYCWBWCWGXQUPWLXQUQWKWEWFXQURAWTUSUTWLWCXQYDWBWCWGVABWTUORVDWLYFXQWKWB
      WGWEWBWCVEWEWFVEVBQWBWCWGXQVFVGQXSXCWFXRXCUQXRWFXCWKWEWFXQVHQVIXAXBABVJVN
      XRXEXTMZXCWKXQYHWGWBXQYHWCWBXLXQYHXNAWTVKRTTQXRXFYAMZXCWKXQYIWGWCXQYIWBWC
      XMXQYIXOBWTVKRVLTQVMVOVPVQVRVSVTWA $.
  $}

  $( Nonnegative integer exponentiation with a mantissa between 0 and 1
     inclusive is less than or equal to 1.  (Contributed by Paul Chapman,
     29-Dec-2007.)  (Revised by Mario Carneiro, 5-Jun-2014.) $)
  exple1 $p |- ( ( ( A e. RR /\ 0 <_ A /\ A <_ 1 ) /\ N e. NN0 ) ->
                  ( A ^ N ) <_ 1 ) $=
    ( cr wcel cc0 cle wbr c1 w3a cn0 wa cexp co cuz cfv simpl1 0nn0 simpr nn0uz
    a1i syl6eleq simpl2 simpl3 leexp2r syl32anc cc wceq recnd exp0 syl breqtrd
    ) ACDZEAFGZAHFGZIZBJDZKZABLMZAELMZHFUQULEJDZBENOZDUMUNURUSFGULUMUNUPPZUTUQQ
    TUQBJVAUOUPRSUAULUMUNUPUBULUMUNUPUCAEBUDUEUQAUFDUSHUGUQAVBUHAUIUJUK $.

  $( An upper bound on ` A ^ N ` when ` 2 <_ A ` .  (Contributed by NM,
     19-Dec-2005.) $)
  expubnd $p |- ( ( A e. RR /\ N e. NN0 /\ 2 <_ A ) ->
                  ( A ^ N ) <_ ( ( 2 ^ N ) x. ( ( A - 1 ) ^ N ) ) ) $=
    ( cr wcel c2 cle wbr cexp co c1 cmin cmul cc0 wa 2re caddc mp3an1 wceq 2cn
    cc cn0 w3a simp1 peano2rem remulcl sylancr 3ad2ant1 simp2 0le2 letr mp3an12
    wi 0re mpani wb resubcl mpan2 leadd2 mpdan biimpa recn npcan sylancl adantr
    imp ax-1cn subdi mp3an13 2times 2t1e2 a1i oveq12d addsub mp3an3 3eqtrrd syl
    anidms 3brtr3d 3adant2 leexp1a syl31anc recnd mulexp sylan 3adant3 breqtrd
    jca ) ACDZBUADZEAFGZUBZABHIZEAJKIZLIZBHIZEBHIWMBHILIZFWKWHWNCDZWIMAFGZAWNFG
    ZNZWLWOFGWHWIWJUCWHWIWQWJWHECDZWMCDWQOAUDZEWMUEUFUGWHWIWJUHWHWJWTWIWHWJNZWR
    WSWHWJWRWHMEFGZWJWRUIMCDXAWHXDWJNWRULUMOMEAUJUKUNVEXCAEKIZEPIZXEAPIZAWNFWHW
    JXFXGFGZWHXECDZWJXHUOZWHXAXIOAEUPUQXAWHXIXJOEAXEURQUSUTWHXFARZWJWHATDZETDZX
    KAVAZSAEVBVCVDWHXGWNRZWJWHXLXOXNXLWNEALIZEJLIZKIZAAPIZEKIZXGXMXLJTDWNXRRSVF
    EAJVGVHXLXPXSXQEKAVIXQERXLVJVKVLXLXTXGRZXLXLXMYASAAEVMVNVQVOVPVDVRWGVSAWNBV
    TWAWHWIWOWPRZWJWHWMTDZWIYBWHWMXBWBXMYCWIYBSEWMBWCQWDWEWF $.

  $( Value of the square of a complex number.  (Contributed by Raph Levien,
     10-Apr-2004.) $)
  sqval $p |- ( A e. CC -> ( A ^ 2 ) = ( A x. A ) ) $=
    ( cc wcel c2 cexp co c1 cmul caddc df-2 oveq2i wceq 1nn0 expp1 mpan2 syl5eq
    cn0 exp1 oveq1d eqtrd ) ABCZADEFZAGEFZAHFZAAHFUAUBAGGIFZEFZUDDUEAEJKUAGQCUF
    UDLMAGNOPUAUCAAHARST $.

  $( The square of the negative of a number.)  (Contributed by NM,
     15-Jan-2006.) $)
  sqneg $p |- ( A e. CC -> ( -u A ^ 2 ) = ( A ^ 2 ) ) $=
    ( cc wcel cneg cmul co c2 cexp wceq mul2neg anidms negcl sqval syl 3eqtr4d
    ) ABCZADZQEFZAAEFZQGHFZAGHFPRSIAAJKPQBCTRIALQMNAMO $.

  $( Swap the order of subtraction in a square.  (Contributed by Scott Fenton,
     10-Jun-2013.) $)
  sqsubswap $p |- ( ( A e. CC /\ B e. CC ) ->
             ( ( A - B ) ^ 2 ) = ( ( B - A ) ^ 2 ) ) $=
    ( cc wcel wa cmin co cneg cexp wceq subcl sqneg syl negsubdi2 oveq1d eqtr3d
    c2 ) ACDBCDEZABFGZHZQIGZSQIGZBAFGZQIGRSCDUAUBJABKSLMRTUCQIABNOP $.

  $( Closure of square.  (Contributed by NM, 10-Aug-1999.) $)
  sqcl $p |- ( A e. CC -> ( A ^ 2 ) e. CC ) $=
    ( cc wcel c2 cexp co cmul sqval mulcl anidms eqeltrd ) ABCZADEFAAGFZBAHLMBC
    AAIJK $.

  $( Distribution of square over multiplication.  (Contributed by NM,
     21-Mar-2008.) $)
  sqmul $p |- ( ( A e. CC /\ B e. CC ) ->
             ( ( A x. B ) ^ 2 ) = ( ( A ^ 2 ) x. ( B ^ 2 ) ) ) $=
    ( cc wcel c2 cn0 cmul co cexp wceq 2nn0 mulexp mp3an3 ) ACDBCDEFDABGHEIHAEI
    HBEIHGHJKABELM $.

  $( A number is zero iff its square is zero.  (Contributed by NM,
     11-Mar-2006.) $)
  sqeq0 $p |- ( A e. CC -> ( ( A ^ 2 ) = 0 <-> A = 0 ) ) $=
    ( cc wcel c2 cn cexp co cc0 wceq wb 2nn expeq0 mpan2 ) ABCDECADFGHIAHIJKADL
    M $.

  $( Distribution of square over division.  (Contributed by Jim Kingdon,
     11-Jun-2020.) $)
  sqdivap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) ) $=
    ( cc wcel cc0 cap wbr cdiv co cmul c2 cexp wa wceq simp1 3simpc divmuldivap
    w3a syl22anc sqval divclap syl oveqan12d 3adant3 3eqtr4d ) ACDZBCDZBEFGZRZA
    BHIZUJJIZAAJIZBBJIZHIZUJKLIZAKLIZBKLIZHIZUIUFUFUGUHMZUSUKUNNUFUGUHOZUTUFUGU
    HPZVAAABBQSUIUJCDUOUKNABUAUJTUBUFUGURUNNUHUFUGUPULUQUMHATBTUCUDUE $.

  $( A number is nonzero iff its square is nonzero.  (Contributed by NM,
     11-Mar-2006.) $)
  sqne0 $p |- ( A e. CC -> ( ( A ^ 2 ) =/= 0 <-> A =/= 0 ) ) $=
    ( cc wcel c2 cexp co cc0 sqeq0 necon3bid ) ABCADEFGAGAHI $.

  $( Closure of the square of a real number.  (Contributed by NM,
     18-Oct-1999.) $)
  resqcl $p |- ( A e. RR -> ( A ^ 2 ) e. RR ) $=
    ( cr wcel c2 cn0 cexp co 2nn0 reexpcl mpan2 ) ABCDECADFGBCHADIJ $.

  $( The square of a nonzero real is positive.  (Contributed by Jim Kingdon,
     11-Jun-2020.) $)
  sqgt0ap $p |- ( ( A e. RR /\ A # 0 ) -> 0 < ( A ^ 2 ) ) $=
    ( cr wcel cc0 cap wbr wa cmul co c2 cexp clt apsqgt0 wceq cc recn sqval syl
    adantr breqtrrd ) ABCZADEFZGDAAHIZAJKIZLAMUAUDUCNZUBUAAOCUEAPAQRST $.

  $( The naturals are closed under squaring.  (Contributed by Scott Fenton,
     29-Mar-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  nnsqcl $p |- ( A e. NN -> ( A ^ 2 ) e. NN ) $=
    ( cn wcel c2 cexp co cmul cc wceq nncn sqval syl nnmulcl anidms eqeltrd ) A
    BCZADEFZAAGFZBPAHCQRIAJAKLPRBCAAMNO $.

  $( Integers are closed under squaring.  (Contributed by Scott Fenton,
     18-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  zsqcl $p |- ( A e. ZZ -> ( A ^ 2 ) e. ZZ ) $=
    ( cz wcel c2 cn0 cexp co 2nn0 zexpcl mpan2 ) ABCDECADFGBCHADIJ $.

  $( The square of a rational is rational.  (Contributed by Stefan O'Rear,
     15-Sep-2014.) $)
  qsqcl $p |- ( A e. QQ -> ( A ^ 2 ) e. QQ ) $=
    ( cq wcel c2 cexp co cmul cc wceq qcn sqval syl qmulcl anidms eqeltrd ) ABC
    ZADEFZAAGFZBPAHCQRIAJAKLPRBCAAMNO $.

  $( The square function is one-to-one for nonnegative reals.  (Contributed by
     NM, 8-Apr-2001.)  (Proof shortened by Mario Carneiro, 28-May-2016.) $)
  sq11 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
               ( ( A ^ 2 ) = ( B ^ 2 ) <-> A = B ) ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp co wceq cc simpl recnd sqval syl eqeqan12d
    cmul msq11 bitrd ) ACDZEAFGZHZBCDZEBFGZHZHAIJKZBIJKZLAASKZBBSKZLABLUDUGUHUJ
    UIUKUDAMDUHUJLUDAUBUCNOAPQUGBMDUIUKLUGBUEUFNOBPQRABTUA $.

  $( The square function on nonnegative reals is strictly monotonic.
     (Contributed by NM, 24-Feb-2006.) $)
  lt2sq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( A < B <-> ( A ^ 2 ) < ( B ^ 2 ) ) ) $=
    ( cr wcel cc0 cle wbr wa clt cmul co c2 cexp lt2msq wb recn sqval breqan12d
    cc syl2an ad2ant2r bitr4d ) ACDZEAFGZHBCDZEBFGZHHABIGAAJKZBBJKZIGZALMKZBLMK
    ZIGZABNUCUEULUIOZUDUFUCASDZBSDZUMUEAPBPUNUOUJUGUKUHIAQBQRTUAUB $.

  $( The square function on nonnegative reals is monotonic.  (Contributed by
     NM, 18-Oct-1999.) $)
  le2sq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( A <_ B <-> ( A ^ 2 ) <_ ( B ^ 2 ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co c2 cexp le2msq wb cc recn breqan12d syl2an
    sqval ad2ant2r bitr4d ) ACDZEAFGZHBCDZEBFGZHHABFGAAIJZBBIJZFGZAKLJZBKLJZFGZ
    ABMUBUDUKUHNZUCUEUBAODZBODZULUDAPBPUMUNUIUFUJUGFASBSQRTUA $.

  $( The square of a 'less than or equal to' ordering.  (Contributed by NM,
     21-Mar-2008.) $)
  le2sq2 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ A <_ B ) ) ->
              ( A ^ 2 ) <_ ( B ^ 2 ) ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp co simprr wb simprl 0re mp3an1 exp4b com23
    wi letr imp43 jca le2sq syldan mpbid ) ACDZEAFGZHZBCDZABFGZHZHZUJAIJKBIJKFG
    ZUHUIUJLUHUKUIEBFGZHUJUMMULUIUNUHUIUJNUFUGUIUJUNUFUIUGUJUNSUFUIUGUJUNECDUFU
    IUGUJHUNSOEABTPQRUAUBABUCUDUE $.

  $( A square of a real is nonnegative.  (Contributed by NM, 18-Oct-1999.) $)
  sqge0 $p |- ( A e. RR -> 0 <_ ( A ^ 2 ) ) $=
    ( cr wcel cc0 cmul co c2 cexp cle msqge0 cc wceq recn sqval syl breqtrrd )
    ABCZDAAEFZAGHFZIAJQAKCSRLAMANOP $.

  $( The square of an integer is a nonnegative integer.  (Contributed by Mario
     Carneiro, 18-Apr-2014.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  zsqcl2 $p |- ( A e. ZZ -> ( A ^ 2 ) e. NN0 ) $=
    ( cz wcel c2 cexp co cc0 cle wbr cn0 zsqcl cr zre sqge0 syl elnn0z sylanbrc
    ) ABCZADEFZBCGSHIZSJCAKRALCTAMANOSPQ $.

  $( Two real numbers are equal to 0 iff their Euclidean norm is.  (Contributed
     by NM, 29-Apr-2005.)  (Revised by Stefan O'Rear, 5-Oct-2014.)  (Proof
     shortened by Mario Carneiro, 28-May-2016.) $)
  sumsqeq0 $p |- ( ( A e. RR /\ B e. RR ) ->
    ( ( A = 0 /\ B = 0 ) <-> ( ( A ^ 2 ) + ( B ^ 2 ) ) = 0 ) ) $=
    ( cr wcel wa c2 cexp co cc0 wceq cle wbr wb resqcl sqge0 jca recn sqeq0 syl
    cc caddc add20 syl2an bi2anan9 bitr2d ) ACDZBCDZEAFGHZBFGHZUAHIJZUHIJZUIIJZ
    EZAIJZBIJZEUFUHCDZIUHKLZEUICDZIUIKLZEUJUMMUGUFUPUQANAOPUGURUSBNBOPUHUIUBUCU
    FUKUNUGULUOUFATDUKUNMAQARSUGBTDULUOMBQBRSUDUE $.

  ${
    sqval.1 $e |- A e. CC $.
    $( Value of square.  Inference version.  (Contributed by NM,
       1-Aug-1999.) $)
    sqvali $p |- ( A ^ 2 ) = ( A x. A ) $=
      ( cc wcel c2 cexp co cmul wceq sqval ax-mp ) ACDAEFGAAHGIBAJK $.

    $( Closure of square.  (Contributed by NM, 2-Aug-1999.) $)
    sqcli $p |- ( A ^ 2 ) e. CC $=
      ( cc wcel c2 cexp co sqcl ax-mp ) ACDAEFGCDBAHI $.

    $( A number is zero iff its square is zero.  (Contributed by NM,
       2-Oct-1999.) $)
    sqeq0i $p |- ( ( A ^ 2 ) = 0 <-> A = 0 ) $=
      ( cc wcel c2 cexp co cc0 wceq wb sqeq0 ax-mp ) ACDAEFGHIAHIJBAKL $.

    sqmul.2 $e |- B e. CC $.
    $( Distribution of square over multiplication.  (Contributed by NM,
       3-Sep-1999.) $)
    sqmuli $p |- ( ( A x. B ) ^ 2 ) = ( ( A ^ 2 ) x. ( B ^ 2 ) ) $=
      ( cc wcel cmul co c2 cexp wceq sqmul mp2an ) AEFBEFABGHIJHAIJHBIJHGHKCDAB
      LM $.

    sqdivap.3 $e |- B # 0 $.
    $( Distribution of square over division.  (Contributed by Jim Kingdon,
       12-Jun-2020.) $)
    sqdivapi $p |- ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) $=
      ( cdiv co cmul c2 cexp divmuldivapi divclapi sqvali oveq12i 3eqtr4i ) ABF
      GZPHGAAHGZBBHGZFGPIJGAIJGZBIJGZFGABABCDCDEEKPABCDELMSQTRFACMBDMNO $.
  $}

  ${
    resqcl.1 $e |- A e. RR $.
    $( Closure of square in reals.  (Contributed by NM, 2-Aug-1999.) $)
    resqcli $p |- ( A ^ 2 ) e. RR $=
      ( cr wcel c2 cexp co resqcl ax-mp ) ACDAEFGCDBAHI $.

    $( The square of a nonzero real is positive.  (Contributed by Jim Kingdon,
       12-Jun-2020.) $)
    sqgt0api $p |- ( A # 0 -> 0 < ( A ^ 2 ) ) $=
      ( cr wcel cc0 cap wbr c2 cexp co clt sqgt0ap mpan ) ACDAEFGEAHIJKGBALM $.

    $( A square of a real is nonnegative.  (Contributed by NM, 3-Aug-1999.) $)
    sqge0i $p |- 0 <_ ( A ^ 2 ) $=
      ( cc0 cmul co c2 cexp cle msqge0i recni sqvali breqtrri ) CAADEAFGEHABIAA
      BJKL $.

    lt2sq.2 $e |- B e. RR $.
    $( The square function on nonnegative reals is strictly monotonic.
       (Contributed by NM, 12-Sep-1999.) $)
    lt2sqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
              ( A < B <-> ( A ^ 2 ) < ( B ^ 2 ) ) ) $=
      ( cc0 cle wbr wa clt cmul co c2 cexp lt2msqi recni sqvali breq12i syl6bbr
      ) EAFGEBFGHABIGAAJKZBBJKZIGALMKZBLMKZIGABCDNUASUBTIAACOPBBDOPQR $.

    $( The square function on nonnegative reals is monotonic.  (Contributed by
       NM, 12-Sep-1999.) $)
    le2sqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
              ( A <_ B <-> ( A ^ 2 ) <_ ( B ^ 2 ) ) ) $=
      ( cc0 cle wbr wa cmul co c2 cexp le2msqi recni sqvali breq12i syl6bbr ) E
      AFGEBFGHABFGAAIJZBBIJZFGAKLJZBKLJZFGABCDMTRUASFAACNOBBDNOPQ $.

    $( The square function is one-to-one for nonnegative reals.  (Contributed
       by NM, 27-Oct-1999.) $)
    sq11i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
              ( ( A ^ 2 ) = ( B ^ 2 ) <-> A = B ) ) $=
      ( c2 cexp co wceq cmul cc0 cle wbr wa recni sqvali eqeq12i msq11i syl5bb
      ) AEFGZBEFGZHAAIGZBBIGZHJAKLJBKLMABHSUATUBAACNOBBDNOPABCDQR $.
  $}

  $( The square of 0 is 0.  (Contributed by NM, 6-Jun-2006.) $)
  sq0 $p |- ( 0 ^ 2 ) = 0 $=
    ( cc0 c2 cexp co wceq eqid 0cn sqeq0i mpbir ) ABCDAEAAEAFAGHI $.

  $( If a number is zero, its square is zero.  (Contributed by FL,
     10-Dec-2006.) $)
  sq0i $p |- ( A = 0 -> ( A ^ 2 ) = 0 ) $=
    ( cc0 wceq c2 cexp co oveq1 sq0 syl6eq ) ABCADEFBDEFBABDEGHI $.

  ${
    sq0id.1 $e |- ( ph -> A = 0 ) $.
    $( If a number is zero, its square is zero.  Deduction form of ~ sq0i .
       Converse of ~ sqeq0d .  (Contributed by David Moews, 28-Feb-2017.) $)
    sq0id $p |- ( ph -> ( A ^ 2 ) = 0 ) $=
      ( cc0 wceq c2 cexp co sq0i syl ) ABDEBFGHDECBIJ $.
  $}

  $( The square of 1 is 1.  (Contributed by NM, 22-Aug-1999.) $)
  sq1 $p |- ( 1 ^ 2 ) = 1 $=
    ( c2 cz wcel c1 cexp co wceq 2z 1exp ax-mp ) ABCDAEFDGHAIJ $.

  $( ` -u 1 ` squared is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1sqe1 $p |- ( -u 1 ^ 2 ) = 1 $=
    ( c1 cneg c2 cexp co cc wcel wceq ax-1cn sqneg ax-mp sq1 eqtri ) ABCDEZACDE
    ZAAFGNOHIAJKLM $.

  $( The square of 2 is 4.  (Contributed by NM, 22-Aug-1999.) $)
  sq2 $p |- ( 2 ^ 2 ) = 4 $=
    ( c2 cexp co cmul c4 2cn sqvali 2t2e4 eqtri ) AABCAADCEAFGHI $.

  $( The square of 3 is 9.  (Contributed by NM, 26-Apr-2006.) $)
  sq3 $p |- ( 3 ^ 2 ) = 9 $=
    ( c3 c2 cexp co cmul c9 3cn sqvali 3t3e9 eqtri ) ABCDAAEDFAGHIJ $.

  $( The cube of 2 is 8.  (Contributed by NM, 2-Aug-2004.) $)
  cu2 $p |- ( 2 ^ 3 ) = 8 $=
    ( c2 c3 cexp co c1 caddc c8 df-3 oveq2i cmul wcel cn0 wceq 2nn0 expp1 mp2an
    cc 2cn c4 eqtri sq2 oveq1i 4t2e8 ) ABCDAAEFDZCDZGBUDACHIUEAACDZAJDZGAQKALKU
    EUGMRNAAOPUGSAJDGUFSAJUAUBUCTTT $.

  $( The reciprocal of ` _i ` .  (Contributed by NM, 11-Oct-1999.) $)
  irec $p |- ( 1 / _i ) = -u _i $=
    ( c1 ci cdiv co cneg wceq cmul ax-icn mulneg2i ax-1cn mulcli negcon2i mpbir
    ixi eqtr4i negicn iap0 divmulapi ) ABCDBEZFBSGDZAFTBBGDZEZABBHHIAUBFUAAEFNA
    UAJBBHHKLMOABSJHPQRM $.

  $( ` _i ` squared.  (Contributed by NM, 6-May-1999.) $)
  i2 $p |- ( _i ^ 2 ) = -u 1 $=
    ( ci c2 cexp co cmul c1 cneg ax-icn sqvali ixi eqtri ) ABCDAAEDFGAHIJK $.

  $( ` _i ` cubed.  (Contributed by NM, 31-Jan-2007.) $)
  i3 $p |- ( _i ^ 3 ) = -u _i $=
    ( ci c3 cexp co c2 c1 caddc cneg df-3 oveq2i cmul wcel cn0 wceq ax-icn 2nn0
    cc expp1 mp2an eqtri i2 oveq1i mulm1i ) ABCDAEFGDZCDZAHZBUDACIJUEAECDZAKDZU
    FAQLEMLUEUHNOPAERSUHFHZAKDUFUGUIAKUAUBAOUCTTT $.

  $( ` _i ` to the fourth power.  (Contributed by NM, 31-Jan-2007.) $)
  i4 $p |- ( _i ^ 4 ) = 1 $=
    ( ci c2 caddc co cexp cmul c4 c1 cc wcel cn0 wceq ax-icn expadd mp3an 2p2e4
    2nn0 oveq2i i2 ax-1cn cneg oveq12i mul2negi 1t1e1 3eqtri 3eqtr3i ) ABBCDZED
    ZABEDZUIFDZAGEDHAIJBKJZUKUHUJLMQQABBNOUGGAEPRUJHUAZULFDHHFDHUIULUIULFSSUBHH
    TTUCUDUEUF $.

  $( A positive integer is less than or equal to its square.  (Contributed by
     NM, 15-Sep-1999.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
  nnlesq $p |- ( N e. NN -> N <_ ( N ^ 2 ) ) $=
    ( cn wcel cmul co c2 cexp cle c1 nncn mulid1d wbr nnge1 cr cc0 wb 1red nnre
    clt nngt0 lemul2 syl112anc mpbid eqbrtrrd cc wceq sqval syl breqtrrd ) ABCZ
    AAADEZAFGEZHUJAIDEZAUKHUJAAJZKUJIAHLZUMUKHLZAMUJINCANCZUQOASLUOUPPUJQARZURA
    TIAAUAUBUCUDUJAUECULUKUFUNAUGUHUI $.

  $( A counterexample showing that exponentiation is not associative.
     (Contributed by Stefan Allan and G&eacute;rard Lang, 21-Sep-2010.) $)
  expnass $p |- ( ( 3 ^ 3 ) ^ 3 ) < ( 3 ^ ( 3 ^ 3 ) ) $=
    ( c3 cmul co cexp clt cc wcel 3cn 3nn0 mp3an wbr 3re nn0zi w3a 1lt3 ltexp2a
    cz c2 mpanr12 eqbrtrri wceq expmul cr nn0mulcli nn0expcli c1 sqvali 2z 2lt3
    cn0 3z ) AAABCZDCZAADCZADCZAUNDCZEAFGAUJGZUQUMUOUAHIIAAAUBJAUCGZULQGZUNQGZU
    MUPEKZLULAAIIUDMUNAAIIUEMURUSUTNUFAEKZULUNEKVAOARDCZULUNEAHUGURRQGZAQGZVCUN
    EKZLUHUKURVDVENVBRAEKVFOUIARAPSJTAULUNPSJT $.

  $( Factor the difference of two squares.  (Contributed by NM,
     21-Feb-2008.) $)
  subsq $p |- ( ( A e. CC /\ B e. CC ) ->
          ( ( A ^ 2 ) - ( B ^ 2 ) ) = ( ( A + B ) x. ( A - B ) ) ) $=
    ( cc wcel wa caddc co cmin cmul cexp simpl simpr sqval adantr eqtr4d adantl
    c2 wceq oveq12d sqcl subcl adddird subdi oveq1d subdid mulcom mulcl npncand
    3anidm12 3eqtrrd ) ACDZBCDZEZABFGABHGZIGAUNIGZBUNIGZFGAQJGZABIGZHGZURBQJGZH
    GZFGUQUTHGUMABUNUKULKZUKULLZABUAUBUMUOUSUPVAFUMUOAAIGZURHGZUSUKULUOVERAABUC
    UIUMUQVDURHUKUQVDRULAMNUDOUMUPBAIGZBBIGZHGVAUMBABVCVBVCUEUMURVFUTVGHABUFULU
    TVGRUKBMPSOSUMUQURUTUKUQCDULATNABUGULUTCDUKBTPUHUJ $.

  $( Express the difference of the squares of two numbers as a polynomial in
     the difference of the numbers.  (Contributed by NM, 21-Feb-2008.) $)
  subsq2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A ^ 2 ) - ( B ^ 2 ) ) =
    ( ( ( A - B ) ^ 2 ) + ( ( 2 x. B ) x. ( A - B ) ) ) ) $=
    ( cc wcel wa caddc co cmin cmul c2 cexp wceq 2cn mulcl mpan adantl subadd23
    mpd3an3 oveq1d eqtrd 2times pncan anidms oveq2d subcl adddird subsq 3eqtr4d
    eqtr3d sqval syl ) ACDZBCDZEZABFGZABHGZIGZUPUPIGZJBIGZUPIGZFGZAJKGBJKGHGUPJ
    KGZUTFGUNUPUSFGZUPIGUQVAUNVCUOUPIUNVCAUSBHGZFGZUOULUMUSCDZVCVELUMVFULJCDUMV
    FMJBNOPZABUSQRUNVDBAFUMVDBLULUMVDBBFGZBHGZBUMUSVHBHBUASUMVIBLBBUBUCTPUDTSUN
    UPUSUPABUEZVGVJUFUIABUGUNVBURUTFUNUPCDVBURLVJUPUJUKSUH $.

  ${
    binom2.1 $e |- A e. CC $.
    binom2.2 $e |- B e. CC $.
    $( The square of a binomial.  (Contributed by NM, 11-Aug-1999.) $)
    binom2i $p |- ( ( A + B ) ^ 2 ) = ( ( ( A ^ 2 ) + ( 2 x.
                ( A x. B ) ) ) + ( B ^ 2 ) ) $=
      ( caddc co cmul c2 cexp addcli adddii adddiri mulcomi oveq2i eqtri mulcli
      oveq12i addassi oveq1i sqvali 3eqtr2i 2timesi 3eqtr4i ) ABEFZUDGFZAAGFZAB
      GFZUGEFZEFZBBGFZEFZUDHIFAHIFZHUGGFZEFZBHIFZEFUEUDAGFZUDBGFZEFZUKUDABABCDJ
      ZCDKURUFUGEFZUGUJEFZEFUTUGEFZUJEFUKUPUTUQVAEUPUFBAGFZEFUTABACDCLVCUGUFEBA
      DCMNOABBCDDLQUTUGUJUFUGAACCPZABCDPZJVEBBDDPRVBUIUJEUFUGUGVDVEVERSUAOUDUST
      UNUIUOUJEULUFUMUHEACTUGVEUBQBDTQUC $.

    $( Factor the difference of two squares.  (Contributed by NM,
       7-Feb-2005.) $)
    subsqi $p |- ( ( A ^ 2 ) - ( B ^ 2 ) ) = ( ( A + B ) x. ( A - B ) ) $=
      ( cc wcel c2 cexp co cmin caddc cmul wceq subsq mp2an ) AEFBEFAGHIBGHIJIA
      BKIABJILIMCDABNO $.
  $}

  $( The square of a binomial.  (Contributed by FL, 10-Dec-2006.) $)
  binom2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) ^ 2 ) =
     ( ( ( A ^ 2 ) + ( 2 x. ( A x. B ) ) ) + ( B ^ 2 ) ) ) $=
    ( cc wcel wa caddc co cmul c2 cexp addcl simpl adddird eqtrd oveq12d mulcld
    addassd wceq sqval syl adddid mulcomd oveq2d addcld 3eqtr2d 2timesd 3eqtr4d
    simpr oveq1d ) ACDZBCDZEZABFGZUMHGZAAHGZABHGZUPFGZFGZBBHGZFGZUMIJGZAIJGZIUP
    HGZFGZBIJGZFGULUNUMAHGZUMBHGZFGZUTULUMABABKZUJUKLZUJUKUHZUAULVHUOUPFGZUPUSF
    GZFGVLUPFGZUSFGUTULVFVLVGVMFULVFUOBAHGZFGVLULABAVJVKVJMULVOUPUOFULBAVKVJUBU
    CNULABBVJVKVKMOULVLUPUSULUOUPULAAVJVJPZULABVJVKPZUDVQULBBVKVKPQULVNURUSFULU
    OUPUPVPVQVQQUIUENULUMCDVAUNRVIUMSTULVDURVEUSFULVBUOVCUQFULUJVBUORVJASTULUPV
    QUFOULUKVEUSRVKBSTOUG $.

  $( Special case of ~ binom2 where ` B = 1 ` .  (Contributed by Scott Fenton,
     11-May-2014.) $)
  binom21 $p |- ( A e. CC -> ( ( A + 1 ) ^ 2 ) = ( ( ( A ^ 2
      ) + ( 2 x. A ) ) + 1 ) ) $=
    ( cc wcel c1 caddc co c2 cexp cmul wceq ax-1cn binom2 mulid1 oveq2d sq1 a1i
    mpan2 oveq12d eqtrd ) ABCZADEFGHFZAGHFZGADIFZIFZEFZDGHFZEFZUBGAIFZEFZDEFTDB
    CUAUGJKADLQTUEUIUFDETUDUHUBETUCAGIAMNNUFDJTOPRS $.

  $( Expand the square of a subtraction.  (Contributed by Scott Fenton,
     10-Jun-2013.) $)
  binom2sub $p |- ( ( A e. CC /\ B e. CC ) ->
    ( ( A - B ) ^ 2 ) =
    ( ( ( A ^ 2 ) - ( 2 x. ( A x. B ) ) ) + ( B ^ 2 ) ) ) $=
    ( cc wcel wa c2 cexp co cneg cmul caddc cmin wceq eqtr3d mulneg2 oveq2d 2cn
    negcl mulcl sylancr binom2 sylan2 negsub oveq1d eqtr2d adantr negsubd sqneg
    sqcl adantl oveq12d ) ACDZBCDZEZAFGHZFABIZJHZJHZKHZUPFGHZKHZABLHZFGHZUOFABJ
    HZJHZLHZBFGHZKHUNAUPKHZFGHZVAVCUMULUPCDVIVAMBRAUPUAUBUNVHVBFGABUCUDNUNUSVFU
    TVGKUNUOVEIZKHUSVFUNVJURUOKUNURFVDIZJHZVJUNUQVKFJABOPUNFCDZVDCDZVLVJMQABSZF
    VDOTUEPUNUOVEULUOCDUMAUIUFUNVMVNVECDQVOFVDSTUGNUMUTVGMULBUHUJUKN $.

  ${
    binom2subi.1 $e |- A e. CC $.
    binom2subi.2 $e |- B e. CC $.
    $( Expand the square of a subtraction.  (Contributed by Scott Fenton,
       13-Jun-2013.) $)
    binom2subi $p |- ( ( A - B ) ^ 2 ) =
    ( ( ( A ^ 2 ) - ( 2 x. ( A x. B ) ) ) + ( B ^ 2 ) ) $=
      ( cc wcel cmin co c2 cexp cmul caddc wceq binom2sub mp2an ) AEFBEFABGHIJH
      AIJHIABKHKHGHBIJHLHMCDABNO $.
  $}

  $( The cube of a binomial.  (Contributed by Mario Carneiro, 24-Apr-2015.) $)
  binom3 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) ^ 3 ) =
     ( ( ( A ^ 3 ) + ( 3 x. ( ( A ^ 2 ) x. B ) ) ) +
       ( ( 3 x. ( A x. ( B ^ 2 ) ) ) + ( B ^ 3 ) ) ) ) $=
    ( cc wcel caddc co c3 cexp cmul df-3 wceq sylancl syl oveq1d adddird oveq2d
    c2 c1 eqtr4d oveq12d wa oveq2i cn0 addcl 2nn0 expp1 syl5eq sqcl simpl simpr
    adddid binom2 mulcl sylancr addcld sqval mul32d 2cnd mulassd mulcomd 3eqtrd
    2cn eqtrd mulcld 3nn0 expcl addassd eqtr3d add4d 1cnd mulid2d 1p2e3 syl5eqr
    oveq1i eqtr2d ) ACDZBCDZUAZABEFZGHFZVSQHFZVSIFZAGHFZQAQHFZBIFZIFZEFZWEEFZAB
    QHFZIFZQWJIFZBGHFZEFZEFZEFZWCGWEIFZEFZGWJIFZWLEFZEFVRVTVSQREFZHFZWBGWTVSHJU
    BVRVSCDZQUCDZXAWBKABUDZUEVSQUFLUGVRWBWAAIFZWABIFZEFWGWJEFZWEWMEFZEFWOVRWAAB
    VRXBWACDXDVSUHMVPVQUIZVPVQUJZUKVRXEXGXFXHEVRXEWDQABIFZIFZEFZWIEFZAIFXMAIFZW
    IAIFZEFXGVRWAXNAIABULZNVRXMWIAVRWDXLVRVPWDCDXIAUHMZVRQCDZXKCDXLCDVBABUMZQXK
    UMUNZUOZVRVQWICDXJBUHMZXIOVRXOWGXPWJEVRXOWDAIFZXLAIFZEFWGVRWDXLAXRYAXIOVRWC
    YDWFYEEVRWCAWTHFZYDGWTAHJUBVRVPXCYFYDKXIUEAQUFLUGVRWFQXKAIFZIFYEVRWEYGQIVRW
    EAAIFZBIFYGVRWDYHBIVRVPWDYHKXIAUPMNVRAABXIXIXJUQVCPVRQXKAVRURZXTXIUSSTSVRWI
    AYCXIUTTVAVRXFXNBIFXMBIFZWIBIFZEFZXHVRWAXNBIXQNVRXMWIBYBYCXJOVRWEWKEFZWLEFY
    LXHVRYMYJWLYKEVRYMWEXLBIFZEFYJVRWKYNWEEVRWKQXKBIFZIFYNVRWJYOQIVRWJABBIFZIFY
    OVRWIYPAIVRVQWIYPKXJBUPMPVRABBXIXJXJUSSPVRQXKBYIXTXJUSSPVRWDXLBXRYAXJOSVRWL
    BWTHFZYKGWTBHJUBVRVQXCYQYKKXJUEBQUFLUGTVRWEWKWLVRWDBXRXJVDZVRXSWJCDWKCDVBVR
    AWIXIYCVDZQWJUMUNZVRVQGUCDZWLCDXJVEBGVFLZVGVHVATVRWGWJWEWMVRWCWFVRVPUUAWCCD
    XIVEAGVFLZVRXSWECDWFCDVBYRQWEUMUNZUOYSYRVRWKWLYTUUBUOVIVAVRWHWQWNWSEVRWHWCW
    FWEEFZEFWQVRWCWFWEUUCUUDYRVGVRWPUUEWCEVRWPWFRWEIFZEFZUUEVRWPWTWEIFUUGGWTWEI
    JVNVRQRWEYIVRVJZYROUGVRUUFWEWFEVRWEYRVKPVCPSVRWSWJWKEFZWLEFWNVRWRUUIWLEVRWR
    RWJIFZWKEFZUUIVRWRRQEFZWJIFUUKUULGWJIVLVNVRRQWJUUHYIYSOVMVRUUJWJWKEVRWJYSVK
    NVCNVRWJWKWLYSYTUUBVGVOTVA $.

  $( An integer is even iff its square is even.  (Contributed by Mario
     Carneiro, 12-Sep-2015.) $)
  zesq $p |- ( N e. ZZ ->
              ( ( N / 2 ) e. ZZ <-> ( ( N ^ 2 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c2 cdiv co cexp wa cmul wceq sqval syl oveq1d 2cnd 2ap0 divassapd
    cc a1i c1 caddc zcn cc0 cap wbr adantr zmulcl eqeltrd wn cmin sqcl peano2cn
    eqtrd halfcld pncand binom21 mulcl sylancr 1cnd add32d divdirapd divcanap3d
    2cn 3eqtr3d oveq2d peano2z sylan eqeltrrd simpl zsubcld ex con3d zsqcl zeo2
    wb 3imtr4d imp impbida ) ABCZADEFZBCZADGFZDEFZBCZVRVTHWBAVSIFZBVRWBWDJVTVRW
    BAAIFZDEFWDVRWAWEDEVRAQCZWAWEJAUAZAKLMVRAADWGWGVRNDUBUCUDZVRORPULUEAVSUFUGV
    RWCVTVRWASTFZDEFZBCZUHZASTFZDEFZBCZUHWCVTVRWOWKVRWOWKVRWOHZWJATFZAUIFWJBWPW
    JAWPWIWPWAQCZWIQCWPWFWRVRWFWOWGUEZAUJLZWAUKLZUMWSUNWPWQAWPWMWNIFZWQBWPWMWMI
    FZDEFWIDAIFZTFZDEFZXBWQWPXCXEDEWPWMDGFZWAXDTFSTFZXCXEWPWFXGXHJWSAUOLWPWMQCZ
    XGXCJWPWFXIWSAUKLZWMKLWPWAXDSWTWPDQCWFXDQCVBWSDAUPUQZWPURUSVCMWPWMWMDXJXJWP
    NZWHWPORZPWPXFWJXDDEFZTFWQWPWIXDDXAXKXLXMUTWPXNAWJTWPADWSXLXMVAVDULVCVRWMBC
    WOXBBCAVEWMWNUFVFVGVRWOVHVIVGVJVKVRWABCWCWLVNAVLWAVMLAVMVOVPVQ $.

  $( A positive integer is even iff its square is even.  (Contributed by NM,
     20-Aug-2001.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
  nnesq $p |- ( N e. NN ->
               ( ( N / 2 ) e. NN <-> ( ( N ^ 2 ) / 2 ) e. NN ) ) $=
    ( cn wcel c2 cdiv co cz cc0 clt wbr cexp nnz zesq syl nnrp rphalfcld rpgt0d
    wa wb elnnz nnsqcl nnrpd 2thd anbi12d 3bitr4g ) ABCZADEFZGCZHUGIJZRADKFZDEF
    ZGCZHUKIJZRUGBCUKBCUFUHULUIUMUFAGCUHULSALAMNUFUIUMUFUGUFAAOPQUFUKUFUJUFUJAU
    AUBPQUCUDUGTUKTUE $.

  ${
    $d j k A $.  $d j k N $.
    $( Bernoulli's inequality, due to Johan Bernoulli (1667-1748).
       (Contributed by NM, 21-Feb-2005.) $)
    bernneq $p |- ( ( A e. RR /\ N e. NN0 /\ -u 1 <_ A ) ->
                 ( 1 + ( A x. N ) ) <_ ( ( 1 + A ) ^ N ) ) $=
      ( cr wcel c1 cle wbr cmul co caddc cexp wi wa wceq oveq2 oveq2d cc ax-1cn
      cc0 adantr vj vk cn0 cneg cv breq12d imbi2d recn mul01 1p0e1 syl6eq addcl
      1le1 mpan exp0 syl syl5breqr eqbrtrd nn0re remulcl sylan2 readdcl sylancr
      1re simpl syl2anc remulcld reexpcl anidms msqge0 jca nn0ge0 mulge0 syl2an
      sylan nn0cn adantl mul32d breqtrd addge01d mulcld addassd muladd11 eqtr4d
      mpbid mulcl wb neg1rr leadd2 mp3an13 1pneg1e0 breq1i syl6bb biimpa simprr
      ad2ant2r letrd adddi mp3an3 mulid1 eqtrd addass expp1 3brtr4d exp43 com12
      lemul1ad mp3an1 impd a2d nn0ind expd 3imp ) ACDZBUCDZEUDZAFGZEABHIZJIZEAJ
      IZBKIZFGZXOXNXQYBLXOXNXQYBXNXQMZEAUAUEZHIZJIZXTYDKIZFGZLYCEASHIZJIZXTSKIZ
      FGZLYCEAUBUEZHIZJIZXTYMKIZFGZLYCEAYMEJIZHIZJIZXTYRKIZFGZLYCYBLUAUBBYDSNZY
      HYLYCUUCYFYJYGYKFUUCYEYIEJYDSAHOPYDSXTKOUFUGYDYMNZYHYQYCUUDYFYOYGYPFUUDYE
      YNEJYDYMAHOPYDYMXTKOUFUGYDYRNZYHUUBYCUUEYFYTYGUUAFUUEYEYSEJYDYRAHOPYDYRXT
      KOUFUGYDBNZYHYBYCUUFYFXSYGYAFUUFYEXREJYDBAHOPYDBXTKOUFUGXNYLXQXNAQDZYLAUH
      ZUUGYJEYKFUUGYJESJIEUUGYISEJAUIPUJUKUUGEEYKFUMUUGXTQDZYKENEQDZUUGUUIREAUL
      ZUNXTUOUPUQURUPTYMUCDZYCYQUUBUULXNXQYQUUBLZXNUULXQUUMLXNUULXQYQUUBXNUULMZ
      XQYQMZMZYOAJIZYPXTHIZYTUUAFUUPUUQYOXTHIZUURUUNUUQCDZUUOUUNYOCDZXNUUTUUNEC
      DZYNCDZUVAVDUULXNYMCDZUVCYMUSZAYMUTZVAEYNVBVCZXNUULVEYOAVBVFZTUUNUUSCDUUO
      UUNYOXTUVGXNXTCDZUULUVBXNUVIVDEAVBUNZTZVGTUUNUURCDUUOUUNYPXTXNUVIUULYPCDZ
      UVJXTYMVHVOZUVKVGTUUNUUQUUSFGUUOUUNUUQUUQYNAHIZJIZUUSFUUNSUVNFGUUQUVOFGUU
      NSAAHIZYMHIZUVNFXNUVPCDZSUVPFGZMUVDSYMFGZMSUVQFGUULXNUVRUVSXNUVRAAUTVIAVJ
      VKUULUVDUVTUVEYMVLVKUVPYMVMVNUUNAAYMXNUUGUULUUHTZUWAUULYMQDZXNYMVPZVQVRVS
      UUNUUQUVNUVHUULXNUVDUVNCDUVEXNUVDMYNAUVFXNUVDVEVGVAVTWEXNUUGUWBUVOUUSNUUL
      UUHUWCUUGUWBMZUVOYOAUVNJIJIZUUSUWDYOAUVNUWDUUJYNQDZYOQDRAYMWFZEYNULVCUUGU
      WBVEZUWDYNAUWGUWHWAWBUWDUWFUUGUUSUWENUWGUWHYNAWCVFWDVNVSTUUPYOYPXTUUNUVAU
      UOUVGTUUNUVLUUOUVMTUUNUVIUUOUVKTXNXQSXTFGZUULYQXNXQUWIXNXQEXPJIZXTFGZUWIX
      PCDXNUVBXQUWKWGWHVDXPAEWIWJUWJSXTFWKWLWMWNWPUUNXQYQWOXGWQUUNYTUUQNZUUOXNU
      UGUWBUWLUULUUHUWCUWDYTEYNAJIZJIZUUQUWDYSUWMEJUWDYSYNAEHIZJIZUWMUUGUWBUUJY
      SUWPNRAYMEWRWSUWDUWOAYNJUUGUWOANUWBAWTTPXAPUWDUWFUUGUUQUWNNZUWGUWHUUJUWFU
      UGUWQREYNAXBXHVFWDVNTUUNUUAUURNZUUOXNUUIUULUWRXNUUJUUGUUIRUUHUUKVCXTYMXCV
      OTXDXEXFXIXJXKXLXFXM $.
  $}

  $( Variation of Bernoulli's inequality ~ bernneq .  (Contributed by NM,
     18-Oct-2007.) $)
  bernneq2 $p |- ( ( A e. RR /\ N e. NN0 /\ 0 <_ A ) ->
               ( ( ( A - 1 ) x. N ) + 1 ) <_ ( A ^ N ) ) $=
    ( cr wcel cn0 cc0 cle wbr w3a c1 cmin co caddc cexp 3ad2ant1 wa wceq ax-1cn
    cc sylancr cmul cneg peano2rem simp2 df-neg 0re 1re lesub1 mp3an13 syl5eqbr
    biimpa 3adant2 bernneq syl3anc recnd nn0cn mulcl syl2an addcom 3adant3 recn
    wb pncan3 oveq1d 3brtr3d ) ACDZBEDZFAGHZIZJAJKLZBUALZMLZJVJMLZBNLZVKJMLZABN
    LZGVIVJCDZVGJUBZVJGHZVLVNGHVFVGVQVHAUCZOVFVGVHUDVFVHVSVGVFVHPVRFJKLZVJGJUEV
    FVHWAVJGHZFCDVFJCDVHWBVBUFUGFAJUHUIUKUJULVJBUMUNVFVGVLVOQZVHVFVGPJSDZVKSDZW
    CRVFVJSDBSDWEVGVFVJVTUOBUPVJBUQURJVKUSTUTVFVGVNVPQVHVFVMABNVFWDASDVMAQRAVAJ
    AVCTVDOVE $.

  $( A corollary of ~ bernneq .  (Contributed by Mario Carneiro,
     11-Mar-2014.) $)
  bernneq3 $p |- ( ( P e. ( ZZ>= ` 2 ) /\ N e. NN0 ) ->
                   N < ( P ^ N ) ) $=
    ( c2 cuz cfv wcel cn0 wa c1 caddc co adantl peano2re syl adantr cc0 cle wbr
    cr nn0ge0 cexp nn0re eluzelre reexpcl sylan ltp1d cn uz2m1nn nnred remulcld
    cmin cmul 1red nnge1d lemulge12d leadd1dd simpr eluzge2nn0 bernneq2 syl3anc
    letrd ltletrd ) ACDEFZBGFZHZBBIJKZABUAKZVDBSFZVCBUBLZVEVHVFSFVIBMNZVCASFZVD
    VGSFCAUCZABUDUEZVEBVIUFVEVFAIUKKZBULKZIJKZVGVJVEVOSFVPSFVEVNBVEVNVCVNUGFVDA
    UHOZUIZVIUJZVOMNVMVEBVOIVIVSVEUMVEBVNVIVRVDPBQRVCBTLVEVNVQUNUOUPVEVKVDPAQRZ
    VPVGQRVCVKVDVLOVCVDUQVCVTVDVCAGFVTAURATNOABUSUTVAVB $.

  ${
    $d j k A $.  $d j k B $.
    $( Exponentiation with a mantissa greater than 1 has no upper bound.
       (Contributed by NM, 20-Oct-2007.) $)
    expnbnd $p |- ( ( A e. RR /\ B e. RR /\ 1 < B ) ->
          E. k e. NN A < ( B ^ k ) ) $=
      ( cr wcel c1 clt cexp co cn wrex wa adantr simpr cmin 1red resubcld mpbid
      wbr cc0 w3a cv simp1 simp2 simp3 cdiv posdifd gt0ap0d redivclapd arch syl
      3expa adantrl cmul caddc simplll simpllr remulcld readdcld nnnn0d reexpcl
      nnred cn0 syl2anc wb simplr simplrr ltdivmul syl112anc ltsubaddd cle 0red
      0lt1 wi 0re 1re lttr mp3an12 mpani sylc ltled bernneq2 syl3anc ltletrd ex
      reximdva mpd syl22anc 1nn cc wceq simpl2 recnd exp1 breqtrrd oveq2 breq2d
      rspcev sylancr wo axltwlin mp3an1 ancoms 3impia mpjaodan ) ADEZBDEZFBGSZU
      AZFAGSZABCUBZHIZGSZCJKZABGSZXIXJLXFXGXJXHXNXIXFXJXFXGXHUCZMXIXGXJXFXGXHUD
      ZMXIXJNXIXHXJXFXGXHUEZMXFXGLZXJXHLZLZAFOIZBFOIZUFIZXKGSZCJKZXNXSXHYFXJXFX
      GXHYFXIYDDEYFXIYBYCXIAFXPXIPZQXIBFXQYGQZXIYCYHXIXHTYCGSZXRXIFBYGXQUGRUHUI
      YDCUJUKULUMYAYEXMCJYAXKJEZLZYEXMYKYELZAYCXKUNIZFUOIZXLYKXFYEXFXGXTYJUPMZY
      KYNDEYEYKYMFYKYCXKYKBFXFXGXTYJUQZYKPZQYKXKYAYJNZVBURYQUSMYKXLDEZYEYKXGXKV
      CEZYSYPYKXKYRUTBXKVAVDMYLYBYMGSZAYNGSYLYEUUAYKYENYLYBDEXKDEYCDEYIYEUUAVEY
      LAFYOYLPZQYLXKYAYJYEVFZVBZYLBFYKXGYEYPMZUUBQZYLXHYIYKXHYEXSXJXHYJVGZMYLFB
      UUBUUEUGRYBXKYCVHVIRYLAFYMYOUUBYLYCXKUUFUUDURVJRYLXGYTTBVKSZYNXLVKSUUEYLX
      KUUCUTYKUUHYEYKTBYKVLYPYKXGXHTBGSZYPUUGXGTFGSZXHUUIVMTDEFDEZXGUUJXHLUUIVN
      VOVPTFBVQVRVSVTWAMBXKWBWCWDWEWFWGWHXIXOLZFJEABFHIZGSZXNWIUULABUUMGXIXONUU
      LBWJEUUMBWKUULBXFXGXHXOWLWMBWNUKWOXMUUNCFJXKFWKXLUUMAGXKFBHWPWQWRWSXFXGXH
      XJXOWTZXGXFXHUUOVNZUUKXGXFUUPVPFBAXAXBXCXDXE $.

    $( The reciprocal of exponentiation with a mantissa greater than 1 has no
       lower bound.  (Contributed by NM, 18-Jul-2008.) $)
    expnlbnd $p |- ( ( A e. RR+ /\ B e. RR /\ 1 < B ) ->
          E. k e. NN ( 1 / ( B ^ k ) ) < A ) $=
      ( crp wcel cr c1 clt wbr w3a cdiv co cv cexp cn wrex rpre wa cc0 adantr
      rpap0 rerecclapd expnbnd syl3an1 wb rpregt0 3ad2ant1 nnnn0 reexpcl sylan2
      cn0 adantlr cz simpll nnz adantl 0lt1 wi 0re 1re mp3an12 mpani imp expgt0
      lttr syl3anc jca 3adantl1 ltrec1 syl2anc rexbidva mpbid ) ADEZBFEZGBHIZJZ
      GAKLZBCMZNLZHIZCOPZGVSKLAHIZCOPVMVQFEVNVOWAVMAAQAUAUBVQBCUCUDVPVTWBCOVPVR
      OEZRAFESAHIRZVSFEZSVSHIZRZVTWBUEVPWDWCVMVNWDVOAUFUGTVNVOWCWGVMVNVORZWCRZW
      EWFVNWCWEVOWCVNVRUKEWEVRUHBVRUIUJULWIVNVRUMEZSBHIZWFVNVOWCUNWCWJWHVRUOUPW
      HWKWCVNVOWKVNSGHIZVOWKUQSFEGFEVNWLVORWKURUSUTSGBVEVAVBVCTBVRVDVFVGVHAVSVI
      VJVKVL $.

    $( The reciprocal of exponentiation with a mantissa greater than 1 has no
       lower bound.  (Contributed by NM, 18-Jul-2008.)  (Proof shortened by
       Mario Carneiro, 5-Jun-2014.) $)
    expnlbnd2 $p |- ( ( A e. RR+ /\ B e. RR /\ 1 < B ) ->
          E. j e. NN A. k e. ( ZZ>= ` j ) ( 1 / ( B ^ k ) ) < A ) $=
      ( crp wcel cr c1 clt wbr cv cexp co cdiv cn wrex wa wi cle mpd w3a simpl2
      cuz cfv wral expnlbnd simpl3 1re ltle sylancr simprr leexp2a syl3anc 0red
      cz cc0 1red a1i lttrd elrpd nnz ad2antrl rpexpcl syl2anc eluzelz ad2antll
      0lt1 lerecd mpbid rprecred simpl1 rpred lelttr anassrs ralrimdva reximdva
      mpand ) AEFZBGFZHBIJZUAZHBCKZLMZNMZAIJZCOPHBDKZLMZNMZAIJZDWBUCUDZUEZCOPAB
      CUFWAWEWKCOWAWBOFZQWEWIDWJWAWLWFWJFZWEWIRWAWLWMQZQZWHWDSJZWEWIWOWCWGSJZWP
      WOVSHBSJZWMWQVRVSVTWNUBZWOVTWRVRVSVTWNUGZWOHGFVSVTWRRUHWSHBUIUJTWAWLWMUKB
      WBWFULUMWOWCWGWOBEFZWBUOFZWCEFWOBWSWOUPHBWOUNWOUQWSUPHIJWOVGURWTUSUTZWLXB
      WAWMWBVAVBBWBVCVDZWOXAWFUOFZWGEFXCWMXEWAWLWBWFVEVFBWFVCVDZVHVIWOWHGFWDGFA
      GFWPWEQWIRWOWGXFVJWOWCXDVJWOAVRVSVTWNVKVLWHWDAVMUMVQVNVOVPT $.
  $}

  ${
    expcld.1 $e |- ( ph -> A e. CC ) $.
    $( Value of a complex number raised to the 0th power.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    exp0d $p |- ( ph -> ( A ^ 0 ) = 1 ) $=
      ( cc wcel cc0 cexp co c1 wceq exp0 syl ) ABDEBFGHIJCBKL $.

    $( Value of a complex number raised to the first power.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    exp1d $p |- ( ph -> ( A ^ 1 ) = A ) $=
      ( cc wcel c1 cexp co wceq exp1 syl ) ABDEBFGHBICBJK $.

    ${
      expeq0d.2 $e |- ( ph -> N e. NN ) $.
      expeq0d.3 $e |- ( ph -> ( A ^ N ) = 0 ) $.
      $( Positive integer exponentiation is 0 iff its mantissa is 0.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      expeq0d $p |- ( ph -> A = 0 ) $=
        ( cexp co cc0 wceq cc wcel cn wb expeq0 syl2anc mpbid ) ABCGHIJZBIJZFAB
        KLCMLRSNDEBCOPQ $.
    $}

    $( Value of square.  Inference version.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    sqvald $p |- ( ph -> ( A ^ 2 ) = ( A x. A ) ) $=
      ( cc wcel c2 cexp co cmul wceq sqval syl ) ABDEBFGHBBIHJCBKL $.

    $( Closure of square.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    sqcld $p |- ( ph -> ( A ^ 2 ) e. CC ) $=
      ( cc wcel c2 cexp co sqcl syl ) ABDEBFGHDECBIJ $.

    ${
      sqeq0d.1 $e |- ( ph -> ( A ^ 2 ) = 0 ) $.
      $( A number is zero iff its square is zero.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      sqeq0d $p |- ( ph -> A = 0 ) $=
        ( c2 cn wcel 2nn a1i expeq0d ) ABECEFGAHIDJ $.
    $}

    ${
      expcld.2 $e |- ( ph -> N e. NN0 ) $.
      $( Closure law for nonnegative integer exponentiation.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      expcld $p |- ( ph -> ( A ^ N ) e. CC ) $=
        ( cc wcel cn0 cexp co expcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

      $( Value of a complex number raised to a nonnegative integer power plus
         one.  Part of Definition 10-4.1 of [Gleason] p. 134.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      expp1d $p |- ( ph -> ( A ^ ( N + 1 ) ) = ( ( A ^ N ) x. A ) ) $=
        ( cc wcel cn0 c1 caddc co cexp cmul wceq expp1 syl2anc ) ABFGCHGBCIJKLK
        BCLKBMKNDEBCOP $.

      expaddd.2 $e |- ( ph -> M e. NN0 ) $.
      $( Sum of exponents law for nonnegative integer exponentiation.
         Proposition 10-4.2(a) of [Gleason] p. 135.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      expaddd $p |- ( ph -> ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
        ( cc wcel cn0 caddc co cexp cmul wceq expadd syl3anc ) ABHICJIDJIBCDKLM
        LBCMLBDMLNLOEGFBCDPQ $.

      $( Product of exponents law for positive integer exponentiation.
         Proposition 10-4.2(b) of [Gleason] p. 135, restricted to nonnegative
         integer exponents.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      expmuld $p |- ( ph -> ( A ^ ( M x. N ) ) = ( ( A ^ M ) ^ N ) ) $=
        ( cc wcel cn0 cmul co cexp wceq expmul syl3anc ) ABHICJIDJIBCDKLMLBCMLD
        MLNEGFBCDOP $.
    $}

    ${
      sqrecd.1 $e |- ( ph -> A # 0 ) $.
      $( Square of reciprocal.  (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      sqrecapd $p |- ( ph -> ( ( 1 / A ) ^ 2 ) = ( 1 / ( A ^ 2 ) ) ) $=
        ( cc wcel cc0 cap c1 cdiv co c2 cexp wceq cz 2z exprecap mp3an3 syl2anc
        wbr ) ABEFZBGHTZIBJKLMKIBLMKJKNZCDUAUBLOFUCPBLQRS $.

      expclzd.3 $e |- ( ph -> N e. ZZ ) $.
      $( Closure law for integer exponentiation.  (Contributed by Jim Kingdon,
         12-Jun-2020.) $)
      expclzapd $p |- ( ph -> ( A ^ N ) e. CC ) $=
        ( cc wcel cc0 cap wbr cz cexp co expclzap syl3anc ) ABGHBIJKCLHBCMNGHDE
        FBCOP $.

      $( Nonnegative integer exponentiation is nonzero if its mantissa is
         nonzero.  (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expap0d $p |- ( ph -> ( A ^ N ) # 0 ) $=
        ( cc wcel cc0 cap wbr cz cexp co expap0i syl3anc ) ABGHBIJKCLHBCMNIJKDE
        FBCOP $.

      $( Value of a complex number raised to a negative power.  (Contributed by
         Jim Kingdon, 12-Jun-2020.) $)
      expnegapd $p |- ( ph -> ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cz cneg cexp co c1 cdiv wceq expnegzap syl3anc )
        ABGHBIJKCLHBCMNOPBCNOQORDEFBCST $.

      $( Nonnegative integer exponentiation of a reciprocal.  (Contributed by
         Jim Kingdon, 12-Jun-2020.) $)
      exprecapd $p |- ( ph -> ( ( 1 / A ) ^ N ) = ( 1 / ( A ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cz c1 cdiv co cexp wceq exprecap syl3anc ) ABGHBI
        JKCLHMBNOCPOMBCPONOQDEFBCRS $.

      $( Value of a nonzero complex number raised to an integer power plus
         one.  (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expp1zapd $p |- ( ph -> ( A ^ ( N + 1 ) ) = ( ( A ^ N ) x. A ) ) $=
        ( cc wcel cc0 cap wbr cz c1 caddc co cexp cmul wceq expp1zap syl3anc )
        ABGHBIJKCLHBCMNOPOBCPOBQORDEFBCST $.

      $( Value of a complex number raised to an integer power minus one.
         (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expm1apd $p |- ( ph -> ( A ^ ( N - 1 ) ) = ( ( A ^ N ) / A ) ) $=
        ( cc wcel cc0 cap wbr cz c1 cmin co cexp cdiv wceq expm1ap syl3anc ) AB
        GHBIJKCLHBCMNOPOBCPOBQORDEFBCST $.

      expsubd.3 $e |- ( ph -> M e. ZZ ) $.
      $( Exponent subtraction law for nonnegative integer exponentiation.
         (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expsubapd $p |- ( ph -> ( A ^ ( M - N ) ) =
          ( ( A ^ M ) / ( A ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cz cmin co cexp cdiv wceq expsubap syl22anc ) ABI
        JBKLMCNJDNJBCDOPQPBCQPBDQPRPSEFHGBCDTUA $.
    $}

    mulexpd.2 $e |- ( ph -> B e. CC ) $.
    $( Distribution of square over multiplication.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    sqmuld $p |- ( ph -> ( ( A x. B ) ^ 2 ) = ( ( A ^ 2 ) x. ( B ^ 2 ) ) ) $=
      ( cc wcel cmul co c2 cexp wceq sqmul syl2anc ) ABFGCFGBCHIJKIBJKICJKIHILD
      EBCMN $.

    ${
      sqdivapd.3 $e |- ( ph -> B # 0 ) $.
      $( Distribution of square over division.  (Contributed by Jim Kingdon,
         13-Jun-2020.) $)
      sqdivapd $p |- ( ph -> ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c2 cexp wceq sqdivap syl3anc ) ABGHCGHCIJ
        KBCLMNOMBNOMCNOMLMPDEFBCQR $.

      expdivapd.3 $e |- ( ph -> N e. NN0 ) $.
      $( Nonnegative integer exponentiation of a quotient.  (Contributed by Jim
         Kingdon, 13-Jun-2020.) $)
      expdivapd $p |- ( ph -> ( ( A / B ) ^ N ) =
          ( ( A ^ N ) / ( B ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cn0 cdiv co cexp wceq expdivap syl121anc ) ABIJCI
        JCKLMDNJBCOPDQPBDQPCDQPOPREFGHBCDST $.
    $}

    mulexpd.3 $e |- ( ph -> N e. NN0 ) $.
    $( Positive integer exponentiation of a product.  Proposition 10-4.2(c) of
       [Gleason] p. 135, restricted to nonnegative integer exponents.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    mulexpd $p |- ( ph -> ( ( A x. B ) ^ N ) = ( ( A ^ N ) x. ( B ^ N ) ) ) $=
      ( cc wcel cn0 cmul co cexp wceq mulexp syl3anc ) ABHICHIDJIBCKLDMLBDMLCDM
      LKLNEFGBCDOP $.
  $}

  ${
    0exp.1 $e |- ( ph -> N e. NN ) $.
    $( Value of zero raised to a positive integer power.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    0expd $p |- ( ph -> ( 0 ^ N ) = 0 ) $=
      ( cn wcel cc0 cexp co wceq 0exp syl ) ABDEFBGHFICBJK $.
  $}

  ${
    reexpcld.1 $e |- ( ph -> A e. RR ) $.
    reexpcld.2 $e |- ( ph -> N e. NN0 ) $.
    $( Closure of exponentiation of reals.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    reexpcld $p |- ( ph -> ( A ^ N ) e. RR ) $=
      ( cr wcel cn0 cexp co reexpcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

    ${
      expge0d.3 $e |- ( ph -> 0 <_ A ) $.
      $( Nonnegative integer exponentiation with a nonnegative mantissa is
         nonnegative.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      expge0d $p |- ( ph -> 0 <_ ( A ^ N ) ) $=
        ( cr wcel cn0 cc0 cle wbr cexp co expge0 syl3anc ) ABGHCIHJBKLJBCMNKLDE
        FBCOP $.
    $}

    ${
      expge1d.3 $e |- ( ph -> 1 <_ A ) $.
      $( Nonnegative integer exponentiation with a nonnegative mantissa is
         nonnegative.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      expge1d $p |- ( ph -> 1 <_ ( A ^ N ) ) $=
        ( cr wcel cn0 c1 cle wbr cexp co expge1 syl3anc ) ABGHCIHJBKLJBCMNKLDEF
        BCOP $.
    $}
  $}

  ${
    nnexpcld.1 $e |- ( ph -> A e. NN ) $.
    $( The naturals are closed under squaring.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nnsqcld $p |- ( ph -> ( A ^ 2 ) e. NN ) $=
      ( cn wcel c2 cexp co nnsqcl syl ) ABDEBFGHDECBIJ $.

    nnexpcld.2 $e |- ( ph -> N e. NN0 ) $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    nnexpcld $p |- ( ph -> ( A ^ N ) e. NN ) $=
      ( cn wcel cn0 cexp co nnexpcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.
  $}

  ${
    nn0expcld.1 $e |- ( ph -> A e. NN0 ) $.
    nn0expcld.2 $e |- ( ph -> N e. NN0 ) $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    nn0expcld $p |- ( ph -> ( A ^ N ) e. NN0 ) $=
      ( cn0 wcel cexp co nn0expcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  ${
    rpexpcld.1 $e |- ( ph -> A e. RR+ ) $.
    rpexpcld.2 $e |- ( ph -> N e. ZZ ) $.
    $( Closure law for exponentiation of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpexpcld $p |- ( ph -> ( A ^ N ) e. RR+ ) $=
      ( crp wcel cz cexp co rpexpcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.
  $}

  ${
    reexpclzapd.1 $e |- ( ph -> A e. RR ) $.
    reexpclzapd.2 $e |- ( ph -> A # 0 ) $.
    reexpclzapd.3 $e |- ( ph -> N e. ZZ ) $.
    $( Closure of exponentiation of reals.  (Contributed by Jim Kingdon,
       13-Jun-2020.) $)
    reexpclzapd $p |- ( ph -> ( A ^ N ) e. RR ) $=
      ( cr wcel cc0 cap wbr cz cexp co reexpclzap syl3anc ) ABGHBIJKCLHBCMNGHDE
      FBCOP $.
  $}

  ${
    resqcld.1 $e |- ( ph -> A e. RR ) $.
    $( Closure of square in reals.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    resqcld $p |- ( ph -> ( A ^ 2 ) e. RR ) $=
      ( cr wcel c2 cexp co resqcl syl ) ABDEBFGHDECBIJ $.

    $( A square of a real is nonnegative.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    sqge0d $p |- ( ph -> 0 <_ ( A ^ 2 ) ) $=
      ( cr wcel cc0 c2 cexp co cle wbr sqge0 syl ) ABDEFBGHIJKCBLM $.

    ${
      sqgt0apd.2 $e |- ( ph -> A # 0 ) $.
      $( The square of a real apart from zero is positive.  (Contributed by Jim
         Kingdon, 13-Jun-2020.) $)
      sqgt0apd $p |- ( ph -> 0 < ( A ^ 2 ) ) $=
        ( cr wcel cc0 cap wbr c2 cexp co clt sqgt0ap syl2anc ) ABEFBGHIGBJKLMIC
        DBNO $.
    $}

    ${
      leexp2ad.2 $e |- ( ph -> 1 <_ A ) $.
      leexp2ad.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      $( Ordering relationship for exponentiation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      leexp2ad $p |- ( ph -> ( A ^ M ) <_ ( A ^ N ) ) $=
        ( cr wcel c1 cle wbr cuz cfv cexp co leexp2a syl3anc ) ABHIJBKLDCMNIBCO
        PBDOPKLEFGBCDQR $.
    $}

    ${
      leexp2rd.2 $e |- ( ph -> M e. NN0 ) $.
      leexp2rd.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      leexp2rd.4 $e |- ( ph -> 0 <_ A ) $.
      leexp2rd.5 $e |- ( ph -> A <_ 1 ) $.
      $( Ordering relationship for exponentiation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      leexp2rd $p |- ( ph -> ( A ^ N ) <_ ( A ^ M ) ) $=
        ( cr wcel cn0 cuz cfv cc0 cle wbr c1 cexp co leexp2r syl32anc ) ABJKCLK
        DCMNKOBPQBRPQBDSTBCSTPQEFGHIBCDUAUB $.
    $}

    lt2sqd.2 $e |- ( ph -> B e. RR ) $.
    lt2sqd.3 $e |- ( ph -> 0 <_ A ) $.
    lt2sqd.4 $e |- ( ph -> 0 <_ B ) $.
    $( The square function on nonnegative reals is strictly monotonic.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    lt2sqd $p |- ( ph -> ( A < B <-> ( A ^ 2 ) < ( B ^ 2 ) ) ) $=
      ( cr wcel cc0 cle wbr clt c2 cexp co wb lt2sq syl22anc ) ABHIJBKLCHIJCKLB
      CMLBNOPCNOPMLQDFEGBCRS $.

    $( The square function on nonnegative reals is monotonic.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    le2sqd $p |- ( ph -> ( A <_ B <-> ( A ^ 2 ) <_ ( B ^ 2 ) ) ) $=
      ( cr wcel cc0 cle wbr c2 cexp co wb le2sq syl22anc ) ABHIJBKLCHIJCKLBCKLB
      MNOCMNOKLPDFEGBCQR $.

    sq11d.5 $e |- ( ph -> ( A ^ 2 ) = ( B ^ 2 ) ) $.
    $( The square function is one-to-one for nonnegative reals.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    sq11d $p |- ( ph -> A = B ) $=
      ( c2 cexp co wceq cr wcel cc0 cle wbr wb sq11 syl22anc mpbid ) ABIJKCIJKL
      ZBCLZHABMNOBPQCMNOCPQUBUCRDFEGBCSTUA $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
        Elementary real and complex functions
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Real and imaginary parts; conjugate
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Re $. $( Real part of a complex number. $)
  $c Im $. $( Imaginary part of a complex number. $)
  $c * $. $( Complex conjugate function. $)

  $( Extend class notation to include complex conjugate function. $)
  ccj $a class * $.

  $( Extend class notation to include real part of a complex number. $)
  cre $a class Re $.

  $( Extend class notation to include imaginary part of a complex number. $)
  cim $a class Im $.

  ${
    $d x y $.
    $( Define the complex conjugate function.  See ~ cjcli for its closure and
       ~ cjval for its value.  (Contributed by NM, 9-May-1999.)  (Revised by
       Mario Carneiro, 6-Nov-2013.) $)
    df-cj $a |- * = ( x e. CC |-> ( iota_ y e. CC
                 ( ( x + y ) e. RR /\ ( _i x. ( x - y ) ) e. RR ) ) ) $.

    $( Define a function whose value is the real part of a complex number.  See
       ~ reval for its value, ~ recli for its closure, and ~ replim for its use
       in decomposing a complex number.  (Contributed by NM, 9-May-1999.) $)
    df-re $a |- Re = ( x e. CC |-> ( ( x + ( * ` x ) ) / 2 ) ) $.

    $( Define a function whose value is the imaginary part of a complex
       number.  See ~ imval for its value, ~ imcli for its closure, and
       ~ replim for its use in decomposing a complex number.  (Contributed by
       NM, 9-May-1999.) $)
    df-im $a |- Im = ( x e. CC |-> ( Re ` ( x / _i ) ) ) $.
  $}

  ${
    $d x y A $.
    $( The value of the conjugate of a complex number.  (Contributed by Mario
       Carneiro, 6-Nov-2013.) $)
    cjval $p |- ( A e. CC -> ( * ` A ) = ( iota_ x e. CC
          ( ( A + x ) e. RR /\ ( _i x. ( A - x ) ) e. RR ) ) ) $=
      ( vy cc wcel cv caddc co cr ci cmin cmul wa crio ccj cfv wceq wreu eleq1d
      oveq1 cju riotacl syl oveq2d anbi12d riotabidv df-cj fvmptg mpdan ) BDEZB
      AFZGHZIEZJBUKKHZLHZIEZMZADNZDEZBOPURQUJUQADRUSABUAUQADUBUCCBCFZUKGHZIEZJU
      TUKKHZLHZIEZMZADNURDDOUTBQZVFUQADVGVBUMVEUPVGVAULIUTBUKGTSVGVDUOIVGVCUNJL
      UTBUKKTUDSUEUFCAUGUHUI $.

    $( The defining property of the complex conjugate.  (Contributed by Mario
       Carneiro, 6-Nov-2013.) $)
    cjth $p |- ( A e. CC ->
          ( ( A + ( * ` A ) ) e. RR /\ ( _i x. ( A - ( * ` A ) ) ) e. RR ) ) $=
      ( vx cc wcel cv caddc co cr ci cmin cmul ccj cfv wsbc crio wreu syl oveq2
      wa eleq1d riotasbc cjval sbceq1d mpbird wb riotacl eqeltrd oveq2d anbi12d
      cju wceq sbcieg mpbid ) ACDZABEZFGZHDZIAUOJGZKGZHDZSZBALMZNZAVBFGZHDZIAVB
      JGZKGZHDZSZUNVCVABVABCOZNZUNVABCPZVKBAUJZVABCUAQUNVABVBVJBAUBZUCUDUNVBCDV
      CVIUEUNVBVJCVNUNVLVJCDVMVABCUFQUGVAVIBVBCUOVBUKZUQVEUTVHVOUPVDHUOVBAFRTVO
      USVGHVOURVFIKUOVBAJRUHTUIULQUM $.

    $( Domain and codomain of the conjugate function.  (Contributed by Mario
       Carneiro, 6-Nov-2013.) $)
    cjf $p |- * : CC --> CC $=
      ( vx vy cc cv caddc co cr wcel ci cmin cmul wa crio ccj df-cj cju riotacl
      wreu syl fmpti ) ACCADZBDZEFGHIUAUBJFKFGHLZBCMZNABOUACHUCBCRUDCHBUAPUCBCQ
      ST $.

    $( The conjugate of a complex number is a complex number (closure law).
       (Contributed by NM, 10-May-1999.)  (Revised by Mario Carneiro,
       6-Nov-2013.) $)
    cjcl $p |- ( A e. CC -> ( * ` A ) e. CC ) $=
      ( cc ccj cjf ffvelrni ) BBACDE $.

    $( The value of the real part of a complex number.  (Contributed by NM,
       9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    reval $p |- ( A e. CC -> ( Re ` A ) = ( ( A + ( * ` A ) ) / 2 ) ) $=
      ( vx cc wcel ccj cfv caddc co c2 cdiv cre wceq id addcld halfcld cv fveq2
      cjcl oveq12 mpdan oveq1d df-re fvmptg ) ACDZAAEFZGHZIJHZCDAKFUGLUDUFUDAUE
      UDMARNOBABPZUHEFZGHZIJHUGCCKUHALZUJUFIJUKUIUELUJUFLUHAEQUHAUIUEGSTUABUBUC
      T $.

    $( The value of the imaginary part of a complex number.  (Contributed by
       NM, 9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    imval $p |- ( A e. CC -> ( Im ` A ) = ( Re ` ( A / _i ) ) ) $=
      ( vx cc wcel ci cdiv co cre cfv cim wceq ccj caddc ax-icn a1i cc0 cap syl
      c2 id wbr iap0 divclapd reval cjcl addcld halfcld eqeltrd cv oveq1 fveq2d
      df-im fvmptg mpdan ) ACDZAEFGZHIZCDAJIUQKUOUQUPUPLIZMGZSFGZCUOUPCDZUQUTKU
      OAEUOTECDUONOEPQUAUOUBOUCZUPUDRUOUSUOUPURVBUOVAURCDVBUPUERUFUGUHBABUIZEFG
      ZHIUQCCJVCAKVDUPHVCAEFUJUKBULUMUN $.

    $( The imaginary part of a complex number in terms of the real part
       function.  (Contributed by NM, 12-May-2005.)  (Revised by Mario
       Carneiro, 6-Nov-2013.) $)
    imre $p |- ( A e. CC -> ( Im ` A ) = ( Re ` ( -u _i x. A ) ) ) $=
      ( cc wcel cim cfv ci cdiv co cre cneg cmul imval c1 cc0 cap wbr wceq iap0
      ax-icn divrecap2 mp3an23 irec oveq1i syl6eq fveq2d eqtrd ) ABCZADEAFGHZIE
      FJZAKHZIEALUGUHUJIUGUHMFGHZAKHZUJUGFBCFNOPUHULQSRAFTUAUKUIAKUBUCUDUEUF $.

    $( The real part of a complex number in terms of the imaginary part
       function.  (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    reim $p |- ( A e. CC -> ( Re ` A ) = ( Im ` ( _i x. A ) ) ) $=
      ( cc wcel ci cmul co cim cfv cdiv cre wceq ax-icn mulcl imval syl cc0 cap
      mpan wbr iap0 divcanap3 mp3an23 fveq2d eqtr2d ) ABCZDAEFZGHZUFDIFZJHZAJHU
      EUFBCZUGUIKDBCZUEUJLDAMRUFNOUEUHAJUEUKDPQSUHAKLTADUAUBUCUD $.

    $( The real part of a complex number is real.  (Contributed by NM,
       9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    recl $p |- ( A e. CC -> ( Re ` A ) e. RR ) $=
      ( cc wcel cre cfv caddc co c2 cdiv cr reval ci cmin cmul simpld rehalfcld
      ccj cjth eqeltrd ) ABCZADEAAQEZFGZHIGJAKTUBTUBJCLAUAMGNGJCAROPS $.

    $( The imaginary part of a complex number is real.  (Contributed by NM,
       9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    imcl $p |- ( A e. CC -> ( Im ` A ) e. RR ) $=
      ( cc wcel cim cfv ci cneg cmul co cre imre negicn mulcl mpan recl eqeltrd
      cr syl ) ABCZADEFGZAHIZJEZQAKSUABCZUBQCTBCSUCLTAMNUAORP $.

    $( Domain and codomain of the real part function.  (Contributed by Paul
       Chapman, 22-Oct-2007.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    ref $p |- Re : CC --> RR $=
      ( vx cc cr cv ccj cfv caddc co c2 cdiv cre df-re wcel reval recl eqeltrrd
      fmpti ) ABCADZREFGHIJHZKALRBMRKFSCRNROPQ $.

    $( Domain and codomain of the imaginary part function.  (Contributed by
       Paul Chapman, 22-Oct-2007.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    imf $p |- Im : CC --> RR $=
      ( vx cc cr cv ci cdiv co cre cfv cim df-im wcel imval imcl eqeltrrd fmpti
      ) ABCADZEFGHIZJAKQBLQJIRCQMQNOP $.

    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by NM, 12-May-2005.)  (Revised by Mario
       Carneiro, 7-Nov-2013.) $)
    crre $p |- ( ( A e. RR /\ B e. RR )
        -> ( Re ` ( A + ( _i x. B ) ) ) = A ) $=
      ( cr wcel ci cmul co caddc c2 cdiv cc ax-icn mulcl sylancr syl addcld a1i
      cmin oveq1d 3eqtr4d cre cfv ccj wceq recn addcl syl2an reval cjcl halfcld
      wa adantr cc0 recl eqeltrrd simpl resubcld adantl subcld pnpcand pnpcan2d
      subdid eqtr4d addsubd subsubd 2timesd oveq2d 2cn cap divsubdirapd 3eqtr3d
      wbr 2ap0 divcanap3d mulassd divassapd oveq12d c1 ixi neg1rr eqeltri simpr
      cneg remulcl cjth simprd rehalfcld eqeltrd rimul syl2anc subeq0d eqtrd )
      ACDZBCDZUKZAEBFGZHGZUAUBZWQWQUCUBZHGZIJGZAWOWQKDZWRXAUDWMAKDZWPKDZXBWNAUE
      ZWNEKDZBKDZXDLBUEZEBMZNAWPUFUGZWQUHOZWOXAAWOWTWOWQWSXJWOXBWSKDXJWQUIOZPZU
      JWMXCWNXEULZWOXAARGZCDEXOFGZCDXOUMUDWOXAAWOWRXACXKWOXBWRCDXJWQUNOUOWMWNUP
      UQWOXPEEFGZBFGZEWQWSRGZFGZIJGZRGZCWOEWPXSIJGZRGZFGEWPFGZEYCFGZRGXPYBWOEWP
      YCXFWOLQZWOXFXGXDLWNXGWMXHURZXINZWOXSWOWQWSXJXLUSZUJVBWOXOYDEFWOXAIAFGZIJ
      GZRGZIWPFGZIJGZYCRGZXOYDWOWTYKRGZIJGYNXSRGZIJGYMYPWOYQYRIJWOWTAAHGZRGZWPW
      PHGZXSRGZYQYRWOWQYSRGZWSHGUUAWQRGZWSHGYTUUBWOUUCUUDWSHWOUUCWPARGUUDWOAWPA
      XNYIXNUTWOWPAWPYIXNYIVAVCSWOWQWSYSXJXLWOAAXNXNPVDWOUUAWQWSWOWPWPYIYIPXJXL
      VETWOYKYSWTRWOAXNVFVGWOYNUUAXSRWOWPYIVFSTSWOWTYKIXMWOIKDZXCYKKDVHXNIAMNUU
      EWOVHQZIUMVIVLWOVMQZVJWOYNXSIWOUUEXDYNKDVHYIIWPMNYJUUFUUGVJVKWOYLAXARWOAI
      XNUUFUUGVNVGWOYOWPYCRWOWPIYIUUFUUGVNSVKVGWOXRYEYAYFRWOEEBYGYGYHVOWOEXSIYG
      YJUUFUUGVPVQTWOXRYAWOXQCDWNXRCDXQVRWCCVSVTWAWMWNWBXQBWDNWOXTWOXBXTCDZXJXB
      WTCDUUHWQWEWFOWGUQWHXOWIWJWKWL $.

    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by NM, 12-May-2005.)  (Revised by Mario
       Carneiro, 7-Nov-2013.) $)
    crim $p |- ( ( A e. RR /\ B e. RR )
        -> ( Im ` ( A + ( _i x. B ) ) ) = B ) $=
      ( cr wcel wa ci cmul co caddc cfv cdiv cre cneg cc wceq recn ax-icn mulcl
      sylancr iap0 cim addcl syl2an imval syl mpan cc0 cap wbr divdirap mpanr12
      3expa sylan2 c1 divrecap2 mp3an23 oveq1i a1i mulneg12 divcanap3 oveqan12d
      irec 3eqtrd negcl addcom sylan 3eqtrrd fveq2d id renegcl syl2anr 3eqtr2d
      crre ) ACDZBCDZEZAFBGHZIHZUAJZVRFKHZLJZBFAMZGHZIHZLJZBVPVRNDZVSWAOVNANDZV
      QNDZWFVOAPZVOFNDZBNDZWHQBPZFBRZSAVQUBUCVRUDUEVPWDVTLVNWGWKWDVTOVOWIWLWGWK
      EVTAFKHZVQFKHZIHZWCBIHZWDWKWGWHVTWPOZWJWKWHQWMUFWGWHEWJFUGUHUIZWRQTWGWHWJ
      WSEWRAVQFUJULUKUMWGWKWNWCWOBIWGWNUNFKHZAGHZFMZAGHZWCWGWJWSWNXAOQTAFUOUPXA
      XCOWGWTXBAGVBUQURWJWGXCWCOQFAUSUFVCWKWJWSWOBOQTBFUTUPVAWGWCNDZWKWQWDOWGWJ
      WBNDXDQAVDFWBRSWCBVEVFVGUCVHVOVOWBCDWEBOVNVOVIAVJBWBVMVKVL $.

    $( Reconstruct a complex number from its real and imaginary parts.
       (Contributed by NM, 10-May-1999.)  (Revised by Mario Carneiro,
       7-Nov-2013.) $)
    replim $p |- ( A e. CC -> A = ( ( Re ` A ) + ( _i x. ( Im ` A ) ) ) ) $=
      ( vx vy cc wcel cv ci cmul co caddc wceq cr wrex cre cfv cim cnre oveq12d
      oveq2d fveq2 wa crre crim eqcomd id eqeq12d syl5ibrcom rexlimivv syl ) AD
      EABFZGCFZHIZJIZKZCLMBLMAANOZGAPOZHIZJIZKZBCAQUNUSBCLLUJLEUKLEUAZUSUNUMUMN
      OZGUMPOZHIZJIZKUTVDUMUTVAUJVCULJUJUKUBUTVBUKGHUJUKUCSRUDUNAUMURVDUNUEUNUO
      VAUQVCJAUMNTUNUPVBGHAUMPTSRUFUGUHUI $.

    $( Value of the conjugate of a complex number.  The value is the real part
       minus ` _i ` times the imaginary part.  Definition 10-3.2 of [Gleason]
       p. 132.  (Contributed by NM, 10-May-1999.)  (Revised by Mario Carneiro,
       7-Nov-2013.) $)
    remim $p |- ( A e. CC ->
                      ( * ` A ) = ( ( Re ` A ) - ( _i x. ( Im ` A ) ) ) ) $=
      ( vx cc wcel caddc co cr ci cmin cmul wa wceq oveq1d recnd ax-icn sylancr
      cfv eqtrd readdcld eqeltrd ccj cv crio cre cjval replim recl imcl ppncand
      cim mulcl pnncand a1i adddid 3eqtr4d oveq2d mulass mp3an12 eqtr4d c1 cneg
      syl ixi neg1rr eqeltri remulcl wreu wb subcld oveq2 eleq1d anbi12d riota2
      cju syl2anc mpbi2and ) ACDZAUAQABUBZEFZGDZHAVRIFZJFZGDZKZBCUCZAUDQZHAUJQZ
      JFZIFZBAUEVQAWIEFZGDZHAWIIFZJFZGDZWEWILZVQWJWFWFEFZGVQWJWFWHEFZWIEFWPVQAW
      QWIEAUFZMVQWFWHWFVQWFAUGZNZVQHCDZWGCDWHCDOVQWGAUHZNZHWGUKPZWTUIRVQWFWFWSW
      SSTVQWMHHJFZWGWGEFZJFZGVQWMHHXFJFZJFZXGVQWLXHHJVQWQWIIFWHWHEFWLXHVQWFWHWH
      WTXDXDULVQAWQWIIWRMVQHWGWGXAVQOUMXCXCUNUOUPVQXFCDZXGXILZVQXFVQWGWGXBXBSZN
      XAXAXJXKOOHHXFUQURVBUSVQXEGDXFGDXGGDXEUTVAGVCVDVEXLXEXFVFPTVQWICDWDBCVGWK
      WNKZWOVHVQWFWHWTXDVIBAVNWDXMBCWIVRWILZVTWKWCWNXNVSWJGVRWIAEVJVKXNWBWMGXNW
      AWLHJVRWIAIVJUPVKVLVMVOVPR $.
  $}

  $( The imaginary part of a real number is 0.  (Contributed by NM,
     18-Mar-2005.)  (Revised by Mario Carneiro, 7-Nov-2013.) $)
  reim0 $p |- ( A e. RR -> ( Im ` A ) = 0 ) $=
    ( cr wcel ci cc0 cmul co caddc cim cfv wceq recn it0e0 oveq2i addid1 syl5eq
    cc syl fveq2d 0re crim mpan2 eqtr3d ) ABCZADEFGZHGZIJZAIJEUDUFAIUDAQCZUFAKA
    LUHUFAEHGAUEEAHMNAOPRSUDEBCUGEKTAEUAUBUC $.

  $( A number is real iff its imaginary part is 0.  (Contributed by NM,
     26-Sep-2005.) $)
  reim0b $p |- ( A e. CC -> ( A e. RR <-> ( Im ` A ) = 0 ) ) $=
    ( cc wcel cr cim cfv cc0 wceq reim0 wa ci cmul co caddc replim adantr oveq2
    cre it0e0 syl6eq oveq2d recl recnd addid1d sylan9eqr eqtrd eqeltrd impbid2
    ex ) ABCZADCZAEFZGHZAIUJUMUKUJUMJZAARFZDUNAUOKULLMZNMZUOUJAUQHUMAOPUMUJUQUO
    GNMUOUMUPGUONUMUPKGLMGULGKLQSTUAUJUOUJUOAUBZUCUDUEUFUJUODCUMURPUGUIUH $.

  $( A number is real iff it equals its real part.  Proposition 10-3.4(f) of
     [Gleason] p. 133.  (Contributed by NM, 20-Aug-2008.) $)
  rereb $p |- ( A e. CC -> ( A e. RR <-> ( Re ` A ) = A ) ) $=
    ( cc wcel cr cre cfv wceq wa ci cim co caddc cc0 replim adantr reim0 oveq2d
    cmul it0e0 syl6eq adantl recl recnd addid1d 3eqtrrd simpr eqeltrrd impbida
    ) ABCZADCZAEFZAGZUIUJHZAUKIAJFZRKZLKZUKMLKZUKUIAUPGUJANOUMUOMUKLUJUOMGUIUJU
    OIMRKMUJUNMIRAPQSTUAQUIUQUKGUJUIUKUIUKAUBZUCUDOUEUIULHUKADUIULUFUIUKDCULURO
    UGUH $.

  $( A product with a real multiplier apart from zero is real iff the
     multiplicand is real.  (Contributed by Jim Kingdon, 14-Jun-2020.) $)
  mulreap $p |- ( ( A e. CC /\ B e. RR /\ B # 0 )
         -> ( A e. RR <-> ( B x. A ) e. RR ) ) $=
    ( cc wcel cr cre cfv wceq co wb rereb 3ad2ant1 wa recnd caddc adantl ax-icn
    cmul ci mulcl cc0 cap wbr w3a recl recn anim1i 3adant1 mulcanap syl3anc cim
    simp1 adantr imcl sylancr adddid replim oveq2d mp3an1 syl2an 3eqtr4d fveq2d
    mul12 remulcl sylan2 crre syl2anc eqtr2d eqeq1d sylan bitr4d ancoms 3adant3
    syl 3bitr2d ) ACDZBEDZBUAUBUCZUDZAEDZAFGZAHZBWARIZBARIZHZWDEDZVPVQVTWBJVRAK
    LVSWACDZVPBCDZVRMZWEWBJVPVQWGVRVPWAAUEZNZLVPVQVRULVQVRWIVPVQWHVRBUFZUGUHWAA
    BUIUJVPVQWEWFJZVRVQVPWMVQVPMZWEWDFGZWDHZWFWNWCWOWDWNWOWCSBAUKGZRIZRIZOIZFGZ
    WCWNWDWTFWNBWASWQRIZOIZRIWCBXBRIZOIWDWTWNBWAXBVQWHVPWLUMVPWGVQWKPVPXBCDZVQV
    PSCDZWQCDZXEQVPWQAUNZNZSWQTUOPUPWNAXCBRVPAXCHVQAUQPURWNWSXDWCOVQWHXGWSXDHZV
    PWLXIXFWHXGXJQSBWQVCUSUTURVAVBWNWCEDZWREDZXAWCHVPVQWAEDXKWJBWAVDVEVPVQWQEDX
    LXHBWQVDVEWCWRVFVGVHVIWNWDCDZWFWPJVQWHVPXMWLBATVJWDKVNVKVLVMVO $.

  $( A real number equals its real part.  One direction of Proposition
     10-3.4(f) of [Gleason] p. 133.  (Contributed by Paul Chapman,
     7-Sep-2007.) $)
  rere $p |- ( A e. RR -> ( Re ` A ) = A ) $=
    ( cr wcel cre cfv wceq cc wb recn rereb syl ibi ) ABCZADEAFZMAGCMNHAIAJKL
    $.

  $( A number is real iff it equals its complex conjugate.  Proposition
     10-3.4(f) of [Gleason] p. 133.  (Contributed by NM, 2-Jul-2005.)  (Revised
     by Mario Carneiro, 14-Jul-2014.) $)
  cjreb $p |- ( A e. CC -> ( A e. RR <-> ( * ` A ) = A ) ) $=
    ( cc wcel ccj cfv wceq cre ci cneg cmul co caddc cr cmin recnd ax-icn mulcl
    cim sylancr cc0 negsubd mulneg2 oveq2d remim 3eqtr4rd replim eqeq12d negcld
    recl imcl addcand eqcom eqnegd syl5bb cap wbr wa wb iap0 pm3.2i a1i syl3anc
    mulcanap reim0b 3bitr4d 3bitrrd ) ABCZADEZAFAGEZHAREZIZJKZLKZVIHVJJKZLKZFVL
    VNFZAMCZVGVHVMAVOVGVIVNIZLKVIVNNKVMVHVGVIVNVGVIAUIOZVGHBCZVJBCZVNBCPVGVJAUJ
    OZHVJQSZUAVGVLVRVILVGVTWAVLVRFPWBHVJUBSUCAUDUEAUFUGVGVIVLVNVSVGVTVKBCZVLBCP
    VGVJWBUHZHVKQSWCUKVGVKVJFZVJTFZVPVQWFVJVKFVGWGVKVJULVGVJWBUMUNVGWDWAVTHTUOU
    PZUQZVPWFURWEWBWIVGVTWHPUSUTVAVKVJHVCVBAVDVEVF $.

  $( Real part of a complex conjugate.  (Contributed by Mario Carneiro,
     14-Jul-2014.) $)
  recj $p |- ( A e. CC -> ( Re ` ( * ` A ) ) = ( Re ` A ) ) $=
    ( cc wcel ccj cfv cre ci cim cneg cmul co caddc cmin recl recnd ax-icn imcl
    sylancr wceq cr mulcl negsubd mulneg2 oveq2d remim 3eqtr4rd fveq2d renegcld
    crre syl2anc eqtrd ) ABCZADEZFEAFEZGAHEZIZJKZLKZFEZUNULUMURFULUNGUOJKZIZLKU
    NUTMKURUMULUNUTULUNANZOULGBCZUOBCZUTBCPULUOAQZOZGUOUARUBULUQVAUNLULVCVDUQVA
    SPVFGUOUCRUDAUEUFUGULUNTCUPTCUSUNSVBULUOVEUHUNUPUIUJUK $.

  $( Real part of negative.  (Contributed by NM, 17-Mar-2005.)  (Revised by
     Mario Carneiro, 14-Jul-2014.) $)
  reneg $p |- ( A e. CC -> ( Re ` -u A ) = -u ( Re ` A ) ) $=
    ( cc wcel cneg cre cfv ci cim cmul co caddc recl recnd ax-icn mulcl sylancr
    imcl wceq cr renegcld negdid replim negeqd mulneg2 oveq2d fveq2d crre eqtrd
    3eqtr4d syl2anc ) ABCZADZEFAEFZDZGAHFZDZIJZKJZEFZUNUKULUREUKUMGUOIJZKJZDUNU
    TDZKJULURUKUMUTUKUMALZMUKGBCZUOBCZUTBCNUKUOAQZMZGUOOPUAUKAVAAUBUCUKUQVBUNKU
    KVDVEUQVBRNVGGUOUDPUEUIUFUKUNSCUPSCUSUNRUKUMVCTUKUOVFTUNUPUGUJUH $.

  $( Real part distributes over addition.  (Contributed by NM, 17-Mar-2005.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  readd $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Re ` ( A + B ) ) = ( ( Re ` A ) + ( Re ` B ) ) ) $=
    ( cc wcel caddc co cre cfv ci cmul cr recl adantr recnd ax-icn imcl sylancr
    cim mulcl adantl wa add4d replim oveqan12d a1i adddid oveq2d 3eqtr4d fveq2d
    wceq readdcl syl2an crre syl2anc eqtrd ) ACDZBCDZUAZABEFZGHAGHZBGHZEFZIARHZ
    BRHZEFZJFZEFZGHZVBURUSVGGURUTIVCJFZEFZVAIVDJFZEFZEFVBVIVKEFZEFUSVGURUTVIVAV
    KURUTUPUTKDZUQALZMNURICDZVCCDVICDOURVCUPVCKDZUQAPZMNZIVCSQURVAUQVAKDZUPBLZT
    NURVPVDCDVKCDOURVDUQVDKDZUPBPZTNZIVDSQUBUPUQAVJBVLEAUCBUCUDURVFVMVBEURIVCVD
    VPUROUEVSWDUFUGUHUIURVBKDZVEKDZVHVBUJUPVNVTWEUQVOWAUTVAUKULUPVQWBWFUQVRWCVC
    VDUKULVBVEUMUNUO $.

  $( Real part distributes over subtraction.  (Contributed by NM,
     17-Mar-2005.) $)
  resub $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Re ` ( A - B ) ) = ( ( Re ` A ) - ( Re ` B ) ) ) $=
    ( cc wcel wa cneg caddc cre cfv cmin negcl readd sylan2 reneg adantl negsub
    co wceq recl recnd oveq2d eqtrd fveq2d syl2an 3eqtr3d ) ACDZBCDZEZABFZGQZHI
    ZAHIZBHIZFZGQZABJQZHIULUMJQZUHUKULUIHIZGQZUOUGUFUICDUKUSRBKAUILMUHURUNULGUG
    URUNRUFBNOUAUBUHUJUPHABPUCUFULCDUMCDUOUQRUGUFULASTUGUMBSTULUMPUDUE $.

  $( Lemma for ~ remul , ~ immul , and ~ cjmul .  (Contributed by NM,
     28-Jul-1999.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  remullem $p |- ( ( A e. CC /\ B e. CC ) ->
    ( ( Re ` ( A x. B ) ) =
        ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) /\
      ( Im ` ( A x. B ) ) =
        ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) /\
      ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) ) ) $=
    ( cc wcel cmul co cre cfv cim cmin wceq caddc ci recnd ax-icn mulcl sylancr
    cr oveq12d remulcld wa ccj replim oveqan12d recl adantr imcl addcld adddird
    adantl adddid mulcld add42d cneg mul4d c1 oveq1i mulm1d syl5eq eqtrd oveq2d
    a1i negsubd addcomd mulassd mul12d 3eqtr4d 3eqtr2d 3eqtrd resubcld readdcld
    ixi fveq2d crre syl2anc crim syl subcld subdird subadd4d subdid eqtr4d 3jca
    remim ) ACDZBCDZUAZABEFZGHZAGHZBGHZEFZAIHZBIHZEFZJFZKWHIHZWJWNEFZWMWKEFZLFZ
    KWHUBHZAUBHZBUBHZEFZKWGWIWPMWTEFZLFZGHZWPWGWHXFGWGWHWJMWMEFZLFZWKMWNEFZLFZE
    FXIWKEFZXIXJEFZLFZXFWEWFAXIBXKEAUCBUCUDWGXIWKXJWGWJXHWGWJWEWJRDWFAUEUFZNZWG
    MCDZWMCDXHCDOWGWMWEWMRDWFAUGUFZNZMWMPQZUHWGWKWFWKRDWEBUEUJZNZWGXQWNCDXJCDOW
    GWNWFWNRDWEBUGUJZNZMWNPQZUKWGXNWLXHWKEFZLFZWJXJEFZXHXJEFZLFZLFWLYILFZYFYHLF
    ZLFXFWGXLYGXMYJLWGWJXHWKXPXTYBUIWGWJXHXJXPXTYEUISWGWLYIYFYHWGWLWGWJWKXOYATZ
    NZWGXHXJXTYEULZWGXHWKXTYBULZWGWJXJXPYEULZUMWGYKWPYLXELWGYKWLWOUNZLFWPWGYIYR
    WLLWGYIMMEFZWOEFZYRWGMWMMWNXQWGOVBZXSUUAYDUOWGYTUPUNZWOEFYRYSUUBWOEVLUQWGWO
    WGWOWGWMWNXRYCTZNZURUSUTVAWGWLWOYNUUDVCUTZWGMWSEFZMWREFZLFUUGUUFLFZYLXEWGUU
    FUUGWGXQWSCDUUFCDOWGWSWGWMWKXRYATZNZMWSPQWGXQWRCDUUGCDOWGWRWGWJWNXOYCTZNZMW
    RPQVDWGYFUUFYHUUGLWGMWMWKUUAXSYBVEZWGWJMWNXPUUAYDVFZSWGMWRWSUUAUULUUJUKZVGS
    VHVIZVMZWGWPRDZWTRDZXGWPKWGWLWOYMUUCVJZWGWRWSUUKUUIVKZWPWTVNVOZUTWGWQXFIHZW
    TWGWHXFIUUPVMWGUURUUSUVCWTKUUTUVAWPWTVPVOUTZWGXAWIMWQEFZJFZXDWGWHCDXAUVFKAB
    PWHWDVQWGXDWJXHJFZWKXJJFZEFWJUVHEFZXHUVHEFZJFZUVFWEWFXBUVGXCUVHEAWDBWDUDWGW
    JXHUVHXPXTWGWKXJYBYEVRVSWGWLYHJFZYFYIJFZJFYKYHYFLFZJFUVKUVFWGWLYHYFYIYNYQYP
    YOVTWGUVIUVLUVJUVMJWGWJWKXJXPYBYEWAWGXHWKXJXTYBYEWASWGWIYKUVEUVNJWGXGWPWIYK
    UVBUUQUUEVGWGXEUUHUVEUVNUUOWGWQWTMEUVDVAWGYHUUGYFUUFLUUNUUMSVGSVGVIWBWC $.

  $( Real part of a product.  (Contributed by NM, 28-Jul-1999.)  (Revised by
     Mario Carneiro, 14-Jul-2014.) $)
  remul $p |- ( ( A e. CC /\ B e. CC ) -> ( Re ` ( A x. B ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
    ( cc wcel wa cmul co cre cfv cim cmin wceq caddc ccj remullem simp1d ) ACDB
    CDEABFGZHIAHIZBHIZFGAJIZBJIZFGKGLQJIRUAFGTSFGMGLQNIANIBNIFGLABOP $.

  $( Real part of a product.  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  remul2 $p |- ( ( A e. RR /\ B e. CC ) ->
                 ( Re ` ( A x. B ) ) = ( A x. ( Re ` B ) ) ) $=
    ( cr wcel cc wa cmul cre cfv cim cmin cc0 wceq recn remul sylan rere oveq1d
    co recnd adantr reim0 imcl mul02d sylan9eq oveq12d recl mulcl syl2an 3eqtrd
    subid1d ) ACDZBEDZFZABGSHIZAHIZBHIZGSZAJIZBJIZGSZKSZAUQGSZLKSVCULAEDZUMUOVB
    MANZABOPUNURVCVALKUNUPAUQGULUPAMUMAQUARULUMVALUTGSLULUSLUTGAUBRUMUTUMUTBUCT
    UDUEUFUNVCULVDUQEDVCEDUMVEUMUQBUGTAUQUHUIUKUJ $.

  $( Real part of a division.  Related to ~ remul2 .  (Contributed by Jim
     Kingdon, 14-Jun-2020.) $)
  redivap $p |- ( ( A e. CC /\ B e. RR /\ B # 0 ) ->
              ( Re ` ( A / B ) ) = ( ( Re ` A ) / B ) ) $=
    ( cc wcel cr cc0 cap wbr w3a c1 cdiv co cmul cre cfv wa ancom 3anass bitr4i
    wceq rerecclap anim1i sylbir remul2 syl recn divrecap2 fveq2d syl3an2 recnd
    recl 3ad2ant1 3ad2ant2 simp3 divrecap2d 3eqtr4d ) ACDZBEDZBFGHZIZJBKLZAMLZN
    OZVAANOZMLZABKLZNOZVDBKLUTVAEDZUQPZVCVETUTURUSPZUQPZVIVKUQVJPUTVJUQQUQURUSR
    SVJVHUQBUAUBUCVAAUDUEURUQBCDZUSVGVCTBUFZUQVLUSIVFVBNABUGUHUIUTVDBUQURVDCDUS
    UQVDAUKUJULURUQVLUSVMUMUQURUSUNUOUP $.

  $( Imaginary part of a complex conjugate.  (Contributed by NM, 18-Mar-2005.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  imcj $p |- ( A e. CC -> ( Im ` ( * ` A ) ) = -u ( Im ` A ) ) $=
    ( cc wcel ccj cfv cim cre ci cneg cmul co caddc cmin recl recnd ax-icn imcl
    sylancr wceq cr mulcl negsubd mulneg2 oveq2d remim 3eqtr4rd fveq2d renegcld
    crim syl2anc eqtrd ) ABCZADEZFEAGEZHAFEZIZJKZLKZFEZUPULUMURFULUNHUOJKZIZLKU
    NUTMKURUMULUNUTULUNANZOULHBCZUOBCZUTBCPULUOAQZOZHUOUARUBULUQVAUNLULVCVDUQVA
    SPVFHUOUCRUDAUEUFUGULUNTCUPTCUSUPSVBULUOVEUHUNUPUIUJUK $.

  $( The imaginary part of a negative number.  (Contributed by NM,
     18-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  imneg $p |- ( A e. CC -> ( Im ` -u A ) = -u ( Im ` A ) ) $=
    ( cc wcel cneg cim cfv cre ci cmul co caddc recl recnd ax-icn mulcl sylancr
    imcl wceq cr renegcld negdid replim negeqd mulneg2 oveq2d fveq2d crim eqtrd
    3eqtr4d syl2anc ) ABCZADZEFAGFZDZHAEFZDZIJZKJZEFZUPUKULUREUKUMHUOIJZKJZDUNU
    TDZKJULURUKUMUTUKUMALZMUKHBCZUOBCZUTBCNUKUOAQZMZHUOOPUAUKAVAAUBUCUKUQVBUNKU
    KVDVEUQVBRNVGHUOUDPUEUIUFUKUNSCUPSCUSUPRUKUMVCTUKUOVFTUNUPUGUJUH $.

  $( Imaginary part distributes over addition.  (Contributed by NM,
     18-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  imadd $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Im ` ( A + B ) ) = ( ( Im ` A ) + ( Im ` B ) ) ) $=
    ( cc wcel caddc co cim cfv ci cmul cr recl adantr recnd ax-icn imcl sylancr
    cre mulcl adantl wa add4d replim oveqan12d a1i adddid oveq2d 3eqtr4d fveq2d
    wceq readdcl syl2an crim syl2anc eqtrd ) ACDZBCDZUAZABEFZGHARHZBRHZEFZIAGHZ
    BGHZEFZJFZEFZGHZVEURUSVGGURUTIVCJFZEFZVAIVDJFZEFZEFVBVIVKEFZEFUSVGURUTVIVAV
    KURUTUPUTKDZUQALZMNURICDZVCCDVICDOURVCUPVCKDZUQAPZMNZIVCSQURVAUQVAKDZUPBLZT
    NURVPVDCDVKCDOURVDUQVDKDZUPBPZTNZIVDSQUBUPUQAVJBVLEAUCBUCUDURVFVMVBEURIVCVD
    VPUROUEVSWDUFUGUHUIURVBKDZVEKDZVHVEUJUPVNVTWEUQVOWAUTVAUKULUPVQWBWFUQVRWCVC
    VDUKULVBVEUMUNUO $.

  $( Imaginary part distributes over subtraction.  (Contributed by NM,
     18-Mar-2005.) $)
  imsub $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Im ` ( A - B ) ) = ( ( Im ` A ) - ( Im ` B ) ) ) $=
    ( cc wcel wa cneg caddc cim cfv cmin negcl imadd sylan2 imneg adantl negsub
    co wceq imcl recnd oveq2d eqtrd fveq2d syl2an 3eqtr3d ) ACDZBCDZEZABFZGQZHI
    ZAHIZBHIZFZGQZABJQZHIULUMJQZUHUKULUIHIZGQZUOUGUFUICDUKUSRBKAUILMUHURUNULGUG
    URUNRUFBNOUAUBUHUJUPHABPUCUFULCDUMCDUOUQRUGUFULASTUGUMBSTULUMPUDUE $.

  $( Imaginary part of a product.  (Contributed by NM, 28-Jul-1999.)  (Revised
     by Mario Carneiro, 14-Jul-2014.) $)
  immul $p |- ( ( A e. CC /\ B e. CC ) -> ( Im ` ( A x. B ) ) =
           ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) ) $=
    ( cc wcel wa cmul co cre cfv cim cmin wceq caddc ccj remullem simp2d ) ACDB
    CDEABFGZHIAHIZBHIZFGAJIZBJIZFGKGLQJIRUAFGTSFGMGLQNIANIBNIFGLABOP $.

  $( Imaginary part of a product.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  immul2 $p |- ( ( A e. RR /\ B e. CC ) ->
                 ( Im ` ( A x. B ) ) = ( A x. ( Im ` B ) ) ) $=
    ( cr wcel cc wa cmul co cim cfv cre caddc wceq recn immul sylan rere oveq1d
    cc0 recnd adantr reim0 recl mul02d oveq12d imcl mulcl syl2an addid1d 3eqtrd
    sylan9eq ) ACDZBEDZFZABGHIJZAKJZBIJZGHZAIJZBKJZGHZLHZAUQGHZSLHVCULAEDZUMUOV
    BMANZABOPUNURVCVASLUNUPAUQGULUPAMUMAQUARULUMVASUTGHSULUSSUTGAUBRUMUTUMUTBUC
    TUDUKUEUNVCULVDUQEDVCEDUMVEUMUQBUFTAUQUGUHUIUJ $.

  $( Imaginary part of a division.  Related to ~ immul2 .  (Contributed by Jim
     Kingdon, 14-Jun-2020.) $)
  imdivap $p |- ( ( A e. CC /\ B e. RR /\ B # 0 ) ->
              ( Im ` ( A / B ) ) = ( ( Im ` A ) / B ) ) $=
    ( cc wcel cr cc0 cap wbr w3a c1 cdiv co cmul cim cfv wa ancom 3anass bitr4i
    wceq rerecclap anim1i sylbir immul2 syl recn divrecap2 fveq2d syl3an2 recnd
    imcl 3ad2ant1 3ad2ant2 simp3 divrecap2d 3eqtr4d ) ACDZBEDZBFGHZIZJBKLZAMLZN
    OZVAANOZMLZABKLZNOZVDBKLUTVAEDZUQPZVCVETUTURUSPZUQPZVIVKUQVJPUTVJUQQUQURUSR
    SVJVHUQBUAUBUCVAAUDUEURUQBCDZUSVGVCTBUFZUQVLUSIVFVBNABUGUHUIUTVDBUQURVDCDUS
    UQVDAUKUJULURUQVLUSVMUMUQURUSUNUOUP $.

  $( A real number equals its complex conjugate.  Proposition 10-3.4(f) of
     [Gleason] p. 133.  (Contributed by NM, 8-Oct-1999.) $)
  cjre $p |- ( A e. RR -> ( * ` A ) = A ) $=
    ( cc wcel cr ccj cfv wceq recn cjreb biimpd mpcom ) ABCZADCZAEFAGZAHLMNAIJK
    $.

  $( The conjugate of the conjugate is the original complex number.
     Proposition 10-3.4(e) of [Gleason] p. 133.  (Contributed by NM,
     29-Jul-1999.)  (Proof shortened by Mario Carneiro, 14-Jul-2014.) $)
  cjcj $p |- ( A e. CC -> ( * ` ( * ` A ) ) = A ) $=
    ( cc wcel ccj cfv cre ci cim cmul co caddc wceq cjcl recj eqtrd cneg negeqd
    syl imcj replim imcl recnd negnegd oveq2d oveq12d 3syl 3eqtr4d ) ABCZADEZDE
    ZFEZGUJHEZIJZKJZAFEZGAHEZIJZKJUJAUHUKUOUMUQKUHUKUIFEZUOUHUIBCZUKURLAMZUINRA
    NOUHULUPGIUHULUIHEZPZUPUHUSULVBLUTUISRUHVBUPPZPUPUHVAVCASQUHUPUHUPAUAUBUCOO
    UDUEUHUSUJBCUJUNLUTUIMUJTUFATUG $.

  $( Complex conjugate distributes over addition.  Proposition 10-3.4(a) of
     [Gleason] p. 133.  (Contributed by NM, 31-Jul-1999.)  (Revised by Mario
     Carneiro, 14-Jul-2014.) $)
  cjadd $p |- ( ( A e. CC /\ B e. CC ) ->
                   ( * ` ( A + B ) ) = ( ( * ` A ) + ( * ` B ) ) ) $=
    ( cc wcel caddc co cre cfv ci cim cmul cmin ccj ax-icn cr imcl adantr recnd
    adantl remim readd imadd oveq2d a1i adddid eqtrd oveq12d recl mulcl sylancr
    wa addsub4d wceq addcl syl oveqan12d 3eqtr4d ) ACDZBCDZUKZABEFZGHZIVAJHZKFZ
    LFZAGHZIAJHZKFZLFZBGHZIBJHZKFZLFZEFZVAMHZAMHZBMHZEFUTVEVFVJEFZVHVLEFZLFVNUT
    VBVRVDVSLABUAUTVDIVGVKEFZKFVSUTVCVTIKABUBUCUTIVGVKICDZUTNUDUTVGURVGODUSAPQR
    ZUTVKUSVKODURBPSRZUEUFUGUTVFVJVHVLUTVFURVFODUSAUHQRUTVJUSVJODURBUHSRUTWAVGC
    DVHCDNWBIVGUIUJUTWAVKCDVLCDNWCIVKUIUJULUFUTVACDVOVEUMABUNVATUOURUSVPVIVQVME
    ATBTUPUQ $.

  $( Complex conjugate distributes over multiplication.  Proposition 10-3.4(c)
     of [Gleason] p. 133.  (Contributed by NM, 29-Jul-1999.)  (Proof shortened
     by Mario Carneiro, 14-Jul-2014.) $)
  cjmul $p |- ( ( A e. CC /\ B e. CC ) ->
                   ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) ) $=
    ( cc wcel wa cmul co cre cfv cim cmin wceq caddc ccj remullem simp3d ) ACDB
    CDEABFGZHIAHIZBHIZFGAJIZBJIZFGKGLQJIRUAFGTSFGMGLQNIANIBNIFGLABOP $.

  $( Standard inner product on complex numbers.  (Contributed by NM,
     29-Jul-1999.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  ipcnval $p |- ( ( A e. CC /\ B e. CC ) -> ( Re ` ( A x. ( * ` B ) ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) + ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
    ( cc wcel wa cfv cmul co cre cmin cneg wceq adantl oveq2d imcl recnd syl2an
    cim recl mulcl ccj caddc cjcl remul recj imcj mulneg2 eqtrd oveq12d subnegd
    sylan2 3eqtrd ) ACDZBCDZEZABUAFZGHIFZAIFZUPIFZGHZARFZUPRFZGHZJHZURBIFZGHZVA
    BRFZGHZKZJHVFVHUBHUNUMUPCDUQVDLBUCAUPUDUKUOUTVFVCVIJUOUSVEURGUNUSVELUMBUEMN
    UOVCVAVGKZGHZVIUOVBVJVAGUNVBVJLUMBUFMNUMVACDZVGCDZVKVILUNUMVAAOPZUNVGBOPZVA
    VGUGQUHUIUOVFVHUMURCDVECDVFCDUNUMURASPUNVEBSPURVETQUMVLVMVHCDUNVNVOVAVGTQUJ
    UL $.

  $( A complex number times its conjugate is real.  (Contributed by NM,
     26-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjmulrcl $p |- ( A e. CC -> ( A x. ( * ` A ) ) e. RR ) $=
    ( cc wcel ccj cfv cmul co cr wceq cjcj oveq2d cjmul mpdan mulcom 3eqtr4d wb
    cjcl mulcl cjreb syl mpbird ) ABCZAADEZFGZHCZUDDEZUDIZUBUCUCDEZFGZUCAFGZUFU
    DUBUHAUCFAJKUBUCBCZUFUIIAQZAUCLMUBUKUDUJIULAUCNMOUBUDBCZUEUGPUBUKUMULAUCRMU
    DSTUA $.

  $( A complex number times its conjugate.  (Contributed by NM, 1-Feb-2007.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjmulval $p |- ( A e. CC -> ( A x. ( * ` A ) ) =
                 ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) $=
    ( cc wcel cre cfv c2 cexp cim caddc cmul ccj recl recnd sqvald imcl oveq12d
    co wceq ipcnval anidms cr cjmulrcl rere syl 3eqtr2rd ) ABCZADEZFGQZAHEZFGQZ
    IQUGUGJQZUIUIJQZIQZAAKEJQZDEZUNUFUHUKUJULIUFUGUFUGALMNUFUIUFUIAOMNPUFUOUMRA
    ASTUFUNUACUOUNRAUBUNUCUDUE $.

  $( A complex number times its conjugate is nonnegative.  (Contributed by NM,
     26-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjmulge0 $p |- ( A e. CC -> 0 <_ ( A x. ( * ` A ) ) ) $=
    ( cc wcel cc0 cre cfv c2 cexp co cim caddc ccj cmul cle recl resqcld sqge0d
    imcl addge0d cjmulval breqtrrd ) ABCZDAEFZGHIZAJFZGHIZKIAALFMINUBUDUFUBUCAO
    ZPUBUEARZPUBUCUGQUBUEUHQSATUA $.

  $( Complex conjugate of negative.  (Contributed by NM, 27-Feb-2005.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjneg $p |- ( A e. CC -> ( * ` -u A ) = -u ( * ` A ) ) $=
    ( cc wcel cneg cre cfv ci cim cmul co cmin ccj recl recnd imcl sylancr wceq
    ax-icn 3eqtr4d remim mulcl neg2subd reneg oveq2d mulneg2 oveq12d negsubdi2d
    imneg eqtrd negcl syl negeqd ) ABCZADZEFZGUNHFZIJZKJZAEFZGAHFZIJZKJZDZUNLFZ
    ALFZDUMUSDZVADZKJVAUSKJURVCUMUSVAUMUSAMNZUMGBCZUTBCZVABCRUMUTAONZGUTUAPZUBU
    MUOVFUQVGKAUCUMUQGUTDZIJZVGUMUPVMGIAUHUDUMVIVJVNVGQRVKGUTUEPUIUFUMUSVAVHVLU
    GSUMUNBCVDURQAUJUNTUKUMVEVBATULS $.

  $( A number plus its conjugate is twice its real part.  Compare Proposition
     10-3.4(h) of [Gleason] p. 133.  (Contributed by NM, 21-Jan-2007.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  addcj $p |- ( A e. CC -> ( A + ( * ` A ) ) = ( 2 x. ( Re ` A ) ) ) $=
    ( cc wcel c2 cre cfv cmul ccj caddc cdiv reval oveq2d wceq cjcl addcl mpdan
    co cc0 cap wbr 2cn 2ap0 divcanap2 mp3an23 syl eqtr2d ) ABCZDAEFZGQDAAHFZIQZ
    DJQZGQZUJUGUHUKDGAKLUGUJBCZULUJMZUGUIBCUMANAUIOPUMDBCDRSTUNUAUBUJDUCUDUEUF
    $.

  $( Complex conjugate distributes over subtraction.  (Contributed by NM,
     28-Apr-2005.) $)
  cjsub $p |- ( ( A e. CC /\ B e. CC ) ->
                   ( * ` ( A - B ) ) = ( ( * ` A ) - ( * ` B ) ) ) $=
    ( cc wcel wa cneg caddc ccj cfv cmin negcl cjadd sylan2 negsub fveq2d cjneg
    co wceq adantl cjcl oveq2d syl2an eqtrd 3eqtr3d ) ACDZBCDZEZABFZGQZHIZAHIZU
    HHIZGQZABJQZHIUKBHIZJQZUFUEUHCDUJUMRBKAUHLMUGUIUNHABNOUGUMUKUOFZGQZUPUGULUQ
    UKGUFULUQRUEBPSUAUEUKCDUOCDURUPRUFATBTUKUONUBUCUD $.

  ${
    $d j k A $.  $d j k N $.
    $( Complex conjugate of positive integer exponentiation.  (Contributed by
       NM, 7-Jun-2006.) $)
    cjexp $p |- ( ( A e. CC /\ N e. NN0 ) ->
               ( * ` ( A ^ N ) ) = ( ( * ` A ) ^ N ) ) $=
      ( vj vk cn0 wcel cc cexp co ccj cfv wi cc0 c1 oveq2 fveq2d eqeq12d imbi2d
      wceq cmul cv caddc exp0 cjcl cr 1re cjre ax-mp syl6eqr eqtr4d expp1 expcl
      syl wa simpl cjmul syl2anc eqtrd adantr oveq1 sylan sylan9eqr exp31 com12
      eqcomd a2d nn0ind impcom ) BEFAGFZABHIZJKZAJKZBHIZSZVIACUAZHIZJKZVLVOHIZS
      ZLVIAMHIZJKZVLMHIZSZLVIADUAZHIZJKZVLWDHIZSZLVIAWDNUBIZHIZJKZVLWIHIZSZLVIV
      NLCDBVOMSZVSWCVIWNVQWAVRWBWNVPVTJVOMAHOPVOMVLHOQRVOWDSZVSWHVIWOVQWFVRWGWO
      VPWEJVOWDAHOPVOWDVLHOQRVOWISZVSWMVIWPVQWKVRWLWPVPWJJVOWIAHOPVOWIVLHOQRVOB
      SZVSVNVIWQVQVKVRVMWQVPVJJVOBAHOPVOBVLHOQRVIWANJKZWBVIVTNJAUCPVIVLGFZWBWRS
      AUDZWSWBNWRVLUCNUEFWRNSUFNUGUHUIUMUJWDEFZVIWHWMVIXAWHWMLVIXAWHWMVIXAUNZWH
      UNWKWFVLTIZWLXBWKXCSWHXBWKWEATIZJKZXCXBWJXDJAWDUKPXBWEGFVIXEXCSAWDULVIXAU
      OWEAUPUQURUSWHXBXCWGVLTIZWLWFWGVLTUTXBWLXFVIWSXAWLXFSWTVLWDUKVAVEVBURVCVD
      VFVGVH $.
  $}

  $( The imaginary part of a number in terms of complex conjugate.
     (Contributed by NM, 30-Apr-2005.) $)
  imval2 $p |- ( A e. CC ->
    ( Im ` A ) = ( ( A - ( * ` A ) ) / ( 2 x. _i ) ) ) $=
    ( cc wcel cim cfv c2 ci cmul co cdiv ccj cmin wceq imcl recnd 2mulicn caddc
    syl ax-icn oveq1d cc0 cap wbr 2muliap0 divcanap4 mp3an23 recl mulcl sylancr
    cre addcld subsubd replim remim oveq12d 2timesd mulcom mpan2 mulass mp3an12
    2cn eqtrd pncan2d 3eqtr4d 3eqtr4rd eqtr3d ) ABCZADEZFGHIZHIZVIJIZVHAAKEZLIZ
    VIJIVGVHBCZVKVHMZVGVHANOZVNVIBCZVIUAUBUCVOPUDVHVIUEUFRVGVJVMVIJVGAUJEZGVHHI
    ZQIZVRVSLIZLIVTVRLIZVSQIZVMVJVGVTVRVSVGVRVSVGVRAUGOZVGGBCZVNVSBCSVPGVHUHUIZ
    UKWDWFULVGAVTVLWALAUMAUNUOVGFVSHIZVSVSQIVJWCVGVSWFUPVGVNVJWGMVPVNVJVIVHHIZW
    GVNVQVJWHMPVHVIUQURFBCWEVNWHWGMVASFGVHUSUTVBRVGWBVSVSQVGVRVSWDWFVCTVDVETVF
    $.

  $( The real part of zero.  (Contributed by NM, 27-Jul-1999.) $)
  re0 $p |- ( Re ` 0 ) = 0 $=
    ( cc0 cr wcel cre cfv wceq 0re rere ax-mp ) ABCADEAFGAHI $.

  $( The imaginary part of zero.  (Contributed by NM, 27-Jul-1999.) $)
  im0 $p |- ( Im ` 0 ) = 0 $=
    ( cc0 cr wcel cim cfv wceq 0re reim0 ax-mp ) ABCADEAFGAHI $.

  $( The real part of one.  (Contributed by Scott Fenton, 9-Jun-2006.) $)
  re1 $p |- ( Re ` 1 ) = 1 $=
    ( c1 cr wcel cre cfv wceq 1re rere ax-mp ) ABCADEAFGAHI $.

  $( The imaginary part of one.  (Contributed by Scott Fenton, 9-Jun-2006.) $)
  im1 $p |- ( Im ` 1 ) = 0 $=
    ( c1 cr wcel cim cfv cc0 wceq 1re reim0 ax-mp ) ABCADEFGHAIJ $.

  $( The real part of ` _i ` .  (Contributed by Scott Fenton, 9-Jun-2006.) $)
  rei $p |- ( Re ` _i ) = 0 $=
    ( cc0 ci c1 cmul co caddc cre ax-icn ax-1cn mulcli addid2i fveq2i wcel wceq
    cfv cr 0re 1re crre mp2an mulid1i 3eqtr3ri ) ABCDEZFEZGOZUCGOABGOUDUCGUCBCH
    IJKLAPMCPMUEANQRACSTUCBGBHUALUB $.

  $( The imaginary part of ` _i ` .  (Contributed by Scott Fenton,
     9-Jun-2006.) $)
  imi $p |- ( Im ` _i ) = 1 $=
    ( ci c1 cmul cim cfv cc0 ax-icn ax-1cn mulcli addid2i eqcomi fveq2i mulid1i
    co caddc cr wcel wceq 0re 1re crim mp2an 3eqtr3i ) ABCNZDEFUDONZDEZADEBUDUE
    DUEUDUDABGHIJKLUDADAGMLFPQBPQUFBRSTFBUAUBUC $.

  $( The conjugate of zero.  (Contributed by NM, 27-Jul-1999.) $)
  cj0 $p |- ( * ` 0 ) = 0 $=
    ( cc0 cr wcel ccj cfv wceq 0re cjre ax-mp ) ABCADEAFGAHI $.

  $( The complex conjugate of the imaginary unit.  (Contributed by NM,
     26-Mar-2005.) $)
  cji $p |- ( * ` _i ) = -u _i $=
    ( ci cre cfv cim cmul co cmin cc0 ccj cneg rei c1 imi oveq2i ax-icn mulid1i
    eqtri oveq12i cc wcel wceq remim ax-mp df-neg 3eqtr4i ) ABCZAADCZEFZGFZHAGF
    AICZAJUFHUHAGKUHALEFAUGLAEMNAOPQRASTUJUIUAOAUBUCAUDUE $.

  $( The conjugate of a representation of a complex number in terms of real and
     imaginary parts.  (Contributed by NM, 1-Jul-2005.) $)
  cjreim $p |- ( ( A e. RR /\ B e. RR ) -> ( * ` ( A + ( _i x. B ) ) ) =
                ( A - ( _i x. B ) ) ) $=
    ( cr wcel wa ci cmul co caddc ccj cfv cneg cc wceq recn ax-icn sylancr cjre
    syl2an 3eqtrd cmin mulcl cjadd cjmul cji oveq12d mulneg1 oveqan12d negsub
    a1i ) ACDZBCDZEAFBGHZIHJKZAJKZUMJKZIHZAUMLZIHZAUMUAHZUKAMDZUMMDZUNUQNULAOZU
    LFMDZBMDZVBPBOZFBUBQZAUMUCSUKULUOAUPURIARULUPFJKZBJKZGHZFLZBGHZURULVDVEUPVJ
    NPVFFBUDQULVHVKVIBGVHVKNULUEUJBRUFULVDVEVLURNPVFFBUGQTUHUKVAVBUSUTNULVCVGAU
    MUIST $.

  $( The conjugate of the representation of a complex number in terms of real
     and imaginary parts.  (Contributed by NM, 1-Jul-2005.)  (Proof shortened
     by Mario Carneiro, 29-May-2016.) $)
  cjreim2 $p |- ( ( A e. RR /\ B e. RR ) -> ( * ` ( A - ( _i x. B ) ) ) =
                ( A + ( _i x. B ) ) ) $=
    ( cr wcel wa ci cmul co caddc ccj cfv cmin cjreim fveq2d simpl recnd ax-icn
    cc wceq a1i simpr mulcld addcld cjcj syl eqtr3d ) ACDZBCDZEZAFBGHZIHZJKZJKZ
    AUJLHZJKUKUIULUNJABMNUIUKRDUMUKSUIAUJUIAUGUHOPUIFBFRDUIQTUIBUGUHUAPUBUCUKUD
    UEUF $.

  $( Complex conjugate is a one-to-one function.  (Contributed by NM,
     29-Apr-2005.)  (Proof shortened by Eric Schmidt, 2-Jul-2009.) $)
  cj11 $p |- ( ( A e. CC /\ B e. CC ) ->
              ( ( * ` A ) = ( * ` B ) <-> A = B ) ) $=
    ( cc wcel wa ccj cfv wceq fveq2 cjcj eqeqan12d syl5ib impbid1 ) ACDZBCDZEZA
    FGZBFGZHZABHZSQFGZRFGZHPTQRFINOUAAUBBAJBJKLABFIM $.

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Complex conjugate and apartness.  (Contributed by Jim Kingdon,
       14-Jun-2020.) $)
    cjap $p |- ( ( A e. CC /\ B e. CC ) ->
        ( ( * ` A ) # ( * ` B ) <-> A # B ) ) $=
      ( vx vy vz vw cc wcel wa cv ci cmul co caddc wceq cr wrex ccj cap wbr cfv
      wb cnre adantr ad3antlr cneg simplrr ad2antrr recnd apneg syl2anc simpllr
      wo orbi2d simpr breq12d simplrl apreim syl22anc bitrd fveq2d cjreim eqtrd
      cmin ax-icn a1i submul2 syl3anc renegcld 3bitrd 3bitr4rd rexlimdvva mpd
      ex ) AGHZBGHZIZACJZKDJZLMZNMZOZDPQCPQZARUAZBRUAZSTZABSTZUBZVOWCVPCDAUCUDV
      QWBWHCDPPVQVRPHZVSPHZIZIZWBWHWLWBIZBEJZKFJZLMZNMZOZFPQEPQZWHVPWSVOWKWBEFB
      UCUEWMWRWHEFPPWMWNPHZWOPHZIZIZWRWHXCWRIZVRWNSTZVSWOSTZUMZXEVSUFZWOUFZSTZU
      MZWGWFXDXFXJXEXDVSGHZWOGHZXFXJUBXDVSWMWJXBWRVQWIWJWBUGUHZUIZXDWOWMWTXAWRU
      GZUIZVSWOUJUKUNXDWGWAWQSTZXGXDAWABWQSWLWBXBWRULZXCWRUOZUPXDWIWJWTXAXRXGUB
      WMWIXBWRVQWIWJWBUQUHZXNWMWTXAWRUQZXPVRVSWNWOURUSUTXDWFVRVTVDMZWNWPVDMZSTV
      RKXHLMNMZWNKXILMNMZSTZXKXDWDYCWEYDSXDWDWARUAZYCXDAWARXSVAXDWIWJYHYCOYAXNV
      RVSVBUKVCXDWEWQRUAZYDXDBWQRXTVAXDWTXAYIYDOYBXPWNWOVBUKVCUPXDYCYEYDYFSXDVR
      GHKGHZXLYCYEOXDVRYAUIYJXDVEVFZXOVRKVSVGVHXDWNGHYJXMYDYFOXDWNYBUIYKXQWNKWO
      VGVHUPXDWIXHPHWTXIPHYGXKUBYAXDVSXNVIYBXDWOXPVIVRXHWNXIURUSVJVKVNVLVMVNVLV
      M $.
  $}

  $( A number is apart from zero iff its complex conjugate is apart from zero.
     (Contributed by Jim Kingdon, 14-Jun-2020.) $)
  cjap0 $p |- ( A e. CC -> ( A # 0 <-> ( * ` A ) # 0 ) ) $=
    ( ccj cfv cc0 cap wbr cc wcel cj0 breq2i wb 0cn cjap mpan2 syl5rbbr ) ABCZD
    EFPDBCZEFZAGHZADEFZQDPEIJSDGHRTKLADMNO $.

  $( A number is nonzero iff its complex conjugate is nonzero.  (Contributed by
     NM, 29-Apr-2005.) $)
  cjne0 $p |- ( A e. CC -> ( A =/= 0 <-> ( * ` A ) =/= 0 ) ) $=
    ( cc wcel cc0 ccj cfv wceq cj0 eqeq2i wb 0cn cj11 mpan2 syl5rbbr necon3bid
    ) ABCZADAEFZDQDGQDEFZGZPADGZRDQHIPDBCSTJKADLMNO $.

  $( Complex conjugate distributes over division.  (Contributed by Jim Kingdon,
     14-Jun-2020.) $)
  cjdivap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                   ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co ccj cfv cmul divclap cjcl syl simp2 simp3
    wb eqtr3d cjap0 mpbid divcanap4d wceq cjmul syl2anc divcanap1 fveq2d oveq1d
    ) ACDZBCDZBEFGZHZABIJZKLZBKLZMJZUPIJUOAKLZUPIJUMUOUPUMUNCDZUOCDABNZUNOPUMUK
    UPCDUJUKULQZBOPUMULUPEFGZUJUKULRUMUKULVBSVABUAPUBUCUMUQURUPIUMUNBMJZKLZUQUR
    UMUSUKVDUQUDUTVAUNBUEUFUMVCAKABUGUHTUIT $.

  ${
    $d F u v w z $.  $d x y u v w z $.
    cnrecnv.1 $e |- F = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
    $( The inverse to the canonical bijection from ` ( RR X. RR ) ` to ` CC `
       from ~ cnref1o .  (Contributed by Mario Carneiro, 25-Aug-2014.) $)
    cnrecnv $p |- `' F = ( z e. CC |-> <. ( Re ` z ) , ( Im ` z ) >. ) $=
      ( cc cv cfv cmpt wceq wtru cr wf1o a1i wcel ci cmul co caddc recnd cre wf
      ccnv cim cop cnref1o f1ocnv f1of mp2b feqmptd trud df-ov recl imcl ax-icn
      cxp mulcld addcld oveq1 oveq2 oveq2d ovmpt2g syl3anc replim eqtr4d fveq2d
      syl5eqr opelxpi syl2anc f1ocnvfv1 sylancr eqtr3d mpteq2ia eqtri ) DUCZCFC
      GZVOHZIZCFVPUAHZVPUDHZUEZIVOVRJKCFLLUPZVOFWBVOUBZKWBFDMZFWBVOMWCABDEUFZWB
      FDUGFWBVOUHUINUJUKCFVQWAVPFOZWADHZVOHZVQWAWFWGVPVOWFWGVSPVTQRZSRZVPWFWGVS
      VTDRZWJVSVTDULWFVSLOZVTLOZWJFOWKWJJVPUMZVPUNZWFVSWIWFVSWNTWFPVTPFOWFUONWF
      VTWOTUQURABVSVTLLAGZPBGZQRZSRWJDVSWRSRFWPVSWRSUSWQVTJWRWIVSSWQVTPQUTVAEVB
      VCVGVPVDVEVFWFWDWAWBOZWHWAJWEWFWLWMWSWNWOVSVTLLVHVIWBFWADVJVKVLVMVN $.
  $}

  ${
    recl.1 $e |- A e. CC $.
    $( The real part of a complex number is real (closure law).  (Contributed
       by NM, 11-May-1999.) $)
    recli $p |- ( Re ` A ) e. RR $=
      ( cc wcel cre cfv cr recl ax-mp ) ACDAEFGDBAHI $.

    $( The imaginary part of a complex number is real (closure law).
       (Contributed by NM, 11-May-1999.) $)
    imcli $p |- ( Im ` A ) e. RR $=
      ( cc wcel cim cfv cr imcl ax-mp ) ACDAEFGDBAHI $.

    $( Closure law for complex conjugate.  (Contributed by NM, 11-May-1999.) $)
    cjcli $p |- ( * ` A ) e. CC $=
      ( cc wcel ccj cfv cjcl ax-mp ) ACDAEFCDBAGH $.

    $( Construct a complex number from its real and imaginary parts.
       (Contributed by NM, 1-Oct-1999.) $)
    replimi $p |- A = ( ( Re ` A ) + ( _i x. ( Im ` A ) ) ) $=
      ( cc wcel cre cfv ci cim cmul co caddc wceq replim ax-mp ) ACDAAEFGAHFIJK
      JLBAMN $.

    $( The conjugate of the conjugate is the original complex number.
       Proposition 10-3.4(e) of [Gleason] p. 133.  (Contributed by NM,
       11-May-1999.) $)
    cjcji $p |- ( * ` ( * ` A ) ) = A $=
      ( cc wcel ccj cfv wceq cjcj ax-mp ) ACDAEFEFAGBAHI $.

    $( A number is real iff its imaginary part is 0.  (Contributed by NM,
       29-May-1999.) $)
    reim0bi $p |- ( A e. RR <-> ( Im ` A ) = 0 ) $=
      ( cc wcel cr cim cfv cc0 wceq wb reim0b ax-mp ) ACDAEDAFGHIJBAKL $.

    $( A real number equals its real part.  Proposition 10-3.4(f) of [Gleason]
       p. 133.  (Contributed by NM, 27-Oct-1999.) $)
    rerebi $p |- ( A e. RR <-> ( Re ` A ) = A ) $=
      ( cc wcel cr cre cfv wceq wb rereb ax-mp ) ACDAEDAFGAHIBAJK $.

    $( A number is real iff it equals its complex conjugate.  Proposition
       10-3.4(f) of [Gleason] p. 133.  (Contributed by NM, 11-Oct-1999.) $)
    cjrebi $p |- ( A e. RR <-> ( * ` A ) = A ) $=
      ( cc wcel cr ccj cfv wceq wb cjreb ax-mp ) ACDAEDAFGAHIBAJK $.

    $( Real part of a complex conjugate.  (Contributed by NM, 2-Oct-1999.) $)
    recji $p |- ( Re ` ( * ` A ) ) = ( Re ` A ) $=
      ( cc wcel ccj cfv cre wceq recj ax-mp ) ACDAEFGFAGFHBAIJ $.

    $( Imaginary part of a complex conjugate.  (Contributed by NM,
       2-Oct-1999.) $)
    imcji $p |- ( Im ` ( * ` A ) ) = -u ( Im ` A ) $=
      ( cc wcel ccj cfv cim cneg wceq imcj ax-mp ) ACDAEFGFAGFHIBAJK $.

    $( A complex number times its conjugate is real.  (Contributed by NM,
       11-May-1999.) $)
    cjmulrcli $p |- ( A x. ( * ` A ) ) e. RR $=
      ( cc wcel ccj cfv cmul co cr cjmulrcl ax-mp ) ACDAAEFGHIDBAJK $.

    $( A complex number times its conjugate.  (Contributed by NM,
       2-Oct-1999.) $)
    cjmulvali $p |- ( A x. ( * ` A ) ) =
                   ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) $=
      ( cc wcel ccj cfv cmul co cre c2 cexp cim caddc wceq cjmulval ax-mp ) ACD
      AAEFGHAIFJKHALFJKHMHNBAOP $.

    $( A complex number times its conjugate is nonnegative.  (Contributed by
       NM, 28-May-1999.) $)
    cjmulge0i $p |- 0 <_ ( A x. ( * ` A ) ) $=
      ( cc wcel cc0 ccj cfv cmul co cle wbr cjmulge0 ax-mp ) ACDEAAFGHIJKBALM
      $.

    $( Real part of negative.  (Contributed by NM, 2-Aug-1999.) $)
    renegi $p |- ( Re ` -u A ) = -u ( Re ` A ) $=
      ( cc wcel cneg cre cfv wceq reneg ax-mp ) ACDAEFGAFGEHBAIJ $.

    $( Imaginary part of negative.  (Contributed by NM, 2-Aug-1999.) $)
    imnegi $p |- ( Im ` -u A ) = -u ( Im ` A ) $=
      ( cc wcel cneg cim cfv wceq imneg ax-mp ) ACDAEFGAFGEHBAIJ $.

    $( Complex conjugate of negative.  (Contributed by NM, 2-Aug-1999.) $)
    cjnegi $p |- ( * ` -u A ) = -u ( * ` A ) $=
      ( cc wcel cneg ccj cfv wceq cjneg ax-mp ) ACDAEFGAFGEHBAIJ $.

    $( A number plus its conjugate is twice its real part.  Compare Proposition
       10-3.4(h) of [Gleason] p. 133.  (Contributed by NM, 2-Oct-1999.) $)
    addcji $p |- ( A + ( * ` A ) ) = ( 2 x. ( Re ` A ) ) $=
      ( cc wcel ccj cfv caddc co c2 cre cmul wceq addcj ax-mp ) ACDAAEFGHIAJFKH
      LBAMN $.

    readdi.2 $e |- B e. CC $.
    $( Real part distributes over addition.  (Contributed by NM,
       28-Jul-1999.) $)
    readdi $p |- ( Re ` ( A + B ) ) = ( ( Re ` A ) + ( Re ` B ) ) $=
      ( cc wcel caddc co cre cfv wceq readd mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Imaginary part distributes over addition.  (Contributed by NM,
       28-Jul-1999.) $)
    imaddi $p |- ( Im ` ( A + B ) ) = ( ( Im ` A ) + ( Im ` B ) ) $=
      ( cc wcel caddc co cim cfv wceq imadd mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Real part of a product.  (Contributed by NM, 28-Jul-1999.) $)
    remuli $p |- ( Re ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) $=
      ( cc wcel cmul co cre cfv cim cmin wceq remul mp2an ) AEFBEFABGHIJAIJBIJG
      HAKJBKJGHLHMCDABNO $.

    $( Imaginary part of a product.  (Contributed by NM, 28-Jul-1999.) $)
    immuli $p |- ( Im ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) $=
      ( cc wcel cmul co cim cfv cre caddc wceq immul mp2an ) AEFBEFABGHIJAKJBIJ
      GHAIJBKJGHLHMCDABNO $.

    $( Complex conjugate distributes over addition.  Proposition 10-3.4(a) of
       [Gleason] p. 133.  (Contributed by NM, 28-Jul-1999.) $)
    cjaddi $p |- ( * ` ( A + B ) ) = ( ( * ` A ) + ( * ` B ) ) $=
      ( cc wcel caddc co ccj cfv wceq cjadd mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Complex conjugate distributes over multiplication.  Proposition
       10-3.4(c) of [Gleason] p. 133.  (Contributed by NM, 28-Jul-1999.) $)
    cjmuli $p |- ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) $=
      ( cc wcel cmul co ccj cfv wceq cjmul mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Standard inner product on complex numbers.  (Contributed by NM,
       2-Oct-1999.) $)
    ipcni $p |- ( Re ` ( A x. ( * ` B ) ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) + ( ( Im ` A ) x. ( Im ` B ) ) ) $=
      ( cc wcel ccj cfv cmul co cre cim caddc wceq ipcnval mp2an ) AEFBEFABGHIJ
      KHAKHBKHIJALHBLHIJMJNCDABOP $.

    $( Complex conjugate distributes over division.  (Contributed by Jim
       Kingdon, 14-Jun-2020.) $)
    cjdivapi $p |- ( B # 0 ->
                    ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
      ( cc wcel cc0 cap wbr cdiv co ccj cfv wceq cjdivap mp3an12 ) AEFBEFBGHIAB
      JKLMALMBLMJKNCDABOP $.
  $}

  ${
    crre.1 $e |- A e. RR $.
    crre.2 $e |- B e. RR $.
    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by NM, 10-May-1999.) $)
    crrei $p |- ( Re ` ( A + ( _i x. B ) ) ) = A $=
      ( cr wcel ci cmul co caddc cre cfv wceq crre mp2an ) AEFBEFAGBHIJIKLAMCDA
      BNO $.

    $( The imaginary part of a complex number representation.  Definition
       10-3.1 of [Gleason] p. 132.  (Contributed by NM, 10-May-1999.) $)
    crimi $p |- ( Im ` ( A + ( _i x. B ) ) ) = B $=
      ( cr wcel ci cmul co caddc cim cfv wceq crim mp2an ) AEFBEFAGBHIJIKLBMCDA
      BNO $.
  $}

  ${
    recld.1 $e |- ( ph -> A e. CC ) $.
    $( The real part of a complex number is real (closure law).  (Contributed
       by Mario Carneiro, 29-May-2016.) $)
    recld $p |- ( ph -> ( Re ` A ) e. RR ) $=
      ( cc wcel cre cfv cr recl syl ) ABDEBFGHECBIJ $.

    $( The imaginary part of a complex number is real (closure law).
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    imcld $p |- ( ph -> ( Im ` A ) e. RR ) $=
      ( cc wcel cim cfv cr imcl syl ) ABDEBFGHECBIJ $.

    $( Closure law for complex conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjcld $p |- ( ph -> ( * ` A ) e. CC ) $=
      ( cc wcel ccj cfv cjcl syl ) ABDEBFGDECBHI $.

    $( Construct a complex number from its real and imaginary parts.
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    replimd $p |- ( ph -> A = ( ( Re ` A ) + ( _i x. ( Im ` A ) ) ) ) $=
      ( cc wcel cre cfv ci cim cmul co caddc wceq replim syl ) ABDEBBFGHBIGJKLK
      MCBNO $.

    $( Value of the conjugate of a complex number.  The value is the real part
       minus ` _i ` times the imaginary part.  Definition 10-3.2 of [Gleason]
       p. 132.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    remimd $p |- ( ph -> ( * ` A ) = ( ( Re ` A ) - ( _i x. ( Im ` A ) ) ) ) $=
      ( cc wcel ccj cfv cre ci cim cmul co cmin wceq remim syl ) ABDEBFGBHGIBJG
      KLMLNCBOP $.

    $( The conjugate of the conjugate is the original complex number.
       Proposition 10-3.4(e) of [Gleason] p. 133.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    cjcjd $p |- ( ph -> ( * ` ( * ` A ) ) = A ) $=
      ( cc wcel ccj cfv wceq cjcj syl ) ABDEBFGFGBHCBIJ $.

    ${
      reim0bd.2 $e |- ( ph -> ( Im ` A ) = 0 ) $.
      $( A number is real iff its imaginary part is 0.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      reim0bd $p |- ( ph -> A e. RR ) $=
        ( cr wcel cim cfv cc0 wceq cc wb reim0b syl mpbird ) ABEFZBGHIJZDABKFPQ
        LCBMNO $.
    $}

    ${
      rerebd.2 $e |- ( ph -> ( Re ` A ) = A ) $.
      $( A real number equals its real part.  Proposition 10-3.4(f) of
         [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
      rerebd $p |- ( ph -> A e. RR ) $=
        ( cr wcel cre cfv wceq cc wb rereb syl mpbird ) ABEFZBGHBIZDABJFOPKCBLM
        N $.
    $}

    ${
      cjrebd.2 $e |- ( ph -> ( * ` A ) = A ) $.
      $( A number is real iff it equals its complex conjugate.  Proposition
         10-3.4(f) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
         29-May-2016.) $)
      cjrebd $p |- ( ph -> A e. RR ) $=
        ( cr wcel ccj cfv wceq cc wb cjreb syl mpbird ) ABEFZBGHBIZDABJFOPKCBLM
        N $.
    $}

    ${
      cjne0d.2 $e |- ( ph -> A =/= 0 ) $.
      $( A number is nonzero iff its complex conjugate is nonzero.
         (Contributed by Mario Carneiro, 29-May-2016.) $)
      cjne0d $p |- ( ph -> ( * ` A ) =/= 0 ) $=
        ( cc0 wne ccj cfv cc wcel wb cjne0 syl mpbid ) ABEFZBGHEFZDABIJOPKCBLMN
        $.
    $}

    $( Real part of a complex conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    recjd $p |- ( ph -> ( Re ` ( * ` A ) ) = ( Re ` A ) ) $=
      ( cc wcel ccj cfv cre wceq recj syl ) ABDEBFGHGBHGICBJK $.

    $( Imaginary part of a complex conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    imcjd $p |- ( ph -> ( Im ` ( * ` A ) ) = -u ( Im ` A ) ) $=
      ( cc wcel ccj cfv cim cneg wceq imcj syl ) ABDEBFGHGBHGIJCBKL $.

    $( A complex number times its conjugate is real.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    cjmulrcld $p |- ( ph -> ( A x. ( * ` A ) ) e. RR ) $=
      ( cc wcel ccj cfv cmul co cr cjmulrcl syl ) ABDEBBFGHIJECBKL $.

    $( A complex number times its conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjmulvald $p |- ( ph -> ( A x. ( * ` A ) ) =
                   ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) $=
      ( cc wcel ccj cfv cmul co cre c2 cexp cim caddc wceq cjmulval syl ) ABDEB
      BFGHIBJGKLIBMGKLINIOCBPQ $.

    $( A complex number times its conjugate is nonnegative.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    cjmulge0d $p |- ( ph -> 0 <_ ( A x. ( * ` A ) ) ) $=
      ( cc wcel cc0 ccj cfv cmul co cle wbr cjmulge0 syl ) ABDEFBBGHIJKLCBMN $.

    $( Real part of negative.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    renegd $p |- ( ph -> ( Re ` -u A ) = -u ( Re ` A ) ) $=
      ( cc wcel cneg cre cfv wceq reneg syl ) ABDEBFGHBGHFICBJK $.

    $( Imaginary part of negative.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    imnegd $p |- ( ph -> ( Im ` -u A ) = -u ( Im ` A ) ) $=
      ( cc wcel cneg cim cfv wceq imneg syl ) ABDEBFGHBGHFICBJK $.

    $( Complex conjugate of negative.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjnegd $p |- ( ph -> ( * ` -u A ) = -u ( * ` A ) ) $=
      ( cc wcel cneg ccj cfv wceq cjneg syl ) ABDEBFGHBGHFICBJK $.

    $( A number plus its conjugate is twice its real part.  Compare Proposition
       10-3.4(h) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    addcjd $p |- ( ph -> ( A + ( * ` A ) ) = ( 2 x. ( Re ` A ) ) ) $=
      ( cc wcel ccj cfv caddc co c2 cre cmul wceq addcj syl ) ABDEBBFGHIJBKGLIM
      CBNO $.

    ${
      cjexpd.2 $e |- ( ph -> N e. NN0 ) $.
      $( Complex conjugate of positive integer exponentiation.  (Contributed by
         Mario Carneiro, 29-May-2016.) $)
      cjexpd $p |- ( ph -> ( * ` ( A ^ N ) ) = ( ( * ` A ) ^ N ) ) $=
        ( cc wcel cn0 cexp co ccj cfv wceq cjexp syl2anc ) ABFGCHGBCIJKLBKLCIJM
        DEBCNO $.
    $}

    readdd.2 $e |- ( ph -> B e. CC ) $.
    $( Real part distributes over addition.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    readdd $p |- ( ph -> ( Re ` ( A + B ) ) = ( ( Re ` A ) + ( Re ` B ) ) ) $=
      ( cc wcel caddc co cre cfv wceq readd syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEB
      CMN $.

    $( Imaginary part distributes over addition.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    imaddd $p |- ( ph -> ( Im ` ( A + B ) ) = ( ( Im ` A ) + ( Im ` B ) ) ) $=
      ( cc wcel caddc co cim cfv wceq imadd syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEB
      CMN $.

    $( Real part distributes over subtraction.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    resubd $p |- ( ph -> ( Re ` ( A - B ) ) = ( ( Re ` A ) - ( Re ` B ) ) ) $=
      ( cc wcel cmin co cre cfv wceq resub syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEBC
      MN $.

    $( Imaginary part distributes over subtraction.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    imsubd $p |- ( ph -> ( Im ` ( A - B ) ) = ( ( Im ` A ) - ( Im ` B ) ) ) $=
      ( cc wcel cmin co cim cfv wceq imsub syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEBC
      MN $.

    $( Real part of a product.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    remuld $p |- ( ph -> ( Re ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
      ( cc wcel cmul co cre cfv cim cmin wceq remul syl2anc ) ABFGCFGBCHIJKBJKC
      JKHIBLKCLKHIMINDEBCOP $.

    $( Imaginary part of a product.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    immuld $p |- ( ph -> ( Im ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) ) $=
      ( cc wcel cmul co cim cfv cre caddc wceq immul syl2anc ) ABFGCFGBCHIJKBLK
      CJKHIBJKCLKHIMINDEBCOP $.

    $( Complex conjugate distributes over addition.  Proposition 10-3.4(a) of
       [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    cjaddd $p |- ( ph -> ( * ` ( A + B ) ) = ( ( * ` A ) + ( * ` B ) ) ) $=
      ( cc wcel caddc co ccj cfv wceq cjadd syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEB
      CMN $.

    $( Complex conjugate distributes over multiplication.  Proposition
       10-3.4(c) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjmuld $p |- ( ph -> ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) ) $=
      ( cc wcel cmul co ccj cfv wceq cjmul syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEBC
      MN $.

    $( Standard inner product on complex numbers.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    ipcnd $p |- ( ph -> ( Re ` ( A x. ( * ` B ) ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) + ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
      ( cc wcel ccj cfv cmul co cre cim caddc wceq ipcnval syl2anc ) ABFGCFGBCH
      IJKLIBLICLIJKBMICMIJKNKODEBCPQ $.

    cjdivapd.2 $e |- ( ph -> B # 0 ) $.
    $( Complex conjugate distributes over division.  (Contributed by Jim
       Kingdon, 15-Jun-2020.) $)
    cjdivapd $p |- ( ph ->
                    ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
      ( cc wcel cc0 cap wbr cdiv co ccj cfv wceq cjdivap syl3anc ) ABGHCGHCIJKB
      CLMNOBNOCNOLMPDEFBCQR $.
  $}

  ${
    crred.1 $e |- ( ph -> A e. RR ) $.
    $( A real number equals its real part.  One direction of Proposition
       10-3.4(f) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    rered $p |- ( ph -> ( Re ` A ) = A ) $=
      ( cr wcel cre cfv wceq rere syl ) ABDEBFGBHCBIJ $.

    $( The imaginary part of a real number is 0.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    reim0d $p |- ( ph -> ( Im ` A ) = 0 ) $=
      ( cr wcel cim cfv cc0 wceq reim0 syl ) ABDEBFGHICBJK $.

    $( A real number equals its complex conjugate.  Proposition 10-3.4(f) of
       [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    cjred $p |- ( ph -> ( * ` A ) = A ) $=
      ( cr wcel ccj cfv wceq cjre syl ) ABDEBFGBHCBIJ $.

    ${
      remul2d.2 $e |- ( ph -> B e. CC ) $.
      $( Real part of a product.  (Contributed by Mario Carneiro,
         29-May-2016.) $)
      remul2d $p |- ( ph -> ( Re ` ( A x. B ) ) = ( A x. ( Re ` B ) ) ) $=
        ( cr wcel cc cmul co cre cfv wceq remul2 syl2anc ) ABFGCHGBCIJKLBCKLIJM
        DEBCNO $.

      $( Imaginary part of a product.  (Contributed by Mario Carneiro,
         29-May-2016.) $)
      immul2d $p |- ( ph -> ( Im ` ( A x. B ) ) = ( A x. ( Im ` B ) ) ) $=
        ( cr wcel cc cmul co cim cfv wceq immul2 syl2anc ) ABFGCHGBCIJKLBCKLIJM
        DEBCNO $.

      redivapd.2 $e |- ( ph -> A # 0 ) $.
      $( Real part of a division.  Related to ~ remul2 .  (Contributed by Jim
         Kingdon, 15-Jun-2020.) $)
      redivapd $p |- ( ph -> ( Re ` ( B / A ) ) = ( ( Re ` B ) / A ) ) $=
        ( cc wcel cr cc0 cap wbr cdiv co cre cfv wceq redivap syl3anc ) ACGHBIH
        BJKLCBMNOPCOPBMNQEDFCBRS $.

      $( Imaginary part of a division.  Related to ~ remul2 .  (Contributed by
         Jim Kingdon, 15-Jun-2020.) $)
      imdivapd $p |- ( ph -> ( Im ` ( B / A ) ) = ( ( Im ` B ) / A ) ) $=
        ( cc wcel cr cc0 cap wbr cdiv co cim cfv wceq imdivap syl3anc ) ACGHBIH
        BJKLCBMNOPCOPBMNQEDFCBRS $.
    $}

    crred.2 $e |- ( ph -> B e. RR ) $.
    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    crred $p |- ( ph -> ( Re ` ( A + ( _i x. B ) ) ) = A ) $=
      ( cr wcel ci cmul co caddc cre cfv wceq crre syl2anc ) ABFGCFGBHCIJKJLMBN
      DEBCOP $.

    $( The imaginary part of a complex number representation.  Definition
       10-3.1 of [Gleason] p. 132.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    crimd $p |- ( ph -> ( Im ` ( A + ( _i x. B ) ) ) = B ) $=
      ( cr wcel ci cmul co caddc cim cfv wceq crim syl2anc ) ABFGCFGBHCIJKJLMCN
      DEBCOP $.
  $}

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        Square root; absolute value
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c sqrt $. $( Positive square root of a positive real number. $)
  $c abs $. $( Absolute value function. $)
  $c +- $. $( Plus-or-minus symbol (for comments only) $)

  $( Extend class notation to include square root of a complex number. $)
  csqrt $a class sqrt $.

  $( Extend class notation to include a function for the absolute value
     (modulus) of a complex number. $)
  cabs $a class abs $.

  ${
    $d x y A $.
    $( Define a function whose value is the square root of a nonnegative real
       number.

       Defining the square root for complex numbers has one difficult part:
       choosing between the two roots.  The usual way to define a principal
       square root for all complex numbers relies on excluded middle or
       something similar.  But in the case of a nonnegative real number, we
       don't have the complications presented for general complex numbers, and
       we can choose the nonnegative root.

       (Contributed by Jim Kingdon, 23-Aug-2020.) $)
    df-rsqrt $a |- sqrt = ( x e. RR |-> ( iota_ y e. RR ( ( y ^ 2 ) = x /\
      0 <_ y ) ) ) $.

    $( Define the function for the absolute value (modulus) of a complex
       number.  (Contributed by NM, 27-Jul-1999.) $)
    df-abs $a |- abs = ( x e. CC |-> ( sqrt ` ( x x. ( * ` x ) ) ) ) $.

    $( Value of square root function.  (Contributed by Jim Kingdon,
       23-Aug-2020.) $)
    sqrtrval $p |- ( A e. RR -> ( sqrt ` A ) =
        ( iota_ x e. RR ( ( x ^ 2 ) = A /\ 0 <_ x ) ) ) $=
      ( vy cv c2 cexp co wceq cc0 cle wbr wa cr crio csqrt anbi1d riotabidv cvv
      eqeq2 wcel df-rsqrt reex riotaexg ax-mp fvmpt ) CBADZEFGZCDZHZIUFJKZLZAMN
      UGBHZUJLZAMNZMOUHBHZUKUMAMUOUIULUJUHBUGSPQCAUAMRTUNRTUBUMAMRUCUDUE $.

    $( The absolute value (modulus) of a complex number.  Proposition 10-3.7(a)
       of [Gleason] p. 133.  (Contributed by NM, 27-Jul-1999.)  (Revised by
       Mario Carneiro, 7-Nov-2013.) $)
    absval $p |- ( A e. CC -> ( abs ` A ) = ( sqrt ` ( A x. ( * ` A ) ) ) ) $=
      ( vx vy cc wcel ccj cfv cmul co csqrt cvv cabs wceq cr cv c2 cexp cc0 cle
      mpdan wbr wa crio cmpt df-rsqrt reex mptex eqeltri id cjcl mulcld sylancr
      fvexg fveq2 oveq12 fveq2d df-abs fvmptg ) ADEZAAFGZHIZJGZKEZALGVBMUSJKEVA
      DEVCJBNCOZPQIBOZMRVDSUAUBCNUCZUDKBCUEBNVFUFUGUHUSAUTUSUIAUJUKVAJKDUMULBAV
      EVEFGZHIZJGVBDKLVEAMZVHVAJVIVGUTMVHVAMVEAFUNVEAVGUTHUOTUPBUQURT $.
  $}

  $( A real number does not lie on the negative imaginary axis.  (Contributed
     by Mario Carneiro, 8-Jul-2013.) $)
  rennim $p |- ( A e. RR -> ( _i x. A ) e/ RR+ ) $=
    ( cr wcel ci cmul co crp wn wnel cc0 wceq cre cfv cc wi ax-icn recn sylancr
    mulcl rpre rereb syl5ib caddc addid2d fveq2d crre mpan eqtr3d eqeq1d sylibd
    syl 0re rpne0 necon2bi eqcoms syl6 pm2.01d df-nel sylibr ) ABCZDAEFZGCZHZVA
    GIUTVBUTVBJVAKZVCUTVBVALMZVAKZVDUTVANCZVBVFOUTDNCANCVGPAQDASRZVBVABCVGVFVAT
    VAUAUBUKUTVEJVAUTJVAUCFZLMZVEJUTVIVALUTVAVHUDUEJBCUTVJJKULJAUFUGUHUIUJVCVAJ
    VBVAJVAUMUNUOUPUQVAGURUS $.

  $( Lemma for ~ sqrt0 .  (Contributed by Jim Kingdon, 26-Aug-2020.) $)
  sqrt0rlem $p |- ( ( A e. RR /\ ( ( A ^ 2 ) = 0 /\ 0 <_ A ) ) <-> A = 0 ) $=
    ( cr wcel c2 cexp co cc0 wceq cle wbr wa cc wb sqeq0 syl biimpa adantrr 0re
    recn mpbiri eleq1 sq0i 0le0 breq2 jca32 impbii ) ABCZADEFGHZGAIJZKKAGHZUGUH
    UJUIUGUHUJUGALCUHUJMASANOPQUJUGUHUIUJUGGBCRAGBUATAUBUJUIGGIJUCAGGIUDTUEUF
    $.

  $( Square root of zero.  (Contributed by Mario Carneiro, 9-Jul-2013.) $)
  sqrt0 $p |- ( sqrt ` 0 ) = 0 $=
    ( vx cc0 csqrt cfv cv c2 cexp co wceq cle wbr wa cr crio 0re sqrtrval ax-mp
    wcel id wb sqrt0rlem biimpi ex simpr sylbir impbid1 adantl riota5 eqtri ) B
    CDZAEZFGHBIBUKJKLZAMNZBBMRZUJUMIOABPQUNUMBIOUNULAMBUNSUKMRZULUKBIZTUNUOULUP
    UOULUPUOULLZUPUKUAZUBUCUPUQULURUOULUDUEUFUGUHQUI $.

  ${
    $d x A $.
    $( Square root of square.  (Contributed by NM, 14-Jan-2006.)  (Revised by
       Mario Carneiro, 29-May-2016.) $)
    sqrtsq $p |- ( ( A e. RR /\ 0 <_ A ) -> ( sqrt ` ( A ^ 2 ) ) = A ) $=
      ( vx cr wcel cc0 cle wbr wa c2 cexp co csqrt cfv wceq crio simpl sqrtrval
      cv resqcld simplr syl simplll simprr simpllr simprl sq11d ex wi oveq1 a1i
      breq2 syl5ibrcom jcad impbid riota5 eqtrd ) ACDZEAFGZHZAIJKZLMZBRZIJKUTNZ
      EVBFGZHZBCOZAUSUTCDVAVFNUSAUQURPZSBUTQUAUSVEBCAVGUSVBCDZHZVEVBANZVIVEVJVI
      VEHVBAUSVHVETUQURVHVEUBVIVCVDUCUQURVHVEUDVIVCVDUEUFUGVIVJVCVDVJVCUHVIVBAI
      JUIUJVIVDVJURUQURVHTVBAEFUKULUMUNUOUP $.
  $}

  $( Square root of square.  (Contributed by NM, 2-Aug-1999.)  (Revised by
     Mario Carneiro, 29-May-2016.) $)
  sqrtmsq $p |- ( ( A e. RR /\ 0 <_ A ) -> ( sqrt ` ( A x. A ) ) = A ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp csqrt cfv simpl recnd sqvald fveq2d sqrtsq
    co cmul eqtr3d ) ABCZDAEFZGZAHIQZJKAARQZJKAUBUCUDJUBAUBATUALMNOAPS $.

  $( The square root of 1 is 1.  (Contributed by NM, 31-Jul-1999.) $)
  sqrt1 $p |- ( sqrt ` 1 ) = 1 $=
    ( c1 c2 cexp co csqrt cfv sq1 fveq2i wcel cc0 cle wbr wceq 1re sqrtsq mp2an
    cr 0le1 eqtr3i ) ABCDZEFZAEFATAEGHAQIJAKLUAAMNRAOPS $.

  $( The square root of 4 is 2.  (Contributed by NM, 3-Aug-1999.) $)
  sqrt4 $p |- ( sqrt ` 4 ) = 2 $=
    ( c2 cexp co csqrt cfv c4 sq2 fveq2i wcel cc0 cle wbr wceq 2re sqrtsq mp2an
    cr 0le2 eqtr3i ) AABCZDEZFDEATFDGHAQIJAKLUAAMNRAOPS $.

  $( The square root of 9 is 3.  (Contributed by NM, 11-May-2004.) $)
  sqrt9 $p |- ( sqrt ` 9 ) = 3 $=
    ( c3 c2 cexp co csqrt cfv c9 sq3 fveq2i cr wcel cc0 cle wbr wceq 3re ltleii
    0re 3pos sqrtsq mp2an eqtr3i ) ABCDZEFZGEFAUCGEHIAJKLAMNUDAOPLARPSQATUAUB
    $.

  $( Absolute value of negative.  (Contributed by NM, 27-Feb-2005.) $)
  absneg $p |- ( A e. CC -> ( abs ` -u A ) = ( abs ` A ) ) $=
    ( cc wcel cneg ccj cfv cmul csqrt cabs cjneg oveq2d wceq cjcl mul2neg mpdan
    co eqtrd fveq2d negcl absval syl 3eqtr4d ) ABCZADZUDEFZGPZHFZAAEFZGPZHFUDIF
    ZAIFUCUFUIHUCUFUDUHDZGPZUIUCUEUKUDGAJKUCUHBCULUILAMAUHNOQRUCUDBCUJUGLASUDTU
    AATUB $.

  $( The absolute value of a number and its conjugate are the same.
     Proposition 10-3.7(b) of [Gleason] p. 133.  (Contributed by NM,
     28-Apr-2005.) $)
  abscj $p |- ( A e. CC -> ( abs ` ( * ` A ) ) = ( abs ` A ) ) $=
    ( cc wcel ccj cfv cabs cmul co csqrt wceq cjcl absval syl mulcom mpdan cjcj
    oveq2d eqtr4d fveq2d ) ABCZADEZFEZAUAGHZIEZAFETUBUAUADEZGHZIEZUDTUABCZUBUGJ
    AKZUALMTUCUFITUCUAAGHZUFTUHUCUJJUIAUANOTUEAUAGAPQRSRALR $.

  $( Value of absolute value function.  Definition 10.36 of [Gleason] p. 133.
     (Contributed by NM, 17-Mar-2005.) $)
  absval2 $p |- ( A e. CC -> ( abs ` A ) =
               ( sqrt ` ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) ) $=
    ( cc wcel cabs cfv ccj cmul co csqrt cre c2 cexp cim absval cjmulval fveq2d
    caddc eqtrd ) ABCZADEAAFEGHZIEAJEKLHAMEKLHQHZIEANSTUAIAOPR $.

  $( The absolute value of 0.  (Contributed by NM, 26-Mar-2005.)  (Revised by
     Mario Carneiro, 29-May-2016.) $)
  abs0 $p |- ( abs ` 0 ) = 0 $=
    ( cc0 cabs cfv ccj cmul co csqrt cc wcel wceq 0cn absval ax-mp cjcli mul02i
    fveq2i sqrt0 3eqtri ) ABCZAADCZEFZGCZAGCAAHISUBJKALMUAAGTAKNOPQR $.

  $( The absolute value of the imaginary unit.  (Contributed by NM,
     26-Mar-2005.) $)
  absi $p |- ( abs ` _i ) = 1 $=
    ( ci cabs cfv cmul co csqrt c1 cc wcel wceq ax-icn absval ax-mp cneg oveq2i
    ccj cji mulneg2i ixi 3eqtri negeqi negneg1e1 eqtri fveq2i sqrt1 ) ABCZAAPCZ
    DEZFCZGFCGAHIUFUIJKALMUHGFUHAANZDEAADEZNZGUGUJADQOAAKKRULGNZNGUKUMSUAUBUCTU
    DUET $.

  ${
    abs00bd.1 $e |- ( ph -> A = 0 ) $.
    $( If a complex number is zero, its absolute value is zero.  (Contributed
       by David Moews, 28-Feb-2017.) $)
    abs00bd $p |- ( ph -> ( abs ` A ) = 0 ) $=
      ( cc0 wceq cabs cfv fveq2 abs0 syl6eq syl ) ABDEZBFGZDECLMDFGDBDFHIJK $.
  $}

  $( A nonnegative number is its own absolute value.  (Contributed by NM,
     11-Oct-1999.)  (Revised by Mario Carneiro, 29-May-2016.) $)
  absid $p |- ( ( A e. RR /\ 0 <_ A ) -> ( abs ` A ) = A ) $=
    ( cr wcel cc0 cle wbr wa cabs cfv cmul co csqrt c2 cexp cc wceq simpl recnd
    ccj absval syl cjred oveq2d sqvald eqtr4d fveq2d sqrtsq 3eqtrd ) ABCZDAEFZG
    ZAHIZAASIZJKZLIZAMNKZLIAUKAOCULUOPUKAUIUJQZRZATUAUKUNUPLUKUNAAJKUPUKUMAAJUK
    AUQUBUCUKAURUDUEUFAUGUH $.

  $( The absolute value of 1.  Common special case.  (Contributed by David A.
     Wheeler, 16-Jul-2016.) $)
  abs1 $p |- ( abs ` 1 ) = 1 $=
    ( c1 cr wcel cc0 cle wbr cabs cfv wceq 1re 0le1 absid mp2an ) ABCDAEFAGHAIJ
    KALM $.

  $( A negative number is the negative of its own absolute value.  (Contributed
     by NM, 27-Feb-2005.) $)
  absnid $p |- ( ( A e. RR /\ A <_ 0 ) -> ( abs ` A ) = -u A ) $=
    ( cr wcel cc0 cle wbr cabs cfv cneg wceq le0neg1 wa recn absneg syl renegcl
    cc adantr absid sylan eqtr3d ex sylbid imp ) ABCZADEFZAGHZAIZJZUEUFDUHEFZUI
    AKUEUJUIUEUJLUHGHZUGUHUEUKUGJZUJUEAQCULAMANORUEUHBCUJUKUHJAPUHSTUAUBUCUD $.

  $( Absolute value of a real number.  (Contributed by NM, 17-Mar-2005.) $)
  absre $p |- ( A e. RR -> ( abs ` A ) = ( sqrt ` ( A ^ 2 ) ) ) $=
    ( cr wcel cabs cfv ccj cmul co csqrt c2 cexp cc wceq recn absval syl sqvald
    cjre oveq2d eqtr4d fveq2d ) ABCZADEZAAFEZGHZIEZAJKHZIEUBALCUCUFMANZAOPUBUGU
    EIUBUGAAGHUEUBAUHQUBUDAAGARSTUAT $.

  $( The absolute value of an integer is a nonnegative integer.  (Contributed
     by NM, 27-Feb-2005.) $)
  nn0abscl $p |- ( A e. ZZ -> ( abs ` A ) e. NN0 ) $=
    ( cz wcel cc0 cle wbr cabs cfv cn0 wa cneg cr wceq zre absnid sylan znegcld
    simpl elnn0z eqeltrd simpr le0neg1d mpbid sylanbrc absid biimpri wo zletric
    adantr 0z mpan2 mpjaodan ) ABCZADEFZAGHZICDAEFZUMUNJZUOAKZIUMALCZUNUOURMANZ
    AOPUQURBCDUREFZURICUQAUMUNRQUQUNVAUMUNUAUQAUMUSUNUTUIUBUCURSUDTUMUPJZUOAIUM
    USUPUOAMUTAUEPAICVBASUFTUMDBCUNUPUGUJADUHUKUL $.

  $( The absolute value of an integer is an integer.  (Contributed by Stefan
     O'Rear, 24-Sep-2014.) $)
  zabscl $p |- ( A e. ZZ -> ( abs ` A ) e. ZZ ) $=
    ( cz wcel cabs cfv nn0abscl nn0zd ) ABCADEAFG $.

$(
###############################################################################
               GUIDES AND MISCELLANEA
###############################################################################
$)

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
          Guides (conventions, explanations, and examples)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Conventions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

This section describes the conventions we use.
However, these conventions often refer to existing mathematical
practices, which are discussed in more detail in other references.

The following sources lay out how mathematics is developed without the law
of the excluded middle. Of course, there are a greater number of sources
which assume excluded middle and most of what is in them applies here too
(especially in a treatment such as ours which is built on first order
logic and set theory, rather than, say, type theory). Studying how a topic
is treated in the Metamath Proof Explorer and the references therein is
often a good place to start (and is easy to compare with the Intuitionistic
Logic Explorer).

The
textbooks provide a motivation for what we are doing, whereas Metamath lets you
see in detail all hidden and implicit steps.  Most standard theorems are
accompanied by citations.  Some closely followed texts include the following:

  <HTML><ul>
  <li>Axioms of propositional calculus - Stanford Encyclopedia of
  Philosophy or [Heyting].</li>
  <li>Axioms of predicate calculus - our axioms are adapted from the ones
  in the Metamath Proof Explorer.</li>
  <li>Theorems of propositional calculus - [Heyting].</li>
  <li>Theorems of pure predicate calculus - Metamath Proof Explorer.</li>
  <li>Theorems of equality and substitution - Metamath Proof Explorer.</li>
  <li>Axioms of set theory - [Crosilla].</li>
  <li>Development of set theory - Chapter 10 of [HoTT].</li>
  <li>Construction of real and complex numbers - Chapter 11 of [HoTT];
  [BauerTaylor].</li>
  <li>Theorems about real numbers - [Geuvers].</li></ul></HTML>

$)

  ${
   $( Dummy premise for "conventions" $)
    conventions.1 $e |- ph $.
    $(

       Unless there is a reason to diverge, we follow the conventions of
       the Metamath Proof Explorer (aka "set.mm"). This list of
       conventions is intended to be read in conjunction with the
       corresponding conventions in the Metamath Proof Explorer, and
       only the differences are described below.

       <HTML><br></HTML>

       <HTML><ul>

       <li><b>Minimizing axioms and the axiom of choice.</b>
       We prefer proofs that depend on fewer and/or weaker axioms,
       even if the proofs are longer. In particular, our choice of IZF
       (Intuitionistic Zermelo-Fraenkel) over CZF (Constructive
       Zermelo-Fraenkel, a weaker system) was just an expedient choice
       because IZF is easier to formalize in metamath. You can find some
       development using CZF in BJ's mathbox starting at ~ ax-bd0 (and the
       section header just above it).
       As for the axiom of choice, the full axiom of choice implies
       excluded middle as seen at ~ acexmid , although some authors will
       use countable choice or dependent choice. For example, countable
       choice or excluded middle is needed to show that the Cauchy reals
       coincide with the Dedekind reals - Corollary 11.4.3 of [HoTT],
       p. (varies).</li>

       <li><b>Junk/undefined results.</b>
       Much of the discussion of this topic in the Metamath Proof
       Explorer applies except that certain techniques are not
       available to us. For example, the Metamath Proof Explorer will
       often say "if a function is evaluated within its domain, a
       certain result follows; if the function is evaluated outside
       its domain, the same result follows. Since the function must
       be evaluated within its domain or outside it, the result follows
       unconditionally" (the use of excluded middle in this argument is
       perhaps obvious when stated this way). For this reason, we
       generally need to prove we are evaluating functions within
       their domains and avoid the reverse closure theorems of the
       Metamath Proof Explorer.</li>

       <li><b>Bibliography references.</b>
       The bibliography for the Intuitionistic Logic Explorer is
       separate from the one for the Metamath Proof Explorer but feel
       free to copy-paste a citation in either direction in order to
       cite it.</li>

       </ul></HTML>

       <HTML><b>Label naming conventions</b></HTML>

       Here are a few of the label naming conventions:

       <HTML><ul>

       <li><b>Suffixes.</b>
       We follow the conventions of the Metamath Proof Explorer with a few
       additions. A biconditional in set.mm which is an implication in
       iset.mm should have a "r" (for the reverse direction), or "i"/"im"
       (for the forward direction) appended.  A theorem in set.mm which has
       a decidability condition added should add "dc" to the theorem name.
       A theorem in set.mm where "nonempty class" is changed to "inhabited
       class" should add "m" (for member) to the theorem name.</li>
       </ul></HTML>

       <HTML>
       The following table shows some commonly-used abbreviations in labels
       which are not found in the Metamath Proof Explorer,
       in alphabetical order.
       For each abbreviation we provide a mnenomic to help you remember it,
       the source theorem/assumption defining it, an expression showing
       what it looks like, whether or not it is a "syntax fragment"
       (an abbreviation that indicates a particular kind of syntax), and
       hyperlinks to label examples that use the abbreviation.
       The abbreviation is bolded if there is a df-NAME definition but
       the label fragment is not NAME.
       <table border="1" id="naming-abbreviation-table">
       <tr><th>Abbreviation</th><th>Mnenomic</th><th>Source</th>
       <th>Expression</th><th>Syntax?</th><th>Example(s)</th></tr>
       <tr><td>ap</td><td>apart</td><td> ~ df-ap </td>
       <td> </td><td>Yes</td><td> ~ apadd1 , ~ apne </td></tr>
       </table>
       </HTML>

       <li><b>Community.</b>
       The Metamath mailing list also covers the Intuitionistic Logic
       Explorer and is at:
       ~ https://groups.google.com/forum/#!forum/metamath .
       </li>
       </ul></HTML>

       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    conventions $p |- ph $=
      (  ) B $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
       Appendix:  Typesetting definitions for the tokens in this file
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$( $t

/* The '$ t' (no space between '$' and 't') token indicates the beginning
    of the typesetting definition section, embedded in a Metamath
    comment.  There may only be one per source file, and the typesetting
    section ends with the end of the Metamath comment.  The typesetting
    section uses C-style comment delimiters.  Todo:  Allow multiple
    typesetting comments */

/* These are the LaTeX and HTML definitions in the order the tokens are
    introduced in $c or $v statements.  See HELP TEX or HELP HTML in the
    Metamath program. */


/******* Web page format settings *******/

/* Custom CSS for Unicode fonts */
/* The woff font file was obtained from
   http://fred-wang.github.io/MathFonts/XITS/xits-math.woff 28-Aug-2015 */
htmlcss '<STYLE TYPE="text/css">\n' +
    '<!--\n' +
    '  .setvar { color: red; }\n' +
    '  .wff { color: blue; }\n' +
    '  .class { color: #C3C; }\n' +
    '  .symvar { border-bottom:1px dotted;color:#C3C}\n' +
    '  .typecode { color: gray }\n' +
    '  .hidden { color: gray }\n' +
    '  @font-face {\n' +
    '    font-family: XITSMath-Regular;\n' +
    '    src: url(xits-math.woff);\n' +
    '  }\n' +
    '  .math { font-family: XITSMath-Regular }\n' +
    '-->\n' +
    '</STYLE>\n' +
    '<LINK href="mmset.css" title="mmset"\n' +
    '    rel="stylesheet" type="text/css">\n' +
    '<LINK href="mmsetalt.css" title="mmsetalt"\n' +
    '    rel="alternate stylesheet" type="text/css">';

/* Tag(s) for the main SPAN surrounding all Unicode math */
htmlfont 'CLASS=math';

/* Page title, home page link */
htmltitle "Intuitionistic Logic Explorer";
htmlhome '<A HREF="mmil.html"><FONT SIZE=-2 FACE=sans-serif>' +
    '<IMG SRC="_icon-il.gif" BORDER=0 ALT=' +
    '"Home" HEIGHT=32 WIDTH=32 ALIGN=MIDDLE>' +
    'Home</FONT></A>';
/* Optional file where bibliographic references are kept */
/* If specified, e.g. "mmset.html", Metamath will hyperlink all strings of the
   form "[rrr]" (where "rrr" has no whitespace) to "mmset.html#rrr" */
/* A warning will be given if the file "mmset.html" with the bibliographical
   references is not present.  It is read in order to check correctness of
   the references. */
htmlbibliography "mmil.html";

/* Variable color key at the bottom of each proof table */
htmlvarcolor '<FONT COLOR="#0000FF">wff</FONT> '
    + '<FONT COLOR="#FF0000">set</FONT> '
    + '<FONT COLOR="#CC33CC">class</FONT>';

/* GIF and Unicode HTML directories - these are used for the GIF version to
   crosslink to the Unicode version and vice-versa */
htmldir "../ilegif/";
althtmldir "../ileuni/";


/******* Symbol definitions *******/

htmldef "(" as "<IMG SRC='lp.gif' WIDTH=5 HEIGHT=19 TITLE='(' ALIGN=TOP>";
  althtmldef "(" as "(";
  latexdef "(" as "(";
htmldef ")" as "<IMG SRC='rp.gif' WIDTH=5 HEIGHT=19 TITLE=')' ALIGN=TOP>";
  althtmldef ")" as ")";
  latexdef ")" as ")";
htmldef "->" as
    " <IMG SRC='to.gif' WIDTH=15 HEIGHT=19 TITLE='-&gt;' ALIGN=TOP> ";
  althtmldef "->" as ' &rarr; ';
  latexdef "->" as "\rightarrow";
htmldef "-." as
    "<IMG SRC='lnot.gif' WIDTH=10 HEIGHT=19 TITLE='-.' ALIGN=TOP> ";
  althtmldef "-." as '&not; ';
  latexdef "-." as "\lnot";
htmldef "wff" as
    "<IMG SRC='_wff.gif' WIDTH=24 HEIGHT=19 TITLE='wff' ALIGN=TOP> ";
  althtmldef "wff" as '<FONT COLOR="#808080">wff </FONT>'; /* was #00CC00 */
  latexdef "wff" as "{\rm wff}";
htmldef "|-" as
    "<IMG SRC='_vdash.gif' WIDTH=10 HEIGHT=19 TITLE='|-' ALIGN=TOP> ";
  althtmldef "|-" as
    '<FONT COLOR="#808080" FACE=sans-serif>&#8866; </FONT>'; /* &vdash; */
    /* Without sans-serif, way too big in FF3 */
  latexdef "|-" as "\vdash";
htmldef "&" as
    " <IMG SRC='amp.gif' WIDTH=12 HEIGHT=19 ALT='&amp;'> ";
  althtmldef "&" as " &amp; ";
  latexdef "&" as " & ";
htmldef "=>" as
  " <IMG SRC='bigto.gif' WIDTH=15 HEIGHT=19 ALT='=&gt;'> ";
  althtmldef "=>" as " &rArr; ";
  latexdef "=>" as " \Rightarrow ";
htmldef "ph" as
    "<IMG SRC='_varphi.gif' WIDTH=11 HEIGHT=19 TITLE='ph' ALIGN=TOP>";
  althtmldef "ph" as '<FONT COLOR="#0000FF"><I>&phi;</I></FONT>';
  latexdef "ph" as "\varphi";
htmldef "ps" as "<IMG SRC='_psi.gif' WIDTH=12 HEIGHT=19 TITLE='ps' ALIGN=TOP>";
  althtmldef "ps" as '<FONT COLOR="#0000FF"><I>&psi;</I></FONT>';
  latexdef "ps" as "\psi";
htmldef "ch" as "<IMG SRC='_chi.gif' WIDTH=12 HEIGHT=19 TITLE='ch' ALIGN=TOP>";
  althtmldef "ch" as '<FONT COLOR="#0000FF"><I>&chi;</I></FONT>';
  latexdef "ch" as "\chi";
htmldef "th" as
    "<IMG SRC='_theta.gif' WIDTH=8 HEIGHT=19 TITLE='th' ALIGN=TOP>";
  althtmldef "th" as '<FONT COLOR="#0000FF"><I>&theta;</I></FONT>';
  latexdef "th" as "\theta";
htmldef "ta" as "<IMG SRC='_tau.gif' WIDTH=10 HEIGHT=19 TITLE='ta' ALIGN=TOP>";
  althtmldef "ta" as '<FONT COLOR="#0000FF"><I>&tau;</I></FONT>';
  latexdef "ta" as "\tau";
htmldef "et" as "<IMG SRC='_eta.gif' WIDTH=9 HEIGHT=19 TITLE='et' ALIGN=TOP>";
  althtmldef "et" as '<FONT COLOR="#0000FF"><I>&eta;</I></FONT>';
  latexdef "et" as "\eta";
htmldef "ze" as "<IMG SRC='_zeta.gif' WIDTH=9 HEIGHT=19 TITLE='ze' ALIGN=TOP>";
  althtmldef "ze" as '<FONT COLOR="#0000FF"><I>&zeta;</I></FONT>';
  latexdef "ze" as "\zeta";
htmldef "si" as
    "<IMG SRC='_sigma.gif' WIDTH=10 HEIGHT=19 TITLE='si' ALIGN=TOP>";
  althtmldef "si" as '<FONT COLOR="#0000FF"><I>&sigma;</I></FONT>';
  latexdef "si" as "\sigma";
htmldef "rh" as "<IMG SRC='_rho.gif' WIDTH=9 HEIGHT=19 TITLE='rh' ALIGN=TOP>";
  althtmldef "rh" as '<FONT COLOR="#0000FF"><I>&rho;</I></FONT>';
  latexdef "rh" as "\rho";
htmldef "mu" as "<IMG SRC='_mu.gif' WIDTH=10 HEIGHT=19 TITLE='mu' ALIGN=TOP>";
  althtmldef "mu" as '<FONT COLOR="#0000FF"><I>&mu;</I></FONT>';
  latexdef "mu" as "\rho";
htmldef "la" as
    "<IMG SRC='_lambda.gif' WIDTH=9 HEIGHT=19 TITLE='la' ALIGN=TOP>";
  althtmldef "la" as '<FONT COLOR="#0000FF"><I>&lambda;</I></FONT>';
  latexdef "la" as "\rho";
htmldef "ka" as
    "<IMG SRC='_kappa.gif' WIDTH=9 HEIGHT=19 TITLE='ka' ALIGN=TOP>";
  althtmldef "ka" as '<FONT COLOR="#0000FF"><I>&kappa;</I></FONT>';
  latexdef "ka" as "\rho";
htmldef "<->" as " <IMG SRC='leftrightarrow.gif' WIDTH=15 HEIGHT=19 " +
    "TITLE='&lt;-&gt;' ALIGN=TOP> ";
  althtmldef "<->" as ' &harr; ';
  latexdef "<->" as "\leftrightarrow";
htmldef "\/" as
     " <IMG SRC='vee.gif' WIDTH=11 HEIGHT=19 TITLE='\/' ALIGN=TOP> ";
  althtmldef "\/" as ' <FONT FACE=sans-serif> &or;</FONT> ' ;
    /* althtmldef "\/" as ' <FONT FACE=sans-serif>&#8897;</FONT> ' ; */
    /* was &or; - changed to match font of &and; replacement */
    /* Changed back 6-Mar-2012 NM */
  latexdef "\/" as "\vee";
htmldef "/\" as
    " <IMG SRC='wedge.gif' WIDTH=11 HEIGHT=19 TITLE='/\' ALIGN=TOP> ";
  althtmldef "/\" as ' <FONT FACE=sans-serif>&and;</FONT> ';
    /* althtmldef "/\" as ' <FONT FACE=sans-serif>&#8896;</FONT> '; */
    /* was &and; which is circle in Mozilla on WinXP Pro (but not Home) */
    /* Changed back 6-Mar-2012 NM */
  latexdef "/\" as "\wedge";
htmldef "A." as
    "<IMG SRC='forall.gif' WIDTH=10 HEIGHT=19 TITLE='A.' ALIGN=TOP>";
  althtmldef "A." as '<FONT FACE=sans-serif>&forall;</FONT>'; /* &#8704; */
  latexdef "A." as "\forall";
htmldef "setvar" as
    "<IMG SRC='_setvar.gif' WIDTH=40 HEIGHT=19 ALT=' setvar' TITLE='setvar'> ";
  althtmldef
    "setvar" as '<SPAN CLASS=typecode STYLE="color:gray">setvar </SPAN>';
  latexdef "setvar" as "{\rm setvar}";
htmldef "x" as "<IMG SRC='_x.gif' WIDTH=10 HEIGHT=19 TITLE='x' ALIGN=TOP>";
  althtmldef "x" as '<I><FONT COLOR="#FF0000">x</FONT></I>';
  latexdef "x" as "x";
htmldef "y" as "<IMG SRC='_y.gif' WIDTH=9 HEIGHT=19 TITLE='y' ALIGN=TOP>";
  althtmldef "y" as '<I><FONT COLOR="#FF0000">y</FONT></I>';
  latexdef "y" as "y";
htmldef "z" as "<IMG SRC='_z.gif' WIDTH=9 HEIGHT=19 TITLE='z' ALIGN=TOP>";
  althtmldef "z" as '<I><FONT COLOR="#FF0000">z</FONT></I>';
  latexdef "z" as "z";
htmldef "w" as "<IMG SRC='_w.gif' WIDTH=12 HEIGHT=19 TITLE='w' ALIGN=TOP>";
  althtmldef "w" as '<I><FONT COLOR="#FF0000">w</FONT></I>';
  latexdef "w" as "w";
htmldef "v" as "<IMG SRC='_v.gif' WIDTH=9 HEIGHT=19 TITLE='v' ALIGN=TOP>";
  althtmldef "v" as '<I><FONT COLOR="#FF0000">v</FONT></I>';
  latexdef "v" as "v";
htmldef "u" as "<IMG SRC='_u.gif' WIDTH=10 HEIGHT=19 TITLE='u' ALIGN=TOP>";
  althtmldef "u" as '<I><FONT COLOR="#FF0000">u</FONT></I>';
  latexdef "u" as "u";
htmldef "t" as "<IMG SRC='_t.gif' WIDTH=7 HEIGHT=19 ALT=' t' TITLE='t'>";
  althtmldef "t" as '<SPAN CLASS=set STYLE="color:red">&#x1D461;</SPAN>';
  latexdef "t" as "t";
htmldef "E." as
    "<IMG SRC='exists.gif' WIDTH=9 HEIGHT=19 TITLE='E.' ALIGN=TOP>";
  althtmldef "E." as '<FONT FACE=sans-serif>&exist;</FONT>'; /* &#8707; */
    /* Without sans-serif, bad in Opera and way too big in FF3 */
  latexdef "E." as "\exists";
htmldef "F/" as
    "<IMG SRC='finv.gif' WIDTH=9 HEIGHT=19 ALT=' F/' TITLE='F/'>";
  althtmldef "F/" as "&#8498;";
  latexdef "F/" as "\Finv";
htmldef "=" as " <IMG SRC='eq.gif' WIDTH=12 HEIGHT=19 TITLE='=' ALIGN=TOP> ";
  althtmldef "=" as ' = '; /* &equals; */
  latexdef "=" as "=";
htmldef "e." as " <IMG SRC='in.gif' WIDTH=10 HEIGHT=19 TITLE='e.' ALIGN=TOP> ";
  althtmldef "e." as ' <FONT FACE=sans-serif>&isin;</FONT> ';
  latexdef "e." as "\in";
htmldef "[" as "<IMG SRC='lbrack.gif' WIDTH=5 HEIGHT=19 TITLE='[' ALIGN=TOP>";
  althtmldef "[" as '['; /* &lsqb; */
  latexdef "[" as "[";
htmldef "/" as
    " <IMG SRC='solidus.gif' WIDTH=6 HEIGHT=19 TITLE='/' ALIGN=TOP> ";
  althtmldef "/" as ' / '; /* &sol; */
  latexdef "/" as "/";
htmldef "]" as "<IMG SRC='rbrack.gif' WIDTH=5 HEIGHT=19 TITLE=']' ALIGN=TOP>";
  althtmldef "]" as ']'; /* &rsqb; */
  latexdef "]" as "]";
htmldef "E!" as "<IMG SRC='_e1.gif' WIDTH=12 HEIGHT=19 TITLE='E!' ALIGN=TOP>";
  althtmldef "E!" as '<FONT FACE=sans-serif>&exist;!</FONT>';
  latexdef "E!" as "\exists{!}";
htmldef "E*" as "<IMG SRC='_em1.gif' WIDTH=15 HEIGHT=19 TITLE='E*' ALIGN=TOP>";
  althtmldef "E*" as '<FONT FACE=sans-serif>&exist;*</FONT>';
  latexdef "E*" as "\exists^\ast";
htmldef "{" as "<IMG SRC='lbrace.gif' WIDTH=6 HEIGHT=19 ALT=' {' TITLE='{'>";
  althtmldef "{" as '{'; /* &lcub; */
  latexdef "{" as "\{";
htmldef "|" as " <IMG SRC='vert.gif' WIDTH=3 HEIGHT=19 ALT=' |' TITLE='|'> ";
  althtmldef "|" as ' &#8739; '; /* &vertbar; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|" as "|";
htmldef "}" as "<IMG SRC='rbrace.gif' WIDTH=6 HEIGHT=19 ALT=' }' TITLE='}'>";
  althtmldef "}" as '}'; /* &rcub; */
  latexdef "}" as "\}";
htmldef "F/_" as
    "<IMG SRC='_finvbar.gif' WIDTH=9 HEIGHT=19 ALT=' F/_' TITLE='F/_'>";
  althtmldef "F/_" as "<U>&#8498;</U>";
  latexdef "F/_" as "\underline{\Finv}";
htmldef "CondEq" as "CondEq";
  althtmldef "CondEq" as "CondEq";
  latexdef "CondEq" as "\mbox{CondEq}";
htmldef "./\" as
    " <IMG SRC='_.wedge.gif' WIDTH=11 HEIGHT=19 ALT=' ./\' TITLE='./\'> ";
  althtmldef "./\" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&and;</SPAN> ';
  latexdef "./\" as "\wedge";
htmldef ".\/" as
    " <IMG SRC='_.vee.gif' WIDTH=11 HEIGHT=19 ALT=' .\/' TITLE='.\/'> ";
  althtmldef ".\/" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&or;</SPAN> ';
  latexdef ".\/" as "\vee";
htmldef ".<_" as
    " <IMG SRC='_.le.gif' WIDTH=11 HEIGHT=19 ALT=' .&lt;_' TITLE='.&lt;_'> ";
  althtmldef ".<_" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&le;</SPAN> ';
  latexdef ".<_" as "\le";
htmldef ".<" as     /* Symbol as variable */
    " <IMG SRC='_.lt.gif' WIDTH=11 HEIGHT=19 ALT=' .&lt;' TITLE='.&lt;'> ";
  althtmldef ".<" as
    /* This is how to put a dotted box around the symbol: */
    /* border means box around symbol; border-bottom underlines symbol */
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&lt;</SPAN> ';
    /* Todo: can this STYLE sequence be done with a CLASS? */
    /* Move the underline down 3px so it isn't too close to symbol */
    /*
    ' <SPAN STYLE="vertical-align:-3px">' +
    '<SPAN CLASS=symvar STYLE="text-decoration:underline dotted;color:#C3C">' +
    '<SPAN STYLE="vertical-align:3px">&lt;</SPAN></SPAN></SPAN> ';
    */
  latexdef ".<" as "<";
htmldef ".+" as
    " <IMG SRC='_.plus.gif' WIDTH=13 HEIGHT=19 ALT=' .+' TITLE='.+'> ";
  althtmldef ".+" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '+</SPAN> ';
  latexdef ".+" as "+";
htmldef ".-" as
    " <IMG SRC='_.minus.gif' WIDTH=11 HEIGHT=19 ALT=' .-' TITLE='.-'> ";
  althtmldef ".-" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&minus;</SPAN> ';
  latexdef ".-" as "-";
htmldef ".X." as
    " <IMG SRC='_.times.gif' WIDTH=9 HEIGHT=19 ALT=' .X.' TITLE='.X.'> ";
  althtmldef ".X." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&times;</SPAN> ';
  latexdef ".X." as "\times";
htmldef "./" as
    " <IMG SRC='_.solidus.gif' WIDTH=8 HEIGHT=19 ALT=' ./' TITLE='./'> ";
  althtmldef "./" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '/</SPAN> ';
  latexdef "./" as "/";
htmldef ".^" as
    " <IMG SRC='_.uparrow.gif' WIDTH=7 HEIGHT=19 ALT=' .^' TITLE='.^'> ";
  althtmldef ".^" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&uarr;</SPAN> ';
  latexdef ".^" as "\uparrow";
htmldef ".0." as
    " <IMG SRC='_.0.gif' WIDTH=8 HEIGHT=19 ALT=' .0.' TITLE='.0.'> ";
  althtmldef ".0." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '0</SPAN> ';
  latexdef ".0." as "0";
htmldef ".1." as
    " <IMG SRC='_.1.gif' WIDTH=7 HEIGHT=19 ALT=' .1.' TITLE='.1.'> ";
  althtmldef ".1." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '1</SPAN> ';
  latexdef ".1." as "1";
htmldef ".||" as
    " <IMG SRC='_.parallel.gif' WIDTH=5 HEIGHT=19 ALT=' .||' TITLE='.||'> ";
  althtmldef ".||" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#8741;</SPAN> ';
  latexdef ".||" as "\parallel";
htmldef ".~" as
    " <IMG SRC='_.sim.gif' WIDTH=13 HEIGHT=19 ALT=' .~' TITLE='.~'> ";
  althtmldef ".~" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x223C;</SPAN> ';
  latexdef ".~" as "\sim";
htmldef "._|_" as
    " <IMG SRC='_.perp.gif' WIDTH=11 HEIGHT=19 ALT=' ._|_' TITLE='._|_'> ";
  althtmldef "._|_" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#8869;</SPAN> ';
  latexdef "._|_" as "\perp";
htmldef ".+^" as
    " <IMG SRC='_.plushat.gif' WIDTH=11 HEIGHT=19 ALT=' .+^' TITLE='.+^'> ";
  althtmldef ".+^" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2A23;</SPAN> ';       /* &plusacir; */
  latexdef ".+^" as "\hat{+}";
htmldef ".+b" as
    " <IMG SRC='_.plusb.gif' WIDTH=14 HEIGHT=19 ALT=' .+b' TITLE='.+b'> ";
  althtmldef ".+b" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x271A;</SPAN> ';
  latexdef ".+b" as "\boldsymbol{+}";
htmldef ".(+)" as
    " <IMG SRC='_.oplus.gif' WIDTH=13 HEIGHT=19 ALT=' .(+)' TITLE='.(+)'> ";
  althtmldef ".(+)" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2295;</SPAN> ';
  latexdef ".(+)" as "\oplus";
htmldef ".*" as
    " <IMG SRC='_.ast.gif' WIDTH=7 HEIGHT=19 ALT=' .*' TITLE='.*'> ";
  althtmldef ".*" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&lowast;</SPAN> ';
  latexdef ".*" as "\ast";
htmldef ".x." as
    " <IMG SRC='_.cdot.gif' WIDTH=4 HEIGHT=19 ALT=' .x.' TITLE='.x.'> ";
  althtmldef ".x." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&middot;</SPAN> ';
  latexdef ".x." as "\cdot";
htmldef ".xb" as
    " <IMG SRC='_.bullet.gif' WIDTH=8 HEIGHT=19 ALT=' .xb' TITLE='.xb'> ";
  althtmldef ".xb" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2219;</SPAN> ';
  latexdef ".xb" as "\bullet";
htmldef ".," as
    " <IMG SRC='_.comma.gif' WIDTH=4 HEIGHT=19 ALT=' .,' TITLE='.,'> ";
  althtmldef ".," as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    ',</SPAN> ';
  latexdef ".," as ",";
htmldef ".(x)" as
    " <IMG SRC='_.otimes.gif' WIDTH=13 HEIGHT=19 ALT=' .(x)' TITLE='.(x)'> ";
  althtmldef ".(x)" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2297;</SPAN> ';
  latexdef ".(x)" as "\otimes";
htmldef ".0b" as
    " <IMG SRC='_.bf0.gif' WIDTH=9 HEIGHT=19 ALT=' .0b' TITLE='.0b'> ";
  althtmldef ".0b" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x1D7CE</SPAN> ';
  latexdef ".0b" as "\mbox{\boldmath$0$}";

/* "~P" was deleted from above section in set.mm. */
/* The ones below should have been in the above section in set.mm. */
htmldef "class" as
    "<IMG SRC='_class.gif' WIDTH=32 HEIGHT=19 TITLE='class' ALIGN=TOP> ";
  althtmldef "class" as '<FONT COLOR="#808080">class </FONT>';
  latexdef "class" as "{\rm class}";
htmldef "A" as "<IMG SRC='_ca.gif' WIDTH=11 HEIGHT=19 TITLE='A' ALIGN=TOP>";
  althtmldef "A" as '<I><FONT COLOR="#CC33CC">A</FONT></I>';
  latexdef "A" as "A";
htmldef "B" as "<IMG SRC='_cb.gif' WIDTH=12 HEIGHT=19 TITLE='B' ALIGN=TOP>";
  althtmldef "B" as '<I><FONT COLOR="#CC33CC">B</FONT></I>';
  latexdef "B" as "B";
htmldef "C" as "<IMG SRC='_cc.gif' WIDTH=12 HEIGHT=19 ALT=' C' TITLE='C'>";
  althtmldef "C" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D436;</SPAN>';
  latexdef "C" as "C";
htmldef "D" as "<IMG SRC='_cd.gif' WIDTH=12 HEIGHT=19 ALT=' D' TITLE='D'>";
  althtmldef "D" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D437;</SPAN>';
  latexdef "D" as "D";
htmldef "P" as "<IMG SRC='_cp.gif' WIDTH=12 HEIGHT=19 ALT=' P' TITLE='P'>";
  althtmldef "P" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D443;</SPAN>';
  latexdef "P" as "P";
htmldef "Q" as "<IMG SRC='_cq.gif' WIDTH=12 HEIGHT=19 ALT=' Q' TITLE='Q'>";
  althtmldef "Q" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D444;</SPAN>';
  latexdef "Q" as "Q";
htmldef "R" as "<IMG SRC='_cr.gif' WIDTH=12 HEIGHT=19 ALT=' R' TITLE='R'>";
  althtmldef "R" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D445;</SPAN>';
  latexdef "R" as "R";
htmldef "S" as "<IMG SRC='_cs.gif' WIDTH=11 HEIGHT=19 ALT=' S' TITLE='S'>";
  althtmldef "S" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D446;</SPAN>';
  latexdef "S" as "S";
htmldef "T" as "<IMG SRC='_ct.gif' WIDTH=12 HEIGHT=19 ALT=' T' TITLE='T'>";
  althtmldef "T" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D447;</SPAN>';
  latexdef "T" as "T";
htmldef "U" as "<IMG SRC='_cu.gif' WIDTH=12 HEIGHT=19 ALT=' U' TITLE='U'>";
  althtmldef "U" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D448;</SPAN>';
  latexdef "U" as "U";
htmldef "e" as "<IMG SRC='_e.gif' WIDTH=8 HEIGHT=19 ALT=' e' TITLE='e'>";
  althtmldef "e" as '<SPAN CLASS=set STYLE="color:red">&#x1D452;</SPAN>';
  latexdef "e" as "e";
htmldef "f" as "<IMG SRC='_f.gif' WIDTH=9 HEIGHT=19 TITLE='f' ALIGN=TOP>";
  althtmldef "f" as '<I><FONT COLOR="#FF0000">f</FONT></I>';
  latexdef "f" as "f";
htmldef "g" as "<IMG SRC='_g.gif' WIDTH=9 HEIGHT=19 TITLE='g' ALIGN=TOP>";
  althtmldef "g" as '<I><FONT COLOR="#FF0000">g</FONT></I>';
  latexdef "g" as "g";
htmldef "h" as "<IMG SRC='_h.gif' WIDTH=10 HEIGHT=19 ALT=' h' TITLE='h'>";
  althtmldef "h" as '<SPAN CLASS=set STYLE="color:red">&#x210E;</SPAN>';
  latexdef "h" as "h";
htmldef "i" as "<IMG SRC='_i.gif' WIDTH=6 HEIGHT=19 ALT=' i' TITLE='i'>";
  althtmldef "i" as '<SPAN CLASS=set STYLE="color:red">&#x1D456;</SPAN>';
  latexdef "i" as "i";
htmldef "j" as "<IMG SRC='_j.gif' WIDTH=7 HEIGHT=19 ALT=' j' TITLE='j'>";
  althtmldef "j" as '<SPAN CLASS=set STYLE="color:red">&#x1D457;</SPAN>';
  latexdef "j" as "j";
htmldef "k" as "<IMG SRC='_k.gif' WIDTH=9 HEIGHT=19 ALT=' k' TITLE='k'>";
  althtmldef "k" as '<SPAN CLASS=set STYLE="color:red">&#x1D458;</SPAN>';
  latexdef "k" as "k";
htmldef "m" as "<IMG SRC='_m.gif' WIDTH=14 HEIGHT=19 ALT=' m' TITLE='m'>";
  althtmldef "m" as '<SPAN CLASS=set STYLE="color:red">&#x1D45A;</SPAN>';
  latexdef "m" as "m";
htmldef "n" as "<IMG SRC='_n.gif' WIDTH=10 HEIGHT=19 ALT=' n' TITLE='n'>";
  althtmldef "n" as '<SPAN CLASS=set STYLE="color:red">&#x1D45B;</SPAN>';
  latexdef "n" as "n";
htmldef "o" as "<IMG SRC='_o.gif' WIDTH=8 HEIGHT=19 ALT=' o' TITLE='o'>";
  althtmldef "o" as '<SPAN CLASS=set STYLE="color:red">&#x1D45C;</SPAN>';
  latexdef "o" as "o";
htmldef "E" as "<IMG SRC='_ce.gif' WIDTH=13 HEIGHT=19 ALT=' E' TITLE='E'>";
  althtmldef "E" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D438;</SPAN>';
  latexdef "E" as "E";
htmldef "F" as "<IMG SRC='_cf.gif' WIDTH=13 HEIGHT=19 ALT=' F' TITLE='F'>";
  althtmldef "F" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D439;</SPAN>';
  latexdef "F" as "F";
htmldef "G" as "<IMG SRC='_cg.gif' WIDTH=12 HEIGHT=19 ALT=' G' TITLE='G'>";
  althtmldef "G" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43A;</SPAN>';
  latexdef "G" as "G";
htmldef "H" as "<IMG SRC='_ch.gif' WIDTH=14 HEIGHT=19 ALT=' H' TITLE='H'>";
  althtmldef "H" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43B;</SPAN>';
  latexdef "H" as "H";
htmldef "I" as "<IMG SRC='_ci.gif' WIDTH=8 HEIGHT=19 ALT=' I' TITLE='I'>";
  althtmldef "I" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43C;</SPAN>';
  latexdef "I" as "I";
htmldef "J" as "<IMG SRC='_cj.gif' WIDTH=10 HEIGHT=19 ALT=' J' TITLE='J'>";
  althtmldef "J" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43D;</SPAN>';
  latexdef "J" as "J";
htmldef "K" as "<IMG SRC='_ck.gif' WIDTH=14 HEIGHT=19 ALT=' K' TITLE='K'>";
  althtmldef "K" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43E;</SPAN>';
  latexdef "K" as "K";
htmldef "L" as "<IMG SRC='_cl.gif' WIDTH=10 HEIGHT=19 ALT=' L' TITLE='L'>";
  althtmldef "L" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43F;</SPAN>';
  latexdef "L" as "L";
htmldef "M" as "<IMG SRC='_cm.gif' WIDTH=15 HEIGHT=19 ALT=' M' TITLE='M'>";
  althtmldef "M" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D440;</SPAN>';
  latexdef "M" as "M";
htmldef "N" as "<IMG SRC='_cn.gif' WIDTH=14 HEIGHT=19 ALT=' N' TITLE='N'>";
  althtmldef "N" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D441;</SPAN>';
  latexdef "N" as "N";
htmldef "V" as "<IMG SRC='_cv.gif' WIDTH=12 HEIGHT=19 ALT=' V' TITLE='V'>";
  althtmldef "V" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D449;</SPAN>';
  latexdef "V" as "V";
htmldef "W" as "<IMG SRC='_cw.gif' WIDTH=16 HEIGHT=19 ALT=' W' TITLE='W'>";
  althtmldef "W" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44A;</SPAN>';
  latexdef "W" as "W";
htmldef "X" as "<IMG SRC='_cx.gif' WIDTH=13 HEIGHT=19 ALT=' X' TITLE='X'>";
  althtmldef "X" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44B;</SPAN>';
  latexdef "X" as "X";
htmldef "Y" as "<IMG SRC='_cy.gif' WIDTH=12 HEIGHT=19 ALT=' Y' TITLE='Y'>";
  althtmldef "Y" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44C;</SPAN>';
  latexdef "Y" as "Y";
htmldef "Z" as "<IMG SRC='_cz.gif' WIDTH=11 HEIGHT=19 ALT=' Z' TITLE='Z'>";
  althtmldef "Z" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44D;</SPAN>';
  latexdef "Z" as "Z";
htmldef "O" as "<IMG SRC='_co.gif' WIDTH=12 HEIGHT=19 ALT=' O' TITLE='O'>";
  althtmldef "O" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D442;</SPAN>';
  latexdef "O" as "O";
htmldef "s" as "<IMG SRC='_s.gif' WIDTH=7 HEIGHT=19 ALT=' s' TITLE='s'>";
  althtmldef "s" as '<SPAN CLASS=set STYLE="color:red">&#x1D460;</SPAN>';
  latexdef "s" as "s";
htmldef "r" as "<IMG SRC='_r.gif' WIDTH=8 HEIGHT=19 ALT=' r' TITLE='r'>";
  althtmldef "r" as '<SPAN CLASS=set STYLE="color:red">&#x1D45F;</SPAN>';
  latexdef "r" as "r";
htmldef "q" as "<IMG SRC='_q.gif' WIDTH=8 HEIGHT=19 ALT=' q' TITLE='q'>";
  althtmldef "q" as '<SPAN CLASS=set STYLE="color:red">&#x1D45E;</SPAN>';
  latexdef "q" as "q";
htmldef "p" as "<IMG SRC='_p.gif' WIDTH=10 HEIGHT=19 ALT=' p' TITLE='p'>";
  althtmldef "p" as '<SPAN CLASS=set STYLE="color:red">&#x1D45D;</SPAN>';
  latexdef "p" as "p";
htmldef "a" as "<IMG SRC='_a.gif' WIDTH=9 HEIGHT=19 ALT=' a' TITLE='a'>";
  althtmldef "a" as '<SPAN CLASS=set STYLE="color:red">&#x1D44E;</SPAN>';
  latexdef "a" as "a";
htmldef "b" as "<IMG SRC='_b.gif' WIDTH=8 HEIGHT=19 ALT=' b' TITLE='b'>";
  althtmldef "b" as '<SPAN CLASS=set STYLE="color:red">&#x1D44F;</SPAN>';
  latexdef "b" as "b";
htmldef "c" as "<IMG SRC='_c.gif' WIDTH=7 HEIGHT=19 ALT=' c' TITLE='c'>";
  althtmldef "c" as '<SPAN CLASS=set STYLE="color:red">&#x1D450;</SPAN>';
  latexdef "c" as "c";
htmldef "d" as "<IMG SRC='_d.gif' WIDTH=9 HEIGHT=19 ALT=' d' TITLE='d'>";
  althtmldef "d" as '<SPAN CLASS=set STYLE="color:red">&#x1D451;</SPAN>';
  latexdef "d" as "d";
htmldef "l" as "<IMG SRC='_l.gif' WIDTH=6 HEIGHT=19 ALT=' l' TITLE='l'>";
  althtmldef "l" as '<SPAN CLASS=set STYLE="color:red">&#x1D459;</SPAN>';
  latexdef "l" as "l";
htmldef "=/=" as
    " <IMG SRC='ne.gif' WIDTH=12 HEIGHT=19 ALT=' =/=' TITLE='=/='> ";
  althtmldef "=/=" as ' &ne; ';
  latexdef "=/=" as "\ne";
htmldef "e/" as
    " <IMG SRC='notin.gif' WIDTH=10 HEIGHT=19 ALT=' e/' TITLE='e/'> ";
  althtmldef "e/" as ' &notin; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "e/" as "\notin";
htmldef "_V" as "<IMG SRC='rmcv.gif' WIDTH=10 HEIGHT=19 ALT=' _V' TITLE='_V'>";
  althtmldef "_V" as 'V';
  latexdef "_V" as "{\rm V}";
htmldef "[." as
    "<IMG SRC='_dlbrack.gif' WIDTH=7 HEIGHT=19 ALT=' [.' TITLE='[.'>";
  /* althtmldef "[." as '&#x298F;'; */   /* corner tick */
  /* althtmldef "[." as '[&#803;'; */  /* combining dot below */
  althtmldef "[." as '<B>[</B>'; /* 6-Aug-2018 nm */
  /* \underaccent is in accents package */
  latexdef "[." as "\underaccent{\dot}{[}";
htmldef "]." as
    "<IMG SRC='_drbrack.gif' WIDTH=6 HEIGHT=19 ALT=' ].' TITLE='].'>";
  /* althtmldef "]." as '&#x298E;'; */   /* corner tick */
  /* althtmldef "]." as ']&#803;'; */  /* combining dot below */
  althtmldef "]." as '<B>]</B>'; /* 6-Aug-2018 nm */
  latexdef "]." as "\underaccent{\dot}{]}";
htmldef "[_" as
    "<IMG SRC='_ulbrack.gif' WIDTH=7 HEIGHT=19 ALT=' [_' TITLE='[_'>";
  althtmldef "[_" as '<B>&#x298B;</B>'; /* left sq brack w underbar */
  latexdef "[_" as "\underline{[}";
htmldef "]_" as
    "<IMG SRC='_urbrack.gif' WIDTH=6 HEIGHT=19 ALT=' ]_' TITLE=']_'>";
  althtmldef "]_" as '<B>&#x298C;</B>'; /* right sq brack w underbar */
  latexdef "]_" as "\underline{]}";
htmldef "\" as
    " <IMG SRC='setminus.gif' WIDTH=8 HEIGHT=19 ALT=' \' TITLE='\'> ";
  althtmldef "\" as ' &#8726; '; /* &setmn; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "\" as "\setminus";
htmldef "u." as
    " <IMG SRC='cup.gif' WIDTH=10 HEIGHT=19 ALT=' u.' TITLE='u.'> ";
  althtmldef "u." as ' &cup; ';
  latexdef "u." as "\cup";
htmldef "i^i" as
    " <IMG SRC='cap.gif' WIDTH=10 HEIGHT=19 ALT=' i^i' TITLE='i^i'> ";
  althtmldef "i^i" as ' &cap; ';
  latexdef "i^i" as "\cap";
htmldef "C_" as
    " <IMG SRC='subseteq.gif' WIDTH=12 HEIGHT=19 ALT=' C_' TITLE='C_'> ";
  althtmldef "C_" as ' &#8838; '; /* &subE; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "C_" as "\subseteq";
    /* 7-Jun-2019 changed gif, unicode and latex def of "C." from subset to
    subsetneq (BJ) */
htmldef "C." as
    " <IMG SRC='subsetneq.gif' WIDTH=12 HEIGHT=19 ALT=' C.' TITLE='C.'> ";
    /* subset.gif */
  althtmldef "C." as ' &#x228a; '; /* &sub; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "C." as "\subsetneq"; /* \subset */
htmldef "(/)" as
    "<IMG SRC='varnothing.gif' WIDTH=11 HEIGHT=19 ALT=' (/)' TITLE='(/)'>";
  althtmldef "(/)" as '&empty;';
    /*althtmldef "(/)" as '&empty;';*/ /* =&#8709 */ /* bad in Opera */
    /*althtmldef "(/)" as '&#8960;';*/
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "(/)" as "\varnothing";
htmldef "if" as "<IMG SRC='_if.gif' WIDTH=11 HEIGHT=19 ALT=' if' TITLE='if'>";
  althtmldef "if" as 'if';
  latexdef "if" as "{\rm if}";
htmldef "," as "<IMG SRC='comma.gif' WIDTH=4 HEIGHT=19 ALT=' ,' TITLE=','> ";
  althtmldef "," as ', ';
  latexdef "," as ",";
htmldef "~P" as "<IMG SRC='scrp.gif' WIDTH=16 HEIGHT=19 ALT=' ~P' TITLE='~P'>";
  /* 4-Aug-2016 NM Put space after ~P, needed for e.g. ncanth where it
     overlapped the _V */
  althtmldef "~P" as '&#119979; ';
  latexdef "~P" as "{\cal P}";
htmldef "<." as
    "<IMG SRC='langle.gif' WIDTH=4 HEIGHT=19 ALT=' &lt;.' TITLE='&lt;.'>";
    /* The Unicode below doesn't always work on Firefox and Chrome on Windows,
       so revert to the image above */
  althtmldef "<." as '&lang;'; /* &#9001; */
    /* 2-Jan-2016 restored Unicode; reverted sans-serif */
  latexdef "<." as "\langle";
htmldef ">." as
    "<IMG SRC='rangle.gif' WIDTH=4 HEIGHT=19 ALT=' &gt;.' TITLE='&gt;.'>";
    /* The Unicode below doesn't always work on Firefox and Chrome on Windows,
       so revert to the image above */
  althtmldef ">." as '&rang;'; /* &#9002; */
    /* 2-Jan-2016 restored Unicode; reverted sans-serif */
  latexdef ">." as "\rangle";
htmldef "U." as
    "<IMG SRC='bigcup.gif' WIDTH=13 HEIGHT=19 ALT=' U.' TITLE='U.'>";
  /* 20-Sep-2017 nm Add space after U. in althtmldef to improve "U. ran" */
  althtmldef "U." as '<FONT SIZE="+1">&cup;</FONT> '; /* &xcup; */
    /* xcup does not render, and #8899 renders as a small bold cup, on
       Mozilla 1.7.3 on Windows XP */
    /*althtmldef "U." as '&#8899;';*/ /* &xcup; */
  latexdef "U." as "\bigcup";
htmldef "|^|" as
    "<IMG SRC='bigcap.gif' WIDTH=13 HEIGHT=19 ALT=' |^|' TITLE='|^|'>";
  /* 20-Sep-2017 nm Add space after |^| in althtmldef to improve "|^| ran" */
  althtmldef "|^|" as '<FONT SIZE="+1">&cap;</FONT> '; /* &xcap; */
    /*althtmldef "|^|" as '&#8898;';*/ /* &xcap; */
  latexdef "|^|" as "\bigcap";
htmldef "U_" as
    "<IMG SRC='_cupbar.gif' WIDTH=13 HEIGHT=19 ALT=' U_' TITLE='U_'>";
  /* 20-Sep-2017 nm Add space after U_ in althtmldef to improve "U_ ran" */
  althtmldef "U_" as '<U><FONT SIZE="+1">&cup;</FONT></U> '; /* &xcup; */
  latexdef "U_" as "\underline{\bigcup}";
htmldef "|^|_" as
    "<IMG SRC='_capbar.gif' WIDTH=13 HEIGHT=19 ALT=' |^|_' TITLE='|^|_'>";
  /* 20-Sep-2017 nm Add space after |^|_ in althtmldef to improve "|^|_ ran" */
  althtmldef "|^|_" as '<U><FONT SIZE="+1">&cap;</FONT></U> '; /* &xcap; */
  latexdef "|^|_" as "\underline{\bigcap}";
htmldef "Disj_" as "<u>Disj</u> ";
  althtmldef "Disj_" as "<u>Disj</u> ";
  latexdef "Disj_" as "\operatorname{\underline{Disj}}";
htmldef "|->" as " <IMG SRC='mapsto.gif' WIDTH=15 HEIGHT=19 ALT=' |-&gt;'" +
    " TITLE='|-&gt;'> ";
  althtmldef "|->" as ' &#8614; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|->" as "\mapsto";
htmldef "Tr" as
    "<IMG SRC='_ctr.gif' WIDTH=16 HEIGHT=19 ALT=' Tr' TITLE='Tr'> ";
  althtmldef "Tr" as 'Tr ';
  latexdef "Tr" as "{\rm Tr}";
htmldef "_E" as
    " <IMG SRC='rmce.gif' WIDTH=9 HEIGHT=19 ALT=' _E' TITLE='_E'> ";
  althtmldef "_E" as ' E ';
  latexdef "_E" as "{\rm E}";
htmldef "_I" as
    " <IMG SRC='rmci.gif' WIDTH=4 HEIGHT=19 ALT=' _I' TITLE='_I'> ";
  althtmldef "_I" as ' I ';
  latexdef "_I" as "{\rm I}";
htmldef "Po" as
    " <IMG SRC='_po.gif' WIDTH=16 HEIGHT=19 ALT=' Po' TITLE='Po'> ";
  althtmldef "Po" as ' Po ';
  latexdef "Po" as "{\rm Po}";
htmldef "Or" as
    " <IMG SRC='_or.gif' WIDTH=18 HEIGHT=19 ALT=' Or' TITLE='Or'> ";
  althtmldef "Or" as ' Or ';
  latexdef "Or" as "{\rm Or}";
htmldef "Se" as ' Se ';
  althtmldef "Se" as ' Se ';
  latexdef "Se" as "{\rm Se}";
htmldef "Ord" as
    "<IMG SRC='_ord.gif' WIDTH=26 HEIGHT=19 ALT=' Ord' TITLE='Ord'> ";
  althtmldef "Ord" as 'Ord ';
  latexdef "Ord" as "{\rm Ord}";
htmldef "On" as "<IMG SRC='_on.gif' WIDTH=20 HEIGHT=19 ALT=' On' TITLE='On'>";
  althtmldef "On" as 'On';
  latexdef "On" as "{\rm On}";
htmldef "Lim" as
    "<IMG SRC='_lim.gif' WIDTH=26 HEIGHT=19 ALT=' Lim' TITLE='Lim'> ";
  althtmldef "Lim" as 'Lim ';
  latexdef "Lim" as "{\rm Lim}";
htmldef "suc" as
    "<IMG SRC='_suc.gif' WIDTH=22 HEIGHT=19 ALT=' suc' TITLE='suc'> ";
  althtmldef "suc" as 'suc ';
  latexdef "suc" as "{\rm suc}";
htmldef "_om" as
    "<IMG SRC='omega.gif' WIDTH=11 HEIGHT=19 ALT=' om' TITLE='om'>";
  /*althtmldef "_om" as '&omega;';*/
  althtmldef "_om" as '&#x1D714;'; /* math italic omega */
  latexdef "_om" as "\omega";
htmldef "X." as
    " <IMG SRC='times.gif' WIDTH=9 HEIGHT=19 ALT=' X.' TITLE='X.'> ";
  althtmldef "X." as ' &times; ';
  latexdef "X." as "\times";
htmldef "~~" as
    " <IMG SRC='approx.gif' WIDTH=13 HEIGHT=19 ALT=' ~~' TITLE='~~'> ";
  althtmldef "~~" as ' &#8776; '; /* &ap; */
  latexdef "~~" as "\approx";
htmldef "~<_" as
   " <IMG SRC='preccurlyeq.gif' WIDTH=11 HEIGHT=19 " +
    "ALT=' ~&lt;_' TITLE='~&lt;_'> ";
  althtmldef "~<_" as ' &#8828; '; /* &prcue; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~<_" as "\preccurlyeq";
htmldef "Fin" as
    "<IMG SRC='_fin.gif' WIDTH=21 HEIGHT=19 ALT=' Fin' TITLE='Fin'>";
  althtmldef "Fin" as 'Fin';
  latexdef "Fin" as "{\rm Fin}";
htmldef "`'" as "<IMG SRC='_cnv.gif' WIDTH=10 HEIGHT=19 ALT=" + '"' + " `'" +
    '"' + "TITLE=" + '"' + "`'" + '"' + ">";
  althtmldef "`'" as '<FONT SIZE="-1"><SUP>&#9697;</SUP></FONT>'; /* or 8995 */
  latexdef "`'" as "{}^{\smallsmile}";
htmldef "dom" as
    "<IMG SRC='_dom.gif' WIDTH=26 HEIGHT=19 ALT=' dom' TITLE='dom'> ";
  althtmldef "dom" as 'dom ';
  latexdef "dom" as "{\rm dom}";
htmldef "ran" as
    "<IMG SRC='_ran.gif' WIDTH=22 HEIGHT=19 ALT=' ran' TITLE='ran'> ";
  althtmldef "ran" as 'ran ';
  latexdef "ran" as "{\rm ran}";
htmldef "|`" as " <IMG SRC='restriction.gif' WIDTH=5 HEIGHT=19 ALT=' |`'" +
    " TITLE='|`'> ";
  althtmldef "|`" as ' &#8638; '; /* &uharr; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|`" as "\restriction";
htmldef '"' as "<IMG SRC='backquote.gif' WIDTH=7 HEIGHT=19 ALT=' " + '"' +
    "' TITLE='" + '"' + "'>";
  althtmldef '"' as ' &ldquo; '; /* &#8220; */
  latexdef '"' as "``";
htmldef "o." as
    " <IMG SRC='circ.gif' WIDTH=8 HEIGHT=19 ALT=' o.' TITLE='o.'> ";
  althtmldef "o." as ' &#8728; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "o." as "\circ";
htmldef "Rel" as
    "<IMG SRC='_rel.gif' WIDTH=22 HEIGHT=19 ALT=' Rel' TITLE='Rel'> ";
  althtmldef "Rel" as 'Rel ';
  latexdef "Rel" as "{\rm Rel}";
htmldef "iota" as
    "<IMG SRC='riota.gif' WIDTH=6 HEIGHT=19 ALT=' iota' TITLE='iota'>";
  althtmldef "iota" as '&#8489;';
  latexdef "iota" as "\mathrm{\rotatebox[origin=C]{180}{$\iota$}}";
htmldef "Smo" as
    "<IMG SRC='_smo.gif' WIDTH=27 HEIGHT=19 ALT=' Smo' TITLE='Smo'> ";
  althtmldef "Smo" as "Smo ";
  latexdef "Smo" as "{\rm Smo}";
htmldef "recs" as "recs";
  althtmldef "recs" as "recs";
  latexdef "recs" as "\mathrm{recs}";
htmldef "rec" as
    "<IMG SRC='_rec.gif' WIDTH=21 HEIGHT=19 ALT=' rec' TITLE='rec'>";
  althtmldef "rec" as 'rec';
  latexdef "rec" as "{\rm rec}";
htmldef "frec" as "frec";
  althtmldef "frec" as "frec";
  latexdef "frec" as "{\rm frec}";
htmldef "1o" as "<IMG SRC='_1o.gif' WIDTH=13 HEIGHT=19 ALT=' 1o' TITLE='1o'>";
  althtmldef "1o" as '1<SUB>&#x1D45C;</SUB>';
  latexdef "1o" as "1_o";
htmldef "2o" as "<IMG SRC='_2o.gif' WIDTH=14 HEIGHT=19 ALT=' 2o' TITLE='2o'>";
  althtmldef "2o" as '2<SUB>&#x1D45C;</SUB>';
  latexdef "2o" as "2_o";
htmldef "3o" as "<IMG SRC='_3o.gif' WIDTH=14 HEIGHT=19 ALT=' 3o' TITLE='3o'>";
  althtmldef "3o" as "3<SUB>&#x1D45C;</SUB>"; latexdef "3o" as "3_o";
htmldef "4o" as "<IMG SRC='_4o.gif' WIDTH=15 HEIGHT=19 ALT=' 4o' TITLE='4o'>";
  althtmldef "4o" as "4<SUB>&#x1D45C;</SUB>"; latexdef "4o" as "4_o";
htmldef "+o" as
    " <IMG SRC='_plo.gif' WIDTH=18 HEIGHT=19 ALT=' +o' TITLE='+o'> ";
  althtmldef "+o" as ' +<SUB>&#x1D45C;</SUB> ';
  latexdef "+o" as "+_o";
htmldef ".o" as
    " <IMG SRC='_cdo.gif' WIDTH=10 HEIGHT=19 ALT=' .o' TITLE='.o'> ";
  althtmldef ".o" as ' &middot;<SUB>&#x1D45C;</SUB> ';
  latexdef ".o" as "\cdot_o";
htmldef "^oi" as ' &uarr;<SUB>&#x1D45C;</SUB> ';
  althtmldef "^oi" as ' &uarr;<SUB>&#x1D45C;</SUB> ';
  latexdef "^oi" as "\uparrow_{oi}";
htmldef "Er" as
    " <IMG SRC='_er.gif' WIDTH=16 HEIGHT=19 ALT=' Er' TITLE='Er'> ";
  althtmldef "Er" as ' Er ';
  latexdef "Er" as "{\rm Er}";
htmldef "/." as
    "<IMG SRC='diagup.gif' WIDTH=14 HEIGHT=19 ALT=' /.' TITLE='/.'>";
  althtmldef "/." as ' <B>/</B> ';
  latexdef "/." as "\diagup";

htmldef "Fun" as
    "<IMG SRC='_fun.gif' WIDTH=25 HEIGHT=19 ALT=' Fun' TITLE='Fun'> ";
  althtmldef "Fun" as 'Fun ';
  latexdef "Fun" as "{\rm Fun}";
htmldef "Fn" as
    " <IMG SRC='_fn.gif' WIDTH=17 HEIGHT=19 ALT=' Fn' TITLE='Fn'> ";
  althtmldef "Fn" as ' Fn ';
  latexdef "Fn" as "{\rm Fn}";
htmldef ":" as "<IMG SRC='colon.gif' WIDTH=4 HEIGHT=19 ALT=' :' TITLE=':'>";
  althtmldef ":" as ':';
  latexdef ":" as ":";
htmldef "-->" as
  "<IMG SRC='longrightarrow.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' --&gt;' TITLE='--&gt;'>";
  /* althtmldef "-->" as '&ndash;&rarr;'; */
  althtmldef "-->" as '&#x27F6;';
    /* &#xAD;&#x2010;&ndash;&mdash;&minus; (possible symbols test) */
  latexdef "-->" as "\longrightarrow";
htmldef "-1-1->" as "<IMG SRC='onetoone.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' -1-1-&gt;' TITLE='-1-1-&gt;'>";
  althtmldef "-1-1->" as
    '&ndash;<FONT SIZE=-2 FACE=sans-serif>1-1</FONT>&rarr;';
  latexdef "-1-1->" as
    "\raisebox{.5ex}{${\textstyle{\:}_{\mbox{\footnotesize\rm 1" +
    "\tt -\rm 1}}}\atop{\textstyle{" +
    "\longrightarrow}\atop{\textstyle{}^{\mbox{\footnotesize\rm {\ }}}}}$}";
htmldef "-onto->" as
    "<IMG SRC='onto.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' -onto-&gt;' TITLE='-onto-&gt;'>";
  althtmldef "-onto->" as
    '&ndash;<FONT SIZE=-2 FACE=sans-serif>onto</FONT>&rarr;';
  latexdef "-onto->" as
    "\raisebox{.5ex}{${\textstyle{\:}_{\mbox{\footnotesize\rm {\ }}}}" +
    "\atop{\textstyle{" +
    "\longrightarrow}\atop{\textstyle{}^{\mbox{\footnotesize\rm onto}}}}$}";
htmldef "-1-1-onto->" as "<IMG SRC='onetooneonto.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' -1-1-onto-&gt;' TITLE='-1-1-onto-&gt;'>";
  althtmldef "-1-1-onto->" as '&ndash;<FONT SIZE=-2 '
    + 'FACE=sans-serif>1-1</FONT>-<FONT SIZE=-2 '
    + 'FACE=sans-serif>onto</FONT>&rarr;';
  latexdef "-1-1-onto->" as
    "\raisebox{.5ex}{${\textstyle{\:}_{\mbox{\footnotesize\rm 1" +
    "\tt -\rm 1}}}\atop{\textstyle{" +
    "\longrightarrow}\atop{\textstyle{}^{\mbox{\footnotesize\rm onto}}}}$}";
htmldef "`" as
    "<IMG SRC='backtick.gif' WIDTH=4 HEIGHT=19 ALT=' ` ' TITLE='` '>";
    /* Above, IE7 _printing_ is corrupted by '`'; use '` ' which works */
  /*althtmldef "`" as ' &lsquo;';*/
  /* I took out the leading space to make e.g. ( log ` A ) look better.
     I added the leading space a long time ago because the quote overlapped
     the character to its left, making it sometimes hidden, but that seems
     to be no longer a problem with the XITS font. - 29-Aug-2017 nm */
  althtmldef "`" as '&lsquo;';
  latexdef "`" as "`";
htmldef "Isom" as
    " <IMG SRC='_isom.gif' WIDTH=30 HEIGHT=19 ALT=' Isom' TITLE='Isom'> ";
  althtmldef "Isom" as ' Isom ';
  latexdef "Isom" as "{\rm Isom}";
htmldef "iota_" as
    "<IMG SRC='_riotabar.gif' WIDTH=6 HEIGHT=19 ALT=' iota_' TITLE='iota_'>";
  althtmldef "iota_" as '<U>&#8489;</U>';
  latexdef "iota_" as
      "\underline{\mathrm{\rotatebox[origin=C]{180}{$\iota$}}}";
htmldef "oF" as
    " <IMG SRC='circ.gif' WIDTH=8 HEIGHT=19 ALT=' o' TITLE='o'>" +
    "<IMG SRC='subf.gif' WIDTH=6 HEIGHT=19 ALT=' F' TITLE='F'>";
  althtmldef "oF" as " &#8728;<SUB>&#x1D453;</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "oF" as "\circ_f";
htmldef "oR" as
    " <IMG SRC='circ.gif' WIDTH=8 HEIGHT=19 ALT=' o' TITLE='o'>" +
    "<IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 ALT=' R' TITLE='R'>";
  althtmldef "oR" as " &#8728;<SUB>&#x1D45F;</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "oR" as "\circ_r";
htmldef "1st" as
    "<IMG SRC='_1st.gif' WIDTH=15 HEIGHT=19 ALT=' 1st' TITLE='1st'>";
  althtmldef "1st" as '1<SUP>st</SUP> ';
  latexdef "1st" as "1^{\rm st}";
htmldef "2nd" as
    "<IMG SRC='_2nd.gif' WIDTH=21 HEIGHT=19 ALT=' 2nd' TITLE='2nd'>";
  althtmldef "2nd" as '2<SUP>nd</SUP> ';
  latexdef "2nd" as "2^{\rm nd}";
htmldef "tpos" as "tpos ";
  althtmldef "tpos" as 'tpos ';
  latexdef "tpos" as "{\rm tpos}";
htmldef "N." as "<IMG SRC='caln.gif' WIDTH=17 HEIGHT=19 ALT=' N.' TITLE='N.'>";
  althtmldef "N." as '<I><B>N</B></I>';
  latexdef "N." as "{\cal N}";
htmldef "+N" as
    " <IMG SRC='_pln.gif' WIDTH=22 HEIGHT=19 ALT=' +N' TITLE='+N'> ";
  althtmldef "+N" as ' +<I><SUB><B>N</B></SUB></I> ';
  latexdef "+N" as "+_{\cal N}";
htmldef ".N" as
    " <IMG SRC='_cdn.gif' WIDTH=14 HEIGHT=19 ALT=' .N' TITLE='.N'> ";
  althtmldef ".N" as ' &middot;<I><SUB><B>N</B></SUB></I> ';
  latexdef ".N" as "\cdot_{\cal N}";
htmldef "<N" as
    " <IMG SRC='_ltn.gif' WIDTH=21 HEIGHT=19 ALT=' &lt;N' TITLE='&lt;N'> ";
  althtmldef "<N" as ' &lt;<I><SUB><B>N</B></SUB></I> ';
  latexdef "<N" as "<_{\cal N}";
htmldef "+pQ" as
    " <IMG SRC='_plpq.gif' WIDTH=28 HEIGHT=19 ALT=' +pQ' TITLE='+pQ'> ";
  althtmldef "+pQ" as ' +<I><SUB>p<B>Q</B></SUB></I> ';
  latexdef "+pQ" as "+_{p{\cal Q}}";
htmldef ".pQ" as
    " <IMG SRC='_cdpq.gif' WIDTH=19 HEIGHT=19 ALT=' .pQ' TITLE='.pQ'> ";
  althtmldef ".pQ" as ' &middot;<I><SUB>p<B>Q</B></SUB></I> ';
  latexdef ".pQ" as "\cdot_{p{\cal Q}}";
htmldef "<pQ" as
    " <IMG SRC='_ltpq.gif' WIDTH=27 HEIGHT=19 ALT=' &lt;pQ' TITLE='&lt;pQ'> ";
  althtmldef "<pQ" as ' &lt;<I><SUB>p<B>Q</B></SUB></I> ';
  latexdef "<pQ" as "<_{p{\cal Q}}";
htmldef "~Q" as
    " <IMG SRC='_simq.gif' WIDTH=21 HEIGHT=19 ALT=' ~Q' TITLE='~Q'> ";
  althtmldef "~Q" as ' ~<I><SUB><B>Q</B></SUB></I> ';
  latexdef "~Q" as "\sim_{\cal Q}";
htmldef "Q." as "<IMG SRC='calq.gif' WIDTH=12 HEIGHT=19 ALT=' Q.' TITLE='Q.'>";
  althtmldef "Q." as '<I><B>Q</B></I>';
  latexdef "Q." as "{\cal Q}";
htmldef "1Q" as "<IMG SRC='_1q.gif' WIDTH=16 HEIGHT=19 ALT=' 1Q' TITLE='1Q'>";
  althtmldef "1Q" as '1<I><SUB><B>Q</B></SUB></I>';
  latexdef "1Q" as "1_{\cal Q}";
htmldef "+Q" as
    " <IMG SRC='_plq.gif' WIDTH=21 HEIGHT=19 ALT=' +Q' TITLE='+Q'> ";
  althtmldef "+Q" as ' +<I><SUB><B>Q</B></SUB></I> ';
  latexdef "+Q" as "+_{\cal Q}";
htmldef ".Q" as
    " <IMG SRC='_cdq.gif' WIDTH=13 HEIGHT=19 ALT=' .Q' TITLE='.Q'> ";
  althtmldef ".Q" as ' &middot;<I><SUB><B>Q</B></SUB></I> ';
  latexdef ".Q" as "\cdot_{\cal Q}";
htmldef "*Q" as
    "<IMG SRC='_astq.gif' WIDTH=16 HEIGHT=19 ALT=' *Q' TITLE='*Q'>";
  althtmldef "*Q" as '*<I><SUB><B>Q</B></SUB></I>';
  latexdef "*Q" as "\ast_{\cal Q}";
htmldef "<Q" as
    " <IMG SRC='_ltq.gif' WIDTH=20 HEIGHT=19 ALT=' &lt;Q' TITLE='&lt;Q'> ";
  althtmldef "<Q" as ' &lt;<I><SUB><B>Q</B></SUB></I> ';
  latexdef "<Q" as "<_{\cal Q}";
htmldef "~Q0" as ' ~<I><SUB><B>Q0</B></SUB></I> ';
  althtmldef "~Q0" as ' ~<I><SUB><B>Q0</B></SUB></I> ';
  latexdef "~Q0" as "\sim_{\cal Q0}";
htmldef "Q0." as '<I><B>Q<SUB>0</SUB></B></I>';
  althtmldef "Q0." as '<I><B>Q<SUB>0</SUB></B></I>';
  latexdef "Q0." as "{\cal Q}_0";
htmldef "0Q0" as '0<I><SUB><B>Q0</B></SUB></I>';
  althtmldef "0Q0" as '0<I><SUB><B>Q0</B></SUB></I>';
  latexdef "0Q0" as "0_{\cal Q0}";
htmldef "+Q0" as ' +<I><SUB><B>Q0</B></SUB></I> ';
  althtmldef "+Q0" as ' +<I><SUB><B>Q0</B></SUB></I> ';
  latexdef "+Q0" as "+_{\cal Q0}";
htmldef ".Q0" as ' &middot;<I><SUB><B>Q0</B></SUB></I> ';
  althtmldef ".Q0" as ' &middot;<I><SUB><B>Q0</B></SUB></I> ';
  latexdef ".Q0" as "\cdot_{\cal Q0}";
htmldef "P." as "<IMG SRC='calp.gif' WIDTH=13 HEIGHT=19 ALT=' P.' TITLE='P.'>";
  althtmldef "P." as '<I><B>P</B></I>';
  latexdef "P." as "{\cal P}";
htmldef "1P" as "<IMG SRC='_1p.gif' WIDTH=15 HEIGHT=19 ALT=' 1P' TITLE='1P'>";
  althtmldef "1P" as '1<I><SUB><B>P</B></SUB></I>';
  latexdef "1P" as "1_{\cal P}";
htmldef "+P." as
    " <IMG SRC='_plp.gif' WIDTH=22 HEIGHT=19 ALT=' +P.' TITLE='+P.'> ";
  althtmldef "+P." as ' +<I><SUB><B>P</B></SUB></I> ';
  latexdef "+P." as "+_{\cal P}";
htmldef ".P." as
    " <IMG SRC='_cdp.gif' WIDTH=13 HEIGHT=19 ALT=' .P.' TITLE='.P.'> ";
  althtmldef ".P." as ' &middot;<I><SUB><B>P</B></SUB></I> ';
  latexdef ".P." as "\cdot_{\cal P}";
htmldef "<P" as
    " <IMG SRC='_ltp.gif' WIDTH=19 HEIGHT=19 ALT=' &lt;P' TITLE='&lt;P'> ";
  althtmldef "<P" as '&lt;<I><SUB><B>P</B></SUB></I> ';
  latexdef "<P" as "<_{\cal P}";
htmldef "~R" as
    " <IMG SRC='_simr.gif' WIDTH=23 HEIGHT=19 ALT=' ~R' TITLE='~R'> ";
  althtmldef "~R" as ' ~<I><SUB><B>R</B></SUB></I> ';
  latexdef "~R" as "\sim_{\cal R}";
htmldef "R." as "<IMG SRC='calr.gif' WIDTH=15 HEIGHT=19 ALT=' R.' TITLE='R.'>";
  althtmldef "R." as '<I><B>R</B></I>';
  latexdef "R." as "{\cal R}";
htmldef "0R" as "<IMG SRC='_0r.gif' WIDTH=18 HEIGHT=19 ALT=' 0R' TITLE='0R'>";
  althtmldef "0R" as '0<I><SUB><B>R</B></SUB></I>';
  latexdef "0R" as "0_{\cal R}";
htmldef "1R" as "<IMG SRC='_1cr.gif' WIDTH=16 HEIGHT=19 ALT=' 1R' TITLE='1R'>";
  althtmldef "1R" as '1<I><SUB><B>R</B></SUB></I>';
  latexdef "1R" as "1_{\cal R}";
htmldef "-1R" as
    "<IMG SRC='_m1r.gif' WIDTH=22 HEIGHT=19 ALT=' -1R' TITLE='-1R'>";
  althtmldef "-1R" as '-1<I><SUB><B>R</B></SUB></I>';
  latexdef "-1R" as "-1_{\cal R}";
htmldef "+R" as
    " <IMG SRC='_plr.gif' WIDTH=23 HEIGHT=19 ALT=' +R' TITLE='+R'> ";
  althtmldef "+R" as ' +<I><SUB><B>R</B></SUB></I> ';
  latexdef "+R" as "+_{\cal R}";
htmldef ".R" as
    " <IMG SRC='_cdcr.gif' WIDTH=14 HEIGHT=19 ALT=' .R' TITLE='.R'> ";
  althtmldef ".R" as ' &middot;<I><SUB><B>R</B></SUB></I> ';
  latexdef ".R" as "\cdot_{\cal R}";
htmldef "<R" as
    " <IMG SRC='_ltr.gif' WIDTH=20 HEIGHT=19 ALT=' &lt;R' TITLE='&lt;R'> ";
  althtmldef "<R" as ' &lt;<I><SUB><B>R</B></SUB></I> ';
  latexdef "<R" as "<_{\cal R}";
htmldef "<RR" as
    " <IMG SRC='_ltbbr.gif' WIDTH=20 HEIGHT=19 ALT=' &lt;RR' TITLE='&lt;RR'> ";
  althtmldef "<RR" as ' &lt;<SUB>&#8477;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "<RR" as "<_\mathbb{R}";
htmldef "CC" as "<IMG SRC='bbc.gif' WIDTH=12 HEIGHT=19 ALT=' CC' TITLE='CC'>";
  althtmldef "CC" as '&#8450;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "CC" as "\mathbb{C}";
htmldef "RR" as "<IMG SRC='bbr.gif' WIDTH=13 HEIGHT=19 ALT=' RR' TITLE='RR'>";
  althtmldef "RR" as '&#8477;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "RR" as "\mathbb{R}";
    /*latexdef "" as "_{10}";*/
    /*latexdef "" as "";*/
    /* suppress base 10 suffix */
htmldef "0" as "<IMG SRC='0.gif' WIDTH=8 HEIGHT=19 ALT=' 0' TITLE='0'>";
  althtmldef "0" as '0';
  latexdef "0" as "0";
htmldef "1" as "<IMG SRC='1.gif' WIDTH=7 HEIGHT=19 ALT=' 1' TITLE='1'>";
  althtmldef "1" as '1';
  latexdef "1" as "1";
htmldef "_i" as "<IMG SRC='rmi.gif' WIDTH=4 HEIGHT=19 ALT=' _i' TITLE='_i'>";
  althtmldef "_i" as 'i';
  latexdef "_i" as "{\rm i}";
htmldef "+" as " <IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'> ";
  althtmldef "+" as ' + ';
  latexdef "+" as "+";
htmldef "x." as
    " <IMG SRC='cdot.gif' WIDTH=4 HEIGHT=19 ALT=' x.' TITLE='x.'> ";
  althtmldef "x." as ' &middot; '; /* unicode: &#xb7; */
  latexdef "x." as "\cdot";
htmldef "<_" as
    " <IMG SRC='le.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;_' TITLE='&lt;_'> ";
  althtmldef "<_" as ' &le; ';
  latexdef "<_" as "\le";
htmldef "+oo" as " <IMG SRC='_pinf.gif' WIDTH=29 HEIGHT=19 ALT='+oo' " +
    "TITLE='+oo'>";
  althtmldef "+oo" as '+&infin;';
  latexdef "+oo" as "+\infty";
htmldef "-oo" as " <IMG SRC='_minf.gif' WIDTH=24 HEIGHT=19 ALT='-oo' " +
    "TITLE='-oo'>";
  althtmldef "-oo" as '-&infin;';
  latexdef "-oo" as "-\infty";
htmldef "RR*" as "<IMG SRC='_bbrast.gif' WIDTH=18 HEIGHT=19 ALT=' RR*' " +
    "TITLE='RR*'>";
  althtmldef "RR*" as '&#8477;<SUP>*</SUP>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "RR*" as "\mathbb{R}^*";
htmldef "<" as
    " <IMG SRC='lt.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;' TITLE='&lt;'> ";
  althtmldef "<" as ' &lt; ';
  latexdef "<" as "<";
htmldef "-" as
    " <IMG SRC='minus.gif' WIDTH=11 HEIGHT=19 ALT=' -' TITLE='-'> ";
  althtmldef "-" as ' &minus; ';
  latexdef "-" as "-";
htmldef "-u" as
    "<IMG SRC='shortminus.gif' WIDTH=8 HEIGHT=19 ALT=' -u' TITLE='-u'>";
    /* use standard minus sign */
  althtmldef "-u" as '-';
  latexdef "-u" as "\textrm{-}"; /* short minus */
    /*latexdef "-u" as "-_u";*/
htmldef "#" as ' # ';
  althtmldef "#" as ' # ';
  latexdef "#" as "\apart";
htmldef "#RR" as ' #<SUB>&#8477;</SUB> ';
  althtmldef "#RR" as ' #<SUB>&#8477;</SUB> ';
  latexdef "#RR" as "\apart_\mathbb{R}";
htmldef "NN" as "<IMG SRC='bbn.gif' WIDTH=12 HEIGHT=19 ALT=' NN' TITLE='NN'>";
  althtmldef "NN" as '&#8469;'; /* &Nopf; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "NN" as "\mathbb{N}";
htmldef "NN0" as
    "<IMG SRC='_bbn0.gif' WIDTH=19 HEIGHT=19 ALT=' NN0' TITLE='NN0'>";
  althtmldef "NN0" as '&#8469;<SUB>0</SUB>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "NN0" as "\mathbb{N}_0";
htmldef "ZZ" as "<IMG SRC='bbz.gif' WIDTH=11 HEIGHT=19 ALT=' ZZ' TITLE='ZZ'>";
  althtmldef "ZZ" as '&#8484;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "ZZ" as "\mathbb{Z}";
htmldef "QQ" as "<IMG SRC='bbq.gif' WIDTH=13 HEIGHT=19 ALT=' QQ' TITLE='QQ'>";
  althtmldef "QQ" as '&#8474;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "QQ" as "\mathbb{Q}";
htmldef "RR+" as "<IMG SRC='_bbrplus.gif' WIDTH=20 HEIGHT=19 ALT=' RR+' " +
    "TITLE='RR+'>";
  althtmldef "RR+" as '&#8477;<SUP>+</SUP>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "RR+" as "\mathbb{R}^+";
htmldef "2" as "<IMG SRC='2.gif' WIDTH=8 HEIGHT=19 ALT=' 2' TITLE='2'>";
  althtmldef "2" as '2';
  latexdef "2" as "2";
htmldef "3" as "<IMG SRC='3.gif' WIDTH=8 HEIGHT=19 ALT=' 3' TITLE='3'>";
  althtmldef "3" as '3';
  latexdef "3" as "3";
htmldef "4" as "<IMG SRC='4.gif' WIDTH=9 HEIGHT=19 ALT=' 4' TITLE='4'>";
  althtmldef "4" as '4';
  latexdef "4" as "4";
htmldef "5" as "<IMG SRC='5.gif' WIDTH=8 HEIGHT=19 ALT=' 5' TITLE='5'>";
  althtmldef "5" as '5';
  latexdef "5" as "5";
htmldef "6" as "<IMG SRC='6.gif' WIDTH=8 HEIGHT=19 ALT=' 6' TITLE='6'>";
  althtmldef "6" as '6';
  latexdef "6" as "6";
htmldef "7" as "<IMG SRC='7.gif' WIDTH=9 HEIGHT=19 ALT=' 7' TITLE='7'>";
  althtmldef "7" as '7';
  latexdef "7" as "7";
htmldef "8" as "<IMG SRC='8.gif' WIDTH=8 HEIGHT=19 ALT=' 8' TITLE='8'>";
  althtmldef "8" as '8';
  latexdef "8" as "8";
htmldef "9" as "<IMG SRC='9.gif' WIDTH=8 HEIGHT=19 ALT=' 9' TITLE='9'>";
  althtmldef "9" as '9';
  latexdef "9" as "9";
htmldef "10" as "<IMG SRC='_10.gif' WIDTH=14 HEIGHT=19 ALT=' 10' TITLE='10'>";
  althtmldef "10" as '10';
  latexdef "10" as "10";
htmldef ";" as '<FONT COLOR="#808080">;</FONT>';
  althtmldef ";" as '<SPAN CLASS=hidden STYLE="color:gray">;</SPAN>';
  latexdef ";" as "{\rm;}";
htmldef "ZZ>=" as "<IMG SRC='_bbzge.gif' WIDTH=20 HEIGHT=19 " +
    "ALT=' ZZ&gt;=' TITLE='ZZ&gt;='>";
  althtmldef "ZZ>=" as "&#8484;<SUB>&ge;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "ZZ>=" as "\mathbb{Z}_\ge";
htmldef "-e" as " <IMG SRC='shortminus.gif' WIDTH=8 HEIGHT=19 ALT=' -' " +
    "TITLE='-'><IMG SRC='sube.gif' WIDTH=6 HEIGHT=19 ALT='e' TITLE='e'>";
  althtmldef "-e" as "-<SUB>&#x1D452;</SUB>";
  latexdef "-e" as "\textrm{-}_e";
htmldef "+e" as "<IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'>" +
    "<IMG SRC='sube.gif' WIDTH=6 HEIGHT=19 ALT='e' TITLE='e'>";
  althtmldef "+e" as " +<SUB>&#x1D452;</SUB> ";
  latexdef "+e" as "+_e";
htmldef "*e" as "<IMG SRC='cdot.gif' WIDTH=4 HEIGHT=19 ALT=' x' TITLE='x'>" +
    "<IMG SRC='sube.gif' WIDTH=6 HEIGHT=19 ALT='e' TITLE='e'>";
  althtmldef "*e" as  " &middot;<SUB>e</SUB> ";
  latexdef "*e" as "\cdot_e";
htmldef "(,)" as
    "<IMG SRC='_ioo.gif' WIDTH=13 HEIGHT=19 ALT=' (,)' TITLE='(,)'>";
  althtmldef "(,)" as "(,)";
  latexdef "(,)" as "(,)";
htmldef "(,]" as
    "<IMG SRC='_ioc.gif' WIDTH=12 HEIGHT=19 ALT=' (,]' TITLE='(,]'>";
  althtmldef "(,]" as "(,]";
  latexdef "(,]" as "(,]";
htmldef "[,)" as
    "<IMG SRC='_ico.gif' WIDTH=13 HEIGHT=19 ALT=' [,)' TITLE='[,)'>";
  althtmldef "[,)" as "[,)";
  latexdef "[,)" as "[,)";
htmldef "[,]" as
    "<IMG SRC='_icc.gif' WIDTH=12 HEIGHT=19 ALT=' [,]' TITLE='[,]'>";
  althtmldef "[,]" as "[,]";
  latexdef "[,]" as "[,]";
htmldef "..." as "<IMG SRC='ldots.gif' WIDTH=18 HEIGHT=19 " +
    "ALT=' ...' TITLE='...'>";
  althtmldef "..." as "...";
  latexdef "..." as "\ldots";
htmldef "..^" as "..^";
  althtmldef "..^" as "..^";
  latexdef "..^" as "..\^";
htmldef "seq" as " <IMG SRC='_seq.gif' WIDTH=22 HEIGHT=19 ALT=' seq' " +
    "TITLE='seq'>";
  althtmldef "seq" as 'seq';
  latexdef "seq" as "{\rm seq}";
htmldef "^" as "<IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 ALT=' ^' TITLE='^'>";
  althtmldef "^" as '&uarr;';
  latexdef "^" as "\uparrow"; /*
  latexdef "^" as "\widehat{\ }"; */
htmldef "Re" as "<IMG SRC='re.gif' WIDTH=12 HEIGHT=19 ALT=' Re' TITLE='Re'>";
  althtmldef "Re" as '&real;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Re" as "\Re";
htmldef "Im" as "<IMG SRC='im.gif' WIDTH=12 HEIGHT=19 ALT=' Im' TITLE='Im'>";
  althtmldef "Im" as '&image;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Im" as "\Im";
htmldef "*" as "<IMG SRC='ast.gif' WIDTH=7 HEIGHT=19 ALT=' *' TITLE='*'>";
  althtmldef "*" as '&lowast;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "*" as "*";
htmldef "sqrt" as
    "<IMG SRC='surd.gif' WIDTH=14 HEIGHT=19 ALT=' sqr' TITLE='sqr'>";
  althtmldef "sqrt" as '&radic;';
  latexdef "sqrt" as "\surd";
htmldef "abs" as
    "<IMG SRC='_abs.gif' WIDTH=22 HEIGHT=19 ALT=' abs' TITLE='abs'>";
  althtmldef "abs" as 'abs';
  latexdef "abs" as "{\rm abs}";
htmldef "+-" as
    "<IMG SRC='pm.gif' WIDTH=14 HEIGHT=19 ALT=' pm' TITLE='pm'>";
  althtmldef "+-" as '&plusmn;';
  latexdef "+-" as "\pm";
htmldef "\/_" as
    " <IMG SRC='veebar.gif' WIDTH=9 HEIGHT=19 ALT=' \/_' TITLE='\/_'> ";
  althtmldef "\/_" as " &#8891; ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "\/_" as "\veebar";
htmldef "T." as
    " <IMG SRC='top.gif' WIDTH=11 HEIGHT=19 TITLE='T.' ALIGN=TOP> ";
  althtmldef "T." as ' &#x22A4; ';
  latexdef "T." as "\top";
htmldef "F." as
    " <IMG SRC='perp.gif' WIDTH=11 HEIGHT=19 TITLE='F.' ALIGN=TOP> ";
  althtmldef "F." as ' &perp; ';
  latexdef "F." as "\bot";
htmldef "STAB" as "<SMALL>STAB</SMALL> ";
  althtmldef "STAB" as "<SMALL>STAB</SMALL> ";
  latexdef "STAB" as "\mathrm{STAB} ";
htmldef "DECID" as "<SMALL>DECID</SMALL> ";
  althtmldef "DECID" as "<SMALL>DECID</SMALL> ";
  latexdef "DECID" as "\mathrm{DECID} ";

/* htmldef, althtmldef, latexdef for mathboxes */
/* Note the "Mathbox of" instead of "Mathbox for" to make searching easier. */

/* Mathbox of BJ */
htmldef "Delta0" as "&Delta;<sub>0</sub>";
  althtmldef "Delta0" as "&Delta;<sub>0</sub>";
  latexdef "Delta0" as "\Delta_0 ";
htmldef "Bdd" as "<SMALL>BOUNDED</SMALL> ";
  althtmldef "Bdd" as "<SMALL>BOUNDED</SMALL> ";
  latexdef "Bdd" as "\normalfont\textsc{bounded}} ";
htmldef "Bdd_" as "<SMALL><U>BOUNDED</U></SMALL> ";
  althtmldef "Bdd_" as "<SMALL><U>BOUNDED</U></SMALL> ";
  latexdef "Bdd_" as "\normalfont\textsc{\underline{bounded}}} ";
htmldef "Ind" as "Ind ";
  althtmldef "Ind" as "Ind ";
  latexdef "Ind" as "\mathrm{Ind} ";
/* End of BJ's mathbox */

/* Mathbox of David A. Wheeler */
htmldef "A!" as
  "<IMG SRC='forall.gif' WIDTH=10 HEIGHT=19 ALT=' A.' TITLE='A.'>!";
  althtmldef "A!" as '&forall;!'; /* &#8704; */
  latexdef "A!" as "\forall !";
/* End of David A. Wheeler's mathbox */

/* End of typesetting definition section */
$)

$(
###############################################################################
                 SUPPLEMENTARY MATERIAL (USER'S MATHBOXES)
###############################################################################
$)

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
                 Mathboxes for user contributions
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Mathbox guidelines
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( (_This theorem is a dummy placeholder for these guidelines.  The name of
     this theorem, "mathbox", is hard-coded into the Metamath program to
     identify the start of the mathbox section for web page generation_.)

     A "mathbox" is a user-contributed section that is maintained by its
     contributor independently from the main part of set.mm.

     _For contributors_:

     By making a contribution, you agree to release it into the public domain,
     according to the statement at the beginning of set.mm.

     Mathboxes are provided to help keep your work synchronized with changes in
     set.mm, but they shouldn't be depended on as a permanent archive.  If you
     want to preserve your original contribution, it is your responsibility to
     keep your own copy of it along with the version of set.mm that works with
     it.

     _Guidelines_:

     1.  If at all possible, please use only 0-ary class constants for new
     definitions.

     2.  Try to follow the style of the rest of set.mm.  Each $p and $a
     statement must be immediately preceded with the comment that will be shown
     on its web page description.  The metamath program command "write source
     set.mm /rewrap" will take care of wrapping comment lines and indentation
     conventions.  All mathbox content will be on public display and should
     hopefully reflect the overall quality of the website.

     3.  Before submitting a revised mathbox, please make sure it verifies
     against the current set.mm.

     4.  Mathboxes should be independent i.e. the proofs should verify with all
     other mathboxes removed.  If you need a theorem from another mathbox, that
     is fine (and encouraged), but let me know, so I can move the theorem to
     the main section.  One way avoid undesired accidental use of other mathbox
     theorems is to develop your mathbox using a modified set.mm that has
     mathboxes removed.

     _Notes_:

     1.  We may decide to move some theorems to the main part of set.mm for
     general use.

     2.  We may make changes to mathboxes to maintain the overall quality of
     set.mm.  Normally we will let you know if a change might impact what you
     are working on.

     3.  If you use theorems from another user's mathbox, we don't provide
     assurance that they are based on correct or consistent $a statements.  (If
     you find such a problem, please let us know so it can be corrected.)
     (Contributed by NM, 20-Feb-2007.)  (New usage is discouraged.) $)
  mathbox $p |- x = x $=
    ( equid ) AB $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
                 Mathbox for Mykola Mostovenko
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $( Heyting's formal system Axiom #1 from [Heyting] p. 127.  (Contributed by
     MM, 11-Aug-2018.) $)
  ax1hfs $p |- ( ph -> ( ph /\ ph ) ) $=
    ( wa ax-ia3 pm2.43i ) AAABAACD $.

$( (End of Mykola Mostovenko's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
                 Mathbox for BJ
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Double negation of excluded middle.  Intuitionistic logic refutes the
     negation of excluded middle (but, of course, does not prove excluded
     middle) for any formula.  (Contributed by BJ, 9-Oct-2019.) $)
  nnexmid $p |- -. -. ( ph \/ -. ph ) $=
    ( wn wo wa pm3.24 ioran mtbir ) AABZCBHHBDHEAHFG $.

  $( Double negation of decidability of a formula.  Intuitionistic logic
     refutes undecidability (but, of course, does not prove decidability) of
     any formula.  (Contributed by BJ, 9-Oct-2019.) $)
  nndc $p |- -. -. DECID ph $=
    ( wdc wn wo nnexmid df-dc notbii mtbir ) ABZCAACDZCAEIJAFGH $.

  $( Decidability of a proposition is decidable if and only if that proposition
     is decidable. ` DECID ` is idempotent.  (Contributed by BJ,
     9-Oct-2019.) $)
  dcdc $p |- ( DECID DECID ph <-> DECID ph ) $=
    ( wdc wn wo df-dc nndc biorfi bitr4i ) ABZBIICZDIIEJIAFGH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Predicate calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x ph $.
    $( Existential generalization.  (Contributed by BJ, 8-Dec-2019.)  Proof
       modification is discouraged because there are shorter proofs, but using
       less basic results (like ~ exlimiv and ~ 19.9ht or ~ 19.23ht ).
       (Proof modification is discouraged.) $)
    bj-ex $p |- ( E. x ph -> ph ) $=
      ( wi wex wal wb ax-ie2 ax-17 mpg id mpgbi ) AACZABDACZBAABECLBEMFBAABGABH
      IAJK $.
  $}

  $( Closed form of ~ hbal (copied from set.mm).  (Contributed by BJ,
     2-May-2019.) $)
  bj-hbalt $p |- ( A. y ( ph -> A. x ph ) -> ( A. y ph -> A. x A. y ph ) ) $=
    ( wal wi alim ax-7 syl6 ) AABDZECDACDZICDJBDAICFACBGH $.

  $( Closed form of ~ nfal (copied from set.mm).  (Contributed by BJ,
     2-May-2019.) $)
  bj-nfalt $p |- ( A. x F/ y ph -> F/ y A. x ph ) $=
    ( wnf wal wi df-nf albii bj-hbalt alimi alcoms sylbi sylibr ) ACDZBEZABEZPC
    EFZCEZPCDOAACEFZCEZBERNTBACGHSRCBSBEQCACBIJKLPCGM $.

  ${
    spimd.nf $e |- ( ph -> F/ x ch ) $.
    spimd.1 $e |- ( ph -> A. x ( x = y -> ( ps -> ch ) ) ) $.
    $( Deduction form of ~ spim .  (Contributed by BJ, 17-Oct-2019.) $)
    spimd $p |- ( ph -> ( A. x ps -> ch ) ) $=
      ( wnf weq wi wal spimt syl2anc ) ACDHDEIBCJJDKBDKCJFGBCDELM $.
  $}

  ${
    $d x z $.  $d x t $.
    2spim.nfx $e |- F/ x ch $.
    2spim.nfz $e |- F/ z ch $.
    2spim.1 $e |- ( ( x = y /\ z = t ) -> ( ps -> ch ) ) $.
    $( Double substitution, as in ~ spim .  (Contributed by BJ,
       17-Oct-2019.) $)
    2spim $p |- ( A. z A. x ps -> ch ) $=
      ( wal weq wnf a1i wi expcom alrimiv spimd spim ) ACJBEFHEFKZABCDBCLSGMSCD
      KZABNZNCTSUAIOPQR $.
  $}

  ${
    $d x z $.  $d x t $.
    ch2var.nfx $e |- F/ x ps $.
    ch2var.nfz $e |- F/ z ps $.
    ch2var.maj $e |- ( ( x = y /\ z = t ) -> ( ph <-> ps ) ) $.
    ch2var.min $e |- ph $.
    $( Implicit substitution of ` y ` for ` x ` and ` t ` for ` z ` into a
       theorem.  (Contributed by BJ, 17-Oct-2019.) $)
    ch2var $p |- ps $=
      ( wal weq wa biimpd 2spim ax-gen mpg ) ACKBEABCDEFGHCDLEFLMABINOACJPQ $.
  $}

  ${
    $d x z ps $.  $d x t $.
    ch2varv.maj $e |- ( ( x = y /\ z = t ) -> ( ph <-> ps ) ) $.
    ch2varv.min $e |- ph $.
    $( Version of ~ ch2var with non-freeness hypotheses replaced by DV
       conditions.  (Contributed by BJ, 17-Oct-2019.) $)
    ch2varv $p |- ps $=
      ( nfv ch2var ) ABCDEFBCIBEIGHJ $.
  $}

  ${
    bj-exlimmp.nf $e |- F/ x ps $.
    bj-exlimmp.min $e |- ( ch -> ph ) $.
    $( Lemma for ~ bj-vtoclgf .  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-exlimmp $p |- ( A. x ( ch -> ( ph -> ps ) ) -> ( E. x ch -> ps ) ) $=
      ( wi wal nfa1 idd embantd a2i sps exlimd ) CABGZGZDHCBDPDIEPCBGDCOBCABBFC
      BJKLMN $.

    bj-exlimmpi.maj $e |- ( ch -> ( ph -> ps ) ) $.
    $( Lemma for ~ bj-vtoclgf .  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-exlimmpi $p |- ( E. x ch -> ps ) $=
      ( mpd exlimi ) CBDECABFGHI $.
  $}

  ${
    bj-sbimedh.1 $e |- ( ph -> A. x ph ) $.
    bj-sbimedh.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    bj-sbimedh.3 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( A strengthening of ~ sbiedh (same proof).  (Contributed by BJ,
       16-Dec-2019.) $)
    bj-sbimedh $p |- ( ph -> ( [ y / x ] ps -> ch ) ) $=
      ( wsb wex weq wa sb1 impd eximdh syl5 19.9hd syld ) ABDEIZCDJZCSDEKZBLZDJ
      ATBDEMAUBCDFAUABCHNOPCADFGQR $.
  $}

  ${
    bj-sbimeh.1 $e |- ( ps -> A. x ps ) $.
    bj-sbimeh.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( A strengthening of ~ sbieh (same proof).  (Contributed by BJ,
       16-Dec-2019.) $)
    bj-sbimeh $p |- ( [ y / x ] ph -> ps ) $=
      ( wsb wi wtru tru hbth wal a1i weq bj-sbimedh trud ) ACDGBHIABCDICJKBBCLH
      IEMCDNABHHIFMOP $.
  $}

  ${
    bj-sbime.nf $e |- F/ x ps $.
    bj-sbime.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( A strengthening of ~ sbie (same proof).  (Contributed by BJ,
       16-Dec-2019.) $)
    bj-sbime $p |- ( [ y / x ] ph -> ps ) $=
      ( nfri bj-sbimeh ) ABCDBCEGFH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Extensionality
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Various utility theorems using FOL and extensionality.

$)

  ${
    bj-vtoclgf.nf1 $e |- F/_ x A $.
    bj-vtoclgf.nf2 $e |- F/ x ps $.
    bj-vtoclgf.min $e |- ( x = A -> ph ) $.
    $( Weakening two hypotheses of ~ vtoclgf .  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-vtoclgft $p |- ( A. x ( x = A -> ( ph -> ps ) ) -> ( A e. V -> ps ) ) $=
      ( wcel cvv cv wceq wi wal elex wex issetf bj-exlimmp syl5bi syl5 ) DEIDJI
      ZCKDLZABMMCNZBDEOUAUBCPUCBCDFQABUBCGHRST $.

    bj-vtoclgf.maj $e |- ( x = A -> ( ph -> ps ) ) $.
    $( Weakening two hypotheses of ~ vtoclgf .  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-vtoclgf $p |- ( A e. V -> ps ) $=
      ( cv wceq wi wcel bj-vtoclgft mpg ) CJDKABLLDEMBLCABCDEFGHNIO $.
  $}

  $( Lemma for ~ elabgf .  (Contributed by BJ, 21-Nov-2019.) $)
  elabgf0 $p |- ( x = A -> ( A e. { x | ph } <-> ph ) ) $=
    ( cv cab wcel wceq abid eleq1 syl5rbbr ) ABDZABEZFKCGCLFABHKCLIJ $.

  ${
    elabgf1.nf1 $e |- F/_ x A $.
    elabgf1.nf2 $e |- F/ x ps $.
    $( One implication of ~ elabgf , in closed form.  (Contributed by BJ,
       21-Nov-2019.) $)
    elabgft1 $p |-
             ( A. x ( x = A -> ( ph -> ps ) ) -> ( A e. { x | ph } -> ps ) ) $=
      ( cv wceq wi wal cab wcel wb bi1 imim2 syl5 imim2i alimi nfab1 nfel nfim
      elabgf0 bj-vtoclgft syl pm2.43d ) CGDHZABIZIZCJZDACKZLZBUIUFUKAMZUKBIZIZI
      ZCJUKUMIUHUOCUGUNUFULUKAIUGUMUKANABUKOPQRULUMCDUJEUKBCCDUJEACSTFUAACDUBUC
      UDUE $.

    elabgf1.1 $e |- ( x = A -> ( ph -> ps ) ) $.
    $( One implication of ~ elabgf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabgf1 $p |- ( A e. { x | ph } -> ps ) $=
      ( cv wceq wi cab wcel elabgft1 mpg ) CHDIABJJDACKLBJCABCDEFMGN $.
  $}

  ${
    elabgf2.nf1 $e |- F/_ x A $.
    elabgf2.nf2 $e |- F/ x ps $.
    elabgf2.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elabgf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabgf2 $p |- ( A e. B -> ( ps -> A e. { x | ph } ) ) $=
      ( cab wcel wb wi nfab1 nfel nfim elabgf0 cv wceq bicom1 bi1 bj-vtoclgf
      syl9 syl5 ) DACIZJZAKZBUELZCDEFBUECGCDUDFACMNOACDPUFAUEKZCQDRZUGUEASUIBAU
      HUEHAUETUBUCUA $.
  $}

  ${
    $d ps y $.  $d x A y $.  $d y ph $.
    elabf1.nf $e |- F/ x ps $.
    elabf1.1 $e |- ( x = A -> ( ph -> ps ) ) $.
    $( One implication of ~ elabf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabf1 $p |- ( A e. { x | ph } -> ps ) $=
      ( nfcv elabgf1 ) ABCDCDGEFH $.
  $}

  ${
    $d ps y $.  $d x A y $.  $d y ph $.
    elabf2.nf $e |- F/ x ps $.
    elabf2.s $e |- A e. _V $.
    elabf2.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elabf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabf2 $p |- ( ps -> A e. { x | ph } ) $=
      ( cvv wcel cab wi nfcv elabgf2 ax-mp ) DHIBDACJIKFABCDHCDLEGMN $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab1.1 $e |- ( x = A -> ( ph -> ps ) ) $.
    $( One implication of ~ elab .  (Contributed by BJ, 21-Nov-2019.) $)
    elab1 $p |- ( A e. { x | ph } -> ps ) $=
      ( nfv elabf1 ) ABCDBCFEG $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab2a.s $e |- A e. _V $.
    elab2a.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elab .  (Contributed by BJ, 21-Nov-2019.) $)
    elab2a $p |- ( ps -> A e. { x | ph } ) $=
      ( nfv elabf2 ) ABCDBCGEFH $.
  $}

  ${
    $d x ps $.  $d x y A $.
    elabg2.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elabg .  (Contributed by BJ, 21-Nov-2019.) $)
    elabg2 $p |- ( A e. V -> ( ps -> A e. { x | ph } ) ) $=
      ( nfcv nfv elabgf2 ) ABCDECDGBCHFI $.
  $}

  ${
    bj-rspg.nfa $e |- F/_ x A $.
    bj-rspg.nfb $e |- F/_ x B $.
    bj-rspg.nf2 $e |- F/ x ps $.
    $( Restricted specialization, generalized.  Weakens a hypothesis of
       ~ rspccv and seems to have a shorter proof.  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-rspgt $p |- ( A. x ( x = A -> ( ph -> ps ) ) ->
                                      ( A. x e. B ph -> ( A e. B -> ps ) ) ) $=
      ( cv wceq wi wal wcel wral eleq1 imbi1d biimpd imim2 nfim com23 a2i alimi
      imim2d syl9 nfel nfra1 rsp a1i bj-vtoclgft syl pm2.43d ) CIZDJZABKZKZCLZD
      EMZACENZBUPUQURBKZUPUMULEMZURAKZKZUQUSKZKZKZCLUQVCKUOVECUMUNVDUMVBUQVAKZU
      NVCUMVBVFUMUTUQVAULDEOPQUNVAUSUQABURRUCUDUAUBVBVCCDEFUQUSCCDEFGUEURBCACEU
      FHSSUMURUTAURUTAKKUMACEUGUHTUIUJUKT $.

    bj-rspg.is $e |- ( x = A -> ( ph -> ps ) ) $.
    $( Restricted specialization, generalized.  Weakens a hypothesis of
       ~ rspccv and seems to have a shorter proof.  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-rspg $p |- ( A. x e. B ph -> ( A e. B -> ps ) ) $=
      ( cv wceq wi wral wcel bj-rspgt mpg ) CJDKABLLACEMDENBLLCABCDEFGHOIP $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.  $d z ps $.  $d z ch $.
    cbvrald.nf0 $e |- F/ x ph $.
    cbvrald.nf1 $e |- F/ y ph $.
    cbvrald.nf2 $e |- ( ph -> F/ y ps ) $.
    cbvrald.nf3 $e |- ( ph -> F/ x ch ) $.
    cbvrald.is $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by BJ, 22-Nov-2019.) $)
    cbvrald $p |- ( ph -> ( A. x e. A ps <-> A. y e. A ch ) ) $=
      ( vz cv wcel wi nfv wnf a1i nfimd wb wal wral wsb nfs1v weq eleq1 sbequ12
      wa adantl imbi12d cbv2 nfsbd sbequ sbied sylan9bbr bitrd df-ral 3bitr4g
      ex ) ADMZFNZBOZDUAZEMZFNZCOZEUAZBDFUBCEFUBAVCLMZFNZBDLUCZOZLUAVGAVBVKDLGA
      LPZAVABLVALQAVALPRBLQABLPRSAVIVJDVIDQAVIDPRVJDQABDLUDRSADLUEZVBVKTAVMUHVA
      VIBVJVMVAVITAUTVHFUFUIVMBVJTABDLUGUIUJUSUKAVKVFLEVLHAVIVJEVIEQAVIEPRABDLE
      GIULSAVECLVELQAVELPRCLQACLPRSALEUEZVKVFTAVNUHVIVEVJCVNVIVETAVHVDFUFUIVNVJ
      BDEUCACBLEDUMABCDEGJKUNUOUJUSUKUPBDFUQCEFUQUR $.
  $}

  ${
    bj-intabssel.nf $e |- F/_ x A $.
    $( Version of ~ intss1 using a class abstraction and explicit
       substitution.  (Contributed by BJ, 29-Nov-2019.) $)
    bj-intabssel $p |-
                     ( A e. V -> ( [. A / x ]. ph -> |^| { x | ph } C_ A ) ) $=
      ( wcel wsbc cab cint wss nfsbc1 sbceq1a elabgf intss1 syl6bir ) CDFABCGZC
      ABHZFQICJAPBCDEABCEKABCLMCQNO $.
  $}

  ${
    bj-intabssel1.nf $e |- F/_ x A $.
    bj-intabssel1.nf2 $e |- F/ x ps $.
    bj-intabssel1.is $e |- ( x = A -> ( ps -> ph ) ) $.
    $( Version of ~ intss1 using a class abstraction and implicit
       substitution.  Closed form of ~ intmin3 .  (Contributed by BJ,
       29-Nov-2019.) $)
    bj-intabssel1 $p |-
                     ( A e. V -> ( ps -> |^| { x | ph } C_ A ) ) $=
      ( wcel cab cint wss elabgf2 intss1 syl6 ) DEIBDACJZIPKDLABCDEFGHMDPNO $.
  $}

  ${
    bj-elssuniab.nf $e |- F/_ x A $.
    $( Version of ~ elssuni using a class abstraction and explicit
       substitution.  (Contributed by BJ, 29-Nov-2019.) $)
    bj-elssuniab $p |-
                     ( A e. V -> ( [. A / x ]. ph -> A C_ U. { x | ph } ) ) $=
      ( wcel wsbc cab cuni wss sbc8g elssuni syl6bi ) CDFABCGCABHZFCNIJABCDKCNL
      M $.
  $}

  ${
    bj-sseq.1 $e |- ( ph -> ( ps <-> A C_ B ) ) $.
    bj-sseq.2 $e |- ( ph -> ( ch <-> B C_ A ) ) $.
    $( If two converse inclusions are characterized each by a formula, then
       equality is characterized by the conjunction of these formulas.
       (Contributed by BJ, 30-Nov-2019.) $)
    bj-sseq $p |- ( ph -> ( ( ps /\ ch ) <-> A = B ) ) $=
      ( wa wss wceq anbi12d eqss syl6bbr ) ABCHDEIZEDIZHDEJABNCOFGKDELM $.
  $}

$( This declaration is simply to be able to display Delta0 in comments. $)
  $c Delta0 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Bounded formulas
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This is an ongoing project to define bounded formulas, following a discussion
  on GitHub between Jim Kingdon, Mario Carneiro and I, started
  23-Sept-2019 (see ~ https://github.com/metamath/set.mm/issues/1173 and links
  therein).

  In order to state certain axiom schemes of Constructive
  Zermelo&ndash;Fraenkel (CZF) set theory, like the axiom scheme of bounded (or
  restricted, or ` Delta0 ` ) separation, it is necessary to distinguish
  certain formulas, called bounded (or restricted, or ` Delta0 ` ) formulas.
  The necessity of considering bounded formulas also arises in several theories
  of bounded arithmetic, both classical or intuitonistic, for instance to state
  the axiom scheme of ` Delta0 ` -induction.

  To formalize this in Metamath, there are several choices to make.

  A first choice is to either create a new type for bounded formulas, or to
  create a predicate on formulas that indicates whether they are bounded.
  In the first case, one creates a new type "wff0" with a new set of
  metavariables (ph_0 ...) and an axiom "$a wff ph_0 " ensuring that bounded
  formulas are formulas, so that one can reuse existing theorems, and then
  axioms take the form "$a wff0 ( ph_0 -> ps_0 )", etc.
  In the second case, one introduces a predicate " ` Bdd ` " with the intended
  meaning that " ` Bdd ph ` " is a formula meaning that ` ph ` is a bounded
  formula.
  We choose the second option, since the first would complicate the grammar,
  risking to make it ambiguous.
  (TODO: elaborate.)

  A second choice is to view "bounded" either as a syntactic or a semantic
  property.
  For instance, ` A. x T. ` is not syntactically bounded since it has an
  unbounded universal quantifier, but it is semantically bounded since it is
  equivalent to ` T. ` which is bounded.
  We choose the second option, so that formulas using defined symbols can be
  proved bounded.

  A third choice is in the form of the axioms, either in closed form or in
  inference form.
  One cannot state all the axioms in closed form, especially ~ ax-bd0 .
  Indeed, if we posited it in closed form, then we could prove for instance
  ` |- ( ph -> Bdd ph ) ` and ` |- ( -. ph -> Bdd ph ) ` which is problematic
  (with the law of excluded middle, this would entail that all formulas are
  bounded, but even without it, too many formulas could be proved bounded...).
  (TODO: elaborate.)

  Having ~ ax-bd0 in inference form ensures that a formula can be proved
  bounded only if it is equivalent *for all values of the free variables* to a
  syntactically bounded one.
  The other axioms (~ ax-bdim through ~ ax-bdsb ) can be written either in
  closed or inference form.  The fact that ~ ax-bd0 is an inference is enough
  to ensure that the closed forms cannot be "exploited" to prove that some
  unbounded formulas are bounded.
  (TODO: check.)
  However, we state all the axioms in inference form to make it clear that we
  do not exploit any over-permissiveness.

  Finally, note that our logic has no terms, only variables.  Therefore, we
  cannot prove for instance that ` x e. _om ` is a bounded formula.  However,
  since ` _om ` can be defined as "the ` y  ` such that PHI" a proof using the
  fact that ` x e. _om ` is bounded can be converted to a proof in iset.mm by
  replacing ` _om ` with ` y ` everywhere and prepending the antecedent PHI,
  since ` x e. y ` is bounded by ~ ax-bdel .  For a similar method, see
  ~ bj-omtrans .

  Note that one cannot add an axiom ` |- Bdd x e. A ` since by ~ bdph it would
  imply that every formula is bounded.

  For CZF, a useful set of notes is

  Peter Aczel and Michael Rathjen,
  _CST Book draft_.
  (available at ~ http://www1.maths.leeds.ac.uk/~~rathjen/book.pdf )

  and an interesting article is

  Michael Shulman,
  _Comparing material and structural set theories_,
  Annals of Pure and Applied Logic,
  Volume 170, Issue 4 (Apr. 2019), 465--504.
  (available at ~ https://arxiv.org/abs/1808.05204 )

$)

  $( Symbol for the predicate ` Bdd ` . $)
  $c Bdd $.

  $( Syntax for the predicate ` Bdd ` . $)
  wbd $a wff Bdd ph $.

  ${
    ax-bd0.1 $e |- ( ph <-> ps ) $.
    $( If two formulas are equivalent, then boundedness of one implies
       boundedness of the other.  (Contributed by BJ, 3-Oct-2019.) $)
    ax-bd0 $a |- ( Bdd ph -> Bdd ps ) $.
  $}

  ${
    bdim.1 $e |- Bdd ph $.
    bdim.2 $e |- Bdd ps $.
    $( An implication between two bounded formulas is bounded.  (Contributed by
       BJ, 25-Sep-2019.) $)
    ax-bdim $a |- Bdd ( ph -> ps ) $.

    $( The conjunction of two bounded formulas is bounded.  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdan $a |- Bdd ( ph /\ ps ) $.

    $( The disjunction of two bounded formulas is bounded.  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdor $a |- Bdd ( ph \/ ps ) $.
  $}

  ${
    bdn.1 $e |- Bdd ph $.
    $( The negation of a bounded formula is bounded.  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdn $a |- Bdd -. ph $.
  $}

  ${
    $d x y $.
    bdal.1 $e |- Bdd ph $.
    $( A bounded universal quantification of a bounded formula is bounded.
       Note the DV condition on ` x , y ` .  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdal $a |- Bdd A. x e. y ph $.

    $( A bounded existential quantification of a bounded formula is bounded.
       Note the DV condition on ` x , y ` .  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdex $a |- Bdd E. x e. y ph $.
  $}

  $( An atomic formula is bounded (equality predicate).  (Contributed by BJ,
     3-Oct-2019.) $)
  ax-bdeq $a |- Bdd x = y $.

  $( An atomic formula is bounded (membership predicate).  (Contributed by BJ,
     3-Oct-2019.) $)
  ax-bdel $a |- Bdd x e. y $.

  ${
    bdsb.1 $e |- Bdd ph $.
    $( A formula resulting from proper substitution in a bounded formula is
       bounded.  This probably cannot be proved from the other axioms, since
       neither the definiens in ~ df-sb , nor probably any other equivalent
       formula, is syntactically bounded.  (Contributed by BJ, 3-Oct-2019.) $)
    ax-bdsb $a |- Bdd [ y / x ] ph $.
  $}

  ${
    bdeq.1 $e |- ( ph <-> ps ) $.
    $( Equality property for the predicate ` Bdd ` .  (Contributed by BJ,
       3-Oct-2019.) $)
    bdeq $p |- ( Bdd ph <-> Bdd ps ) $=
      ( wbd ax-bd0 bicomi impbii ) ADBDABCEBAABCFEG $.
  $}

  ${
    bd0.min $e |- Bdd ph $.
    bd0.maj $e |- ( ph <-> ps ) $.
    $( A formula equivalent to a bounded one is bounded.  See also ~ bd0r .
       (Contributed by BJ, 3-Oct-2019.) $)
    bd0 $p |- Bdd ps $=
      ( wbd ax-bd0 ax-mp ) AEBECABDFG $.
  $}

  ${
    bd0r.min $e |- Bdd ph $.
    bd0r.maj $e |- ( ps <-> ph ) $.
    $( A formula equivalent to a bounded one is bounded.  Stated with a
       commuted (compared with ~ bd0 ) biconditional in the hypothesis, to work
       better with definitions ( ` ps ` is the definiendum that one wants to
       prove bounded).  (Contributed by BJ, 3-Oct-2019.) $)
    bd0r $p |- Bdd ps $=
      ( bicomi bd0 ) ABCBADEF $.
  $}

  ${
    bdbi.1 $e |- Bdd ph $.
    bdbi.2 $e |- Bdd ps $.
    $( A biconditional between two bounded formulas is bounded.  (Contributed
       by BJ, 3-Oct-2019.) $)
    bdbi $p |- Bdd ( ph <-> ps ) $=
      ( wi wa wb ax-bdim ax-bdan dfbi2 bd0r ) ABEZBAEZFABGLMABCDHBADCHIABJK $.
  $}

  ${
    bdstab.1 $e |- Bdd ph $.
    $( Stability of a bounded formula is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdstab $p |- Bdd STAB ph $=
      ( wn wi wstab ax-bdn ax-bdim df-stab bd0r ) ACZCZADAEKAJABFFBGAHI $.

    $( Decidability of a bounded formula is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bddc $p |- Bdd DECID ph $=
      ( wn wo wdc ax-bdn ax-bdor df-dc bd0r ) AACZDAEAJBABFGAHI $.
  $}

  ${
    bd3or.1 $e |- Bdd ph $.
    bd3or.2 $e |- Bdd ps $.
    bd3or.3 $e |- Bdd ch $.
    $( A disjunction of three bounded formulas is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bd3or $p |- Bdd ( ph \/ ps \/ ch ) $=
      ( wo w3o ax-bdor df-3or bd0r ) ABGZCGABCHLCABDEIFIABCJK $.

    $( A conjunction of three bounded formulas is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bd3an $p |- Bdd ( ph /\ ps /\ ch ) $=
      ( wa w3a ax-bdan df-3an bd0r ) ABGZCGABCHLCABDEIFIABCJK $.
  $}

  ${
    bdth.1 $e |- ph $.
    $( A truth (a (closed) theorem) is a bounded formula.  (Contributed by BJ,
       6-Oct-2019.) $)
    bdth $p |- Bdd ph $=
      ( vx weq wi ax-bdeq ax-bdim id 2th bd0 ) CCDZKEZAKKCCFZMGLAKHBIJ $.
  $}

  $( The truth value ` T. ` is bounded.  (Contributed by BJ, 3-Oct-2019.) $)
  bdtru $p |- Bdd T. $=
    ( wtru tru bdth ) ABC $.

  $( The truth value ` F. ` is bounded.  (Contributed by BJ, 3-Oct-2019.) $)
  bdfal $p |- Bdd F. $=
    ( wtru wn wfal bdtru ax-bdn df-fal bd0r ) ABCADEFG $.

  ${
    bdnth.1 $e |- -. ph $.
    $( A falsity is a bounded formula.  (Contributed by BJ, 6-Oct-2019.) $)
    bdnth $p |- Bdd ph $=
      ( wfal bdfal fal 2false bd0 ) CADCAEBFG $.

    $( Alternate proof of ~ bdnth not using ~ bdfal .  Then, ~ bdfal can be
       proved from this theorem, using ~ fal .  The total number of proof steps
       would be 17 (for ~ bdnthALT ) + 3 = 20, which is more than 8 (for
       ~ bdfal ) + 9 (for ~ bdnth ) = 17.  (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bdnthALT $p |- Bdd ph $=
      ( wtru wn bdtru ax-bdn notnot1 trud 2false bd0 ) CDZACEFKAKDCGHBIJ $.
  $}

  ${
    bdxor.1 $e |- Bdd ph $.
    bdxor.2 $e |- Bdd ps $.
    $( The exclusive disjunction of two bounded formulas is bounded.
       (Contributed by BJ, 3-Oct-2019.) $)
    bdxor $p |- Bdd ( ph \/_ ps ) $=
      ( wo wa wn wxo ax-bdor ax-bdan ax-bdn df-xor bd0r ) ABEZABFZGZFABHNPABCDI
      OABCDJKJABLM $.
  $}

  ${
    $d x y $.  $d A y $.
    bj-bdcel.bd $e |- Bdd y = A $.
    $( Boundedness of a membership formula.  (Contributed by BJ,
       8-Dec-2019.) $)
    bj-bdcel $p |- Bdd A e. x $=
      ( cv wceq wrex wcel ax-bdex risset bd0r ) BECFZBAEZGCMHLBADIBCMJK $.
  $}

  ${
    bdab.1 $e |- Bdd ph $.
    $( Membership in a class defined by class abstraction using a bounded
       formula, is a bounded formula.  (Contributed by BJ, 3-Oct-2019.) $)
    bdab $p |- Bdd x e. { y | ph } $=
      ( wsb cv cab wcel ax-bdsb df-clab bd0r ) ACBEBFACGHACBDIABCJK $.
  $}

  ${
    bdcdeq.1 $e |- Bdd ph $.
    $( Conditional equality of a bounded formula is a bounded formula.
       (Contributed by BJ, 16-Oct-2019.) $)
    bdcdeq $p |- Bdd CondEq ( x = y -> ph ) $=
      ( weq wi wcdeq ax-bdeq ax-bdim df-cdeq bd0r ) BCEZAFABCGLABCHDIABCJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Bounded classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In line with our definitions of classes as extensions of predicates, it is
  useful to define a predicate for bounded classes, which is done in ~ df-bdc .
  Note that this notion is only a technical device which can be used to shorten
  proofs of (semantic) boundedness of formulas.

  As will be clear by the end of this subsection (see for instance ~ bdop ),
  one can prove the boundedness of any concrete term using only setvars and
  bounded formulas, for instance,
  ` |- Bdd ph => `
  ` |- Bdd_ <. { x | ph } , ( { y , suc z } X. <. t , (/) >. ) >. ` .
  The proofs are long since one has to prove boundedness at each step of the
  construction, without being able to prove general theorems like
  ` |- Bdd_ A => |- Bdd_ { A } ` .

$)

  $( Symbol for the predicate ` Bdd_ ` . $)
  $c Bdd_ $.

  $( Syntax for the predicate ` Bdd_ ` . $)
  wbdc $a wff Bdd_ A $.

  ${
    $d x A $.
    $( Define a bounded class as one such that membership in this class is a
       bounded formula.  (Contributed by BJ, 3-Oct-2019.) $)
    df-bdc $a |- ( Bdd_ A <-> A. x Bdd x e. A ) $.
  $}

  ${
    $d x A $.  $d x B $.
    bdceq.1 $e |- A = B $.
    $( Equality property for the predicate ` Bdd_ ` .  (Contributed by BJ,
       3-Oct-2019.) $)
    bdceq $p |- ( Bdd_ A <-> Bdd_ B ) $=
      ( vx cv wcel wbd wal wbdc eleq2i bdeq albii df-bdc 3bitr4i ) DEZAFZGZDHOB
      FZGZDHAIBIQSDPRABOCJKLDAMDBMN $.
  $}

  ${
    $d x A $.  $d x B $.
    bdceqi.min $e |- Bdd_ A $.
    bdceqi.maj $e |- A = B $.
    $( A class equal to a bounded one is bounded.  Note the use of ~ ax-ext .
       See also ~ bdceqir .  (Contributed by BJ, 3-Oct-2019.) $)
    bdceqi $p |- Bdd_ B $=
      ( wbdc bdceq mpbi ) AEBECABDFG $.
  $}

  ${
    bdceqir.min $e |- Bdd_ A $.
    bdceqir.maj $e |- B = A $.
    $( A class equal to a bounded one is bounded.  Stated with a commuted
       (compared with ~ bdceqi ) equality in the hypothesis, to work better
       with definitions ( ` B ` is the definiendum that one wants to prove
       bounded; see comment of ~ bd0r ).  (Contributed by BJ, 3-Oct-2019.) $)
    bdceqir $p |- Bdd_ B $=
      ( eqcomi bdceqi ) ABCBADEF $.
  $}

  ${
    $d x A $.
    $( The belonging of a setvar in a bounded class is a bounded formula.
       (Contributed by BJ, 3-Oct-2019.) $)
    bdel $p |- ( Bdd_ A -> Bdd x e. A ) $=
      ( wbdc cv wcel wbd wal df-bdc sp sylbi ) BCADBEFZAGKABHKAIJ $.
  $}

  ${
    $d x A $.
    bdeli.1 $e |- Bdd_ A $.
    $( Inference associated with ~ bdel .  Its converse is ~ bdelir .
       (Contributed by BJ, 3-Oct-2019.) $)
    bdeli $p |- Bdd x e. A $=
      ( wbdc cv wcel wbd bdel ax-mp ) BDAEBFGCABHI $.
  $}

  ${
    $d x A $.
    bdelir.1 $e |- Bdd x e. A $.
    $( Inference associated with ~ df-bdc .  Its converse is ~ bdeli .
       (Contributed by BJ, 3-Oct-2019.) $)
    bdelir $p |- Bdd_ A $=
      ( wbdc cv wcel wbd df-bdc mpgbir ) BDAEBFGAABHCI $.
  $}

  ${
    $d x y $.
    $( A setvar is a bounded class.  (Contributed by BJ, 3-Oct-2019.) $)
    bdcv $p |- Bdd_ x $=
      ( vy cv ax-bdel bdelir ) BACBADE $.
  $}

  ${
    $d y x $.  $d y ph $.
    bdcab.1 $e |- Bdd ph $.
    $( A class defined by class abstraction using a bounded formula is
       bounded.  (Contributed by BJ, 6-Oct-2019.) $)
    bdcab $p |- Bdd_ { x | ph } $=
      ( vy cab bdab bdelir ) DABEADBCFG $.
  $}

  ${
    $d y x $.  $d y ph $.
    bdph.1 $e |- Bdd_ { x | ph } $.
    $( A formula which defines (by class abstraction) a bounded class is
       bounded.  (Contributed by BJ, 6-Oct-2019.) $)
    bdph $p |- Bdd ph $=
      ( vy wsb cv cab wcel bdeli df-clab bd0 ax-bdsb sbid2v ) ABDEZDBEANDBDFABG
      ZHNDOCIADBJKLADBMK $.
  $}

  ${
    $d x ps $.  $d y ph $.
    bds.bd $e |- Bdd ph $.
    bds.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Boundedness of a formula resulting from implicit substitution in a
       bounded formula.  Note that the proof does not use ~ ax-bdsb ;
       therefore, using implicit instead of explicit substitution when
       boundedness is important, one might avoid using ~ ax-bdsb .
       (Contributed by BJ, 19-Nov-2019.) $)
    bds $p |- Bdd ps $=
      ( cab bdcab cbvabv bdceqi bdph ) BDACGBDGACEHABCDFIJK $.
  $}

  ${
    $d x A $.
    bdcrab.1 $e |- Bdd_ A $.
    bdcrab.2 $e |- Bdd ph $.
    $( A class defined by restricted abstraction from a bounded class and a
       bounded formula is bounded.  (Contributed by BJ, 3-Oct-2019.) $)
    bdcrab $p |- Bdd_ { x e. A | ph } $=
      ( cv wcel wa cab crab bdeli ax-bdan bdcab df-rab bdceqir ) BFCGZAHZBIABCJ
      QBPABCDKELMABCNO $.
  $}

  $( Inequality of two setvars is a bounded formula.  (Contributed by BJ,
     16-Oct-2019.) $)
  bdne $p |- Bdd x =/= y $=
    ( weq wn cv wne ax-bdeq ax-bdn df-ne bd0r ) ABCZDAEZBEZFKABGHLMIJ $.

  ${
    $d x A $.
    bdnel.1 $e |- Bdd_ A $.
    $( Non-membership of a setvar in a bounded formula is a bounded formula.
       (Contributed by BJ, 16-Oct-2019.) $)
    bdnel $p |- Bdd x e/ A $=
      ( cv wcel wn wnel bdeli ax-bdn df-nel bd0r ) ADZBEZFLBGMABCHILBJK $.
  $}

  ${
    $d x y z $.  $d ph z $.
    bdreu.1 $e |- Bdd ph $.
    $( Boundedness of existential uniqueness.

       Remark regarding restricted quantifiers: the formula ` A. x e. A ph `
       need not be bounded even if ` A ` and ` ph ` are.  Indeed, ` _V ` is
       bounded by ~ bdcvv , and ` |- ( A. x e. _V ph <-> A. x ph ) ` (in
       minimal propositional calculus), so by ~ bd0 , if ` A. x e. _V ph ` were
       bounded when ` ph ` is bounded, then ` A. x ph ` would be bounded as
       well when ` ph ` is bounded, which is not the case.  The same remark
       holds with ` E. , E! , E* ` .  (Contributed by BJ, 16-Oct-2019.) $)
    bdreu $p |- Bdd E! x e. y ph $=
      ( vz cv wrex wi wral wa wreu ax-bdex ax-bdeq ax-bdim ax-bdal ax-bdan reu3
      weq bd0r ) ABCFZGZABERZHZBTIZETGZJABTKUAUEABCDLUDECUCBCAUBDBEMNOLPABETQS
      $.
  $}

  ${
    $d x y $.
    bdrmo.1 $e |- Bdd ph $.
    $( Boundedness of existential at-most-one.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdrmo $p |- Bdd E* x e. y ph $=
      ( cv wrex wreu wi wrmo ax-bdex bdreu ax-bdim rmo5 bd0r ) ABCEZFZABOGZHABO
      IPQABCDJABCDKLABOMN $.
  $}

  $( The universal class is bounded.  The formulation may sound strange, but
     recall that here, "bounded" means " ` Delta0 ` ".  (Contributed by BJ,
     3-Oct-2019.) $)
  bdcvv $p |- Bdd_ _V $=
    ( vx cvv cv wcel vex bdth bdelir ) ABACBDAEFG $.

  ${
    bdcsbc.1 $e |- Bdd ph $.
    $( A formula resulting from proper substitution of a setvar for a setvar in
       a bounded formula is bounded.  See also ~ bdsbcALT .  (Contributed by
       BJ, 16-Oct-2019.) $)
    bdsbc $p |- Bdd [. y / x ]. ph $=
      ( wsb cv wsbc ax-bdsb sbsbc bd0 ) ABCEABCFGABCDHABCIJ $.

    $( Alternate proof of ~ bdsbc .  (Contributed by BJ, 16-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bdsbcALT $p |- Bdd [. y / x ]. ph $=
      ( cv cab wcel wsbc bdab df-sbc bd0r ) CEZABFGABLHACBDIABLJK $.
  $}

  ${
    $d x z $.  $d y z $.  $d A z $.
    bdccsb.1 $e |- Bdd_ A $.
    $( A class resulting from proper substitution of a setvar for a setvar in a
       bounded class is bounded.  (Contributed by BJ, 16-Oct-2019.) $)
    bdccsb $p |- Bdd_ [_ y / x ]_ A $=
      ( vz cv wcel wsbc cab csb bdeli bdsbc bdcab df-csb bdceqir ) EFCGZABFZHZE
      IAQCJREPABECDKLMAEQCNO $.
  $}

  ${
    $d x A $.  $d x B $.
    bdcdif.1 $e |- Bdd_ A $.
    bdcdif.2 $e |- Bdd_ B $.
    $( The difference of two bounded classes is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcdif $p |- Bdd_ ( A \ B ) $=
      ( vx cv wcel wn wa cab cdif bdeli ax-bdn ax-bdan bdcab df-dif bdceqir ) E
      FZAGZRBGZHZIZEJABKUBESUAEACLTEBDLMNOEABPQ $.

    $( The union of two bounded classes is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcun $p |- Bdd_ ( A u. B ) $=
      ( vx cv wcel wo cab cun bdeli ax-bdor bdcab df-un bdceqir ) EFZAGZPBGZHZE
      IABJSEQREACKEBDKLMEABNO $.

    $( The intersection of two bounded classes is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcin $p |- Bdd_ ( A i^i B ) $=
      ( vx cv wcel wa cab cin bdeli ax-bdan bdcab df-in bdceqir ) EFZAGZPBGZHZE
      IABJSEQREACKEBDKLMEABNO $.
  $}

  ${
    $d y x $.  $d y A $.
    bdss.1 $e |- Bdd_ A $.
    $( The inclusion of a setvar in a bounded class is a bounded formula.
       Note: apparently, we cannot prove from the present axioms that equality
       of two bounded classes is a bounded formula.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdss $p |- Bdd x C_ A $=
      ( vy cv wcel wral wss bdeli ax-bdal dfss3 bd0r ) DEBFZDAEZGNBHMDADBCIJDNB
      KL $.
  $}

  $( The empty class is bounded.  See also ~ bdcnulALT .  (Contributed by BJ,
     3-Oct-2019.) $)
  bdcnul $p |- Bdd_ (/) $=
    ( vx c0 cv wcel noel bdnth bdelir ) ABACZBDHEFG $.

  $( Alternate proof of ~ bdcnul .  Similarly, for the next few theorems
     proving boundedness of a class, one can either use their definition
     followed by ~ bdceqir , or use the corresponding characterizations of its
     elements followed by ~ bdelir .  (Contributed by BJ, 3-Oct-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bdcnulALT $p |- Bdd_ (/) $=
    ( cvv cdif c0 bdcvv bdcdif df-nul bdceqir ) AABCAADDEFG $.

  ${
    $( Boundedness of the formula expressing that a setvar is equal to the
       empty class.  (Contributed by BJ, 21-Nov-2019.) $)
    bdeq0 $p |- Bdd x = (/) $=
      ( cv c0 wss wceq bdcnul bdss 0ss eqss mpbiran2 bd0r ) ABZCDZLCEZACFGNMCLD
      LHLCIJK $.
  $}

  ${
    $d x y $.
    $( Boundedness of the formula "the empty set belongs to the setvar
       ` x ` ".  (Contributed by BJ, 30-Nov-2019.) $)
    bj-bd0el $p |- Bdd (/) e. x $=
      ( vy c0 bdeq0 bj-bdcel ) ABCBDE $.
  $}

  ${
    $d x A $.
    bdcpw.1 $e |- Bdd_ A $.
    $( The power class of a bounded class is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcpw $p |- Bdd_ ~P A $=
      ( vx cv wss cab cpw bdss bdcab df-pw bdceqir ) CDAEZCFAGLCCABHICAJK $.
  $}

  ${
    $d x y $.
    $( The singleton of a setvar is bounded.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdcsn $p |- Bdd_ { x } $=
      ( vy weq cab cv csn ax-bdeq bdcab df-sn bdceqir ) BACZBDAEZFKBBAGHBLIJ $.
  $}

  ${
    $( The pair of two setvars is bounded.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdcpr $p |- Bdd_ { x , y } $=
      ( cv csn cun cpr bdcsn bdcun df-pr bdceqir ) ACZDZBCZDZEKMFLNAGBGHKMIJ $.
  $}

  ${
    $( The unordered triple of three setvars is bounded.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdctp $p |- Bdd_ { x , y , z } $=
      ( cv cpr csn cun ctp bdcpr bdcsn bdcun df-tp bdceqir ) ADZBDZEZCDZFZGNOQH
      PRABICJKNOQLM $.
  $}

  ${
    $d x A $.
    bdsnss.1 $e |- Bdd_ A $.
    $( Inclusion of a singleton of a setvar in a bounded class is a bounded
       formula.  (Contributed by BJ, 16-Oct-2019.) $)
    bdsnss $p |- Bdd { x } C_ A $=
      ( cv wcel csn wss bdeli vex snss bd0 ) ADZBELFBGABCHLBAIJK $.
  $}

  ${
    $d x y $.
    $( Equality of a setvar with a singleton of a setvar is a bounded formula.
       (Contributed by BJ, 16-Oct-2019.) $)
    bdvsn $p |- Bdd x = { y } $=
      ( cv csn wss wa wceq bdcsn bdss bdcv bdsnss ax-bdan eqss bd0r ) ACZBCDZEZ
      POEZFOPGQRAPBHIBOAJKLOPMN $.
  $}

  ${
    $d z t x $.  $d z t y $.
    $( The ordered pair of two setvars is a bounded class.  (Contributed by BJ,
       21-Nov-2019.) $)
    bdop $p |- Bdd_ <. x , y >. $=
      ( vz cv cop csn wceq cpr wo wcel bdvsn wss bdcpr ax-bdel ax-bdan vex ssel
      wa mpi bd0r bdss prid1 prid2 jca prssi impbii eqss ax-bdor elop bdelir )
      CADZBDZEZCDZUKFGZUNUKULHZGZIUNUMJUOUQCAKUNUPLZUPUNLZRUQURUSCUPABMUAUKUNJZ
      ULUNJZRZUSUTVAACNBCNOUSVBUSUTVAUSUKUPJUTUKULAPZUBUPUNUKQSUSULUPJVAUKULBPZ
      UCUPUNULQSUDUKULUNUEUFTOUNUPUGTUHUNUKULCPVCVDUITUJ $.
  $}

  ${
    $d x y z $.
    $( The union of a setvar is a bounded class.  (Contributed by BJ,
       15-Oct-2019.) $)
    bdcuni $p |- Bdd_ U. x $=
      ( vy vz wel wa wex cab cv cuni ax-bdel ax-bdex bdcab df-rex exancom bitri
      wrex abbii bdceqi df-uni bdceqir ) BCDZCADZECFZBGZAHZIUACUEPZBGUDUFBUACAB
      CJKLUFUCBUFUBUAECFUCUACUEMUBUACNOQRBCUEST $.
  $}

  ${
    $d x y z $.
    $( The intersection of a setvar is a bounded class.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdcint $p |- Bdd_ |^| x $=
      ( vz vy wel wi wal cab cint wral ax-bdel ax-bdal df-ral bd0 bdcab bdceqir
      cv df-int ) BADCBDZEBFZCGAPZHSCRBTISRBACBJKRBTLMNCBTQO $.
  $}

  ${
    $d x y z $.  $d z A $.
    bdciun.1 $e |- Bdd_ A $.
    $( The indexed union of a bounded class with a setvar indexing set is a
       bounded class.  (Contributed by BJ, 16-Oct-2019.) $)
    bdciun $p |- Bdd_ U_ x e. y A $=
      ( vz cv wcel wrex cab ciun bdeli ax-bdex bdcab df-iun bdceqir ) EFCGZABFZ
      HZEIAQCJREPABECDKLMAEQCNO $.

    $( The indexed intersection of a bounded class with a setvar indexing set
       is a bounded class.  (Contributed by BJ, 16-Oct-2019.) $)
    bdciin $p |- Bdd_ |^|_ x e. y A $=
      ( vz cv wcel wral cab ciin bdeli ax-bdal bdcab df-iin bdceqir ) EFCGZABFZ
      HZEIAQCJREPABECDKLMAEQCNO $.
  $}

  $( The successor of a setvar is a bounded class.  (Contributed by BJ,
     16-Oct-2019.) $)
  bdcsuc $p |- Bdd_ suc x $=
    ( cv csn cun csuc bdcv bdcsn bdcun df-suc bdceqir ) ABZKCZDKEKLAFAGHKIJ $.

  ${
    $d x y $.
    $( Boundedness of the formula expressing that a setvar is equal to the
       successor of another.  (Contributed by BJ, 21-Nov-2019.) $)
    bdeqsuc $p |- Bdd x = suc y $=
      ( cv csuc wss wa wceq bdcsuc bdss csn cun bdcv bdsnss ax-bdan unss df-suc
      bd0 sseq1i bd0r eqss ) ACZBCZDZEZUCUAEZFUAUCGUDUEAUCBHIUBUBJZKZUAEZUEUBUA
      EZUFUAEZFUHUIUJBUAALZIBUAUKMNUBUFUAOQUCUGUAUBPRSNUAUCTS $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Boundedness of the formula "the successor of the setvar ` x ` belongs to
       the setvar ` y ` ".  (Contributed by BJ, 30-Nov-2019.) $)
    bj-bdsucel $p |- Bdd suc x e. y $=
      ( vz cv csuc bdeqsuc bj-bdcel ) BCADECAFG $.
  $}

  ${
    $d x y z t $.  $d z t ph $.
    bdcriota.bd $e |- Bdd ph $.
    bdcriota.ex $e |- E! x e. y ph $.
    $( A class given by a restricted definition binder is bounded, under the
       given hypotheses.  (Contributed by BJ, 24-Nov-2019.) $)
    bdcriota $p |- Bdd_ ( iota_ x e. y ph ) $=
      ( vz vt wel wa cio cv cab wi wal wsb bicomi albii bitri imbi1i bdceqir
      crio cint wcel wral ax-bdsb ax-bdel ax-bdim ax-bdal df-ral impexp clelsb3
      sban anbi1i df-clab bd0 df-int weu wceq wreu df-reu mpbi iotaint df-riota
      bdcab ax-mp ) BCHZAIZBJZABCKZUAVGBLZUBZVHFKVJUCZGFHZMZFNZGLVKVOGABFOZVMMZ
      FVIUDZVOVQFCVPVMABFDUEGFUFUGUHVRVGBFOZVMMZFNZVOVRFCHZVPIZVMMZFNZWAVRWBVQM
      ZFNWEVQFVIUIWFWDFWDWFWBVPVMUJPQRWDVTFWCVSVMVSWCVSVFBFOZVPIWCVFABFULWGWBVP
      FBVIUKUMRPSQRVTVNFVSVLVMVLVSVGFBUNPSQRUOVDGFVJUPTVGBUQZVHVKURABVIUSWHEABV
      IUTVAVGBVBVETABVIVCT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Bounded separation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we state the axiom scheme of bounded separation, which is
  part of CZF set theory.

$)

  ${
    $d a b x $.  $d a b ph $.
    ax-bdsep.1 $e |- Bdd ph $.
    $( Axiom scheme of bounded (or restricted, or ` Delta0 ` ) separation.  It
       is stated with all possible disjoint variable conditions, to show that
       this weak form is sufficient.  For the full axiom of separation, see
       ~ ax-sep .  (Contributed by BJ, 5-Oct-2019.) $)
    ax-bdsep $a |- A. a E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $.
  $}

  ${
    $d a b x $.  $d a b ph $.
    bdsep1.1 $e |- Bdd ph $.
    $( Version of ~ ax-bdsep without initial universal quantifier.
       (Contributed by BJ, 5-Oct-2019.) $)
    bdsep1 $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( wel wa wb wal wex ax-bdsep spi ) BDFBCFAGHBIDJCABCDEKL $.
  $}

  ${
    $d a b x y $.  $d b y ph $.
    bdsep2.1 $e |- Bdd ph $.
    $( Version of ~ ax-bdsep with one DV condition removed and without initial
       universal quantifier.  Use ~ bdsep1 when sufficient.  (Contributed by
       BJ, 5-Oct-2019.) $)
    bdsep2 $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( vy wel wa wb wal wex cv eleq2 anbi1d bibi2d albidv exbidv bdsep1 chvarv
      weq ) BDGZBFGZAHZIZBJZDKUABCGZAHZIZBJZDKFCFCTZUEUIDUJUDUHBUJUCUGUAUJUBUFA
      FLCLBLMNOPQABFDERS $.
  $}

  ${
    $d a b x y $.  $d y ph $.
    bdsepnft.1 $e |- Bdd ph $.
    $( Closed form of ~ bdsepnf .  Version of ~ ax-bdsep with one DV condition
       removed, the other DV condition replaced by a non-freeness antecedent,
       and without initial universal quantifier.  Use ~ bdsep1 when
       sufficient.  (Contributed by BJ, 19-Oct-2019.) $)
    bdsepnft $p |- ( A. x F/ b ph ->
                                 E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) ) $=
      ( vy wnf wal wel wa wb wex bdsep2 nfnf1 nfal nfa1 nfvd nfv a1i sp nfan ex
      nfand nfbid nfald weq elequ2 adantl bibi1d albid cbvexd mpbii ) ADGZBHZBF
      IZBCIZAJZKZBHZFLBDIZUQKZBHZDLABCFEMUNUSVBFDUMDBADNOUNURDBUMBPZUNUOUQDUNUO
      DQUNUPADUPDGUNUPDRSUMBTUCUDUEUNFDUFZUSVBKUNVDJZURVABUNVDBVCVDBRUAVEUOUTUQ
      VDUOUTKUNFDBUGUHUIUJUBUKUL $.
  $}

  ${
    $d a b x y $.  $d y ph $.
    bdsepnf.nf $e |- F/ b ph $.
    bdsepnf.1 $e |- Bdd ph $.
    $( Version of ~ ax-bdsep with one DV condition removed, the other DV
       condition replaced by a non-freeness hypothesis, and without initial
       universal quantifier.  See also ~ bdsepnfALT .  Use ~ bdsep1 when
       sufficient.  (Contributed by BJ, 5-Oct-2019.) $)
    bdsepnf $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( wnf wel wa wb wal wex bdsepnft mpg ) ADGBDHBCHAIJBKDLBABCDFMEN $.

    $( Alternate proof of ~ bdsepnf , not using ~ bdsepnft .  (Contributed by
       BJ, 5-Oct-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bdsepnfALT $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( vy wel wa wb wal wex bdsep2 nfv nfan nfbi nfal weq elequ2 bibi1d albidv
      cbvex mpbi ) BGHZBCHZAIZJZBKZGLBDHZUFJZBKZDLABCGFMUHUKGDUGDBUDUFDUDDNUEAD
      UEDNEOPQUKGNGDRZUGUJBULUDUIUFGDBSTUAUBUC $.
  $}

  ${
    $d x y z A $.  $d y z ph $.
    bdzfauscl.bd $e |- Bdd ph $.
    $( Closed form of the version of ~ zfauscl for bounded formulas using
       bounded separation.  (Contributed by BJ, 13-Nov-2019.) $)
    bdzfauscl $p |- ( A e. V -> E. y A. x ( x e. y <-> ( x e. A /\ ph ) ) ) $=
      ( vz wel wa wb wal wex cv wcel wceq eleq2 anbi1d bibi2d albidv exbidv
      bdsep1 vtoclg ) BCHZBGHZAIZJZBKZCLUCBMZDNZAIZJZBKZCLGDEGMZDOZUGULCUNUFUKB
      UNUEUJUCUNUDUIAUMDUHPQRSTABGCFUAUB $.
  $}

  ${
    $d x ph z $.  $d x y z $.
    bdbm1.3ii.bd $e |- Bdd ph $.
    bdbm1.3ii.1 $e |- E. x A. y ( ph -> y e. x ) $.
    $( Bounded version of ~ bm1.3ii .  (Contributed by BJ, 5-Oct-2019.)
       (Proof modification is discouraged.) $)
    bdbm1.3ii $p |- E. x A. y ( y e. x <-> ph ) $=
      ( vz wel wi wal wa wex weq elequ2 imbi2d albidv cbvexv mpbi bdsep1 pm3.2i
      wb exan 19.42v bimsc1 alanimi eximi sylbir exlimiv ax-mp ) ACFGZHZCIZCBGZ
      UIAJTZCIZBKZJZFKULATZCIZBKZUKUOFUKFKZUOAULHZCIZBKUTEVBUKBFBFLZVAUJCVCULUI
      ABFCMNOPQACFBDRSUAUPUSFUPUKUNJZBKUSUKUNBUBVDURBUJUMUQCAUIULUCUDUEUFUGUH
      $.
  $}

  ${
    $d x y z $.
    $( Lemma for ~ bj-axempty and ~ bj-axempty2 .  (Contributed by BJ,
       25-Oct-2020.)  (Proof modification is discouraged.)  Use ~ ax-nul
       instead.  (New usage is discouraged.) $)
    bj-axemptylem $p |- E. x A. y ( y e. x -> F. ) $=
      ( vz wel wfal wa wb wal wi bdfal bdsep1 bi1 falimd syl6 alimi eximii ) BA
      DZBCDZEFZGZBHQEIZBHAEBCAJKTUABTQSEQSLREMNOP $.
  $}

  ${
    $d x y z $.
    $( Axiom of the empty set from bounded separation.  It is provable from
       bounded separation since the intuitionistic FOL used in iset.mm assumes
       a non-empty universe.  See ~ axnul .  (Contributed by BJ, 25-Oct-2020.)
       (Proof modification is discouraged.)  Use ~ ax-nul instead.
       (New usage is discouraged.) $)
    bj-axempty $p |- E. x A. y e. x F. $=
      ( wfal cv wral wex wel wi wal bj-axemptylem df-ral exbii mpbir ) CBADZEZA
      FBAGCHBIZAFABJOPACBNKLM $.
  $}

  ${
    $d x y z $.
    $( Axiom of the empty set from bounded separation, alternate version to
       ~ bj-axempty .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.)  Use ~ ax-nul instead.
       (New usage is discouraged.) $)
    bj-axempty2 $p |- E. x A. y -. y e. x $=
      ( wel wn wal wex wfal wi bj-axemptylem dfnot albii exbii mpbir ) BACZDZBE
      ZAFNGHZBEZAFABIPRAOQBNJKLM $.
  $}

  ${
    $d x y z $.
    $( ~ nalset from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nalset $p |- -. E. x A. y y e. x $=
      ( vz wel wn wex wal alexnim wa wb ax-bdel ax-bdn bdsep1 weq elequ1 elequ2
      bitrd notbid anbi12d bibi12d spv pclem6 syl eximii mpg ) BADZEZBFUFBGAFEA
      UFABHCBDZCADZCCDZEZIZJZCGZUGBUKCABUJCCKLMUNBBDZUFUOEZIZJZUGUMURCBCBNZUHUO
      ULUQCBBOUSUIUFUKUPCBAOUSUJUOUSUJBCDUOCBCOCBBPQRSTUAUOUFUBUCUDUE $.
  $}

  ${
    $d x y $.
    $( ~ vprc from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-vprc $p |- -. _V e. _V $=
      ( vx vy cvv wcel cv wceq wex wal bj-nalset wb vex tbt albii dfcleq bitr4i
      exbii mtbi isset mtbir ) CCDAEZCFZAGZBEZTDZBHZAGUBABIUEUAAUEUDUCCDZJZBHUA
      UDUGBUFUDBKLMBTCNOPQACRS $.
  $}

  $( ~ nvel from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-nvel $p |- -. _V e. A $=
    ( cvv wcel bj-vprc elex mto ) BACBBCDBAEF $.

  $( ~ vnex from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-vnex $p |- -. E. x x = _V $=
    ( cvv wcel cv wceq wex bj-vprc isset mtbi ) BBCADBEAFGABHI $.

  ${
    $d A x y $.  $d B x y $.
    bdinex1.bd $e |- Bdd_ B $.
    bdinex1.1 $e |- A e. _V $.
    $( Bounded version of ~ inex1 .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdinex1 $p |- ( A i^i B ) e. _V $=
      ( vx vy cin cv wceq wex wel wcel wa wal cvv bdeli bdzfauscl ax-mp dfcleq
      wb elin bibi2i albii bitri exbii mpbir issetri ) EABGZEHZUHIZEJFEKZFHZALU
      LBLZMZTZFNZEJZAOLUQDUMFEAOFBCPQRUJUPEUJUKULUHLZTZFNUPFUIUHSUSUOFURUNUKULA
      BUAUBUCUDUEUFUG $.
  $}

  ${
    bdinex2.bd $e |- Bdd_ B $.
    bdinex2.1 $e |- A e. _V $.
    $( Bounded version of ~ inex2 .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdinex2 $p |- ( B i^i A ) e. _V $=
      ( cin cvv incom bdinex1 eqeltri ) BAEABEFBAGABCDHI $.
  $}

  ${
    $d x A $.  $d x B $.
    bdinex1g.bd $e |- Bdd_ B $.
    $( Bounded version of ~ inex1g .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdinex1g $p |- ( A e. V -> ( A i^i B ) e. _V ) $=
      ( vx cv cin cvv wcel wceq ineq1 eleq1d vex bdinex1 vtoclg ) EFZBGZHIABGZH
      IEACPAJQRHPABKLPBDEMNO $.
  $}

  ${
    bdssex.bd $e |- Bdd_ A $.
    bdssex.1 $e |- B e. _V $.
    $( Bounded version of ~ ssex .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssex $p |- ( A C_ B -> A e. _V ) $=
      ( wss cin wceq cvv wcel df-ss bdinex2 eleq1 mpbii sylbi ) ABEABFZAGZAHIZA
      BJPOHIQBACDKOAHLMN $.
  $}

  ${
    bdssexi.bd $e |- Bdd_ A $.
    bdssexi.1 $e |- B e. _V $.
    bdssexi.2 $e |- A C_ B $.
    $( Bounded version of ~ ssexi .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssexi $p |- A e. _V $=
      ( wss cvv wcel bdssex ax-mp ) ABFAGHEABCDIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    bdssexg.bd $e |- Bdd_ A $.
    $( Bounded version of ~ ssexg .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssexg $p |- ( ( A C_ B /\ B e. C ) -> A e. _V ) $=
      ( vx wcel wss cvv cv wi wceq sseq2 imbi1d vex bdssex vtoclg impcom ) BCFA
      BGZAHFZAEIZGZSJRSJEBCTBKUARSTBALMATDENOPQ $.
  $}

  ${
    bdssexd.1 $e |- ( ph -> B e. C ) $.
    bdssexd.2 $e |- ( ph -> A C_ B ) $.
    bdssexd.bd $e |- Bdd_ A $.
    $( Bounded version of ~ ssexd .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssexd $p |- ( ph -> A e. _V ) $=
      ( wss wcel cvv bdssexg syl2anc ) ABCHCDIBJIFEBCDGKL $.
  $}

  ${
    $d x A $.
    bdrabexg.bd $e |- Bdd ph $.
    bdrabexg.bdc $e |- Bdd_ A $.
    $( Bounded version of ~ rabexg .  (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdrabexg $p |- ( A e. V -> { x e. A | ph } e. _V ) $=
      ( crab wss wcel cvv ssrab2 bdcrab bdssexg mpan ) ABCGZCHCDIOJIABCKOCDABCF
      ELMN $.
  $}

  ${
    $d x y z t A $.  $d x y z t B $.
    $( The intersection of two sets is a set, from bounded separation.
       (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-inex $p |- ( ( A e. V /\ B e. W ) -> ( A i^i B ) e. _V ) $=
      ( vx vy vz wcel cv wceq wex cin cvv elisset wal ax-17 19.29r sylan2 19.29
      wa sylan eximi ineq12 2eximi crab dfin5 vex ax-bdel bdcv bdrabexg eqeltri
      ax-mp eleq1 mpbii exlimivv syl 3syl syl2an ) ACHEIZAJZEKZFIZBJZFKZABLZMHZ
      BDHEACNFBDNVAVDTUTVDTZEKZUTVCTZFKZEKZVFVDVAVDEOVHVDEPUTVDEQRVGVJEUTUTFOVD
      VJUTFPUTVCFSUAUBVKUSVBLZVEJZFKEKVFVIVMEFUSAVBBUCUDVMVFEFVMVLMHVFVLGIVBHZG
      USUEZMGUSVBUFUSMHVOMHEUGVNGUSMGFUHEUIUJULUKVLVEMUMUNUOUPUQUR $.
  $}

  ${
    $d x A $.
    $( ~ intexr from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-intexr $p |- ( |^| A e. _V -> A =/= (/) ) $=
      ( cint cvv wcel c0 wceq bj-vprc inteq int0 syl6eq eleq1d mtbiri necon2ai
      ) ABZCDZAEAEFZOCCDGPNCCPNEBCAEHIJKLM $.
  $}

  $( ~ intnexr from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-intnexr $p |- ( |^| A = _V -> -. |^| A e. _V ) $=
    ( cint cvv wceq wcel bj-vprc eleq1 mtbiri ) ABZCDICECCEFICCGH $.

  ${
    $d x z w $.  $d y z w $.
    $( Proof of ~ zfpair2 using only bounded separation.  (Contributed by BJ,
       5-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-zfpair2 $p |- { x , y } e. _V $=
      ( vz vw cv cpr wceq wex wel weq wo wb wal ax-bdeq ax-bdor ax-pr bdbm1.3ii
      wcel dfcleq vex elpr bibi2i albii bitri exbii mpbir issetri ) CAEZBEZFZCE
      ZUJGZCHDCIZDAJZDBJZKZLZDMZCHUPCDUNUODANDBNOABCDPQULURCULUMDEZUJRZLZDMURDU
      KUJSVAUQDUTUPUMUSUHUIDTUAUBUCUDUEUFUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x W $.
    $( Proof of ~ prexg using only bounded separation.  (Contributed by BJ,
       5-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-prexg $p |- ( ( A e. V /\ B e. W ) -> { A , B } e. _V ) $=
      ( vx vy wcel cpr cvv wi wceq preq2 eleq1d bj-zfpair2 vtoclg preq1 vtocleg
      cv syl5ib imp ) ACGBDGZABHZIGZUAUCJEACUAERZBHZIGZUDAKZUCUDFRZHZIGUFFBDUHB
      KUIUEIUHBUDLMEFNOUGUEUBIUDABPMSQT $.
  $}

  $( ~ snexg from bounded separation.  (Contributed by BJ, 5-Oct-2019.)
     (Proof modification is discouraged.) $)
  bj-snexg $p |- ( A e. V -> { A } e. _V ) $=
    ( wcel csn cpr cvv dfsn2 bj-prexg anidms syl5eqel ) ABCZADAAEZFAGKLFCAABBHI
    J $.

  ${
    bj-snex.1 $e |- A e. _V $.
    $( ~ snex from bounded separation.  (Contributed by BJ, 5-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-snex $p |- { A } e. _V $=
      ( cvv wcel csn bj-snexg ax-mp ) ACDAECDBACFG $.
  $}

  ${
    $d x A $.
    $( If a class is a set, then it is a member of a set.  (Copied from
       set.mm.)  (Contributed by BJ, 3-Apr-2019.) $)
    bj-sels $p |- ( A e. V -> E. x A e. x ) $=
      ( wcel cv csn wsbc snidg csb cvv bj-snexg sbcel2g syl wceq csbvarg eleq2d
      wb bitrd mpbird spesbcd ) BCDZBAEZDZABFZUAUCAUDGZBUDDZBCHUAUEBAUDUBIZDZUF
      UAUDJDZUEUHQBCKZAUDBUBJLMUAUGUDBUAUIUGUDNUJAUDJOMPRST $.
  $}

$(
  ${
    $d x y $.
    bdiinex.bd $e |- Bdd_ A $.
    @( Bounded version of a strengthening of ~ iinexgm .  (Contributed by BJ,
       13-Nov-2019.)  (Proof modification is discouraged.) @)
    bdiinex $p |- ( E. x e. y A e. V -> |^|_ x e. y A e. _V ) $=
    wcel.cA=cA wcel.cB=cV wph=wcel vx=vx vx.cv=vy cA=cv wph=wrex wps=? vx=vx
    vx.cv=vy cA=cv cB=cA wcel.cA=ciin wcel.cB=cvv wch=wcel wph=? wps=? wch=?
    wph=? wps=? wch=? syl.1=? vx=? cA=? cB=? cC=? syl.2=iinss jca.1=syl jca.2=?
    syl.1=jca vx=vx vx.cv=vy cA=cv cB=cA cA=ciin cB=? cC=? vx=vx vy=vy cA=cA
    bdciun.1=bdiinex.bd bdssexg.bd=bdciin syl.2=bdssexg bdiinex=syl $.
  $}
$)

  ${
    $d w x y z $.
    $( ~ axun2 from bounded separation.  (Contributed by BJ, 15-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-axun2 $p |- E. y A. z ( z e. y <-> E. w ( z e. w /\ w e. x ) ) $=
      ( wel wa wex cv wrex ax-bdel ax-bdex df-rex exancom bitri ax-un bdbm1.3ii
      bd0 ) CDEZDAEZFDGZBCRDAHZIZTRDACDJKUBSRFDGTRDUALSRDMNQABCDOP $.
  $}

  ${
    $d x y z $.
    $( ~ uniex2 from bounded separation.  (Contributed by BJ, 15-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-uniex2 $p |- E. y y = U. x $=
      ( vz cv cuni wceq wex wel wcel wb wal bdcuni bdeli wi wa zfun eluni exbii
      imbi1i mpbir albii bdbm1.3ii dfcleq ) BDZADZEZFZBGCBHZCDZUFIZJCKZBGUJBCCU
      FALMUJUHNZCKZBGUHBAHOBGZUHNZCKZBGBCAPUMUPBULUOCUJUNUHBUIUEQSUARTUBUGUKBCU
      DUFUCRT $.
  $}

  ${
    $d x y A $.
    bj-uniex.1 $e |- A e. _V $.
    $( ~ uniex from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-uniex $p |- U. A e. _V $=
      ( vx vy cv cuni cvv wcel wceq unieq eleq1d bj-uniex2 issetri vtocl ) CEZF
      ZGHAFZGHCABOAIPQGOAJKDPCDLMN $.
  $}

  ${
    $d x A $.
    $( ~ uniexg from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-uniexg $p |- ( A e. V -> U. A e. _V ) $=
      ( vx cv cuni cvv wcel wceq unieq eleq1d vex bj-uniex vtoclg ) CDZEZFGAEZF
      GCABNAHOPFNAIJNCKLM $.
  $}

  ${
    bj-unex.1 $e |- A e. _V $.
    bj-unex.2 $e |- B e. _V $.
    $( ~ unex from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-unex $p |- ( A u. B ) e. _V $=
      ( cpr cuni cun cvv unipr wcel bj-prexg mp2an bj-uniex eqeltrri ) ABEZFABG
      HABCDIOAHJBHJOHJCDABHHKLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.
    bdunex.bd1 $e |- Bdd_ A $.
    bdunex.bd2 $e |- Bdd_ B $.
    $( Bounded version of ~ unexb .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdunexb $p |- ( ( A e. _V /\ B e. _V ) <-> ( A u. B ) e. _V ) $=
      ( vx vy cvv wcel wa cun cv wceq uneq1 eleq1d vex bj-unex wss bdssexg mpan
      uneq2 vtocl2g ssun1 ssun2 jca impbii ) AGHZBGHZIABJZGHZEKZFKZJZGHAUKJZGHU
      IEFABGGUJALULUMGUJAUKMNUKBLUMUHGUKBATNUJUKEOFOPUAUIUFUGAUHQUIUFABUBAUHGCR
      SBUHQUIUGBAUCBUHGDRSUDUE $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( ~ unexg from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-unexg $p |- ( ( A e. V /\ B e. W ) -> ( A u. B ) e. _V ) $=
      ( vx vy cv cun cvv wcel wceq wb uneq1 eleq1 syl uneq2 vex bj-unex vtocl2g
      ) EGZFGZHZIJZAUAHZIJZABHZIJZEFABCDTAKUBUDKUCUELTAUAMUBUDINOUABKUDUFKUEUGL
      UABAPUDUFINOTUAEQFQRS $.
  $}

  $( ~ sucexg from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-sucexg $p |- ( A e. V -> suc A e. _V ) $=
    ( wcel csn cvv cun csuc bj-snexg pm4.71i biimpi bj-unexg df-suc eleq1i 3syl
    wa biimpri ) ABCZQADZECZOZARFZECZAGZECZQTQSABHIJARBEKUDUBUCUAEALMPN $.

  ${
    bj-sucex.1 $e |- A e. _V $.
    $( ~ sucex from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-sucex $p |- suc A e. _V $=
      ( cvv wcel csuc bj-sucexg ax-mp ) ACDAECDBACFG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       Delta_0-classical logic
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    ax-bj-d0class.bd $e |- Bdd ph $.
    $( Axiom for ` Delta0 ` -classical logic.  (Contributed by BJ,
       2-Jan-2020.) $)
    ax-bj-d0cl $a |- DECID ph $.
  $}

  $( Equivalence property for negation.  TODO: minimize all theorems using
     ~ notbid and ~ notbii .  (Contributed by BJ, 27-Jan-2020.)
     (Proof modification is discouraged.) $)
  bj-notbi $p |- ( ( ph <-> ps ) -> ( -. ph <-> -. ps ) ) $=
    ( wb wn bi2 con3d bi1 impbid ) ABCZADBDIBAABEFIABABGFH $.

  ${
    bj-notbii.1 $e |- ( ph <-> ps ) $.
    $( Inference associated with ~ bj-notbi .  (Contributed by BJ,
       27-Jan-2020.)  (Proof modification is discouraged.) $)
    bj-notbii $p |- ( -. ph <-> -. ps ) $=
      ( wb wn bj-notbi ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    bj-notbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction form of ~ bj-notbi .  (Contributed by BJ, 27-Jan-2020.)
       (Proof modification is discouraged.) $)
    bj-notbid $p |- ( ph -> ( -. ps <-> -. ch ) ) $=
      ( wb wn bj-notbi syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d a x ph $.
    $( Equivalence property for ` DECID ` .  TODO: solve conflict with ~ dcbi ;
       minimize ~ dcbii and ~ dcbid with it, as well as theorems using those.
       (Contributed by BJ, 27-Jan-2020.)
       (Proof modification is discouraged.) $)
    bj-dcbi $p |- ( ( ph <-> ps ) -> ( DECID ph <-> DECID ps ) ) $=
      ( wb wn wo wdc id bj-notbi orbi12d df-dc 3bitr4g ) ABCZAADZEBBDZEAFBFLABM
      NLGABHIAJBJK $.
  $}

  ${
    $d a x ph $.
    $( ` Delta0 ` -classical logic and separation implies classical logic.
       (Contributed by BJ, 2-Jan-2020.)
       (Proof modification is discouraged.) $)
    bj-d0clsepcl $p |- DECID ph $=
      ( va vx wdc wex c0 cv wcel wb csn wel wal 0ex bj-snex zfauscl wceq anbi1d
      wa eleq1 eximii bibi12d spcv snid biantrur bicomi bibi2i exbii ax-bj-d0cl
      mpbi bj-bd0el bj-dcbi mpbii bj-ex ax-mp ) ADZBEUOFBGZHZAIZUOBUQFFJZHZARZI
      ZBEURBECBKZCGZUSHZARZIZCLVBBACBUSFMNOVGVBCFMVDFPZVCUQVFVAVDFUPSVHVEUTAVDF
      USSQUAUBTVBURBVAAUQAVAUTAFMUCUDUEUFUGUIURUQDUOUQBUJUHUQAUKULTUOBUMUN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       Inductive classes and the class of natural numbers (finite ordinals)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Introduce constant for inductive classes. $)
  $c Ind $.

  $( Syntax for inductive classes. $)
  wind $a wff Ind A $.

  ${
    $d x A $.
    $( Define the property of being an inductive class.  (Contributed by BJ,
       30-Nov-2019.) $)
    df-bj-ind $a |- ( Ind A <-> ( (/) e. A /\ A. x e. A suc x e. A ) ) $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A direct consequence of the definition of ` Ind ` .  (Contributed by BJ,
       30-Nov-2019.) $)
    bj-indsuc $p |- ( Ind A -> ( B e. A -> suc B e. A ) ) $=
      ( vx wind cv csuc wcel wral c0 df-bj-ind simprbi wceq suceq rspcv syl5com
      eleq1d ) ADZCEZFZAGZCAHZBAGBFZAGZQIAGUACAJKTUCCBARBLSUBARBMPNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality property for ` Ind ` .  (Contributed by BJ, 30-Nov-2019.) $)
    bj-indeq $p |- ( A = B -> ( Ind A <-> Ind B ) ) $=
      ( vx wind c0 wcel cv csuc wral wa wceq df-bj-ind eleq2 raleqbi1dv anbi12d
      bicomd syl5rbb syl5bb ) ADEAFZCGHZAFZCAIZJZABKZBDZCALUEEBFZTBFZCBIZJUDUCC
      BLUDUFSUHUBUDSUFABEMPUDUBUHUAUGCABABTMNPOQR $.
  $}

  ${
    $d x y $.
    $( Boundedness of the formula "the setvar ` x ` is an inductive class".
       (Contributed by BJ, 30-Nov-2019.) $)
    bj-bdind $p |- Bdd Ind x $=
      ( vy c0 wcel csuc wral wind bj-bd0el bj-bdsucel ax-bdal ax-bdan df-bj-ind
      cv wa bd0r ) CAMZDZBMEPDZBPFZNPGQSAHRBABAIJKBPLO $.
  $}

  ${
    $d x y A $.
    $( The property of being an inductive class is closed under intersections.
       (Contributed by BJ, 30-Nov-2019.) $)
    bj-indint $p |- Ind |^| { x e. A | Ind x } $=
      ( vy cv wind crab cint c0 wcel csuc wral df-bj-ind simplbi rgenw elintrab
      wi 0ex mpbir bj-indsuc a2i ralimi vex bj-sucex 3imtr4i rgen mpbir2an ) AD
      ZEZABFGZEHUIIZCDZJZUIIZCUIKUJUHHUGIZPZABKUOABUHUNULUGIZCUGKCUGLMNUHAHBQOR
      UMCUIUHUKUGIZPZABKUHUPPZABKUKUIIUMURUSABUHUQUPUGUKSTUAUHAUKBCUBZOUHAULBUK
      UTUCOUDUECUILUF $.
  $}

  ${
    $d x A $.  $d x B $.
    $( If ` A ` is inductive and ` B ` is "inductive in ` A ` ", then
       ` ( A i^i B ) ` is inductive.  (Contributed by BJ, 25-Oct-2020.) $)
    bj-indind $p |- ( ( Ind A /\ ( (/) e. B /\
                A. x e. A ( x e. B -> suc x e. B ) ) ) -> Ind ( A i^i B ) ) $=
      ( wind c0 wcel cv csuc wi wral wa cin df-bj-ind id biimpri wal syl df-ral
      elin sylibr sylanb r19.26 simpl simpr syl6an ralimi pm3.31 syl5bi anim12i
      an4s alimi sylbi ) BDZECFZAGZCFZUOHZCFZIZABJZKZKZEBCLZFZUQVCFZAVCJZKZVCDV
      BEBFZUNKZUQBFZABJZUTKZKZVGUMVHVKKVAVMABMVHUNVKUTVMVMNUJUAVIVDVLVFVDVIEBCS
      OVLUOVCFZVEIZAPZVFVLUPVEIZABJZVPVLVJUSKZABJZVRVTVLVJUSABUBOVSVQABVSVJUPUR
      VEVJUSUCVJUSUDVEVJURKUQBCSOUEUFQVRUOBFZVQIZAPVPVQABRWBVOAVNWAUPKWBVEUOBCS
      WAUPVEUGUHUKULQVEAVCRTUIQAVCMT $.
  $}

  ${
    $d x y $.
    $( Alternate definition of ` _om ` , as the intersection of all the
       inductive sets.  Proposal: make this the definition.  (Contributed by
       BJ, 30-Nov-2019.) $)
    bj-dfom $p |- _om = |^| { x | Ind x } $=
      ( vy com c0 cv wcel csuc wral cab cint wind dfom3 df-bj-ind bicomi inteqi
      wa abbii eqtri ) CDAEZFBEGSFBSHPZAIZJSKZAIZJABLUAUCTUBAUBTBSMNQOR $.
  $}

  $( ` _om ` is an inductive class.  (Contributed by BJ, 30-Nov-2019.) $)
  bj-omind $p |- Ind _om $=
    ( vx com wind cv cvv crab cint bj-indint wb cab bj-dfom rabab inteqi eqtr4i
    wceq bj-indeq ax-mp mpbir ) BCZADCZAEFZGZCZAEHBUBOSUCIBTAJZGUBAKUAUDTALMNBU
    BPQR $.

  ${
    $d x A $.
    $( ` _om ` is included in all the inductive sets (but for the moment, we
       cannot prove that it is included in all the inductive classes).
       (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-omssind $p |- ( A e. V -> ( Ind A -> _om C_ A ) ) $=
      ( wcel wind cab cint wss com nfcv nfv wceq bj-indeq biimprd bj-intabssel1
      vx cv bj-dfom sseq1i syl6ibr ) ABCADZOPZDZOEFZAGHAGUBTOABOAITOJUAAKUBTUAA
      LMNHUCAOQRS $.
  $}

  ${
    $d x y A $.
    $( A characterization of subclasses of ` _om ` .  (Contributed by BJ,
       30-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-ssom $p |- ( A. x ( Ind x -> A C_ x ) <-> A C_ _om ) $=
      ( vy cv wind wss wi wal cab cint com wral wcel ssint df-ral bj-indeq elab
      vex imbi1i albii 3bitrri bj-dfom eqcomi sseq2i bitri ) ADZEZBUFFZGZAHZBCD
      ZEZCIZJZFZBKFUOUHAUMLUFUMMZUHGZAHUJABUMNUHAUMOUQUIAUPUGUHULUGCUFARUKUFPQS
      TUAUNKBKUNCUBUCUDUE $.
  $}

  ${
    $d A x y $.
    $( A set is equal to ` _om ` if and only if it is the smallest inductive
       set.  (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-om $p |- ( A e. V ->
                    ( A = _om <-> ( Ind A /\ A. x ( Ind x -> A C_ x ) ) ) ) $=
      ( wcel com wceq wind cv wss wi wal wa bj-omind bj-indeq mpbiri bj-omssind
      cvv vex ax-mp sseq1 syl5ibr alrimiv jca bj-ssom biimpi adantl a1i adantrd
      jcad eqss syl6ibr impbid2 ) BCDZBEFZBGZAHZGZBUPIZJZAKZLZUNUOUTUNUOEGMBENO
      UNUSAUQURUNEUPIZUPQDUQVBJARUPQPSBEUPTUAUBUCUMVABEIZEBIZLUNUMVAVCVDVAVCJUM
      UTVCUOUTVCABUDUEUFUGUMUOVDUTBCPUHUIBEUJUKUL $.
  $}

  ${
    $d x y $.
    $( Two formulations of the axiom of infinity (see ~ ax-infvn and
       ~ bj-omex ) .  (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-2inf $p |- ( _om e. _V <->
                                E. x ( Ind x /\ A. y ( Ind y -> x C_ y ) ) ) $=
      ( com cvv wcel cv wind wss wi wal wa wceq eqid bj-om mpbii bj-indeq sseq1
      wex imbi2d albidv anbi12d spcegv mpd vex ax-mp biimpri eximi isset sylibr
      wb impbii ) CDEZAFZGZBFZGZUMUOHZIZBJZKZARZULCGZUPCUOHZIZBJZKZVAULCCLVFCMB
      CDNOUTVFACDUMCLZUNVBUSVEUMCPVGURVDBVGUQVCUPUMCUOQSTUAUBUCVAVGARULUTVGAVGU
      TUMDEVGUTUJAUDBUMDNUEUFUGACUHUIUK $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
                 The first three Peano postulates
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  The first three Peano postulates follow from constructive set theory
  (actually, from its core axioms).  The proofs ~ peano1 and ~ peano3 already
  show this.  In this section, we prove ~ bj-peano2 to complete this program.
  We also prove a preliminary version of the fifth Peano postulate from the
  core axioms.

$)

  ${
    $d x y z A $.
    $( Constructive proof of ~ peano2 .  Temporary note: another possibility is
       to simply replace ~ sucexg with ~ bj-sucexg in the proof of ~ peano2 .
       (Contributed by BJ, 18-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-peano2 $p |- ( A e. _om -> suc A e. _om ) $=
      ( com wind wcel csuc wi bj-omind bj-indsuc ax-mp ) BCABDAEBDFGBAHI $.
  $}

  ${
    $d x y A $.
    $( Version of ~ peano5 when ` _om i^i A ` is assumed to be a set, allowing
       a proof from the core axioms of CZF. (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    peano5set $p |- ( ( _om i^i A ) e. V ->
      ( ( (/) e. A /\ A. x e. _om ( x e. A -> suc x e. A ) ) -> _om C_ A ) ) $=
      ( com cin wcel c0 cv csuc wi wral wind bj-omind bj-indind mpan bj-omssind
      wa wss imp sylan2 inss2 syl6ss ex ) DBEZCFZGBFAHZBFUFIBFJADKQZDBRUEUGQDUD
      BUGUEUDLZDUDRZDLUGUHMADBNOUEUHUIUDCPSTDBUAUBUC $.
  $}

  ${
    $d x y A $.
    $( Obsolete version of ~ peano5set as of 26-Oct-2020.  (Contributed by BJ,
       19-Nov-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    peano5setOLD $p |- ( ( _om i^i A ) e. V ->
      ( ( (/) e. A /\ A. x e. _om ( x e. A -> suc x e. A ) ) -> _om C_ A ) ) $=
      ( vy com cin wcel c0 cv csuc wi wral wss wind cab elin wal df-ral sylibr
      wa cint bj-dfom peano1 mpbiran biimpri bj-peano2 adantr pm3.31 jcad alimi
      a1i imbi12i albii 3imtr4i anim12i df-bj-ind bj-indeq elabg syl5ibr intss1
      imp syl syl5eqss inss2 syl6ss ex ) EBFZCGZHBGZAIZBGZVJJZBGZKZAELZTZEBMVHV
      PTZEVGBVQEDIZNZDOZUAZVGDUBVQVGVTGZWAVGMVHVPWBVPWBVHVGNZVPHVGGZVLVGGZAVGLZ
      TWCVIWDVOWFWDVIWDHEGVIUCHEBPUDUEVOVJVGGZWEKZAQZWFVJEGZVNKZAQWJVKTZVLEGZVM
      TZKZAQVOWIWKWOAWKWLWMVMWLWMKWKWJWMVKVJUFUGUKWJVKVMUHUIUJVNAERWHWOAWGWLWEW
      NVJEBPVLEBPULUMUNWEAVGRSUOAVGUPSVSWCDVGCVRVGUQURUSVAVGVTUTVBVCEBVDVEVF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Axiom of infinity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In the absence of full separation, the axiom of infinity has to be stated
  more precisely, as the existence of the smallest class containing the empty
  set and the successor of each of its elements.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       The set of natural numbers (finite ordinals)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we introduce the axiom of infinity in a constructive setting
  ( ~ ax-infvn ) and deduce that the class ` _om ` of finite ordinals is a set
  ( ~ bj-omex ).

$)

  ${
    $d x y $.
    $( Axiom of infinity in a constructive setting.  This asserts the existence
       of the special set we want (the set of natural numbers), instead of the
       existence of a set with some properties ( ~ ax-iinf ) from which one
       then proves, using full separation, that the wanted set exists
       ( ~ omex ).  "vn" is for "Von Neumann".  (Contributed by BJ,
       14-Nov-2019.) $)
    ax-infvn $a |- E. x ( Ind x /\ A. y ( Ind y -> x C_ y ) ) $.
  $}

  ${
    $d x y $.
    $( Proof of ~ omex from ~ ax-infvn .  (Contributed by BJ, 14-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-omex $p |- _om e. _V $=
      ( vx vy com cvv wcel cv wind wss wi wal wa wex ax-infvn bj-2inf mpbir ) C
      DEAFZGBFZGPQHIBJKALABMABNO $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       Peano's fifth postulate
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we give constructive proofs of two versions of Peano's fifth
  postulate.

$)

  ${
    $d x y A $.
    bdpeano5.bd $e |- Bdd_ A $.
    $( Bounded version of ~ peano5 .  (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdpeano5 $p |- ( ( (/) e. A /\ A. x e. _om ( x e. A -> suc x e. A ) ) ->
                                                                  _om C_ A ) $=
      ( com cin cvv wcel c0 cv csuc wi wral wss bj-omex bdinex1 peano5set ax-mp
      wa ) DBEFGHBGAIZBGSJBGKADLRDBMKDBCNOABFPQ $.
  $}

  ${
    $d x y A $.
    $( Version of ~ peano5 when ` A ` is assumed to be a set, allowing a proof
       from the core axioms of CZF. (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    speano5 $p |- ( ( A e. V /\ (/) e. A /\
                        A. x e. _om ( x e. A -> suc x e. A ) ) -> _om C_ A ) $=
      ( wcel c0 cv csuc com wral wss cin cvv bj-omex bj-inex mpan peano5set syl
      wi wa 3impib ) BCDZEBDZAFZBDUCGBDRAHIZHBJZUAHBKLDZUBUDSUERHLDUAUFMHBLCNOA
      BLPQT $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       Bounded induction and Peano's fourth postulate
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we prove various versions of bounded induction from
  the basic axioms of CZF (in particular, without the axiom of set induction).
  We also prove Peano's fourth postulate.
  Together with the results from the previous sections, this proves from the
  core axioms of CZF (with infinity) that the set of finite ordinals satisfies
  the five Peano postulates and thus provides a model for the set of natural
  numbers.
$)

  ${
    $d x A $.
    $( Bounded induction (principle of induction when ` A ` is assumed to be a
       set) allowing a proof from basic constructive axioms.  See ~ find for a
       nonconstructive proof of the general case.  See ~ bdfind for a proof
       when ` A ` is assumed to be bounded.  (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    findset $p |- ( A e. V ->
           ( ( A C_ _om /\ (/) e. A /\ A. x e. A suc x e. A ) -> A = _om ) ) $=
      ( wcel com wss c0 cv csuc wral wceq wa simpr1 wi simp2 df-ral alral sylbi
      w3a wal 3ad2ant3 jca 3anass biimpri sylan2 speano5 syl eqssd ex ) BCDZBEF
      ZGBDZAHZIBDZABJZSZBEKUJUPLZBEUJUKULUOMUQUJULUMBDUNNZAEJZSZEBFUPUJULUSLZUT
      UPULUSUKULUOOUOUKUSULUOURATUSUNABPURAEQRUAUBUTUJVALUJULUSUCUDUEABCUFUGUHU
      I $.
  $}

  ${
    $d x A $.
    bdfind.bd $e |- Bdd_ A $.
    $( Bounded induction (principle of induction when ` A ` is assumed to be
       bounded), proved from basic constructive axioms.  See ~ find for a
       nonconstructive proof of the general case.  See ~ findset for a proof
       when ` A ` is assumed to be a set.  (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdfind $p |-
             ( ( A C_ _om /\ (/) e. A /\ A. x e. A suc x e. A ) -> A = _om ) $=
      ( cvv wcel com wss c0 cv csuc wral w3a wceq bj-omex bdssex 3ad2ant1 mpcom
      findset ) BDEZBFGZHBEZAIJBEABKZLBFMTUASUBBFCNOPABDRQ $.
  $}

  ${
    $d x y $.  $d y ph $.
    bj-bdfindis.bd $e |- Bdd ph $.
    bj-bdfindis.nf0 $e |- F/ x ps $.
    bj-bdfindis.nf1 $e |- F/ x ch $.
    bj-bdfindis.nfsuc $e |- F/ x th $.
    bj-bdfindis.0 $e |- ( x = (/) -> ( ps -> ph ) ) $.
    bj-bdfindis.1 $e |- ( x = y -> ( ph -> ch ) ) $.
    bj-bdfindis.suc $e |- ( x = suc y -> ( th -> ph ) ) $.
    $( Bounded induction (principle of induction for bounded formulas), using
       implicit substitutions (the biconditional versions of the hypotheses are
       implicit substitutions, and we have weakened them to implications).
       Constructive proof (from CZF).  See ~ finds for a proof of full
       induction in IZF. From this version, it is easy to prove bounded
       versions of ~ finds , ~ finds2 , ~ finds1 .  (Contributed by BJ,
       21-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-bdfindis $p |-
                    ( ( ps /\ A. y e. _om ( ch -> th ) ) -> A. x e. _om ph ) $=
      ( wi com wral wa c0 wcel elabf2 cab wss cv 0ex elabf1 vex bj-sucex ralimi
      csuc imim12i bdcab bdpeano5 syl2an ssabral sylib ) BCDNZFOPZQOAEUAZUBZAEO
      PBRURSFUCZURSZUTUIZURSZNZFOPUSUQABERHUDKTUPVDFOVACDVCACEUTILUEADEVBJUTFUF
      UGMTUJUHFURAEGUKULUMAEOUNUO $.

    bj-bdfindisg.nfa $e |- F/_ x A $.
    bj-bdfindisg.nfterm $e |- F/ x ta $.
    bj-bdfindisg.term $e |- ( x = A -> ( ph -> ta ) ) $.
    $( Version of ~ bj-bdfindis using a class term in the consequent.
       Constructive proof (from CZF).  See the comment of ~ bj-bdfindis for
       explanations.  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-bdfindisg $p |-
                ( ( ps /\ A. y e. _om ( ch -> th ) ) -> ( A e. _om -> ta ) ) $=
      ( wi com wral wa wcel bj-bdfindis nfcv bj-rspg syl ) BCDSGTUAUBAFTUAHTUCE
      SABCDFGIJKLMNOUDAEFHTPFTUEQRUFUG $.
  $}

  ${
    $d x y $.  $d y ph $.
    bj-bdfindes.bd $e |- Bdd ph $.
    $( Bounded induction (principle of induction for bounded formulas), using
       explicit substitutions.  Constructive proof (from CZF).  See the comment
       of ~ bj-bdfindis for explanations.  From this version, it is easy to
       prove the bounded version of ~ findes .  (Contributed by BJ,
       21-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-bdfindes $p |- ( ( [. (/) / x ]. ph /\
              A. x e. _om ( ph -> [. suc x / x ]. ph ) ) -> A. x e. _om ph ) $=
      ( vy cv csuc wsbc wi com wral wsb nfv nfim nfs1v nfsbc1v weq wceq sbceq1a
      c0 biimprd sbequ12 sbceq1d imbi12d cbvral sbequ1 bj-bdfindis sylan2b
      suceq ) AABBEZFZGZHZBIJABSGZABDKZABDEZFZGZHZDIJABIJULURBDIAUKDADLUKDLMUNU
      QBABDNZABUPOZMBDPZAUNUKUQABDUAVAABUJUPUIUOUHUBUCUDAUMUNUQBDCABSOUSUTUISQA
      UMABSRTABDUEUIUPQAUQABUPRTUFUG $.
  $}

  ${
    $d x y z A $.
    $( Constructive proof of a variant of ~ nn0suc .  For a constructive proof
       of ~ nn0suc , see ~ bj-nn0suc .  (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nn0suc0 $p |- ( A e. _om -> ( A = (/) \/ E. x e. A A = suc x ) ) $=
      ( vy vz cv c0 wceq csuc wrex wo com eqeq1 rexeqbi1dv wtru wi wral a1d weq
      a1tru wn orbi12d tru rgenw bdeq0 bdeqsuc ax-bdex ax-bdor nfv orc expi wel
      wcel vex sucid eleq2 mpbiri suceq eqeq2d rspcev mpancom bj-bdfindis mp2an
      olcd vtoclri ) CEZFGZVEAEZHZGZAVEIZJZBFGZBVHGZABIZJCBKVEBGVFVLVJVNVEBFLVI
      VMAVEBVEBVHLMUANNNOZDKPVKCKPUBVODKNSUCVKNNNCDVFVJCUDVIACCAUEUFUGNCUHZVPVP
      VFVKNVFVJUIQCDRZVKNVQVKTOTSUJVEDEZHZGZVKNVTVJVFDCUKZVTVJVTWAVRVSULVRDUMUN
      VEVSVRUOUPVIVTAVRVEADRVHVSVEVGVRUQURUSUTVCQVAVBVD $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x y z $.
    $( A natural number is a transitive set.  (Contributed by BJ,
       22-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-nntrans $p |- ( A e. _om -> ( B e. A -> B C_ A ) ) $=
      ( vx vz vy com wcel cv wss wral c0 csuc wi syl5bi wceq raleqbi1dv biimprd
      nfv sseq2 biimpd ral0 csn cun wel df-suc eleq2i wo elun sssucid sstr2 mpi
      imim2i elsni syl6eqss a1i jaod ralimi2 bdcv bdss ax-bdal weq bj-bdfindisg
      rgenw nfcv mp2an sseq1 rspc syl5com ) AFGZCHZAIZCAJZBAGBAIZVJKIZCKJZVJDHZ
      IZCVPJZVJVPLZIZCVSJZMZDFJVIVLMVNCUAWBDFVQVTCVPVSVJVSGVJVPVPUBZUCZGZCDUDZV
      QMZVTVSWDVJVPUEUFWEWFVJWCGZUGWGVTVJVPWCUHWGWFVTWHVQVTWFVQVPVSIVTVPUIZVJVP
      VSUJUKULWHVTMWGWHVJVPVSVJVPUMWIUNUOUPNNUQVCVJEHZIZCWJJZVOVRWAVLEDAWKCECWJ
      EURUSUTVOERVRERWAERWJKOWLVOWKVNCWJKWJKVJSPQEDVAWLVRWKVQCWJVPWJVPVJSPTWJVS
      OWLWAWKVTCWJVSWJVSVJSPQEAVDVLERWJAOWLVLWKVKCWJAWJAVJSPTVBVEVKVMCBAVMCRVJB
      AVFVGVH $.
  $}

  ${
    $d A x $.
    $( A natural number is a transitive set.  (Contributed by BJ,
       22-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-nntrans2 $p |- ( A e. _om -> Tr A ) $=
      ( vx com wcel cv wss wral wtr bj-nntrans ralrimiv dftr3 sylibr ) ACDZBEZA
      FZBAGAHMOBAANIJBAKL $.
  $}

  ${
    $d x A $.  $d x y $.  $d y z $.
    $( A natural number does not belong to itself.  Version of ~ elirr for
       natural numbers, which does not require ~ ax-setind .  (Contributed by
       BJ, 24-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-nnelirr $p |- ( A e. _om -> -. A e. A ) $=
      ( vy vx c0 wcel wn cv csuc wi com wral syl5bi nfv wceq eleq1 eleq2 notbid
      bitrd biimprd biimpd noel csn cun df-suc eleq2i wo wss bj-nntrans sucssel
      elun syld vex sucid elsni syl5eleq a1i con3d ax-bdel ax-bdn elequ1 elequ2
      jaod rgen nfcv bj-bdfindisg mp2an ) DDEZFZBGZVIEZFZVIHZVLEZFZIZBJKAJEAAEZ
      FZIDUAVOBJVIJEZVMVJVMVLVIVIUBZUCZEZVRVJVLVTVLVIUDUEWAVLVIEZVLVSEZUFVRVJVL
      VIVSUJVRWBVJWCVRWBVLVIUGVJVIVLUHVIVIJUIUKWCVJIVRWCVIVLVIVIBULUMVLVIUNUOUP
      VBLLUQVCCGZWDEZFZVHVKVNVQCBAWECCURUSVHCMVKCMVNCMWDDNZWFVHWGWEVGWGWEDWDEVG
      WDDWDOWDDDPRQSWDVINZWFVKWHWEVJWHWEVIWDEVJCBCUTCBBVARQTWDVLNZWFVNWIWEVMWIW
      EVLWDEVMWDVLWDOWDVLVLPRQSCAVDVQCMWDANZWFVQWJWEVPWJWEAWDEVPWDAWDOWDAAPRQTV
      EVF $.
  $}

  ${
    $( A version of ~ en2lp for natural numbers, which does not require
       ~ ax-setind .

       Note: using this theorem and ~ bj-nnelirr , one can remove dependency on
       ~ ax-setind from ~ nntri2 and ~ nndcel ; one can actually remove more
       dependencies from these.  (Contributed by BJ, 28-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nnen2lp $p |- ( ( A e. _om /\ B e. _om ) -> -. ( A e. B /\ B e. A ) ) $=
      ( com wcel wa wn bj-nnelirr adantl wss wi bj-nntrans ssel syl6 impd mtod
      ) ACDZBCDZEZABDZBADZEBBDZQUAFPBGHRSTUARSABIZTUAJQSUBJPBAKHABBLMNO $.
  $}

  $( Remove from ~ peano4 dependency on ~ ax-setind .  Therefore, it only
     requires core constructive axioms (albeit more of them).  (Contributed by
     BJ, 28-Nov-2019.)  (Proof modification is discouraged.) $)
  bj-peano4 $p |-
                 ( ( A e. _om /\ B e. _om ) -> ( suc A = suc B <-> A = B ) ) $=
    ( com wcel wa csuc wceq w3a 3simpa pm3.22 bj-nnen2lp 3syl sucidg syl5ibrcom
    wn wo eleq2 elsucg sylibd imp 3adant1 syl5ibcom 3adant2 eqcom orbi2i anbi1i
    jca sylib ordir sylibr ord mpd 3expia suceq impbid1 ) ACDZBCDZEZAFZBFZGZABG
    ZUPUQVAVBUPUQVAHZBADZABDZEZOZVBVCURUQUPEVGUPUQVAIUPUQJBAKLVCVFVBVCVDVBPZVEV
    BPZEZVFVBPVCVDBAGZPZVIEVJVCVLVIUQVAVLUPUQVAVLUQVABUSDZVLUQVMVABUTDBCMUSUTBQ
    NBACRSTUAUPVAVIUQUPVAVIUPVAAUTDZVIUPAUSDVAVNACMUSUTAQUBABCRSTUCUGVLVHVIVKVB
    VDBAUDUEUFUHVDVEVBUIUJUKULUMABUNUO $.

  ${
    $d a x y A $.
    $( The set ` _om ` is transitive.  A natural number is included in
       ` _om ` .  Constructive proof of ~ elnn .

       The idea is to use bounded induction with the formula ` x C_ _om ` .
       This formula, in a logic with terms, is bounded.  So in our logic
       without terms, we need to temporarily replace it with ` x C_ a ` and
       then deduce the original claim.  (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omtrans $p |- ( A e. _om -> A C_ _om ) $=
      ( vy va vx cv com wss csuc wi wcel wral bj-omex wceq sseq2 imbi12d c0 nfv
      sseq1 biimprd biimpd ralbidv imbi2d 0ss bdcv bdss nfcv bj-bdfindisg vtocl
      mpan wa csn cun df-suc simpr simpl snssd unssd syl5eqss ex mprg ) BEZFGZV
      AHZFGZIZAFJZAFGZIZBFVACEZGZVCVIGZIZBFKZVFAVIGZIZIVEBFKZVHICFLVIFMZVMVPVOV
      HVQVLVEBFVQVJVBVKVDVIFVANVIFVCNOUAVQVNVGVFVIFANUBOPVIGZVMVOVIUCDEZVIGZVRV
      JVKVNDBADVICUDUEVRDQVJDQVKDQVSPMVTVRVSPVIRSVSVAMVTVJVSVAVIRTVSVCMVTVKVSVC
      VIRSDAUFVNDQVSAMVTVNVSAVIRTUGUIUHVAFJZVBVDWAVBUJZVCVAVAUKZULFVAUMWBVAWCFW
      AVBUNWBVAFWAVBUOUPUQURUSUT $.
  $}

  ${
    $( The set ` _om ` is transitive.  (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omtrans2 $p |- Tr _om $=
      ( vx com wtr cv wss dftr3 bj-omtrans mprgbir ) BCADZBEABABFIGH $.
  $}

  ${
    $d x A $.
    $( A natural number is an ordinal.  Constructive proof of ~ nnord .  Can
       also be proved from ~ bj-nnelon if the latter is proved from
       ~ bj-omssonALT .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.) $)
    bj-nnord $p |- ( A e. _om -> Ord A ) $=
      ( vx com wcel wtr cv wral word bj-nntrans2 wi wal bj-omtrans syl6 alrimiv
      sseld df-ral sylibr dford3 sylanbrc ) ACDZAEBFZEZBAGZAHAITUAADZUBJZBKUCTU
      EBTUDUACDUBTACUAALOUAIMNUBBAPQBARS $.
  $}

  ${
    $( A natural number is an ordinal.  Constructive proof of ~ nnon .  Can
       also be proved from ~ bj-omssonALT .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.) $)
    bj-nnelon $p |- ( A e. _om -> A e. On ) $=
      ( com wcel con0 word bj-nnord elong mpbird ) ABCADCAEAFABGH $.
  $}

  ${
    $( The set ` _om ` is an ordinal.  Constructive proof of ~ ordom .
       (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omord $p |- Ord _om $=
      ( vx com word wtr cv wral bj-omtrans2 bj-nntrans2 rgen dford3 mpbir2an )
      BCBDAEZDZABFGMABLHIABJK $.
  $}

  ${
    $( The set ` _om ` is an ordinal.  Constructive proof of ~ omelon .
       (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omelon $p |- _om e. On $=
      ( com con0 wcel word bj-omord bj-omex elon mpbir ) ABCADEAFGH $.
  $}

  ${
    $( Constructive proof of ~ omsson .  See also ~ bj-omssonALT .
       (Contributed by BJ, 27-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged. $)
    bj-omsson $p |- _om C_ On $=
      ( vx com con0 cv bj-nnelon ssriv ) ABCADEF $.
  $}

  ${
    $( Alternate proof of ~ bj-omsson .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-omssonALT $p |- _om C_ On $=
      ( com con0 wcel wss bj-omelon onss ax-mp ) ABCABDEAFG $.
  $}

  ${
    $d x y A $.
    $( Proof of (biconditional form of) ~ nn0suc from the core axioms of CZF.
       See also ~ bj-nn0sucALT .  As a characterization of the elements of
       ` _om ` , this could be labeled "elom".  (Contributed by BJ,
       19-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-nn0suc $p |- ( A e. _om <-> ( A = (/) \/ E. x e. _om A = suc x ) ) $=
      ( com wcel c0 wceq cv csuc wrex wo bj-nn0suc0 wi bj-omtrans ssrexv orim2d
      wss syl mpd peano1 eleq1 mpbiri bj-peano2 eleq1a imp sylan rexlimiva jaoi
      impbii ) BCDZBEFZBAGZHZFZACIZJZUIUJUMABIZJUOABKUIUPUNUJUIBCPUPUNLBMUMABCN
      QORUJUIUNUJUIECDSBECTUAUMUIACUKCDULCDZUMUIUKUBUQUMUIULCBUCUDUEUFUGUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
       Set induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we add the axiom of set induction to the core axioms of CZF.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       Set induction
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we prove some variants of the axiom of set induction.

$)

  ${
    $d x y z $.  $d ph z $.
    $( Axiom of set-induction with a DV condition replaced with a non-freeness
       hypothesis (Contributed by BJ, 22-Nov-2019.) $)
    setindft $p |- ( A. x F/ y ph ->
                      ( A. x ( A. y e. x [ y / x ] ph -> ph ) -> A. x ph ) ) $=
      ( vz wnf wal wsb cv wral wi nfa1 nfv nfnf1 nfsbt a1i weq wb sbequ cbvrald
      nfal biimpd imim1d alimd ax-setind syl6 ) ACEZBFZABCGZCBHZIZAJZBFABDGZDUI
      IZAJZBFABFUGUKUNBUFBKUGUMUJAUGUMUJUGULUHDCUIUGDLUFCBACMTABDCNUHDEUGUHDLOD
      CPULUHQJUGADCBROSUAUBUCADBUDUE $.
  $}

  ${
    $d x y z $.  $d ph z $.
    setindf.nf $e |- F/ y ph $.
    $( Axiom of set-induction with a DV condition replaced with a non-freeness
       hypothesis (Contributed by BJ, 22-Nov-2019.) $)
    setindf $p |- ( A. x ( A. y e. x [ y / x ] ph -> ph ) -> A. x ph ) $=
      ( wnf wsb cv wral wi wal setindft mpg ) ACEABCFCBGHAIBJABJIBABCKDL $.
  $}

  ${
    $d x y z $.  $d ph z $.
    setindis.nf0 $e |- F/ x ps $.
    setindis.nf1 $e |- F/ x ch $.
    setindis.nf2 $e |- F/ y ph $.
    setindis.nf3 $e |- F/ y ps $.
    setindis.1 $e |- ( x = z -> ( ph -> ps ) ) $.
    setindis.2 $e |- ( x = y -> ( ch -> ph ) ) $.
    $( Axiom of set induction using implicit substitutions.  (Contributed by
       BJ, 22-Nov-2019.) $)
    setindis $p |- ( A. y ( A. z e. y ps -> ch ) -> A. x ph ) $=
      ( cv wral wi wal wsb nfcv nfralxy nfim raleq biimprd equcoms imim12d cbv3
      weq bj-sbime ralimi imim1i alimi ax-setind 3syl ) BFEMZNZCOZEPBFDMZNZAOZD
      PADFQZFUPNZAOZDPADPUOUREDUNCDBDFUMDUMRGSHTUQAEBEFUPEUPRJSITEDUFZUQUNCAVBU
      NUQBFUMUPUAUBCAODELUCUDUEURVADUTUQAUSBFUPABDFGKUGUHUIUJAFDUKUL $.
  $}

  ${
    $d y a $.  $d ph y $.
    ax-bdsetind.bd $e |- Bdd ph $.
    $( Axiom of bounded set induction.  (Contributed by BJ, 28-Nov-2019.) $)
    ax-bdsetind $a |- ( A. a ( A. y e. a [ y / a ] ph -> ph ) -> A. a ph ) $.
  $}

  ${
    $d x y z $.  $d ph z $.
    bdsetindis.bd $e |- Bdd ph $.
    bdsetindis.nf0 $e |- F/ x ps $.
    bdsetindis.nf1 $e |- F/ x ch $.
    bdsetindis.nf2 $e |- F/ y ph $.
    bdsetindis.nf3 $e |- F/ y ps $.
    bdsetindis.1 $e |- ( x = z -> ( ph -> ps ) ) $.
    bdsetindis.2 $e |- ( x = y -> ( ch -> ph ) ) $.
    $( Axiom of bounded set induction using implicit substitutions.
       (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdsetindis $p |- ( A. y ( A. z e. y ps -> ch ) -> A. x ph ) $=
      ( cv wral wi wal nfcv nfralxy nfim wsb raleq biimprd equcoms imim12d cbv3
      weq bj-sbime ralimi imim1i alimi ax-bdsetind 3syl ) BFENZOZCPZEQBFDNZOZAP
      ZDQADFUAZFUQOZAPZDQADQUPUSEDUOCDBDFUNDUNRHSITURAEBEFUQEUQRKSJTEDUGZURUOCA
      VCUOURBFUNUQUBUCCAPDEMUDUEUFUSVBDVAURAUTBFUQABDFHLUHUIUJUKAFDGULUM $.
  $}

  ${
    $d A x y z $.
    $( Lemma for ~ bj-inf2vn .  Remark: unoptimized proof (have to use more
       deduction style).  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vnlem1 $p |-
         ( A. x ( x e. A <-> ( x = (/) \/ E. y e. A x = suc y ) ) -> Ind A ) $=
      ( vz cv wcel c0 wceq csuc wrex wo wb wal wral wi wex eleq1 3syl alimi syl
      wind wa bi2 ax-io biimpi simpl mpbidi exim 0ex isseti pm2.27 ax-mp simprd
      bj-ex suceq eqeq2d rspcev mpan2 vex bj-sucex eqeq1 rexbidv imbi12d syl2im
      eqid spcv ralrimiv df-bj-ind sylanbrc ) AEZCFZVJGHZVJBEZIZHZBCJZKZLZAMZGC
      FZDEZIZCFZDCNCUAVSVLVTOZAMVLAPZVTAPZOZVTVRWDAVRVQVKOZVLVKOZVPVKOZUBZWDVKV
      QUCZWHWKVLVKVPUDUEZVLVKVTWKWIWJUFVJGCQUGRSVLVTAUHWGWFVTWEWGWFOAGUIUJWEWFU
      KULVTAUNTRVSWCDCVSWJAMWACFZWBVNHZBCJZWCVRWJAVRWHWJWLWHWIWJWMUMTSWNWBWBHZW
      PWBVEWOWQBWACVMWAHVNWBWBVMWAUOUPUQURWJWPWCOAWBWADUSUTVJWBHZVPWPVKWCWRVOWO
      BCVJWBVNVAVBVJWBCQVCVFVDVGDCVHVI $.
  $}

  ${
    $d x y z t u A $.  $d x y z t u v Z $.
    $( Lemma for ~ bj-inf2vnlem3 and ~ bj-inf2vnlem4 .  Remark: unoptimized
       proof (have to use more deduction style).  (Contributed by BJ,
       8-Dec-2019.)  (Proof modification is discouraged.) $)
    bj-inf2vnlem2 $p |- ( A. x e. A ( x = (/) \/ E. y e. A x = suc y ) ->
         ( Ind Z ->
         A. u ( A. t e. u ( t e. A -> t e. Z ) -> ( u e. A -> u e. Z ) ) ) ) $=
      ( vv cv c0 wceq csuc wrex wo wral wcel wi wal eqeq1 rspcv eleq1 df-bj-ind
      wind rexbidv orbi12d simplbi syl5ibr a1dd vex sucid wb eleq2 eqcoms mpbii
      imbi12d bj-indsuc eleq1a syl6com syl8 com13 com25 mpdi rexlimiv jaoi syl6
      com3l alrimdv bi2.04 albii syl6ib ) AHZIJZVJBHZKZJZBELZMZAENZFUBZCHZEOZDH
      ZEOZWAFOZPZDVSNZVSFOZPZPZCQWEVTWFPPZCQVQVRWHCVTVQVRWGVTVQVSIJZVSVMJZBELZM
      ZVRWGPZVPWMAVSEVJVSJZVKWJVOWLVJVSIRWOVNWKBEVJVSVMRUCUDSWJWNWLWJVRWFWEVRWF
      WJIFOZVRWPGHKFOGFNGFUAUEVSIFTUFUGWKWNBEVLEOZWKVLVSOZWNWKVLVMOZWRVLBUHUIWS
      WRUJVMVSVMVSVLUKULUMWQWEWRVRWKWFWRWEWQVRWKWFPZPZWRWEWQVLFOZXAWDWQXBPDVLVS
      WAVLJWBWQWCXBWAVLETWAVLFTUNSVRXBVMFOWTFVLUOVMFVSUPUQURUSUTVAVBVCVDVEVFWHW
      ICVTWEWFVGVHVI $.
  $}

  ${
    $d x y z t u v w A $.  $d x y z t u v w Z $.
    bj-inf2vnlem3.bd1 $e |- Bdd_ A $.
    bj-inf2vnlem3.bd2 $e |- Bdd_ Z $.
    $( Lemma for ~ bj-inf2vn .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vnlem3 $p |- ( A. x e. A ( x = (/) \/ E. y e. A x = suc y ) ->
                                                       ( Ind Z -> A C_ Z ) ) $=
      ( vz vt vu cv wceq wral wcel wi wal bdeli nfv weq eleq1 imbi12d csuc wrex
      c0 wo wind wss bj-inf2vnlem2 ax-bdim biimpd biimprd bdsetindis syl6 dfss2
      syl6ibr ) AJZUCKUOBJUAKBCUBUDACLZDUEZGJZCMZURDMZNZGOZCDUFUPUQHJZCMZVCDMZN
      ZHIJZLVGCMZVGDMZNZNIOVBABIHCDUGVAVFVJGIHUSUTGCEPGDFPUHVFGQVJGQVAIQVFIQGHR
      ZVAVFVKUSVDUTVEURVCCSURVCDSTUIGIRZVAVJVLUSVHUTVIURVGCSURVGDSTUJUKULGCDUMU
      N $.
  $}

  ${
    $d x y z t u v w A $.  $d x y z t u v w Z $.
    $( Lemma for ~ bj-inf2vn2 .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vnlem4 $p |- ( A. x e. A ( x = (/) \/ E. y e. A x = suc y ) ->
                                                       ( Ind Z -> A C_ Z ) ) $=
      ( vz vt vu cv c0 wceq csuc wrex wral wcel wi wal nfv weq eleq1 imbi12d wo
      wind wss bj-inf2vnlem2 biimpd biimprd setindis syl6 dfss2 syl6ibr ) AHZIJ
      UKBHKJBCLUAACMZDUBZEHZCNZUNDNZOZEPZCDUCULUMFHZCNZUSDNZOZFGHZMVCCNZVCDNZOZ
      OGPURABGFCDUDUQVBVFEGFVBEQVFEQUQGQVBGQEFRZUQVBVGUOUTUPVAUNUSCSUNUSDSTUEEG
      RZUQVFVHUOVDUPVEUNVCCSUNVCDSTUFUGUHECDUIUJ $.
  $}

  ${
    $d x y z A $.
    bj-inf2vn.1 $e |- Bdd_ A $.
    $( A sufficient condition for ` _om ` to be a set.  See ~ bj-inf2vn2 for
       the unbounded version from full set induction.  (Contributed by BJ,
       8-Dec-2019.)  (Proof modification is discouraged.) $)
    bj-inf2vn $p |- ( A e. V -> ( A. x ( x e. A <->
                         ( x = (/) \/ E. y e. A x = suc y ) ) -> A = _om ) ) $=
      ( vz cv wcel c0 wceq csuc wrex wo wb wal com wind wss wi wa bj-inf2vnlem1
      wral bi1 alimi df-ral sylibr bdcv bj-inf2vnlem3 syl alrimiv bj-om syl5ibr
      jca ) AGZCHZUNIJUNBGKJBCLMZNZAOZCPJCDHCQZFGZQCUTRSZFOZTURUSVBABCUAURVAFUR
      UPACUBZVAURUOUPSZAOVCUQVDAUOUPUCUDUPACUEUFABCUTEFUGUHUIUJUMFCDUKUL $.
  $}

  ${
    $d x y z A $.
    $( A sufficient condition for ` _om ` to be a set; unbounded version of
       ~ bj-inf2vn .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vn2 $p |- ( A e. V -> ( A. x ( x e. A <->
                         ( x = (/) \/ E. y e. A x = suc y ) ) -> A = _om ) ) $=
      ( vz cv wcel c0 wceq csuc wrex wo wb wal com wind wss wi wa bj-inf2vnlem1
      wral bi1 alimi df-ral sylibr bj-inf2vnlem4 syl alrimiv jca bj-om syl5ibr
      ) AFZCGZULHIULBFJIBCKLZMZANZCOICDGCPZEFZPCURQRZENZSUPUQUTABCTUPUSEUPUNACU
      AZUSUPUMUNRZANVAUOVBAUMUNUBUCUNACUDUEABCURUFUGUHUIECDUJUK $.
  $}

  ${
    $d x y z $.
    $( Another axiom of infinity in a constructive setting (see ~ ax-infvn ).
       (Contributed by BJ, 14-Nov-2019.)  (New usage is discouraged.) $)
    ax-inf2 $a |-
                 E. a A. x ( x e. a <-> ( x = (/) \/ E. y e. a x = suc y ) ) $.
  $}

  ${
    $d x y z a $.
    $( Using bounded set induction and the strong axiom of infinity, ` _om ` is
       a set, that is, we recover ~ ax-infvn (see ~ bj-2inf for the equivalence
       of the latter with ~ bj-omex ).  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-omex2 $p |- _om e. _V $=
      ( va vx vy com wel cv c0 wceq csuc wrex wo wb wal ax-inf2 cvv wcel wi vex
      bdcv bj-inf2vn ax-mp eximii issetri ) ADBAEBFZGHUDCFIHCAFZJKLBMZUEDHZABCA
      NUEOPUFUGQARBCUEOASTUAUBUC $.
  $}

  ${
    $d a x y z A $.
    $( Alternate proof of ~ bj-nn0suc , also constructive but from ~ ax-inf2 ,
       hence requiring ~ ax-bdsetind .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-nn0sucALT $p |- ( A e. _om <-> ( A = (/) \/ E. x e. _om A = suc x ) ) $=
      ( va vy vz com wcel c0 wceq cv csuc wrex wo wb wal wi ax-mp bibi12d eleq1
      cvv wex ax-inf2 bdcv bj-inf2vn eleq2 rexeq orbi2d albidv nfcv eqeq1 suceq
      vex nfv eqeq2d cbvrexv rexbidv syl5bb orbi12d bi1 syl6bi peano1 bj-peano2
      spcimgf pm2.43b mpbiri eleq1a imp sylan rexlimiva jaoi mpcom eximii bj-ex
      impbid1 ) BFGZBHIZBAJZKZIZAFLZMZNZCUAWBDJZCJZGZWCHIZWCEJZKZIZEWDLZMZNZDOZ
      WBCDECUBWDFIZWMWBWDTGWMWNPCULDEWDTCUCUDQWNWMWCFGZWFWIEFLZMZNZDOZWBWNWLWRD
      WNWEWOWKWQWDFWCUEWNWJWPWFWIEWDFUFUGRUHWSVOWAWSVOWAWRVOWAPZDBFDBUIWTDUMWCB
      IZWRWBWTXAWOVOWQWAWCBFSXAWFVPWPVTWCBHUJWPWCVRIZAFLXAVTWIXBEAFWGVQIWHVRWCW
      GVQUKUNUOXAXBVSAFWCBVRUJUPUQURRVOWAUSUTVCVDVPVOVTVPVOHFGVABHFSVEVSVOAFVQF
      GVRFGZVSVOVQVBXCVSVOVRFBVFVGVHVIVJVNUTVKVLWBCVMQ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
       Full induction
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, using the axiom of set induction, we prove full induction on
  the set of natural numbers.

$)

  ${
    $d x y z $.  $d y z ph $.  $d ps z $.  $d ch z $.  $d th z $.
    bj-findis.nf0 $e |- F/ x ps $.
    bj-findis.nf1 $e |- F/ x ch $.
    bj-findis.nfsuc $e |- F/ x th $.
    bj-findis.0 $e |- ( x = (/) -> ( ps -> ph ) ) $.
    bj-findis.1 $e |- ( x = y -> ( ph -> ch ) ) $.
    bj-findis.suc $e |- ( x = suc y -> ( th -> ph ) ) $.
    $( Principle of induction, using implicit substitutions (the biconditional
       versions of the hypotheses are implicit substitutions, and we have
       weakened them to implications).  Constructive proof (from CZF).  See
       ~ bj-bdfindis for a bounded version not requiring ~ ax-setind .  See
       ~ finds for a proof in IZF. From this version, it is easy to prove of
       ~ finds , ~ finds2 , ~ finds1 .  (Contributed by BJ, 22-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-findis $p |- ( ( ps /\ A. y e. _om ( ch -> th ) ) -> A. x e. _om ph ) $=
      ( vz wi com wral wa wcel wceq nfv cv wal c0 csuc wrex wo bj-nn0suc pm3.21
      ad2antrr pm2.04 ralimi2 imim2 ral2imi imp sylan2 r19.29 sucid mpbiri ax-1
      vex eleq2 pm2.27 anim12ii mpdan impcom reximi syl adantll orim12d alrimiv
      ex syl7bi nfim nfan nfcv nfrexxy nfor biimprd imim12d biimpd eqtr expimpd
      eleq1 rexlimdvw jaod setindis df-ral sylibr ) BCDNZFOPZQZEUAZORZANZEUBZAE
      OPWKFUAZORZCNZFMUAZPZWSORZWSUCSZBQZWSWPUDZSZDQZFOUEZUFZNZNZMUBWOWKXJMXAXB
      XEFOUEZUFZWKWTXHFWSUGWKWTXLXHNWKWTQXBXCXKXGBXBXCNWJWTBXBUHUIWJWTXKXGNZBWJ
      WTQWPWSRZDNZFOPZXMWTWJXNCNZFOPZXPWRXQFWSOXNWQCUJUKWJXRXPWIXQXOFOCDXNULUMU
      NUOXPXKXGXPXKQXOXEQZFOUEXGXOXEFOUPXSXFFOXEXOXFXEXNXOXFNXEXNWPXDRWPFUTUQWS
      XDWPVAURXEXOXEXNDXEXOUSXNDVBVCVDVEVFVGVKVGVHVIVKVLVJWNWRXIEMFWQCEWQETHVMX
      AXHEXAETXCXGEXBBEXBETGVNXFEFOEOVOXEDEXEETIVNVPVQVMWNMTWRMTWLWPSZWQWMACXTW
      MWQWLWPOWCVRKVSWLWSSZWMXAXHAYAWMXAWLWSOWCVTYAXCAXGYAXBBAYAXBQWLUCSBANWLWS
      UCWAJVGWBYAXFAFOYAXEDAYAXEQWLXDSDANWLWSXDWALVGWBWDWEVSWFVGAEOWGWH $.

    bj-findisg.nfa $e |- F/_ x A $.
    bj-findisg.nfterm $e |- F/ x ta $.
    bj-findisg.term $e |- ( x = A -> ( ph -> ta ) ) $.
    $( Version of ~ bj-findis using a class term in the consequent.
       Constructive proof (from CZF).  See the comment of ~ bj-findis for
       explanations.  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-findisg $p |-
                ( ( ps /\ A. y e. _om ( ch -> th ) ) -> ( A e. _om -> ta ) ) $=
      ( wi com wral wa wcel bj-findis nfcv bj-rspg syl ) BCDRGSTUAAFSTHSUBERABC
      DFGIJKLMNUCAEFHSOFSUDPQUEUF $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Principle of induction, using explicit substitutions.  Constructive
       proof (from CZF).  See the comment of ~ bj-findis for explanations.
       From this version, it is easy to prove ~ findes .  (Contributed by BJ,
       21-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-findes $p |- ( ( [. (/) / x ]. ph /\
              A. x e. _om ( ph -> [. suc x / x ]. ph ) ) -> A. x e. _om ph ) $=
      ( vy cv csuc wsbc wi com wral c0 wsb nfv nfim nfs1v nfsbc1v sbequ12 suceq
      wceq sbceq1a biimprd sbceq1d imbi12d cbvral sbequ1 bj-findis sylan2b ) AA
      BBDZEZFZGZBHIABJFZABCKZABCDZEZFZGZCHIABHIUJUPBCHAUICACLUICLMULUOBABCNZABU
      NOZMUGUMRZAULUIUOABCPUSABUHUNUGUMQUAUBUCAUKULUOBCABJOUQURUGJRAUKABJSTABCU
      DUGUNRAUOABUNSTUEUF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Strong collection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we state the axiom scheme of strong collection, which is
  part of CZF set theory.

$)

  ${
    $d a b x y $.  $d a b ph $.
    $( Axiom scheme of strong collection.  It is stated with all possible
       disjoint variable conditions, to show that this weak form is
       sufficient.  (Contributed by BJ, 5-Oct-2019.) $)
    ax-strcoll $a |- A. a ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $.
  $}

  ${
    $d a b x y z $.  $d b z ph $.
    $( Version of ~ ax-strcoll with one DV condition removed and without
       initial universal quantifier.  (Contributed by BJ, 5-Oct-2019.) $)
    strcoll2 $p |- ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $=
      ( vz wex cv wral wel wrex wb wal wi weq raleq rexeq bibi2d albidv exbidv
      imbi12d ax-strcoll spi chvarv ) ACGZBFHZIZCEJZABUFKZLZCMZEGZNZUEBDHZIZUHA
      BUNKZLZCMZEGZNFDFDOZUGUOULUSUEBUFUNPUTUKUREUTUJUQCUTUIUPUHABUFUNQRSTUAUMF
      ABCFEUBUCUD $.
  $}

  ${
    $d a b x y z $.  $d z ph $.
    $( Closed form of ~ strcollnf .  Version of ~ ax-strcoll with one DV
       condition removed, the other DV condition replaced by a non-freeness
       antecedent, and without initial universal quantifier.  (Contributed by
       BJ, 21-Oct-2019.) $)
    strcollnft $p |- ( A. x A. y F/ b ph -> ( A. x e. a E. y ph ->
                                   E. b A. y ( y e. b <-> E. x e. a ph ) ) ) $=
      ( vz wex cv wral wel wrex wb wal wnf strcoll2 nfnf1 nfal nfa2 nfvd nfa1
      nfcvd sp nfrexdxy sps alcoms nfbid nfald weq wa nfan elequ2 adantl bibi1d
      nfv albid ex cbvexd syl5ib ) ACGBDHZICFJZABUSKZLZCMZFGAENZCMZBMZCEJZVALZC
      MZEGABCDFOVFVCVIFEVEEBVDECAEPQQVFVBECVDCBRZVFUTVAEVFUTESVDVAENZCBVDBMZVKC
      VLAEBUSVDBTVLEUSUAVDBUBUCUDUEUFUGVFFEUHZVCVILVFVMUIZVBVHCVFVMCVJVMCUNUJVN
      UTVGVAVMUTVGLVFFECUKULUMUOUPUQUR $.
  $}

  ${
    $d a b x y z $.  $d z ph $.
    strcollnf.nf $e |- F/ b ph $.
    $( Version of ~ ax-strcoll with one DV condition removed, the other DV
       condition replaced by a non-freeness hypothesis, and without initial
       universal quantifier.  (Contributed by BJ, 21-Oct-2019.) $)
    strcollnf $p |- ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $=
      ( wnf wal wex cv wral wel wrex wb wi strcollnft ax-gen mpg ) AEGZCHACIBDJ
      ZKCELABTMNCHEIOBABCDEPSCFQR $.

    $( Alternate proof of ~ strcollnf , not using ~ strcollnft .  (Contributed
       by BJ, 5-Oct-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    strcollnfALT $p |- ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $=
      ( vz wex cv wral wel wrex wb wal strcoll2 nfv nfcv nfrexxy nfbi nfal weq
      elequ2 bibi1d albidv cbvex sylib ) ACHBDIZJCGKZABUGLZMZCNZGHCEKZUIMZCNZEH
      ABCDGOUKUNGEUJECUHUIEUHEPAEBUGEUGQFRSTUNGPGEUAZUJUMCUOUHULUIGECUBUCUDUEUF
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                 Subset collection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we state the axiom scheme of subset collection, which is
  part of CZF set theory.

$)

  ${
    $d a b c d x y z $.  $d a b c d ph $.
    $( Axiom scheme of subset collection.  It is stated with all possible
       disjoint variable conditions, to show that this weak form is
       sufficient.  (Contributed by BJ, 5-Oct-2019.) $)
    ax-sscoll $a |- A. a A. b E. c A. z ( A. x e. a E. y e. b ph ->
                                E. d e. c A. y ( y e. d <-> E. x e. a ph ) ) $.
  $}

  ${
    $d a b c d x y z u v $.  $d c d u v ph $.
    $( Version of ~ ax-sscoll with two DV conditions removed and without
       initial universal quantifiers.  (Contributed by BJ, 5-Oct-2019.) $)
    sscoll2 $p |- E. c A. z ( A. x e. a E. y e. b ph ->
                                E. d e. c A. y ( y e. d <-> E. x e. a ph ) ) $=
      ( vv vu cv wrex wral wb wal wi wex weq nfv rexeq wel adantl adantr bibi2d
      wa simpl raleqbidv albid rexbid imbi12d exbid ax-sscoll spi ch2varv ) ACI
      KZLZBJKZMZCHUAZABUQLZNZCOZHGKZLZPZDOZGQZACFKZLZBEKZMZUSABVJLZNZCOZHVCLZPZ
      DOZGQJEIFJERZIFRZUEZVFVQGVTGSVTVEVPDVTDSVTURVKVDVOVTUPVIBUQVJVRVSUFVSUPVI
      NVRACUOVHTUBUGVTVBVNHVCVTHSVTVAVMCVTCSVTUTVLUSVRUTVLNVSABUQVJTUCUDUHUIUJU
      HUKVGIVGIOJABCDJIGHULUMUMUN $.
  $}

$(
  ${
    $d a b c d x y z u v $.  $d u v ph $.
    sscollnf.1 $e |- F/ c ph $.
    sscollnf.2 $e |- F/ d ph $.
    @( Version of ~ ax-sscoll with two DV conditions removed, the other two DV
       conditions replaced by non-freeness hypotheses, and without initial
       universal quantifiers.  (Contributed by BJ, 5-Oct-2019.) @)
    sscollnf $p |- E. c A. z ( A. x e. a E. y e. b ph ->
                                E. d e. c A. y ( y e. d <-> E. x e. a ph ) ) $=
      ? $.
  $}
$)


$( (End of BJ's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
                 Mathbox for David A. Wheeler
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Allsome quantifier
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  These are definitions and proofs involving an experimental
  "allsome" quantifier (aka "all some").

  In informal language, statements like
  "All Martians are green" imply that there is at least one Martian.
  But it's easy to mistranslate informal language into formal notations
  because similar statements like ` A. x ph -> ps ` do _not_
  imply that ` ph ` is ever true, leading to vacuous truths.
  Some systems include a mechanism to counter this, e.g., PVS allows
  types to be appended with "+" to declare that they are nonempty.
  This section presents a different solution to the same problem.

  The "allsome" quantifier expressly includes the notion of both
  "all" and "there exists at least one" (aka some), and is defined
  to make it easier to more directly express both notions.
  The hope is that if a quantifier more directly expresses this concept,
  it will be used instead and reduce the risk of creating formal expressions
  that look okay but in fact are mistranslations.
  The term "allsome" was chosen because it's short, easy to say, and
  clearly hints at the two concepts it combines.

  I do not expect this to be used much in metamath, because in metamath
  there's a general policy of avoiding the use of new definitions
  unless there are very strong reasons to do so.  Instead, my goal is to
  rigorously define this quantifier and demonstrate a few
  basic properties of it.

  The syntax allows two forms that look like they would be problematic,
  but they are fine.  When applied to a top-level implication we allow
  ` A! x ( ph -> ps ) ` , and when restricted (applied to a class) we allow
  ` A! x e. A ph ` .
  The first symbol after the setvar variable must
  always be ` e. ` if it is the form applied to a class, and since
  ` e. ` cannot begin a wff, it is unambiguous.
  The ` -> ` looks like it would be a problem because ` ph ` or ` ps `
  might include implications, but any implication arrow
  ` -> ` within any wff must be surrounded by parentheses, so only the
  implication arrow of ` A! ` can follow the wff.
  The implication syntax would work fine without the parentheses, but
  I added the parentheses because it makes things clearer inside
  larger complex expressions, and it's also more consistent with
  the rest of the syntax.

  For more, see "The Allsome Quantifier" by David A. Wheeler at
  https://dwheeler.com/essays/allsome.html
  I hope that others will eventually agree that allsome is awesome.
$)

  $c A! $. $( "inverted A" exclamation point (read: "all some"
    or more briefly "allsome") $)

  $( Extend wff definition to include "all some" applied to a top-level
     implication, which means ` ps ` is true whenever ` ph ` is true, and there
     is at least least one ` x ` where ` ph ` is true.  (Contributed by David
     A. Wheeler, 20-Oct-2018.) $)
  walsi $a wff A! x ( ph -> ps ) $.

  $( Extend wff definition to include "all some" applied to a class, which
     means ` ph ` is true for all ` x ` in ` A ` , and there is at least one
     ` x ` in ` A ` .  (Contributed by David A. Wheeler, 20-Oct-2018.) $)
  walsc $a wff A! x e. A ph $.

  ${
    $( Define "all some" applied to a top-level implication, which means ` ps `
       is true whenever ` ph ` is true and there is at least one ` x ` where
       ` ph ` is true.  (Contributed by David A. Wheeler, 20-Oct-2018.) $)
    df-alsi $a |- ( A! x ( ph -> ps ) <-> ( A. x ( ph -> ps ) /\ E. x ph ) ) $.
  $}

  ${
    $( Define "all some" applied to a class, which means ` ph ` is true for all
       ` x ` in ` A ` and there is at least one ` x ` in ` A ` .  (Contributed
       by David A. Wheeler, 20-Oct-2018.) $)
    df-alsc $a |- ( A! x e. A ph <-> ( A. x e. A ph /\ E. x x e. A ) ) $.
  $}

  $( There is an equivalence between the two "all some" forms.  (Contributed by
     David A. Wheeler, 22-Oct-2018.) $)
  alsconv $p |- ( A! x ( x e. A -> ph ) <-> A! x e. A ph ) $=
    ( wral cv wcel wex wa wi walsc walsi df-ral anbi1i df-alsc df-alsi 3bitr4ri
    wal ) ABCDZBECFZBGZHSAIBQZTHABCJSABKRUATABCLMABCNSABOP $.

  ${
    alsi1d.1 $e |- ( ph -> A! x ( ps -> ch ) ) $.
    $( Deduction rule:  Given "all some" applied to a top-level inference, you
       can extract the "for all" part.  (Contributed by David A. Wheeler,
       20-Oct-2018.) $)
    alsi1d $p |- ( ph -> A. x ( ps -> ch ) ) $=
      ( wi wal wex walsi wa df-alsi sylib simpld ) ABCFDGZBDHZABCDINOJEBCDKLM
      $.
  $}

  ${
    alsi2d.1 $e |- ( ph -> A! x ( ps -> ch ) ) $.
    $( Deduction rule:  Given "all some" applied to a top-level inference, you
       can extract the "exists" part.  (Contributed by David A. Wheeler,
       20-Oct-2018.) $)
    alsi2d $p |- ( ph -> E. x ps ) $=
      ( wi wal wex walsi wa df-alsi sylib simprd ) ABCFDGZBDHZABCDINOJEBCDKLM
      $.
  $}

  ${
    alsc1d.1 $e |- ( ph -> A! x e. A ps ) $.
    $( Deduction rule:  Given "all some" applied to a class, you can extract
       the "for all" part.  (Contributed by David A. Wheeler, 20-Oct-2018.) $)
    alsc1d $p |- ( ph -> A. x e. A ps ) $=
      ( wral cv wcel wex walsc wa df-alsc sylib simpld ) ABCDFZCGDHCIZABCDJOPKE
      BCDLMN $.
  $}

  ${
    alsc2d.1 $e |- ( ph -> A! x e. A ps ) $.
    $( Deduction rule:  Given "all some" applied to a class, you can extract
       the "there exists" part.  (Contributed by David A. Wheeler,
       20-Oct-2018.) $)
    alsc2d $p |- ( ph -> E. x x e. A ) $=
      ( wral cv wcel wex walsc wa df-alsc sylib simprd ) ABCDFZCGDHCIZABCDJOPKE
      BCDLMN $.
  $}

$( (End of David A. Wheeler's mathbox.) $)