<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [
<!ENTITY delta  "&#x03b4;">
<!ENTITY nbsp   "&#x00a0;">
<!ENTITY emsp   "&#x00a0;&#x00a0;">
<!ENTITY hArr   "&#x21d4;">
<!ENTITY rArr   "&#x21d2;">
<!ENTITY rarr   "&#x2192;">
<!ENTITY ne     "&#x2260;">
<!ENTITY isin   "&#x2208;">
<!ENTITY notin  "&#x2209;">
<!ENTITY times  "&#x00d7;">
<!ENTITY lambda "&#x03bb;">
<!ENTITY forall "&#x2200;">
<!ENTITY exist  "&#x2203;">
<!ENTITY cap    "&#x2229;">
<!ENTITY cup    "&#x222a;">
<!ENTITY equiv  "&#x2261;">
<!ENTITY copy   "&#x00a9;">
<!ENTITY naturals  "&#x2115;">
<!ENTITY integers  "&#x2124;">
<!ENTITY rationals "&#x211a;">
<!ENTITY reals     "&#x211d;">
<!ENTITY def       "&#x225d;">
<!ENTITY inf       "O">
<!ENTITY suma      "&#x2295;">
<!ENTITY algebraic "<span style='border-top:thin solid'>&#x211a;</span>">
<!ENTITY cuerpoFinito "F">
<!ENTITY modulos "&#x2124;">
<!ENTITY complex   "&#x2102;">
]>


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Curvas elípticas</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link rel="stylesheet" type="text/css" href="ecc.css"/>
    <script type="text/javascript">
        //definición de cadenas constantes en vez de entidades XML (ya que el archivo externo .js no las acepta)
            ENTITY_nbsp = "&nbsp;"
            ENTITY_isin = "&isin;"
            ENTITY_cup  = "&cup;"
            ENTITY_equiv= "&equiv;"
            ENTITY_integers="&integers;"
            ENTITY_reals= "&reals;"
            ENTITY_inf  = "&inf;"
            ENTITY_suma = "&suma;"
            ENTITY_emsp = "&emsp;"
            ENTITY_dot = "·"
            
        //cadenas escritas en el idioma de la página (para localización)
            LOCAL_NoPuedeSerMenorQue = "El valor no puede ser menor que ";
            LOCAL_NoPuedeSerMayorQue = "El valor no puede ser mayor que ";
            LOCAL_NoEsPrimo = " no es un número primo."
            LOCAL_SubgrupoCiclico= "Subgrupo cíclico de "
            LOCAL_Elemento = " elemento"
            LOCAL_ElementosCiclo = "elementos del ciclo"
            LOCAL_Generador = "generador"
            LOCAL_tieneEntre = "tiene entre"
            LOCAL_y = "y"
            LOCAL_elementos= "elementos"
            LOCAL_cerrar="cerrar"
            
            esNavegadorOpera = false    </script>
    <script src="ecc.js" type="text/javascript"/>
</head>





<body style="margin:0px" onload="PUNTO_DE_ENTRADA()">
<titulo>Curvas elípticas</titulo>
    <table>
        <tr><td>
            <menu>
                <item><a href="#propiedades">Propiedades generales</a></item>
                    <item2><a href="#E_grupo">E(K) como grupo</a></item2>
                <item><a href="#ER">E(&reals;)</a></item>
                    <item2><a href="#ER_propiedades">Propiedades</a></item2>
                    <item2><a href="#ER_interpretación_geométrica">Interpretación operación de grupo</a></item2>
                    <item2><a href="#ER_interactivo">E(&reals;) interactivo</a></item2>
                <item><a href="#EFp">E(&modulos;<sub><mi>p</mi></sub>)</a></item>
                    <item2><a href="#EFp_propiedades">Propiedades</a></item2>
                    <item2><a href="#EFp_interactivo">E(&integers;<sub><mi>p</mi></sub>) interactivo</a></item2>
            </menu>
            </td>
            <td style="padding:1mm 1mm 1mm 5mm">
                <t2>Dado un                    <infoLink onclick="showInfo(this,'info_Cuerpo')">cuerpo</infoLink> (K,+,·)
                    [denotado normalmente solo por K],
                    una <ti2>curva elíptica</ti2> sobre K  [denotada por E(K)] es el conjunto de ...                    <ul><li>{(<mi>x</mi>,<mi>y</mi>) &isin; K<sup>2</sup> | p(<mi>x</mi>,<mi>y</mi>)=0},
                            donde "p" es un polinomio de grado 3 cuyos coeficientes pertenecen a K, y que no tiene ningún                            <infoLink onclick="showInfo(this,'info_puntoSingular')">punto singular</infoLink>
                            <em>(vértice, o intersección con ella misma)</em>
                        </li>
                        &cup;
                        <li>&inf; <em>(llamado "infinito")</em> &notin; K<sup>2</sup>
                        </li>
                    </ul>
                </t2>
                <br/>
                <t2>K puede ser un conjunto infinito                    (<infoLink onclick="showInfo(this,'info_Q')">&rationals;</infoLink>,
                    <infoLink onclick="showInfo(this,'info_R')">&reals;</infoLink>,
                    <infoLink onclick="showInfo(this,'info_C')">&complex;</infoLink>, ...)
                    o finito                    (<infoLink onclick="showInfo(this,'info_Fq')">&cuerpoFinito;<sub><mi>q</mi></sub></infoLink>)
                    [como <infoLink onclick="showInfo(this,'info_Zn')">&modulos;<sub><mi>p</mi></sub></infoLink>,
                    con <mi>p</mi> primo]
                    .
                    <br/>Nota:: K no puede ser                        <infoLink onclick="showInfo(this,'info_N')">&naturals;</infoLink>,
                        <infoLink onclick="showInfo(this,'info_Z')">&integers;</infoLink>,
                        o &modulos;<sub><mi>p</mi></sub> [<mi>p</mi> no primo]
                        porque no son cuerpos (no tienen inverso multiplicativo).
                </t2>
            </td>
        </tr>
    </table>

