Elliptic curve group law — chord construction on y² = x³ + 17
The chord construction for P + Q on the elliptic curve y² = x³ + 17, with P = (−2,3), Q = (−1,4), third intersection P∗Q = (4,9) and P + Q = (4,−9), and the slope-formula arithmetic written out.
Rendering…
Make it your own.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 524" width="760" height="524">
<style>
text { font: 13px Inter, system-ui, sans-serif; fill:#0f172a; }
.ttl { font-size:16px; font-weight:700; }
.sub { font-size:12px; fill:#475569; }
.tick{ font-size:10px; fill:#64748b; stroke:#ffffff; stroke-width:3px; paint-order:stroke; }
.ax { stroke:#94a3b8; stroke-width:1; }
.curve{ fill:none; stroke:#1d4ed8; stroke-width:2.2; }
.chord{ stroke:#b45309; stroke-width:1.8; }
.refl { stroke:#059669; stroke-width:1.6; stroke-dasharray:5 4; }
.pt { stroke:#0f172a; stroke-width:1.2; }
.key { font-size:12px; }
</style>
<rect width="760" height="524" fill="#ffffff"/>
<text class="ttl" x="70" y="26">Group law on E : y² = x³ + 17 — the chord construction</text>
<text class="sub" x="70" y="45">P + Q is the reflection in the x-axis of the third point at which the line PQ meets E.</text>
<line class="ax" x1="70.0" y1="241.0" x2="690.0" y2="241.0"/>
<line class="ax" x1="285.7" y1="418.0" x2="285.7" y2="64.0"/>
<line class="ax" x1="83.5" y1="237.0" x2="83.5" y2="245.0"/>
<line class="ax" x1="150.9" y1="237.0" x2="150.9" y2="245.0"/>
<line class="ax" x1="218.3" y1="237.0" x2="218.3" y2="245.0"/>
<line class="ax" x1="353.0" y1="237.0" x2="353.0" y2="245.0"/>
<line class="ax" x1="420.4" y1="237.0" x2="420.4" y2="245.0"/>
<line class="ax" x1="487.8" y1="237.0" x2="487.8" y2="245.0"/>
<line class="ax" x1="555.2" y1="237.0" x2="555.2" y2="245.0"/>
<line class="ax" x1="622.6" y1="237.0" x2="622.6" y2="245.0"/>
<line class="ax" x1="281.7" y1="362.2" x2="289.7" y2="362.2"/>
<line class="ax" x1="281.7" y1="301.6" x2="289.7" y2="301.6"/>
<line class="ax" x1="281.7" y1="180.4" x2="289.7" y2="180.4"/>
<line class="ax" x1="281.7" y1="119.8" x2="289.7" y2="119.8"/>
<path class="curve" d="M 112.4,241.0 L 112.6,237.9 L 113.0,236.0 L 113.4,234.3 L 113.9,232.8 L 114.5,231.5 L 115.1,230.2 L 115.8,229.0 L 116.5,227.8 L 117.2,226.7 L 118.0,225.7 L 118.8,224.7 L 119.6,223.7 L 120.5,222.7 L 121.4,221.8 L 122.3,220.9 L 123.2,220.0 L 124.2,219.2 L 125.2,218.3 L 126.2,217.5 L 127.2,216.8 L 128.2,216.0 L 129.3,215.3 L 130.4,214.5 L 131.5,213.8 L 132.6,213.1 L 133.8,212.4 L 134.9,211.8 L 136.1,211.1 L 137.3,210.5 L 138.5,209.9 L 139.7,209.3 L 141.0,208.7 L 142.2,208.1 L 143.5,207.5 L 144.8,207.0 L 146.1,206.5 L 147.4,205.9 L 148.8,205.4 L 150.1,204.9 L 151.5,204.4 L 152.8,203.9 L 154.2,203.5 L 155.6,203.0 L 157.0,202.6 L 158.5,202.1 L 159.9,201.7 L 161.4,201.3 L 162.8,200.9 L 164.3,200.5 L 165.8,200.1 L 167.3,199.7 L 168.8,199.4 L 170.3,199.0 L 171.9,198.7 L 173.4,198.3 L 175.0,198.0 L 176.5,197.7 L 178.1,197.4 L 179.7,197.1 L 181.3,196.8 L 182.9,196.5 L 184.6,196.3 L 186.2,196.0 L 187.8,195.7 L 189.5,195.5 L 191.2,195.2 L 192.8,195.0 L 194.5,194.8 L 196.2,194.6 L 197.9,194.4 L 199.7,194.2 L 201.4,194.0 L 203.1,193.8 L 204.9,193.6 L 206.6,193.4 L 208.4,193.3 L 210.2,193.1 L 211.9,193.0 L 213.7,192.8 L 215.5,192.7 L 217.3,192.6 L 219.2,192.4 L 221.0,192.3 L 222.8,192.2 L 224.7,192.1 L 226.5,192.0 L 228.4,191.9 L 230.3,191.8 L 232.1,191.8 L 234.0,191.7 L 235.9,191.6 L 237.8,191.5 L 239.7,191.5 L 241.7,191.4 L 243.6,191.4 L 245.5,191.3 L 247.5,191.3 L 249.4,191.2 L 251.4,191.2 L 253.4,191.2 L 255.3,191.1 L 257.3,191.1 L 259.3,191.1 L 261.3,191.1 L 263.3,191.1 L 265.3,191.1 L 267.4,191.0 L 269.4,191.0 L 271.4,191.0 L 273.5,191.0 L 275.5,191.0 L 277.6,191.0 L 279.7,191.0 L 281.7,191.0 L 283.8,191.0 L 285.9,191.0 L 288.0,191.0 L 290.1,191.0 L 292.2,191.0 L 294.3,191.0 L 296.5,191.0 L 298.6,191.0 L 300.8,191.0 L 302.9,191.0 L 305.1,191.0 L 307.2,191.0 L 309.4,191.0 L 311.6,190.9 L 313.7,190.9 L 315.9,190.9 L 318.1,190.9 L 320.3,190.8 L 322.5,190.8 L 324.8,190.7 L 327.0,190.7 L 329.2,190.6 L 331.4,190.6 L 333.7,190.5 L 335.9,190.4 L 338.2,190.3 L 340.4,190.2 L 342.7,190.1 L 345.0,190.0 L 347.3,189.9 L 349.6,189.8 L 351.8,189.6 L 354.1,189.5 L 356.5,189.3 L 358.8,189.2 L 361.1,189.0 L 363.4,188.8 L 365.7,188.6 L 368.1,188.4 L 370.4,188.2 L 372.8,187.9 L 375.1,187.7 L 377.5,187.4 L 379.8,187.1 L 382.2,186.9 L 384.6,186.6 L 387.0,186.2 L 389.4,185.9 L 391.8,185.6 L 394.2,185.2 L 396.6,184.8 L 399.0,184.5 L 401.4,184.0 L 403.8,183.6 L 406.3,183.2 L 408.7,182.7 L 411.2,182.3 L 413.6,181.8 L 416.1,181.3 L 418.5,180.8 L 421.0,180.3 L 423.5,179.7 L 425.9,179.2 L 428.4,178.6 L 430.9,178.0 L 433.4,177.4 L 435.9,176.8 L 438.4,176.1 L 440.9,175.5 L 443.4,174.8 L 446.0,174.1 L 448.5,173.4 L 451.0,172.7 L 453.6,171.9 L 456.1,171.2 L 458.6,170.4 L 461.2,169.6 L 463.8,168.8 L 466.3,168.0 L 468.9,167.2 L 471.5,166.3 L 474.1,165.4 L 476.6,164.6 L 479.2,163.7 L 481.8,162.7 L 484.4,161.8 L 487.0,160.9 L 489.6,159.9 L 492.3,158.9 L 494.9,157.9 L 497.5,156.9 L 500.1,155.9 L 502.8,154.9 L 505.4,153.8 L 508.1,152.8 L 510.7,151.7 L 513.4,150.6 L 516.1,149.5 L 518.7,148.4 L 521.4,147.2 L 524.1,146.1 L 526.8,144.9 L 529.4,143.8 L 532.1,142.6 L 534.8,141.4 L 537.5,140.1 L 540.2,138.9 L 543.0,137.7 L 545.7,136.4 L 548.4,135.1 L 551.1,133.8 L 553.9,132.5 L 556.6,131.2 L 559.3,129.9 L 562.1,128.6 L 564.8,127.2 L 567.6,125.8 L 570.4,124.5 L 573.1,123.1 L 575.9,121.7 L 578.7,120.3 L 581.4,118.8 L 584.2,117.4 L 587.0,115.9 L 589.8,114.5 L 592.6,113.0 L 595.4,111.5 L 598.2,110.0 L 601.0,108.5 L 603.9,106.9 L 606.7,105.4 L 609.5,103.9 L 612.3,102.3 L 615.2,100.7 L 618.0,99.1 L 620.9,97.5 L 623.7,95.9 L 626.6,94.3 L 629.4,92.6 L 632.3,91.0 L 635.2,89.3 L 638.0,87.7 L 640.9,86.0 L 643.8,84.3 L 646.7,82.6 L 649.6,80.9"/>
<path class="curve" d="M 112.4,241.0 L 112.6,244.1 L 113.0,246.0 L 113.4,247.7 L 113.9,249.2 L 114.5,250.5 L 115.1,251.8 L 115.8,253.0 L 116.5,254.2 L 117.2,255.3 L 118.0,256.3 L 118.8,257.3 L 119.6,258.3 L 120.5,259.3 L 121.4,260.2 L 122.3,261.1 L 123.2,262.0 L 124.2,262.8 L 125.2,263.7 L 126.2,264.5 L 127.2,265.2 L 128.2,266.0 L 129.3,266.7 L 130.4,267.5 L 131.5,268.2 L 132.6,268.9 L 133.8,269.6 L 134.9,270.2 L 136.1,270.9 L 137.3,271.5 L 138.5,272.1 L 139.7,272.7 L 141.0,273.3 L 142.2,273.9 L 143.5,274.5 L 144.8,275.0 L 146.1,275.5 L 147.4,276.1 L 148.8,276.6 L 150.1,277.1 L 151.5,277.6 L 152.8,278.1 L 154.2,278.5 L 155.6,279.0 L 157.0,279.4 L 158.5,279.9 L 159.9,280.3 L 161.4,280.7 L 162.8,281.1 L 164.3,281.5 L 165.8,281.9 L 167.3,282.3 L 168.8,282.6 L 170.3,283.0 L 171.9,283.3 L 173.4,283.7 L 175.0,284.0 L 176.5,284.3 L 178.1,284.6 L 179.7,284.9 L 181.3,285.2 L 182.9,285.5 L 184.6,285.7 L 186.2,286.0 L 187.8,286.3 L 189.5,286.5 L 191.2,286.8 L 192.8,287.0 L 194.5,287.2 L 196.2,287.4 L 197.9,287.6 L 199.7,287.8 L 201.4,288.0 L 203.1,288.2 L 204.9,288.4 L 206.6,288.6 L 208.4,288.7 L 210.2,288.9 L 211.9,289.0 L 213.7,289.2 L 215.5,289.3 L 217.3,289.4 L 219.2,289.6 L 221.0,289.7 L 222.8,289.8 L 224.7,289.9 L 226.5,290.0 L 228.4,290.1 L 230.3,290.2 L 232.1,290.2 L 234.0,290.3 L 235.9,290.4 L 237.8,290.5 L 239.7,290.5 L 241.7,290.6 L 243.6,290.6 L 245.5,290.7 L 247.5,290.7 L 249.4,290.8 L 251.4,290.8 L 253.4,290.8 L 255.3,290.9 L 257.3,290.9 L 259.3,290.9 L 261.3,290.9 L 263.3,290.9 L 265.3,290.9 L 267.4,291.0 L 269.4,291.0 L 271.4,291.0 L 273.5,291.0 L 275.5,291.0 L 277.6,291.0 L 279.7,291.0 L 281.7,291.0 L 283.8,291.0 L 285.9,291.0 L 288.0,291.0 L 290.1,291.0 L 292.2,291.0 L 294.3,291.0 L 296.5,291.0 L 298.6,291.0 L 300.8,291.0 L 302.9,291.0 L 305.1,291.0 L 307.2,291.0 L 309.4,291.0 L 311.6,291.1 L 313.7,291.1 L 315.9,291.1 L 318.1,291.1 L 320.3,291.2 L 322.5,291.2 L 324.8,291.3 L 327.0,291.3 L 329.2,291.4 L 331.4,291.4 L 333.7,291.5 L 335.9,291.6 L 338.2,291.7 L 340.4,291.8 L 342.7,291.9 L 345.0,292.0 L 347.3,292.1 L 349.6,292.2 L 351.8,292.4 L 354.1,292.5 L 356.5,292.7 L 358.8,292.8 L 361.1,293.0 L 363.4,293.2 L 365.7,293.4 L 368.1,293.6 L 370.4,293.8 L 372.8,294.1 L 375.1,294.3 L 377.5,294.6 L 379.8,294.9 L 382.2,295.1 L 384.6,295.4 L 387.0,295.8 L 389.4,296.1 L 391.8,296.4 L 394.2,296.8 L 396.6,297.2 L 399.0,297.5 L 401.4,298.0 L 403.8,298.4 L 406.3,298.8 L 408.7,299.3 L 411.2,299.7 L 413.6,300.2 L 416.1,300.7 L 418.5,301.2 L 421.0,301.7 L 423.5,302.3 L 425.9,302.8 L 428.4,303.4 L 430.9,304.0 L 433.4,304.6 L 435.9,305.2 L 438.4,305.9 L 440.9,306.5 L 443.4,307.2 L 446.0,307.9 L 448.5,308.6 L 451.0,309.3 L 453.6,310.1 L 456.1,310.8 L 458.6,311.6 L 461.2,312.4 L 463.8,313.2 L 466.3,314.0 L 468.9,314.8 L 471.5,315.7 L 474.1,316.6 L 476.6,317.4 L 479.2,318.3 L 481.8,319.3 L 484.4,320.2 L 487.0,321.1 L 489.6,322.1 L 492.3,323.1 L 494.9,324.1 L 497.5,325.1 L 500.1,326.1 L 502.8,327.1 L 505.4,328.2 L 508.1,329.2 L 510.7,330.3 L 513.4,331.4 L 516.1,332.5 L 518.7,333.6 L 521.4,334.8 L 524.1,335.9 L 526.8,337.1 L 529.4,338.2 L 532.1,339.4 L 534.8,340.6 L 537.5,341.9 L 540.2,343.1 L 543.0,344.3 L 545.7,345.6 L 548.4,346.9 L 551.1,348.2 L 553.9,349.5 L 556.6,350.8 L 559.3,352.1 L 562.1,353.4 L 564.8,354.8 L 567.6,356.2 L 570.4,357.5 L 573.1,358.9 L 575.9,360.3 L 578.7,361.7 L 581.4,363.2 L 584.2,364.6 L 587.0,366.1 L 589.8,367.5 L 592.6,369.0 L 595.4,370.5 L 598.2,372.0 L 601.0,373.5 L 603.9,375.1 L 606.7,376.6 L 609.5,378.1 L 612.3,379.7 L 615.2,381.3 L 618.0,382.9 L 620.9,384.5 L 623.7,386.1 L 626.6,387.7 L 629.4,389.4 L 632.3,391.0 L 635.2,392.7 L 638.0,394.3 L 640.9,396.0 L 643.8,397.7 L 646.7,399.4 L 649.6,401.1"/>
<text x="467.6" y="84.6" fill="#1d4ed8" font-weight="600">E : y² = x³ + 17</text>
<line class="chord" x1="80.1" y1="217.4" x2="649.6" y2="114.9"/>
<text x="332.8" y="133.1" fill="#b45309" font-weight="600">chord y = x + 5</text>
<line class="refl" x1="555.2" y1="131.9" x2="555.2" y2="350.1"/>
<text x="565.3" y="221.6" fill="#059669">reflect in the x-axis</text>
<circle class="pt" cx="150.9" cy="204.6" r="5" fill="#b45309"/>
<text x="141.9" y="221.6" text-anchor="end" font-weight="700">P</text>
<circle class="pt" cx="218.3" cy="192.5" r="5" fill="#b45309"/>
<text x="220.3" y="181.5" text-anchor="middle" font-weight="700">Q</text>
<circle class="pt" cx="555.2" cy="131.9" r="5" fill="#64748b"/>
<text x="545.2" y="121.9" text-anchor="end" font-weight="700">P ∗ Q</text>
<circle class="pt" cx="555.2" cy="350.1" r="6" fill="#059669"/>
<text x="565.2" y="355.1" font-weight="700">P + Q</text>
<text class="tick" x="83.5" y="257.0" text-anchor="middle">-3</text>
<text class="tick" x="150.9" y="257.0" text-anchor="middle">-2</text>
<text class="tick" x="218.3" y="257.0" text-anchor="middle">-1</text>
<text class="tick" x="353.0" y="257.0" text-anchor="middle">1</text>
<text class="tick" x="420.4" y="257.0" text-anchor="middle">2</text>
<text class="tick" x="487.8" y="257.0" text-anchor="middle">3</text>
<text class="tick" x="555.2" y="257.0" text-anchor="middle">4</text>
<text class="tick" x="622.6" y="257.0" text-anchor="middle">5</text>
<text class="tick" x="277.7" y="365.7" text-anchor="end">-10</text>
<text class="tick" x="277.7" y="305.1" text-anchor="end">-5</text>
<text class="tick" x="277.7" y="183.9" text-anchor="end">5</text>
<text class="tick" x="277.7" y="123.3" text-anchor="end">10</text>
<text class="key" x="70" y="452">P = (−2, 3)   Q = (−1, 4)   P ∗ Q = (4, 9)   P + Q = (4, −9)</text>
<text class="key" x="70" y="472" fill="#475569">Substituting y = x + 5 into y² = x³ + 17 gives x³ − x² − 10x − 8 = 0, whose roots are exactly −2, −1 and 4.</text>
<text class="key" x="70" y="492" fill="#475569">λ = (4 − 3)/(−1 − (−2)) = 1;  x₃ = λ² − x₁ − x₂ = 4;  y₃ = λ(x₁ − x₃) − y₁ = −9.</text>
</svg>