<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   id="svg2"
   version="1.1"
   inkscape:version="0.91 r13725"
   xml:space="preserve"
   width="278.03085"
   height="216.18143"
   viewBox="0 0 278.03085 216.18143"
   sodipodi:docname="twosets_nonames20170618.svgz"><metadata
     id="metadata8"><rdf:RDF><cc:Work
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
     id="defs6"><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath20"><path
         d="m 0,0 5669.291,0 0,5669.291 L 0,5669.291 0,0 Z"
         id="path22"
         inkscape:connector-curvature="0" /></clipPath><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath226"><path
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z"
         id="path228"
         inkscape:connector-curvature="0" /></clipPath><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath562"><path
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z"
         id="path564"
         inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1472"
     inkscape:window-height="921"
     id="namedview4"
     showgrid="false"
     fit-margin-top="0"
     fit-margin-left="0"
     fit-margin-right="0"
     fit-margin-bottom="0"
     inkscape:zoom="2"
     inkscape:cx="279.77871"
     inkscape:cy="107.46527"
     inkscape:window-x="65"
     inkscape:window-y="34"
     inkscape:window-maximized="0"
     inkscape:current-layer="g256" /><g
     id="g10"
     inkscape:groupmode="layer"
     inkscape:label="pagemaker (6)"
     transform="matrix(1.25,0,0,-1.25,-20.899523,748.47938)"><g
       id="g12"
       transform="scale(0.10796,0.10796)"><g
         id="g14"><g
           id="g16"><g
             id="g18"
             clip-path="url(#clipPath20)"><text
               transform="matrix(1,0,0,-1,5523.588,5654.893)"
               style="font-variant:normal;font-weight:normal;font-size:6.97380018px;font-family:CMR7;-inkscape-font-specification:CMR7;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
               id="text24"><tspan
                 x="0"
                 y="0"
                 id="tspan26">7</tspan></text>
<g
               id="g28"
               transform="translate(162.456,5504.757)"><g
                 id="g30"><g
                   id="g32" /><g
                   id="g34"
                   transform="matrix(19.28668,0,0,19.28668,138.7477,-760.52298)"><g
                     id="g36"><g
                       id="g38"
                       transform="matrix(0.5,0,0,0.5,-3.735,-1.272)"><g
                         id="g40"><g
                           id="g42"
                           transform="translate(-158.721,-5503.485)"><text
                             transform="matrix(1,0,0,-1,158.721,5503.485)"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             id="text44"><tspan
                               x="0"
                               y="0"
                               id="tspan46">{</tspan></text>
<text
                             transform="matrix(1,0,0,-1,163.701,5503.485)"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:SFRM1000;-inkscape-font-specification:SFRM1000;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             id="text48"><tspan
                               x="0"
                               y="0"
                               id="tspan50">∗</tspan></text>
<text
                             transform="matrix(1,0,0,-1,168.681,5503.485)"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             id="text52"><tspan
                               x="0"
                               y="0"
                               id="tspan54">}</tspan></text>
<g
                             id="g56"
                             transform="translate(158.721,5503.485)" /></g></g><g
                         id="g58"
                         transform="translate(3.735,1.272)" /></g></g><g
                     id="g60"><g
                       id="g62"
                       transform="matrix(0.5,0,0,0.5,51.075,-1.272)"><g
                         id="g64"><g
                           id="g66"
                           transform="translate(-213.531,-5503.485)"><text
                             transform="matrix(1,0,0,-1,213.531,5503.485)"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             id="text68"><tspan
                               x="0"
                               y="0"
                               id="tspan70">{</tspan></text>
<text
                             transform="matrix(1,0,0,-1,218.511,5503.485)"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             id="text72"><tspan
                               x="0 4.6704669 8.9125423"
                               y="0"
                               sodipodi:role="line"
                               id="tspan74">s,t</tspan></text>
<text
                             transform="matrix(1,0,0,-1,231.022,5503.485)"
                             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
                             id="text76"><tspan
                               x="0"
                               y="0"
                               id="tspan78">}</tspan></text>
<g
                             id="g80"
                             transform="translate(213.531,5503.485)" /></g></g><g
                         id="g82"
                         transform="translate(-51.075,1.272)" /></g></g><g
                     id="g84"><path
                       d="M 5.49503,-1.3729 C 28.3468,-7.08669 28.3468,-7.08669 49.07433,-1.90369"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       id="path86"
                       inkscape:connector-curvature="0" /><g
                       id="g88"
                       transform="matrix(0.97014,0.24257,-0.24257,0.97014,49.19511,-1.87349)"><g
                         id="g90"><path
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           id="path92"
                           inkscape:connector-curvature="0" /></g></g></g><g
                     id="g120"><path
                       d="M 49.31593,0 C 28.3468,0 28.3468,0 5.7441,0"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       id="path122"
                       inkscape:connector-curvature="0" /><g
                       id="g124"
                       transform="matrix(-1,0,0,-1,5.61955,0)"><g
                         id="g126"><path
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           id="path128"
                           inkscape:connector-curvature="0" /></g></g></g><g
                     id="g164"><path
                       d="M 5.49503,1.3729 C 28.3468,7.08669 28.3468,7.08669 49.07433,1.90369"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       id="path166"
                       inkscape:connector-curvature="0" /><g
                       id="g168"
                       transform="matrix(0.97014,-0.24257,0.24257,0.97014,49.19511,1.87349)"><g
                         id="g170"><path
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           id="path172"
                           inkscape:connector-curvature="0" /></g></g></g><g
                     id="g200"><path
                       d="m -4.24901,-4.24998 c -4.25511,-4.25414 -4.25511,12.7541 -0.177,8.67691"
                       style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                       id="path202"
                       inkscape:connector-curvature="0" /><g
                       id="g204"
                       transform="matrix(0.71065,-0.71046,0.71046,0.71065,-4.33751,4.33846)"><g
                         id="g206"><path
                           d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                           style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                           id="path208"
                           inkscape:connector-curvature="0" /></g></g><g
                       id="g210"><g
                         id="g212" /><g
                         id="g214"
                         transform="matrix(0.4,0,0,0.4,-7.44,0)"><g
                           id="g216" /><g
                           id="g218"
                           transform="translate(7.44,0)" /></g></g></g><g
                     id="g220"><g
                       id="g222"
                       transform="translate(-37.115,-164.534)"><g
                         id="g224" /><g
                         id="g230"><g
                           clip-path="url(#clipPath226)"
                           id="g232"><g
                             transform="translate(37.115,164.534)"
                             id="g234"><g
                               id="g236"><path
                                 d="m 60.94263,-4.24998 c 4.25511,-4.25414 4.25511,12.7541 0.177,8.67691"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 id="path238"
                                 inkscape:connector-curvature="0" /><g
                                 transform="matrix(-0.71065,-0.71046,0.71046,-0.71065,61.03113,4.33846)"
                                 id="g240"><g
                                   id="g242"><path
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   id="path244"
                                   inkscape:connector-curvature="0" /></g></g><g
                                 id="g246"><g
                                   id="g248" /><g
                                   transform="matrix(0.4,0,0,0.4,64.133,0)"
                                   id="g250"><g
                                   id="g252" /><g
                                   transform="translate(-64.133,0)"
                                   id="g254" /></g></g></g><g
                               id="g256"><path
                                 d="m 58.39229,-4.24998 c 11.90753,-29.7661 11.90753,38.26606 0.0925,8.73121"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 id="path258"
                                 inkscape:connector-curvature="0" /><g
                                 transform="matrix(-0.37143,-0.92847,0.92847,-0.37143,58.43854,4.3656)"
                                 id="g260"><g
                                   id="g262"><path
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   id="path264"
                                   inkscape:connector-curvature="0" /></g></g></g><g
                               id="g300"><path
                                 d="m 58.39229,-4.24998 c 30.04928,-75.12116 30.04928,83.62112 0.0925,8.73121"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 id="path302"
                                 inkscape:connector-curvature="0" /><g
                                 transform="matrix(-0.37141,-0.92847,0.92847,-0.37141,58.43854,4.3656)"
                                 id="g304"><g
                                   id="g306"><path
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   id="path308"
                                   inkscape:connector-curvature="0" /></g></g></g><g
                               id="g344"><path
                                 d="m 58.38696,-4.24998 c 52.73171,-131.81478 52.73171,140.31474 0.09282,8.73201"
                                 style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                 id="path346"
                                 inkscape:connector-curvature="0" /><g
                                 transform="matrix(-0.3727,-0.93166,0.93166,-0.3727,58.43336,4.36601)"
                                 id="g348"><g
                                   id="g350"><path
                                   d="M -0.84683,1.0244 C -0.69211,0.40973 -0.34734,0.11949 0,0 -0.34734,-0.11949 -0.69211,-0.40973 -0.84683,-1.0244"
                                   style="fill:none;stroke:#000000;stroke-width:0.24907;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
                                   id="path352"
                                   inkscape:connector-curvature="0" /></g></g><g
                                 id="g354"><g
                                   id="g356" /></g></g></g></g></g></g></g></g></g></g></g></g></g></g></g></svg>


