<?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>Elliptic curves</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 = "Tha value cannot be less than ";
            LOCAL_NoPuedeSerMayorQue = "The value cannot be more than ";
            LOCAL_NoEsPrimo = " is not a prime number."
            LOCAL_SubgrupoCiclico= "Cyclic subgroup of "
            LOCAL_Elemento = " element"
            LOCAL_ElementosCiclo = "elements of the cycle"
            LOCAL_Generador = "generator"
            LOCAL_tieneEntre = "has between"
            LOCAL_y = "and"
            LOCAL_elementos= "elements"
            LOCAL_cerrar="close"
            
            esNavegadorOpera = false    </script>
    <script src="ecc.js" type="text/javascript"/>
</head>





<body style="margin:0px" onload="PUNTO_DE_ENTRADA()">
<titulo>Elliptic curves</titulo>
    <table>
        <tr><td>
            <menu>
                <item><a href="#propiedades">General properties</a></item>
                    <item2><a href="#E_grupo">E(K) as a group</a></item2>
                <item><a href="#ER">E(&reals;)</a></item>
                    <item2><a href="#ER_propiedades">Properties</a></item2>
                    <item2><a href="#ER_interpretación_geométrica">Group operation interpretation</a></item2>
                    <item2><a href="#ER_interactivo">Interactive E(&reals;)</a></item2>
                <item><a href="#EFp">E(&modulos;<sub><mi>p</mi></sub>)</a></item>
                    <item2><a href="#EFp_propiedades">Properties</a></item2>
                    <item2><a href="#EFp_interactivo">Interactive E(&integers;<sub><mi>p</mi></sub>)</a></item2>
            </menu>
            </td>
            <td style="padding:1mm 1mm 1mm 5mm">
                <t2>Given a                    <infoLink onclick="showInfo(this,'info_Cuerpo')">field</infoLink> (K,+,·)
                    [usually denoted just by K],
                    an <ti2>elliptic curve</ti2> over K [denoted by E(K)] is the set of ...                    <ul><li>{(<mi>x</mi>,<mi>y</mi>) &isin; K<sup>2</sup> | p(<mi>x</mi>,<mi>y</mi>)=0},
                            where "p" is a 3-degree polynomial with coefficients in K, and it has no                            <infoLink onclick="showInfo(this,'info_puntoSingular')">singular point</infoLink>
                            <em>(cusps or self-intersections)</em>
                        </li>
                        &cup;
                        <li>&inf; <em>(called "infinity")</em> &notin; K<sup>2</sup>
                        </li>
                    </ul>
                </t2>
                <br/>
                <t2>K may be an infinite                    (<infoLink onclick="showInfo(this,'info_Q')">&rationals;</infoLink>,
                    <infoLink onclick="showInfo(this,'info_R')">&reals;</infoLink>,
                    <infoLink onclick="showInfo(this,'info_C')">&complex;</infoLink>, ...)
                    or a finite                    (<infoLink onclick="showInfo(this,'info_Fq')">&cuerpoFinito;<sub><mi>q</mi></sub></infoLink>)
                    [as <infoLink onclick="showInfo(this,'info_Zn')">&modulos;<sub><mi>p</mi></sub></infoLink>,
                    with <mi>p</mi> prime]
                    set.
                    <br/>Note that: K can't be                        <infoLink onclick="showInfo(this,'info_N')">&naturals;</infoLink>,
                        <infoLink onclick="showInfo(this,'info_Z')">&integers;</infoLink>,
                        or &modulos;<sub><mi>p</mi></sub> [<mi>p</mi> not prime]
                        because they are not fields (they don't have multiplicative inverse).
                </t2>
            </td>
        </tr>
    </table>

<apartado id="propiedades">General properties</apartado>
    <n2><ul><li>A "line" {(<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}
                can't cut E(K) in more than 3 points.
                <boton class="demo" idRef="demo0" collapsed=""/>
                <Demo id="demo0">Demo: 
                    That line can be written as                    <mi>x</mi>=<mi>m</mi>·<mi>y</mi>+<mi>n</mi> (if <mi>p</mi>&ne;0)
                    or <mi>y</mi>=<mi>m</mi>·<mi>x</mi>+<mi>n</mi> (if <mi>q</mi>&ne;0).
                    Substituying any of these expressions in                    p(<mi>x</mi>,<mi>y</mi>)=0
                    the resulting equation has degree 3 or less.
                    <br/>
                    Due to the <a href="http://en.wikipedia.org/wiki/Fundamental_theorem_of_algebra">fundamental theorem of algebra</a>,
                        that equation has as many solutions as the degree of the polynomial
                        (if K is an Algebraically closed field) or less (if not).
                </Demo>
            </li>
            <br/>
            <li>If the field K doesn't have characteristic 2 (as &integers;<sub>2</sub>) or 3 (as &integers;<sub>3</sub>)                &rArr; there exists a coords change in which                p(<mi>x</mi>,<mi>y</mi>)=0 transforms into                <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">Weierstrass normal form</a>)
                <t1>In that form, E(K) is determined by a pair                    (<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> is an elliptical curve                        &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: Elliptic curve &rArr; there are no singular points.<br/>A singular point                            (<mi>p</mi>,<mi>q</mi>)
                            is such that                            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>
                            satisfies                            <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>
                            Substituying <mi>p</mi> and <mi>q</mi> of the last 2 in the first, we have                            <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>In an algebraically closed field (as &complex; or                        <infoLink onclick="showInfo(this,'info_Algebraicos')">&algebraic;</infoLink>),
                        a "line" <mi>x</mi>=const cuts E(K) twice. Any other line cuts E(K) at 3 points                        <br/>
                        If K is not algebraically closed (like                        &rationals;, &reals;,
                        or a finite field), it can cut E(K) in less points                        <boton class="demo" idRef="demo1" collapsed=""/>
                        <Demo id="demo1">Demo:
                            <ul><li>Line <mi>x</mi>=const : Substituying in E(K) eq. gives
                                        <mi>y</mi><sup>2</sup>=const, that has 2 roots in an algebraically closed field,
                                        according to <a href="http://en.wikipedia.org/wiki/Fundamental_theorem_of_algebra">fundamental theorem of algebra</a>
                                        (if <mi>y</mi>=0 there is a double root)                                </li>
                                <li>Another line can be written as                                    <mi>y</mi>=<mi>m</mi>·<mi>x</mi>+<mi>n</mi>.
                                    Introducing that in E(K) equation gives                                    (<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>
                                    (degree 3 polynomial &rArr; 3 roots in an algebraically closed field)                                </li>
                            </ul>
                        </Demo>
                    </li>
                    <li>E(K)&cap;K<sup>2</sup> symmetrical about <mi>y</mi>=0 axis                        <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/>
        From now on, all elliptic curves will be in their Weierstrass normal form.
    </n2>


<seccion id="E_grupo">E(K) as a group</seccion>
    <div style="display:table; border:thin solid blue; margin-left:40px">
        Defining the inner operation in E(K)
            &emsp;&suma; : E(K)&times;E(K)&rarr;E(K)
        &emsp; such that &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>If (<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; Note: If P&suma;Q=&inf;, se define -P&def;Q , or -Q&def;P
                    </li>
                    <li>others (<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>),
                        with                        <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>
                        where                        <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> if 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> if P=Q
                                    </mtd></mtr>
                                </mtable>
                            </mstyle>
                        </math>
                    </li>
                </ul>
            </li>
        </ul>
        &rArr; <strong>(E(K) , &suma;) is a commutative group</strong>
    </div>
    <br/>

    <n4><boton text="Example " idRef="ejemplo1" collapsed=""/>
        <Ejemplo id="ejemplo1" style="margin-left:20px">
            <t1>Example: Let 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> ,
                    it has been taken into account that <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; 
                    because                    <mi>x<sub>P</sub></mi>=<mi>x<sub>Q</sub></mi>=<CM2><mn>4</mn><mn>5</mn></CM2>, &emsp;and&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">Properties</seccion>
<n2><ul><li>E(&reals;) has infinitely many elements</li>
        <li>E(&reals;) has elements with any <mi>y</mi> coordinate, but not any <mi>x</mi>        </li>
        <li>The number of elements in E(&reals;) with certain <mi>y</mi> coordinate depends on the value of            <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="Color keys " idRef="coloresGraficas" collapsed=""/>]
                        <Ejemplo id="coloresGraficas" style="margin-left:20px">
                            Graphics colors:
                            <ul style="font-size:smaller">
                                <li>White background &rarr; &delta;(<mi>y</mi>) &gt; 0 &rArr; 1 value for <mi>x</mi></li>
                                <li>Brown background &rarr; &delta;(<mi>y</mi>) &lt; 0 &rArr; 3 values for <mi>x</mi></li>
                                <li>Dashed line &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;) simply connected</mtd></mtr>
                        <mtr><mtd>=0</mtd> <mtd>&rarr; E(&reals;) is not an elliptic curve</mtd></mtr>
                        <mtr><mtd>&lt;0</mtd> <mtd>&rarr; E(&reals;) is not simply connected</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;
                is a continuous function when defined, so discontuities exist when it's not defined, that is, when                <mi>x</mi><sup>3</sup> + <mi>a</mi>·<mi>x</mi> + <mi>b</mi> &lt; 0.
                <t1>Points where <mi>y</mi><sup>2</sup> = <mi>x</mi><sup>3</sup>+<mi>a</mi>·<mi>x</mi>+<mi>b</mi> = 0
                    divide &reals; in intervals where sign of <mi>x</mi><sup>3</sup>+<mi>a</mi>·<mi>x</mi>+<mi>b</mi>
                    doesn't change (cause it is a continuous function for <mi>x</mi>), though sign alternates from one interval to the next.
                </t1>
                <t1>According to the previous result, &delta;(<mi>y</mi>=0) = 4<mi>a</mi><sup>3</sup> + 27<mi>b</mi><sup>2</sup> ...
                    <ul><li>&gt; 0 &rArr; only one <mi>x</mi> for <mi>y</mi>=0,
                            that divides &reals; in 2 intervals:
                            One without any point in E(&reals;), and another in which E(&reals;) is continuous and conexted                        </li>
                        <li>&lt; 0 &rArr; 3 values of <mi>x</mi> for <mi>y</mi>=0,
                            that divide &reals; in 4 intevals:
                            In 2 of them, E(&reals;) is continuous, but are separated by another in which E(&reals;) doesn't have any point                            &rArr; E(&reals;) is composed of 2 unconneceted pieces                        </li>
                    </ul>
                </t1>
            </Demo>
        </li>
    </ul>
</n2>

<seccion id="ER_interpretación_geométrica">Geometric interpretation of the group operation</seccion>
<n4>It is based on the property that any line intersects E(&reals;) in more than 3 points.
    <br/>Now be considered any P, Q, R &isin; E(&reals;)    <ul class="n2">
        <li><strong>P, Q y R in the same line</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">
                            The last 3 equivalences are obvious from the second result.
                                <br/>The first equality follows from the definition of &suma; taking into account all possible cases
                                and that point must meet the elliptic curve equation.
                               .
                        </Demo>
                    </td>
                </tr>
            </table>
        </li>
        <li>If the line is tangent to E(&reals;) at P &rArr; it only cuts E(&reals;) twice &rArr; it can be seen as a particular case of the previous case in which 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; is a point located vertically at infinity            <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">Interactive E(&reals;)</seccion>
    
    <table class="layoutInteractivo">
        <tr><td><panelInput>
                    <t2><ti2>E(&reals;) parameters</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>What to draw</ti2></t2>
                        <t3><label><input type="checkbox" id="grid1" onchange="dibujarGrid=this.checked; dibujaER()"/> Draw grid</label></t3>
                        <t3><label><input type="checkbox" id="ejes1" onchange="dibujarEjes=this.checked; dibujaER()"/> Draw axis</label></t3>
                        <t3><label style="font-size:smaller"><input type="checkbox" id="solucionesEnteras1" onchange="dibujarSolucionesEnteras=this.checked; dibujaER()"/> Draw integer points</label></t3>
                        <t3><label style="font-size:smaller"><input type="checkbox" id="caracteristicasCurva1" onchange="dibujarCaracteristicasCurva=this.checked; dibujaER()"/> Show <mi>y</mi> values with 3 cut points</label></t3>
                    <br/>
                    <t2><ti2>Viewport</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>Select P/Q elements pressing left/right mouse buttons on E(&reals;).</t2>
                    <t2>To deselect all selected points, change E(&reals;) parameters.</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>Its graph is like that of E(&reals;), but with fewer points.
    <br/><br/>
    <a href="http://en.wikipedia.org/wiki/Mordell_theorem">Mordell theorem</a>: (E(&rationals;),&suma;)
    form a commutative group with a finite number of generators.
</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>
    prime greater than 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">Properties</seccion>
<n4><ul><li id="Hasse">
            <a href="http://en.wikipedia.org/wiki/Hasse%27s_theorem_on_elliptic_curves">Hasse's theorem</a>: &nbsp;
            E(<infoLink onclick="showInfo(this,'info_Fq')">&cuerpoFinito;<sub><mi>q</mi></sub></infoLink>)
            has between &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; and &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; elements        </li>
        <li>card[E(&integers;<sub><mi>p</mi></sub>)] is a composite number            &rArr;
            cyclic subgroups generated from E(&integers;<sub><mi>p</mi></sub>) elements have a number of elements that is a divisor of            card[E(&integers;<sub><mi>p</mi></sub>)]
            <t2><boton text="Example " idRef="ejemplo4" collapsed=""/>
                <Ejemplo id="ejemplo4">E<sub>4,6</sub>(&integers;<sub>11</sub>)
                    has 16 elements. Cyclic groups generated by its elements have 1 element [1], 2 elements [3], 4 elements [4], 8 elements [8]                </Ejemplo>
            </t2>
            <t1 style="font-size:smaller">Note: If                card[E(&modulos;<sub><mi>p</mi></sub>)]
                is a prime number &rArr; cyclic groups generated from elements of                E(&modulos;<sub><mi>p</mi></sub>)
                don't need to have a number of elements that is a divisor of                card[E(&modulos;<sub><mi>p</mi></sub>)]
                <t2><boton text="Example " idRef="ejemplo5" collapsed=""/>
                    <Ejemplo id="ejemplo5">E<sub>2,2</sub>(&modulos;<sub>5</sub>)
                        has 7 elements. Cyclic groups generated by its elements have 1 element [1], 2 elements [2], 3 elements [2], and 6 elements [1].
                    </Ejemplo>
                </t2>
            </t1>
        </li>
        <li>If P belongs to a cyclic subgroup of E(&modulos;<sub><mi>p</mi></sub>)
            &rArr; &inf;-P also belongs to the same subgroup.
        </li>
        <li>P and &inf;-P generate cyclic groups with the same number of elements.</li>
    </ul>
</n4>

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

    <table class="layoutInteractivo">
        <tr><td width="300px" height="500px" style="padding-top:50px">
                <panelInput>
                    <t2><ti2>E(&modulos;<sub><mi>p</mi></sub>) parameters</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> elements                        </t3>
                    <br/>
                    <t2><ti2>What to draw</ti2>
                        <br/><label><input type="checkbox" id="grid2" onchange="dibujarGrid2=this.checked; dibujaEZp()"/> Draw grid</label>
                    </t2>
                    <br/>
                    <t2><ti2>What to compute</ti2>
                        <br/><label><input type="radio" name="que_ver2" id="probar_sumas2" onchange="cambio_queProbar2(probarSuma);"/> Sum of 2 items</label>
                        <br/><label><input type="radio" name="que_ver2" id="probar_ciclo2" onchange="cambio_queProbar2(probarCiclo);"/> Multiples of an item</label>
                    </t2>
                </panelInput>
                <panelExplicativo style="margin-top:20px">
                    <t2>Select elements P/Q pressing with left/right mouse button over an element. Pressing again over a selected elemen, it is de-selected.
                    </t2>
                    <t2>The element type is indicated by its 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://en.wikipedia.org/wiki/Field_(mathematics)">Field</a></infoTitle>
    is an algebraic structure (K,+,·)
    composed by a set K and 2 inner operations on K, such that    <ul style="margin:1mm">
        <li>(K,+) is a <a href="http://en.wikipedia.org/wiki/Abelian_group">commutative group</a></li>
        <li>(K\{0},·) is a commutative group</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> (set of <a href="http://en.wikipedia.org/wiki/Algebraic_numbers">algebraic numbers</a>)
    = {<mi>z</mi>&isin;&complex; | &exist; <mi>a<sub>0</sub></mi>,...,<mi>a<sub>n</sub></mi>&isin;&integers;,
    such that <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> (set of <a href="http://en.wikipedia.org/wiki/Natural_numbers">natural numbers</a>)
    = {0,1,2,3,...}
</infoWindow>
<infoWindow id="info_Z" style="">
    <infoTitle>&integers;</infoTitle> (set of <a href="http://en.wikipedia.org/wiki/Integers">integer numbers</a>)
    = {...,-2,-1,0,1,2,...}
</infoWindow>
<infoWindow id="info_Q" style="">
    <infoTitle>&rationals;</infoTitle> (set of <a href="http://en.wikipedia.org/wiki/Rational_numbers">rational numbers</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> (set of <a href="http://en.wikipedia.org/wiki/Real_numbers">real numbers</a>)
</infoWindow>
<infoWindow id="info_C" style="">
    <infoTitle>&complex;</infoTitle> (set of <a href="http://en.wikipedia.org/wiki/Complex_numbers">complex numbers</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://en.wikipedia.org/wiki/Finite_field">finite field</a> of <mi>q</mi> elements),
    where <mi>q</mi>=<mi>p</mi><sup><mi>n</mi></sup>, with <mi>p</mi> prime, and <mi>n</mi>&isin;&naturals;
    <br/>Properties:
    <ul style="margin:0">
        <li>Any 2 finite groups with the same number of elements are isomorphic</li>
        <li><mi>p</mi> prime &rArr; &cuerpoFinito;<sub><mi>p</mi></sub> isomorphic to &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>
    (set of congruence classes modulo <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/>
    where    <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>)}
    is the equivalence class of integers that divided by <mi>n</mi> have <mi>k</mi> remainder.
    <br/>
    <boton text="Example " idRef="ejemplo2" collapsed=""/>
    <Ejemplo id="ejemplo2">
        I.e, <CM2><mn>3</mn><mn>10</mn></CM2>= {...,-27,-17,-7,3,13,23,33,...})
    </Ejemplo>
    <br/><br/>
    <t1>Prop:<strong>
        If <mi>n</mi> is prime &rArr; (&modulos;<sub><mi>n</mi></sub>,+,·)
        is a finite commutative field with <mi>n</mi> elements and characteristic <mi>n</mi>.
        </strong>
        <br/>
    </t1>
    <t2><boton text="Example " idRef="ejemplo3" collapsed=""/>
        <Ejemplo id="ejemplo3">Ejemplo: (&modulos;<sub>3</sub>,+,·), where &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>},
            is a commutative field with 3 elements, where            <CM2><mn>0</mn><mn>3</mn></CM2> is the "+" neutral element, and            <CM2><mn>1</mn><mn>3</mn></CM2> is the "·" neutral element.
            <br/>Also <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; is has characteristic 3.
        </Ejemplo>
    </t2>
</infoWindow>


<infoWindow id="info_puntoSingular" style="white-space:nowrap">
    (<mi>x<sub>0</sub></mi>,<mi>y<sub>0</sub></mi>)
    is a <infoTitle>singular point</infoTitle> of    f(<mi>x</mi>,<mi>y</mi>)=0 if&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>
    , and    <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"/>
<script type="text/javascript" id="MathML_not_available"><![CDATA[ 
function aviso_MathML(e) {window.alert("MathML formulas don't render correctly in Chrome.\nYou can try Firefox or Opera");}
var listaMath=document.getElementsByTagName("math");
for (i=0; i<listaMath.length; i++)listaMath.item(i).addEventListener("click",aviso_MathML,false);
]]></script>
<style type="text/css">math {cursor:pointer; background-color:#ddf; opacity:0.5;}</style></html>