<apartado id="propiedades">Propiedades generales</apartado>
    <n2><ul><li>Una "recta" {(<mi>x</mi>,<mi>y</mi>)&isin;K<sup>2</sup> | <mi>p</mi>·<mi>x</mi>+<mi>q</mi>·<mi>y</mi>=<mi>r</mi>; <mi>p</mi>,<mi>q</mi>,<mi>r</mi>&isin;K}
                no corta a E(K) en más de 3 puntos.
                <boton class="demo" idRef="demo0" collapsed=""/>
                <Demo id="demo0">Demo: 
                    Esa recta se puede poner como                    <mi>x</mi>=<mi>m</mi>·<mi>y</mi>+<mi>n</mi> (si <mi>p</mi>&ne;0)
                    o <mi>y</mi>=<mi>m</mi>·<mi>x</mi>+<mi>n</mi> (si <mi>q</mi>&ne;0).
                    Sustituyendo cualquiera de esas 2 expresiones en                    p(<mi>x</mi>,<mi>y</mi>)=0
                    queda una ecuación en la otra incógnita de grado 3 o menor.
                    <br/>
                    Por el <a href="http://es.wikipedia.org/wiki/Teorema_fundamental_del_%C3%A1lgebra">teorema fundamental del álgebra</a>,
                        esa ecuación tendrá tantas soluciones como el grado de la ecuación 
                        (si K es un cuerpo algebraicamente cerrado), o menos (si no lo es).
                </Demo>
            </li>
            <br/>
            <li>Si el cuerpo K no tiene característica 2 (como &integers;<sub>2</sub>) ni 3 (como &integers;<sub>3</sub>)                &rArr; existe un cambio de coordenadas en el cual                p(<mi>x</mi>,<mi>y</mi>)=0 se transforma en                <Formula>
                    <mi>y</mi><sup><mn>2</mn></sup> <mo>=</mo> <mi>x</mi><sup><mn>3</mn></sup> <mo>+</mo> <mi>a</mi><mo>·</mo><mi>x</mi>
                    <mo>+</mo> <mi>b</mi> 
                </Formula>
                (<a href="http://planetmath.org/encyclopedia/WeierstrassEquationOfAnEllipticCurve.html">forma normal de Weierstrass</a>)
                <t1>En la forma normal, E(K) viene determinado por el par                    (<mi>a</mi>,<mi>b</mi>)&isin;K<sup>2</sup>. &emsp;
                    E<sub><mi>a</mi>,<mi>b</mi></sub>(K) = { (<mi>x</mi>,<mi>y</mi>)&isin;K<sup>2</sup> | <mi>y</mi><sup>2</sup>=<mi>x</mi><sup>3</sup>+<mi>a</mi>·<mi>x</mi>+<mi>b</mi> }  &cup; {&inf;}
                </t1>
                Propiedades:
                <ul><li>E<sub><mi>a</mi>,<mi>b</mi></sub> es una curva elíptica                        &rArr; <Formula>4<mi>a</mi><sup>3</sup> +27<mi>b</mi><sup>2</sup> &ne; 0</Formula>
                        <boton class="demo" idRef="demo5" collapsed=""/>
                        <Demo id="demo5">Demo: Curva elíptica &rArr; no hay puntos singulares.<br/>Un punto singular                            (<mi>p</mi>,<mi>q</mi>)
                            es tal que                            f(x)&def; <mi>x</mi><sup>3</sup> + <mi>a</mi>·<mi>x</mi> + <mi>b</mi> - <mi>y</mi><sup><mi>2</mi></sup>
                            cumple                            <ul><li>f(<mi>p</mi>,<mi>q</mi>) = <mi>p</mi><sup>3</sup> + <mi>a</mi>·<mi>p</mi> + <mi>b</mi> - <mi>q</mi><sup><mi>2</mi></sup> = 0</li>
                                <li><math xmlns="http://www.w3.org/1998/Math/MathML">
                                        <mfrac><mrow>&part;f</mrow><mrow>&part;<mi>x</mi></mrow></mfrac>(<mi>p</mi>,<mi>q</mi>) 
                                    </math> = 3·<mi>p</mi><sup>2</sup> + <mi>a</mi> = 0
                                    &emsp;&rArr;
                                    <math xmlns="http://www.w3.org/1998/Math/MathML">
                                        <mi>p</mi> = <msqrt><mfrac><mrow>-<mi>a</mi></mrow><mn>3</mn></mfrac></msqrt>
                                    </math>
                                </li>
                                <li><math xmlns="http://www.w3.org/1998/Math/MathML">
                                        <mfrac><mrow>&part;f</mrow><mrow>&part;<mi>y</mi></mrow></mfrac>(<mi>p</mi>,<mi>q</mi>) 
                                    </math> = -2<mi>q</mi> = 0
                                    &emsp;&rArr; <mi>q</mi> = 0
                                </li>
                            </ul>
                            Sustituyendo el <mi>p</mi> y <mi>q</mi> de las 2 últimas en la primera, tenemos que                            <math xmlns="http://www.w3.org/1998/Math/MathML">
                                0 = <mfrac> <msup><mrow>(-<mi>a</mi>)</mrow><mn>3/2</mn></msup> <msup><mn>3</mn><mn>3/2</mn></msup> </mfrac>
                                + <mi>a</mi>·<msqrt><mfrac><mrow>-<mi>a</mi></mrow><mn>3</mn></mfrac></msqrt>
                                + <mi>b</mi> =
                                <mfrac> <msup><mrow>(-<mi>a</mi>)</mrow><mn>3/2</mn></msup> <msup><mn>3</mn><mn>3/2</mn></msup> </mfrac>
                                - 3 <mfrac> <msup><mrow>(-<mi>a</mi>)</mrow><mn>3/2</mn></msup> <msup><mn>3</mn><mn>3/2</mn></msup> </mfrac>
                                + <mi>b</mi> =
                                - 2 <mfrac> <msup><mrow>(-<mi>a</mi>)</mrow><mn>3/2</mn></msup> <msup><mn>3</mn><mn>3/2</mn></msup> </mfrac>
                                + <mi>b</mi>
                            </math>
                            <br/>&rArr;
                            <math xmlns="http://www.w3.org/1998/Math/MathML">
                                2 <mfrac> <msup><mrow>(-<mi>a</mi>)</mrow><mn>3/2</mn></msup> <msup><mn>3</mn><mn>3/2</mn></msup> </mfrac>
                                = <mi>b</mi>
                            </math>
                            &emsp;&rArr;&emsp; 2 (-<mi>a</mi>)<sup>3/2</sup> = 3<sup>3/2</sup> <mi>b</mi>
                            &emsp;&rArr;&emsp; -4 <mi>a</mi><sup>3</sup> = 27 <mi>b</mi><sup>2</sup>
                            &emsp;&rArr;&emsp; 4 <mi>a</mi><sup>3</sup> + 27 <mi>b</mi><sup>2</sup> = 0
                        </Demo>
                    </li>
                    <li>En un cuerpo algebraicamente cerrado (como &complex; o                        <infoLink onclick="showInfo(this,'info_Algebraicos')">&algebraic;</infoLink>),
                        una "recta" <mi>x</mi>=constante corta a E(K) en 2 puntos, y otra recta cualquiera lo corta en 3 puntos                        <br/>
                        Si el cuerpo no es algebraicamente cerrado (como                        &rationals;, &reals;,
                        o un cuerpo finito), la puede cortar menos veces                        <boton class="demo" idRef="demo1" collapsed=""/>
                        <Demo id="demo1">Demo:
                            <ul><li>Recta <mi>x</mi>=constante : Sustituyendo en la ecuación de E(K) da
                                        <mi>y</mi><sup>2</sup>=constante, que tiene 2 raíces en un cuerpo algebraicamente cerrado
                                        según el <a href="http://en.wikipedia.org/wiki/Teorema_fundamental_del_algebra">teorema fundamental del álgebra</a>
                                        (si <mi>y</mi>=0 tiene una raíz doble)                                </li>
                                <li>Otra recta puede escribirse                                    <mi>y</mi>=<mi>m</mi>·<mi>x</mi>+<mi>n</mi>.
                                    Sustituyéndolo en la ecuación de E(K) sale                                    (<mi>m</mi>·<mi>x</mi>+<mi>n</mi>)<sup>2</sup> = <mi>x</mi><sup>3</sup> + <mi>a</mi>·<mi>x</mi> + <mi>b</mi>
                                    (polinomio de grado 3 &rArr; 3 raíces en un cuerpo algebraicamente cerrado)                                </li>
                            </ul>
                        </Demo>
                    </li>
                    <li>E(K)&cap;K<sup>2</sup> simétrico respecto al eje <mi>y</mi>=0                        <boton class="demo" idRef="demo3" collapsed=""/>
                        <Demo id="demo3">Demo: 
                            (<mi>x</mi>,<mi>y</mi>) &isin; E(K)&cap;K<sup>2</sup>
                            &rArr; <mi>y</mi><sup>2</sup>=<mi>x</mi><sup>3</sup>+<mi>a</mi>·<mi>x</mi>+<mi>b</mi>
                            &rArr; (-<mi>y</mi>)<sup>2</sup>=<mi>x</mi><sup>3</sup>+<mi>a</mi>·<mi>x</mi>+<mi>b</mi>
                            &rArr; (<mi>x</mi>,-<mi>y</mi>) &isin; E(K)&cap;K<sup>2</sup>
                        </Demo>
                    </li>
                </ul>
            </li>
        </ul>
        <br/>
        A partir de ahora, las curvas elípticas las tomaremos en su forma normal de Weiersstrass.
    </n2>