[[!redirects twosets_op_no_names20170618]]
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   id="svg4478"
   version="1.1"
   inkscape:version="0.91 r13725"
   xml:space="preserve"
   width="520.16376"
   height="404.52133"
   viewBox="0 0 520.16377 404.52132"
   sodipodi:docname="twosets_op_no_names20170618.svgz"><metadata
     id="metadata4484"><rdf:RDF><cc:Work
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
     id="defs4482"><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath4496"><path
         d="m 0,0 5669.291,0 0,5669.291 L 0,5669.291 0,0 Z"
         id="path4498"
         inkscape:connector-curvature="0" /></clipPath><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath4702"><path
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z"
         id="path4704"
         inkscape:connector-curvature="0" /></clipPath><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath5038"><path
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z"
         id="path5040"
         inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1045"
     inkscape:window-height="707"
     id="namedview4480"
     showgrid="false"
     fit-margin-top="0"
     fit-margin-left="0"
     fit-margin-right="0"
     fit-margin-bottom="0"
     inkscape:zoom="1.8101934"
     inkscape:cx="319.20769"
     inkscape:cy="293.99051"
     inkscape:window-x="45"
     inkscape:window-y="29"
     inkscape:window-maximized="0"
     inkscape:current-layer="g4486" /><g
     id="g4486"
     inkscape:groupmode="layer"
     inkscape:label="pagemaker (6)"
     transform="matrix(1.25,0,0,-1.25,-19.794668,709.37826)"><text
       y="-608.73444"
       x="595.44269"
       transform="scale(1,-1)"
       style="font-variant:normal;font-weight:normal;font-size:0.75289148px;font-family:CMR7;-inkscape-font-specification:CMR7;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       id="text4500"><tspan
         x="595.44269"
         y="-608.73444"
         id="tspan4502">--7</tspan></text>
<text
       y="-400.5032"
       x="30.845392"
       transform="scale(1,-1)"
       style="font-variant:normal;font-weight:normal;font-size:19.40823746px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       id="text4880"><tspan
         x="30.845392"
         y="-400.5032"
         id="tspan4882">{</tspan></text>
<text
       y="-400.5032"
       x="40.546978"
       transform="scale(1,-1)"
       style="font-variant:normal;font-weight:normal;font-size:19.40823746px;font-family:SFRM1000;-inkscape-font-specification:SFRM1000;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       id="text4884"><tspan
         x="40.546978"
         y="-400.5032"
         id="tspan4886">∗</tspan></text>
<text
       y="-400.5032"
       x="50.248566"
       transform="scale(1,-1)"
       style="font-variant:normal;font-weight:normal;font-size:19.40823746px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       id="text4888"><tspan
         x="50.248566"
         y="-400.5032"
         id="tspan4890">}</tspan></text>
<text
       y="-400.5032"
       x="244.39717"
       transform="scale(1,-1)"
       style="font-variant:normal;font-weight:normal;font-size:19.40823746px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       id="text4904"><tspan
         x="244.39717"
         y="-400.5032"
         id="tspan4906">{</tspan></text>
<text
       y="-400.5032"
       x="254.09875"
       transform="scale(1,-1)"
       style="font-variant:normal;font-weight:normal;font-size:19.40823746px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       id="text4908"><tspan
         x="254.09875 263.19733 271.46136"
         y="-400.5032"
         sodipodi:role="line"
         id="tspan4910">s,t</tspan></text>
<text
       y="-400.5032"
       x="278.47156"
       transform="scale(1,-1)"
       style="font-variant:normal;font-weight:normal;font-size:19.40823746px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       id="text4912"><tspan
         x="278.47156"
         y="-400.5032"
         id="tspan4914">}</tspan></text>
<path
       inkscape:connector-curvature="0"
       id="path4922"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="M 237.54346,398.28128 C 155.84313,377.85181 155.84313,377.85181 67.749019,399.87866" /><path
       inkscape:connector-curvature="0"
       id="path4928"
       style="fill:none;stroke:#000000;stroke-width:0.97043711;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="m 69.511064,395.32387 c -0.0039,2.46961 -1.032776,3.89252 -2.232748,4.67245 1.425835,0.12339 3.00333,0.89461 4.169081,3.07177" /><path
       inkscape:connector-curvature="0"
       id="path4954"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="m 66.807614,405.4631 c 89.035516,0 89.035516,0 169.765416,0" /><path
       inkscape:connector-curvature="0"
       id="path4960"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="m 233.75884,409.4544 c 0.60281,-2.3949 1.94611,-3.52574 3.29943,-3.9913 -1.35332,-0.46555 -2.69662,-1.59639 -3.29943,-3.99129" /><path
       inkscape:connector-curvature="0"
       id="path4982"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="M 237.54346,412.64493 C 155.84313,433.0744 155.84313,433.0744 67.749019,411.04755" /><path
       inkscape:connector-curvature="0"
       id="path4988"
       style="fill:none;stroke:#000000;stroke-width:0.97043711;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="m 71.447397,407.85812 c -1.165751,2.17716 -2.743246,2.94838 -4.169081,3.07177 1.199972,0.77993 2.228854,2.20284 2.232748,4.67245" /><text
       y="-253.33675"
       x="232.29834"
       id="text5000"
       style="font-variant:normal;font-weight:normal;font-size:25.90889549px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       transform="scale(0.59927642,-1.668679)"><tspan
         id="tspan5002"
         y="-253.33675"
         x="232.29834" /></text>
<text
       y="-422.3454"
       x="146.48907"
       id="text5004"
       style="font-variant:normal;font-weight:normal;font-size:15.52659035px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
       transform="scale(1,-1)"><tspan
         id="tspan5006"
         sodipodi:role="line"
         y="-422.3454"
         x="146.48907" /></text>
<path
       inkscape:connector-curvature="0"
       id="path5014"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="M 28.842695,388.90425 C 12.263852,372.32919 12.263852,438.59702 28.153064,422.7114" /><path
       inkscape:connector-curvature="0"
       id="path5020"
       style="fill:none;stroke:#000000;stroke-width:0.97516376;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       d="m 28.988785,427.54722 c -1.273076,-2.13021 -1.121876,-3.8882 -0.490906,-5.18053 -1.292492,0.63063 -3.050524,0.78135 -5.180393,-0.49228" /><path
       d="m 282.84364,388.90425 c 16.57884,-16.57506 16.57884,49.69277 0.68962,33.80715"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5050"
       inkscape:connector-curvature="0" /><path
       d="m 288.36885,421.87441 c -2.12987,1.27363 -3.8879,1.12291 -5.1804,0.49228 0.63097,1.29233 0.78217,3.05032 -0.4909,5.18053"
       style="fill:none;stroke:#000000;stroke-width:0.97516376;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5056"
       inkscape:connector-curvature="0" /><path
       d="m 272.90696,388.90425 c 46.39434,-115.97526 46.39434,149.09297 0.36039,34.01871"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5070"
       inkscape:connector-curvature="0" /><path
       d="m 278.01845,424.05338 c -2.44748,0.32983 -3.99638,-0.49736 -4.9313,-1.58094 0.0704,1.42943 -0.4806,3.09667 -2.48028,4.54592"
       style="fill:none;stroke:#000000;stroke-width:0.97043949;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5076"
       inkscape:connector-curvature="0" /><path
       d="m 272.90696,388.90425 c 117.07858,-292.688526 117.07858,325.80624 0.36039,34.01871"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5098"
       inkscape:connector-curvature="0" /><path
       d="m 278.01839,424.05346 c -2.44748,0.32979 -3.99635,-0.49743 -4.93124,-1.58102 0.0704,1.42942 -0.48066,3.09664 -2.48035,4.54583"
       style="fill:none;stroke:#000000;stroke-width:0.97043228;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5104"
       inkscape:connector-curvature="0" /><path
       d="m 272.88618,388.90425 c 205.45432,-513.57932 205.45432,546.69703 0.36165,34.02183"
       style="fill:none;stroke:#000000;stroke-width:0.97043139;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5134"
       inkscape:connector-curvature="0" /><path
       d="m 278.01519,424.06043 c -2.45588,0.33096 -4.0101,-0.49908 -4.94822,-1.58639 0.0706,1.43434 -0.48226,3.1073 -2.48882,4.5615"
       style="fill:none;stroke:#000000;stroke-width:0.97377157;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
       id="path5140"
       inkscape:connector-curvature="0" /><g
       id="g5150"
       transform="matrix(0,1.5584878,-1.5584878,0,8999.7081,165.24169)"><g
         id="g5164"
         transform="translate(136.275,5497.612)" /></g><text
       xml:space="preserve"
       style="font-style:normal;font-weight:normal;font-size:32px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       x="519.58575"
       y="-550.44806"
       id="text7178"
       sodipodi:linespacing="125%"
       transform="scale(1,-1)"><tspan
         sodipodi:role="line"
         id="tspan7180"
         x="519.58575"
         y="-550.44806" /></text>
</g></svg>


<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   id="svg4478"
   version="1.1"
   inkscape:version="0.91 r13725"
   xml:space="preserve"
   width="520.16376"
   height="404.52133"
   viewBox="0 0 520.16377 404.52132"
   sodipodi:docname="twosets_op_with_names20170618.svgz"><metadata
     id="metadata4484"><rdf:RDF><cc:Work
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
     id="defs4482"><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath4496"><path
         d="m 0,0 5669.291,0 0,5669.291 L 0,5669.291 0,0 Z"
         id="path4498"
         inkscape:connector-curvature="0" /></clipPath><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath4702"><path
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z"
         id="path4704"
         inkscape:connector-curvature="0" /></clipPath><clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath5038"><path
         d="m 0,0 176.703,0 0,329.068 L 0,329.068 0,0 Z"
         id="path5040"
         inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1045"
     inkscape:window-height="707"
     id="namedview4480"
     showgrid="false"
     fit-margin-top="0"
     fit-margin-left="0"
     fit-margin-right="0"
     fit-margin-bottom="0"
     inkscape:zoom="0.64"
     inkscape:cx="223.55587"
     inkscape:cy="163.80719"
     inkscape:window-x="45"
     inkscape:window-y="29"
     inkscape:window-maximized="0"
     inkscape:current-layer="g4488" /><g
     id="g4486"
     inkscape:groupmode="layer"
     inkscape:label="pagemaker (6)"
     transform="matrix(1.25,0,0,-1.25,-19.794668,709.37826)"><g
       id="g4488"
       transform="scale(0.10796,0.10796)"><text
         id="text4500"
         style="font-variant:normal;font-weight:normal;font-size:6.97380018px;font-family:CMR7;-inkscape-font-specification:CMR7;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         transform="scale(1,-1)"
         x="5515.4009"
         y="-5638.5186"><tspan
           id="tspan4502"
           y="-5638.5186"
           x="5515.4009">7</tspan></text>
<text
         id="text4880"
         style="font-variant:normal;font-weight:normal;font-size:179.7724762px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         transform="scale(1,-1)"
         x="285.7113"
         y="-3709.7371"><tspan
           id="tspan4882"
           y="-3709.7371"
           x="285.7113">{</tspan></text>
<text
         id="text4884"
         style="font-variant:normal;font-weight:normal;font-size:179.7724762px;font-family:SFRM1000;-inkscape-font-specification:SFRM1000;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         transform="scale(1,-1)"
         x="375.5741"
         y="-3709.7371"><tspan
           id="tspan4886"
           y="-3709.7371"
           x="375.5741">∗</tspan></text>
<text
         id="text4888"
         style="font-variant:normal;font-weight:normal;font-size:179.7724762px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         transform="scale(1,-1)"
         x="465.43689"
         y="-3709.7371"><tspan
           id="tspan4890"
           y="-3709.7371"
           x="465.43689">}</tspan></text>
<text
         id="text4904"
         style="font-variant:normal;font-weight:normal;font-size:179.7724762px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         transform="scale(1,-1)"
         x="2263.7751"
         y="-3709.7371"><tspan
           id="tspan4906"
           y="-3709.7371"
           x="2263.7751">{</tspan></text>
<text
         id="text4908"
         style="font-variant:normal;font-weight:normal;font-size:179.7724762px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         transform="scale(1,-1)"
         x="2353.6379"
         y="-3709.7371"><tspan
           id="tspan4910"
           sodipodi:role="line"
           y="-3709.7371"
           x="2353.6379 2437.9153 2514.4624">s,t</tspan></text>
<text
         id="text4912"
         style="font-variant:normal;font-weight:normal;font-size:179.7724762px;font-family:MnSymbol10;-inkscape-font-specification:MnSymbol10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         transform="scale(1,-1)"
         x="2579.3958"
         y="-3709.7371"><tspan
           id="tspan4914"
           y="-3709.7371"
           x="2579.3958">}</tspan></text>
<path
         d="M 2200.2914,3689.156 C 1443.5266,3499.9241 1443.5266,3499.9241 627.53815,3703.952"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path4922"
         inkscape:connector-curvature="0" /><path
         d="m 643.85943,3661.7624 c -0.0361,22.8752 -9.56628,36.0552 -20.68125,43.2795 13.20706,1.1429 27.81891,8.2865 38.6169,28.4528"
         style="fill:none;stroke:#000000;stroke-width:8.98885822;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path4928"
         inkscape:connector-curvature="0" /><text
         transform="scale(0.67797066,-1.4749901)"
         style="font-variant:normal;font-weight:normal;font-size:212.13011169px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         id="text4940"
         x="1913.3439"
         y="-2372.4958"><tspan
           x="1913.3439"
           y="-2372.4958"
           id="tspan4942">t</tspan></text>
<text
         transform="scale(1,-1)"
         style="font-variant:normal;font-weight:normal;font-size:143.81799316px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         id="text4944"
         x="1349.131"
         y="-3499.4077"><tspan
           x="1349.131 1413.0437 1492.949"
           y="-3499.4077"
           sodipodi:role="line"
           id="tspan4946">end</tspan></text>
<path
         d="m 618.81821,3755.679 c 824.70839,0 824.70839,0 1572.48439,0"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path4954"
         inkscape:connector-curvature="0" /><path
         d="m 2165.2356,3792.6491 c 5.5837,-22.1832 18.0263,-32.6578 30.5616,-36.9701 -12.5353,-4.3123 -24.9779,-14.7869 -30.5616,-36.9701"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path4960"
         inkscape:connector-curvature="0" /><text
         transform="scale(1,-1)"
         style="font-variant:normal;font-weight:normal;font-size:143.81799316px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         id="text4972"
         x="1381.3633"
         y="-3722.3904"><tspan
           x="1381.3633 1421.3159 1497.2518 1569.1609"
           y="-3722.3904"
           sodipodi:role="line"
           id="tspan4974">loop</tspan></text>
<text
         y="-2783.7632"
         x="-3730.4575"
         style="font-variant:normal;font-weight:normal;font-size:143.81799316px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         id="text4972-3"
         transform="matrix(0,-1,-1,0,0,0)"
         inkscape:transform-center-x="1.4473592"
         inkscape:transform-center-y="0.033145631"><tspan
           x="-3730.4575"
           y="-2783.7632"
           sodipodi:role="line"
           id="tspan4974-6">l</tspan></text>
<path
         d="m 2200.2914,3822.202 c -756.7648,189.2319 -756.7648,189.2319 -1572.75325,-14.796"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path4982"
         inkscape:connector-curvature="0" /><path
         d="m 661.79508,3777.8633 c -10.79799,20.1663 -25.40984,27.3099 -38.6169,28.4528 11.11497,7.2243 20.64518,20.4043 20.68125,43.2795"
         style="fill:none;stroke:#000000;stroke-width:8.98885822;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path4988"
         inkscape:connector-curvature="0" /><text
         transform="scale(0.59927643,-1.668679)"
         style="font-variant:normal;font-weight:normal;font-size:239.98606873px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         id="text5000"
         x="2151.7075"
         y="-2346.5798"><tspan
           x="2151.7075"
           y="-2346.5798"
           id="tspan5002">s</tspan></text>
<text
         transform="scale(1,-1)"
         style="font-variant:normal;font-weight:normal;font-size:143.81799316px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
         id="text5004"
         x="1356.8828"
         y="-3912.0544"><tspan
           x="1356.8828 1420.7955 1500.7008"
           y="-3912.0544"
           sodipodi:role="line"
           id="tspan5006">end</tspan></text>
<path
         d="M 267.16094,3602.2995 C 113.59626,3448.7698 113.59626,4062.5882 260.7731,3915.4446"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path5014"
         inkscape:connector-curvature="0" /><path
         d="m 268.51413,3960.2373 c -11.79211,-19.7315 -10.39159,-36.0152 -4.54711,-47.9856 -11.97196,5.8413 -28.25606,7.2374 -47.98438,-4.5599"
         style="fill:none;stroke:#000000;stroke-width:9.0326395;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         id="path5020"
         inkscape:connector-curvature="0" /><path
         inkscape:connector-curvature="0"
         id="path5050"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2619.8929,3602.2995 c 153.5647,-153.5297 153.5647,460.2887 6.3878,313.1451" /><path
         inkscape:connector-curvature="0"
         id="path5056"
         style="fill:none;stroke:#000000;stroke-width:9.0326395;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2671.0712,3907.6918 c -19.7283,11.7973 -36.0124,10.4012 -47.9844,4.5599 5.8445,11.9704 7.245,28.2541 -4.5471,47.9856" /><g
         id="g5064"
         transform="matrix(14.435789,0,0,14.435789,2735.0317,3755.679)" /><g
         id="g5066"
         transform="matrix(14.435789,0,0,14.435789,1809.2212,3755.679)" /><path
         inkscape:connector-curvature="0"
         id="path5070"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2527.8525,3602.2995 c 429.7364,-1074.2429 429.7364,1381.0019 3.3382,315.1047" /><path
         inkscape:connector-curvature="0"
         id="path5076"
         style="fill:none;stroke:#000000;stroke-width:8.98888016;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2575.1987,3927.875 c -22.6703,3.0551 -37.0172,-4.6069 -45.6771,-14.6438 0.6521,13.2404 -4.4517,28.6835 -22.9741,42.1074" /><g
         id="g5084"
         transform="matrix(0,14.435789,-14.435789,0,2886.0661,3655.8194)"><g
           id="g5086"
           transform="translate(-105.433,-5501.99)"><text
             id="text5088"
             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
             transform="matrix(1,0,0,-1,105.433,5501.99)"><tspan
               id="tspan5090"
               sodipodi:role="line"
               y="0"
               x="0 5.5352206 8.3028307">fip</tspan></text>