<seccion id="E_grupo">E(K) como grupo</seccion>
    <div style="display:table; border:thin solid blue; margin-left:40px">
        Definiendo la operación interna en E(K)
            &emsp;&suma; : E(K)&times;E(K)&rarr;E(K)
        &emsp; tal que &forall;P,Q&isin;E(K) , ...
        <ul n1="">
            <li>P &suma; &inf; &def; P</li>
            <li>&inf; &suma; P &def; P</li>
            <li>P=(<mi>x<sub>P</sub></mi>,<mi>y<sub>P</sub></mi>) &isin; K<sup>2</sup> ;
                Q=(<mi>x<sub>Q</sub></mi>,<mi>y<sub>Q</sub></mi>) &isin; K<sup>2</sup> &rArr;
                <ul><li>Si (<mi>x<sub>P</sub></mi>,<mi>y<sub>P</sub></mi>) = (<mi>x<sub>Q</sub></mi>,-<mi>y<sub>Q</sub></mi>)
                        &rArr; P&suma;Q &def; &inf;
                        &emsp; Nota: Si P&suma;Q=&inf;, we can define -P&def;Q , o bien -Q&def;P
                    </li>
                    <li>resto (<mi>x<sub>P</sub></mi>&ne;<mi>x<sub>Q</sub></mi>, ó P=Q)
                        &rArr; P&suma;Q &def; (<mi>x<sub>R</sub></mi>,<mi>x<sub>R</sub></mi>),
                        con                        <math xmlns="http://www.w3.org/1998/Math/MathML">
                            <mrow>
                                <mo>{</mo>
                                <mtable>
                                    <mtr><mtd columnalign="left"><mi><msub><mi>x</mi><mn>R</mn></msub></mi> = <msup><mi>λ</mi><mn>2</mn></msup> − <mi><msub><mi>x</mi><mn>P</mn></msub></mi> − <mi><msub><mi>x</mi><mn>Q</mn></msub></mi></mtd></mtr>
                                    <mtr><mtd columnalign="left"><mi><msub><mi>y</mi><mn>R</mn></msub></mi> = <mi>λ</mi>(<mn>2</mn><mi><msub><mi>x</mi><mn>P</mn></msub></mi> + <mi><msub><mi>x</mi><mn>Q</mn></msub></mi> − <msup><mi>λ</mi><mn>2</mn></msup>) − <mi><msub><mi>y</mi><mn>P</mn></msub></mi></mtd></mtr>
                                </mtable>
                            </mrow>
                        </math>
                        donde                        <math xmlns="http://www.w3.org/1998/Math/MathML">
                            <mstyle displaystyle="true">
                                <mi>&lambda;</mi> = <mo>{</mo>
                                <mtable>
                                    <mtr><mtd>
                                        <mfrac>
                                            <mrow><mi><msub><mi>y</mi><mn>Q</mn></msub></mi>-<mi><msub><mi>y</mi><mn>P</mn></msub></mi></mrow>
                                            <mrow><mi><msub><mi>x</mi><mn>Q</mn></msub></mi>-<mi><msub><mi>x</mi><mn>P</mn></msub></mi></mrow>
                                        </mfrac> si P&ne;Q
                                    </mtd></mtr>
                                    <mtr><mtd>
                                        <mfrac>
                                            <mrow><mn>3</mn><msup><mi><msub><mi>x</mi><mn>P</mn></msub></mi><mn>2</mn></msup>+<mi>a</mi></mrow>
                                            <mrow><mn>2</mn><mi><msub><mi>y</mi><mn>P</mn></msub></mi></mrow>
                                        </mfrac> si P=Q
                                    </mtd></mtr>
                                </mtable>
                            </mstyle>
                        </math>
                    </li>
                </ul>
            </li>
        </ul>
        &rArr; <strong>(E(K) , &suma;) es un grupo conmutativo</strong>
    </div>
    <br/>

    <n4><boton text="Ejemplo " idRef="ejemplo1" collapsed=""/>
        <Ejemplo id="ejemplo1" style="margin-left:20px">
            <t1>Ejemplo: Sea E(<infoLink onclick="showInfo(this,'info_Zn')">&modulos;<sub>5</sub></infoLink>) =
                { (<mi>y</mi>,<mi>y</mi>) &isin; &integers;<sub>5</sub>&times;&integers;<sub>5</sub>
                | <mi>y</mi><sup>2</sup> = <mi>x</mi><sup>3</sup> - <CM2><mn>4</mn><mn>5</mn></CM2>·<mi>x</mi> + <CM2><mn>1</mn><mn>5</mn></CM2> }
                &cup; {&inf;}
            </t1>
            <ul n0="">
                <li>P=(<CM2><mn>0</mn><mn>5</mn></CM2>,<CM2><mn>1</mn><mn>5</mn></CM2>) ,
                    Q=(<CM2><mn>4</mn><mn>5</mn></CM2>,<CM2><mn>3</mn><mn>5</mn></CM2>) &isin; E(&integers;<sub>5</sub>)
                    &emsp;
                    <math xmlns="http://www.w3.org/1998/Math/MathML">
                        <mstyle displaystyle="true">
                            &lambda; =
                            <mfrac>
                                <mrow><mover><mn>3</mn><mn>_</mn></mover>-<mover><mn>1</mn><mn>_</mn></mover></mrow>
                                <mrow><mover><mn>4</mn><mn>_</mn></mover>-<mover><mn>0</mn><mn>_</mn></mover></mrow>
                            </mfrac>
                            = <mfrac><mover><mn>2</mn><mn>_</mn></mover> <mover><mn>4</mn><mn>_</mn></mover></mfrac>
                            = <mover><mn>4</mn><mn>_</mn></mover>·<mover><mn>2</mn><mn>_</mn></mover>
                            = <mover><mn>3</mn><mn>_</mn></mover>
                        </mstyle>
                    </math> ,
                    se ha tenido en cuenta que <CM2><mn>4</mn><mn>5</mn></CM2><sup>-1</sup>=<CM2><mn>4</mn><mn>5</mn></CM2>
                    <br/>&rArr; <mi>x<sub>R</sub></mi> = 
                            <CM2><mn>3</mn><mn>5</mn></CM2>·<CM2><mn>3</mn><mn>5</mn></CM2>
                            - <CM2><mn>0</mn><mn>5</mn></CM2> - <CM2><mn>4</mn><mn>5</mn></CM2>
                            = <CM2><mn>0</mn><mn>5</mn></CM2>
                        &nbsp; ; &nbsp;
                        <mi>y<sub>R</sub></mi> = <CM2><mn>3</mn><mn>5</mn></CM2> ·
                            (<CM2><mn>2</mn><mn>5</mn></CM2>·<CM2><mn>0</mn><mn>5</mn></CM2>
                            + <CM2><mn>4</mn><mn>5</mn></CM2>
                            - <CM2><mn>3</mn><mn>5</mn></CM2>·<CM2><mn>3</mn><mn>5</mn></CM2>)
                            - <CM2><mn>1</mn><mn>5</mn></CM2>
                            = <CM2><mn>4</mn><mn>5</mn></CM2>
                    &nbsp; &rArr; &nbsp; P&suma;Q = (<CM2><mn>0</mn><mn>5</mn></CM2>,<CM2><mn>1</mn><mn>5</mn></CM2>)
                        &suma; (<CM2><mn>4</mn><mn>5</mn></CM2>,<CM2><mn>3</mn><mn>5</mn></CM2>)
                        = (<CM2><mn>0</mn><mn>5</mn></CM2>,<CM2><mn>4</mn><mn>5</mn></CM2>)
                        &isin; E(&integers;<sub>5</sub>)
                </li>
                <li>P=(<CM2><mn>4</mn><mn>5</mn></CM2>,<CM2><mn>2</mn><mn>5</mn></CM2>) ,
                    Q=(<CM2><mn>4</mn><mn>5</mn></CM2>,<CM2><mn>3</mn><mn>5</mn></CM2>) &isin; E(&integers;<sub>5</sub>)
                    &emsp;&rArr;
                    P&suma;Q = &inf; &emsp; 
                    porque                    <mi>x<sub>P</sub></mi>=<mi>x<sub>Q</sub></mi>=<CM2><mn>4</mn><mn>5</mn></CM2>, &emsp;y&emsp;
                    <CM2><mn>2</mn><mn>5</mn></CM2> = -<CM2><mn>3</mn><mn>5</mn></CM2>
                </li>
            </ul>
        </Ejemplo>
    </n4>



<apartado id="ER">E(<infoLink onclick="showInfo(this,'info_R')">&reals;</infoLink>)</apartado>

<seccion id="ER_propiedades">Propiedades</seccion>
<n2><ul><li>E(&reals;) tiene infinitos puntos</li>
        <li>E(&reals;) tiene puntos con cualquier <mi>y</mi>, pero no con cualquier <mi>x</mi>        </li>
        <li>El número de elementos de E(&reals;) con cierto valor de la coordenada <mi>y</mi> depende del valor de            <math xmlns="http://www.w3.org/1998/Math/MathML">
                &delta;(<mi>y</mi>) = 4 <msup><mi>a</mi><mn>3</mn></msup> + 27 
                <msup>
                    <mfenced>
                        <mrow><mi>b</mi> - <msup><mi>y</mi><mn>2</mn></msup></mrow>
                    </mfenced>
                    <mn>2</mn>
                </msup>
                <mrow>
                    <mo>{</mo>
                    <mtable columnalign="left" style="font-size:smaller">
                        <mtr><mtd>&lt;0</mtd> <mtd>&rarr; 3</mtd></mtr>
                        <mtr><mtd>=0</mtd> <mtd>&rarr; 2</mtd></mtr>
                        <mtr><mtd>&gt;0</mtd> <mtd>&rarr; 1</mtd></mtr>
                    </mtable>
                </mrow>
            </math>
            <center>
                <table class="layout" style="margin:0">
                    <caption>Curvas elípticas para diferentes valores de <mi>a</mi>.
                        <em>(todas tienen el mismo <mi>b</mi>)</em> &emsp;
                        [<boton text="Colores empleados " idRef="coloresGraficas" collapsed=""/>]
                        <Ejemplo id="coloresGraficas" style="margin-left:20px">
                            Colores de las gráficas:
                            <ul style="font-size:smaller">
                                <li>Fondo blanco &rarr; &delta;(<mi>y</mi>) &gt; 0 &rArr; 1 valor distinto de <mi>x</mi></li>
                                <li>Fondo marrón &rarr; &delta;(<mi>y</mi>) &lt; 0 &rArr; 3 valores distintos de <mi>x</mi></li>
                                <li>Linea discontínua &rarr; <math xmlns="http://www.w3.org/1998/Math/MathML"><mi>y</mi>=&plusmn;<msqrt><mi>b</mi></msqrt></math></li>
                            </ul>
                        </Ejemplo>
                    </caption>
                    <tr><th>a &gt; 0</th>   <th>a = 0</th>
                        <th colspan="4">a &lt; 0</th>
                    </tr>
                    <tr><td><canvas id="ej1" class="ejemplos" width="120px" height="120px"></canvas></td>
                        <td><canvas id="ej2" class="ejemplos" width="120px" height="120px"></canvas></td>
                        <td><canvas id="ej3" class="ejemplos" width="120px" height="120px"></canvas></td>
                        <td><canvas id="ej4" class="ejemplos" width="120px" height="120px"></canvas></td>
                        <td><canvas id="ej5" class="ejemplos" width="120px" height="120px"></canvas></td>
                        <td><canvas id="ej6" class="ejemplos" width="120px" height="120px"></canvas></td>
                    </tr>
                    <tr><th colspan="4">&delta;(0) &gt; 0</th>
                        <th style="text-align:center; border-right:thin solid">&delta;(0) = 0</th>
                        <th style="text-align:center">&delta;(0) &lt; 0</th>
                    </tr>
                </table>
            </center>
        </li>
        <li><math xmlns="http://www.w3.org/1998/Math/MathML">
                4 <msup><mi>a</mi><mn>3</mn></msup> + 27 <msup><mi>b</mi><mn>2</mn></msup>
                <mrow>
                    <mo>{</mo>
                    <mtable columnalign="left" style="font-size:smaller">
                        <mtr><mtd>&gt;0</mtd> <mtd>&rarr; E(&reals;) simplemente conexo</mtd></mtr>
                        <mtr><mtd>=0</mtd> <mtd>&rarr; E(&reals;) no es una curva elíptica</mtd></mtr>
                        <mtr><mtd>&lt;0</mtd> <mtd>&rarr; E(&reals;) no es simplemente conexo</mtd></mtr>
                    </mtable>
                </mrow>
            </math>
            <boton class="demo" idRef="demo2" collapsed=""/>
            <Demo id="demo2">Demo: <mi>y</mi><sup>2</sup> = <mi>x</mi><sup>3</sup> + <mi>a</mi>·<mi>x</mi> + <mi>b</mi>
                &emsp;&rArr;&emsp;
                <math xmlns="http://www.w3.org/1998/Math/MathML">
                    <mi>y</mi> = <msqrt> <msup><mi>x</mi><mn>3</mn></msup> + <mi>a</mi>·<mi>x</mi> + <mi>b</mi> </msqrt>
                </math>
                &emsp;
                es una función continua cuando está definida, por lo que las discontinuidades hay que buscarlas donde no lo está, que es cuando                <mi>x</mi><sup>3</sup> + <mi>a</mi>·<mi>x</mi> + <mi>b</mi> &lt; 0.
                <t1>Aquellos puntos en los que <mi>y</mi><sup>2</sup> = <mi>x</mi><sup>3</sup>+<mi>a</mi>·<mi>x</mi>+<mi>b</mi> = 0
                    dividen &reals; en intervalos en los que el signo de <mi>x</mi><sup>3</sup>+<mi>a</mi>·<mi>x</mi>+<mi>b</mi>
                    no cambia (por ser esta una función continua en <mi>x</mi>), aunque alterna de un intervalo al siguiente.
                </t1>
                <t1>Según el apartado anterior, &delta;(<mi>y</mi>=0) = 4<mi>a</mi><sup>3</sup> + 27<mi>b</mi><sup>2</sup> ...
                    <ul><li>&gt; 0 &rArr; solo hay un valor de <mi>x</mi> para <mi>y</mi>=0,
                            que divide &reals; en 2 intervalos:
                            Uno sin puntos de E(&reals;), y otro en el que E(&reals;) es continua y conexa                        </li>
                        <li>&lt; 0 &rArr; 3 valores de <mi>x</mi> para <mi>y</mi>=0,
                            que dividen &reals; en 4 intervalos:
                            En 2 E(&reals;) es continua, pero están separados por otro en el que E(&reals;) no tiene soluciones                            &rArr; E(&reals;) está separado en 2 trozos                        </li>
                    </ul>
                </t1>
            </Demo>
        </li>
    </ul>
</n2>

<seccion id="ER_interpretación_geométrica">Interpretación geométrica de la operación del grupo</seccion>
<n4>Se basa en la propiedad de que ninguna recta corta a E(&reals;) en más de 3 puntos.
    <br/>En adelante tomaremos 3 puntos P,Q,R &isin; E(&reals;)    <ul class="n2">
        <li><strong>P, Q y R en la misma recta</strong>
            <table>
                <tr><td><canvas id="interpreta1" class="ejemplos" width="120px" height="120px"></canvas></td>
                    <td><strong>P &suma; Q &suma; R = &inf;</strong> &emsp;&hArr;&emsp; -R = P&suma;Q  &emsp;&hArr;&emsp; -Q = P&suma;R  &emsp;&hArr;&emsp; -P = Q&suma;R
                        <boton class="demo" idRef="demo7" collapsed=""/>
                        <Demo id="demo7">
                            Las 3 últimas equivalencias son evidentes a partir del segundo resultado.
                                <br/>La primera igualdad se deduce a partir de la definición de &suma; teniendo en cuenta todos los casos posibles
                                y que los puntos han de cumplir la ecuación de la curva elíptica.
                        </Demo>
                    </td>
                </tr>
            </table>
        </li>
        <li>Si la recta es tangente a E(&reals;) en P &rArr; solo cortará a E(&reals;) en 2 puntos &rArr; se puede considerar un caso particular del anterior en el que P=Q
            <table>
                <tr><td><canvas id="interpreta2" class="ejemplos" width="120px" height="120px"></canvas></td>
                    <td class="ejemplo"><strong>2P &suma; R = &inf;</strong> &emsp; &hArr; &emsp; 2P &suma; = -R  &emsp; &hArr; &emsp; P &suma; R = -P</td>
                </tr>
            </table>
        </li>
        <li>&inf; es un punto situado en el infinito verticalmente hacia arriba o hacia abajo            <table>
                <tr><td><canvas id="interpreta3" class="ejemplos" width="120px" height="120px"></canvas></td>
                    <td class="ejemplo"><strong>P &suma; -P &suma; &inf; = &inf;</strong> &emsp; &hArr; &emsp; P &suma; -P = &inf; &emsp; &hArr; &emsp; P &suma; &inf; = P</td>
                </tr>
            </table>
        </li>
    </ul>
</n4>


<seccion id="ER_interactivo">E(&reals;) interactivo</seccion>
    
    <table class="layoutInteractivo">
        <tr><td><panelInput>
                    <t2><ti2>Parámetros de E(&reals;)</ti2></t2>
                        <t3><label><mi>a</mi> = <input type="text" maxlength="4" size="3" id="a1" onchange="a1=cambioTextInput(this, a1,-100,100,validoReal); if (inputCambiado) calculaInteractivaER();" onkeypress="soloAdmiteDigitos(event,true)"/></label></t3>
                        <t3><label><mi>b</mi> = <input type="text" maxlength="4" size="3" id="b1" onchange="b1=cambioTextInput(this, b1,-100,100,validoReal); if (inputCambiado) calculaInteractivaER();" onkeypress="soloAdmiteDigitos(event,true)"/></label></t3>
                    <br/>
                    <t2><ti2>Qué dibujar</ti2></t2>
                        <t3><label><input type="checkbox" id="grid1" onchange="dibujarGrid=this.checked; dibujaER()"/> Dibujar malla</label></t3>
                        <t3><label><input type="checkbox" id="ejes1" onchange="dibujarEjes=this.checked; dibujaER()"/> Dibujar ejes</label></t3>
                        <t3><label style="font-size:smaller"><input type="checkbox" id="solucionesEnteras1" onchange="dibujarSolucionesEnteras=this.checked; dibujaER()"/> Dibujar soluciones enteras</label></t3>
                        <t3><label style="font-size:smaller"><input type="checkbox" id="caracteristicasCurva1" onchange="dibujarCaracteristicasCurva=this.checked; dibujaER()"/> Marcar los valores de <mi>y</mi> con 3 soluciones en <mi>x</mi></label></t3>
                    <br/>
                    <t2><ti2>Escala</ti2></t2>
                        <t3><mi>x</mi> &isin; [<input type="text" maxlength="4" size="3" id="xMin" onchange="xMin=cambioTextInput(this, xMin,-100,xMax-1,validoReal); if (inputCambiado) { cambiaVistaER(); dibujaER(); }" onkeypress="soloAdmiteDigitos(event,true)"/> ,
                            <input type="text" maxlength="4" size="3" id="xMax" onchange="xMax=cambioTextInput(this, xMax, xMin+1,100,validoReal); if (inputCambiado) { cambiaVistaER(); dibujaER(); }" onkeypress="soloAdmiteDigitos(event,true)"/>]
                        </t3>
                        <t3><mi>y</mi> &isin;
                            [<input type="text" maxlength="4" size="3" id="yMin" onchange="yMin=cambioTextInput(this, yMin,-100,yMax-1,validoReal); if (inputCambiado) { cambiaVistaER(); dibujaER(); }" onkeypress="soloAdmiteDigitos(event,true)"/> ,
                            <input type="text" maxlength="4" size="3" id="yMax" onchange="yMax=cambioTextInput(this, yMax, yMin+1,100,validoReal); if (inputCambiado) { cambiaVistaER(); dibujaER(); }" onkeypress="soloAdmiteDigitos(event,true)"/>]
                        </t3>
                </panelInput>
                <br/>
                <panelExplicativo>
                    <t2>Selecciona los elementos P/Q pulsando con el botón derecho/izquierdo del ratón sobre un elemento de la curva.</t2>
                    <t2>Para borrar los elementos seleccionados, cambia los parámetros (<mi>a</mi>, <mi>b</mi>) de la curva.</t2>
                </panelExplicativo>
            </td>
            <td width="500px" style="text-align:center">
                <p id="formula1"></p>
                <canvas id="canvasER" width="300px" height="360px"
                    onmousemove="getInsidePixel(event,moveInER)" 
                    onmouseout="pixLastMouse_x=-10; moveInER()" 
                    onmouseup="clickER(event);"
                    oncontextmenu="if (elementoHover_x != x_NoElemento) event.preventDefault();"
                >
                </canvas>
                <table style="margin-left:100px; border:none; text-align:left">
                    <tr><td style="width:200px; border:none"><span id="infoA1"></span>
                            <br/><span id="infoB1"></span>
                            <br/><span id="infoAB1"></span>
                        </td>
                        <td style="width:100px; text-align:right; border:none"><span id="infoHover1"></span></td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    
    
<apartado id="EQ">E(<infoLink onclick="showInfo(this,'info_Q')">&rationals;</infoLink>)</apartado>
<n4>Su gráfica es como la de E(&reals;), pero con menos puntos.
    <br/><br/>
    <a href="http://es.wikipedia.org/wiki/Teorema_de_Mordell">Teorema de Mordell-Weil</a>: (E(&rationals;),&suma;)
    forma un grupo conmutativo con un número finito de generadores.
</n4>


<apartado id="EFp">E(<infoLink onclick="showInfo(this,'info_Zn')">&modulos;<sub><mi>p</mi></sub></infoLink>) &nbsp; <em style="font-size:smaller"><mi>p</mi>
    primo mayor que 4</em>
</apartado>
<n4><table class="layout">
        <tr style="vertical-align:top">
            <td>E<sub><mi>a</mi>,<mi>b</mi></sub>(&integers;<sub><mi>p</mi></sub>)</td>
            <td>= { (<CM2><mi>x</mi><mi>p</mi></CM2>,<CM2><mi>y</mi><mi>p</mi></CM2>)&isin;&integers;<sub><mi>p</mi></sub><sup>2</sup>
                    | <CM2><mi>y</mi><mi>p</mi></CM2><sup>2</sup> = <CM2><mi>x</mi><mi>p</mi></CM2><sup>3</sup>
                    + <CM2><mi>a</mi><mi>p</mi></CM2>·<CM2><mi>x</mi><mi>p</mi></CM2> + <CM2><mi>b</mi><mi>p</mi></CM2> }  &cup; {&inf;}
                <br/>
                = { (<CM2><mi>x</mi><mi>p</mi></CM2>,<CM2><mi>y</mi><mi>p</mi></CM2>)&isin;&integers;<sub><mi>p</mi></sub><sup>2</sup>
                    | <mi>y</mi><sup>2</sup> &equiv; <mi>x</mi><sup>3</sup> + <mi>a</mi>·<mi>x</mi> + <mi>b</mi> (mod <mi>p</mi>) }  &cup; {&inf;}
            </td>
        </tr>
    </table>
</n4>

<seccion id="EFp_propiedades">Propiedades</seccion>
<n4><ul><li id="Hasse">
            <a href="http://www.scm.org.co/Subidos/312.Resumen.pdf">Teorema de Hasse</a>: &nbsp;
            E(<infoLink onclick="showInfo(this,'info_Fq')">&cuerpoFinito;<sub><mi>q</mi></sub></infoLink>)
            tiene entre &nbsp;
            <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi> + <mn>1</mn> - <mn>2</mn><msqrt><mi>p</mi></msqrt>
            </math>
            &nbsp; y &nbsp; 
            <math xmlns="http://www.w3.org/1998/Math/MathML">
                <mi>p</mi> + <mn>1</mn> + <mn>2</mn><msqrt><mi>p</mi></msqrt>
            </math>
            &nbsp; elementos        </li>
        <li>card[E(&integers;<sub><mi>p</mi></sub>)] es un número compuesto            &rArr;
            los subgrupos cíclicos generados a partir de los elementos de E(&integers;<sub><mi>p</mi></sub>) tienen un número de elementos que es divisor de            card[E(&integers;<sub><mi>p</mi></sub>)]
            <t2><boton text="Ejemplo " idRef="ejemplo4" collapsed=""/>
                <Ejemplo id="ejemplo4">E<sub>4,6</sub>(&integers;<sub>11</sub>)
                    tiene 16 elementos. De los grupos cíclicos generados por sus elementos, 1 tiene 1 elemento, 3 tienen 2 elementos, 4 tienen 4 elementos, 8 tienen 8 elementos                </Ejemplo>
            </t2>
            <t1 style="font-size:smaller">Nota: Si                card[E(&modulos;<sub><mi>p</mi></sub>)]
                es un número primo &rArr; los subgrupos cíclicos generados a partir de los elementos de                E(&modulos;<sub><mi>p</mi></sub>)
                no tienen porqué tener un número de elementos que sea divisor de                card[E(&modulos;<sub><mi>p</mi></sub>)]
                <t2><boton text="Ejemplo " idRef="ejemplo5" collapsed=""/>
                    <Ejemplo id="ejemplo5">E<sub>2,2</sub>(&modulos;<sub>5</sub>)
                        tiene 7 elementos. De los grupos cíclicos generados por sus elementos, 1 tiene 1 elemento; 2 tienen 2; 2 tienen 3; y 1 tiene 6 elementos.
                    </Ejemplo>
                </t2>
            </t1>
        </li>
        <li>Si P pertenece a un subgrupo cíclico de E(&modulos;<sub><mi>p</mi></sub>)
            &rArr; &inf;-P también pertenece al mismo subgrupo.
        </li>
        <li>P y &inf;-P generan grupos cíclicos con el mismo número de elementos.</li>
    </ul>
</n4>

<seccion id="EFp_interactivo">E(&integers;<sub><mi>p</mi></sub>) interactivo</seccion>

    <table class="layoutInteractivo">
        <tr><td width="300px" height="500px" style="padding-top:50px">
                <panelInput>
                    <t2><ti2>Parámetros de E(&modulos;<sub><mi>p</mi></sub>)</ti2></t2>
                        <t3><label><mi>a</mi> =
                                <input type="text" maxlength="3" size="3" id="a2"
                                    onchange="a2=cambioTextInput(this, a2,0,m2-1,validoEntero); if (inputCambiado) calculaEZp();"
                                    onkeypress="soloAdmiteDigitos(event)"/>
                            </label>
                        </t3>
                        <t3><label><mi>b</mi> = 
                                <input type="text" maxlength="3" size="3" id="b2"
                                    onchange="b2=cambioTextInput(this, b2,0,m2-1,validoEntero); if (inputCambiado) calculaEZp();"
                                    onkeypress="soloAdmiteDigitos(event)"/>
                            </label>
                        </t3>
                        <t3><label><mi>p</mi> =
                                <input type="text" maxlength="3" size="3" id="m2"
                                    onchange="m2=cambioTextInput(this, m2,5,100,validoPrimo); if (inputCambiado) cambiaVistaEZp();"
                                    onkeypress="soloAdmiteDigitos(event)"/>
                            </label>
                            &rarr; E(&integers;<span id="soluciones_Hasse"></span> elementos                        </t3>
                    <br/>
                    <t2><ti2>Qué dibujar</ti2>
                        <br/><label><input type="checkbox" id="grid2" onchange="dibujarGrid2=this.checked; dibujaEZp()"/> Dibujar malla</label>
                    </t2>
                    <br/>
                    <t2><ti2>Qué calcular</ti2>
                        <br/><label><input type="radio" name="que_ver2" id="probar_sumas2" onchange="cambio_queProbar2(probarSuma);"/> Suma de 2 elementos</label>
                        <br/><label><input type="radio" name="que_ver2" id="probar_ciclo2" onchange="cambio_queProbar2(probarCiclo);"/> Múltiplos de un elemento</label>
                    </t2>
                </panelInput>
                <panelExplicativo style="margin-top:20px">
                    <t2>Selecciona los elementos P/Q pulsando con el botón derecho/izquierdo del ratón sobre un elemento. Pulsando de nuevo sobre un elemento seleccionado, se des-selecciona.
                    </t2>
                    <t2>El tipo de elemento viene indicado por su color:
                        <br/>
                        <span id="infoColores" style="white-space:nowrap"></span>
                    </t2>
                    
                </panelExplicativo>
            </td>
            <td width="500px" style="text-align:center">
                <p id="formula2"></p>
                <canvas id="canvasEZp" width="300px" height="320px"
                    onmousemove="getInsidePixel(event,moveInEZp)" 
                    onmouseout="pixLastMouse_x=-10;  moveInEZp(); "
                    onmouseup="clickEZp(event);"
                    oncontextmenu="if (elementoHover_x != x_NoElemento) event.preventDefault();"
                >
                </canvas>
                <table style="border:none; width:350px; margin-left:50px; height:100px">
                    <tr><td width="310px" style="padding-left:10px; text-indent:-8px; text-align:left; border:none" id="infoCuenta2"></td>
                        <td style="width:40px; white-space:nowrap; border:none; text-align:right" id="infoHover2"></td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>


<div style="display:block; width:100%; height:3em; margin:0px; background-color:#eee; color:#ccc; vertical-align:middle; text-align:center; border-top:thin solid #ccc"><br/>&copy; Daniel Herrera Tobar &emsp;<a href="mailto:danielht.ecc@gmail.com" style="color:#ccc">Mail</a><br/></div>

    
<infoWindow id="info_Cuerpo" style="width:400px">
    <infoTitle><a href="http://es.wikipedia.org/wiki/Cuerpo_(matemática)">Cuerpo</a></infoTitle>
    es una estructura algebraica (K,+,·)
    formada por un conjunto y 2 operaciones internas suyas, tales que    <ul style="margin:1mm">
        <li>(K,+) es un <a href="http://es.wikipedia.org/wiki/Grupo_(matemática)">grupo</a> conmutativo</li>
        <li>(K\{0},·) es un grupo conmutativo</li>
        <li>&forall;<mi>x</mi>,<mi>y</mi>,<mi>z</mi>&isin;K, <mi>a</mi>·(<mi>b</mi>+<mi>c</mi>) = <mi>a</mi>·<mi>b</mi> + <mi>a</mi>·<mi>c</mi></li>
    </ul>
</infoWindow>

<infoWindow id="info_Algebraicos" style="">
    <infoTitle>&algebraic;</infoTitle> (conjunto de los <a href="http://es.wikipedia.org/wiki/Numeros_algebraicos">números algebraicos</a>)
    = {<mi>z</mi>&isin;&complex; | &exist; <mi>a<sub>0</sub></mi>,...,<mi>a<sub>n</sub></mi>&isin;&integers;,
    tales que <mi>a<sub>0</sub></mi>+<mi>a<sub>1</sub></mi>·<mi>z</mi>+...+<mi>a<sub>n</sub></mi>·<mi>z</mi><sup>n</sup>=0}
</infoWindow>

<infoWindow id="info_N" style="">
    <infoTitle>&naturals;</infoTitle> (conjunto de los <a href="http://es.wikipedia.org/wiki/Numeros_naturales">números naturales</a>)
    = {0,1,2,3,...}
</infoWindow>
<infoWindow id="info_Z" style="">
    <infoTitle>&integers;</infoTitle> (conjunto de los <a href="http://es.wikipedia.org/wiki/Numeros_enteros">números enteros</a>)
    = {...,-2,-1,0,1,2,...}
</infoWindow>
<infoWindow id="info_Q" style="">
    <infoTitle>&rationals;</infoTitle> (conjunto de los <a href="http://es.wikipedia.org/wiki/Numeros_racionales">números racionales</a>)
    = {<mi>p</mi>/<mi>q</mi> | <mi>p</mi>&isin;&integers;, <mi>q</mi>&isin;&integers;\0}
</infoWindow>
<infoWindow id="info_R" style="">
    <infoTitle>&reals;</infoTitle> (conjunto de los <a href="http://es.wikipedia.org/wiki/Numeros_reales">números reales</a>)
</infoWindow>
<infoWindow id="info_C" style="">
    <infoTitle>&complex;</infoTitle> (conjunto de los <a href="http://es.wikipedia.org/wiki/Numeros_complejos">números complejos</a>)
    = {<mi>x</mi>+i<mi>y</mi> | <mi>x</mi>,<mi>y</mi>&isin;&reals;, <em>i</em><sup>2</sup>=-1}
</infoWindow>
    
<infoWindow id="info_Fq" style="">
    <infoTitle>&cuerpoFinito;<sub><mi>q</mi></sub></infoTitle> (<a href="http://es.wikipedia.org/wiki/Cuerpo_finito">cuerpo finito</a> de <mi>q</mi> elementos),
    donde <mi>q</mi>=<mi>p</mi><sup><mi>n</mi></sup>, con <mi>p</mi> primo, y <mi>n</mi>&isin;&naturals;
    <br/>Propiedades:
    <ul style="margin:0">
        <li>Si 2 cuerpos finitos tienen el mismo número de elementos &rArr; son isomorfos</li>
        <li><mi>p</mi> primo &rArr; &cuerpoFinito;<sub><mi>p</mi></sub> isomorfo a &modulos;<sub><mi>p</mi></sub></li>
    </ul>
</infoWindow>    
    
<infoWindow id="info_Zn" style="width:400px;">
    <infoTitle>&modulos;<sub><mi>n</mi></sub></infoTitle> &equiv; &modulos;/<mi>n</mi>&modulos; &equiv; &modulos;/<mi>n</mi>
    (conjunto de las clases de congruencia módulo <mi>n</mi>)
    = {<CM2><mn>0</mn><mi>n</mi></CM2>,<CM2><mn>1</mn><mi>n</mi></CM2>,...,<CM2><mn><mi>n</mi>-1</mn><mi>n</mi></CM2>}
    <br/>
    donde    <CM2><mi>k</mi><mi>n</mi></CM2>&def;{<mi>i</mi>&isin;&integers; | <mi>i</mi>&equiv;<mi>k</mi> (mod <mi>n</mi>)}
    es la clase de equivalencia de los enteros que al dividirlos entre <mi>n</mi> tienen resto <mi>k</mi>.
    <br/>
    <boton text="Ejemplo " idRef="ejemplo2" collapsed=""/>
    <Ejemplo id="ejemplo2">
        Por ejemplo, <CM2><mn>3</mn><mn>10</mn></CM2>= {...,-27,-17,-7,3,13,23,33,...})
    </Ejemplo>
    <br/><br/>
    <t1>Prop:<strong>
        Si <mi>n</mi> es primo &rArr; (&modulos;<sub><mi>n</mi></sub>,+,·)
        es un cuerpo conmutativo finito con <mi>n</mi> elementos y característica <mi>n</mi>.
        </strong>
        <br/>
    </t1>
    <t2><boton text="Ejemplo " idRef="ejemplo3" collapsed=""/>
        <Ejemplo id="ejemplo3">Ejemplo: (&modulos;<sub>3</sub>,+,·), donde &modulos;<sub>3</sub>={<CM2><mn>0</mn><mn>3</mn></CM2>,<CM2><mn>1</mn><mn>3</mn></CM2>,<CM2><mn>2</mn><mn>3</mn></CM2>},
            es un cuerpo conmutativo con 3 elementos, donde            <CM2><mn>0</mn><mn>3</mn></CM2> es el elemento neutro de "+", y            <CM2><mn>1</mn><mn>3</mn></CM2> es el elemento neutro de "·".
            <br/>Además <CM2><mn>1</mn><mn>3</mn></CM2>+<CM2><mn>1</mn><mn>3</mn></CM2>+<CM2><mn>1</mn><mn>3</mn></CM2> = <CM2><mn>3</mn><mn>3</mn></CM2> = <CM2><mn>0</mn><mn>3</mn></CM2>
                &rArr; tiene característica 3.
        </Ejemplo>
    </t2>
</infoWindow>


<infoWindow id="info_puntoSingular" style="white-space:nowrap">
    (<mi>x<sub>0</sub></mi>,<mi>y<sub>0</sub></mi>)
    es un <infoTitle>punto singular</infoTitle> de    f(<mi>x</mi>,<mi>y</mi>)=0 si&emsp;
    <br/>f(<mi>x<sub>0</sub></mi>,<mi>y<sub>0</sub></mi>)=0 ,
    <math xmlns="http://www.w3.org/1998/Math/MathML">
        <mfrac><mrow>&part;f</mrow><mrow>&part;<mi>x</mi></mrow></mfrac>(<msub><mi>x</mi><mi>0</mi></msub>,<msub><mi>y</mi><mi>0</mi></msub>)=0
    </math>
    , y    <math xmlns="http://www.w3.org/1998/Math/MathML">
        <mfrac><mrow>&part;f</mrow><mrow>&part;<mi>y</mi></mrow></mfrac>(<msub><mi>x</mi><mi>0</mi></msub>,<msub><mi>y</mi><mi>0</mi></msub>)=0
    </math>
</infoWindow>

</body>

<script src="float.js" type="text/javascript"/>
<script src="boton.js" type="text/javascript"/>
</html>