<g
             id="g5092"
             transform="translate(105.433,5501.99)" /></g></g><g
         id="g5094"
         transform="matrix(0,14.435789,-14.435789,0,2846.1223,2669.5952)" /><path
         inkscape:connector-curvature="0"
         id="path5098"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2527.8525,3602.2995 c 1084.4626,-2711.08309 1084.4626,3017.8421 3.3382,315.1047" /><path
         inkscape:connector-curvature="0"
         id="path5104"
         style="fill:none;stroke:#000000;stroke-width:8.9888134;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2575.1981,3927.8757 c -22.6702,3.0547 -37.0169,-4.6075 -45.6765,-14.6445 0.6519,13.2403 -4.4522,28.6832 -22.9747,42.1066" /><g
         id="g5112"
         transform="matrix(0,14.435789,-14.435789,0,3385.4001,3490.0605)"><g
           id="g5114"
           transform="translate(-119.269,-5497.397)"><text
             id="text5116"
             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
             transform="matrix(1,0,0,-1,119.269,5497.397)"><tspan
               id="tspan5118"
               sodipodi:role="line"
               y="0"
               x="0 4.4273796 9.408679">con</tspan></text>
<text
             y="-3159.5913"
             x="234.66577"
             id="text5120"
             style="font-variant:normal;font-weight:normal;font-size:14.92471504px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
             transform="scale(0.57471944,-1.7399794)"><tspan
               id="tspan5122"
               y="-3159.5913"
               x="234.66577">s</tspan></text>
<text
             id="text5124"
             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
             transform="matrix(1,0,0,-1,138.883,5497.397)"><tspan
               id="tspan5126"
               sodipodi:role="line"
               y="0"
               x="0 3.9023504 8.8836508 13.311029">ract</tspan></text>
<g
             id="g5128"
             transform="translate(119.269,5497.397)" /></g></g><g
         id="g5130"
         transform="matrix(0,14.435789,-14.435789,0,3279.1527,2304.1027)" /><path
         inkscape:connector-curvature="0"
         id="path5134"
         style="fill:none;stroke:#000000;stroke-width:8.98880482;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2527.6601,3602.2995 c 1903.0596,-4757.126 1903.0596,5063.885 3.3498,315.1336" /><path
         inkscape:connector-curvature="0"
         id="path5140"
         style="fill:none;stroke:#000000;stroke-width:9.01974392;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:0.65"
         d="m 2575.1685,3927.9403 c -22.7481,3.0655 -37.1443,-4.6229 -45.8338,-14.6943 0.6543,13.2859 -4.4671,28.782 -23.0532,42.2518" /><g
         id="g5148"
         transform="matrix(0,14.435789,-14.435789,0,3999.1376,3497.8197)"><g
           id="g5150"
           transform="translate(-136.275,-5497.612)"><text
             id="text5152"
             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
             transform="matrix(1,0,0,-1,136.275,5497.612)"><tspan
               id="tspan5154"
               sodipodi:role="line"
               y="0"
               x="0 4.4273796 9.408679">con</tspan></text>
<text
             y="-3874.0576"
             x="214.59241"
             id="text5156"
             style="font-variant:normal;font-weight:normal;font-size:14.13776207px;font-family:CMMI10;-inkscape-font-specification:CMMI10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
             transform="scale(0.70468007,-1.4190837)"><tspan
               id="tspan5158"
               y="-3874.0576"
               x="214.59241">t</tspan></text>
<text
             id="text5160"
             style="font-variant:normal;font-weight:normal;font-size:9.96259975px;font-family:CMR10;-inkscape-font-specification:CMR10;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
             transform="matrix(1,0,0,-1,154.817,5497.612)"><tspan
               id="tspan5162"
               sodipodi:role="line"
               y="0"
               x="0 3.9023504 8.8836508 13.311029">ract</tspan></text>
<g
             id="g5164"
             transform="translate(136.275,5497.612)" /></g></g><g
         id="g5166"
         transform="matrix(0,14.435789,-14.435789,0,3895.9939,2066.3669)" /></g></g></svg>


TwoVect

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Higher algebra
+--{: .hide}
[[!include higher algebra - contents]]
=--
#### Higher category theory
+--{: .hide}
[[!include higher category theory - contents]]
=--
=--
=--

# _TwoVect_: a Mathematica Package for 2-Vector Spaces #
* table of contents
{:toc}

## What is _TwoVect_? ##

_TwoVect_ is a [[Mathematica]] package for working with finite-dimensional [[complex numbers|complex]] [semisimple](semisimple+category) [[2-vector spaces]]. It implements all the basic operations of a skeletal version of **2Vect**, the [[symmetric monoidal bicategory]] of finite-dimensional 2-vector spaces.

2-vector space are categories with many of the same properties as ordinary [[vector spaces]]. There are two main types of 2-vector spaces; the sort we are concerned with here are [[Kapranov-Voevodsky 2-vector spaces]], closely related to the [2-Hilbert spaces](2-Hilbert+space) of [Baez](John+Baez). They have a range of applications in [quantum algebra](quantum+group), [[representation theory]], [[topological quantum field theory]] and [[quantum information]]. This package can help with calculations in these areas.

_TwoVect_ was developed by [Dan Roberts](http://ctpweb.lns.mit.edu/personnel.html) in 2011 as an MSc project, at the [Quantum Group](http://www.cs.ox.ac.uk/activities/quantum/) in the [Department of Computer Science](http://www.cs.ox.ac.uk/) of the [University of Oxford](http://www.cs.ox.ac.uk/), supervised by [Jamie Vicary](http://www.cs.ox.ac.uk/people/jamie.vicary). If you've got any questions, please get in touch.

## How can I get it? ##

Here are download links for the [packages](http://www.cs.ox.ac.uk/people/jamie.vicary/twovect/twovect.zip) and the [user guide](http://www.cs.ox.ac.uk/people/jamie.vicary/twovect/guide.pdf).

## What's it for? ##

The mathematics of 2-vector spaces is often referred to as _[higher linear algebra](higher+algebra)_, and extends the ordinary [[linear algebra]] required for calculations involving traditional vector spaces. This higher linear algebra can be difficult to work with by hand: whereas ordinary linear algebra involves [[matrices]] of [[complex numbers]], higher linear algebra involves matrices of _matrices_ of complex numbers. And whereas ordinary matrices can be composed in two different ways, ordinary composition and [[tensor product]], the theory of 2-vector spaces involves three types of composition: tensor product, [[horizontal composition]] and [[vertical composition]].

While the underlying mathematics of 2-vector spaces is elegant and natural, the combinatorics of these basic operations can make calculations difficult to perform by hand. _TwoVect_ implements the basic operations of higher linear algebra, and can make calculations a lot easier.

Here are some example uses for the package.

* You've worked out the associator and unitors for a [semisimple](semisimple+category) [[monoidal category]], and you want to check the pentagon and triangle equations.

* You've worked out other structure, like a [braiding](braided+monoidal+category), [symmetry](symmetric+monoidal+category) or [ribbon](ribbon+category) structure, and you want to check the defining equations are satisfied.

* You want to use Mathematica's built-in solvers to help find these structures.

* You want to calculate the value of a [[string diagram]] in a semisimple monoidal category.

* You want to check algebraic properties of a semisimple monoidal category. Does it have [duals for objects](dualizable+object)? Is it [modular](modular+tensor+category)?

* You want to check the axioms are satisfied for an [internal monoid object](monoid#inamonoidalcategory) in a semisimple monoidal category, or you want Mathematica to help you find such an object.

* You have chosen higher linear maps to associate to the generators of some [higher algebraic structure](higher+algebra), and want to check the relations are satisfied.

* You want to verify correctness of a quantum protocol, described in terms of the [2-categorical approach to quantum information](http://arxiv.org/abs/1207.4563).

## How does it work? ##

The basic package _TwoVect_ implements a completely skeletal version of **2Vect**, the symmetric monoidal bicategory of finite-dimensional semisimple complex 2-vector spaces, in the following way:

* **2-vector spaces** are represented by natural numbers.

* **[Linear functors](linear+functor)** between 2-vector spaces are represented by matrices of natural numbers.

* **[Natural transformations](natural+transformation)** between linear functors are represented by matrices of matrices of complex numbers.

The three primitive composition operations of **2Vect** are implemented:

* **Tensor product** $\odot$ is a binary operation for which the arguments can be 0-cells, 1-cells or 2-cells.

* **Horizontal composition** $\circ$ is a binary operation, for which the arguments must 1-cells or 2-cells.

* **Vertical composition** $\cdot$ is a binary operation for which the arguments must be 2-cells.

The nonidentity invertible structural 2-cells are also implemented, which account for weakness of horizontal composition and tensor product:

* The **interchanger**: $\tau_{f,g,h,i} : (f \circ g) \odot (h \circ i) \to (f \odot h) \circ (g \odot i)$

* The **compositer**: $\omega_{f,g,h} : f \circ (g \circ h) \to (f \circ g) \circ h$

* The **symmetrizer**: $\sigma_{f,g}: \mathrm{swap} \circ (f \odot g) \to (g \odot f) \circ \mathrm{swap}$

There are also two add-on packages:

* _MTCategories_ provides implementations of the equations for symmetric or braided semisimple monoidal categories.

* _MTCategory_ provides a simplified syntax for working 'inside' a particular choice of monoidal category. Once this is defined, the value of string diagrams can be computed by typing them in using ordinary string diagram syntax.

## How could this be developed? ##

There are several exciting ways this could evolve. If you want to help out, get in touch! Lots of things on this list would involve original research, and could form a part of a Masters or PhD dissertation.

* A graphical front end would be a powerful addition. Compare to [Quantomatic](https://sites.google.com/site/quantomatic/), a GUI for _ordinary_ linear algebra.

* Can _TwoVect_ be connected in a useful way to [computational methods in higher type theory](Coq)?

* It should be possible to write code that inserts the structural isomorphisms $\tau$, $\omega$ and $\sigma$ _automatically_ where necessary. This would make the package enormously more powerful for certain applications.

* Many more things could be implemented - a test for modularity of a braided monoidal category, quantum doubles, Hopf algebra axioms, module category axioms ...

There are also some more mundane issues that need dealing with.

* The basic functions that perform 2-cell tensor product, horizontal composition and vertical composition haven't been optimized, and run slowly for large inputs. There should be a lot of scope for improving the code, and perhaps also for compilation, which Mathematica supports.

* There are some other strange issues around speed; different ways to tell Mathematica to compute the same thing can give rise to very different calculation times.

* We're not sure how to test systematically whether everything has been implemented correctly.

* There is probably some scope to restructure the packages and make them easier to use.

category: software


Tycho Sleator

* [personal page](https://physics.nyu.edu/~ts2/)

* [laboratory page](https://physics.nyu.edu/~ts2/lab/home.html)

## Selected writings

Influential early discussion of ([[controlled quantum gate|controlled]]) [[quantum logic gates]]:

* {#BBCDMSSSW95} [[Adriano Barenco]], [[Charles H. Bennett]], [[Richard Cleve]], [[David P. DiVincenzo]], [[Norman Margolus]], [[Peter W. Shor]], [[Tycho Sleator]], [[John A. Smolin]], [[Harald Weinfurter]], *Elementary gates for quantum computation*, Phys. Rev. A**52** (1995) 3457 [[arXiv:quant-ph/9503016](https://arxiv.org/abs/quant-ph/9503016), [doi:10.1103/PhysRevA.52.3457](https://doi.org/10.1103/PhysRevA.52.3457)]

category: people


Tychonoff product > history

see _[[product topological space]]_


Tychonoff space

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Topology
+-- {: .hide}
[[!include topology - contents]]
=--
=--
=--

# Tychonoff spaces
* table of contents
{: toc}

## Idea

A _Tychonoff space_ is a [[subspace]] of a [[compactum]].  By default, one usually means a Tychonoff [[topological space]], although there exist (even [[classical mathematics|classically]]) additional Tychonoff [[locales]].

## Definitions

The classical definition is:
+-- {: .num_defn #classical}
###### Definition
A [[topological space]] $X$ is __completely regular__ if, given a [[point]] $a$ of $X$ and a [[closed subset]] $F$ of $X$, if $a \notin F$, then there is a [[continuous map]] $f$ from $X$ to the [[real line]] $\mathbb{R}$ such that $f$ is [[constant function|constant]] when [[restriction|restricted]] to $F$ but takes a different value at $a$.
=--
(Traditionally, one requires $f(a) = 0$ and $f(F) = \{1\}$, but this can always be forced by postcomposition with an [[affine linear map]].  One sometimes sees, even more specifically, the requirement that $f$ land in the [[unit interval]] $[0,1]$, but this too can be forced since $[0,1]$ is a [[retract]] of $\mathbb{R}$.)

An equivalent definition focussing on open sets is this:
+-- {: .num_defn #constructive}
###### Definition
A [[topological space]] $X$ is __completely regular__ if, given a point $a$ of $X$ and an [[open neighbourhood]] $U$ of $a$ in $X$, there is a continuous $f\colon X \to \mathbb{R}$ and a [[real number]] $c$ such that $a \in f^*(\{c\}') \subseteq U$.
=--
(Here $f^*(\{c\}')$ is the [[preimage]] under $f$ of the [[complement]] of the [[singleton]] of $c$.  Again, one can force $c = 1$, $f(a) = 0$, and even $f\colon X \to [0,1]$ if desired.)  This definition is suitable for [[constructive mathematics]] based on [[weak countable choice]], [[Markov's principle]], and the [[fan theorem]] (all of which follow from [[excluded middle]]), or in any case if the following interpretations are made:

*  $f$ lands in the [[locale of real numbers]],
*  the complement $\{c\}'$ is the [[open subspace]] [[apartness|apart]] from $c$.

There is also a definition entirely in terms of the lattice of open sets, suitable for [[locales]], which I need to look up again.  (It\'s similar to the localic definition of [[regular space]], but using a stronger notion than well-inside.)

When a space is completely regular, we also often ask it to be $T_0$:

+-- {: .un_defn}
###### Definition
**(of $T_0$)**
Given any two points, if each neighbourhood of either is a neighbourhood of the other, then they are equal.
=--

A completely regular $T_0$-space is variously called a __$T_{3\frac{1}{2}}$-space__ (or __$T_{\pi}$-space__), a __completely regular Hausdorff space__ (since it is a theorem that such a space is [[Hausdorff space|Hausdorff]]), or a __Tychonoff space__ (or using other spellings of [[Tychonoff]]\'s name).

As is usual with the [[separation axioms]], some authors while conflate the meanings of 'completely regular' and '$T_{3\frac{1}{2}}$' either way, or even reverse them.  In contrast, the terms 'completely regular Hausdorff' and 'Tychonoff' are unambiguous.  The only unambiguous term for a completely regular space in general seems to be '$R_{2\frac{1}{2}}$', but this is not widely recognised.

## Properties

*  Every completely regular space is [[preregular space|preregular]], so every completely regular Hausdorff space (as defined above) really is Hausdorff.

*  Every completely regular space is [[regular space|regular]].

*  The [[natural transformation|natural map]] from a Tychonoff space to its [[Stone-Cech compactification]] (the [[unit of an adjunction|unit of the adjunction]]) really is a [[compactification]]  in that it is the inclusion of a [[dense subspace]] into a [[compact space]].  Conversely, any [[subspace]] of a [[compact Hausdorff space]] must be Tychonoff.

* Without $T_0$, we can say that a completely regular space embeds as a dense subspace of a [[compact regular space]], and any subspace of a compact regular space is complete regular.

## Examples

* Every [[metric space]] is Tychonoff (and every pseudometric space is completely regular).

* Every [[topological group]] is Tychonoff, if one requires groups to be Hausdorff; if not, then they are still completely regular.

* Every [[topological manifold]] is Tychonoff, if one requires manifolds to be Hausdorff.  (But if not, then the non-Hausdorff manifolds are *not* completely regular, indeed not even preregular, and in fact they are still $T_0$, indeed $T_1$.)

* Every [[CW-complex]] is Tychonoff.

## References

Named after [[A. N. Tychonoff]].

For a version appropriate to [[constructive mathematics|constructive]] (but impredicative) mathematics, see

* Bernhard Banaschewski, Aleš Pultr; 2002; A Constructive View of Complete Regularity; [web](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.9.4811).

[[!redirects completely regular space]]
[[!redirects completely regular spaces]]
[[!redirects R-2-1/2 space]]
[[!redirects R-2-1/2 spaces]]

[[!redirects completely regular Hausdorff space]]
[[!redirects completely regular Hausdorff spaces]]
[[!redirects Tychonoff space]]
[[!redirects Tychonoff spaces]]
[[!redirects Tychonov space]]
[[!redirects Tychonov spaces]]
[[!redirects Tykhonov space]]
[[!redirects Tykhonov spaces]]
[[!redirects Tikhonov space]]
[[!redirects Tikhonov spaces]]
[[!redirects Tihonov space]]
[[!redirects Tihonov spaces]]
[[!redirects T-3-1/2 space]]
[[!redirects T-3-1/2 spaces]]
[[!redirects T-pi space]]
[[!redirects T-pi spaces]]

[[!redirects completely regular locale]]
[[!redirects completely regular locales]]

[[!redirects completely regular topological space]]
[[!redirects completely regular topological spaces]]


Tychonoff theorem

[[!redirects Tychonoff's theorem]]
[[!redirects Tychonoff theorem]]

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Topology
+--{: .hide}
[[!include topology - contents]]
=--
=--
=--

* table of contents
{: toc}

## Statement

What is known as the **Tychonoff theorem** or as **Tychonoff's theorem** ([Tychonoff 35](#Tychonoff35)) is a basic [[theorem]] in the field of [[topology]]. Assuming the [[axiom of choice]], then it states that the  [[product topological space]] (with its [[Tychonoff topology]]) of an arbitrary [[set]] of [[compact topological spaces]] is itself [[compact space|compact]]:

$$
  \left(
    \underset{i \in I}{\forall}
    \left(
       X_i \, \text{compact}
    \right)
  \right)
    \;\Rightarrow\;
  \left(
     \underset{i \in I}{\prod} X_i
     \, \text{compact}
  \right)
  \,.
$$

For a [[finite number]] of factors the proof of this statement is elementary (see [below](#ElementaryProofOfFinitaryCase)), but this already essentially  implies for instance the [[Heine-Borel theorem]]. For an arbitrary [[set]] of factors the proof is non-trivial, but is conveniently given using [[nets]] (see [below](#ProofViaNets)) [[ultrafilters]] ([further below](#ProofViaUltrafilters)).

In its [[classical mathematics|classical]] form, Tychonoff's theorem is equivalent to the [[axiom of choice]]. (Compare the statement of the axiom of choice: a product of sets is [[inhabited set|inhabited]] if each set is inhabited.)

Notice that no [choice](axiom+of+choice#Variants) whatsoever is needed to prove the analogous theorem for [[locales]]: even in [[constructive mathematics]], a [[Cartesian product]] of locales is compact if each of the locales is compact.  From that perspective, the statement equivalent to the axiom of choice is this: a product of locales is [[spatial locale|spatial]] if each of the locales is spatial.  Either of these may be considered a Tychonoff theorem for locales.

To prove Tychonoff's theorem for [[Hausdorff topological spaces]] only, the full [[axiom of choice]] is not needed; the [[ultrafilter theorem]] (and possibly [[excluded middle]]) are enough.

## Proofs

* [elementary proof for the finitary case](#ElementaryProofOfFinitaryCase)

* [elementary proof via closed-projection characterization](#ElementaryProofViaClosedProjectionCharacterization)

* [proof via net convergence](#ProofViaNets)

* [proof via ultrafilter convergence](#ProofViaUltrafilters)

### Elementary proof of finitary case
 {#ElementaryProofOfFinitaryCase}

The finitary case of Tychonoff's theorem, where products with only a [[finite number]] of factors are considered, may be proven with elementary means from basic topology. Such a proof is spelled out _[here](Introduction+to+Topology+--+1#BinaryTychonoffTheorem)_ at _[[Introduction to Topology -- 1]]:

+-- {: .proof}
###### Proof
of the finitary Tychonoff theorem

Let $X,Y$ be two twopological spaces, with [[product topological space]] $X \times Y$.  Let $\{ U_i \subset X \times Y \}_{i \in I}$ be an [[open cover]] of the product space. We need to show that
this has a finite subcover.

By definition of the product space topology, each $U_i$ is the union, indexed by some set $K_i$, of [[Cartesian products]]
of open subsets of $X$ and $Y$:

$$
  U_i
    \;=\;
  \underset{k_i \in K_i}{\cup} \left(
     V_{k_i} \times W_{k_i}
  \right)
  \phantom{AAAA}
  V_{k_i} \in \tau_{X} \,\phantom{A}\text{and} \phantom{A}\, W_{k_i} \in \tau_{Y}
  \,.
$$

Consider then the [[disjoint union]] of all these index sets

$$
   K
    \,\coloneqq\,
  \underset{i \in I}{\sqcup}
  K_i
  \,.
$$

This is such that

$$
  (\star)
  \phantom{AA}
  \left\{
    V_{k_i} \times W_{k_i}
      \subset
    X \times Y
  \right\}_{k_i \in K}
$$

is again an open cover of $X \times Y$.

But by construction, each element $V_{k_i} \times W_{k_i}$ of this new cover is contained in at least one
$U_{j(k_i)}$ of the original cover.
Therefore it is now sufficient to show that there is
a finite subcover of $(\star)$, consisting of elements indexed by $k_i \in K_{fin} \subset K$ for some
[[finite set]] $K_{fin}$. Because then the corresponding $U_{j(k_i)}$ for $k_i \in K_{fin}$ form a finite subcover
of the original cover.

In order to see that $(\star)$ has a finite subcover, first fix a point $x \in X$ and
write $\{x\} \subset X$ for the corresponding [[singleton]] [[topological subspace]].
This is [[homeomorphism|homeomorphic]] to the abstract
[[point]] space $\ast$.
and there is thus a [[homeomorphism]] of the form

$$
  \{x\} \times Y \simeq Y
  \,.
$$

Therefore, since $(Y,\tau_Y)$ is assumed to be [[compact topological space|compact]], the open cover

$$
  \left\{
    \left(
      (V_{k_i} \times W_{k_i}) \cap (\{x\} \times Y)
    \right)
      \;\subset\;
    \{x\}\times Y
  \right\}_{k_i \in K}
$$

has a finite subcover, indexed by a [[finite set|finite]] [[subset]] $J_x \subset K$.

Here we may assume without restriction of generality that $x \in V_{k_i}$ for all $k_i \in J_x \subset K$,
because if not then we may simply remove that index and still have a (finite) subcover.

By finiteness of $J_x$ it now follows that the intersection

$$
  V_x
    \;\coloneqq\;
  \underset{k_i \in J_x}{\cap} V_{k_i}
$$

is still an open subset, and by the previous remark we may assume without restriction that

$$
  x \in V_x
  \,.
$$

Now observe that by the nature of the above cover of $\{x\} \times Y$ we have

$$
  \{x\} \times Y
    \subset
  \underset{k_i \in J_x \subset K}{\cup}  V_{k_i} \times W_{k_i}
$$

and hence

$$
  \{x\} \times Y \subset \{x\} \times \underset{k_i \in J_x \subset K}{\cup} W_{k_i}
  \,.
$$

Since by construction $V_x \subset V_{k_i}$ for all $k_i \in J_x \subset K$, it follows
that we have found a finite cover not just of $\{x\} \times Y$ but of $V_x \times Y$

$$
  V_x \times Y
    \subset
  \underset{k_i \in J_x \subset K}{\cup} \left( V_{k_i} \times W_{k_i} \right)
  \,.
$$

To conclude, observe  that $\{V_x \subset X\}_{x \in X}$ is clearly an open cover of $X$,
so that by the assumption that also $X$ is compact there is a finite set of points $S \subset X$
so that $\{V_x \subset X\}_{x \in S \subset X}$ is still a cover.
In summary then

$$
  \left\{
    V_{k_i} \times W_{k_i}
    \subset X \times Y
  \right\}_{{x \in S \subset X} \atop { k_i \in J_x \subset K }}
$$

is a finite subcover as required.
t

=--

### Elementary proof of general case via closed-projection characterization
 {#ElementaryProofViaClosedProjectionCharacterization}

Another equivalent characterization of compactness of a space $X$ is that for all spaces $Y$ then the [[projection]] $\pi_Y \;\colon\; Y \times X \to Y$ out of the [[product topological space]] is a [[closed map]], see at _[[closed-projection characterization of compactness]]_.

This characterization allows an elementary proof of the general Tychonoff theorem, see [there](closed-projection+characterization+of+compactness#TychonoffTheorem).

### Proof via net convergence
 {#ProofViaNets}

We give the proof of the Tychonoff theorem using the characterization of compactness via [[convergence]] of [[nets]] ([ths prop](net#CompactSpacesEquivalentlyHaveConvergetSubnets)). This proof is due to ([Chernoff 92](#Chernoff92)).

+-- {: .proof #ProofOfTychonoffTheoremViaNets}
###### Proof
(of the [[Tychonoff theorem]] via [[convergence]] of [[nets]])

By [this prop.](net#CompactSpacesEquivalentlyHaveConvergetSubnets) a topological space is compact precisely if every [[net]]
in that space has a [[convergence|convergent]] [[subnet]].
This in turn is equivalently the case if every net has a [[cluster point]]. We will show that
this is the case for the product of compact spaces.

So let

$$
  \nu \;\colon\; A \to \underset{i \in I}{\prod} X_i
$$

be a net in the product space. We need to show that this has a cluster point.

For every [[finite set|finite]] [[subset]] $J \subset I$, write

$$
  \nu\vert_I
    \;\colon\;
  A
    \overset{\nu}{\longrightarrow}
  \underset{i \in I}{\prod} X_i
    \overset{pr_J}{\longrightarrow}
  \underset{i \in J \subset I}{\prod}
    X_i
$$

for the image of the net under [[projection]] to the product space of factors
with indices in the subset $J$.

Say that a _partial cluster point_ of $\nu$ is

1. a finite subset $J \subset I$;

1. a cluster point $c_J \in \underset{i \in J \subset I}{\prod} X_i $ of $\nu\vert_J$.

Write $PartialClusterPt(\nu)$ for the set of all partial cluster points of $\nu$.
Equip this with the [[partial order]] $\leq$ given by the evident extension of domains.

Observe that, by definition, a partial cluster point $c_J$ for which $J = I$ is an actual
cluster point of $\nu$

We claim now that if the partially ordered set  $(PartialClusterPt_{\leq})$ has a [[maximal element]]
then this is an actual cluster point of $\nu$.

To see this, assume it were not, hence that the maximal element were a partial cluster point $c_J$
with $I \backslash J \neq \emptyset$. Then there were an element $k \in I\backslash J$. Since
$X_k$ is a compact space by assumption, it would follow that the net $\nu\vert_{\{k\}}$ had a cluster point
$c_k$. But then adjoining that to $c_J$ would yield a partial cluster point with larger domain $J \cup \{k\}$,
in contradiction with the assumption that $c_J$ is already maximal. Hence we have a [[proof by contradiction]]
that every maximal element in $PartialClusterPt(\nu)_{\leq}$ is an actual cluster point.

Therefore we may now conclude by showing that the partially ordered set $PartialClusterPt(\nu)_{\leq}$
does have a maximal element. To this end we invoke [[Zorn's lemma]]. This says that we need to check that
$PartialClusterPt(\nu)$ is not [[empty set|empty]], and that every subset $L_{\leq} \subset PartialClusterPt(\nu)_{\leq}$
on which the partial order restricts to a [[total order]] has an [[upper bound]] partial cluster point.

Now non-emptyness follows immediately because there is always the partial cluster point with empty domain $c_{\emptyset}$.

Hence consider a totally ordered subset $S = \{ (c_k)_{J_k} \}_{k \in K}$ of partial cluster points.

For

$$
  J_{tot} \coloneqq \underset{k \in K}{\cup} J_k
$$

the union of the domains of the partial cluster points in the subset, then this induces a point

$$
  c_{tot} \in \underset{ i \in J_{tot}  }{\prod} X_i
  \,.
$$

If this is a partial cluster point, then it is clearly an upper bound of $S$. Hence we may conclude by showing that
$c$ is indeed a partial cluster point.

This means that we need to show that for every Tychonoff-basic
open neighbourhood $U \subset \underset{i \in J_{tot}}{\prod}$ of $c_{tot}$ and every element $a \in A$ (in the domain of the net) there exists
$b \geq a$ such that $\nu_b \in U$.

But by definition of the [[Tychonoff topology]], $U$ is a product $\underset{i \in J_{tot}}{\prod} U_i$ of open subsets $U_i \subset X_i$ such that only over a finite subset of $J_{tot}$ they differ from the total spaces $X_i$.
By construction of $c_{tot}$, that finite subset of $J_{tot}$ must be contained in $J_k$ for some $k \in K$, and since $c_{J_k}$ is a partial
cluster point, the claim follows.

=--

### Proof via ultrafilter convergence
 {#ProofViaUltrafilters}

One method of proof uses [[ultrafilter]] [[convergence]].
This is sometimes called "[Bourbaki's proof](#BourbakiGeneralTopology)", following [Cartan 37](#Cartan37).

#### First version

+-- {: .proof #UltrafilterProof}
###### Proof

Let $\langle X_\alpha \rangle_{\alpha \in A}$ be a family of compact spaces.

1. Every ultrafilter $U_\alpha$ on the underlying set of $X_\alpha$ converges to some point $x_\alpha$. (Consider the collection of all closed sets belonging to $U_\alpha$. Finite subcollections have nonempty intersection ([[finite intersection property]]), so by compactness the intersection of the collection is also nonempty ([this prop.](compact+space#fip)). Let $x_\alpha$ be a point belonging to that intersection. Every closed set disjoint from $x_\alpha$ belongs to the complement of $U_\alpha$, hence every open set containing $x_\alpha$ belongs to $U_\alpha$, i.e., $U_\alpha$ converges to $x_\alpha$.)

1. Let $U$ be an ultrafilter on $\prod_\alpha X_\alpha$. Since the set-of-ultrafilters construction $S \mapsto \beta S$ is [[functor]]ial, we have a push-forward ultrafilter $U_\alpha = \beta(\pi_\alpha)(U)$ on each $X_\alpha$, where $\pi_\alpha$ is a projection map. Choose a point $x_\alpha$ to which $U_\alpha$ converges. Then it is easily checked that $U$ converges to the point $\langle x_\alpha \rangle$ in the product space.

1. Since every ultrafilter $U$ on $\prod_\alpha X_\alpha$ converges to a point, the product is compact. (If it were not, then we could find a collection of nonempty closed sets whose intersection is empty, but closed under finite intersections. This collection generates a filter which is contained in some ultrafilter $U$, by the [[ultrafilter theorem]]. Since every ultrafilter $U$ converges to some $x$, it cannot contain any closed set in the complement of $x$, hence cannot contain some closed set in the original collection, contradiction.)

=--

+-- {: .num_remark #TyCH}
###### Remark

The [[axiom of choice]] is used in step 2 of the proof [abov](#UltrafilterProof), to combine the $x_\alpha$ into a single family $\langle x_\alpha \rangle$; if the $X_\alpha$ were Hausdorff, then the $x_\alpha$ would be unique, and we would not need the axiom of choice at this step.  The [[ultrafilter theorem]] is used in step 3, and this is the only other place where a choice principle is needed. In other words, working over a choice-free set theory like [[ZFC|ZF]] or even BZ (bounded Zermelo set theory), the ultrafilter principle (UF) implies Tychonoff's theorem for [[Hausdorff spaces]].

=--

#### Second version

[Bourbaki](#BourbakiGeneralTopology) gives an alternative proof using ultrafilters, which may be formulated in terms of categorical lifting/extension properties. For any set $X$ and ultrafilter $U$ on $X$, form a space $X_U$ whose underlying set is $X \sqcup \{\infty\}$ (adjoin an extra point $\infty$) and where a subset of $X \sqcup\{\infty\}$ is open iff it either does not contain $\infty$ or is of form $Z \sqcup\{\infty\}$ where $Z\in U$, i.e., is "big" according to the ultrafilter $U$. The inclusion of the set $X$ with its discrete topology into $X_U$ is a subspace inclusion.

+-- {: .num_theorem}
###### Theorem (Bourbaki)
A map $g: Y \to Z$ is [[proper map|proper]] if and only if it has the [[lifting property|right lifting property]] with respect to the inclusion $i: X \hookrightarrow X_U$ for any such pair $(X, U \in \beta(X))$ (in symbols: $i \rightthreetimes g$). In other words: iff for each commutative diagram

$$\array{
X & \to & Y \\
\mathllap{i} \downarrow & & \downarrow \mathrlap{g} \\
X_U & \to & Z
}$$

there is a lift $X_U \to Y$ making the evident triangles commute.
=--

+-- {: .num_remark}
###### Remark
Actually the topology on $X$ does not have to be discrete: the same result extends to any space $X$ and its inclusion into $X\sqcup\{\infty\}$ where we declare a subset in $X \sqcup \{\infty\}$ to be open iff it either does not contain $\infty$ and is open in $X$, or is of form $Z\sqcup\{\infty\}$
where $Z\in U$ is and $Z$ is open in $X$.
=--

A space $K$ is compact iff the map $K\longrightarrow \{*\}$ is proper. Thus to see that a product $\prod_{i \in I} Y_i$ of compact spaces is compact, it suffices to show that for any $(X, U)$ and any $f: X \to \prod_{i \in I} Y_i$, there is a continuous extension $\tilde{f}: X_U \to \prod_{i \in I} Y_i$. But (using the axiom of choice) this is clear from the universality property of the product: choose a continuous extension $\widetilde{\pi_i f}: X_U \to Y_i$ for each $\pi_i f: X \to Y_i$, and then assemble these into an extension

$$\tilde{f} \coloneqq \langle \widetilde{\pi_i f} \rangle_{i \in I}: X_U \to \prod_{i \in I} Y_i.$$

### Proof via Taimanov theorem and lifting properties
 {#ProofViaTaimanovTheoremAndLiftingProperties}

+-- {: .num_remark #Taimanov}
###### Remark

One can avoid mentioning ultrafilters altogether, at least for [[Hausdorff spaces]], using the [[Taimanov theorem]].

Call a map $f$ _ultrafilter-like_ iff $f$ has the [[left lifting property]] wrt each proper, equivalently closed,
map of [[finite topological spaces]]. The [[Taimanov theorem]] implies that a map $g$ of normal (T4) spaces is [[proper maps|proper]]
iff it has the [[lifting property]] $f \rightthreetimes g$ against each ultrafilter-like $f$.

Using notation explained just below,  this can expressed as follows:
The [[Taimanov theorem]] says that
a Hausdorff space $K$ is compact iff
$K\longrightarrow \{*\} \,\in\,  (\{\{a\}\longrightarrow \{a{\searrow}b\}\}^r_{\le 3})^{lr}$,
or in fact
 $$     \{\, \{a\leftrightarrow b\}\longrightarrow \{a=b\},\, \{a{\searrow}b\}\longrightarrow \{a=b\},\,
     \{b\}\longrightarrow \{a{\searrow}b\},\,\{a{\swarrow}o{\searrow}b\}\longrightarrow \{a=o=b\}\,\,\}^{lr}$$
For a property ${C}$ of arrows (morphisms) in a category, define

$$ C^l \coloneqq \left\{ {f} \colon \underset{g \in C}{\forall}\,{f} \,\rightthreetimes\,  {g} \right\}
$$

$$ C^r \coloneqq \left\{ {g} : \underset{f \in C}{\forall}\,{f} \,\rightthreetimes\,  {g} \right\} $$

$$ C^{lr} \coloneqq (C^l)^r, ... $$

here $f \,\rightthreetimes\,  g$ reads " $f$ has the left [[lifting property]] wrt $g$ ",
" $f$ is (left) orthogonal to $g$ ",
i.e.  for  $f:A\longrightarrow B$, $g:X\longrightarrow Y$,
$f \,\rightthreetimes\, g$ iff for each $i:A\longrightarrow X$, $j:B\longrightarrow Y$ such that $ig=fj$ ("the square commutes"),
there is $j':B\longrightarrow X$ such that $fj'=i$ and $j'g=j$ ("there is a diagonal
making the diagram commute").

Finally,
$$
  C_{\le n} := \{ {f} : {f} \in {C},\text{ both the domain and range of }f \text{ are finite of size less or equal than }\,n \}.
$$
and
$\{a\}\longrightarrow \{a{\searrow}b\}$ denotes the inclusion of the open point $a$ into the Sierpinski space $ \{a{\searrow}b\}$.
=--

These observations give rise to the following question.

+-- {: .num_remark #TaimanovQ}
###### Question
Question. Is $((\{a\}\longrightarrow \{a{\searrow}b\})^r_{\le 4})^{lr}$
the class of proper maps?
=--

Considerations above show that it is contained in the class of proper maps and that it contains proper maps between normal (T4) spaces (this is what gives the standard proof of the Taimanov theorem).

### Proof of converses

Now we will prove that Tychonoff's theorem implies the [[axiom of choice]], while Tychonoff's theorem for Hausdorff spaces implies the ultrafilter theorem.  This is done by judicious choice of examples.

**Tychonoff's theorem implies axiom of choice**: let $\{X_\alpha\}_{\alpha \in A}$ be a family of nonempty sets. Let $Y_\alpha$ be obtained by adjoining a point $p$ to $X_\alpha$. Topologize $Y_\alpha$ by taking the nontrivial open sets to be $X_\alpha$ and $\{p\}$. Then $Y_\alpha$ is compact; assuming Tychonoff, $Y = \prod_\alpha Y_\alpha$ is compact. For each $\alpha$, put

$$K_\alpha = \{y \in Y: y_\alpha \in X_\alpha\}$$

Then $K_\alpha$ is closed, and any finite intersection of the $K_\alpha$ is nonempty (use $p$ in all but finitely many components). Hence

$$\prod_\alpha X_\alpha = \bigcap_\alpha K_\alpha$$

is nonempty as well, by compactness. Thus the axiom of choice follows.

**Tychonoff's theorem for Hausdorff spaces implies ultrafilter theorem**: let $F$ be a filter on a set $X$, i.e., a filter in the Boolean algebra $P X$. An ultrafilter $U$ containing $F$ is tantamount to a Boolean algebra map $2^X \to 2$ which sends all of $F$ to $1$, or equivalently to a Boolean algebra map $\phi: B = 2^X/F \to 2$. Thus it suffices to prove the following result:

+-- {: .num_prop #nonempty}
###### Proposition
For every (non-terminal) Boolean algebra $B$, there exists a homomorphism $B \to 2$.
=--

+-- {: .proof}
###### Proof
Let $|B|$ denote the underlying set of $B$. The set of all functions $f: |B| \to 2$ is a $|B|$-indexed product of copies of $2$; considering $2$ as a compact Hausdorff space, this set is compact Hausdorff, assuming Tychonoff's theorem for Hausdorff spaces. For each finite subset $S \subseteq |B|$, let $K_S$ be the [[subspace]] of functions $f: |B| \to 2$ for which the equations

$$f(x \wedge y) = f(x) \wedge f(y) \qquad f(\neg x) = \neg f(x)$$

hold for all $x, y \in S$. As the space $2^{|B|}$ is Hausdorff, $K_S$ being defined by an equalizer is a closed subspace, and it is easy (and classical) that it is nonempty: the subalgebra $B(S) \subseteq B$ generated by $S$ is finite and in particular [[atom|atomic]] and thus admits a homomorphism $f: B(S) \to 2$ defined by $f(x) = 1$ iff $a \leq x$ for some given atom $a$, and then we can take $f(b) = 1$ for any $b$ outside $B(S)$. By compactness of $2^{|B|}$, the intersection of all the $K_S$ is nonempty, and this is precisely the set of Boolean algebra maps $\phi: B \to 2$.
=--

* This proof may be seen as a classical illustration of the [[compactness theorem]] for propositional logic. We may think of a Boolean algebra $B$ as a Lindenbaum algebra for a [[propositional logic|propositional]] [[theory]], and a Boolean algebra map $\phi: B \to 2$ as a [[model]] for that theory. A model exists iff a model exists for every theory generated by a finite subset of propositions, by the compactness theorem. In fact, the proof above suggests the topological provenance of the term "compactness theorem".

## Tychonoff's theorem for locales

Given the close connection between Tychonoff's theorems and choice principles, it may come as a surprise that Tychonoff's theorem for [[locales]] -- the product of a small collection of compact locales is compact, equivalently that the coproduct of a small collection of compact [[frames]] is compact -- may be proved without the [[axiom of choice]] and even [[constructive mathematics|constructively]].

More details to appear at [[Tychonoff theorem for locales]].

## Related theorems

* [[Tietze extension theorem]]

* [[Heine-Borel theorem]]

* [[topological invariance of dimension]]

* [[Brouwer's fixed point theorem]]

* [[Jordan curve theorem]]

## References
 {#References}

The statement of Tychonoff's theorem is made in

* {#Tychonoff35} [[A. N. Tychonoff]], p. 272 of _Ein Fixpunktsatz_, Mathematische Annalen, December 1935, Volume 111, Issue 1, pp 767–776

where he says that the proof is the same as the one he gave for a product of [[closed intervals]] in

* {#Tychonoff30} [[A. N. Tychonoff]],  _Über die topologische Erweiterung von Räumen_, Mathematische Annalen, December 1930, Volume 102, Issue 1, pp 544–561

An explicit proof was then given in

* [[Eduard Cech]], p. 830 of _On bicompact spaces_, Annals of Mathematics 38 (1937)

The proof using ultrafilters is due to

* [[Henri Cartan]], _Theorie des filtres_, Comptes Rendus de l'Acad. Sci. (Paris) 205 (1937), 595-598

and reproduced in

* {#BourbakiGeneralTopology} [[Bourbaki]], _General Topology_, I\S10.2, Thm.1(d), p.101

whence often known as "Bourbaki's proof".

* {#Cartan37} [[Henri Cartan]], _Filtres et ultrafiltres_, Comptes Rendus de l'Acad. Sci. (Paris) 205 (1937), 777-779.

and its modern version is due to

* [[John Kelley]], _Convergence in topology_, Duke Math. J. 17 (1950), 277-283.

The proof using convergence of nets is due to

* {#Chernoff92} Paul R. Chernoff, _A Simple Proof of Tychonoff's Theorem Via Nets_,  The American Mathematical Monthly Vol. 99, No. 10 (Dec., 1992), pp. 932-934 ([jstor](http://www.jstor.org/stable/2324485))

See also

* Wikipedia, _[Tychonoff's theorem](https://en.wikipedia.org/wiki/Tychonoff%27s_theorem)_

[[!redirects Tihonov's theorem]]
[[!redirects Tihonov theorem]]
[[!redirects Tihonov's topology]]
[[!redirects The Tychonoff theorem]]