:: Operations of Points on Elliptic Curve in Projective Coordinates :: by Yuichi Futa , Hiroyuki Okazaki , Daichi Mizushima and Yasunari Shidama :: :: Received November 3, 2011 :: Copyright (c) 2011-2012 Association of Mizar Users :: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland). :: This code can be distributed under the GNU General Public Licence :: version 3.0 or later, or the Creative Commons Attribution-ShareAlike :: License version 3.0 or later, subject to the binding interpretation :: detailed in file COPYING.interpretation. :: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these :: licenses, or see http://www.gnu.org/licenses/gpl.html and :: http://creativecommons.org/licenses/by-sa/3.0/. environ vocabularies NUMBERS, CARD_1, FUNCT_1, RELAT_1, XBOOLE_0, ARYTM_3, NEWTON, MCART_1, ORDINAL1, SUBSET_1, ARYTM_1, XXREAL_0, INT_2, NAT_1, ZFMISC_1, SUPINF_2, ALGSTR_0, GROUP_1, MESFUNC1, INT_1, VECTSP_1, STRUCT_0, EC_PF_1, EC_PF_2, RECDEF_2, XTUPLE_0; notations XBOOLE_0, ZFMISC_1, XTUPLE_0, SUBSET_1, FUNCT_1, ORDINAL1, MCART_1, FUNCT_2, BINOP_1, DOMAIN_1, NUMBERS, XCMPLX_0, XXREAL_0, NAT_1, INT_1, INT_2, NEWTON, STRUCT_0, ALGSTR_0, RLVECT_1, GROUP_1, VECTSP_1, BINOM, EC_PF_1; constructors NAT_D, PEPIN, EUCLID, REALSET1, RELSET_1, BINOM, EC_PF_1, BINOP_2, DOMAIN_1; registrations XBOOLE_0, STRUCT_0, XREAL_0, ORDINAL1, INT_1, RELAT_1, VECTSP_1, INT_3, SUBSET_1, XTUPLE_0; requirements REAL, NUMERALS, SUBSET, BOOLE, ARITHM; definitions ALGSTR_0, BINOM, XTUPLE_0; theorems TARSKI, XBOOLE_0, FUNCT_2, VECTSP_1, RLVECT_1, NAT_1, INT_2, PEPIN, GROUP_1, XXREAL_0, BINOP_1, ALGSTR_1, MCART_1, VECTSP_2, EC_PF_1, NAT_D, BINOM, XTUPLE_0; schemes NAT_1, FUNCT_2, BINOP_1; begin :: 1.Arithmetic in $\bf{GF}(p)$ reserve x for set; reserve i,j for Integer; reserve n,n1,n2,n3 for Nat; reserve K for Field; reserve p for Prime; reserve a,b,c,d for Element of GF(p); reserve a1,a2,a3,a4,a5,a6 for Element of K; theorem ThGF10: a1 = -a2 implies a1|^2 = a2|^2 proof assume AS: a1 = -a2; thus a1|^2 = a1*a1 by GROUP_1:51 .= a2*a2 by AS,EC_PF_1:26 .= a2|^2 by GROUP_1:51; end; theorem (1.K)" = 1.K proof 1.K <> 0.K; then (1.K)" * (1.K) = 1.K by VECTSP_1:def 10; hence thesis by VECTSP_1:def 6; end; theorem ThGF12: a2 <> 0.K & a4 <> 0.K & a1*a2" = a3*a4" implies a1*a4 = a2*a3 proof assume AS1: a2 <> 0.K & a4 <> 0.K; assume B1: a1*a2" = a3*a4"; a1*(a2"*a2) = a3*a4"*a2 by B1,GROUP_1:def 3; then a1*(1.K) = a3*a4"*a2 by AS1,VECTSP_1:def 10; then a1 = a3*a4"*a2 by VECTSP_1:def 6 .= a3*a2*a4" by GROUP_1:def 3; then a1*a4 = a3*a2*(a4"*a4) by GROUP_1:def 3 .= a3*a2*(1.K) by AS1,VECTSP_1:def 10 .= a3*a2 by VECTSP_1:def 6; hence thesis; end; theorem ThGF13: a2 <> 0.K & a4 <> 0.K & a1*a4 = a2*a3 implies a1*a2" = a3*a4" proof assume AS1: a2 <> 0.K & a4 <> 0.K; assume B1: a1*a4 = a2*a3; a2*a3*a4" = a1*(a4"*a4) by B1,GROUP_1:def 3 .= a1*(1.K) by AS1,VECTSP_1:def 10 .= a1 by VECTSP_1:def 6; then a1 = (a3*a4")*a2 by GROUP_1:def 3; then a1*a2" = (a3*a4")*(a2"*a2) by GROUP_1:def 3 .= (a3*a4")*(1.K) by AS1,VECTSP_1:def 10 .= a3*a4" by VECTSP_1:def 6; hence thesis; end; theorem ThGF14: a1 = 0.K & n > 1 implies a1 |^ n = 0.K proof assume AS1: a1 = 0.K; assume AS2: n > 1; n - 1 is Nat by AS2,NAT_1:20; then consider n1 be Nat such that A1: n1 = n - 1; a1 |^n = a1 |^(n1+1) by A1 .= a1|^n1 * a1 by EC_PF_1:24; hence a1 |^n = 0.K by AS1,VECTSP_1:12; end; theorem a1 = -a2 implies -a1 = a2 proof assume AS: a1 = -a2; a1 + a2 = 0.K by AS,VECTSP_1:16; hence thesis by VECTSP_1:16; end; theorem ThGF001: a1 + a2 + a3 + a4 = a4 + a2 + a3 + a1 & a1 + a2 + a3 + a4 = a1 + a4 + a3 + a2 proof thus a1 + a2 + a3 + a4 = (a2 + a3) + a1 + a4 by ALGSTR_1:7 .= a4 + (a2 + a3) + a1 by ALGSTR_1:8 .= a4 + a2 + a3 + a1 by ALGSTR_1:7; thus a1 + a2 + a3 + a4 = a1 + a3 + a2 + a4 by ALGSTR_1:8 .= a1 + a3 + a4 + a2 by ALGSTR_1:8 .= a1 + a4 + a3 + a2 by ALGSTR_1:8; end; theorem ThGF002: a1 + a2 + a3 + a4 = a1 + (a2 + a3 + a4) & a1 + a2 + a3 + a4 + a5 = a1 + (a2 + a3 + a4 + a5) proof thus a1 + a2 + a3 + a4 = a1 + a2 + (a3 + a4) by ALGSTR_1:7 .= a1 + (a2 + (a3 + a4)) by ALGSTR_1:7 .= a1 + (a2 + a3 + a4) by ALGSTR_1:7; thus a1 + a2 + a3 + a4 + a5 = a1 + a2 + a3 + (a4 + a5) by ALGSTR_1:7 .= a1 + a2 + (a3 + (a4 + a5)) by ALGSTR_1:7 .= a1 + (a2 + (a3 + (a4 + a5))) by ALGSTR_1:7 .= a1 + (a2 + a3 + (a4 + a5)) by ALGSTR_1:7 .= a1 + (a2 + a3 + a4 + a5) by ALGSTR_1:7; end; theorem a1 + a2 + a3 + a4 + a5 + a6 = a1 + (a2 + a3 + a4 + a5 + a6) proof thus a1 + a2 + a3 + a4 + a5 + a6 = a1 + a2 + a3 + a4 + (a5 + a6) by ALGSTR_1:7 .= a1 + (a2 + a3 + a4 + (a5 + a6)) by ThGF002 .= a1 + (a2 + a3 + a4 + a5 + a6) by ALGSTR_1:7; end; theorem ThGF101: a1 * a2 * a3 * a4 = a4 * a2 * a3 * a1 & a1 * a2 * a3 * a4 = a1 * a4 * a3 * a2 proof thus a1 * a2 * a3 * a4 = (a2 * a3) * a1 * a4 by GROUP_1:def 3 .= a4 * (a2 * a3) * a1 by GROUP_1:def 3 .= a4 * a2 * a3 * a1 by GROUP_1:def 3; thus a1 * a2 * a3 * a4 = a1 * a3 * a2 * a4 by GROUP_1:def 3 .= a1 * a3 * a4 * a2 by GROUP_1:def 3 .= a1 * a4 * a3 * a2 by GROUP_1:def 3; end; theorem ThGF102: a1 * a2 * a3 * a4 = a1 * (a2 * a3 * a4) & a1 * a2 * a3 * a4 * a5 = a1 * (a2 * a3 * a4 * a5) proof thus a1 * a2 * a3 * a4 = a1 * a2 * (a3 * a4) by GROUP_1:def 3 .= a1 * (a2 * (a3 * a4)) by GROUP_1:def 3 .= a1 * (a2 * a3 * a4) by GROUP_1:def 3; thus a1 * a2 * a3 * a4 * a5 = a1 * a2 * a3 * (a4 * a5) by GROUP_1:def 3 .= a1 * a2 * (a3 * (a4 * a5)) by GROUP_1:def 3 .= a1 * (a2 * (a3 * (a4 * a5))) by GROUP_1:def 3 .= a1 * (a2 * a3 * (a4 * a5)) by GROUP_1:def 3 .= a1 * (a2 * a3 * a4 * a5) by GROUP_1:def 3; end; theorem ThGF103: a1 * a2 * a3 * a4 * a5 * a6 = a1 * (a2 * a3 * a4 * a5 * a6) & a1 * a2 * a3 * a4 * a5 * a6 = a1 * (a2 * a3 * a4) * a5 * a6 proof thus A2: a1 * a2 * a3 * a4 * a5 * a6 = a1 * a2 * a3 * a4 * (a5 * a6) by GROUP_1:def 3 .= a1 * (a2 * a3 * a4 * (a5 * a6)) by ThGF102 .= a1 * (a2 * a3 * a4 * a5 * a6) by GROUP_1:def 3; thus a1 * a2 * a3 * a4 * a5 * a6 = a1 * ((a2 * a3 * a4) * (a5 * a6)) by A2,GROUP_1:def 3 .= a1 * (a2 * a3 * a4) * (a5 * a6) by GROUP_1:def 3 .= a1 * (a2 * a3 * a4) * a5 * a6 by GROUP_1:def 3; end; theorem ThGF200: (a1*a2*a3) |^n = (a1 |^n)*(a2 |^n)*(a3 |^n) proof thus (a1*a2*a3) |^n = ((a1*a2) |^n)*(a3 |^n) by BINOM:9 .= (a1 |^n)*(a2 |^n)*(a3 |^n) by BINOM:9; end; theorem ThGF300: a1*(a2+a3+a4) = a1*a2+a1*a3+a1*a4 & a1*(a2+a3-a4) = a1*a2+a1*a3-a1*a4 & a1*(a2-a3+a4) = a1*a2-a1*a3+a1*a4 & a1*(a2-a3-a4) = a1*a2-a1*a3-a1*a4 & a1*(-a2+a3+a4) = -a1*a2+a1*a3+a1*a4 & a1*(-a2+a3-a4) = -a1*a2+a1*a3-a1*a4 & a1*(-a2-a3+a4) = -a1*a2-a1*a3+a1*a4 & a1*(-a2-a3-a4) = -a1*a2-a1*a3-a1*a4 proof thus a1*(a2+a3+a4) = a1*(a2+a3)+a1*a4 by VECTSP_1:4 .= a1*a2+a1*a3+a1*a4 by VECTSP_1:4; thus a1*(a2+a3-a4) = a1*(a2+a3)+a1*(-a4) by VECTSP_1:4 .= a1*a2+a1*a3+a1*(-a4) by VECTSP_1:4 .= a1*a2+a1*a3-a1*a4 by VECTSP_1:8; thus a1*(a2-a3+a4) = a1*(a2+(-a3))+a1*a4 by VECTSP_1:4 .= (a1*a2+a1*(-a3))+a1*a4 by VECTSP_1:4 .= a1*a2-a1*a3+a1*a4 by VECTSP_1:8; thus a1*(a2-a3-a4) = a1*(a2+(-a3))+a1*(-a4) by VECTSP_1:4 .= (a1*a2+a1*(-a3))+a1*(-a4) by VECTSP_1:4 .= a1*a2-a1*a3+a1*(-a4) by VECTSP_1:8 .= a1*a2-a1*a3-a1*a4 by VECTSP_1:8; thus a1*(-a2+a3+a4) = a1*(-a2+a3)+a1*a4 by VECTSP_1:4 .= (a1*(-a2)+a1*a3)+a1*a4 by VECTSP_1:4 .= -a1*a2+a1*a3+a1*a4 by VECTSP_1:8; thus a1*(-a2+a3-a4) = a1*(-a2+a3)+a1*(-a4) by VECTSP_1:4 .= (a1*(-a2)+a1*a3)+a1*(-a4) by VECTSP_1:4 .= -a1*a2+a1*a3+a1*(-a4) by VECTSP_1:8 .= -a1*a2+a1*a3-a1*a4 by VECTSP_1:8; thus a1*(-a2-a3+a4) = a1*(-a2+(-a3))+a1*a4 by VECTSP_1:4 .= (a1*(-a2)+a1*(-a3))+a1*a4 by VECTSP_1:4 .= -a1*a2+a1*(-a3)+a1*a4 by VECTSP_1:8 .= -a1*a2-a1*a3+a1*a4 by VECTSP_1:8; thus a1*(-a2-a3-a4) = a1*(-a2+(-a3))+a1*(-a4) by VECTSP_1:4 .= (a1*(-a2)+a1*(-a3))+a1*(-a4) by VECTSP_1:4 .= -a1*a2+a1*(-a3)+a1*(-a4) by VECTSP_1:8 .= -a1*a2-a1*a3+a1*(-a4) by VECTSP_1:8 .= -a1*a2-a1*a3-a1*a4 by VECTSP_1:8; end; theorem ThGFA3: (a1 + a2)*(a1 - a2) = a1 |^2 - a2 |^2 proof thus (a1 + a2)*(a1 - a2) = a1*(a1-a2)+a2*(a1-a2) by VECTSP_1:4 .= a1*a1-a1*a2+a2*(a1-a2) by VECTSP_1:11 .= a1 |^2 -a1*a2+a2*(a1-a2) by GROUP_1:51 .= a1 |^2 -a1*a2+(a2*a1-a2*a2) by VECTSP_1:11 .= a1 |^2 -a1*a2+(a1*a2-a2 |^2) by GROUP_1:51 .= a1 |^2 + (-a1*a2 +(a1*a2-a2 |^2)) by ALGSTR_1:7 .= a1 |^2 + ((-a1*a2+a1*a2)-a2 |^2) by ALGSTR_1:7 .= a1 |^2 + (0.K-a2 |^2) by VECTSP_1:19 .= a1 |^2 - a2 |^2 by VECTSP_1:18; end; theorem (a1 + a2)*(a1 |^2 - a1*a2 + a2 |^2) = a1 |^3 + a2 |^3 proof thus (a1 + a2)*(a1 |^2 - a1*a2 + a2 |^2) = a1*((a1 |^2 -a1*a2)+a2 |^2)+a2*((a1 |^2 -a1*a2)+a2 |^2) by VECTSP_1:4 .= a1*(a1 |^2 -a1*a2)+a1*(a2 |^2)+a2*((a1 |^2 -a1*a2)+a2 |^2) by VECTSP_1:4 .= a1*(a1 |^2)-a1*(a1*a2)+a1*(a2 |^2)+a2*((a1 |^2 -a1*a2)+a2 |^2) by VECTSP_1:11 .= (a1 |^2)*a1-(a1*a1)*a2+a1*(a2 |^2)+a2*((a1 |^2 -a1*a2)+a2 |^2) by GROUP_1:def 3 .= (a1 |^2)*a1-(a1*a1)*a2+a1*(a2 |^2)+(a2*(a1 |^2 -a1*a2)+a2*(a2 |^2)) by VECTSP_1:4 .= (a1 |^(2+1))-(a1*a1)*a2+a1*(a2 |^2)+(a2*(a1 |^2 -a1*a2)+(a2 |^2)*a2) by EC_PF_1:24 .= (a1 |^3)-(a1*a1)*a2+a1*(a2 |^2)+(a2*(a1 |^2)-a2*(a1*a2)+(a2 |^2)*a2) by VECTSP_1:11 .= (a1 |^3)-(a1 |^2)*a2+a1*(a2 |^2)+(a2*(a1 |^2)-a2*(a1*a2)+(a2 |^2)*a2) by GROUP_1:51 .= (a1 |^3)-(a1 |^2)*a2+a1*(a2 |^2)+((a1 |^2)*a2-(a1*a2)*a2+(a2 |^(2+1))) by EC_PF_1:24 .= ((a1 |^3)-(a1 |^2)*a2+a1*(a2 |^2))+(((a1 |^2)*a2-a1*(a2*a2))+(a2 |^3)) by GROUP_1:def 3 .= ((a1 |^3)+(-(a1 |^2)*a2+a1*(a2 |^2)))+(((a1 |^2)*a2-a1*(a2*a2)) +(a2 |^3)) by ALGSTR_1:7 .= ((a1 |^3)+(-(a1 |^2)*a2+a1*(a2 |^2)))+(((a1 |^2)*a2-a1*(a2 |^2)) +(a2 |^3)) by GROUP_1:51 .= (((a1 |^3)+(a1*(a2 |^2)-(a1 |^2)*a2))+((a1 |^2)*a2-a1*(a2 |^2))) +(a2 |^3) by ALGSTR_1:8 .= ((a1 |^3)+((a1*(a2 |^2)-(a1 |^2)*a2)+((a1 |^2)*a2-a1*(a2 |^2)))) +(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+(((a1*(a2 |^2)-(a1 |^2)*a2)+(a1 |^2)*a2)-a1*(a2 |^2))) +(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+((a1*(a2 |^2)+(-(a1 |^2)*a2+(a1 |^2)*a2))-a1*(a2 |^2))) +(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+((a1*(a2 |^2)+0.K)-a1*(a2 |^2)))+(a2 |^3) by VECTSP_1:19 .= ((a1 |^3)+(a1*(a2 |^2)-a1*(a2 |^2)))+(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+0.K)+(a2 |^3) by VECTSP_1:19 .= (a1 |^3)+(a2 |^3) by ALGSTR_1:7; end; theorem ThGFA5: (a1 - a2)*(a1 |^2 + a1*a2 + a2 |^2) = a1 |^3 - a2 |^3 proof thus (a1 - a2)*(a1 |^2 + a1*a2 + a2 |^2) = a1*(a1 |^2 +a1*a2+a2 |^2)-a2*(a1 |^2 +a1*a2+a2 |^2) by VECTSP_1:13 .= a1*(a1 |^2 +a1*a2)+a1*(a2 |^2)-a2*((a1 |^2 +a1*a2)+a2 |^2) by VECTSP_1:4 .= a1*(a1 |^2)+a1*(a1*a2)+a1*(a2 |^2)-a2*((a1 |^2 +a1*a2)+a2 |^2) by VECTSP_1:4 .= (a1 |^2)*a1+(a1*a1)*a2+a1*(a2 |^2)-a2*((a1 |^2 +a1*a2)+a2 |^2) by GROUP_1:def 3 .= (a1 |^2)*a1+(a1*a1)*a2+a1*(a2 |^2)-(a2*(a1 |^2 +a1*a2)+a2*(a2 |^2)) by VECTSP_1:4 .= (a1 |^(2+1))+(a1*a1)*a2+a1*(a2 |^2)-(a2*(a1 |^2 +a1*a2)+(a2 |^2)*a2) by EC_PF_1:24 .= (a1 |^3)+(a1*a1)*a2+a1*(a2 |^2)-(a2*(a1 |^2)+a2*(a1*a2)+(a2 |^2)*a2) by VECTSP_1:4 .= (a1 |^3)+(a1 |^2)*a2+a1*(a2 |^2)-(a2*(a1 |^2)+a2*(a1*a2)+(a2 |^2)*a2) by GROUP_1:51 .= (a1 |^3)+(a1 |^2)*a2+a1*(a2 |^2)-((a2*(a1 |^2)+a2*(a1*a2))+(a2 |^(2+1))) by EC_PF_1:24 .= ((a1 |^3)+(a1 |^2)*a2+a1*(a2 |^2))-(a2*(a1 |^2)+a2*(a1*a2))-(a2 |^3) by VECTSP_1:17 .= ((a1 |^3)+((a1 |^2)*a2+a1*(a2 |^2)))-(a2*(a1 |^2)+a2*(a1*a2))-(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))-(a2*(a1 |^2)+a2*(a1*a2))))-(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))+(-a2*(a1*a2)-a2*(a1 |^2)))) -(a2 |^3) by VECTSP_1:17 .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))+(-a1*(a2*a2)-(a1 |^2)*a2))) -(a2 |^3) by GROUP_1:def 3 .= ((a1 |^3)+(((a1 |^2)*a2+a1*(a2 |^2))+(-a1*(a2 |^2)-(a1 |^2)*a2))) -(a2 |^3) by GROUP_1:51 .= ((a1 |^3)+((((a1 |^2)*a2+a1*(a2 |^2))-a1*(a2 |^2))-(a1 |^2)*a2)) -(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+(((a1 |^2)*a2+(a1*(a2 |^2)-a1*(a2 |^2)))-(a1 |^2)*a2)) -(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+(((a1 |^2)*a2+0.K)-(a1 |^2)*a2))-(a2 |^3) by VECTSP_1:19 .= ((a1 |^3)+((a1 |^2)*a2-(a1 |^2)*a2))-(a2 |^3) by ALGSTR_1:7 .= ((a1 |^3)+0.K)-(a2 |^3) by VECTSP_1:19 .= (a1 |^3)-(a2 |^3) by ALGSTR_1:7; end; definition let n, p be natural number; attr p is n_or_greater means :Defgt3: n <= p; end; registration cluster 5_or_greater prime for natural number; existence proof take 5; thus thesis by Defgt3,PEPIN:59; end; end; theorem ThGF3: for gi, gj, gij, a be Element of GF(p) st gi = i mod p & gj = j mod p & gij = (i+j) mod p holds gi*a + gj*a = gij*a proof let gi, gj, gij, a be Element of GF(p) such that A1: gi = i mod p & gj = j mod p & gij = (i+j) mod p; (gi + gj) * a = gij*a by A1,EC_PF_1:15; hence thesis by VECTSP_1:4; end; theorem ThGF4: for gi, gj, a be Element of GF(p) st gi = i mod p & gj = j mod p & j = i + 1 holds gi*a + a = gj*a proof let gi, gj, a be Element of GF(p) such that A1: gi = i mod p & gj = j mod p & j = i + 1; reconsider g1 = 1 mod p as Element of GF(p) by EC_PF_1:14; p > 1 by INT_2:def 4; then g1 = 1 by NAT_D:63 .= 1.GF(p) by EC_PF_1:12; then gi*a + (1.GF(p))*a = gj*a by A1,ThGF3; hence thesis by VECTSP_1:def 6; end; theorem ThGF5: for g2, a be Element of GF(p) st g2 = 2 mod p holds a + a = g2 * a proof let g2, a be Element of GF(p) such that A1: g2 = 2 mod p; reconsider g1 = 1 mod p as Element of GF(p) by EC_PF_1:14; A3: g2 = (1+1) mod p by A1; p > 1 by INT_2:def 4; then g1 = 1 by NAT_D:63 .= 1.GF(p) by EC_PF_1:12; then (1.GF(p))*a + (1.GF(p))*a = g2*a by A3,ThGF3; then a + (1.GF(p))*a = g2*a by VECTSP_1:def 6; hence thesis by VECTSP_1:def 6; end; theorem ThGF6: for gi, gj, gij, a be Element of GF(p) st gi = i mod p & gj = j mod p & gij = (i-j) mod p holds gi*a - gj*a = gij*a proof let gi, gj, gij, a be Element of GF(p) such that A1: gi = i mod p & gj = j mod p & gij = (i-j) mod p; gj + gij = (j+(i-j)) mod p by A1,EC_PF_1:15 .= gi by A1; then gj*a + gij*a - gj*a = gi*a - gj*a by VECTSP_1:4; then gij*a + (gj*a + (-gj*a)) = gi*a - gj*a by ALGSTR_1:7; then gij*a + 0.GF(p) = gi*a - gj*a by VECTSP_1:19; hence thesis by ALGSTR_1:7; end; theorem ThGF7: for gi, gj, a be Element of GF(p) st gi = i mod p & gj = j mod p & i = j + 1 holds gi*a - gj*a = a proof let gi, gj, a be Element of GF(p) such that A1: gi = i mod p & gj = j mod p & i = j + 1; reconsider g1 = 1 mod p as Element of GF(p) by EC_PF_1:14; A3: g1 = (i-j) mod p by A1; p > 1 by INT_2:def 4; then g1 = 1 by NAT_D:63 .= 1.GF(p) by EC_PF_1:12; then gi*a - gj*a = (1.GF(p))*a by A1,A3,ThGF6; hence thesis by VECTSP_1:def 6; end; theorem ThGF8: for gi, gj, a be Element of GF(p) st gi = i mod p & gj = j mod p & i = j + 1 holds gi*a - a = gj*a proof let gi, gj, a be Element of GF(p) such that A1: gi = i mod p & gj = j mod p & i = j + 1; reconsider g1 = 1 mod p as Element of GF(p) by EC_PF_1:14; A3: gj = (i-1) mod p by A1; p > 1 by INT_2:def 4; then g1 = 1 by NAT_D:63 .= 1.GF(p) by EC_PF_1:12; then gi*a - (1.GF(p))*a = gj*a by A1,A3,ThGF6; hence thesis by VECTSP_1:def 6; end; theorem ThGF9: for g2, a be Element of GF(p) st g2 = 2 mod p holds g2*a - a = a proof let g2, a be Element of GF(p) such that A1: g2 = 2 mod p; reconsider g1 = 1 mod p as Element of GF(p) by EC_PF_1:14; A3: g1 = (2-1) mod p; p > 1 by INT_2:def 4; then g1 = 1 by NAT_D:63 .= 1.GF(p) by EC_PF_1:12; then g2*a - (1.GF(p))*a = (1.GF(p))*a by A1,A3,ThGF6; then g2*a - a = (1.GF(p))*a by VECTSP_1:def 6; hence thesis by VECTSP_1:def 6; end; theorem ThGFA1: for g2, a, b be Element of GF(p) st g2 = 2 mod p holds (a + b) |^2 = a |^2 + g2*a*b + b |^2 proof let g2, a, b be Element of GF(p) such that A1: g2 = 2 mod p; thus (a + b) |^2 = (a + b)*(a + b) by EC_PF_1:22 .= a*(a+b)+b*(a+b) by VECTSP_1:4 .= a*a+a*b+b*(a+b) by VECTSP_1:4 .= a |^2 + a*b + b*(a+b) by EC_PF_1:22 .= a |^2 + a*b + (b*a+b*b) by VECTSP_1:4 .= a |^2 + a*b + (a*b+b |^2) by EC_PF_1:22 .= a |^2 + (a*b+(a*b+b |^2)) by ALGSTR_1:7 .= a |^2 + ((a*b+a*b)+b |^2) by ALGSTR_1:7 .= a |^2 + (g2*(a*b)+b |^2) by A1,ThGF5 .= a |^2 + g2*(a*b) + b|^2 by ALGSTR_1:7 .= a |^2 + g2*a*b + b |^2 by GROUP_1:def 3; end; theorem ThGFA2: for g2, a, b be Element of GF(p) st g2 = 2 mod p holds (a - b) |^2 = a |^2 - g2*a*b + b |^2 proof let g2, a, b be Element of GF(p) such that A1: g2 = 2 mod p; thus (a - b) |^2 = (a - b)*(a - b) by EC_PF_1:22 .= a*(a-b)-b*(a-b) by VECTSP_1:13 .= a*a-a*b-b*(a-b) by VECTSP_1:11 .= a |^2 - a*b - b*(a-b) by EC_PF_1:22 .= a |^2 - a*b - (b*a-b*b) by VECTSP_1:11 .= a |^2 - a*b - (a*b-b |^2) by EC_PF_1:22 .= a |^2 + (-a*b-(a*b-b |^2)) by ALGSTR_1:7 .= a |^2 + (-a*b+(-a*b+b |^2)) by VECTSP_1:17 .= a |^2 + ((-a*b-a*b)+b |^2) by ALGSTR_1:7 .= a |^2 + (g2*(-a*b)+b |^2) by A1,ThGF5 .= a |^2 + g2*(-a*b) + b|^2 by ALGSTR_1:7 .= a |^2 - g2*(a*b) + b |^2 by VECTSP_1:8 .= a |^2 - g2*a*b + b |^2 by GROUP_1:def 3; end; theorem ThGFA6: for g2, a, b, c, d be Element of GF(p) st g2 = 2 mod p holds (a*c+b*d) |^2 = (a |^2)*(c |^2) + g2*a*b*c*d + (b |^2)*(d |^2) proof let g2, a, b, c, d be Element of GF(p) such that A1: g2 = 2 mod p; thus (a*c+b*d) |^2 = ((a*c) |^2)+g2*(a*c)*(b*d)+((b*d) |^2) by A1,ThGFA1 .= (a |^2)*(c |^2)+g2*(a*c)*(b*d)+((b*d) |^2) by BINOM:9 .= (a |^2)*(c |^2)+g2*(a*c)*(b*d)+(b |^2)*(d |^2) by BINOM:9 .= (a |^2)*(c |^2)+g2*((a*c)*(b*d))+(b |^2)*(d |^2) by GROUP_1:def 3 .= (a |^2)*(c |^2)+g2*((a*c)*b*d)+(b |^2)*(d |^2) by GROUP_1:def 3 .= (a |^2)*(c |^2)+g2*(a*b*c*d)+(b |^2)*(d |^2) by GROUP_1:def 3 .= (a |^2)*(c |^2)+g2*a*b*c*d+(b |^2)*(d |^2) by ThGF102; end; theorem ThGFX: for p be Prime, n be Nat, g2 be Element of GF(p) st p > 2 & g2 = 2 mod p holds g2 <> 0.GF(p) & g2 |^n <> 0.GF(p) proof let p be Prime, n be Nat, g2 be Element of GF(p) such that A1: p > 2 and A2: g2 = 2 mod p; A3: g2 <> 0 by A1,A2,NAT_D:63; hence g2 <> 0.GF(p) by EC_PF_1:11; g2 |^n <> 0 by A3,EC_PF_1:25; hence g2 |^n <> 0.GF(p) by EC_PF_1:11; end; theorem for p be Prime, n be Nat, g2, g3 be Element of GF(p) st p > 3 & g3 = 3 mod p holds g3 <> 0.GF(p) & g3 |^n <> 0.GF(p) proof let p be Prime, n be Nat, g2, g3 be Element of GF(p) such that A1: p > 3; assume A3: g3 = 3 mod p; A4: g3 <> 0 by A1,A3,NAT_D:63; hence g3 <> 0.GF(p) by EC_PF_1:11; g3 |^n <> 0 by A4,EC_PF_1:25; hence g3 |^n <> 0.GF(p) by EC_PF_1:11; end; begin :: 2.Parameters of an elliptic curve definition let p be 5_or_greater Prime; func EC_WParam p -> Subset of [:the carrier of GF(p),the carrier of GF(p):] equals {[a,b] where a,b is Element of GF(p) : Disc(a,b,p) <> 0.GF(p) }; correctness proof now let x be set; assume x in {[a,b] where a,b is Element of GF(p) : Disc(a,b,p) <> 0.GF(p) }; then ex a,b be Element of GF(p) st x = [a,b] & Disc(a,b,p) <> 0.GF(p); hence x in [:the carrier of GF(p), the carrier of GF(p):]; end; hence thesis by TARSKI:def 3; end; end; registration let p be 5_or_greater Prime; cluster EC_WParam p -> non empty; coherence proof ex a,b be Element of GF(p) st [a,b] in EC_WParam p proof set a = 1.GF(p); set b = 0.GF(p); reconsider g2 = 2 mod p as Element of GF(p) by EC_PF_1:14; reconsider g4 = 4 mod p as Element of GF(p) by EC_PF_1:14; reconsider g27 = 27 mod p as Element of GF(p) by EC_PF_1:14; A4: g4 = (2*2) mod p .= g2*g2 by EC_PF_1:18 .= g2|^2 by EC_PF_1:22; p >= 4+1 by Defgt3; then A5: p > 2 & p > 3 by XXREAL_0:2; Disc(a, b, p) = g4*(a |^(2+1)) + g27*(b |^2) by EC_PF_1:def 7 .= g4*(a|^2 * a) + g27*(b |^2) by EC_PF_1:24 .= g4*(a|^2 * a) + g27*(b * b) by EC_PF_1:22 .= g4*((a * a)*1.GF(p)) + g27*(0.GF(p)*0.GF(p)) by EC_PF_1:22 .= g4*(a * a) + g27*(0.GF(p)*0.GF(p)) by VECTSP_1:def 6 .= g4*(1.GF(p)*1.GF(p)) + g27*0.GF(p) by VECTSP_1:12 .= g4*1.GF(p) + g27*0.GF(p) by VECTSP_1:def 6 .= g4*1.GF(p) + 0.GF(p) by VECTSP_1:12 .= g4*1.GF(p) by ALGSTR_1:7 .= g4 by VECTSP_1:def 6; then A6: Disc(a, b, p) <> 0.GF(p) by A4,A5,ThGFX; take a, b; thus thesis by A6; end; hence thesis; end; end; definition let p be 5_or_greater Prime; let z be Element of EC_WParam p; redefine func z`1 -> Element of GF(p); correctness proof thus z`1 is Element of GF(p); end; redefine func z`2 -> Element of GF(p); correctness proof thus z`2 is Element of GF(p); end; end; theorem LMZ1Z2: for p be 5_or_greater Prime, z be Element of EC_WParam p holds p > 3 & Disc(z`1,z`2,p) <> 0.GF(p) proof let p be 5_or_greater Prime, z be Element of EC_WParam p; p >= 4+1 by Defgt3; hence p > 3 by XXREAL_0:2; z in {[a,b] where a,b is Element of GF(p) : Disc(a,b,p) <> 0.GF(p) }; then consider a,b be Element of GF(p) such that P1: z = [a,b] & Disc(a,b,p) <> 0.GF(p); a= z`1 & b = z`2 by P1,MCART_1:7; hence Disc(z`1,z`2,p) <> 0.GF(p) by P1; end; reserve px,py,pz for set; reserve Px,Py,Pz for Element of GF(p); reserve P for Element of ProjCo(GF(p)); reserve O for Element of EC_SetProjCo(a,b,p); definition let p be Prime; let a, b be Element of GF(p); let P be Element of EC_SetProjCo(a,b,p); func P`1_3 -> Element of GF(p) means :DefX: P = [px,py,pz] implies it = px; existence proof P is Element of ProjCo(GF(p)); then consider Px, Py, Pz be set such that A1: Px in the carrier of GF(p) & Py in the carrier of GF(p) & Pz in the carrier of GF(p) and A2: P = [Px, Py, Pz] by MCART_1:68; take Px; thus thesis by A1,A2,XTUPLE_0:3; end; uniqueness proof let y, z be Element of GF(p); assume A1: P = [px, py, pz] implies y = px; assume A2: P = [px, py, pz] implies z = px; P is Element of ProjCo(GF(p)); then consider Px, Py, Pz be set such that Px in the carrier of GF(p) & Py in the carrier of GF(p) & Pz in the carrier of GF(p) and A4: P = [Px, Py, Pz] by MCART_1:68; y = Px by A1,A4; hence thesis by A2,A4; end; func P`2_3 -> Element of GF(p) means :DefY: P = [px,py,pz] implies it = py; existence proof P is Element of ProjCo(GF(p)); then consider Px, Py, Pz be set such that A1: Px in the carrier of GF(p) & Py in the carrier of GF(p) & Pz in the carrier of GF(p) and A2: P = [Px, Py, Pz] by MCART_1:68; take Py; thus thesis by A1,A2,XTUPLE_0:3; end; uniqueness proof let y, z be Element of GF(p); assume A1: P = [px, py, pz] implies y = py; assume A2: P = [px, py, pz] implies z = py; P is Element of ProjCo(GF(p)); then consider Px, Py, Pz be set such that Px in the carrier of GF(p) & Py in the carrier of GF(p) & Pz in the carrier of GF(p) and A4: P = [Px, Py, Pz] by MCART_1:68; y = Py by A1,A4; hence thesis by A2,A4; end; func P`3_3 -> Element of GF(p) means :DefZ: P = [px,py,pz] implies it = pz; existence proof P is Element of ProjCo(GF(p)); then consider Px, Py, Pz be set such that A1: Px in the carrier of GF(p) & Py in the carrier of GF(p) & Pz in the carrier of GF(p) and A2: P = [Px, Py, Pz] by MCART_1:68; take Pz; thus thesis by A1,A2,XTUPLE_0:3; end; uniqueness proof let y, z be Element of GF(p); assume A1: P = [px, py, pz] implies y = pz; assume A2: P = [px, py, pz] implies z = pz; P is Element of ProjCo(GF(p)); then consider Px, Py, Pz be set such that Px in the carrier of GF(p) & Py in the carrier of GF(p) & Pz in the carrier of GF(p) and A4: P = [Px, Py, Pz] by MCART_1:68; y = Pz by A1,A4; hence thesis by A2,A4; end; end; theorem ThECSet1: for p be Prime, a, b be Element of GF(p), P be Element of EC_SetProjCo(a,b,p) holds P = [P`1_3,P`2_3,P`3_3] proof let p be Prime, a, b be Element of GF(p), P be Element of EC_SetProjCo(a,b,p); P is Element of ProjCo(GF(p)); then consider Px, Py, Pz be set such that Px in the carrier of GF(p) & Py in the carrier of GF(p) & Pz in the carrier of GF(p) and A2: P = [Px, Py, Pz] by MCART_1:68; thus P = [P`1_3, Py, Pz] by A2,DefX .= [P`1_3, P`2_3, Pz] by A2,DefY .= [P`1_3, P`2_3, P`3_3] by A2,DefZ; end; theorem ThECSet2: for p be Prime, a, b be Element of GF(p), P be Element of EC_SetProjCo(a,b,p), Q be Element of ProjCo(GF(p)) holds P = Q iff P`1_3 = Q`1_3 & P`2_3 = Q`2_3 & P`3_3 = Q`3_3 proof let p be Prime, a, b be Element of GF(p), P be Element of EC_SetProjCo(a,b,p), Q be Element of ProjCo(GF(p)); A2: P = [P`1_3, P`2_3, P`3_3] by ThECSet1; A3: Q = [Q`1_3, Q`2_3, Q`3_3] by MCART_1:44; thus P = Q implies P`1_3 = Q`1_3 & P`2_3 = Q`2_3 & P`3_3 = Q`3_3 by A2,A3,XTUPLE_0:3; assume A5: P`1_3 = Q`1_3 & P`2_3 = Q`2_3 & P`3_3 = Q`3_3; thus P = Q by A3,A5,ThECSet1; end; theorem for p be Prime, a, b, Px, Py, Pz be Element of GF(p), P be Element of EC_SetProjCo(a,b,p) st P = [Px, Py, Pz] holds P`1_3 = Px & P`2_3 = Py & P`3_3 = Pz by DefX,DefY,DefZ; definition let p be Prime; let P be Element of ProjCo(GF(p)); let CEQ be Function of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):], GF(p); pred P is_on_curve CEQ means :DefOnCurve: CEQ.P = 0.GF(p); correctness; end; theorem ThOnCurve1: P is_on_curve EC_WEqProjCo(a,b,p) iff P is Element of EC_SetProjCo(a,b,p) proof hereby assume P is_on_curve EC_WEqProjCo(a,b,p); then EC_WEqProjCo(a,b,p).P = 0.GF(p) by DefOnCurve; then P in {Q where Q is Element of ProjCo(GF(p)) : EC_WEqProjCo(a,b,p).Q = 0.GF(p)}; hence P is Element of EC_SetProjCo(a,b,p) by EC_PF_1:def 9; end; assume P is Element of EC_SetProjCo(a,b,p); then P in EC_SetProjCo(a,b,p); then P in {Q where Q is Element of ProjCo(GF(p)) : EC_WEqProjCo(a,b,p).Q = 0.GF(p)} by EC_PF_1:def 9; then ex Q be Element of ProjCo(GF(p)) st P=Q & EC_WEqProjCo(a,b,p).Q = 0.GF(p); hence P is_on_curve EC_WEqProjCo(a,b,p) by DefOnCurve; end; theorem ThOnCurve2: for p be Prime, a, b be Element of GF(p), P be Element of EC_SetProjCo(a,b,p) holds ((P`2_3) |^2)*(P`3_3) - ((P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3) = 0.GF(p) proof let p be Prime, a, b be Element of GF(p), P be Element of EC_SetProjCo(a,b,p); consider PP be Element of ProjCo(GF(p)) such that A1: PP = P & PP in EC_SetProjCo(a,b,p); A2: PP`1_3 = P`1_3 & PP`2_3 = P`2_3 & PP`3_3 = P`3_3 by A1,ThECSet2; P is_on_curve EC_WEqProjCo(a,b,p) by ThOnCurve1; then EC_WEqProjCo(a,b,p).PP = 0.GF(p) by A1,DefOnCurve; hence thesis by A2,EC_PF_1:def 8; end; definition let p be Prime; let P be Element of ProjCo(GF(p)); func rep_pt(P) -> Element of ProjCo(GF(p)) equals :DefRepPoint: [P`1_3*(P`3_3)",P`2_3*(P`3_3)",1] if P`3_3 <> 0, [0, 1, 0] if P`3_3 = 0; coherence proof per cases; suppose A1: P`3_3 <> 0; [P`1_3*(P`3_3)",P`2_3*(P`3_3)",1.GF(p)] <> [0.GF(p),0.GF(p),0.GF(p)] by XTUPLE_0:3; then not [P`1_3*(P`3_3)",P`2_3*(P`3_3)",1.GF(p)] in {[0.GF(p),0.GF(p),0.GF(p)]} by TARSKI:def 1; then [P`1_3*(P`3_3)",P`2_3*(P`3_3)",1.GF(p)] in [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] \ {[0.GF(p),0.GF(p),0.GF(p)]} by XBOOLE_0:def 5; then [P`1_3*(P`3_3)",P`2_3*(P`3_3)",1.GF(p)] in ProjCo(GF(p)) by EC_PF_1:def 6; hence thesis by A1,EC_PF_1:12; end; suppose A1: P`3_3 = 0; set Q = [0, 1, 0]; thus thesis by A1,EC_PF_1:42; end; end; consistency; end; theorem ThRepPoint1: for p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p) holds rep_pt(P) _EQ_ P & rep_pt(P) in EC_SetProjCo(z`1,z`2,p) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p); set a = z`1; set b = z`2; A1: p > 3 & Disc(a,b,p) <> 0.GF(p) by LMZ1Z2; consider PP be Element of ProjCo(GF(p)) such that A2: PP = P & PP in EC_SetProjCo(a,b,p); per cases; suppose P`3_3 = 0; then A3: PP`3_3 = 0 by A2,ThECSet2; consider Q be Element of ProjCo(GF(p)) such that A4: Q in EC_SetProjCo(a,b,p) & Q _EQ_ PP and A5: Q`1_3 = 0 & Q`2_3= 1 & Q`3_3= 0 by A1,A2,A3,EC_PF_1:49; rep_pt(PP) = [0,1,0] by A3,DefRepPoint; hence thesis by A2,A4,A5,MCART_1:44; end; suppose P`3_3 <> 0; then A3: PP`3_3 <> 0 by A2,ThECSet2; consider Q be Element of ProjCo(GF(p)) such that A4: Q in EC_SetProjCo(a,b,p) & Q _EQ_ PP and A5: Q`3_3 = 1 by A1,A2,A3,EC_PF_1:48; consider d be Element of GF(p) such that d <> 0.GF(p) and A6: Q`1_3 = d*(PP`1_3) & Q`2_3 = d*(PP`2_3) & Q`3_3 = d*(PP`3_3) by A4,EC_PF_1:def 10; A7: d*(PP`3_3) = 1.GF(p) by A5,A6,EC_PF_1:12; PP`3_3 <> 0.GF(p) by A3,EC_PF_1:11; then d = (PP`3_3)" by A7,VECTSP_1:def 10; then Q = [(PP`1_3)*(PP`3_3)",(PP`2_3)*(PP`3_3)",1] by A5,A6,MCART_1:44; hence thesis by A2,A3,A4,DefRepPoint; end; end; theorem ThRepPoint2: for p be Prime, a, b be Element of GF(p), P be Element of ProjCo(GF(p)) holds (rep_pt(P))`3_3 = 0 implies rep_pt(P) = [0, 1, 0] & P`3_3 = 0 proof let p be Prime, a, b be Element of GF(p), P be Element of ProjCo(GF(p)); assume A1: (rep_pt(P))`3_3 = 0; hereby assume A2: rep_pt(P) <> [0, 1, 0]; rep_pt(P) = [(P`1_3)*(P`3_3)", (P`2_3)*(P`3_3)", 1] by A2,DefRepPoint; hence contradiction by A1,MCART_1:def 7; end; assume A3: P`3_3 <> 0; rep_pt(P) = [(P`1_3)*(P`3_3)", (P`2_3)*(P`3_3)", 1] by A3,DefRepPoint; hence contradiction by A1,MCART_1:def 7; end; theorem ThRepPoint3: for p be Prime, a, b be Element of GF(p), P be Element of ProjCo(GF(p)) holds (rep_pt(P))`3_3 <> 0 implies rep_pt(P) = [(P`1_3)*(P`3_3)", (P`2_3)*(P`3_3)", 1] & P`3_3 <> 0 proof let p be Prime, a, b be Element of GF(p), P be Element of ProjCo(GF(p)); assume A1: (rep_pt(P))`3_3 <> 0; hereby assume A2: rep_pt(P) <> [(P`1_3)*(P`3_3)", (P`2_3)*(P`3_3)", 1]; rep_pt(P) = [0, 1, 0] by A2,DefRepPoint; hence contradiction by A1,MCART_1:def 7; end; assume A3: P`3_3 = 0; rep_pt(P) = [0, 1, 0] by A3,DefRepPoint; hence contradiction by A1,MCART_1:def 7; end; theorem ThRepPoint4: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) holds P _EQ_ Q iff rep_pt(P) = rep_pt(Q) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p); set a = z`1; set b = z`2; consider PP be Element of ProjCo(GF(p)) such that A2: PP = P & PP in EC_SetProjCo(a,b,p); consider QQ be Element of ProjCo(GF(p)) such that A3: QQ = Q & QQ in EC_SetProjCo(a,b,p); set RP = rep_pt(PP); set RQ = rep_pt(QQ); hereby assume B1: P _EQ_ Q; RP _EQ_ P by A2,ThRepPoint1; then B2: RP _EQ_ Q by B1,EC_PF_1:44; RQ _EQ_ Q by A3,ThRepPoint1; then RP _EQ_ RQ by B2,EC_PF_1:44; then consider a be Element of GF(p) such that B3: a <> 0.GF(p) and B4: RP`1_3 = a*(RQ`1_3) & RP`2_3 = a*(RQ`2_3) & RP`3_3 = a*(RQ`3_3) by EC_PF_1:def 10; per cases; suppose C1: PP`3_3 = 0; then RP = [0, 1, 0] by DefRepPoint; then RP`3_3 = 0 by MCART_1:def 7 .= 0.GF(p) by EC_PF_1:11; then RQ`3_3 = 0.GF(p) by B3,B4,VECTSP_1:12 .= 0 by EC_PF_1:11; then RQ = [0, 1, 0] by ThRepPoint2; hence rep_pt(P) = rep_pt(Q) by A2,A3,C1,DefRepPoint; end; suppose PP`3_3 <> 0; then RP = [(PP`1_3)*(PP`3_3)", (PP`2_3)*(PP`3_3)", 1] by DefRepPoint; then C1: RP`3_3 = 1 by MCART_1:def 7 .= 1.GF(p) by EC_PF_1:12; then RQ`3_3 <> 0.GF(p) by B4,VECTSP_1:12; then RQ`3_3 <> 0 by EC_PF_1:11; then RQ = [(QQ`1_3)*(QQ`3_3)", (QQ`2_3)*(QQ`3_3)", 1] by ThRepPoint3; then RQ`3_3 = 1 by MCART_1:def 7 .= 1.GF(p) by EC_PF_1:12; then a = 1.GF(p) by B4,C1,VECTSP_1:def 8; then RP`1_3 = RQ`1_3 & RP`2_3 = RQ`2_3 & RP`3_3 = RQ`3_3 by B4,VECTSP_1:def 8; then RP = [RQ`1_3, RQ`2_3, RQ`3_3] by MCART_1:44 .= RQ by MCART_1:44; hence rep_pt(P) = rep_pt(Q) by A2,A3; end; end; assume B1: rep_pt(P) = rep_pt(Q); B3: RQ _EQ_ P by A3,B1,ThRepPoint1; RQ _EQ_ Q by A3,ThRepPoint1; hence thesis by B3,EC_PF_1:44; end; begin :: 3.Operations of points on an elliptic curve over $\bf{GF}(p)$ LmCOMPELL: for p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p) holds [P`1_3,-P`2_3,P`3_3] is Element of EC_SetProjCo(z`1,z`2,p) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p); set a = z`1; set b = z`2; set R = [P`1_3,-P`2_3,P`3_3]; P in ProjCo(GF(p)); then P in [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] \ {[0.GF(p),0.GF(p),0.GF(p)]} by EC_PF_1:def 6; then not P in {[0.GF(p),0.GF(p),0.GF(p)]} by XBOOLE_0:def 5; then P <> [0.GF(p),0.GF(p),0.GF(p)] by TARSKI:def 1; then not (P`1_3 = 0.GF(p) & P`2_3 = 0.GF(p) & P`3_3 = 0.GF(p)) by ThECSet1; then not (P`1_3 = 0.GF(p) & -P`2_3 = 0.GF(p) & P`3_3 = 0.GF(p)) by VECTSP_2:3; then R <> [0.GF(p),0.GF(p),0.GF(p)] by XTUPLE_0:3; then not R in {[0.GF(p),0.GF(p),0.GF(p)]} by TARSKI:def 1; then R in [:the carrier of GF(p),the carrier of GF(p), the carrier of GF(p):] \ {[0.GF(p),0.GF(p),0.GF(p)]} by XBOOLE_0:def 5; then reconsider R as Element of ProjCo(GF(p)) by EC_PF_1:def 6; A2: R`2_3 |^2 = P`2_3 |^2 by ThGF10,MCART_1:def 6; A3: R`1_3 = P`1_3 & R`3_3 = P`3_3 by MCART_1:def 5,def 7; (R`2_3 |^2)*(R`3_3)-((R`1_3) |^3+a*(R`1_3)*(R`3_3) |^2+b*(R`3_3) |^3) = 0.GF(p) by A2,A3,ThOnCurve2; then EC_WEqProjCo(a,b,p).R = 0.GF(p) by EC_PF_1:def 8; then R is_on_curve EC_WEqProjCo(a,b,p) by DefOnCurve; hence thesis by ThOnCurve1; end; definition let p be 5_or_greater Prime; let z be Element of EC_WParam p; func compell_ProjCo(z,p) -> Function of EC_SetProjCo(z`1,z`2,p), EC_SetProjCo(z`1,z`2,p) means :DefCompEll: for P be Element of EC_SetProjCo(z`1,z`2,p) holds it.P = [P`1_3,-P`2_3,P`3_3]; existence proof set a = z`1; set b = z`2; defpred P[Element of EC_SetProjCo(a,b,p),set] means $2 = [$1`1_3,-$1`2_3,$1`3_3]; A1: for P being Element of EC_SetProjCo(a,b,p) ex R being Element of EC_SetProjCo(z`1,z`2,p) st P[P, R] proof let P be Element of EC_SetProjCo(a,b,p); set R = [P`1_3,-P`2_3,P`3_3]; [P`1_3,-P`2_3,P`3_3] is Element of EC_SetProjCo(z`1,z`2,p) by LmCOMPELL; hence thesis; end; consider f being Function of EC_SetProjCo(a,b,p), EC_SetProjCo(a,b,p) such that A2: for P being Element of EC_SetProjCo(a,b,p) holds P[P,f.P] from FUNCT_2:sch 3(A1); take f; thus thesis by A2; end; uniqueness proof set a = z`1; set b = z`2; deffunc F(Element of EC_SetProjCo(a,b,p)) = [$1`1_3,-$1`2_3,$1`3_3]; for f1, f2 being Function of EC_SetProjCo(a,b,p), EC_SetProjCo(a,b,p) st (for x being Element of EC_SetProjCo(a,b,p) holds f1.x = F(x)) & (for x being Element of EC_SetProjCo(a,b,p) holds f2.x = F(x)) holds f1 = f2 proof let f1, f2 be Function of EC_SetProjCo(a,b,p), EC_SetProjCo(a,b,p) such that A1: for x being Element of EC_SetProjCo(a,b,p) holds f1.x = F(x) and A2: for x being Element of EC_SetProjCo(a,b,p) holds f2.x = F(x); now let x be Element of EC_SetProjCo(a,b,p); thus f1.x = F(x) by A1 .= f2.x by A2; end; hence thesis by FUNCT_2:63; end; hence thesis; end; end; definition let p be 5_or_greater Prime, z be Element of EC_WParam p; let F be Function of EC_SetProjCo(z`1,z`2,p), EC_SetProjCo(z`1,z`2,p); let P be Element of EC_SetProjCo(z`1,z`2,p); redefine func F.P -> Element of EC_SetProjCo(z`1,z`2,p); correctness proof F.P in EC_SetProjCo(z`1,z`2,p); hence thesis; end; end; theorem ThCOMPELL0: for p be 5_or_greater Prime, z be Element of EC_WParam p, O be Element of EC_SetProjCo(z`1,z`2,p) st O = [0, 1, 0] holds (compell_ProjCo(z,p)).O _EQ_ O proof let p be 5_or_greater Prime, z be Element of EC_WParam p, O be Element of EC_SetProjCo(z`1,z`2,p) such that A2: O = [0, 1, 0]; set a = z`1; set b = z`2; A3: O`1_3 = 0 & O`2_3 = 1 & O`3_3 = 0 by A2,DefX,DefY,DefZ; consider OO be Element of ProjCo(GF(p)) such that A4: OO = O & OO in EC_SetProjCo(a,b,p); A5: OO`1_3 = 0 & OO`2_3 = 1 & OO`3_3 = 0 by A3,A4,ThECSet2; set CO = compell_ProjCo(z,p).O; consider COO be Element of ProjCo(GF(p)) such that A6: COO = CO & COO in EC_SetProjCo(a,b,p); A7: COO`1_3 = CO`1_3 & COO`2_3 = CO`2_3 & COO`3_3 = CO`3_3 by A6,ThECSet2; CO = [O`1_3, -O`2_3, O`3_3] by DefCompEll; then COO`3_3 = 0 by A3,A7,DefZ; then A8: rep_pt(CO) = [0, 1, 0] by A6,DefRepPoint; rep_pt(O) = [0, 1, 0] by A4,A5,DefRepPoint; hence thesis by A8,ThRepPoint4; end; theorem ThCOMPELL1: for p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p) holds compell_ProjCo(z,p).(compell_ProjCo(z,p).P) = P proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p); set Q = compell_ProjCo(z,p).P; Q = [P`1_3, -P`2_3, P`3_3] by DefCompEll; then A1: Q`1_3 = P`1_3 & Q`2_3 = -P`2_3 & Q`3_3 = P`3_3 by DefX,DefY,DefZ; set R = compell_ProjCo(z,p).Q; R = [Q`1_3, -Q`2_3, Q`3_3] by DefCompEll; then R`1_3 = P`1_3 & R`2_3 = -(-P`2_3) & R`3_3 = P`3_3 by A1,DefX,DefY,DefZ; then R`1_3 = P`1_3 & R`2_3 = P`2_3 & R`3_3 = P`3_3 by RLVECT_1:17; then R = [P`1_3, P`2_3, P`3_3] by ThECSet1; hence thesis by ThECSet1; end; theorem ThCOMPELL2: for p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p) st P`3_3 <> 0 holds rep_pt(compell_ProjCo(z,p).P) = compell_ProjCo(z,p).(rep_pt(P)) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p) such that A2: P`3_3 <> 0; set a = z`1; set b = z`2; consider PP be Element of ProjCo(GF(p)) such that A3: PP = P & PP in EC_SetProjCo(a,b,p); set CP = compell_ProjCo(z,p).P; CP = [P`1_3, -P`2_3, P`3_3] by DefCompEll; then A4: CP`1_3 = P`1_3 & CP`2_3 = -P`2_3 & CP`3_3 = P`3_3 by DefX,DefY,DefZ; set RP = rep_pt(PP); reconsider RP as Element of EC_SetProjCo(a,b,p) by A3,ThRepPoint1; PP`3_3 <> 0 by A2,A3,ThECSet2; then RP = [(PP`1_3)*(PP`3_3)", (PP`2_3)*(PP`3_3)", 1] by DefRepPoint; then RP`1_3 = (PP`1_3)*(PP`3_3)" & RP`2_3 = (PP`2_3)*(PP`3_3)" & RP`3_3 = 1 by DefX,DefY,DefZ; then RP`1_3 = (P`1_3)*(PP`3_3)" & RP`2_3 = (P`2_3)*(PP`3_3)" & RP`3_3 = 1 by A3,ThECSet2; then A5: RP`1_3 = (P`1_3)*(P`3_3)" & RP`2_3 = (P`2_3)*(P`3_3)" & RP`3_3 = 1 by A3,ThECSet2; consider CPP be Element of ProjCo(GF(p)) such that A6: CPP = CP & CPP in EC_SetProjCo(a,b,p); set RCP = rep_pt(CPP); reconsider RCP as Element of EC_SetProjCo(a,b,p) by A6,ThRepPoint1; CPP`3_3 <> 0 by A2,A4,A6,ThECSet2; then RCP = [(CPP`1_3)*(CPP`3_3)", (CPP`2_3)*(CPP`3_3)", 1] by DefRepPoint; then RCP`1_3 = (CPP`1_3)*(CPP`3_3)" & RCP`2_3 = (CPP`2_3)*(CPP`3_3)" & RCP`3_3 = 1 by DefX,DefY,DefZ; then RCP`1_3 = (CP`1_3)*(CPP`3_3)" & RCP`2_3 = (CP`2_3)*(CPP`3_3)" & RCP`3_3 = 1 by A6,ThECSet2; then RCP`1_3 = (CP`1_3)*(CP`3_3)" & RCP`2_3 = (CP`2_3)*(CP`3_3)" & RCP`3_3 = 1 by A6,ThECSet2; then A7: RCP = [(P`1_3)*(P`3_3)", (-P`2_3)*(P`3_3)", 1] by A4,ThECSet1; set CRP = compell_ProjCo(z,p).RP; CRP = [(P`1_3)*(P`3_3)", -(P`2_3)*(P`3_3)", 1] by A5,DefCompEll; hence thesis by A3,A6,A7,VECTSP_1:9; end; theorem ThCOMPELL3: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) holds P = Q iff compell_ProjCo(z,p).P = compell_ProjCo(z,p).Q proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p); thus P = Q implies compell_ProjCo(z,p).P = compell_ProjCo(z,p).Q; assume A1: compell_ProjCo(z,p).P = compell_ProjCo(z,p).Q; thus P = compell_ProjCo(z,p).(compell_ProjCo(z,p).Q) by A1,ThCOMPELL1 .= Q by ThCOMPELL1; end; theorem ThCOMPELL4: for p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p) st P`3_3 <> 0 holds P _EQ_ compell_ProjCo(z,p).P iff P`2_3 = 0 proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P be Element of EC_SetProjCo(z`1,z`2,p) such that A2: P`3_3 <> 0; set a = z`1; set b = z`2; consider PP be Element of ProjCo(GF(p)) such that A3: PP = P & PP in EC_SetProjCo(a,b,p); A4: PP`1_3 = P`1_3 & PP`2_3 = P`2_3 & PP`3_3 = P`3_3 by A3,ThECSet2; set CP = compell_ProjCo(z,p).P; CP = [P`1_3, -P`2_3, P`3_3] by DefCompEll; then A6: CP`1_3 = P`1_3 & CP`2_3 = -P`2_3 & CP`3_3 = P`3_3 by DefX,DefY,DefZ; set RP = rep_pt(PP); reconsider RP as Element of EC_SetProjCo(a,b,p) by A3,ThRepPoint1; RP = [(P`1_3)*(P`3_3)", (P`2_3)*(P`3_3)", 1] by A2,A4,DefRepPoint; then A7: RP`2_3 = (P`2_3)*(P`3_3)" by DefY; consider CPP be Element of ProjCo(GF(p)) such that A8: CPP = CP & CPP in EC_SetProjCo(a,b,p); A9: CPP`1_3 = P`1_3 & CPP`2_3 = -P`2_3 & CPP`3_3 = P`3_3 by A6,A8,ThECSet2; set RCP = rep_pt(CPP); reconsider RCP as Element of EC_SetProjCo(a,b,p) by A8,ThRepPoint1; A11: RCP = [(P`1_3)*(P`3_3)", (-P`2_3)*(P`3_3)", 1] by A2,A9,DefRepPoint; hereby assume B1: P _EQ_ compell_ProjCo(z,p).P; P`3_3 <> 0.GF(p) by A2,EC_PF_1:11; then B2: (P`3_3)" <> 0.GF(p) by VECTSP_1:25; B3: p > 2 by LMZ1Z2,XXREAL_0:2; RP = [(P`1_3)*(P`3_3)", (-P`2_3)*(P`3_3)", 1] by A3,A8,A11,B1,ThRepPoint4; then (P`2_3)*(P`3_3)" = (P`3_3)"*(-P`2_3) by A7,DefY; then P`2_3 = -P`2_3 by B2,VECTSP_1:5; then P`2_3 + P`2_3 = 0.GF(p) by VECTSP_1:19; then P`2_3 = 0.GF(p) by B3,EC_PF_1:27; hence P`2_3 = 0 by EC_PF_1:11; end; assume B1: P`2_3 = 0; then P`2_3 = 0.GF(p) by EC_PF_1:11; then -P`2_3 = 0.GF(p) by VECTSP_2:3; then CPP`1_3 = P`1_3 & CPP`2_3 = 0 & CPP`3_3 = P`3_3 by A9,EC_PF_1:11; hence P _EQ_ compell_ProjCo(z,p).P by A8,B1,ThECSet2; end; theorem ThCOMPELL5: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) st P`3_3 <> 0 holds (P`1_3 = Q`1_3 & P`3_3 = Q`3_3) iff P = Q or P = compell_ProjCo(z,p).Q proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) such that A2: P`3_3 <> 0; set a = z`1; set b = z`2; A3: P`3_3 <> 0.GF(p) by A2,EC_PF_1:11; hereby assume B1: P`1_3 = Q`1_3 & P`3_3 = Q`3_3; B2: ((P`2_3) |^2)*(P`3_3)-((P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3) = 0.GF(p) by ThOnCurve2; ((Q`2_3) |^2)*(Q`3_3)-((Q`1_3) |^3 + a*(Q`1_3)*(Q`3_3) |^2 + b*(Q`3_3) |^3) = 0.GF(p) by ThOnCurve2; then B3: ((Q`2_3) |^2)*(Q`3_3) = (P`1_3) |^3 + a*(P`1_3)*(Q`3_3) |^2 + b*(P`3_3) |^3 by B1,VECTSP_1:19 .= ((P`2_3) |^2)*(P`3_3) by B1,B2,VECTSP_1:19; (P`2_3)*(P`2_3) = (P`2_3) |^2 by EC_PF_1:22 .= (Q`2_3) |^2 by A3,B1,B3,VECTSP_1:5 .= (Q`2_3)*(Q`2_3) by EC_PF_1:22; then P`2_3 = Q`2_3 or P`2_3 = -Q`2_3 by EC_PF_1:26; then P = [Q`1_3, Q`2_3, Q`3_3] or P = [Q`1_3, -Q`2_3, Q`3_3] by B1,ThECSet1; hence P = Q or P = compell_ProjCo(z,p).Q by ThECSet1,DefCompEll; end; assume B1: P = Q or P = compell_ProjCo(z,p).Q; P = [Q`1_3, Q`2_3, Q`3_3] or P = [Q`1_3, -Q`2_3, Q`3_3] by B1,ThECSet1,DefCompEll; hence P`1_3 = Q`1_3 & P`3_3 = Q`3_3 by DefX,DefZ; end; theorem ThEQCOMP1: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) holds P _EQ_ Q iff compell_ProjCo(z,p).P _EQ_ compell_ProjCo(z,p).Q proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p); set a = z`1; set b = z`2; consider PP be Element of ProjCo(GF(p)) such that A2: PP = P & PP in EC_SetProjCo(a,b,p); A3: PP`1_3 = P`1_3 & PP`2_3 = P`2_3 & PP`3_3 = P`3_3 by A2,ThECSet2; consider QQ be Element of ProjCo(GF(p)) such that A4: QQ = Q & QQ in EC_SetProjCo(a,b,p); A5: QQ`1_3 = Q`1_3 & QQ`2_3 = Q`2_3 & QQ`3_3 = Q`3_3 by A4,ThECSet2; set CP = compell_ProjCo(z,p).P; consider CPP be Element of ProjCo(GF(p)) such that A6: CPP = CP & CPP in EC_SetProjCo(a,b,p); A7: CPP`1_3 = CP`1_3 & CPP`2_3 = CP`2_3 & CPP`3_3 = CP`3_3 by A6,ThECSet2; set CQ = compell_ProjCo(z,p).Q; consider CQQ be Element of ProjCo(GF(p)) such that A8: CQQ = CQ & CQQ in EC_SetProjCo(a,b,p); A9: CQQ`1_3 = CQ`1_3 & CQQ`2_3 = CQ`2_3 & CQQ`3_3 = CQ`3_3 by A8,ThECSet2; hereby assume B1: P _EQ_ Q; B2: rep_pt(P) = rep_pt(Q) by B1,ThRepPoint4; per cases; suppose C1: P`3_3 = 0; PP`3_3 = 0 by A2,C1,ThECSet2; then rep_pt(QQ) = [0, 1, 0] by A2,A4,B2,DefRepPoint; then (rep_pt(QQ))`3_3 = 0 by MCART_1:def 7; then C2: Q`3_3 = 0 by A5,ThRepPoint2; CP = [P`1_3, -P`2_3, 0] by C1,DefCompEll; then C3: CPP`3_3 = 0 by A7,DefZ; CQ = [Q`1_3, -Q`2_3, 0] by C2,DefCompEll; then CQQ`3_3 = 0 by A9,DefZ; then rep_pt(CQ) = [0, 1, 0] by A8,DefRepPoint .= rep_pt(CP) by A6,C3,DefRepPoint; hence compell_ProjCo(z,p).P _EQ_ compell_ProjCo(z,p).Q by ThRepPoint4; end; suppose C1: P`3_3 <> 0; rep_pt(QQ) = [(PP`1_3)*(PP`3_3)", (PP`2_3)*(PP`3_3)", 1] by A2,A3,A4,B2,C1,DefRepPoint; then C2: (rep_pt(QQ))`3_3 <> 0 by MCART_1:def 7; compell_ProjCo(z,p).(rep_pt(P)) = rep_pt(compell_ProjCo(z,p).Q) by A5,B2,C2,ThRepPoint3,ThCOMPELL2; then rep_pt(compell_ProjCo(z,p).P) = rep_pt(compell_ProjCo(z,p).Q) by C1,ThCOMPELL2; hence compell_ProjCo(z,p).P _EQ_ compell_ProjCo(z,p).Q by ThRepPoint4; end; end; assume B1: compell_ProjCo(z,p).P _EQ_ compell_ProjCo(z,p).Q; per cases; suppose C1: P`3_3 = 0; CP = [P`1_3, -P`2_3, 0] by C1,DefCompEll; then CPP`3_3 = 0 by A7,DefZ; then C3: rep_pt(CPP) = [0, 1, 0] by DefRepPoint; rep_pt(CQQ) = [0, 1, 0] by A6,A8,B1,C3,ThRepPoint4; then (rep_pt(CQQ))`3_3 = 0 by MCART_1:def 7; then C4: CQ`3_3 = 0 by A9,ThRepPoint2; CQ = [Q`1_3, -Q`2_3, Q`3_3] by DefCompEll; then Q`3_3 = 0 by C4,DefZ; then C5: rep_pt(QQ) = [0, 1, 0] by A5,DefRepPoint; rep_pt(PP) = [0, 1, 0] by A3,C1,DefRepPoint; hence P _EQ_ Q by A2,A4,C5,ThRepPoint4; end; suppose C1: P`3_3 <> 0; CP = [P`1_3, -P`2_3, P`3_3] by DefCompEll; then C2: CPP`3_3 <> 0 by A7,C1,DefZ; set RP = rep_pt(P); reconsider RP as Element of EC_SetProjCo(a,b,p) by ThRepPoint1; set RQ = rep_pt(Q); reconsider RQ as Element of EC_SetProjCo(a,b,p) by ThRepPoint1; C3: rep_pt(CP) = rep_pt(CQ) by B1,ThRepPoint4; rep_pt(CPP) = [(CPP`1_3)*(CPP`3_3)", (CPP`2_3)*(CPP`3_3)", 1] by C2,DefRepPoint; then (rep_pt(CQQ))`3_3 <> 0 by A6,A8,C3,MCART_1:def 7; then C4: CQ`3_3 <> 0 by A9,ThRepPoint3; CQ = [Q`1_3, -Q`2_3, Q`3_3] by DefCompEll; then C5: Q`3_3 <> 0 by C4,DefZ; C6: rep_pt(CP) = compell_ProjCo(z,p).RP by C1,ThCOMPELL2; rep_pt(CQ) = compell_ProjCo(z,p).RQ by C5,ThCOMPELL2; then RP = RQ by C3,C6,ThCOMPELL3; hence P _EQ_ Q by ThRepPoint4; end; end; theorem ThEQCOMP2: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) holds P _EQ_ compell_ProjCo(z,p).Q iff compell_ProjCo(z,p).P _EQ_ Q proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p); set a = z`1; set b = z`2; set CP = compell_ProjCo(z,p).P; reconsider CP as Element of EC_SetProjCo(a,b,p); set CQ = compell_ProjCo(z,p).Q; reconsider CQ as Element of EC_SetProjCo(a,b,p); hereby assume B1: P _EQ_ compell_ProjCo(z,p).Q; compell_ProjCo(z,p).P _EQ_ compell_ProjCo(z,p).CQ by B1,ThEQCOMP1; hence compell_ProjCo(z,p).P _EQ_ Q by ThCOMPELL1; end; assume B1: compell_ProjCo(z,p).P _EQ_ Q; compell_ProjCo(z,p).CP _EQ_ compell_ProjCo(z,p).Q by B1,ThEQCOMP1; hence P _EQ_ compell_ProjCo(z,p).Q by ThCOMPELL1; end; theorem ThEQCOMP3: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) st P`3_3 <> 0 & Q`3_3 <> 0 holds rep_pt(P) = compell_ProjCo(z,p).(rep_pt(Q)) iff P _EQ_ compell_ProjCo(z,p).Q proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) such that A2: P`3_3 <> 0 & Q`3_3 <> 0; set a = z`1; set b = z`2; set CQ = compell_ProjCo(z,p).Q; reconsider CQ as Element of EC_SetProjCo(a,b,p); hereby assume B1: rep_pt(P) = compell_ProjCo(z,p).(rep_pt(Q)); rep_pt(P) = rep_pt(CQ) by A2,B1,ThCOMPELL2; hence P _EQ_ compell_ProjCo(z,p).Q by ThRepPoint4; end; assume P _EQ_ compell_ProjCo(z,p).Q; hence rep_pt(P) = rep_pt(CQ) by ThRepPoint4 .= compell_ProjCo(z,p).(rep_pt(Q)) by A2,ThCOMPELL2; end; theorem for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) holds P _EQ_ Q implies P`2_3*(Q`3_3) = Q`2_3*(P`3_3) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p); set a = z`1; set b = z`2; consider PP be Element of ProjCo(GF(p)) such that A2: PP = P & PP in EC_SetProjCo(a,b,p); A3: PP`1_3 = P`1_3 & PP`2_3 = P`2_3 & PP`3_3 = P`3_3 by A2,ThECSet2; consider QQ be Element of ProjCo(GF(p)) such that A4: QQ = Q & QQ in EC_SetProjCo(a,b,p); A5: QQ`1_3 = Q`1_3 & QQ`2_3 = Q`2_3 & QQ`3_3 = Q`3_3 by A4,ThECSet2; assume B1: P _EQ_ Q; B2: rep_pt(PP) = rep_pt(QQ) by A2,A4,B1,ThRepPoint4; per cases; suppose C1: PP`3_3 = 0; then P`3_3 = 0.GF(p) by A3,EC_PF_1:11; then C2: Q`2_3*(P`3_3) = 0.GF(p) by VECTSP_1:6; rep_pt(QQ) = [0, 1, 0] by B2,C1,DefRepPoint; then (rep_pt(QQ))`3_3 = 0 by MCART_1:def 7; then Q`3_3 = 0 by A5,ThRepPoint2 .= 0.GF(p) by EC_PF_1:11; hence P`2_3*(Q`3_3) = Q`2_3*(P`3_3) by C2,VECTSP_1:6; end; suppose C0: PP`3_3 <> 0; then C1: PP`3_3 <> 0.GF(p) by EC_PF_1:11; C3: rep_pt(QQ) = [(PP`1_3)*(PP`3_3)", (PP`2_3)*(PP`3_3)", 1] by B2,C0,DefRepPoint; then C4: (rep_pt(QQ))`2_3 = (PP`2_3)*(PP`3_3)" by MCART_1:def 6; C5: (rep_pt(QQ))`3_3 <> 0 by C3,MCART_1:def 7; then QQ`3_3 <> 0 by ThRepPoint3; then C6: QQ`3_3 <> 0.GF(p) by EC_PF_1:11; rep_pt(QQ) = [(QQ`1_3)*(QQ`3_3)", (QQ`2_3)*(QQ`3_3)", 1] by C5,ThRepPoint3; then PP`2_3*(PP`3_3)" = (QQ`2_3)*(QQ`3_3)" by C4,MCART_1:def 6; hence P`2_3*(Q`3_3) = Q`2_3*(P`3_3) by A3,A5,C1,C6,ThGF12; end; end; theorem ThECEQ2: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) st P`3_3 <> 0 & Q`3_3 <> 0 holds P _EQ_ Q or P _EQ_ compell_ProjCo(z,p).Q iff P`1_3*(Q`3_3) = Q`1_3*(P`3_3) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) such that A2: P`3_3 <> 0 & Q`3_3 <> 0; A1: P`3_3 <> 0.GF(p) & Q`3_3 <> 0.GF(p) by A2,EC_PF_1:11; set a = z`1; set b = z`2; consider PP be Element of ProjCo(GF(p)) such that A3: PP = P & PP in EC_SetProjCo(a,b,p); A4: PP`1_3 = P`1_3 & PP`2_3 = P`2_3 & PP`3_3 = P`3_3 by A3,ThECSet2; consider QQ be Element of ProjCo(GF(p)) such that A5: QQ = Q & QQ in EC_SetProjCo(a,b,p); A6: QQ`1_3 = Q`1_3 & QQ`2_3 = Q`2_3 & QQ`3_3 = Q`3_3 by A5,ThECSet2; A7: PP`3_3 <> 0 & QQ`3_3 <> 0 by A2,A3,A5,ThECSet2; set RP = rep_pt(PP); reconsider RP as Element of EC_SetProjCo(a,b,p) by A3,ThRepPoint1; set RQ = rep_pt(QQ); reconsider RQ as Element of EC_SetProjCo(a,b,p) by A5,ThRepPoint1; A9: RP = [PP`1_3*(PP`3_3)", PP`2_3*(PP`3_3)", 1] by A7,DefRepPoint; RQ = [QQ`1_3*(QQ`3_3)", QQ`2_3*(QQ`3_3)", 1] by A7,DefRepPoint; then A10: RQ`1_3 = QQ`1_3*(QQ`3_3)" & RQ`3_3 = 1 by DefX,DefZ; then A11: RP`3_3 = RQ`3_3 by A9,DefZ; A14: RP`3_3 <> 0 by A9,DefZ; then RP`1_3 = RQ`1_3 implies rep_pt(P) = rep_pt(Q) or RP = compell_ProjCo(z,p).RQ by A3,A5,A11,ThCOMPELL5; then A15:P`1_3*(PP`3_3)" = Q`1_3*(QQ`3_3)" implies P _EQ_ Q or RP = compell_ProjCo(z,p).RQ by A4,A6,A9,A10,DefX,ThRepPoint4; RP = RQ or RP = compell_ProjCo(z,p).RQ implies RP`1_3 = RQ`1_3 by A14,ThCOMPELL5; then P _EQ_ Q or P _EQ_ compell_ProjCo(z,p).Q implies P`1_3*(P`3_3)" = Q`1_3*(Q`3_3)" by A2,A3,A4,A5,A6,A9,A10,DefX,ThRepPoint4,ThEQCOMP3; hence thesis by A1,A2,A3,A4,A5,A6,A15,ThGF12,ThGF13,ThEQCOMP3; end; theorem ThECEQ3: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) st P`3_3 <> 0 & Q`3_3 <> 0 & P`2_3 <> 0 holds P _EQ_ compell_ProjCo(z,p).Q implies P`2_3*(Q`3_3) <> Q`2_3*(P`3_3) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) such that A2: P`3_3 <> 0 & Q`3_3 <> 0 & P`2_3 <> 0; A1: P`3_3 <> 0.GF(p) & Q`3_3 <> 0.GF(p) by A2,EC_PF_1:11; set a = z`1; set b = z`2; consider PP be Element of ProjCo(GF(p)) such that A4: PP = P & PP in EC_SetProjCo(a,b,p); A5: PP`1_3 = P`1_3 & PP`2_3 = P`2_3 & PP`3_3 = P`3_3 by A4,ThECSet2; consider QQ be Element of ProjCo(GF(p)) such that A6: QQ = Q & QQ in EC_SetProjCo(a,b,p); A7: QQ`1_3 = Q`1_3 & QQ`2_3 = Q`2_3 & QQ`3_3 = Q`3_3 by A6,ThECSet2; assume A8: P _EQ_ compell_ProjCo(z,p).Q; assume A9: P`2_3*(Q`3_3) = Q`2_3*(P`3_3); P`1_3*(Q`3_3) = Q`1_3*(P`3_3) by A2,A8,ThECEQ2; then A10: P`1_3*(P`3_3)" = Q`1_3*(Q`3_3)" by A1,ThGF13; A11: P`2_3*(P`3_3)" = Q`2_3*(Q`3_3)" by A1,A9,ThGF13; rep_pt(P) = [(PP`1_3)*(PP`3_3)", (PP`2_3)*(PP`3_3)", 1] by A2,A4,A5,DefRepPoint .= rep_pt(Q) by A2,A5,A6,A7,A10,A11,DefRepPoint; then A12: P _EQ_ Q by ThRepPoint4; compell_ProjCo(z,p).P _EQ_ Q by A8,ThEQCOMP2; then P _EQ_ compell_ProjCo(z,p).P by A12,EC_PF_1:44; hence contradiction by A2,ThCOMPELL4; end; theorem ThECEQ4: for p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p) holds (not P _EQ_ Q) & P _EQ_ compell_ProjCo(z,p).Q implies P`2_3*(Q`3_3) <> Q`2_3*(P`3_3) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, P, Q be Element of EC_SetProjCo(z`1,z`2,p); set a = z`1; set b = z`2; A1: p > 3 & Disc(a,b,p) <> 0.GF(p) by LMZ1Z2; assume A2: not P _EQ_ Q; assume A3: P _EQ_ compell_ProjCo(z,p).Q; consider PP be Element of ProjCo(GF(p)) such that A4: PP = P & PP in EC_SetProjCo(a,b,p); A6: P`3_3 <> 0 proof assume B1: P`3_3 = 0; set CQ = compell_ProjCo(z,p).Q; reconsider CQ as Element of EC_SetProjCo(a,b,p); B2: PP`3_3 = 0 by B1,A4,ThECSet2; consider OO be Element of ProjCo(GF(p)) such that B3: OO in EC_SetProjCo(a,b,p) and B4: PP _EQ_ OO and B5: OO`1_3 = 0 & OO`2_3 = 1 & OO`3_3 = 0 by A1,A4,B2,EC_PF_1:49; consider O be Element of EC_SetProjCo(a,b,p) such that B6: O = OO by B3; B7: O`1_3 = 0 & O`2_3 = 1 & O`3_3 = 0 by B5,B6,ThECSet2; CQ _EQ_ O by A3,A4,B4,B6,EC_PF_1:44; then compell_ProjCo(z,p).(CQ) _EQ_ compell_ProjCo(z,p).O by ThEQCOMP1; then B9: Q _EQ_ compell_ProjCo(z,p).O by ThCOMPELL1; compell_ProjCo(z,p).O _EQ_ O by B7,ThECSet1,ThCOMPELL0; then Q _EQ_ O by B9,EC_PF_1:44; hence contradiction by A2,A4,B4,B6,EC_PF_1:44; end; A7: Q`3_3 <> 0 proof assume B1: Q`3_3 = 0; set CQ = compell_ProjCo(z,p).Q; reconsider CQ as Element of ProjCo(GF(p)); CQ = [Q`1_3, -Q`2_3, Q`3_3] by DefCompEll; then B3: CQ`3_3 = 0 by B1,MCART_1:def 7; consider OO be Element of ProjCo(GF(p)) such that B4: OO in EC_SetProjCo(a,b,p) and B5: CQ _EQ_ OO and B6: OO`1_3 = 0 & OO`2_3 = 1 & OO`3_3 = 0 by A1,B3,EC_PF_1:49; consider O be Element of EC_SetProjCo(a,b,p) such that B7: O = OO by B4; B8: O`1_3 = 0 & O`2_3 = 1 & O`3_3 = 0 by B6,B7,ThECSet2; P _EQ_ O by A3,B5,B7,EC_PF_1:44; then B10: compell_ProjCo(z,p).P _EQ_ compell_ProjCo(z,p).O by ThEQCOMP1; compell_ProjCo(z,p).O _EQ_ O by B8,ThECSet1,ThCOMPELL0; then compell_ProjCo(z,p).P _EQ_ O by B10,EC_PF_1:44; then CQ _EQ_ compell_ProjCo(z,p).P by B5,B7,EC_PF_1:44; hence contradiction by A2,ThEQCOMP1; end; P`2_3 <> 0 proof assume B1: P`2_3 = 0; P _EQ_ compell_ProjCo(z,p).P by A6,B1,ThCOMPELL4; then compell_ProjCo(z,p).P _EQ_ compell_ProjCo(z,p).Q by A3,EC_PF_1:44; hence contradiction by A2,ThEQCOMP1; end; hence thesis by A3,A6,A7,ThECEQ3; end; theorem ThNonSingular: for p be 5_or_greater Prime, z be Element of EC_WParam p, g3 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p) st g3 = 3 mod p & P`2_3 = 0 & P`3_3 <> 0 holds (z`1)*(P`3_3 |^2) + g3*(P`1_3 |^2) <> 0 proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g3 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p) such that A3: g3 = 3 mod p and A4: P`2_3 = 0 and A5: P`3_3 <> 0; set a = z`1; set b = z`2; A1: p > 3 & Disc(a,b,p) <> 0.GF(p) by LMZ1Z2; P`3_3 |^2 <> 0 by A5,EC_PF_1:25; then A6: P`3_3 |^2 <> 0.GF(p) by EC_PF_1:11; A7: P`2_3 |^2 = 0.GF(p) by A4,ThGF14,EC_PF_1:11; reconsider g2 = 2 mod p as Element of GF(p) by EC_PF_1:14; reconsider g4 = 4 mod p as Element of GF(p) by EC_PF_1:14; reconsider g9 = 9 mod p as Element of GF(p) by EC_PF_1:14; reconsider g27 = 27 mod p as Element of GF(p) by EC_PF_1:14; A16: 3 = 2 + 1; A17: g2 |^2 = g2*g2 by EC_PF_1:22 .= (2*2) mod p by EC_PF_1:18 .= g4; A18: g3 |^2 = g3*g3 by EC_PF_1:22 .= (3*3) mod p by A3,EC_PF_1:18 .= g9; A19: g3 |^3 = g3 |^(2+1) .= g9 * g3 by A18,EC_PF_1:24 .= (9*3) mod p by A3,EC_PF_1:18 .= g27; assume B1: a*(P`3_3 |^2) + g3*(P`1_3 |^2) = 0; ((P`2_3) |^2)*(P`3_3) - ((P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3) = 0.GF(p) by ThOnCurve2; then ((P`2_3) |^2)*(P`3_3) = (P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3 by VECTSP_1:19; then (P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3 = 0.GF(p) by A7,VECTSP_1:7; then g3*((P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3) = 0.GF(p) by VECTSP_1:6; then g3*((P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2) + g3*(b*(P`3_3) |^3) = 0.GF(p) by VECTSP_1:4; then g3*((P`1_3) |^3) + g3*(a*(P`1_3)*(P`3_3) |^2) + g3*(b*(P`3_3) |^3) = 0.GF(p) by VECTSP_1:4; then g3*((P`1_3) |^(2+1)) + g3*(a*((P`1_3)*(P`3_3) |^2)) + g3*(b*(P`3_3) |^3) = 0.GF(p) by GROUP_1:def 3; then g3*((P`1_3) |^(2+1)) + (g3*a)*((P`1_3)*((P`3_3) |^2)) + g3*(b*(P`3_3) |^3) = 0.GF(p) by GROUP_1:def 3; then g3*((P`1_3) |^(2+1)) + g3*a*(P`1_3)*((P`3_3) |^2) + g3*(b*((P`3_3) |^3)) = 0.GF(p) by GROUP_1:def 3; then g3*((P`1_3) |^(2+1)) + g3*a*(P`1_3)*((P`3_3) |^2) + g3*b*((P`3_3) |^3) = 0.GF(p) by GROUP_1:def 3; then g3*(((P`1_3) |^2)*(P`1_3)) + g3*a*(P`1_3)*(P`3_3) |^2 + g3*b*(P`3_3) |^(2+1) = 0.GF(p) by EC_PF_1:24; then g3*(((P`1_3) |^2)*(P`1_3)) + g3*a*(P`1_3)*(P`3_3) |^2 + g3*b*((P`3_3) |^2*(P`3_3)) = 0.GF(p) by EC_PF_1:24; then (g3*(P`1_3) |^2)*(P`1_3) + g3*a*(P`1_3)*(P`3_3) |^2 + g3*b*((P`3_3)* (P`3_3) |^2) = 0.GF(p) by GROUP_1:def 3; then (g3*(P`1_3) |^2)*(P`1_3) + (g3*a*(P`1_3))*(P`3_3) |^2 + (g3*b*(P`3_3))*(P`3_3) |^2 = 0.GF(p) by GROUP_1:def 3; then (g3*(P`1_3) |^2)*(P`1_3) + (((P`3_3) |^2)*(g3*a*(P`1_3)) + ((P`3_3) |^2)*(g3*b*(P`3_3))) = 0.GF(p) by ALGSTR_1:7; then B2: (g3*(P`1_3) |^2)*(P`1_3) + ((P`3_3) |^2)*(g3*a*(P`1_3)+g3*b*(P`3_3)) = 0.GF(p) by VECTSP_1:4; B3: a*(P`3_3 |^2) + g3*(P`1_3 |^2) = 0.GF(p) by B1,EC_PF_1:11; then (-a*(P`3_3 |^2))*(P`1_3) + ((P`3_3) |^2)*(g3*a*(P`1_3)+g3*b*(P`3_3)) = 0.GF(p) by B2,VECTSP_1:16; then ((-a)*(P`3_3 |^2))*(P`1_3) + ((P`3_3) |^2)*(g3*a*(P`1_3)+g3*b*(P`3_3)) = 0.GF(p) by VECTSP_1:9; then ((P`3_3) |^2)*((-a)*(P`1_3)) + ((P`3_3) |^2)*(g3*a*(P`1_3) +g3*b*(P`3_3)) = 0.GF(p) by GROUP_1:def 3; then ((P`3_3) |^2)*((-a)*(P`1_3) + (g3*a*(P`1_3) + g3*b*(P`3_3))) = 0.GF(p) by VECTSP_1:4; then (-a)*(P`1_3) + (g3*a*(P`1_3) + g3*b*(P`3_3)) = 0.GF(p) by A6,VECTSP_1:12; then (-a)*(P`1_3) + g3*a*(P`1_3) + g3*b*(P`3_3) = 0.GF(p) by ALGSTR_1:7; then -a*(P`1_3) + g3*a*(P`1_3) + g3*b*(P`3_3) = 0.GF(p) by VECTSP_1:9; then g3*(a*(P`1_3)) - a*(P`1_3) + g3*b*(P`3_3) = 0.GF(p) by GROUP_1:def 3; then g2*(a*(P`1_3)) + g3*b*(P`3_3) = 0.GF(p) by A3,A16,ThGF8; then g2*(a*(P`1_3)) = -g3*b*(P`3_3) by VECTSP_1:16; then (g2*(a*(P`1_3))) |^2 = (g3*b*(P`3_3)) |^2 by ThGF10; then (g2 |^2)*((a*(P`1_3)) |^2) = (g3*b*(P`3_3)) |^2 by BINOM:9; then (g2 |^2)*((a*(P`1_3)) |^2) = (g3*(b*(P`3_3))) |^2 by GROUP_1:def 3; then (g2 |^2)*((a |^2)*((P`1_3) |^2)) = (g3*(b*(P`3_3))) |^2 by BINOM:9; then (g2 |^2)*((a |^2)*((P`1_3) |^2)) = (g3 |^2)*((b*(P`3_3)) |^2) by BINOM:9; then (g2 |^2)*((a |^2)*((P`1_3) |^2)) = (g3 |^2)*((b |^2)*((P`3_3) |^2)) by BINOM:9; then (g2 |^2)*(a |^2)*((P`1_3) |^2) = (g3 |^2)*((b |^2)*((P`3_3) |^2)) by GROUP_1:def 3; then B4: (g2 |^2)*(a |^2)*((P`1_3) |^2) = (g3 |^2)*(b |^2)*((P`3_3) |^2) by GROUP_1:def 3; ((g2 |^2)*(a |^2))*(a*(P`3_3 |^2) + g3*(P`1_3 |^2)) = 0.GF(p) by B3,VECTSP_1:6; then ((g2 |^2)*(a|^2))*(a*(P`3_3 |^2)) + ((g2 |^2)*(a|^2))*(g3*(P`1_3 |^2)) = 0.GF(p) by VECTSP_1:4; then (g2 |^2)*((a|^2)*(a*(P`3_3 |^2))) + ((g2 |^2)*(a|^2))*(g3*(P`1_3 |^2)) = 0.GF(p) by GROUP_1:def 3; then (g2 |^2)*(((a|^2)*a)*(P`3_3 |^2)) + ((g2 |^2)*(a|^2))*(g3*(P`1_3 |^2)) = 0.GF(p) by GROUP_1:def 3; then (g2 |^2)*((a|^(2+1))*(P`3_3 |^2)) + (g3*(P`1_3 |^2))*((g2 |^2)*(a|^2)) = 0.GF(p) by EC_PF_1:24; then (g2 |^2)*((a|^3)*(P`3_3 |^2)) + g3*((P`1_3 |^2)*((g2 |^2)*(a|^2))) = 0.GF(p) by GROUP_1:def 3; then ((g2 |^2)*(a|^3))*(P`3_3 |^2) + g3*((g3 |^2)*(b |^2)*((P`3_3) |^2)) = 0.GF(p) by B4,GROUP_1:def 3; then ((g2 |^2)*(a|^3))*(P`3_3 |^2) + g3*((g3 |^2)*((b |^2)*((P`3_3) |^2))) = 0.GF(p) by GROUP_1:def 3; then ((g2 |^2)*(a|^3))*(P`3_3 |^2) + (g3*(g3 |^2))*((b |^2)*((P`3_3) |^2)) = 0.GF(p) by GROUP_1:def 3; then (P`3_3 |^2)* ((g2 |^2)*(a|^3)) + (g3 |^(2+1))*((b |^2)*((P`3_3) |^2)) = 0.GF(p) by EC_PF_1:24; then (P`3_3 |^2)* ((g2 |^2)*(a|^3)) + ((g3 |^3)*(b |^2))*((P`3_3) |^2) = 0.GF(p) by GROUP_1:def 3; then (P`3_3 |^2)*((g2 |^2)*(a|^3) + (g3 |^3)*(b |^2)) = 0.GF(p) by VECTSP_1:4; then g4*(a|^3) + g27*(b|^2) = 0.GF(p) by A6,A17,A19,VECTSP_1:12; hence contradiction by A1,EC_PF_1:def 7; end; theorem ThAddEllEq1: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) & R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)] holds gf2*(P`3_3)*(R`2_3) = - (gf1*(R`1_3*(P`3_3) - P`1_3*(R`3_3)) + gf2*(P`2_3)*(R`3_3)) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that g2 = 2 mod p and gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) and A3: R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)]; R`1_3*(P`3_3)-P`1_3*(R`3_3) = (gf2*gf3)*(P`3_3)-P`1_3*(R`3_3) by A3,MCART_1:def 5 .= (gf2*gf3)*(P`3_3)-P`1_3*((gf2 |^3)*(P`3_3)*(Q`3_3)) by A3,MCART_1:def 7 .= gf2*(P`3_3)*gf3-P`1_3*((gf2 |^(2+1))*(P`3_3)*(Q`3_3)) by GROUP_1:def 3 .= (gf2*(P`3_3))*gf3-P`1_3*(((gf2 |^2)*gf2)*(P`3_3)*(Q`3_3)) by EC_PF_1:24 .= (gf2*(P`3_3))*gf3 -((gf2 |^2)*gf2*(P`3_3))*(P`1_3)*(Q`3_3) by GROUP_1:def 3 .= (gf2*(P`3_3))*gf3-(gf2*(P`3_3)*(gf2 |^2))*(P`1_3)*(Q`3_3) by GROUP_1:def 3 .= (gf2*(P`3_3))*gf3-(gf2*(P`3_3))*((gf2 |^2)*(P`1_3)*(Q`3_3)) by ThGF102 .= (gf2*(P`3_3))*(gf3-(gf2 |^2)*(P`1_3)*(Q`3_3)) by VECTSP_1:11 .= (gf2*(P`3_3))*(-((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3)) by VECTSP_1:17 .= -(gf2*(P`3_3))*((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) by VECTSP_1:8 .= (-gf2*(P`3_3))*((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) by VECTSP_1:9; then E1: gf1*(R`1_3*(P`3_3)-P`1_3*(R`3_3)) = (-gf2*(P`3_3))*(gf1*((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3)) by GROUP_1:def 3; E2: gf2*(P`2_3)*(R`3_3) = gf2*(P`2_3)*((gf2 |^3)*(P`3_3)*(Q`3_3)) by A3,MCART_1:def 7 .= gf2*(P`2_3*((gf2 |^3)*(P`3_3)*(Q`3_3))) by GROUP_1:def 3 .= gf2*(P`3_3*(gf2 |^3)*(P`2_3)*(Q`3_3)) by GROUP_1:def 3 .= gf2*(P`3_3)*(gf2 |^3)*(P`2_3)*(Q`3_3) by ThGF102 .= (gf2*(P`3_3))*((gf2 |^3)*(P`2_3)*(Q`3_3)) by ThGF102 .= (-gf2*(P`3_3))*(-(gf2 |^3)*(P`2_3)*(Q`3_3)) by VECTSP_1:10; thus -(gf1*(R`1_3*(P`3_3) - P`1_3*(R`3_3)) + gf2*(P`2_3)*(R`3_3)) = -((-gf2*(P`3_3))*(gf1*((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) -(gf2 |^3)*(P`2_3)*(Q`3_3))) by E1,E2,VECTSP_1:4 .= -((-gf2*(P`3_3))*(R`2_3)) by A3,MCART_1:def 6 .= -(-((gf2*(P`3_3))*(R`2_3))) by VECTSP_1:9 .= gf2*(P`3_3)*(R`2_3) by RLVECT_1:17; end; theorem ThAddEllEq2: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) & R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)] holds -(gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3) +P`3_3*(Q`1_3)*(R`3_3)+P`1_3*(Q`3_3)*(R`3_3)) + P`3_3*(Q`3_3)*(R`3_3)*(gf1 |^2) = 0.GF(p) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p and A2: gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) and A3: R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)]; E1: P`3_3*(Q`3_3)*(R`3_3)*(gf1 |^2) = R`3_3*((P`3_3*(Q`3_3))*(gf1 |^2)) by GROUP_1:def 3 .= R`3_3*((gf1 |^2)*(P`3_3)*(Q`3_3)) by GROUP_1:def 3; E2: P`3_3*(Q`1_3)*(R`3_3)+P`1_3*(Q`3_3)*(R`3_3) = (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3) by VECTSP_1:4 .= (P`3_3*(Q`1_3)+P`1_3*(Q`3_3)+0.GF(p))*(R`3_3) by ALGSTR_1:7 .= (P`3_3*(Q`1_3)+P`1_3*(Q`3_3)+(Q`3_3*(P`1_3)-Q`3_3*(P`1_3)))*(R`3_3) by VECTSP_1:19 .= (P`3_3*(Q`1_3)+P`1_3*(Q`3_3)+Q`3_3*(P`1_3)-Q`3_3*(P`1_3))*(R`3_3) by ALGSTR_1:7 .= (Q`3_3*(P`1_3)+P`1_3*(Q`3_3)+P`3_3*(Q`1_3)-Q`3_3*(P`1_3))*(R`3_3) by ALGSTR_1:7 .= (g2*(Q`3_3*(P`1_3))+Q`1_3*(P`3_3)-P`1_3*(Q`3_3))*(R`3_3) by A1,ThGF5 .= R`3_3*(g2*(Q`3_3*(P`1_3))+gf2) by A2,ALGSTR_1:7; E3: (gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3)) = (gf2 |^2)*(P`3_3*(Q`3_3)*(gf2*gf3)) by A3,MCART_1:def 5 .= (gf2 |^2)*(P`3_3)*(Q`3_3)*(gf2*gf3) by ThGF102 .= (gf2 |^2)*(P`3_3)*(Q`3_3)*gf2*gf3 by GROUP_1:def 3 .= gf2*(gf2 |^2)*(P`3_3)*(Q`3_3)*gf3 by ThGF102 .= (gf2 |^(2+1))*(P`3_3)*(Q`3_3)*gf3 by EC_PF_1:24 .= R`3_3*gf3 by A3,MCART_1:def 7; E4: (gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3) +P`3_3*(Q`1_3)*(R`3_3)+P`1_3*(Q`3_3)*(R`3_3)) = (gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3)+R`3_3*(g2*(Q`3_3*(P`1_3))+gf2)) by E2,ALGSTR_1:7 .= (gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3)) +(gf2 |^2)*(R`3_3*(g2*(Q`3_3*(P`1_3))+gf2)) by VECTSP_1:4 .= R`3_3*gf3+R`3_3*((gf2 |^2)*(g2*(Q`3_3*(P`1_3))+gf2)) by E3,GROUP_1:def 3 .= R`3_3*(gf3+(gf2 |^2)*(g2*(Q`3_3*(P`1_3))+gf2)) by VECTSP_1:4; gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) -(g2*(gf2 |^2)*(P`1_3)*(Q`3_3)+(gf2 |^(2+1))) by A2,VECTSP_1:17 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-((gf2 |^2)*g2*(P`1_3)*(Q`3_3)+(gf2 |^2)*gf2) by EC_PF_1:24 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-((gf2 |^2)*g2*(P`1_3*(Q`3_3))+(gf2 |^2)*gf2) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-((gf2 |^2)*(g2*(P`1_3*(Q`3_3)))+(gf2 |^2)*gf2) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-(gf2 |^2)*(g2*(Q`3_3*(P`1_3))+gf2) by VECTSP_1:4; then (gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3) +P`3_3*(Q`1_3)*(R`3_3)+P`1_3*(Q`3_3)*(R`3_3)) = R`3_3*((gf1 |^2)*(P`3_3)*(Q`3_3)+((-(gf2 |^2)*(g2*(Q`3_3*(P`1_3))+gf2)) +((gf2 |^2)*(g2*(Q`3_3*(P`1_3))+gf2)))) by E4,ALGSTR_1:7 .= R`3_3*((gf1 |^2)*(P`3_3)*(Q`3_3)+0.GF(p)) by VECTSP_1:19 .= R`3_3*((gf1 |^2)*(P`3_3)*(Q`3_3)) by ALGSTR_1:7; hence -(gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3)+P`3_3*(Q`1_3)*(R`3_3) +P`1_3*(Q`3_3)*(R`3_3)) + P`3_3*(Q`3_3)*(R`3_3)*(gf1 |^2) = 0.GF(p) by E1,RLVECT_1:5; end; theorem ThAddEllEq3: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) & R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)] holds z`2*(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(R`3_3) = -(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3) + ((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p and A2: gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) and A3: R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)]; set a = z`1; set b = z`2; C12: gf2*(P`2_3)-gf1*(P`1_3) = ((Q`1_3*(P`3_3))*(P`2_3)-(P`1_3*(Q`3_3))*(P`2_3)) -(Q`2_3*(P`3_3)-P`2_3*(Q`3_3))*(P`1_3) by A2,VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(P`2_3)-(P`1_3*(Q`3_3))*(P`2_3)) -((Q`2_3*(P`3_3))*(P`1_3)-(P`2_3*(Q`3_3))*(P`1_3)) by VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(P`2_3)-(P`1_3*(Q`3_3))*(P`2_3)) +((P`2_3*(Q`3_3))*(P`1_3)-(Q`2_3*(P`3_3))*(P`1_3)) by VECTSP_1:17 .= ((Q`1_3*(P`3_3))*(P`2_3)-P`1_3*(Q`3_3*(P`2_3))) +((P`2_3*(Q`3_3))*(P`1_3)-(Q`2_3*(P`3_3))*(P`1_3)) by GROUP_1:def 3 .= (Q`1_3*(P`3_3))*(P`2_3)+(-P`1_3*(Q`3_3*(P`2_3)) +((P`2_3*(Q`3_3))*(P`1_3)-(Q`2_3*(P`3_3))*(P`1_3))) by ALGSTR_1:7 .= (Q`1_3*(P`3_3))*(P`2_3)+((-P`1_3*(P`2_3*(Q`3_3)) +(P`2_3*(Q`3_3))*(P`1_3))-(Q`2_3*(P`3_3))*(P`1_3)) by ALGSTR_1:7 .= (Q`1_3*(P`3_3))*(P`2_3)+(0.GF(p)-(P`3_3*(Q`2_3))*(P`1_3)) by VECTSP_1:19 .= (P`3_3*(Q`1_3))*(P`2_3)-(P`3_3*(Q`2_3))*(P`1_3) by VECTSP_1:18 .= P`3_3*(Q`1_3*(P`2_3))-(P`3_3*(Q`2_3))*(P`1_3) by GROUP_1:def 3 .= P`3_3*(P`2_3*(Q`1_3))-P`3_3*(Q`2_3*(P`1_3)) by GROUP_1:def 3 .= P`3_3*(P`2_3*(Q`1_3)-Q`2_3*(P`1_3)) by VECTSP_1:11; gf2*(Q`2_3)-gf1*(Q`1_3) = ((Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3)) -(Q`2_3*(P`3_3)-P`2_3*(Q`3_3))*(Q`1_3) by A2,VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3)) -((Q`2_3*(P`3_3))*(Q`1_3)-(P`2_3*(Q`3_3))*(Q`1_3)) by VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3)) +((P`2_3*(Q`3_3))*(Q`1_3)-(Q`2_3*(P`3_3))*(Q`1_3)) by VECTSP_1:17 .= (Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3) +(P`2_3*(Q`3_3))*(Q`1_3)-(Q`2_3*(P`3_3))*(Q`1_3) by ALGSTR_1:7 .= (Q`1_3*(P`3_3))*(Q`2_3)-(Q`2_3*(P`3_3))*(Q`1_3) +(P`2_3*(Q`3_3))*(Q`1_3)-(P`1_3*(Q`3_3))*(Q`2_3) by ThGF001 .= Q`1_3*(P`3_3*(Q`2_3))-Q`1_3*(P`3_3*(Q`2_3)) +(Q`3_3*(P`2_3))*(Q`1_3)-(Q`3_3*(P`1_3))*(Q`2_3) by GROUP_1:def 3 .= 0.GF(p)+(Q`3_3*(P`2_3))*(Q`1_3)-(Q`3_3*(P`1_3))*(Q`2_3) by VECTSP_1:19 .= (Q`3_3*(P`2_3))*(Q`1_3)-(Q`3_3*(P`1_3))*(Q`2_3) by ALGSTR_1:7 .= Q`3_3*(P`2_3*(Q`1_3))-(Q`3_3*(P`1_3))*(Q`2_3) by GROUP_1:def 3 .= Q`3_3*(P`2_3*(Q`1_3))-Q`3_3*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= Q`3_3*(P`2_3*(Q`1_3)-P`1_3*(Q`2_3)) by VECTSP_1:11; then E2: (gf2*(Q`2_3)-gf1*(Q`1_3))*(P`3_3) = (gf2*(P`2_3)-gf1*(P`1_3))*(Q`3_3) by C12,GROUP_1:def 3; E1: -(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3) = -(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(gf2*gf3) by A3,MCART_1:def 5 .= -(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*gf3*gf2 by GROUP_1:def 3 .= -gf2*(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*gf3 by ThGF103 .= -(gf2 |^(2+1))*(P`3_3)*(P`1_3)*(Q`1_3)*gf3 by EC_PF_1:24 .= -(gf2 |^3)*(P`3_3)*(P`1_3*(Q`1_3)*gf3) by ThGF102 .= (gf2 |^3)*(P`3_3)*(-P`1_3*(Q`1_3)*gf3) by VECTSP_1:8; -gf1*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3)) = -(Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3)) -P`2_3*(Q`3_3)*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3))) by A2,VECTSP_1:13 .= -(Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) +Q`2_3*(P`3_3)*(Q`1_3*(P`2_3)) -P`2_3*(Q`3_3)*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3))) by VECTSP_1:4 .= -(Q`2_3*(P`3_3)*(P`1_3*(Q`2_3))+Q`2_3*(P`3_3)*(Q`1_3*(P`2_3)) -(P`2_3*(Q`3_3)*(P`1_3*(Q`2_3))+P`2_3*(Q`3_3)*(Q`1_3*(P`2_3)))) by VECTSP_1:4 .= (P`2_3*(Q`3_3)*(P`1_3*(Q`2_3))+P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))) -(Q`2_3*(P`3_3)*(P`1_3*(Q`2_3))+Q`2_3*(P`3_3)*(Q`1_3*(P`2_3))) by VECTSP_1:17 .= P`2_3*(Q`3_3)*(P`1_3*(Q`2_3))+P`2_3*(Q`3_3)*(Q`1_3*(P`2_3)) -Q`2_3*(P`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by VECTSP_1:17 .= P`2_3*(Q`3_3)*(P`1_3*(Q`2_3))-Q`2_3*(P`3_3)*(Q`1_3*(P`2_3)) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by ALGSTR_1:8 .= P`2_3*(Q`3_3)*(P`1_3*(Q`2_3))-P`3_3*(Q`1_3*(P`2_3))*(Q`2_3) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= (P`2_3*(Q`3_3)*(P`1_3))*(Q`2_3)-P`3_3*(Q`1_3*(P`2_3))*(Q`2_3) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= (P`1_3*(Q`3_3)*(P`2_3))*(Q`2_3)-P`3_3*(Q`1_3*(P`2_3))*(Q`2_3) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= (P`1_3*(Q`3_3)*(P`2_3))*(Q`2_3)-(P`3_3*(Q`1_3)*(P`2_3))*(Q`2_3) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= (P`1_3*(Q`3_3))*(P`2_3*(Q`2_3))-(P`3_3*(Q`1_3)*(P`2_3))*(Q`2_3) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= (P`1_3*(Q`3_3))*(P`2_3*(Q`2_3))-(P`3_3*(Q`1_3))*(P`2_3*(Q`2_3)) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= (P`1_3*(Q`3_3)-P`3_3*(Q`1_3))*(P`2_3*(Q`2_3)) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by VECTSP_1:13 .= (-(P`1_3*(Q`3_3)-P`3_3*(Q`1_3)))*(-P`2_3*(Q`2_3)) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by VECTSP_1:10 .= (P`3_3*(Q`1_3)-P`1_3*(Q`3_3))*(-P`2_3*(Q`2_3)) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by VECTSP_1:17 .= -(Q`1_3*(P`3_3)-P`1_3*(Q`3_3))*(P`2_3*(Q`2_3)) +P`2_3*(Q`3_3)*(Q`1_3*(P`2_3))-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by VECTSP_1:8 .= -gf2*(P`2_3*(Q`2_3)) +Q`3_3*(Q`1_3*(P`2_3))*(P`2_3)-Q`2_3*(P`3_3)*(P`1_3*(Q`2_3)) by A2,GROUP_1:def 3 .= -gf2*(P`2_3*(Q`2_3)) +Q`3_3*(Q`1_3*(P`2_3))*(P`2_3)-P`3_3*(P`1_3*(Q`2_3))*(Q`2_3) by GROUP_1:def 3 .= -gf2*(P`2_3)*(Q`2_3) +Q`3_3*(Q`1_3*(P`2_3))*(P`2_3)-P`3_3*(P`1_3*(Q`2_3))*(Q`2_3) by GROUP_1:def 3 .= -gf2*(P`2_3)*(Q`2_3) +Q`3_3*(Q`1_3)*(P`2_3)*(P`2_3)-P`3_3*(P`1_3*(Q`2_3))*(Q`2_3) by GROUP_1:def 3 .= -gf2*(P`2_3)*(Q`2_3) +Q`3_3*(Q`1_3)*(P`2_3*(P`2_3))-P`3_3*(P`1_3*(Q`2_3))*(Q`2_3) by GROUP_1:def 3 .= -gf2*(P`2_3)*(Q`2_3) +Q`3_3*(Q`1_3)*(P`2_3 |^2)-P`3_3*(P`1_3*(Q`2_3))*(Q`2_3) by EC_PF_1:22 .= -gf2*(P`2_3)*(Q`2_3) +Q`3_3*(Q`1_3)*(P`2_3 |^2)-P`3_3*(P`1_3)*(Q`2_3)*(Q`2_3) by GROUP_1:def 3 .= -gf2*(P`2_3)*(Q`2_3) +Q`3_3*(Q`1_3)*(P`2_3 |^2)-P`3_3*(P`1_3)*(Q`2_3*(Q`2_3)) by GROUP_1:def 3 .= -gf2*(P`2_3)*(Q`2_3) +Q`3_3*(Q`1_3)*(P`2_3 |^2)-P`3_3*(P`1_3)*(Q`2_3 |^2) by EC_PF_1:22 .= -gf2*(P`2_3)*(Q`2_3) +Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`3_3*(P`1_3)*(Q`2_3 |^2) by GROUP_1:def 3 .= -gf2*(P`2_3)*(Q`2_3) +Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3) by GROUP_1:def 3; then E3: gf2*(P`2_3)*(Q`2_3)-gf1*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3)) = gf2*(P`2_3)*(Q`2_3)-gf2*(P`2_3)*(Q`2_3) +Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3) by ThGF002 .= 0.GF(p)+Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3) by RLVECT_1:5 .= Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3) by RLVECT_1:4; E5: ((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(Q`3_3) = (gf2*(P`2_3)-gf1*(P`1_3))*(gf2*(P`2_3)-gf1*(P`1_3))*(Q`3_3) by EC_PF_1:22 .= (gf2*(P`2_3)-gf1*(P`1_3))*((gf2*(P`2_3)-gf1*(P`1_3))*(Q`3_3)) by GROUP_1:def 3 .= (gf2*(P`2_3)-gf1*(P`1_3))*(gf2*(Q`2_3)-gf1*(Q`1_3))*(P`3_3) by E2,GROUP_1:def 3 .= (gf2*(P`2_3)*(gf2*(Q`2_3)-gf1*(Q`1_3)) -gf1*(P`1_3)*(gf2*(Q`2_3)-gf1*(Q`1_3)))*(P`3_3) by VECTSP_1:13 .= (gf2*(P`2_3)*(gf2*(Q`2_3))-gf2*(P`2_3)*(gf1*(Q`1_3)) -gf1*(P`1_3)*(gf2*(Q`2_3)-gf1*(Q`1_3)))*(P`3_3) by VECTSP_1:11 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*(P`2_3)*(gf1*(Q`1_3)) -gf1*(P`1_3)*(gf2*(Q`2_3)-gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*(gf1*(Q`1_3))*(P`2_3) -gf1*(P`1_3)*(gf2*(Q`2_3)-gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*gf1*(Q`1_3)*(P`2_3) -gf1*(P`1_3)*(gf2*(Q`2_3)-gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*gf1*(Q`1_3*(P`2_3)) -gf1*(P`1_3)*(gf2*(Q`2_3)-gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*gf1*(Q`1_3*(P`2_3)) -(gf1*(P`1_3)*(gf2*(Q`2_3))-gf1*(P`1_3)*(gf1*(Q`1_3))))*(P`3_3) by VECTSP_1:11 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*gf1*(Q`1_3*(P`2_3)) +(gf1*(P`1_3)*(gf1*(Q`1_3))-gf1*(P`1_3)*(gf2*(Q`2_3))))*(P`3_3) by VECTSP_1:17 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*gf1*(Q`1_3*(P`2_3)) +gf1*(P`1_3)*(gf1*(Q`1_3))-gf1*(P`1_3)*(gf2*(Q`2_3)))*(P`3_3) by ALGSTR_1:7 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*gf1*(Q`1_3*(P`2_3)) -gf1*(P`1_3)*(gf2*(Q`2_3))+gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by ALGSTR_1:8 .= (gf2*(gf2*(P`2_3)*(Q`2_3))+(-gf2*gf1*(Q`1_3*(P`2_3)) -gf1*(P`1_3)*(gf2*(Q`2_3)))+gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by ALGSTR_1:7 .= (gf2*(gf2*(P`2_3)*(Q`2_3))+(-gf2*gf1*(Q`1_3*(P`2_3)) -gf1*(P`1_3)*gf2*(Q`2_3))+gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3))+(-gf2*gf1*(Q`1_3*(P`2_3)) -gf2*gf1*(P`1_3)*(Q`2_3))+gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3))+(-gf2*gf1*(Q`1_3*(P`2_3)) -gf2*gf1*(P`1_3*(Q`2_3)))+gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3)) -(gf2*gf1*(P`1_3*(Q`2_3))+gf2*gf1*(Q`1_3*(P`2_3))) +gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by VECTSP_1:17 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*gf1*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3)) +gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by VECTSP_1:4 .= (gf2*(gf2*(P`2_3)*(Q`2_3))-gf2*(gf1*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3))) +gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by GROUP_1:def 3 .= (gf2*(gf2*(P`2_3)*(Q`2_3)-gf1*(P`1_3*(Q`2_3)+Q`1_3*(P`2_3))) +gf1*(P`1_3)*(gf1*(Q`1_3)))*(P`3_3) by VECTSP_1:11 .= (gf2*(Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3)) +gf1*(P`1_3)*gf1*(Q`1_3))*(P`3_3) by E3,GROUP_1:def 3 .= (gf2*(Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3)) +gf1*gf1*(P`1_3)*(Q`1_3))*(P`3_3) by GROUP_1:def 3 .= (gf2*(Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3)) +(gf1 |^2)*(P`1_3)*(Q`1_3))*(P`3_3) by EC_PF_1:22 .= gf2*(Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3))*(P`3_3) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3) by VECTSP_1:4 .= gf2*((Q`1_3*(P`2_3 |^2)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3))*(P`3_3)) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3) by GROUP_1:def 3 .= gf2*(Q`1_3*(P`2_3 |^2)*(Q`3_3)*(P`3_3) -P`1_3*(Q`2_3 |^2)*(P`3_3)*(P`3_3)) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3) by VECTSP_1:13 .= gf2*(Q`1_3*(P`2_3 |^2)*(Q`3_3)*(P`3_3) -P`1_3*(Q`2_3 |^2)*(P`3_3*(P`3_3))) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3) by GROUP_1:def 3 .= gf2*(Q`1_3*(P`2_3 |^2)*(Q`3_3)*(P`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3 |^2)) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3) by EC_PF_1:22 .= gf2*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3)-P`1_3*(Q`2_3 |^2)*(P`3_3 |^2)) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3) by GROUP_1:def 3 .= gf2*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3)-P`1_3*(P`3_3 |^2)*(Q`2_3 |^2)) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3) by GROUP_1:def 3; E6: (gf2 |^3)*(P`3_3)*(-P`1_3*(Q`1_3)*gf3) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3)*(R`3_3) = (gf2 |^3)*(P`3_3)*(P`1_3*(Q`1_3)*(-gf3)) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3)*(R`3_3) by VECTSP_1:8 .= (gf2 |^3)*(P`3_3)*(P`1_3*(Q`1_3))*(-gf3) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3)*(R`3_3) by GROUP_1:def 3 .= (gf2 |^3)*(P`1_3*(Q`1_3))*(P`3_3)*(-gf3) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3)*(R`3_3) by GROUP_1:def 3 .= ((gf2 |^3)*(P`1_3)*(Q`1_3))*(P`3_3)*(-gf3) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3)*(R`3_3) by GROUP_1:def 3 .= ((gf2 |^3)*(P`1_3)*(Q`1_3))*(P`3_3)*(-gf3) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3)*((gf2 |^3)*(P`3_3)*(Q`3_3)) by A3,MCART_1:def 7 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3))*(-gf3) +(gf1 |^2)*(P`1_3*(Q`1_3)*(P`3_3))*((gf2 |^3)*(P`3_3)*(Q`3_3)) by ThGF102 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3))*(-gf3) +(gf1 |^2)*(P`1_3*(Q`1_3)*(P`3_3))*(gf2 |^3)*(P`3_3)*(Q`3_3) by ThGF102 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3))*(-gf3) +((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3))*(gf1 |^2)*(P`3_3)*(Q`3_3) by ThGF102 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3))*(-gf3) +((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by ThGF102 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3))*(-gf3+(gf1 |^2)*(P`3_3)*(Q`3_3)) by VECTSP_1:4 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(-((gf1 |^2)*(P`3_3)*(Q`3_3)+(-(gf2 |^3) -g2*(gf2 |^2)*(P`1_3)*(Q`3_3)))+(gf1 |^2)*(P`3_3)*(Q`3_3)) by A2,ALGSTR_1:7 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(-(-(gf2 |^3)-g2*(gf2 |^2)*(P`1_3)*(Q`3_3)) -(gf1 |^2)*(P`3_3)*(Q`3_3)+(gf1 |^2)*(P`3_3)*(Q`3_3)) by VECTSP_1:17 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(-(-(gf2 |^3)-g2*(gf2 |^2)*(P`1_3)*(Q`3_3)) +(-(gf1 |^2)*(P`3_3)*(Q`3_3)+(gf1 |^2)*(P`3_3)*(Q`3_3))) by ALGSTR_1:7 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(-(-(gf2 |^3)-g2*(gf2 |^2)*(P`1_3)*(Q`3_3))+0.GF(p)) by RLVECT_1:5 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(-(-(gf2 |^3)-g2*(gf2 |^2)*(P`1_3)*(Q`3_3))) by RLVECT_1:4 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(g2*(gf2 |^2)*(P`1_3)*(Q`3_3)+(gf2 |^(2+1))) by VECTSP_1:17 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(g2*(gf2 |^2)*(P`1_3)*(Q`3_3)+(gf2 |^2)*gf2) by EC_PF_1:24 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2 |^2)*(g2*(P`1_3)*(Q`3_3))+(gf2 |^2)*gf2) by ThGF102 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2 |^2)*(g2*(P`1_3)*(Q`3_3)+gf2)) by VECTSP_1:4 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2 |^2)*(Q`1_3*(P`3_3)-P`1_3*(Q`3_3)+g2*(P`1_3*(Q`3_3)))) by A2,GROUP_1:def 3 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2 |^2)*(Q`1_3*(P`3_3)-P`1_3*(Q`3_3) +(P`1_3*(Q`3_3)+P`1_3*(Q`3_3)))) by A1,ThGF5 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2 |^2)*(Q`1_3*(P`3_3)-P`1_3*(Q`3_3) +P`1_3*(Q`3_3)+P`1_3*(Q`3_3))) by ALGSTR_1:7 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2 |^2)*(Q`1_3*(P`3_3)+(-P`1_3*(Q`3_3) +P`1_3*(Q`3_3))+P`1_3*(Q`3_3))) by ALGSTR_1:7 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2 |^2)*(Q`1_3*(P`3_3)+0.GF(p)+P`1_3*(Q`3_3))) by RLVECT_1:5 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *((gf2*gf2)*(Q`1_3*(P`3_3)+0.GF(p)+P`1_3*(Q`3_3))) by EC_PF_1:22 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(gf2*(Q`1_3*(P`3_3)-P`1_3*(Q`3_3))*(Q`1_3*(P`3_3)+P`1_3*(Q`3_3))) by A2,RLVECT_1:4 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(gf2*((Q`1_3*(P`3_3)-P`1_3*(Q`3_3))*(Q`1_3*(P`3_3) +P`1_3*(Q`3_3)))) by GROUP_1:def 3 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *(gf2*(((Q`1_3*(P`3_3)) |^2)-((P`1_3*(Q`3_3)) |^2))) by ThGFA3 .= ((gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3)) *gf2*(((Q`1_3*(P`3_3)) |^2)-((P`1_3*(Q`3_3)) |^2)) by GROUP_1:def 3 .= gf2*(gf2 |^3)*(P`1_3)*(Q`1_3)*(P`3_3) *(((Q`1_3*(P`3_3)) |^2)-((P`1_3*(Q`3_3)) |^2)) by ThGF102 .= (gf2 |^(3+1))*(P`1_3)*(Q`1_3)*(P`3_3) *(((Q`1_3*(P`3_3)) |^2)-((P`1_3*(Q`3_3)) |^2)) by EC_PF_1:24 .= (gf2 |^4)*(P`1_3*(Q`1_3))*(P`3_3) *(((Q`1_3*(P`3_3)) |^2)-((P`1_3*(Q`3_3)) |^2)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*(P`1_3*(Q`1_3)) *(((Q`1_3*(P`3_3)) |^2)-((P`1_3*(Q`3_3)) |^2)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*((P`1_3*(Q`1_3)) *(((Q`1_3*(P`3_3)) |^2)-((P`1_3*(Q`3_3)) |^2))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* (P`1_3*(Q`1_3)*((Q`1_3*(P`3_3)) |^2)-P`1_3*(Q`1_3)*((P`1_3*(Q`3_3)) |^2)) by VECTSP_1:11 .= (gf2 |^4)*(P`3_3)* (P`1_3*(Q`1_3)*((Q`1_3 |^2)*(P`3_3 |^2)) -P`1_3*(Q`1_3)*((P`1_3*(Q`3_3)) |^2)) by BINOM:9 .= (gf2 |^4)*(P`3_3)* (P`1_3*(Q`1_3)*(Q`1_3 |^2)*(P`3_3 |^2)-P`1_3*(Q`1_3)*((P`1_3*(Q`3_3)) |^2)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^2)*(Q`1_3)-P`1_3*(Q`1_3)*((P`1_3*(Q`3_3)) |^2)) by ThGF101 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*((Q`1_3 |^2)*(Q`1_3)) -P`1_3*(Q`1_3)*((P`1_3*(Q`3_3)) |^2)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^(2+1))-P`1_3*(Q`1_3)*((P`1_3*(Q`3_3)) |^2)) by EC_PF_1:24 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-P`1_3*(Q`1_3)*((P`1_3 |^2)*(Q`3_3 |^2))) by BINOM:9 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-P`1_3*(Q`1_3)*(P`1_3 |^2)*(Q`3_3 |^2)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-(Q`3_3 |^2)*(Q`1_3)*(P`1_3 |^2)*(P`1_3)) by ThGF101 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-(Q`3_3 |^2)*(Q`1_3)*((P`1_3 |^2)*(P`1_3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-Q`1_3*(Q`3_3 |^2)*(P`1_3 |^(2+1))) by EC_PF_1:24 .= (gf2 |^4)*(P`3_3)* (P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-Q`1_3*(Q`3_3 |^2)*(P`1_3 |^3)); E7: gf2*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*(R`3_3) = gf2*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*((gf2 |^3)*(P`3_3)*(Q`3_3)) by A3,MCART_1:def 7 .= gf2*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*((gf2 |^3)*(P`3_3))*(Q`3_3) by GROUP_1:def 3 .= gf2*((gf2 |^3)*(P`3_3))*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*(Q`3_3) by GROUP_1:def 3 .= (gf2*(gf2 |^3)*(P`3_3))*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*(Q`3_3) by GROUP_1:def 3 .= ((gf2 |^(3+1))*(P`3_3))*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*(Q`3_3) by EC_PF_1:24 .= (gf2 |^4)*(P`3_3)*((Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*(Q`3_3)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2)*(Q`3_3)) by VECTSP_1:13 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3*(Q`3_3)) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2)*(Q`3_3)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3 |^2) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2)*(Q`3_3)) by EC_PF_1:22 .= (gf2 |^4)*(P`3_3)*(Q`1_3*((P`2_3 |^2)*(P`3_3))*(Q`3_3 |^2) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2)*(Q`3_3)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2)*(Q`3_3)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)) -P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3))) by GROUP_1:def 3; 0.GF(p) = ((P`2_3) |^2)*(P`3_3) - ((P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3) by ThOnCurve2 .= (P`2_3 |^2)*(P`3_3)-((P`1_3 |^3)+(a*(P`1_3)*(P`3_3 |^2)+b*(P`3_3 |^3))) by ALGSTR_1:7 .= (P`2_3 |^2)*(P`3_3)-(P`1_3 |^3)-(a*(P`1_3)*(P`3_3 |^2)+b*(P`3_3 |^3)) by VECTSP_1:17; then E8: (P`2_3 |^2)*(P`3_3)-(P`1_3 |^3) = a*(P`1_3)*(P`3_3 |^2)+b*(P`3_3 |^3) by VECTSP_1:19; E9: 0.GF(p) = ((Q`2_3) |^2)*(Q`3_3) - ((Q`1_3) |^3 + a*(Q`1_3)*(Q`3_3) |^2 + b*(Q`3_3) |^3) by ThOnCurve2 .= (Q`2_3 |^2)*(Q`3_3)-((Q`1_3 |^3) +(a*(Q`1_3)*(Q`3_3 |^2)+b*(Q`3_3 |^3))) by ALGSTR_1:7 .= (Q`2_3 |^2)*(Q`3_3)-(Q`1_3 |^3) -(a*(Q`1_3)*(Q`3_3 |^2)+b*(Q`3_3 |^3)) by VECTSP_1:17; thus -(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3) = (gf2 |^3)*(P`3_3)*(-P`1_3*(Q`1_3)*gf3) +(gf2*(Q`1_3*(P`2_3 |^2)*(P`3_3)*(Q`3_3) -P`1_3*(P`3_3 |^2)*(Q`2_3 |^2))*(R`3_3) +(gf1 |^2)*(P`1_3)*(Q`1_3)*(P`3_3)*(R`3_3)) by E1,E5,VECTSP_1:4 .= (gf2 |^4)*(P`3_3)*(P`1_3*(P`3_3 |^2)*(Q`1_3 |^3) -Q`1_3*(Q`3_3 |^2)*(P`1_3 |^3)) +(gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)) -P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3))) by E6,E7,ALGSTR_1:7 .= (gf2 |^4)*(P`3_3)*(P`1_3*(P`3_3 |^2)*(Q`1_3 |^3) -Q`1_3*(Q`3_3 |^2)*(P`1_3 |^3) +(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)) -P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3)))) by VECTSP_1:4 .= (gf2 |^4)*(P`3_3)*(P`1_3*(P`3_3 |^2)*(Q`1_3 |^3) +(-Q`1_3*(Q`3_3 |^2)*(P`1_3 |^3)) +Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)) -P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3))) by ALGSTR_1:7 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)) -Q`1_3*(Q`3_3 |^2)*(P`1_3 |^3) +P`1_3*(P`3_3 |^2)*(Q`1_3 |^3) -P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3))) by ALGSTR_1:8 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)-(P`1_3 |^3)) +P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3))) by VECTSP_1:11 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)-(P`1_3 |^3)) +(P`1_3*(P`3_3 |^2)*(Q`1_3 |^3)-P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3)))) by ALGSTR_1:7 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)-(P`1_3 |^3)) +P`1_3*(P`3_3 |^2)*((Q`1_3 |^3)-(Q`2_3 |^2)*(Q`3_3))) by VECTSP_1:11 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)-(P`1_3 |^3)) -(-P`1_3*(P`3_3 |^2)*((Q`1_3 |^3)-(Q`2_3 |^2)*(Q`3_3)))) by RLVECT_1:17 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)-(P`1_3 |^3)) -P`1_3*(P`3_3 |^2)*(-((Q`1_3 |^3)-(Q`2_3 |^2)*(Q`3_3)))) by VECTSP_1:8 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*((P`2_3 |^2)*(P`3_3)-(P`1_3 |^3)) -P`1_3*(P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3)-(Q`1_3 |^3))) by VECTSP_1:17 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*(a*(P`1_3)*(P`3_3 |^2) +b*(P`3_3 |^3)) -P`1_3*(P`3_3 |^2)*(a*(Q`1_3)*(Q`3_3 |^2)+b*(Q`3_3 |^3))) by E8,E9,VECTSP_1:19 .= (gf2 |^4)*(P`3_3)* (Q`1_3*(Q`3_3 |^2)*(a*(P`1_3)*(P`3_3 |^2)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3)) -P`1_3*(P`3_3 |^2)*(a*(Q`1_3)*(Q`3_3 |^2)+b*(Q`3_3 |^3))) by VECTSP_1:4 .= (gf2 |^4)*(P`3_3)* (Q`1_3*(Q`3_3 |^2)*(a*(P`1_3)*(P`3_3 |^2)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3)) -(P`1_3*(P`3_3 |^2)*(a*(Q`1_3)*(Q`3_3 |^2)) +P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)))) by VECTSP_1:4 .= (gf2 |^4)*(P`3_3)* (Q`1_3*(Q`3_3 |^2)*(a*(P`1_3)*(P`3_3 |^2)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3)) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)) -P`1_3*(P`3_3 |^2)*(a*(Q`1_3)*(Q`3_3 |^2))) by VECTSP_1:17 .= (gf2 |^4)*(P`3_3)* (Q`1_3*(Q`3_3 |^2)*(a*(P`1_3)*(P`3_3 |^2)) -P`1_3*(P`3_3 |^2)*(a*(Q`1_3)*(Q`3_3 |^2)) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by ThGF001 .= (gf2 |^4)*(P`3_3)* (((a*(P`1_3)*(P`3_3 |^2))*(Q`1_3)*(Q`3_3 |^2) -P`1_3*(P`3_3 |^2)*(a*(Q`1_3)*(Q`3_3 |^2))) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* ((a*(P`1_3)*(P`3_3 |^2)*(Q`1_3)*(Q`3_3 |^2) -P`1_3*(P`3_3 |^2)*(a*(Q`1_3*(Q`3_3 |^2)))) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* ((a*(P`1_3)*(P`3_3 |^2)*(Q`1_3)*(Q`3_3 |^2) -P`1_3*(P`3_3 |^2)*a*(Q`1_3*(Q`3_3 |^2))) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* ((a*(P`1_3)*(P`3_3 |^2)*(Q`1_3)*(Q`3_3 |^2) -a*(P`1_3)*(P`3_3 |^2)*(Q`1_3*(Q`3_3 |^2))) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3))+Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* ((a*(P`1_3)*(P`3_3 |^2)*(Q`1_3)*(Q`3_3 |^2) -a*(P`1_3)*(P`3_3 |^2)*(Q`1_3)*(Q`3_3 |^2)) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3))+Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)* (0.GF(p)-P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by RLVECT_1:5 .= (gf2 |^4)*(P`3_3)*(-P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3)) +Q`1_3*(Q`3_3 |^2)*(b*(P`3_3 |^3))) by RLVECT_1:4 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*b*(P`3_3 |^(2+1)) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*b*((P`3_3 |^2)*(P`3_3)) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3))) by EC_PF_1:24 .= (gf2 |^4)*(P`3_3)*(Q`1_3*(Q`3_3 |^2)*b*(P`3_3 |^2)*(P`3_3) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3)*(P`3_3) -P`1_3*(P`3_3 |^2)*(b*(Q`3_3 |^3))) by ThGF101 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3)*(P`3_3) -P`1_3*(P`3_3 |^2)*b*(Q`3_3 |^(2+1))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3)*(P`3_3) -P`1_3*(P`3_3 |^2)*b*((Q`3_3 |^2)*(Q`3_3))) by EC_PF_1:24 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3)*(P`3_3) -P`1_3*(P`3_3 |^2)*b*(Q`3_3 |^2)*(Q`3_3)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3)*(P`3_3) -(Q`3_3 |^2)*(P`3_3 |^2)*b*(P`1_3)*(Q`3_3)) by ThGF101 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3*(P`3_3)) -(P`3_3 |^2)*(Q`3_3 |^2)*b*(P`1_3)*(Q`3_3)) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3*(P`3_3)) -(P`3_3 |^2)*(Q`3_3 |^2)*b*(P`1_3*(Q`3_3))) by GROUP_1:def 3 .= (gf2 |^4)*(P`3_3)*((P`3_3 |^2)*(Q`3_3 |^2)*b*(Q`1_3*(P`3_3) -P`1_3*(Q`3_3))) by VECTSP_1:11 .= (gf2 |^4)*(P`3_3)*(Q`3_3 |^2)*(P`3_3 |^2)*b*gf2 by A2,ThGF102 .= (gf2 |^4)*(P`3_3)*(Q`3_3*(Q`3_3))*(P`3_3 |^2)*b*gf2 by EC_PF_1:22 .= ((gf2 |^(3+1))*(P`3_3)*(Q`3_3))*(Q`3_3)*(P`3_3 |^2)*b*gf2 by GROUP_1:def 3 .= (((gf2 |^3)*gf2)*(P`3_3)*(Q`3_3))*(Q`3_3)*(P`3_3 |^2)*b*gf2 by EC_PF_1:24 .= (gf2*((gf2 |^3)*(P`3_3)*(Q`3_3)))*(Q`3_3)*(P`3_3 |^2)*b*gf2 by ThGF102 .= (gf2*(R`3_3))*(Q`3_3)*(P`3_3 |^2)*b*gf2 by A3,MCART_1:def 7 .= gf2*(gf2*(R`3_3*(Q`3_3)*(P`3_3 |^2)*b)) by ThGF103 .= gf2*gf2*(R`3_3*(Q`3_3)*(P`3_3 |^2)*b) by GROUP_1:def 3 .= (gf2 |^2)*(R`3_3*(Q`3_3)*(P`3_3 |^2)*b) by EC_PF_1:22 .= (gf2 |^2)*(b*(Q`3_3)*(P`3_3 |^2)*(R`3_3)) by ThGF101 .= (gf2 |^2)*b*(Q`3_3)*(P`3_3 |^2)*(R`3_3) by ThGF102 .= b*(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(R`3_3) by GROUP_1:def 3; end; theorem ThAddEllEq4: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) & R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)] holds z`1*(gf2 |^2)*(P`3_3)*(Q`3_3)*(R`3_3) = (gf2 |^2)*(P`1_3*(Q`1_3)*(R`3_3)+P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3)) + g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) - gf1*(P`1_3)) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p and A2: gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) and A3: R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)]; set a = z`1; set b = z`2; C12: gf2*(P`2_3)-gf1*(P`1_3) = ((Q`1_3*(P`3_3))*(P`2_3)-(P`1_3*(Q`3_3))*(P`2_3)) -(Q`2_3*(P`3_3)-P`2_3*(Q`3_3))*(P`1_3) by A2,VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(P`2_3)-(P`1_3*(Q`3_3))*(P`2_3)) -((Q`2_3*(P`3_3))*(P`1_3)-(P`2_3*(Q`3_3))*(P`1_3)) by VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(P`2_3)-(P`1_3*(Q`3_3))*(P`2_3)) +((P`2_3*(Q`3_3))*(P`1_3)-(Q`2_3*(P`3_3))*(P`1_3)) by VECTSP_1:17 .= ((Q`1_3*(P`3_3))*(P`2_3)-P`1_3*(Q`3_3*(P`2_3))) +((P`2_3*(Q`3_3))*(P`1_3)-(Q`2_3*(P`3_3))*(P`1_3)) by GROUP_1:def 3 .= (Q`1_3*(P`3_3))*(P`2_3)+(-P`1_3*(Q`3_3*(P`2_3)) +((P`2_3*(Q`3_3))*(P`1_3)-(Q`2_3*(P`3_3))*(P`1_3))) by ALGSTR_1:7 .= (Q`1_3*(P`3_3))*(P`2_3)+((-P`1_3*(P`2_3*(Q`3_3)) +(P`2_3*(Q`3_3))*(P`1_3))-(Q`2_3*(P`3_3))*(P`1_3)) by ALGSTR_1:7 .= (Q`1_3*(P`3_3))*(P`2_3)+(0.GF(p)-(P`3_3*(Q`2_3))*(P`1_3)) by VECTSP_1:19 .= (P`3_3*(Q`1_3))*(P`2_3)-(P`3_3*(Q`2_3))*(P`1_3) by VECTSP_1:18 .= P`3_3*(Q`1_3*(P`2_3))-(P`3_3*(Q`2_3))*(P`1_3) by GROUP_1:def 3 .= P`3_3*(P`2_3*(Q`1_3))-P`3_3*(Q`2_3*(P`1_3)) by GROUP_1:def 3 .= P`3_3*(P`2_3*(Q`1_3)-Q`2_3*(P`1_3)) by VECTSP_1:11; gf2*(Q`2_3)-gf1*(Q`1_3) = ((Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3)) -(Q`2_3*(P`3_3)-P`2_3*(Q`3_3))*(Q`1_3) by A2,VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3)) -((Q`2_3*(P`3_3))*(Q`1_3)-(P`2_3*(Q`3_3))*(Q`1_3)) by VECTSP_1:11 .= ((Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3)) +((P`2_3*(Q`3_3))*(Q`1_3)-(Q`2_3*(P`3_3))*(Q`1_3)) by VECTSP_1:17 .= (Q`1_3*(P`3_3))*(Q`2_3)-(P`1_3*(Q`3_3))*(Q`2_3) +(P`2_3*(Q`3_3))*(Q`1_3)-(Q`2_3*(P`3_3))*(Q`1_3) by ALGSTR_1:7 .= (Q`1_3*(P`3_3))*(Q`2_3)-(Q`2_3*(P`3_3))*(Q`1_3) +(P`2_3*(Q`3_3))*(Q`1_3)-(P`1_3*(Q`3_3))*(Q`2_3) by ThGF001 .= Q`1_3*(P`3_3*(Q`2_3))-Q`1_3*(P`3_3*(Q`2_3)) +(Q`3_3*(P`2_3))*(Q`1_3)-(Q`3_3*(P`1_3))*(Q`2_3) by GROUP_1:def 3 .= 0.GF(p)+(Q`3_3*(P`2_3))*(Q`1_3)-(Q`3_3*(P`1_3))*(Q`2_3) by VECTSP_1:19 .= (Q`3_3*(P`2_3))*(Q`1_3)-(Q`3_3*(P`1_3))*(Q`2_3) by ALGSTR_1:7 .= Q`3_3*(P`2_3*(Q`1_3))-(Q`3_3*(P`1_3))*(Q`2_3) by GROUP_1:def 3 .= Q`3_3*(P`2_3*(Q`1_3))-Q`3_3*(P`1_3*(Q`2_3)) by GROUP_1:def 3 .= Q`3_3*(P`2_3*(Q`1_3)-P`1_3*(Q`2_3)) by VECTSP_1:11; then C13: (gf2*(Q`2_3)-gf1*(Q`1_3))*(P`3_3) = (gf2*(P`2_3)-gf1*(P`1_3))*(Q`3_3) by C12,GROUP_1:def 3; E1: P`1_3*(Q`1_3)*(R`3_3)+P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3) = P`1_3*(Q`1_3)*(R`3_3)+(P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3)) by ALGSTR_1:7 .= P`1_3*(Q`1_3)*(R`3_3)+(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3) by VECTSP_1:4 .= P`1_3*(Q`1_3)*((gf2 |^3)*(P`3_3)*(Q`3_3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3) by A3,MCART_1:def 7 .= P`1_3*(Q`1_3)*((gf2 |^3)*(P`3_3)*(Q`3_3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(gf2*gf3) by A3,MCART_1:def 5 .= P`1_3*(Q`1_3)*((gf2 |^3)*(P`3_3*(Q`3_3))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(gf2*gf3) by GROUP_1:def 3 .= ((P`1_3*(Q`1_3))*(gf2 |^(2+1)))*(P`3_3*(Q`3_3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(gf2*gf3) by GROUP_1:def 3 .= ((P`1_3*(Q`1_3))*((gf2 |^2)*gf2))*(P`3_3*(Q`3_3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(gf2*gf3) by EC_PF_1:24 .= ((P`1_3*(Q`1_3))*((gf2 |^2)*gf2))*(P`3_3*(Q`3_3)) +((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf2)*gf3 by GROUP_1:def 3 .= (((P`1_3*(Q`1_3))*(gf2 |^2))*gf2)*(P`3_3*(Q`3_3)) +(gf2*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3)))*gf3 by GROUP_1:def 3 .= (gf2*((P`1_3*(Q`1_3))*(gf2 |^2)))*(P`3_3*(Q`3_3)) +gf2*((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3) by GROUP_1:def 3 .= gf2*(((P`1_3*(Q`1_3))*(gf2 |^2))*(P`3_3*(Q`3_3))) +gf2*((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3) by GROUP_1:def 3 .= gf2*(((P`1_3*(Q`1_3))*(gf2 |^2))*(P`3_3*(Q`3_3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3) by VECTSP_1:4; E2: gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3)-(gf2 |^(2+1))-g2*(gf2 |^2)*(P`1_3)*(Q`3_3) by A2 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-(gf2 |^2)*gf2-g2*(gf2 |^2)*(P`1_3)*(Q`3_3) by EC_PF_1:24 .= (gf1 |^2)*(P`3_3)*(Q`3_3)+(-(gf2 |^2)*gf2-g2*(gf2 |^2)*(P`1_3)*(Q`3_3)) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3)*(Q`3_3)+(-(gf2 |^2)*gf2 -(g2*(gf2 |^2))*(P`1_3*(Q`3_3))) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3) +(-(gf2 |^2)*gf2-(gf2 |^2)*(g2*(P`1_3*(Q`3_3)))) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)+((-(gf2 |^2))*gf2-(gf2 |^2) *(g2*(P`1_3*(Q`3_3)))) by VECTSP_1:9 .= (gf1 |^2)*(P`3_3)*(Q`3_3)+((-(gf2 |^2))*gf2+(-(gf2 |^2)) *(g2*(P`1_3*(Q`3_3)))) by VECTSP_1:9 .= (gf1 |^2)*(P`3_3)*(Q`3_3)+(-(gf2 |^2))*((Q`1_3*(P`3_3)-P`1_3*(Q`3_3)) +g2*(P`1_3*(Q`3_3))) by A2,VECTSP_1:4 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-(gf2 |^2)*((Q`1_3*(P`3_3) -P`1_3*(Q`3_3))+g2*(P`1_3*(Q`3_3))) by VECTSP_1:9 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-(gf2 |^2)*(Q`1_3*(P`3_3) +(-P`1_3*(Q`3_3)+g2*(P`1_3*(Q`3_3)))) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3)*(Q`3_3)-(gf2 |^2)*(Q`1_3*(P`3_3) +(g2*(P`1_3*(Q`3_3))-P`1_3*(Q`3_3))) .= (gf1 |^2)*(P`3_3)*(Q`3_3)-(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3)) by A1,ThGF9; ((P`1_3*(Q`1_3))*(gf2 |^2))*(P`3_3*(Q`3_3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3 = (gf2 |^2)*((P`1_3*(Q`1_3))*(P`3_3*(Q`3_3))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3 by GROUP_1:def 3 .= (gf2 |^2)*(P`3_3*(Q`3_3*(P`1_3*(Q`1_3)))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3 by GROUP_1:def 3 .= (gf2 |^2)*(P`3_3*((Q`3_3*(P`1_3))*(Q`1_3))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3 by GROUP_1:def 3 .= (gf2 |^2)*((P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*gf3 by GROUP_1:def 3 .= (-(gf2 |^2))*(-(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))) by E2,VECTSP_1:10 .= (-(gf2 |^2))*(-(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) -(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3)))) by VECTSP_1:11 .= (-(gf2 |^2))*(-(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +(-(gf2 |^2)*((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) by GROUP_1:def 3 .= (-(gf2 |^2))*(-(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +(-(gf2 |^2)*((P`3_3*(Q`1_3)+P`1_3*(Q`3_3)) |^2) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) by EC_PF_1:22 .= (-(gf2 |^2))*(-(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +((-(gf2 |^2))*((P`3_3*(Q`1_3)+P`1_3*(Q`3_3)) |^2) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) by VECTSP_1:9 .= ((-(gf2 |^2))*(-(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +(-(gf2 |^2))*((P`3_3*(Q`1_3)+P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by ALGSTR_1:7 .= (-(gf2 |^2))*((-(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +((P`3_3*(Q`1_3)+P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by VECTSP_1:4 .= (-(gf2 |^2))*((((P`3_3*(Q`1_3)) |^2 +g2*(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3)) +(P`1_3*(Q`3_3)) |^2)) -(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by A1,ThGFA1 .= (-(gf2 |^2))*(((P`3_3*(Q`1_3)) |^2)+g2*(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3)) -(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))+((P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by ALGSTR_1:8 .= (-(gf2 |^2))*(((P`3_3*(Q`1_3)) |^2)+g2*((P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) -(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))+((P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by GROUP_1:def 3 .= (-(gf2 |^2))*(((P`3_3*(Q`1_3)) |^2) +(g2*((P`3_3*(Q`1_3))*(P`1_3*(Q`3_3))) -(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3)))+((P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by ALGSTR_1:7 .= (-(gf2 |^2))*(((P`3_3*(Q`1_3)) |^2)+(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3)) +((P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by A1,ThGF9 .= (-gf2*gf2)*(((P`3_3*(Q`1_3)) |^2)+(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3)) +((P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by EC_PF_1:22 .= ((-gf2)*gf2)*(((P`3_3*(Q`1_3)) |^2)+(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3)) +((P`1_3*(Q`3_3)) |^2)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by VECTSP_1:9 .= (-gf2)*((Q`1_3*(P`3_3)-P`1_3*(Q`3_3))* (((P`3_3*(Q`1_3)) |^2)+(P`3_3*(Q`1_3))*(P`1_3*(Q`3_3)) +((P`1_3*(Q`3_3)) |^2))) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by A2,GROUP_1:def 3 .= (-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) by ThGFA5; then E3: (gf2 |^2)*(P`1_3*(Q`1_3)*(R`3_3) +P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3)) = ((gf2 |^2)*gf2)*((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) by E1,GROUP_1:def 3 .= (gf2 |^(2+1))*((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) by EC_PF_1:24 .= (gf2 |^3)*((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))); ((P`2_3) |^2)*(P`3_3) - ((P`1_3) |^3 + a*(P`1_3)*(P`3_3) |^2 + b*(P`3_3) |^3) = 0.GF(p) by ThOnCurve2; then (Q`3_3 |^3)*((P`2_3 |^2)*(P`3_3)) = (Q`3_3 |^3)*((P`1_3 |^3)+a*(P`1_3)*(P`3_3 |^2)+b*(P`3_3 |^3)) by VECTSP_1:19 .= (Q`3_3 |^3)*((P`1_3 |^3)+a*(P`1_3)*(P`3_3 |^2)) +(Q`3_3 |^3)*(b*(P`3_3 |^3)) by VECTSP_1:4 .= (Q`3_3 |^3)*(P`1_3 |^3)+(Q`3_3 |^3)*(a*(P`1_3)*(P`3_3 |^2)) +(Q`3_3 |^3)*(b*(P`3_3 |^3)) by VECTSP_1:4 .= ((Q`3_3*(P`1_3)) |^3)+(a*(P`1_3)*(P`3_3 |^2))*(Q`3_3 |^(2+1)) +(b*(P`3_3 |^3))*(Q`3_3 |^3) by BINOM:9 .= ((P`1_3*(Q`3_3)) |^3)+(a*(P`1_3)*(P`3_3 |^2))*((Q`3_3 |^2)*(Q`3_3)) +b*(P`3_3 |^3)*(Q`3_3 |^3) by EC_PF_1:24 .= ((P`1_3*(Q`3_3)) |^3)+(a*(P`1_3))*((P`3_3 |^2)*((Q`3_3 |^2)*(Q`3_3))) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3 .= ((P`1_3*(Q`3_3)) |^3)+(a*(P`1_3))*(((P`3_3 |^2)*(Q`3_3 |^2))*(Q`3_3)) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3 .= ((P`1_3*(Q`3_3)) |^3)+(a*(P`1_3))*(((P`3_3*(Q`3_3)) |^2)*(Q`3_3)) +b*(P`3_3 |^3)*(Q`3_3 |^3) by BINOM:9 .= ((P`1_3*(Q`3_3)) |^3)+a*(P`1_3*(((P`3_3*(Q`3_3)) |^2)*(Q`3_3))) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3 .= ((P`1_3*(Q`3_3)) |^3)+a*(((P`3_3*(Q`3_3)) |^2)*(Q`3_3*(P`1_3))) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3 .= ((P`1_3*(Q`3_3)) |^3)+(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3)) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3; then E4: -(Q`3_3 |^3)*((P`2_3 |^2)*(P`3_3)) = -b*(P`3_3 |^3)*(Q`3_3 |^3)-(((P`1_3*(Q`3_3)) |^3) +(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3))) by VECTSP_1:17 .= -b*(P`3_3 |^3)*(Q`3_3 |^3)+(-(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3)) -((P`1_3*(Q`3_3)) |^3)) by VECTSP_1:17; ((Q`2_3) |^2)*(Q`3_3) - ((Q`1_3) |^3 + a*(Q`1_3)*(Q`3_3) |^2 + b*(Q`3_3) |^3) = 0.GF(p) by ThOnCurve2; then E5: (P`3_3 |^3)*(((Q`2_3) |^2)*(Q`3_3)) = (P`3_3 |^3)*((Q`1_3 |^3)+a*(Q`1_3)*(Q`3_3 |^2)+b*(Q`3_3 |^3)) by VECTSP_1:19 .= (P`3_3 |^3)*((Q`1_3 |^3)+a*(Q`1_3)*(Q`3_3 |^2)) +(P`3_3 |^3)*(b*(Q`3_3 |^3)) by VECTSP_1:4 .= (P`3_3 |^3)*(Q`1_3 |^3)+(P`3_3 |^3)*(a*(Q`1_3)*(Q`3_3 |^2)) +(P`3_3 |^3)*(b*(Q`3_3 |^3)) by VECTSP_1:4 .= ((P`3_3*(Q`1_3)) |^3)+(a*(Q`1_3)*(Q`3_3 |^2))*(P`3_3 |^(2+1)) +(b*(Q`3_3 |^3))*(P`3_3 |^3) by BINOM:9 .= ((P`3_3*(Q`1_3)) |^3)+(a*(Q`1_3)*(Q`3_3 |^2))*((P`3_3 |^2)*(P`3_3)) +(b*((Q`3_3 |^3))*(P`3_3 |^3)) by EC_PF_1:24 .= ((P`3_3*(Q`1_3)) |^3)+(a*(Q`1_3)*(Q`3_3 |^2))*((P`3_3 |^2)*(P`3_3)) +b*((Q`3_3 |^3)*(P`3_3 |^3)) by GROUP_1:def 3 .= ((P`3_3*(Q`1_3)) |^3)+(a*(Q`1_3))*((Q`3_3 |^2)*((P`3_3 |^2)*(P`3_3))) +b*((P`3_3 |^3)*(Q`3_3 |^3)) by GROUP_1:def 3 .= ((P`3_3*(Q`1_3)) |^3)+(a*(Q`1_3))*(((Q`3_3 |^2)*(P`3_3 |^2))*(P`3_3)) +b*((P`3_3 |^3)*(Q`3_3 |^3)) by GROUP_1:def 3 .= ((P`3_3*(Q`1_3)) |^3)+(a*(Q`1_3))*(((Q`3_3*(P`3_3)) |^2)*(P`3_3)) +b*((P`3_3 |^3)*(Q`3_3 |^3)) by BINOM:9 .= ((P`3_3*(Q`1_3)) |^3)+(a*(Q`1_3))*(((P`3_3*(Q`3_3)) |^2)*(P`3_3)) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3 .= ((P`3_3*(Q`1_3)) |^3)+a*(Q`1_3*(((P`3_3*(Q`3_3)) |^2)*(P`3_3))) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3 .= ((P`3_3*(Q`1_3)) |^3)+a*(((P`3_3*(Q`3_3)) |^2)*(P`3_3*(Q`1_3))) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3 .= ((P`3_3*(Q`1_3)) |^3)+(a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3)) +b*(P`3_3 |^3)*(Q`3_3 |^3) by GROUP_1:def 3; E6: (gf1*(P`3_3*(Q`3_3)))*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3)) = (P`3_3*(Q`3_3))*((Q`2_3*(P`3_3) -P`2_3*(Q`3_3))*(Q`2_3*(P`3_3)+P`2_3*(Q`3_3))) by A2,GROUP_1:def 3 .= (P`3_3*(Q`3_3))*(((Q`2_3*(P`3_3)) |^2)-((P`2_3*(Q`3_3)) |^2)) by ThGFA3 .= (P`3_3*(Q`3_3))*((Q`2_3 |^2)*(P`3_3 |^2)-((P`2_3*(Q`3_3)) |^2)) by BINOM:9 .= (P`3_3*(Q`3_3))*((Q`2_3 |^2)*(P`3_3 |^2)-(P`2_3 |^2)*(Q`3_3 |^2)) by BINOM:9 .= (P`3_3*(Q`3_3))*((Q`2_3 |^2)*(P`3_3 |^2)) -(P`3_3*(Q`3_3))*((P`2_3 |^2)*(Q`3_3 |^2)) by VECTSP_1:11 .= P`3_3*(Q`3_3*((Q`2_3 |^2)*(P`3_3 |^2))) -(P`3_3*(Q`3_3))*((Q`3_3 |^2)*(P`2_3 |^2)) by GROUP_1:def 3 .= P`3_3*((Q`3_3*(Q`2_3 |^2))*(P`3_3 |^2)) -(P`3_3*(Q`3_3))*((Q`3_3 |^2)*(P`2_3 |^2)) by GROUP_1:def 3 .= P`3_3*((P`3_3 |^2)*(Q`3_3*(Q`2_3 |^2))) -P`3_3*(Q`3_3*((Q`3_3 |^2)*(P`2_3 |^2))) by GROUP_1:def 3 .= P`3_3*((P`3_3 |^2)*((Q`2_3 |^2)*(Q`3_3))) -P`3_3*((Q`3_3*(Q`3_3 |^2))*(P`2_3 |^2)) by GROUP_1:def 3 .= (P`3_3*(P`3_3 |^2))*((Q`2_3 |^2)*(Q`3_3)) -P`3_3*(((Q`3_3 |^2)*(Q`3_3))*(P`2_3 |^2)) by GROUP_1:def 3 .= ((P`3_3 |^2)*(P`3_3))*((Q`2_3 |^2)*(Q`3_3)) -P`3_3*((P`2_3 |^2)*(Q`3_3 |^(2+1))) by EC_PF_1:24 .= (P`3_3 |^(2+1))*((Q`2_3 |^2)*(Q`3_3)) -P`3_3*((P`2_3 |^2)*(Q`3_3 |^3)) by EC_PF_1:24 .= ((P`3_3*(Q`1_3)) |^3)+(a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3)) +b*(P`3_3 |^3)*(Q`3_3 |^3)-(Q`3_3 |^3)*(P`3_3*(P`2_3 |^2)) by E5,GROUP_1:def 3 .= (((P`3_3*(Q`1_3)) |^3)+(a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3))) +(b*(P`3_3 |^3)*(Q`3_3 |^3)+((-b*(P`3_3 |^3)*(Q`3_3 |^3))+ (-(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3))-((P`1_3*(Q`3_3)) |^3)))) by E4,ALGSTR_1:7 .= (((P`3_3*(Q`1_3)) |^3)+(a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3))) +((b*(P`3_3 |^3)*(Q`3_3 |^3)-b*(P`3_3 |^3)*(Q`3_3 |^3))+ ((-(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3))-((P`1_3*(Q`3_3)) |^3)))) by ALGSTR_1:7 .= (((P`3_3*(Q`1_3)) |^3)+(a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3))) +(0.GF(p)+ (-(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3))-((P`1_3*(Q`3_3)) |^3))) by VECTSP_1:19 .= (((P`3_3*(Q`1_3)) |^3)+(a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3))) +(-(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3))-((P`1_3*(Q`3_3)) |^3)) by ALGSTR_1:7 .= ((P`3_3*(Q`1_3)) |^3)+((a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3)) +(-(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3))-((P`1_3*(Q`3_3)) |^3))) by ALGSTR_1:7 .= ((P`3_3*(Q`1_3)) |^3)+(((a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3)) -(a*((P`3_3*(Q`3_3)) |^2))*(P`1_3*(Q`3_3)))-((P`1_3*(Q`3_3)) |^3)) by ALGSTR_1:7 .= ((P`3_3*(Q`1_3)) |^3)+(-((P`1_3*(Q`3_3)) |^3) +((a*((P`3_3*(Q`3_3)) |^2))*(Q`1_3*(P`3_3)-P`1_3*(Q`3_3)))) by VECTSP_1:11 .= (((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) + (a*((P`3_3*(Q`3_3)) |^2))*gf2 by A2,ALGSTR_1:7 .= (((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) + (a*gf2)*((P`3_3*(Q`3_3)) |^2) by GROUP_1:def 3; E7: g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3)) = (((g2*(Q`3_3))*gf1)*(R`3_3))*(gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= ((g2*(Q`3_3))*(gf1*(R`3_3)))*(gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= (gf1*(R`3_3))*((g2*(Q`3_3))*(gf2*(P`2_3)-gf1*(P`1_3))) by GROUP_1:def 3 .= (gf1*(R`3_3))*(g2*(Q`3_3*(gf2*(P`2_3)-gf1*(P`1_3)))) by GROUP_1:def 3 .= (gf1*(R`3_3))*(Q`3_3*(gf2*(P`2_3)-gf1*(P`1_3))+ Q`3_3*(gf2*(P`2_3)-gf1*(P`1_3))) by A1,ThGF5 .= (gf1*(R`3_3))*(Q`3_3*(gf2*(P`2_3))-Q`3_3*(gf1*(P`1_3))+ (gf2*(Q`2_3)-gf1*(Q`1_3))*(P`3_3)) by C13,VECTSP_1:11 .= (gf1*(R`3_3))*((gf2*(P`2_3))*(Q`3_3)-(gf1*(P`1_3))*(Q`3_3)+ ((gf2*(Q`2_3))*(P`3_3)-(gf1*(Q`1_3))*(P`3_3))) by VECTSP_1:13 .= (gf1*(R`3_3))*((gf2*(P`2_3*(Q`3_3))-(gf1*(P`1_3))*(Q`3_3))+ ((gf2*(Q`2_3))*(P`3_3)-(gf1*(Q`1_3))*(P`3_3))) by GROUP_1:def 3 .= (gf1*(R`3_3))*(((gf2*(P`2_3*(Q`3_3))-(gf1*(P`1_3))*(Q`3_3)) +(gf2*(Q`2_3))*(P`3_3))-(gf1*(Q`1_3))*(P`3_3)) by ALGSTR_1:7 .= (gf1*(R`3_3))*(((gf2*(P`2_3*(Q`3_3))-gf1*(P`1_3*(Q`3_3))) +(gf2*(Q`2_3))*(P`3_3))-(gf1*(Q`1_3))*(P`3_3)) by GROUP_1:def 3 .= (gf1*(R`3_3))*((gf2*(P`2_3*(Q`3_3)) -gf1*(P`1_3*(Q`3_3))+gf2*(Q`2_3*(P`3_3))) -(gf1*(Q`1_3))*(P`3_3)) by GROUP_1:def 3 .= (gf1*(R`3_3))*((gf2*(P`2_3*(Q`3_3)) +gf2*(Q`2_3*(P`3_3))-gf1*(P`1_3*(Q`3_3))) -(gf1*(Q`1_3))*(P`3_3)) by ALGSTR_1:8 .= (gf1*(R`3_3))*((gf2*(P`2_3*(Q`3_3)) +gf2*(Q`2_3*(P`3_3))-gf1*(P`1_3*(Q`3_3))) -gf1*(Q`1_3*(P`3_3))) by GROUP_1:def 3 .= (gf1*(R`3_3))*((gf2*(P`2_3*(Q`3_3))+gf2*(Q`2_3*(P`3_3)))+( -gf1*(P`1_3*(Q`3_3))-gf1*(Q`1_3*(P`3_3)))) by ALGSTR_1:7 .= (gf1*(R`3_3))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))+( (-gf1*(P`1_3*(Q`3_3)))+(-gf1*(Q`1_3*(P`3_3))))) by VECTSP_1:4 .= (gf1*(R`3_3))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))+( (-gf1)*(P`1_3*(Q`3_3))+(-gf1*(Q`1_3*(P`3_3))))) by VECTSP_1:9 .= (gf1*(R`3_3))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))+( (-gf1)*(P`1_3*(Q`3_3))+(-gf1)*(Q`1_3*(P`3_3)))) by VECTSP_1:9 .= (gf1*(R`3_3))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))+ (-gf1)*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by VECTSP_1:4 .= (gf1*((gf2 |^3)*(P`3_3)*(Q`3_3)))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))+ (-gf1)*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by A3,MCART_1:def 7 .= (gf1*((gf2 |^3)*(P`3_3*(Q`3_3))))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))+ (-gf1)*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by GROUP_1:def 3 .= ((gf1*(gf2 |^3))*(P`3_3*(Q`3_3)))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))+ (-gf1)*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by GROUP_1:def 3 .= (((gf2 |^3)*gf1)*(P`3_3*(Q`3_3)))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3)) -gf1*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by VECTSP_1:9 .= ((gf2 |^3)*(gf1*(P`3_3*(Q`3_3))))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3)) -gf1*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by GROUP_1:def 3 .= (gf2 |^3)*((gf1*(P`3_3*(Q`3_3)))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3)) -gf1*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3)))) by GROUP_1:def 3 .= (gf2 |^3)*((gf1*(P`3_3*(Q`3_3)))*(gf2*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))) -(gf1*(P`3_3*(Q`3_3)))*(gf1*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3)))) by VECTSP_1:11 .= (gf2 |^3)*(((gf1*(P`3_3*(Q`3_3)))*gf2)*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3)) -(gf1*(P`3_3*(Q`3_3)))*(gf1*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3)))) by GROUP_1:def 3 .= (gf2 |^3)*((gf2*(gf1*(P`3_3*(Q`3_3))))*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3)) -((gf1*(P`3_3*(Q`3_3)))*gf1)*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by GROUP_1:def 3 .= (gf2 |^3)*(gf2*((gf1*(P`3_3*(Q`3_3)))*(P`2_3*(Q`3_3)+Q`2_3*(P`3_3))) -(gf1*(gf1*(P`3_3*(Q`3_3))))*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by GROUP_1:def 3 .= (gf2 |^3)*(gf2*((((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*gf2)*((P`3_3*(Q`3_3)) |^2)) -((gf1*gf1)*(P`3_3*(Q`3_3)))*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by E6,GROUP_1:def 3 .= (gf2 |^3)*(gf2*(((((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3))) +(a*gf2)*((P`3_3*(Q`3_3)) |^2)) -((gf1 |^2)*(P`3_3*(Q`3_3)))*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))) by EC_PF_1:22 .= (gf2 |^3)*(-((gf1 |^2)*(P`3_3*(Q`3_3)))*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +gf2*((a*gf2)*((P`3_3*(Q`3_3)) |^2)))) by VECTSP_1:4 .= (gf2 |^3)*(-((gf1 |^2)*(P`3_3)*(Q`3_3))*(P`1_3*(Q`3_3)+Q`1_3*(P`3_3)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +gf2*((a*gf2)*((P`3_3*(Q`3_3)) |^2)))) by GROUP_1:def 3 .= (gf2 |^3)*(-(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(gf2*(a*gf2))*((P`3_3*(Q`3_3)) |^2))) by GROUP_1:def 3 .= (gf2 |^3)*(-(P`1_3*(Q`3_3)+Q`1_3*(P`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*(gf2*gf2))*((P`3_3*(Q`3_3)) |^2))) by GROUP_1:def 3 .= (gf2 |^3)*(-(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2))) by EC_PF_1:22; thus (gf2 |^2)*(P`1_3*(Q`1_3)*(R`3_3)+P`3_3*(Q`1_3)*(R`1_3) +P`1_3*(Q`3_3)*(R`1_3)) + g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) - gf1*(P`1_3)) = (gf2 |^3)*(((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) +(-(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2)))) by E3,E7,VECTSP_1:4 .= (gf2 |^3)*((((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) -(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3))) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2))) by ALGSTR_1:7 .= (gf2 |^3)*(((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)) -(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((gf1 |^2)*(P`3_3)*(Q`3_3)))) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2))) by ALGSTR_1:7 .= (gf2 |^3)*(((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +0.GF(p)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2))) by VECTSP_1:19 .= (gf2 |^3)*((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2))) by ALGSTR_1:7 .= (gf2 |^3)*(((-gf2)*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3))) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2)) by ALGSTR_1:7 .= (gf2 |^3)*((-gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3)) +gf2*(((P`3_3*(Q`1_3)) |^3)-((P`1_3*(Q`3_3)) |^3))) +(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2)) by VECTSP_1:9 .= (gf2 |^3)*(0.GF(p)+(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2)) by RLVECT_1:5 .= (gf2 |^3)*((a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2)) by ALGSTR_1:7 .= ((gf2 |^3)*(a*(gf2 |^2))*((P`3_3*(Q`3_3)) |^2)) by GROUP_1:def 3 .= ((a*(gf2 |^2))*(gf2 |^3))*((P`3_3*(Q`3_3))*(P`3_3*(Q`3_3))) by EC_PF_1:22 .= (a*(gf2 |^2))*((gf2 |^3)*((P`3_3*(Q`3_3))*(P`3_3*(Q`3_3)))) by GROUP_1:def 3 .= (a*(gf2 |^2))*(((gf2 |^3)*(P`3_3*(Q`3_3)))*(P`3_3*(Q`3_3))) by GROUP_1:def 3 .= (a*(gf2 |^2))*(((gf2 |^3)*(P`3_3)*(Q`3_3))*(P`3_3*(Q`3_3))) by GROUP_1:def 3 .= (a*(gf2 |^2))*(R`3_3*(P`3_3*(Q`3_3))) by A3,MCART_1:def 7 .= a*(gf2 |^2)*(P`3_3*(Q`3_3*(R`3_3))) by GROUP_1:def 3 .= a*(gf2 |^2)*(P`3_3)*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= a*(gf2 |^2)*(P`3_3)*(Q`3_3)*(R`3_3) by GROUP_1:def 3; end; theorem ThAddEllEq5: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) & R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)] holds (gf2 |^2)*(P`3_3 |^2)*(Q`3_3)* ((R`2_3 |^2)*(R`3_3) - ((R`1_3 |^3) + z`1*(R`1_3)*(R`3_3 |^2) + z`2*(R`3_3 |^3))) = 0.GF(p) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, gf1, gf2, gf3 be Element of GF(p), P, Q be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p and A2: gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) and A3: R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)]; set a = z`1; set b = z`2; E1: ((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*((R`2_3 |^2)*(R`3_3)) = ((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*(R`2_3 |^2)*(R`3_3) by GROUP_1:def 3 .= (gf2 |^2)*(P`3_3 |^2)*(R`2_3 |^2)*(Q`3_3)*(R`3_3) by GROUP_1:def 3 .= ((gf2*(P`3_3)*(R`2_3)) |^2)*(Q`3_3)*(R`3_3) by ThGF200 .= ((-(gf1*(R`1_3*(P`3_3)-P`1_3*(R`3_3)) +gf2*(P`2_3)*(R`3_3))) |^2)*(Q`3_3)*(R`3_3) by A1,A2,A3,ThAddEllEq1 .= ((gf1*(R`1_3*(P`3_3)-P`1_3*(R`3_3)) +gf2*(P`2_3)*(R`3_3)) |^2)*(Q`3_3)*(R`3_3) by ThGF10 .= ((gf1*(R`1_3*(P`3_3))-gf1*(P`1_3*(R`3_3)) +gf2*(P`2_3)*(R`3_3)) |^2)*(Q`3_3)*(R`3_3) by VECTSP_1:11 .= ((gf1*(P`3_3)*(R`1_3)-gf1*(P`1_3*(R`3_3)) +gf2*(P`2_3)*(R`3_3)) |^2)*(Q`3_3)*(R`3_3) by GROUP_1:def 3 .= ((gf1*(P`3_3)*(R`1_3)-gf1*(P`1_3)*(R`3_3) +gf2*(P`2_3)*(R`3_3)) |^2)*(Q`3_3)*(R`3_3) by GROUP_1:def 3 .= ((gf1*(P`3_3)*(R`1_3)+gf2*(P`2_3)*(R`3_3) -gf1*(P`1_3)*(R`3_3)) |^2)*(Q`3_3)*(R`3_3) by ALGSTR_1:8 .= ((gf1*(P`3_3)*(R`1_3)+(gf2*(P`2_3)*(R`3_3) -gf1*(P`1_3)*(R`3_3))) |^2)*(Q`3_3)*(R`3_3) by ALGSTR_1:7 .= ((gf1*(P`3_3)*(R`1_3)+(gf2*(P`2_3) -gf1*(P`1_3))*(R`3_3)) |^2)*(Q`3_3)*(R`3_3) by VECTSP_1:13 .= (((gf1*(P`3_3)) |^2)*(R`1_3 |^2) +g2*(gf1*(P`3_3))*(gf2*(P`2_3)-gf1*(P`1_3)) *(R`1_3)*(R`3_3) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2))*(Q`3_3)*(R`3_3) by A1,ThGFA6 .= (((gf1*(P`3_3)) |^2)*(R`1_3 |^2) +g2*(gf1*(P`3_3))*(gf2*(P`2_3)-gf1*(P`1_3)) *(R`1_3)*(R`3_3)+((gf2*(P`2_3) -gf1*(P`1_3)) |^2)*(R`3_3 |^2))*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= ((gf1*(P`3_3)) |^2)*(R`1_3 |^2)*(Q`3_3*(R`3_3)) +g2*(gf1*(P`3_3))*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3)*(R`3_3)*(Q`3_3*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by ThGF300 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3*(R`3_3)) +g2*(gf1*(P`3_3))*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3)*(R`3_3)*(Q`3_3*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by BINOM:9 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*(gf1*(P`3_3))*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3)*(R`3_3)*(Q`3_3*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(P`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3)*(R`3_3)*(Q`3_3*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(P`3_3*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3)*(R`3_3)*(Q`3_3*(R`3_3))) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by ThGF103 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*((Q`3_3*(R`3_3))*(R`1_3)*(R`3_3)*(P`3_3*(gf2*(P`2_3)-gf1*(P`1_3)))) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by ThGF101 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3*(R`3_3))*(R`1_3)*(R`3_3)*(P`3_3*(gf2*(P`2_3)-gf1*(P`1_3))) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by ThGF102 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(R`1_3)*(R`3_3)*(P`3_3*(gf2*(P`2_3)-gf1*(P`1_3))) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(R`1_3*(R`3_3)*(P`3_3*(gf2*(P`2_3)-gf1*(P`1_3)))) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by ThGF102 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*((gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(R`3_3)*(P`3_3))) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(R`3_3)*(P`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3*(R`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(R`3_3 |^2)*(Q`3_3)*(R`3_3) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3 |^2)*(R`3_3) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(Q`3_3)*((R`3_3 |^2)*(R`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3 |^(2+1)) by EC_PF_1:24; E2: -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*(a*(R`1_3)*(R`3_3 |^2)) = -((gf2 |^2)*(P`3_3*(P`3_3))*(Q`3_3))*(a*(R`1_3)*(R`3_3 |^2)) by EC_PF_1:22 .= -((gf2 |^2)*(P`3_3)*(P`3_3)*(Q`3_3))*(a*(R`1_3)*(R`3_3 |^2)) by GROUP_1:def 3 .= -((gf2 |^2)*(P`3_3)*(Q`3_3)*(P`3_3))*(a*(R`1_3)*(R`3_3 |^2)) by GROUP_1:def 3 .= -((gf2 |^2)*(P`3_3)*(Q`3_3)*(P`3_3))*(a*(R`1_3)*(R`3_3*(R`3_3))) by EC_PF_1:22 .= -((gf2 |^2)*(P`3_3)*(Q`3_3)*(P`3_3))*(a*(R`1_3)*(R`3_3)*(R`3_3)) by GROUP_1:def 3 .= -((gf2 |^2)*(P`3_3)*(Q`3_3)*(P`3_3))*(a*(R`3_3)*(R`1_3)*(R`3_3)) by GROUP_1:def 3 .= -((gf2 |^2)*(P`3_3)*(Q`3_3))*(P`3_3*(a*(R`3_3)*(R`1_3)*(R`3_3))) by GROUP_1:def 3 .= -((gf2 |^2)*(P`3_3)*(Q`3_3))*(P`3_3*(a*(R`3_3))*(R`1_3)*(R`3_3)) by ThGF102 .= -((gf2 |^2)*(P`3_3)*(Q`3_3))*((a*(R`3_3))*(P`3_3*(R`1_3)*(R`3_3))) by ThGF102 .= -((gf2 |^2)*(P`3_3)*(Q`3_3)*(a*(R`3_3)))*(P`3_3*(R`1_3)*(R`3_3)) by GROUP_1:def 3 .= -((gf2 |^2)*(P`3_3)*(Q`3_3)*a*(R`3_3))*(R`1_3*(P`3_3)*(R`3_3)) by GROUP_1:def 3 .= -((gf2 |^2)*(P`3_3*(Q`3_3)*a*(R`3_3)))*(P`3_3*(R`1_3)*(R`3_3)) by ThGF102 .= -((gf2 |^2)*(a*(P`3_3)*(Q`3_3)*(R`3_3)))*(P`3_3*(R`1_3)*(R`3_3)) by GROUP_1:def 3 .= -((gf2 |^2)*a*(P`3_3)*(Q`3_3)*(R`3_3))*(P`3_3*(R`1_3)*(R`3_3)) by ThGF102 .= -((gf2 |^2)*(P`1_3*(Q`1_3)*(R`3_3) +P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3)) + g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) - gf1*(P`1_3)))*(P`3_3*(R`1_3)*(R`3_3)) by A1,A2,A3,ThAddEllEq4 .= -((gf2 |^2)*(P`1_3*(Q`1_3)*(R`3_3) +P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3)) *(P`3_3*(R`1_3)*(R`3_3))+g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(P`3_3*(R`1_3)*(R`3_3))) by VECTSP_1:4 .= -((gf2 |^2)*(P`1_3*(Q`1_3)*(R`3_3) +(P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3))) *(P`3_3*(R`1_3)*(R`3_3))+g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(P`3_3*(R`1_3)*(R`3_3))) by ALGSTR_1:7 .= -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3) +(P`3_3*(Q`1_3)*(R`1_3)+ P`1_3*(Q`3_3)*(R`1_3)))+g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3))) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -(gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3) +(P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3))) by VECTSP_1:17 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))* (P`3_3*(Q`1_3)*(R`1_3)+P`1_3*(Q`3_3)*(R`1_3))) by VECTSP_1:4 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))* ((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3))) by VECTSP_1:4 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3)) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3)*(R`1_3)*(R`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3)) by ThGF103 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3)*(R`1_3*(R`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3)))*(R`1_3)) by ThGF102 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3)*( (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3)*(R`3_3))*(R`1_3)) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3)*(R`3_3)*(R`1_3)) by ThGF102 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))* (P`1_3*(Q`1_3)*(R`3_3))+(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3*(R`3_3)*(R`1_3))) by ThGF102 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`1_3*(R`1_3)*(R`3_3))) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3*(R`1_3)*(R`3_3))*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by EC_PF_1:22 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(R`1_3)*(R`3_3)*(P`1_3*(Q`1_3)*(R`3_3)) +(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by ThGF102 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(R`1_3*(R`3_3)*(P`1_3*(Q`1_3)*(R`3_3))) +(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by ThGF102 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*((P`1_3*(Q`1_3))*(R`3_3*(R`1_3*(R`3_3)))) +(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3*(Q`1_3)*(R`1_3*(R`3_3*(R`3_3)))) +(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3*(Q`1_3)*(R`1_3*(R`3_3 |^2)))+(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by EC_PF_1:22 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3*(Q`1_3)*(R`1_3)*(R`3_3 |^2))+(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3)*(R`3_3 |^2)+(gf2 |^2)*(P`3_3)* (P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3))) by ThGF102 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*((R`1_3 |^2)*(R`3_3)) by VECTSP_1:17 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(P`3_3)*((R`1_3 |^2)*(R`3_3)) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(P`3_3*((R`1_3 |^2)*(R`3_3))) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3*((R`1_3 |^2)*(P`3_3))) by GROUP_1:def 3 .= -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by GROUP_1:def 3; E3: -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*(b*(R`3_3 |^3)) = -(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*b*(R`3_3 |^(2+1)) by GROUP_1:def 3 .= -(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*b*((R`3_3 |^2)*(R`3_3)) by EC_PF_1:24 .= -b*((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*(R`3_3)*(R`3_3 |^2) by GROUP_1:def 3 .= -b*(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(R`3_3)*(R`3_3 |^2) by ThGF103 .= -(-(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3) +((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3)) *(R`3_3 |^2) by A1,A2,A3,ThAddEllEq3 .= (-(-(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3) +((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3))) *(R`3_3 |^2) by VECTSP_1:9 .= (-((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3) +(gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3)) *(R`3_3 |^2) by VECTSP_1:33 .= (-((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3))*(R`3_3 |^2) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:4 .= -((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3)*(R`3_3 |^2) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:9 .= -((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3*(R`3_3 |^2)) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .=-((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3 |^(2+1)) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) by EC_PF_1:24; E4: ((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*((R`2_3 |^2)*(R`3_3)) -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*(b*(R`3_3 |^3)) = (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +(((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3 |^3) +(-((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3 |^3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2))) by E1,E3,ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +(((gf2*(P`2_3)-gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3 |^3) -((gf2*(P`2_3) - gf1*(P`1_3)) |^2)*(Q`3_3)*(R`3_3 |^3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2)) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3) -gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3))+(0.GF(p) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2)) by VECTSP_1:19 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) by RLVECT_1:4 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) +g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) by ALGSTR_1:8; E5: ((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*((R`2_3 |^2)*(R`3_3)) -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*(b*(R`3_3 |^3)) -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3))*(a*(R`1_3)*(R`3_3 |^2)) = (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) +(g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +(-g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)))) by E2,E4,ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) +(g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +(-g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) +(-((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3))))) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) +((g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3)) -g2*gf1*(Q`3_3)*(R`3_3)*(gf2*(P`2_3)-gf1*(P`1_3))*(R`1_3*(P`3_3)*(R`3_3))) +(-((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)))) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) +(0.GF(p)+(-((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)))) by VECTSP_1:19 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) +(-((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3))) by RLVECT_1:4 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +(((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) +(-((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)))) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +(((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -((gf2 |^2)*(P`3_3)*(P`1_3)*(Q`1_3)*(R`1_3))*(R`3_3 |^2) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3))) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) +(0.GF(p)-(gf2 |^2)*(P`3_3*(Q`1_3) +P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3))) by VECTSP_1:19 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by RLVECT_1:14 .= (gf1 |^2)*(P`3_3*(P`3_3))*(R`1_3 |^2)*(Q`3_3)*(R`3_3) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by EC_PF_1:22 .= (gf1 |^2)*(P`3_3)*(P`3_3)*(R`1_3 |^2)*(Q`3_3)*(R`3_3) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(P`3_3*(R`1_3 |^2)*(Q`3_3)*(R`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by ThGF102 .= (gf1 |^2)*(P`3_3)*(P`3_3*(R`1_3 |^2)*(Q`3_3*(R`3_3))) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3*(R`3_3))*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) by GROUP_1:def 3; thus (gf2 |^2)*(P`3_3 |^2)*(Q`3_3)* ((R`2_3 |^2)*(R`3_3) - ((R`1_3 |^3) + z`1*(R`1_3)*(R`3_3 |^2) + z`2*(R`3_3 |^3))) = (gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*((R`2_3 |^2)*(R`3_3)) -(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*((R`1_3 |^3) + a*(R`1_3)*(R`3_3 |^2) + b*(R`3_3 |^3)) by VECTSP_1:11 .= (gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*((R`2_3 |^2)*(R`3_3)) -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(R`1_3 |^3) +(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(a*(R`1_3)*(R`3_3 |^2)) +(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(b*(R`3_3 |^3))) by ThGF300 .= (gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*((R`2_3 |^2)*(R`3_3)) -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(R`1_3 |^3) +((gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(a*(R`1_3)*(R`3_3 |^2)) +(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(b*(R`3_3 |^3)))) by ALGSTR_1:7 .= ((gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*((R`2_3 |^2)*(R`3_3)) -((gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(a*(R`1_3)*(R`3_3 |^2)) +(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(b*(R`3_3 |^3))) -(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(R`1_3 |^3)) by VECTSP_1:17 .= ((gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*((R`2_3 |^2)*(R`3_3)) -(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(b*(R`3_3 |^3)) -(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(a*(R`1_3)*(R`3_3 |^2))) -(gf2 |^2)*(P`3_3 |^2)*(Q`3_3)*(R`1_3 |^3) by VECTSP_1:17 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(P`3_3))*(Q`3_3)*(R`1_3 |^3) by E5,EC_PF_1:22 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3)*(P`3_3)*(Q`3_3)*(R`1_3 |^3) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3)*(Q`3_3)*(P`3_3)*(R`1_3 |^3) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3)*(Q`3_3)*(R`1_3 |^(2+1))*(P`3_3) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3)*(Q`3_3)*((R`1_3 |^2)*(R`1_3))*(P`3_3) by EC_PF_1:24 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3)*(Q`3_3)*(((R`1_3 |^2)*(R`1_3))*(P`3_3)) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3)*(Q`3_3)*(R`1_3*((R`1_3 |^2)*(P`3_3))) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)*((R`1_3 |^2)*(P`3_3)) -(gf2 |^2)*(P`3_3)*(Q`3_3)*(R`1_3)*((R`1_3 |^2)*(P`3_3)) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3) -(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3) -(gf2 |^2)*(P`3_3)*(Q`3_3)*(R`1_3))*((R`1_3 |^2)*(P`3_3)) by ThGF300 .= ((gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)-((gf2 |^2)*(P`3_3)*(Q`3_3)*(R`1_3) +(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)))*((R`1_3 |^2)*(P`3_3)) by VECTSP_1:17 .= ((gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)-((gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3)) +(gf2 |^2)*(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)))*((R`1_3 |^2)*(P`3_3)) by ThGF102 .= ((gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)-((gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3)) +(gf2 |^2)*((P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3))))*((R`1_3 |^2)*(P`3_3)) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3)-(gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3) +(P`3_3*(Q`1_3)+P`1_3*(Q`3_3))*(R`3_3)))*((R`1_3 |^2)*(P`3_3)) by VECTSP_1:4 .= (-(gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3) +(P`3_3*(Q`1_3)*(R`3_3)+P`1_3*(Q`3_3)*(R`3_3))) +(gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3))*((R`1_3 |^2)*(P`3_3)) by VECTSP_1:4 .= (-(gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3) +P`3_3*(Q`1_3)*(R`3_3)+P`1_3*(Q`3_3)*(R`3_3)) +(gf1 |^2)*(P`3_3)*(Q`3_3)*(R`3_3))*((R`1_3 |^2)*(P`3_3)) by ALGSTR_1:7 .= (-(gf2 |^2)*(P`3_3*(Q`3_3)*(R`1_3) +P`3_3*(Q`1_3)*(R`3_3)+P`1_3*(Q`3_3)*(R`3_3)) +(gf1 |^2)*(P`3_3*(Q`3_3)*(R`3_3)))*((R`1_3 |^2)*(P`3_3)) by ThGF102 .= 0.GF(p)*((R`1_3 |^2)*(P`3_3)) by A1,A2,A3,ThAddEllEq2 .= 0.GF(p) by VECTSP_1:12; end; theorem ThDobEllEq1: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 & R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)] holds g2*gf2*(P`3_3)*(R`2_3) = -(gf1*(P`3_3*(R`1_3) - P`1_3*(R`3_3)) + g2*gf2*(P`2_3)*(R`3_3)) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p and A2: gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 and A3: R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)]; set a = z`1; set b = z`2; g8 = (2*4) mod p by A1 .= g2*g4 by A1,EC_PF_1:18; then C12: g8+g2*g8 = g2*(g4+g8) by VECTSP_1:4; C13: P`3_3*gf3 = (P`3_3*(P`1_3*(P`2_3)))*gf2 by A2,GROUP_1:def 3 .= (P`1_3*gf2)*gf2 by A2,GROUP_1:def 3 .= P`1_3*(gf2*gf2) by GROUP_1:def 3 .= P`1_3*(gf2 |^2) by EC_PF_1:22; C14: P`3_3*gf2*gf3 = (P`3_3*gf3)*gf2 by GROUP_1:def 3 .= P`1_3*((gf2 |^2)*gf2) by C13,GROUP_1:def 3 .= P`1_3*(gf2 |^(2+1)) by EC_PF_1:24 .= P`1_3*(gf2 |^3); E1: g4*gf3-gf4 = g4*gf3 + (g8*gf3 - (gf1 |^2)) by A2,VECTSP_1:17 .= (g4*gf3 + g8*gf3) - (gf1 |^2) by ALGSTR_1:7 .= (g4+g8)*gf3 - (gf1 |^2) by VECTSP_1:4; P`3_3*(R`1_3) - P`1_3*(R`3_3) = P`3_3*(g2*gf4*gf2) - P`1_3*(R`3_3) by A3,MCART_1:def 5 .= P`3_3*(g2*gf4*gf2) - P`1_3*(g8*(gf2 |^3)) by A3,MCART_1:def 7 .= P`3_3*((g2*gf2)*((gf1 |^2)-g8*gf3))-P`1_3*(g8*(gf2 |^3)) by A2,GROUP_1:def 3 .= (P`3_3*(g2*gf2))*((gf1 |^2)-g8*gf3)-P`1_3*(g8*(gf2 |^3)) by GROUP_1:def 3 .= ((P`3_3*gf2)*g2)*((gf1 |^2)-g8*gf3)-P`1_3*(g8*(gf2 |^3)) by GROUP_1:def 3 .= g2*((P`3_3*gf2)*((gf1 |^2)-g8*gf3))-P`1_3*(g8*(gf2 |^3)) by GROUP_1:def 3 .= g2*((P`3_3*gf2)*(gf1 |^2)-(P`3_3*gf2)*(g8*gf3))-P`1_3*(g8*(gf2 |^3)) by VECTSP_1:11 .= g2*((P`3_3*gf2)*(gf1 |^2)-((P`3_3*gf2)*gf3)*g8)-P`1_3*(g8*(gf2 |^3)) by GROUP_1:def 3 .= g2*((P`3_3*gf2)*(gf1 |^2))-g2*((P`1_3*(gf2 |^3))*g8) -P`1_3*(g8*(gf2 |^3)) by C14,VECTSP_1:11 .= g2*((P`3_3*gf2)*(gf1 |^2))-(g2*g8)*(P`1_3*(gf2 |^3)) -P`1_3*(g8*(gf2 |^3)) by GROUP_1:def 3 .= g2*((P`3_3*gf2)*(gf1 |^2))-(g2*g8)*(P`1_3*(gf2 |^3)) -g8*(P`1_3*(gf2 |^3)) by GROUP_1:def 3 .= g2*((P`3_3*gf2)*(gf1 |^2))-(g8*(P`1_3*(gf2 |^3)) +(g2*g8)*(P`1_3*(gf2 |^3))) by VECTSP_1:17 .= g2*((P`3_3*gf2)*(gf1 |^2))-((g8+g2*g8)*(P`1_3*(gf2 |^3))) by VECTSP_1:4; then E2: -(P`3_3*(R`1_3) - P`1_3*(R`3_3)) = (g8+g2*g8)*(P`1_3*(gf2 |^3))-(g2*((P`3_3*gf2)*(gf1 |^2))) by VECTSP_1:17 .= g2*((g4+g8)*(P`1_3*(gf2 |^3)))-g2*((P`3_3*gf2)*(gf1 |^2)) by C12,GROUP_1:def 3 .= g2*((g4+g8)*(P`1_3*(gf2 |^3)) - (P`3_3*gf2)*(gf1 |^2)) by VECTSP_1:11; E3: g2*gf2*(P`3_3)*(R`2_3) = g2*gf2*(P`3_3)*(gf1*(g4*gf3-gf4)-g8*(P`2_3 |^2)*(gf2 |^2)) by A3,MCART_1:def 6 .= g2*gf2*(P`3_3)*(gf1*((g4+g8)*gf3-(gf1 |^2))) -g2*gf2*(P`3_3)*(g8*(P`2_3 |^2)*(gf2 |^2)) by E1,VECTSP_1:11; E4: -g2*gf2*(P`3_3)*(g8*(P`2_3 |^2)*(gf2 |^2)) = -(g2*(gf2*(P`3_3)))*(g8*(P`2_3 |^2)*(gf2 |^2)) by GROUP_1:def 3 .= -(g2*(P`3_3*gf2))*(g8*((P`2_3 |^2)*(gf2 |^2))) by GROUP_1:def 3 .= -((g2*(P`3_3))*gf2)*(g8*((gf2 |^2)*(P`2_3 |^2))) by GROUP_1:def 3 .= -(g2*(P`3_3))*(gf2*(g8*((gf2 |^2)*(P`2_3 |^2)))) by GROUP_1:def 3 .= -(g2*(P`3_3))*(gf2*((g8*(gf2 |^2))*(P`2_3 |^2))) by GROUP_1:def 3 .= -(g2*(P`3_3))*((gf2*(g8*(gf2 |^2)))*(P`2_3 |^2)) by GROUP_1:def 3 .= -(g2*(P`3_3))*(((gf2*g8)*(gf2 |^2))*(P`2_3 |^2)) by GROUP_1:def 3 .= -((g2*(P`3_3))*(P`2_3 |^2))*((gf2*g8)*(gf2 |^2)) by GROUP_1:def 3 .= -(g2*(P`3_3*(P`2_3 |^2)))*((g8*gf2)*(gf2 |^2)) by GROUP_1:def 3 .= -(g2*((P`2_3 |^2)*(P`3_3)))*(g8*(gf2*(gf2 |^2))) by GROUP_1:def 3 .= -g2*((P`2_3*(P`2_3))*(P`3_3))*(g8*((gf2 |^2)*gf2)) by EC_PF_1:22 .= -g2*(P`2_3*(P`2_3*(P`3_3)))*(g8*((gf2 |^2)*gf2)) by GROUP_1:def 3 .= -g2*(P`2_3*(P`2_3*(P`3_3)))*(g8*(gf2 |^(2+1))) by EC_PF_1:24 .= -g2*((P`2_3*gf2)*(g8*(gf2 |^3))) by A2,GROUP_1:def 3 .= -g2*(P`2_3*(gf2*(g8*(gf2 |^3)))) by GROUP_1:def 3 .= -g2*(P`2_3*(gf2*(R`3_3))) by A3,MCART_1:def 7 .= -g2*(gf2*(P`2_3*(R`3_3))) by GROUP_1:def 3 .= -g2*gf2*(P`2_3*(R`3_3)) by GROUP_1:def 3 .= -g2*gf2*(P`2_3)*(R`3_3) by GROUP_1:def 3; g2*gf2*(P`3_3)*(gf1*((g4+g8)*gf3-(gf1 |^2))) = gf1*((g2*gf2*(P`3_3))*((g4+g8)*gf3-(gf1 |^2))) by GROUP_1:def 3 .= gf1*((g2*(gf2*(P`3_3)))*((g4+g8)*gf3-(gf1 |^2))) by GROUP_1:def 3 .= gf1*(g2*((gf2*(P`3_3))*((g4+g8)*gf3-(gf1 |^2)))) by GROUP_1:def 3 .= gf1*(g2*((P`3_3*gf2)*((g4+g8)*gf3)-(P`3_3*gf2)*(gf1 |^2))) by VECTSP_1:11 .= gf1*(g2*(((P`3_3*gf2)*gf3)*(g4+g8)-(P`3_3*gf2)*(gf1 |^2))) by GROUP_1:def 3 .= -gf1*(P`3_3*(R`1_3) - P`1_3*(R`3_3)) by C14,E2,VECTSP_1:8; hence g2*gf2*(P`3_3)*(R`2_3) = -gf1*(P`3_3*(R`1_3) - P`1_3*(R`3_3)) - g2*gf2*(P`2_3)*(R`3_3) by E3,E4 .= -(gf1*(P`3_3*(R`1_3) - P`1_3*(R`3_3)) + g2*gf2*(P`2_3)*(R`3_3)) by VECTSP_1:17; end; theorem ThDobEllEq2: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 & R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)] holds g4*(gf2 |^2)*(P`3_3)*(R`1_3) = R`3_3*((gf1 |^2)*(P`3_3) - g8*(gf2 |^2)*(P`1_3)) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p and A2: gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 and A3: R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)]; set a = z`1; set b = z`2; C11: g8 = (2*4) mod p by A1 .= g2*g4 by A1,EC_PF_1:18; C13: P`3_3*gf3 = (P`3_3*(P`1_3*(P`2_3)))*gf2 by A2,GROUP_1:def 3 .= (P`1_3*(P`2_3*(P`3_3)))*gf2 by GROUP_1:def 3 .= P`1_3*(gf2*gf2) by A2,GROUP_1:def 3 .= P`1_3*(gf2 |^2) by EC_PF_1:22; E1: g4*(gf2 |^2)*(P`3_3)*(R`1_3) = g4*(gf2 |^2)*(P`3_3)*(g2*gf4*gf2) by A3,MCART_1:def 5 .= (g4*(gf2 |^2)*(P`3_3))*(g2*(gf4*gf2)) by GROUP_1:def 3 .= (g4*((gf2 |^2)*(P`3_3)))*(g2*(gf2*gf4)) by GROUP_1:def 3 .= (g4*(P`3_3*(gf2 |^2)))*((g2*gf2)*gf4) by GROUP_1:def 3 .= ((g4*(P`3_3))*(gf2 |^2))*((gf2*g2)*gf4) by GROUP_1:def 3 .= (((g4*(P`3_3))*(gf2 |^2))*(gf2*g2))*gf4 by GROUP_1:def 3 .= ((g4*(P`3_3))*((gf2 |^2)*(gf2*g2)))*gf4 by GROUP_1:def 3 .= ((g4*(P`3_3))*(((gf2 |^2)*gf2)*g2))*gf4 by GROUP_1:def 3 .= ((g4*(P`3_3))*((gf2 |^(2+1))*g2))*gf4 by EC_PF_1:24 .= (((g4*(P`3_3))*g2)*(gf2 |^3))*gf4 by GROUP_1:def 3 .= (((g2*g4)*(P`3_3))*(gf2 |^3))*((gf1 |^2)-g8*gf3) by A2,GROUP_1:def 3 .= (g8*(gf2 |^3)*(P`3_3))*((gf1 |^2)-g8*gf3) by C11,GROUP_1:def 3; thus R`3_3*((gf1 |^2)*(P`3_3)-g8*(gf2 |^2)*(P`1_3)) = (g8*(gf2 |^3))*((gf1 |^2)*(P`3_3)-g8*(gf2 |^2)*(P`1_3)) by A3, MCART_1:def 7 .= (g8*(gf2 |^3))*(P`3_3*(gf1 |^2)-g8*((gf2 |^2)*(P`1_3))) by GROUP_1:def 3 .= (g8*(gf2 |^3))*(P`3_3*(gf1 |^2)-P`3_3*(g8*gf3)) by C13,GROUP_1:def 3 .= (g8*(gf2 |^3))*(P`3_3*((gf1 |^2)-(g8*gf3))) by VECTSP_1:11 .= g4*(gf2 |^2)*(P`3_3)*(R`1_3) by E1,GROUP_1:def 3; end; theorem ThDobEllEq3: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 & R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)] holds g4*(gf2 |^2)*(P`3_3 |^2)*(z`2*(R`3_3)) = R`3_3*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2) - g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p and A2: gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 and A3: R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)]; set a = z`1; set b = z`2; C4: g4 = (2*2) mod p by A1 .= g2*g2 by A1,EC_PF_1:18; C11: g8 = (2*4) mod p by A1 .= g2*g4 by A1,EC_PF_1:18; E1: -g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3) = -g4*(gf2 |^2)*(P`1_3 |^2)*(g2*gf4*gf2) by A3,MCART_1:def 5 .= -g4*(gf2 |^2)*((P`1_3 |^2)*(g2*gf4*gf2)) by GROUP_1:def 3 .= -g4*((gf2 |^2)*((P`1_3 |^2)*(g2*gf4*gf2))) by GROUP_1:def 3 .= -g4*(((gf2 |^2)*(P`1_3 |^2))*(g2*gf4*gf2)) by GROUP_1:def 3 .= -g4*(((gf2 |^2)*(P`1_3 |^2))*(g2*(gf4*gf2))) by GROUP_1:def 3 .= -g4*((((gf2 |^2)*(P`1_3 |^2))*(gf2*gf4))*g2) by GROUP_1:def 3 .= -(g4*g2)*(((gf2 |^2)*(P`1_3 |^2))*(gf2*gf4)) by GROUP_1:def 3 .= -g8*((P`1_3 |^2)*((gf2 |^2)*(gf2*gf4))) by C11,GROUP_1:def 3 .= -g8*((P`1_3 |^2)*(((gf2 |^2)*gf2)*gf4)) by GROUP_1:def 3 .= -g8*((P`1_3 |^2)*((gf2 |^(2+1))*gf4)) by EC_PF_1:24 .= -g8*(((P`1_3 |^2)*(gf2 |^3))*gf4) by GROUP_1:def 3 .= -(g8*((P`1_3 |^2)*(gf2 |^3)))*gf4 by GROUP_1:def 3 .= -((g8*(gf2 |^3))*(P`1_3 |^2))*gf4 by GROUP_1:def 3 .= -(R`3_3*(P`1_3 |^2))*gf4 by A3,MCART_1:def 7 .= -((R`3_3*(P`1_3 |^2))*(gf1 |^2)-(R`3_3*(P`1_3 |^2))*(g8*gf3)) by A2,VECTSP_1:11 .= (R`3_3*(P`1_3 |^2))*(g8*gf3)-(R`3_3*(P`1_3 |^2))*(gf1 |^2) by VECTSP_1:17 .= ((R`3_3*(P`1_3 |^2))*g8)*gf3-(R`3_3*(P`1_3 |^2))*(gf1 |^2) by GROUP_1:def 3 .= (g8*(R`3_3*(P`1_3 |^2)))*gf3-R`3_3*((P`1_3 |^2)*(gf1 |^2)) by GROUP_1:def 3 .= g8*((R`3_3*(P`1_3 |^2))*gf3)-R`3_3*((P`1_3 |^2)*(gf1 |^2)) by GROUP_1:def 3 .= g8*(R`3_3*((P`1_3 |^2)*(P`1_3*(P`2_3)*gf2))) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by A2,GROUP_1:def 3 .= g8*(R`3_3*((P`1_3 |^2)*(P`1_3*(P`2_3*gf2)))) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by GROUP_1:def 3 .= g8*(R`3_3*(((P`1_3 |^2)*(P`1_3))*(P`2_3*gf2))) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by GROUP_1:def 3 .= g8*(R`3_3*((P`1_3 |^(2+1))*(P`2_3*gf2))) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by EC_PF_1:24 .= g8*((R`3_3*(P`2_3*gf2))*(P`1_3 |^3)) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by GROUP_1:def 3 .= ((g2*g4)*(R`3_3*(P`2_3*gf2)))*(P`1_3 |^3) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by C11,GROUP_1:def 3 .= (g2*(g4*(R`3_3*(P`2_3*gf2))))*(P`1_3 |^3) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by GROUP_1:def 3 .= (g4*(R`3_3*(P`2_3*gf2)))*(g2*(P`1_3 |^3)) -R`3_3*((P`1_3 |^2)*(gf1 |^2)) by GROUP_1:def 3 .= -R`3_3*((gf1 |^2)*(P`1_3 |^2)) +((g4*(R`3_3))*(P`2_3*gf2))*(g2*(P`1_3 |^3)) by GROUP_1:def 3; E2: R`3_3*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2)-R`3_3*((gf1 |^2)*(P`1_3 |^2)) = R`3_3*(((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2)-(gf1 |^2)*(P`1_3 |^2)) by VECTSP_1:11 .= R`3_3*(((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2)-((gf1*(P`1_3)) |^2)) by BINOM:9 .= R`3_3*(((g2*gf2*(P`2_3)-gf1*(P`1_3))+gf1*(P`1_3))* ((g2*gf2*(P`2_3)-gf1*(P`1_3))-gf1*(P`1_3))) by ThGFA3 .= R`3_3*((g2*gf2*(P`2_3)-(gf1*(P`1_3)-gf1*(P`1_3)))* ((g2*gf2*(P`2_3)-gf1*(P`1_3))-gf1*(P`1_3))) by RLVECT_1:29 .= R`3_3*((g2*gf2*(P`2_3)-(gf1*(P`1_3)-gf1*(P`1_3)))* (g2*gf2*(P`2_3)-(gf1*(P`1_3)+gf1*(P`1_3)))) by RLVECT_1:27 .= R`3_3*((g2*gf2*(P`2_3)-(gf1*(P`1_3)-gf1*(P`1_3)))* (g2*gf2*(P`2_3)-g2*(gf1*(P`1_3)))) by A1,ThGF5 .= R`3_3*((g2*gf2*(P`2_3)-0.GF(p))*(g2*gf2*(P`2_3)-g2*(gf1*(P`1_3)))) by VECTSP_1:19 .= R`3_3*((g2*gf2*(P`2_3))*(g2*gf2*(P`2_3)-g2*(gf1*(P`1_3)))) by RLVECT_1:13 .= R`3_3*((g2*gf2*(P`2_3))*(g2*(gf2*(P`2_3))-g2*(gf1*(P`1_3)))) by GROUP_1:def 3 .= R`3_3*((g2*gf2*(P`2_3))*(g2*(gf2*(P`2_3)-gf1*(P`1_3)))) by VECTSP_1:11 .= R`3_3*(((g2*gf2*(P`2_3))*g2)*(gf2*(P`2_3)-gf1*(P`1_3))) by GROUP_1:def 3 .= R`3_3*((g2*(g2*(gf2*(P`2_3))))*(gf2*(P`2_3)-gf1*(P`1_3))) by GROUP_1:def 3 .= R`3_3*((g4*(gf2*(P`2_3)))*(gf2*(P`2_3)-gf1*(P`1_3))) by C4,GROUP_1:def 3 .= (R`3_3*(g4*(gf2*(P`2_3))))*(gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3; E3: 3 = 2+1; (P`2_3 |^2)*(P`3_3) - ((P`1_3 |^3)+a*(P`1_3)*(P`3_3 |^2)+b*(P`3_3 |^3)) = 0.GF(p) by ThOnCurve2; then E4: (P`1_3 |^3)+a*(P`1_3)*(P`3_3 |^2)+b*(P`3_3 |^3) = (P`2_3 |^2)*(P`3_3) by VECTSP_1:19 .= (P`2_3*(P`2_3))*(P`3_3) by EC_PF_1:22 .= gf2*(P`2_3) by A2,GROUP_1:def 3; thus R`3_3*((g2*gf2*(P`2_3) -gf1*(P`1_3)) |^2)-g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3) = (R`3_3*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2)-R`3_3*((gf1 |^2)*(P`1_3 |^2))) +((g4*(R`3_3))*(P`2_3*gf2))*(g2*(P`1_3 |^3)) by E1,ALGSTR_1:7 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-gf1*(P`1_3)+g2*(P`1_3 |^3)) by E2,VECTSP_1:4 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-((a*(P`3_3 |^2))*(P`1_3)+ (g3*(P`1_3 |^2))*(P`1_3))+g2*(P`1_3 |^3)) by A2,VECTSP_1:4 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-(((a*(P`3_3 |^2))*(P`1_3)+ (g3*(P`1_3 |^2))*(P`1_3))-g2*(P`1_3 |^3))) by RLVECT_1:29 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-(((a*(P`3_3 |^2))*(P`1_3)+ g3*((P`1_3 |^2)*(P`1_3)))-g2*(P`1_3 |^3))) by GROUP_1:def 3 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-(((a*(P`3_3 |^2))*(P`1_3)+ g3*(P`1_3 |^(2+1)))-g2*(P`1_3 |^3))) by EC_PF_1:24 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-((a*(P`3_3 |^2))*(P`1_3)+ (g3*(P`1_3 |^3)-g2*(P`1_3 |^3)))) by ALGSTR_1:7 .= ((g4*(R`3_3))*(P`2_3*gf2))*(gf2*(P`2_3)-((a*(P`3_3 |^2))*(P`1_3)+ (P`1_3 |^3))) by A1,E3,ThGF7 .= ((g4*(R`3_3))*(P`2_3*gf2))*(((P`1_3 |^3)+ a*(P`1_3)*(P`3_3 |^2))+b*(P`3_3 |^3) -((P`1_3 |^3)+a*(P`1_3)*(P`3_3 |^2))) by E4,GROUP_1:def 3 .= ((g4*(R`3_3))*(gf2*(P`2_3)))*(b*(P`3_3 |^3)+ (((P`1_3 |^3)+a*(P`1_3)*(P`3_3 |^2)) -((P`1_3 |^3)+a*(P`1_3)*(P`3_3 |^2)))) by ALGSTR_1:7 .= ((g4*(R`3_3))*(gf2*(P`2_3)))*(b*(P`3_3 |^3)+0.GF(p)) by RLVECT_1:5 .= ((g4*(R`3_3))*(gf2*(P`2_3)))*(b*(P`3_3 |^3)) by ALGSTR_1:7 .= (((g4*(R`3_3))*gf2)*(P`2_3))*(b*(P`3_3 |^3)) by GROUP_1:def 3 .= ((g4*(R`3_3))*gf2)*(P`2_3*(b*(P`3_3 |^3))) by GROUP_1:def 3 .= ((g4*(R`3_3))*gf2)*(b*(P`2_3*(P`3_3 |^(2+1)))) by GROUP_1:def 3 .= ((g4*(R`3_3))*gf2)*(b*(P`2_3*((P`3_3 |^2)*(P`3_3)))) by EC_PF_1:24 .= (((g4*(R`3_3))*gf2)*b)*(P`2_3*(P`3_3*(P`3_3 |^2))) by GROUP_1:def 3 .= (((g4*(R`3_3))*gf2)*b)*(gf2*(P`3_3 |^2)) by A2,GROUP_1:def 3 .= ((g4*(R`3_3*gf2))*b)*(gf2*(P`3_3 |^2)) by GROUP_1:def 3 .= (g4*((R`3_3*gf2)*b))*(gf2*(P`3_3 |^2)) by GROUP_1:def 3 .= g4*(((R`3_3*gf2)*b)*(gf2*(P`3_3 |^2))) by GROUP_1:def 3 .= g4*((((R`3_3*gf2)*b)*gf2)*(P`3_3 |^2)) by GROUP_1:def 3 .= g4*((gf2*(gf2*(R`3_3*b)))*(P`3_3 |^2)) by GROUP_1:def 3 .= g4*(((gf2*gf2)*(R`3_3*b))*(P`3_3 |^2)) by GROUP_1:def 3 .= g4*(((gf2 |^2)*(b*(R`3_3)))*(P`3_3 |^2)) by EC_PF_1:22 .= g4*((gf2 |^2)*((b*(R`3_3))*(P`3_3 |^2))) by GROUP_1:def 3 .= (g4*(gf2 |^2))*((P`3_3 |^2)*(b*(R`3_3))) by GROUP_1:def 3 .= g4*(gf2 |^2)*(P`3_3 |^2)*(b*(R`3_3)) by GROUP_1:def 3; end; theorem ThDobEllEq4: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 & R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)] holds g2*(gf2 |^2)*(P`3_3 |^2)*(z`1*(R`3_3)) = gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) + (gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3)+g2*(P`1_3 |^2)*(R`3_3)) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p and A2: gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 and A3: R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)]; set a = z`1; set b = z`2; C11: g8 = (2*4) mod p by A1 .= g2*g4 by A1,EC_PF_1:18; C13: P`3_3*gf3 = (P`3_3*(P`1_3*(P`2_3)))*gf2 by A2,GROUP_1:def 3 .= (P`1_3*(P`2_3*(P`3_3)))*gf2 by GROUP_1:def 3 .= P`1_3*(gf2*gf2) by A2,GROUP_1:def 3 .= P`1_3*(gf2 |^2) by EC_PF_1:22; E1: g2*(gf2 |^2)*(P`3_3 |^2)*(a*(R`3_3)) = ((g2*(gf2 |^2)*(P`3_3 |^2))*a)*(R`3_3) by GROUP_1:def 3 .= R`3_3*((g2*(gf2 |^2))*(a*(P`3_3 |^2))) by GROUP_1:def 3; E2: gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) = R`3_3*((gf1*(P`3_3))*(g2*gf2*(P`2_3)-gf1*(P`1_3))) by GROUP_1:def 3 .= R`3_3*(gf1*(P`3_3*(g2*gf2*(P`2_3)-gf1*(P`1_3)))) by GROUP_1:def 3 .= R`3_3*(gf1*(P`3_3*(g2*gf2*(P`2_3))-P`3_3*(gf1*(P`1_3)))) by VECTSP_1:11 .= R`3_3*(gf1*(P`3_3*(P`2_3*(g2*gf2))-(P`3_3*gf1)*(P`1_3))) by GROUP_1:def 3 .= R`3_3*(gf1*((P`3_3*(P`2_3))*(g2*gf2)-P`1_3*(P`3_3*gf1))) by GROUP_1:def 3 .= R`3_3*(gf1*((P`2_3*(P`3_3))*(g2*gf2)-(P`1_3*(P`3_3))*gf1)) by GROUP_1:def 3 .= R`3_3*(gf1*(g2*(gf2*gf2)-gf1*(P`1_3*(P`3_3)))) by A2,GROUP_1:def 3 .= R`3_3*(gf1*(g2*(gf2 |^2)-gf1*(P`1_3*(P`3_3)))) by EC_PF_1:22 .= R`3_3*(gf1*(g2*(gf2 |^2))-gf1*(gf1*(P`1_3*(P`3_3)))) by VECTSP_1:11 .= R`3_3*(gf1*(g2*(gf2 |^2))-(gf1*gf1)*(P`1_3*(P`3_3))) by GROUP_1:def 3 .= R`3_3*((g2*(gf2 |^2))*gf1-(gf1 |^2)*(P`1_3*(P`3_3))) by EC_PF_1:22; E3: (gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3)+g2*(P`1_3 |^2)*(R`3_3)) = (gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3))+(gf2 |^2)*(g2*(P`1_3 |^2)*(R`3_3)) by VECTSP_1:4 .= (gf2 |^2)*((g4*(P`1_3)*(P`3_3))*(R`1_3)) +((gf2 |^2)*(g2*(P`1_3 |^2)))*(R`3_3) by GROUP_1:def 3 .= (gf2 |^2)*(R`1_3*(g4*(P`1_3)*(P`3_3))) +((gf2 |^2)*g2*(P`1_3 |^2))*(R`3_3) by GROUP_1:def 3 .= ((gf2 |^2)*(R`1_3))*(g4*(P`1_3)*(P`3_3)) +R`3_3*((gf2 |^2)*g2*(P`1_3 |^2)) by GROUP_1:def 3 .= ((gf2 |^2)*(g2*gf4*gf2))*(g4*(P`1_3)*(P`3_3))+R`3_3*(((gf2 |^2)*g2)* (P`1_3 |^2)) by A3,MCART_1:def 5 .= ((gf2 |^2)*(gf2*(g2*gf4)))*(g4*(P`1_3)*(P`3_3))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by GROUP_1:def 3 .= (((gf2 |^2)*gf2)*(g2*gf4))*(g4*(P`1_3)*(P`3_3))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by GROUP_1:def 3 .= ((gf2 |^(2+1))*(g2*gf4))*(g4*(P`1_3)*(P`3_3))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by EC_PF_1:24 .= (gf2 |^3)*((g2*gf4)*(g4*(P`1_3)*(P`3_3)))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by GROUP_1:def 3 .= (gf2 |^3)*((g2*gf4)*(g4*(P`1_3*(P`3_3))))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by GROUP_1:def 3 .= (gf2 |^3)*(((g2*gf4)*g4)*(P`1_3*(P`3_3)))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by GROUP_1:def 3 .= (gf2 |^3)*(((g2*g4)*gf4)*(P`1_3*(P`3_3)))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by GROUP_1:def 3 .= (gf2 |^3)*(g8*(gf4*(P`1_3*(P`3_3))))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by C11,GROUP_1:def 3 .= ((gf2 |^3)*g8)*(gf4*(P`1_3*(P`3_3)))+R`3_3*(g2*((gf2 |^2)* (P`1_3 |^2))) by GROUP_1:def 3 .= R`3_3*(gf4*(P`1_3*(P`3_3)))+R`3_3*(g2*((gf2 |^2)*(P`1_3 |^2))) by A3,MCART_1:def 7 .= R`3_3*(((P`1_3*(P`3_3))*gf4)+(g2*((gf2 |^2)*(P`1_3 |^2)))) by VECTSP_1:4 .= R`3_3*(P`1_3*(P`3_3*gf4)+g2*((gf2 |^2)*(P`1_3 |^2))) by GROUP_1:def 3; E4: 4=3+1; P`3_3*gf4 = P`3_3*(gf1 |^2)-P`3_3*(g8*gf3) by A2,VECTSP_1:11 .= P`3_3*(gf1 |^2)-g8*(P`3_3*gf3) by GROUP_1:def 3 .= P`3_3*(gf1 |^2)-(g4*(g2*(P`1_3*(gf2 |^2)))) by C11,C13,GROUP_1:def 3 .= P`3_3*(gf1 |^2)-(g3*(g2*(P`1_3*(gf2 |^2)))+(g2*(P`1_3*(gf2 |^2)))) by A1,E4,ThGF4 .= P`3_3*(gf1 |^2)-(g3*((g2*(gf2 |^2))*(P`1_3))+(g2*((gf2 |^2)*(P`1_3)))) by GROUP_1:def 3 .= P`3_3*(gf1 |^2)-((g2*(gf2 |^2))*(g3*(P`1_3))+(g2*((gf2 |^2)*(P`1_3)))) by GROUP_1:def 3; then P`1_3*(P`3_3*gf4) = P`1_3*(P`3_3*(gf1 |^2))-P`1_3*((g2*(gf2 |^2))*(g3*(P`1_3)) +(g2*((gf2 |^2)*(P`1_3)))) by VECTSP_1:11 .= (P`1_3*(P`3_3))*(gf1 |^2)-(P`1_3*((g2*(gf2 |^2))*(g3*(P`1_3)) +(g2*((gf2 |^2)*(P`1_3))))) by GROUP_1:def 3 .= (P`1_3*(P`3_3))*(gf1 |^2)-(P`1_3*((g2*(gf2 |^2))*(g3*(P`1_3))) +P`1_3*(g2*((gf2 |^2)*(P`1_3)))) by VECTSP_1:4 .= (P`1_3*(P`3_3))*(gf1 |^2)-((g2*(gf2 |^2))*((g3*(P`1_3))*(P`1_3)) +(g2*((gf2 |^2)*(P`1_3)))*(P`1_3)) by GROUP_1:def 3 .= (P`1_3*(P`3_3))*(gf1 |^2)-((g2*(gf2 |^2))*(g3*(P`1_3*(P`1_3))) +(g2*((gf2 |^2)*(P`1_3)))*(P`1_3)) by GROUP_1:def 3 .= (P`1_3*(P`3_3))*(gf1 |^2)-((g2*(gf2 |^2))*(g3*(P`1_3 |^2)) +(g2*((gf2 |^2)*(P`1_3)))*(P`1_3)) by EC_PF_1:22 .= (P`1_3*(P`3_3))*(gf1 |^2)-((g2*(gf2 |^2))*(g3*(P`1_3 |^2)) +g2*(((gf2 |^2)*(P`1_3))*(P`1_3))) by GROUP_1:def 3 .= (P`1_3*(P`3_3))*(gf1 |^2)-((g2*(gf2 |^2))*(g3*(P`1_3 |^2)) +g2*((gf2 |^2)*(P`1_3*(P`1_3)))) by GROUP_1:def 3 .= (gf1 |^2)*(P`1_3*(P`3_3))-((g2*(gf2 |^2))*(g3*(P`1_3 |^2)) +g2*((gf2 |^2)*(P`1_3 |^2))) by EC_PF_1:22 .= (gf1 |^2)*(P`1_3*(P`3_3))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2)) -g2*((gf2 |^2)*(P`1_3 |^2)) by VECTSP_1:17; then P`1_3*(P`3_3*gf4)+g2*((gf2 |^2)*(P`1_3 |^2)) = ((gf1 |^2)*(P`1_3*(P`3_3))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2))) +(-g2*((gf2 |^2)*(P`1_3 |^2))+g2*((gf2 |^2)*(P`1_3 |^2))) by ALGSTR_1:7 .= ((gf1 |^2)*(P`1_3*(P`3_3))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2))) + 0.GF(p) by VECTSP_1:19 .= (gf1 |^2)*(P`1_3*(P`3_3))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2)) by ALGSTR_1:7; hence gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) +(gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3)+g2*(P`1_3 |^2)*(R`3_3)) = R`3_3*(((g2*(gf2 |^2))*gf1-(gf1 |^2)*(P`1_3*(P`3_3))) + ((gf1 |^2)*(P`1_3*(P`3_3))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2)))) by E2,E3,VECTSP_1:4 .= R`3_3*((g2*(gf2 |^2))*gf1+(-(gf1 |^2)*(P`1_3*(P`3_3)) +((gf1 |^2)*(P`1_3*(P`3_3))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2))))) by ALGSTR_1:7 .= R`3_3*((g2*(gf2 |^2))*gf1+((-(gf1 |^2)*(P`1_3*(P`3_3)) +(gf1 |^2)*(P`1_3*(P`3_3)))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2)))) by ALGSTR_1:7 .= R`3_3*((g2*(gf2 |^2))*gf1+(0.GF(p) -(g2*(gf2 |^2))*(g3*(P`1_3 |^2)))) by VECTSP_1:19 .= R`3_3*((g2*(gf2 |^2))*gf1-(g2*(gf2 |^2))*(g3*(P`1_3 |^2))) by VECTSP_1:18 .= R`3_3*((g2*(gf2 |^2))*(a*(P`3_3 |^2)) +(g2*(gf2 |^2))*(g3*(P`1_3 |^2))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2))) by A2,VECTSP_1:4 .= R`3_3*((g2*(gf2 |^2))*(a*(P`3_3 |^2)) +((g2*(gf2 |^2))*(g3*(P`1_3 |^2))-(g2*(gf2 |^2))*(g3*(P`1_3 |^2)))) by ALGSTR_1:7 .= R`3_3*((g2*(gf2 |^2))*(a*(P`3_3 |^2))+0.GF(p)) by VECTSP_1:19 .= g2*(gf2 |^2)*(P`3_3 |^2)*(a*(R`3_3)) by E1,ALGSTR_1:7; end; theorem ThDobEllEq5: for p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 & R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)] holds g4*(gf2 |^2)*(P`3_3 |^2)* ((R`2_3 |^2)*(R`3_3) - ((R`1_3 |^3) + z`1*(R`1_3)*(R`3_3 |^2) + z`2*(R`3_3 |^3))) = 0.GF(p) proof let p be 5_or_greater Prime, z be Element of EC_WParam p, g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of GF(p), P be Element of EC_SetProjCo(z`1,z`2,p), R be Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] such that A1: g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p and A2: gf1 = z`1*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 and A3: R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)]; set a = z`1; set b = z`2; C1: g4 = (2*2) mod p by A1 .= g2*g2 by A1,EC_PF_1:18; then C2: g4 = g2 |^2 by EC_PF_1:22; C3: g8 = (2*4) mod p by A1 .= g2*g4 by A1,EC_PF_1:18; E1: g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3)) = (g2 |^2)*(gf2 |^2)*(P`3_3 |^2)*(R`2_3 |^2)*(R`3_3) by C2,GROUP_1:def 3 .= ((g2*gf2) |^2)*(P`3_3 |^2)*(R`2_3 |^2)*(R`3_3) by BINOM:9 .= (((g2*gf2)*(P`3_3)*(R`2_3)) |^2)*(R`3_3) by ThGF200 .= ((-(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3)) +g2*gf2*(P`2_3)*(R`3_3))) |^2)*(R`3_3) by A1,A2,A3,ThDobEllEq1 .= ((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))+g2*gf2*(P`2_3)*(R`3_3)) |^2)*(R`3_3) by ThGF10 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g2*(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(g2*gf2*(P`2_3)*(R`3_3))+((g2*gf2*(P`2_3)*(R`3_3)) |^2))*(R`3_3) by A1,ThGFA1 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g2*(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(g2*(gf2*(P`2_3)*(R`3_3)))+((g2*gf2*(P`2_3)*(R`3_3)) |^2))*(R`3_3) by ThGF102 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g2*(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *g2*(gf2*(P`2_3)*(R`3_3))+((g2*gf2*(P`2_3)*(R`3_3)) |^2))*(R`3_3) by GROUP_1:def 3 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g2*g2*(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(gf2*(P`2_3)*(R`3_3))+((g2*gf2*(P`2_3)*(R`3_3)) |^2))*(R`3_3) by GROUP_1:def 3 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(gf2*(P`2_3)*(R`3_3))+((g2*gf2*(P`2_3*(R`3_3))) |^2))*(R`3_3) by C1,GROUP_1:def 3 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(gf2*(P`2_3)*(R`3_3))+(g2 |^2)*(gf2 |^2)*((P`2_3*(R`3_3)) |^2))*(R`3_3) by ThGF200 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*(gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(gf2*(P`2_3)*(R`3_3))+g4*(gf2 |^2)*((P`2_3 |^2)*(R`3_3 |^2)))*(R`3_3) by C2,BINOM:9 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3)) *(gf2*(P`2_3)*(R`3_3))+g4*(gf2 |^2)*((P`2_3 |^2)*(R`3_3 |^2)))*(R`3_3) by GROUP_1:def 3 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3)) *(gf2*(P`2_3)*(R`3_3))+g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^2))*(R`3_3) by GROUP_1:def 3 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3)) *gf2*(P`2_3)*(R`3_3) +g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^2))*(R`3_3) by ThGF102 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*gf1*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) *gf2*(P`2_3))*(R`3_3) +g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^2))*(R`3_3) by ThGF102 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*gf1*(gf2*(P`2_3)*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(R`3_3)+g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^2))*(R`3_3) by GROUP_1:def 3 .= (((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2) +g4*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)-P`1_3*(R`3_3)) *(R`3_3)+g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^2))*(R`3_3) by ThGF102 .= ((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2)*(R`3_3) +((g4*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(R`3_3))*(R`3_3)+((g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^2))*(R`3_3) by ThGF300 .= ((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(R`3_3*(R`3_3))+(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^2)*(R`3_3) by GROUP_1:def 3 .= ((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(R`3_3*(R`3_3))+(g4*(gf2 |^2)*(P`2_3 |^2))*((R`3_3 |^2)*(R`3_3)) by GROUP_1:def 3 .= ((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(R`3_3*(R`3_3))+(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^(2+1)) by EC_PF_1:24 .= ((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) *(R`3_3 |^2)+(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3) by EC_PF_1:22 .= ((gf1*(P`3_3*(R`1_3)-P`1_3*(R`3_3))) |^2)*(R`3_3) +g4*gf1*gf2*(P`2_3)*(R`3_3 |^2) *(P`3_3*(R`1_3)-P`1_3*(R`3_3))+g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^3) by GROUP_1:def 3 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2))*(R`3_3) +g4*gf1*gf2*(P`2_3)*(R`3_3 |^2) *(P`3_3*(R`1_3)-P`1_3*(R`3_3))+g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^3) by BINOM:9 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +((g4*gf1*gf2*(P`2_3)*(R`3_3 |^2)) *(P`3_3*(R`1_3))-(g4*gf1*gf2*(P`2_3)*(R`3_3 |^2))*(P`1_3*(R`3_3))) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by VECTSP_1:11 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(R`3_3 |^2)) *(P`3_3*(R`1_3))-(g4*gf1*gf2*(P`2_3)*(R`3_3 |^2))*(P`1_3*(R`3_3)) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by ALGSTR_1:7 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +g4*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)) *(R`3_3 |^2)-(g4*gf1*gf2*(P`2_3)*(R`3_3 |^2))*(P`1_3*(R`3_3)) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by GROUP_1:def 3 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3) *(R`3_3 |^2)-(g4*gf1*gf2*(P`2_3)*(R`3_3 |^2))*(P`1_3*(R`3_3)) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by GROUP_1:def 3 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)) *(R`3_3 |^2)-g4*gf1*gf2*(P`2_3)*(R`3_3 |^2)*(P`1_3)*(R`3_3) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by GROUP_1:def 3 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)) *(R`3_3 |^2)-g4*gf1*gf2*(P`2_3)*(P`1_3)*(R`3_3 |^2)*(R`3_3) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by GROUP_1:def 3 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)) *(R`3_3 |^2)-g4*gf1*gf2*(P`2_3)*(P`1_3)*((R`3_3 |^2)*(R`3_3)) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by GROUP_1:def 3 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)) *(R`3_3 |^2)-g4*gf1*gf2*(P`2_3)*(P`1_3)*(R`3_3 |^(2+1)) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by EC_PF_1:24 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)) *(R`3_3 |^2)-(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +g4*(gf2 |^2)*(P`2_3 |^2) *(R`3_3 |^3) by GROUP_1:def 3; E2: -g4*(gf2 |^2)*(P`3_3 |^2)*(a*(R`1_3)*(R`3_3 |^2)) = -(g2*g2)*(gf2 |^2)*(P`3_3 |^2)*(R`1_3)*a*(R`3_3 |^2) by C1,ThGF102 .= -(g2*(g2*(gf2 |^2)*(P`3_3 |^2)))*(R`1_3)*a*(R`3_3 |^2) by ThGF102 .= -g2*(R`1_3)*(g2*(gf2 |^2)*(P`3_3 |^2))*a*(R`3_3 |^2) by GROUP_1:def 3 .= -g2*(R`1_3)*(g2*(gf2 |^2)*(P`3_3 |^2))*a*(R`3_3*(R`3_3)) by EC_PF_1:22 .= -g2*(R`1_3)*(g2*(gf2 |^2)*(P`3_3 |^2))*a*(R`3_3)*(R`3_3) by GROUP_1:def 3 .= -g2*(R`1_3)*(g2*(gf2 |^2)*(P`3_3 |^2))*(R`3_3)*a*(R`3_3) by GROUP_1:def 3 .= -g2*(R`1_3)*(R`3_3)*(g2*(gf2 |^2)*(P`3_3 |^2))*a*(R`3_3) by GROUP_1:def 3 .= -g2*(R`1_3)*(R`3_3)*(g2*(gf2 |^2)*(P`3_3 |^2))*(a*(R`3_3)) by GROUP_1:def 3 .= -g2*(R`1_3)*(R`3_3)*((g2*(gf2 |^2)*(P`3_3 |^2))*(a*(R`3_3))) by GROUP_1:def 3 .= -g2*(R`1_3)*(R`3_3)*(gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) +(gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3)+g2*(P`1_3 |^2)*(R`3_3))) by A1,A2,A3,ThDobEllEq4 .= -((g2*(R`1_3)*(R`3_3))*(gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3) -gf1*(P`1_3))) +(g2*(R`1_3)*(R`3_3))*((gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)))) by VECTSP_1:4 .= -(g2*(R`1_3)*(R`3_3))*((gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3))) -(g2*(R`1_3)*(R`3_3))*(gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3))) by VECTSP_1:17 .= -(g2*(R`1_3)*(R`3_3))*(gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -(g2*(R`1_3)*(R`3_3))*(gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3))) by GROUP_1:def 3 .= -(g2*(R`1_3)*(R`3_3))*(gf2 |^2)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -(g2*(R`1_3)*(R`3_3))*(gf1*(P`3_3)*(R`3_3))*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(R`1_3)*(gf2 |^2)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -g2*(R`1_3)*(R`3_3)*(gf1*(P`3_3)*(R`3_3))*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -g2*(R`1_3)*(R`3_3)*(gf1*(P`3_3)*(R`3_3))*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -g2*(R`1_3)*(R`3_3)*gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by ThGF102 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -g2*(R`1_3*(R`3_3))*gf1*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -g2*gf1*(R`1_3*(R`3_3))*(P`3_3)*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -g2*gf1*(P`3_3)*(R`1_3*(R`3_3))*(R`3_3)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3) +g2*(P`1_3 |^2)*(R`3_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3)*(R`3_3)*(g2*gf2*(P`2_3) -gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3) *(P`3_3)*(R`1_3)+g2*(P`1_3 |^2)*(R`3_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3*(R`3_3))*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3))+ g2*(gf2 |^2)*(R`1_3)*(R`3_3) *(g2*(P`1_3 |^2)*(R`3_3))) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3*(R`3_3))*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by VECTSP_1:4 .= -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g4*(P`1_3)*(P`3_3)*(R`1_3)) +g2*(gf2 |^2)*(R`1_3)*(R`3_3) *(g2*(P`1_3 |^2)*(R`3_3))) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by EC_PF_1:22 .= -(g2*(gf2 |^2)*(R`1_3)*(R`3_3))*(g2*(P`1_3 |^2)*(R`3_3)) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by VECTSP_1:17 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*(g2*((P`1_3 |^2)*(R`3_3))) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3)*(R`3_3)*g2*((P`1_3 |^2)*(R`3_3)) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*(R`1_3*(R`3_3))*g2*((P`1_3 |^2)*(R`3_3)) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*g2*(R`1_3*(R`3_3))*((P`1_3 |^2)*(R`3_3)) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*(gf2 |^2)*g2*((R`1_3*(R`3_3))*((P`1_3 |^2)*(R`3_3))) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3) -gf1*(P`1_3)) by GROUP_1:def 3 .= -g2*g2*(gf2 |^2)*((R`1_3*(R`3_3))*((P`1_3 |^2)*(R`3_3))) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g4*(gf2 |^2)*(R`1_3*(R`3_3)*(P`1_3 |^2)*(R`3_3)) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3) -gf1*(P`1_3)) by C1,GROUP_1:def 3 .= -g4*(gf2 |^2)*(R`1_3*(P`1_3 |^2)*(R`3_3)*(R`3_3)) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3) -gf1*(P`1_3)) by GROUP_1:def 3 .= -g4*(gf2 |^2)*(R`1_3*(P`1_3 |^2)*(R`3_3*(R`3_3))) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -g4*(gf2 |^2)*(R`1_3*(P`1_3 |^2)*(R`3_3 |^2)) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by EC_PF_1:22 .= -g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3)*(R`3_3 |^2) -(g2*(gf2 |^2)*(R`1_3)*(R`3_3)) *(g4*(P`1_3)*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g2*(gf2 |^2)*(R`1_3)*(R`3_3) *(g4*(P`1_3*(P`3_3)*(R`1_3))) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g2*(gf2 |^2)*(R`1_3)*(R`3_3) *g4*(P`1_3*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g2*(gf2 |^2)*(R`1_3*(R`3_3)) *g4*(P`1_3*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g2*(gf2 |^2)*g4*(R`1_3*(R`3_3)) *(P`1_3*(P`3_3)*(R`1_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g2*(gf2 |^2)*g4*((R`1_3*(R`3_3)) *(P`1_3*(P`3_3)*(R`1_3))) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g2*g4*(gf2 |^2)*((R`1_3*(R`3_3)) *(P`1_3*(P`3_3)*(R`1_3))) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g8*(gf2 |^2)*(P`1_3*(P`3_3)*(R`1_3) *(R`1_3)*(R`3_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by C3,GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g8*(gf2 |^2)*(P`1_3*(P`3_3) *(R`1_3*(R`1_3))*(R`3_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g8*(gf2 |^2)*(P`1_3*(P`3_3) *(R`1_3 |^2)*(R`3_3)) -g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3)-gf1*(P`1_3)) by EC_PF_1:22 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2)*(R`3_3)-g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2)*(g2*gf2*(P`2_3) -gf1*(P`1_3)) by ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3) -((g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3)) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(gf1*(P`1_3))) by VECTSP_1:11 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+((g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(gf1*(P`1_3)) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3))) by VECTSP_1:17 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+((g2*gf1*(P`3_3*(R`1_3)*(R`3_3 |^2)))*(gf1*(P`1_3)) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3))) by ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+(g2*gf1*(gf1*(P`1_3))*(P`3_3*(R`1_3)*(R`3_3 |^2)) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3))) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+(g2*gf1*gf1*(P`1_3)*(P`3_3*(R`1_3)*(R`3_3 |^2)) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3))) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+(g2*(gf1*gf1)*(P`1_3)*(P`3_3*(R`1_3)*(R`3_3 |^2)) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3))) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+(g2*(gf1 |^2)*(P`1_3)*(P`3_3*(R`1_3)*(R`3_3 |^2)) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3))) by EC_PF_1:22 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2) -(g2*gf1*(P`3_3)*(R`1_3)*(R`3_3 |^2))*(g2*gf2*(P`2_3))) by ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+((g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g2*gf1*(P`3_3*(R`1_3)*(R`3_3 |^2)))*(g2*gf2*(P`2_3))) by ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+((g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g2*gf1*(g2*gf2*(P`2_3))*(P`3_3*(R`1_3)*(R`3_3 |^2)))) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+((g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g2*gf1*g2*gf2*(P`2_3)*(P`3_3*(R`1_3)*(R`3_3 |^2)))) by ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+((g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g2*g2*gf1*gf2*(P`2_3)*(P`3_3*(R`1_3)*(R`3_3 |^2)))) by GROUP_1:def 3 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3) *(R`1_3 |^2))*(R`3_3)+((g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2))) by C1,ThGF102 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) +((g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2))) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by ALGSTR_1:8 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2)) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by ALGSTR_1:7 .= -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2)) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by ALGSTR_1:8; E3: -g4*(gf2 |^2)*(P`3_3 |^2)*(b*(R`3_3 |^3)) = -g4*(gf2 |^2)*(P`3_3 |^2)*b*(R`3_3 |^(2+1)) by GROUP_1:def 3 .= -g4*(gf2 |^2)*(P`3_3 |^2)*b*((R`3_3 |^2)*(R`3_3)) by EC_PF_1:24 .= -g4*(gf2 |^2)*(P`3_3 |^2)*b*(R`3_3)*(R`3_3 |^2) by GROUP_1:def 3 .= -(R`3_3 |^2)*(g4*(gf2 |^2)*(P`3_3 |^2)*(b*(R`3_3))) by GROUP_1:def 3 .= -(R`3_3 |^2)*(R`3_3*((g2*gf2*(P`2_3) -gf1*(P`1_3)) |^2)-g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3)) by A1,A2,A3,ThDobEllEq3 .= -((R`3_3 |^2)*(R`3_3*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2))-(R`3_3 |^2)* (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))) by VECTSP_1:11 .= (R`3_3 |^2)*(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3)) -(R`3_3 |^2)*(R`3_3*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2)) by VECTSP_1:17 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(R`3_3 |^2)*(R`3_3)*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2) by GROUP_1:def 3 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(R`3_3 |^(2+1))*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2) by EC_PF_1:24 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) +(-(R`3_3 |^3))*((g2*gf2*(P`2_3)-gf1*(P`1_3)) |^2) by VECTSP_1:9 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)+(-(R`3_3 |^3)) *(((g2*gf2*(P`2_3)) |^2) -g2*(g2*gf2*(P`2_3))*(gf1*(P`1_3))+((gf1*(P`1_3)) |^2)) by A1,ThGFA2 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)+(-(R`3_3 |^3)) *((g2 |^2)*(gf2 |^2)*(P`2_3 |^2) -g2*(g2*gf2*(P`2_3))*(gf1*(P`1_3))+((gf1*(P`1_3)) |^2)) by ThGF200 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)+(-(R`3_3 |^3)) *(g4*(gf2 |^2)*(P`2_3 |^2) -g2*(g2*gf2*(P`2_3))*(gf1*(P`1_3))+(gf1 |^2)*(P`1_3 |^2)) by C2,BINOM:9 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)+(-(R`3_3 |^3)) *(g4*(gf2 |^2)*(P`2_3 |^2) -g2*g2*gf2*(P`2_3)*(gf1*(P`1_3))+(gf1 |^2)*(P`1_3 |^2)) by ThGF102 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)+(-(R`3_3 |^3)) *(g4*(gf2 |^2)*(P`2_3 |^2)-g4*gf2*(gf1*(P`1_3))*(P`2_3) +(gf1 |^2)*(P`1_3 |^2)) by C1,GROUP_1:def 3 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)+(-(R`3_3 |^3)) *(g4*(gf2 |^2)*(P`2_3 |^2) -g4*gf2*gf1*(P`1_3)*(P`2_3)+(gf1 |^2)*(P`1_3 |^2)) by GROUP_1:def 3 .= (g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)+(-(R`3_3 |^3)) *(g4*(gf2 |^2)*(P`2_3 |^2) -g4*gf1*gf2*(P`1_3)*(P`2_3)+(gf1 |^2)*(P`1_3 |^2)) by GROUP_1:def 3 .= g4*(gf2 |^2)*(P`2_3 |^2)*(-(R`3_3 |^3)) -g4*gf1*gf2*(P`1_3)*(P`2_3)*(-(R`3_3 |^3)) +(gf1 |^2)*(P`1_3 |^2)*(-(R`3_3 |^3)) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by ThGF300 .= -(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3) -(g4*gf1*gf2*(P`1_3)*(P`2_3))*(-(R`3_3 |^3)) +(gf1 |^2)*(P`1_3 |^2)*(-(R`3_3 |^3)) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:8 .= -(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3) -(-(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3)) +(gf1 |^2)*(P`1_3 |^2)*(-(R`3_3 |^3)) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:8 .= -(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +(gf1 |^2)*(P`1_3 |^2)*(-(R`3_3 |^3)) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by RLVECT_1:17 .= -(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) -(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:8; E4: g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3))-g4*(gf2 |^2)*(P`3_3 |^2) *(b*(R`3_3 |^3)) = ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3)) +g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^3) +(-(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2))) by E1,E3,ALGSTR_1:7 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3)) +g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^3) -(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) by ThGF002 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3)) +(g4*(gf2 |^2)*(P`2_3 |^2)*(R`3_3 |^3) -(g4*(gf2 |^2)*(P`2_3 |^2))*(R`3_3 |^3)) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) by ALGSTR_1:7 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3))+0.GF(p) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) by VECTSP_1:19 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3)) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) by ALGSTR_1:7 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2)) +(-(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3) +(g4*gf1*gf2*(P`1_3)*(P`2_3))*(R`3_3 |^3)) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) by ALGSTR_1:7 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2))+0.GF(p) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) by RLVECT_1:5 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2)) +(-(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) by ALGSTR_1:7 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2)) -(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^3) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by ALGSTR_1:7 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) -(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^(2+1)) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by ALGSTR_1:8 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) -(gf1 |^2)*(P`1_3 |^2)*((R`3_3 |^2)*(R`3_3)) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by EC_PF_1:24 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2)*(R`3_3) -(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^2)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2) -(gf1 |^2)*(P`1_3 |^2)*(R`3_3 |^2))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:13 .= ((gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2) -(gf1 |^2)*((P`1_3 |^2)*(R`3_3 |^2)))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= (gf1 |^2)*(((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2) -(P`1_3 |^2)*(R`3_3 |^2))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:11 .= (gf1 |^2)*(((P`3_3*(R`1_3)-P`1_3*(R`3_3)) |^2) -((P`1_3*(R`3_3)) |^2))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by BINOM:9 .= (gf1 |^2)*(((P`3_3*(R`1_3)-P`1_3*(R`3_3)) +P`1_3*(R`3_3))*((P`3_3*(R`1_3)-P`1_3*(R`3_3)) -P`1_3*(R`3_3)))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by ThGFA3 .= (gf1 |^2)*((P`3_3*(R`1_3)-P`1_3*(R`3_3) +P`1_3*(R`3_3))*(P`3_3*(R`1_3)-(P`1_3*(R`3_3)+P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:17 .= (gf1 |^2)*((P`3_3*(R`1_3)+(-P`1_3*(R`3_3)+P`1_3*(R`3_3)))*(P`3_3*(R`1_3) -(P`1_3*(R`3_3)+P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by ALGSTR_1:7 .= (gf1 |^2)*((P`3_3*(R`1_3)+0.GF(p))*(P`3_3*(R`1_3) -(P`1_3*(R`3_3)+P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by RLVECT_1:5 .= (gf1 |^2)*((P`3_3*(R`1_3)+0.GF(p))*(P`3_3*(R`1_3) -g2*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by A1,ThGF5 .= (gf1 |^2)*((P`3_3*(R`1_3))*(P`3_3*(R`1_3)-g2*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by RLVECT_1:4 .= (gf1 |^2)*(P`3_3*(R`1_3))*(P`3_3*(R`1_3)-g2*(P`1_3*(R`3_3)))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3*(R`1_3))*(P`3_3*(R`1_3)) -(gf1 |^2)*(P`3_3*(R`1_3))*(g2*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:11 .= ((gf1 |^2)*((P`3_3*(R`1_3))*(P`3_3*(R`1_3))) -(gf1 |^2)*(P`3_3*(R`1_3))*(g2*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*((P`3_3*(R`1_3)) |^2) -(gf1 |^2)*(P`3_3*(R`1_3))*(g2*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by EC_PF_1:22 .= ((gf1 |^2)*((P`3_3 |^2)*(R`1_3 |^2)) -(gf1 |^2)*(P`3_3*(R`1_3))*(g2*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by BINOM:9 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2) -(gf1 |^2)*(P`3_3*(R`1_3))*(g2*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2) -(gf1 |^2)*(P`3_3*(R`1_3))*g2*(P`1_3*(R`3_3)))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2) -(gf1 |^2)*g2*(P`3_3*(R`1_3))*(P`1_3*(R`3_3)))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2) -g2*(gf1 |^2)*((P`3_3*(R`1_3))*(P`1_3*(R`3_3))))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2) -g2*(gf1 |^2)*((P`3_3*(R`1_3))*(P`1_3)*(R`3_3)))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2) -g2*(gf1 |^2)*(P`1_3*(P`3_3)*(R`1_3)*(R`3_3)))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2) -g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3)*(R`3_3))*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by ThGF102 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3)*(R`3_3) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by VECTSP_1:13 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3*(R`3_3)) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) by EC_PF_1:22; E5: g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3))-g4*(gf2 |^2)*(P`3_3 |^2) *(a*(R`1_3)*(R`3_3 |^2)+b*(R`3_3 |^3)) = g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3))-(g4*(gf2 |^2)*(P`3_3 |^2) *(a*(R`1_3)*(R`3_3 |^2))+g4*(gf2 |^2)*(P`3_3 |^2)*(b*(R`3_3 |^3))) by VECTSP_1:4 .= g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3))-g4*(gf2 |^2)*(P`3_3 |^2) *(b*(R`3_3 |^3))-g4*(gf2 |^2)*(P`3_3 |^2)*(a*(R`1_3)*(R`3_3 |^2)) by VECTSP_1:17 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2)) +(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2)) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by E2,E4,ThGF002 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2)) +((g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2) -(g4*(gf2 |^2)*(P`1_3 |^2)*(R`1_3))*(R`3_3 |^2)) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2)) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by ALGSTR_1:7 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2))+0.GF(p) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2)) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by RLVECT_1:5 .= ((gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2)) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2)) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by RLVECT_1:4 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +((g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g4*gf1*gf2*(P`2_3)*(P`3_3)*(R`1_3)*(R`3_3 |^2))) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +0.GF(p)+(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by RLVECT_1:5 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by RLVECT_1:4 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) +(-(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2) +(g2*(gf1 |^2)*(P`1_3)*(P`3_3)*(R`1_3))*(R`3_3 |^2)) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3)+0.GF(p) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by RLVECT_1:5 .= (gf1 |^2)*(P`3_3 |^2)*(R`1_3 |^2)*(R`3_3) -(g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2))*(R`3_3) by RLVECT_1:4 .= (gf1 |^2)*(P`3_3 |^2)*((R`1_3 |^2)*(R`3_3)) -g8*(gf2 |^2)*(P`1_3)*(P`3_3)*(R`1_3 |^2)*(R`3_3) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3 |^2)*((R`1_3 |^2)*(R`3_3)) -g8*(gf2 |^2)*(P`1_3)*(P`3_3)*((R`1_3 |^2)*(R`3_3)) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3 |^2) -g8*(gf2 |^2)*(P`1_3)*(P`3_3))*((R`1_3 |^2)*(R`3_3)) by VECTSP_1:13 .= ((gf1 |^2)*(P`3_3*(P`3_3)) -g8*(gf2 |^2)*(P`1_3)*(P`3_3))*((R`1_3 |^2)*(R`3_3)) by EC_PF_1:22 .= ((gf1 |^2)*(P`3_3*(P`3_3)) -g8*(gf2 |^2)*(P`1_3)*(P`3_3))*(R`1_3 |^2)*(R`3_3) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3)*(P`3_3) -g8*(gf2 |^2)*(P`1_3)*(P`3_3))*(R`1_3 |^2)*(R`3_3) by GROUP_1:def 3 .= ((gf1 |^2)*(P`3_3)-g8*(gf2 |^2)*(P`1_3))*(P`3_3)*(R`1_3 |^2)*(R`3_3) by VECTSP_1:13 .= R`3_3*((gf1 |^2)*(P`3_3)-g8*(gf2 |^2)*(P`1_3))*(P`3_3)*(R`1_3 |^2) by ThGF102 .= g4*(gf2 |^2)*(P`3_3)*(R`1_3)*(P`3_3)*(R`1_3 |^2) by A1,A2,A3,ThDobEllEq2 .= g4*(gf2 |^2)*(P`3_3)*(P`3_3)*(R`1_3)*(R`1_3 |^2) by GROUP_1:def 3 .= g4*(gf2 |^2)*(P`3_3*(P`3_3))*(R`1_3)*(R`1_3 |^2) by GROUP_1:def 3 .= g4*(gf2 |^2)*(P`3_3 |^2)*(R`1_3)*(R`1_3 |^2) by EC_PF_1:22 .= g4*(gf2 |^2)*(P`3_3 |^2)*((R`1_3 |^2)*(R`1_3)) by GROUP_1:def 3 .= g4*(gf2 |^2)*(P`3_3 |^2)*(R`1_3 |^(2+1)) by EC_PF_1:24 .= g4*(gf2 |^2)*(P`3_3 |^2)*(R`1_3 |^3); thus g4*(gf2 |^2)*(P`3_3 |^2)* ((R`2_3 |^2)*(R`3_3)-((R`1_3 |^3)+a*(R`1_3)*(R`3_3 |^2)+b*(R`3_3 |^3))) = g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3)) -g4*(gf2 |^2)*(P`3_3 |^2)*((R`1_3 |^3)+a*(R`1_3)*(R`3_3 |^2)+b*(R`3_3 |^3)) by VECTSP_1:11 .= g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3)) -g4*(gf2 |^2)*(P`3_3 |^2)*((R`1_3 |^3) +(a*(R`1_3)*(R`3_3 |^2)+b*(R`3_3 |^3))) by ALGSTR_1:7 .= g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3)) -(g4*(gf2 |^2)*(P`3_3 |^2)*(R`1_3 |^3)+g4*(gf2 |^2)*(P`3_3 |^2) *(a*(R`1_3)*(R`3_3 |^2)+b*(R`3_3 |^3))) by VECTSP_1:4 .= g4*(gf2 |^2)*(P`3_3 |^2)*((R`2_3 |^2)*(R`3_3)) -g4*(gf2 |^2)*(P`3_3 |^2)*(a*(R`1_3)*(R`3_3 |^2)+b*(R`3_3 |^3)) -g4*(gf2 |^2)*(P`3_3 |^2)*(R`1_3 |^3) by VECTSP_1:17 .= 0.GF(p) by E5,RLVECT_1:5; end; definition let p be 5_or_greater Prime, z be Element of EC_WParam p; func addell_ProjCo(z,p) -> Function of [:EC_SetProjCo(z`1,z`2,p),EC_SetProjCo(z`1,z`2,p):], EC_SetProjCo(z`1,z`2,p) means for P, Q, O being Element of EC_SetProjCo(z`1,z`2,p) st O = [0,1,0] holds (P _EQ_ O implies it.(P,Q) = Q) & ((Q _EQ_ O & not P _EQ_ O) implies it.(P,Q) = P) & ((not P _EQ_ O & not Q _EQ_ O & not P _EQ_ Q) implies for g2, gf1, gf2, gf3 being Element of GF(p) st g2 = 2 mod p & gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3) & gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3) & gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3) holds it.(P,Q) = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)]) & ((not P _EQ_ O & not Q _EQ_ O & P _EQ_ Q) implies for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of GF(p) st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = (z`1)*(P`3_3 |^2) + g3*(P`1_3 |^2) & gf2 = P`2_3*(P`3_3) & gf3 = P`1_3*(P`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 holds it.(P,Q) = [g2*gf4*gf2, gf1*(g4 * gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)]); existence proof set a=z`1; set b=z`2; A1:p > 2+1 & Disc(a,b,p) <> 0.GF(p) by LMZ1Z2; defpred P[Element of EC_SetProjCo(z`1,z`2,p), Element of EC_SetProjCo(z`1,z`2,p),set] means for O being Element of EC_SetProjCo(z`1,z`2,p) st O = [0,1,0] holds ($1 _EQ_ O implies $3 = $2) & (($2 _EQ_ O & not $1 _EQ_ O) implies $3 = $1) & ((not $1 _EQ_ O & not $2 _EQ_ O & not $1 _EQ_ $2) implies for g2, gf1, gf2, gf3 being Element of GF(p) st g2 = 2 mod p & gf1 = $2`2_3*($1`3_3) - $1`2_3*($2`3_3) & gf2 = $2`1_3*($1`3_3) - $1`1_3*($2`3_3) & gf3 = (gf1 |^2)*($1`3_3)*($2`3_3) - (gf2 |^3) - g2*(gf2 |^2)*($1`1_3)*($2`3_3) holds $3 = [gf2*gf3, gf1 * ((gf2 |^2)*($1`1_3)*($2`3_3)-gf3) - (gf2 |^3)*($1`2_3)*($2`3_3), (gf2 |^3)*($1`3_3)*($2`3_3)]) & ((not $1 _EQ_ O & not $2 _EQ_ O & $1 _EQ_ $2) implies for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of GF(p) st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = a*($1`3_3 |^2) + g3*($1`1_3 |^2) & gf2 = $1`2_3*($1`3_3) & gf3 = $1`1_3*($1`2_3)*gf2 & gf4 = (gf1 |^2) - g8*gf3 holds $3 = [g2*gf4*gf2, gf1*(g4 * gf3-gf4) - g8*($1`2_3 |^2)*(gf2 |^2), g8*(gf2 |^3)]); A2: for P,Q being Element of EC_SetProjCo(z`1,z`2,p) ex R being Element of EC_SetProjCo(z`1,z`2,p) st P[P, Q, R] proof let P,Q be Element of EC_SetProjCo(z`1,z`2,p); consider PP be Element of ProjCo(GF(p)) such that B1: PP = P & PP in EC_SetProjCo(z`1,z`2,p); B2: PP`1_3 = P`1_3 & PP`2_3 = P`2_3 & PP`3_3 = P`3_3 by B1,ThECSet2; consider QQ be Element of ProjCo(GF(p)) such that B3: QQ = Q & QQ in EC_SetProjCo(z`1,z`2,p); B4: QQ`1_3 = Q`1_3 & QQ`2_3 = Q`2_3 & QQ`3_3 = Q`3_3 by B3,ThECSet2; set O =[0,1,0]; reconsider O as Element of EC_SetProjCo(z`1,z`2,p) by EC_PF_1:42; consider OO be Element of ProjCo(GF(p)) such that B5: OO = O & OO in EC_SetProjCo(z`1,z`2,p); per cases; suppose B6: P _EQ_ O; take Q; thus thesis by B6; end; suppose B6: Q _EQ_ O & not P _EQ_ O; take P; thus thesis by B6; end; suppose B6: not P _EQ_ O & not Q _EQ_ O & not P _EQ_ Q; B7: OO`3_3 = 0 by B5,MCART_1:def 7; rep_pt(PP) <> rep_pt(OO) by B1,B5,B6,ThRepPoint4; then rep_pt(PP) <> [0, 1, 0] by B7,DefRepPoint; then BB: (rep_pt(PP))`3_3 <> 0 by ThRepPoint2; then B8: P`3_3 <> 0 by B2,ThRepPoint3; rep_pt(QQ) <> rep_pt(OO) by B3,B5,B6,ThRepPoint4; then rep_pt(QQ) <> [0, 1, 0] by B7,DefRepPoint; then (rep_pt(QQ))`3_3 <> 0 by ThRepPoint2; then B9: Q`3_3 <> 0 by B4,ThRepPoint3; reconsider g2 = 2 mod p as Element of GF(p) by EC_PF_1:14; set gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3); set gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3); set gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3); reconsider gf1,gf2,gf3 as Element of GF(p); set R = [gf2*gf3, gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3), (gf2 |^3)*(P`3_3)*(Q`3_3)]; reconsider R as Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):]; per cases; suppose C1: P _EQ_ compell_ProjCo(z,p).Q; then P`1_3*(Q`3_3) = Q`1_3*(P`3_3) by B8,B9,ThECEQ2; then C2: gf2 = 0.GF(p) by VECTSP_1:19; then C3: gf2 |^2 = 0.GF(p) & gf2 |^3 = 0.GF(p) by ThGF14; P`2_3*(Q`3_3) <> Q`2_3*(P`3_3) by B6,C1,ThECEQ4; then gf1 <> 0.GF(p) by VECTSP_1:19; then C4: gf1 <> 0 by EC_PF_1:11; then C5: gf1 |^2 <> 0 by EC_PF_1:25; C6: gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (0.GF(p) + g2*(0.GF(p))*(P`1_3)*(Q`3_3)) by C3,VECTSP_1:17 .= (gf1 |^2)*(P`3_3)*(Q`3_3) - (0.GF(p) + (g2*(0.GF(p)))*(P`1_3*(Q`3_3))) by GROUP_1:def 3 .= (gf1 |^2)*(P`3_3)*(Q`3_3) - (0.GF(p) + (0.GF(p))*(P`1_3*(Q`3_3))) by VECTSP_1:6 .= (gf1 |^2)*(P`3_3)*(Q`3_3) - (0.GF(p) + 0.GF(p)) by VECTSP_1:7 .= (gf1 |^2)*(P`3_3)*(Q`3_3) - 0.GF(p) by ALGSTR_1:7 .= (gf1 |^2)*(P`3_3)*(Q`3_3) by VECTSP_1:18 .= (gf1 |^2)*(P`3_3*(Q`3_3)) by GROUP_1:def 3; P`3_3*(Q`3_3) <> 0 by B8,B9,EC_PF_1:20; then gf3 <> 0 by C5,C6,EC_PF_1:20; then gf1*gf3 <> 0 by C4,EC_PF_1:20; then C7: gf1*gf3 <> 0.GF(p) by EC_PF_1:11; gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3) = gf1*(0.GF(p)*(P`1_3*(Q`3_3))-gf3)-(0.GF(p)*(P`2_3)*(Q`3_3)) by C3,GROUP_1:def 3 .= gf1*(0.GF(p)*(P`1_3*(Q`3_3))-gf3)-(0.GF(p)*(P`2_3*(Q`3_3))) by GROUP_1:def 3 .= gf1*(0.GF(p)-gf3)-(0.GF(p)*(P`2_3*(Q`3_3))) by VECTSP_1:12 .= gf1*(0.GF(p)-gf3)-0.GF(p) by VECTSP_1:12 .= gf1*(0.GF(p)-gf3) by VECTSP_1:18 .= gf1*(-gf3) by VECTSP_1:18 .= -(gf1*gf3) by VECTSP_1:8; then gf1 * ((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) - (gf2 |^3)*(P`2_3)*(Q`3_3) <> 0.GF(p) by C7,VECTSP_2:3; then C8: R`2_3 <> 0.GF(p) by MCART_1:def 6; then R`2_3 <> 0 by EC_PF_1:11; then R <> [0,0,0] by MCART_1:def 6; then not R in {[0,0,0]} by TARSKI:def 1; then R in [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):] \ {[0,0,0]} by XBOOLE_0:def 5; then reconsider R as Element of ProjCo(GF(p)) by EC_PF_1:40; R in EC_SetProjCo(a,b,p) proof R`1_3 = gf2*gf3 by MCART_1:def 5; then D1: R`1_3 = 0.GF(p) by C2,VECTSP_1:12; R`3_3 = (gf2 |^3)*(P`3_3)*(Q`3_3) by MCART_1:def 7 .= (gf2 |^3)*(P`3_3*(Q`3_3)) by GROUP_1:def 3; then D2: R`3_3 = 0.GF(p) by C3,VECTSP_1:12; set d = R`2_3; reconsider d as Element of GF(p); D4: OO`1_3 = 0 & OO`2_3 = 1 & OO`3_3 = 0 by B5,MCART_1:def 5,def 6 ,def 7; D5: d*(OO`1_3) = 0 by D4,EC_PF_1:20 .= R`1_3 by D1,EC_PF_1:11; D6: d*(OO`3_3) = 0 by D4,EC_PF_1:20 .= R`3_3 by D2,EC_PF_1:11; d*(OO`2_3) = d*1.GF(p) by D4,EC_PF_1:12 .= R`2_3 by VECTSP_1:def 6; hence R in EC_SetProjCo(a,b,p) by A1,B5,C8,D5,D6,EC_PF_1:45; end; then reconsider R as Element of EC_SetProjCo(a,b,p); take R; thus thesis by B6; end; suppose not P _EQ_ compell_ProjCo(z,p).Q; then P`1_3*(Q`3_3) <> Q`1_3*(P`3_3) by B6,B8,B9,ThECEQ2; then C2: gf2 <> 0.GF(p) by VECTSP_1:19; then gf2 <> 0 by EC_PF_1:11; then C3: gf2 |^3 <> 0 by EC_PF_1:25; P`3_3*(Q`3_3) <> 0 by B8,B9,EC_PF_1:20; then (gf2|^3)*(P`3_3*(Q`3_3)) <> 0 by C3,EC_PF_1:20; then (gf2|^3)*(P`3_3*(Q`3_3)) <> 0.GF(p) by EC_PF_1:11; then C5: (gf2|^3)*(P`3_3)*(Q`3_3) <> 0.GF(p) by GROUP_1:def 3; R`3_3 <> 0.GF(p) by C5,MCART_1:def 7; then R <> [0.GF(p),0.GF(p),0.GF(p)] by MCART_1:def 7; then not R in {[0.GF(p),0.GF(p),0.GF(p)]} by TARSKI:def 1; then R in [:the carrier of GF(p),the carrier of GF(p), the carrier of GF(p):] \ {[0.GF(p),0.GF(p),0.GF(p)]} by XBOOLE_0:def 5; then reconsider R as Element of ProjCo(GF(p)) by EC_PF_1:def 6; gf2*gf2 <> 0.GF(p) by C2,VECTSP_1:12; then C8: gf2 |^2 <> 0.GF(p) by EC_PF_1:22; P`3_3 |^2 <> 0 by B2,BB,ThRepPoint3,EC_PF_1:25; then C9: P`3_3 |^2 <> 0.GF(p) by EC_PF_1:11; C10: Q`3_3 <> 0.GF(p) by B9,EC_PF_1:11; gf2 |^2 *(P`3_3 |^2) <> 0.GF(p) by C8,C9,VECTSP_1:12; then C11: gf2 |^2 *(P`3_3 |^2)*(Q`3_3) <> 0.GF(p) by C10,VECTSP_1:12; EC_WEqProjCo(a,b,p).R = 0.GF(p) proof (gf2 |^2)*(P`3_3 |^2)*(Q`3_3)* ((R`2_3 |^2)*(R`3_3) - ((R`1_3 |^3) + a*(R`1_3)*(R`3_3 |^2) + b*(R`3_3 |^3))) = 0.GF(p) by ThAddEllEq5; then (gf2 |^2)*(P`3_3 |^2)*(Q`3_3)* EC_WEqProjCo(a,b,p).R = 0.GF(p) by EC_PF_1:def 8; hence thesis by C11,VECTSP_1:12; end; then R is_on_curve EC_WEqProjCo(a,b,p) by DefOnCurve; then reconsider R as Element of EC_SetProjCo(a,b,p) by ThOnCurve1; take R; thus thesis by B6; end; end; suppose B6: not P _EQ_ O & not Q _EQ_ O & P _EQ_ Q; B7: OO`3_3 = 0 by B5,MCART_1:def 7; rep_pt(PP) <> rep_pt(OO) by B1,B5,B6,ThRepPoint4; then rep_pt(PP) <> [0, 1, 0] by B7,DefRepPoint; then BB: (rep_pt(PP))`3_3 <> 0 by ThRepPoint2; then B8: P`3_3 <> 0 by B2,ThRepPoint3; reconsider g2 = 2 mod p as Element of GF(p) by EC_PF_1:14; reconsider g3 = 3 mod p as Element of GF(p) by EC_PF_1:14; reconsider g4 = 4 mod p as Element of GF(p) by EC_PF_1:14; reconsider g8 = 8 mod p as Element of GF(p) by EC_PF_1:14; set gf1 = a*(P`3_3 |^ 2) + g3*(P`1_3 |^ 2); set gf2 = P`2_3*(P`3_3); set gf3 = P`1_3*(P`2_3)*gf2; set gf4 = (gf1 |^ 2) - g8*gf3; reconsider gf1,gf2,gf3,gf4 as Element of GF(p); set R = [g2*gf4*gf2, gf1*(g4*gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^2), g8*(gf2 |^ 3)]; reconsider R as Element of [:the carrier of GF(p), the carrier of GF(p), the carrier of GF(p):]; per cases; suppose C1: P`2_3 = 0; C2: gf2 = 0 by C1,EC_PF_1:20; then C3: gf3 = 0 by EC_PF_1:20; C4: gf2 = 0.GF(p) by C2,EC_PF_1:11; C5: gf3 = 0.GF(p) by C3,EC_PF_1:11; C6: gf1 <> 0 by B2,BB,C1,ThRepPoint3,ThNonSingular; then C7: gf1 <> 0.GF(p) by EC_PF_1:11; gf4 = (gf1 |^2)-0.GF(p) by C5,VECTSP_1:6 .= (gf1 |^2) by VECTSP_1:18; then gf4 <> 0 by C6,EC_PF_1:25; then C8: gf4 <> 0.GF(p) by EC_PF_1:11; R`2_3 = gf1*(g4*gf3-gf4)-g8*(P`2_3|^2)*(gf2|^2) by MCART_1:def 6 .= gf1*(g4*0.GF(p)-gf4)-g8*(P`2_3|^2)*(gf2*gf2) by C5,EC_PF_1:22 .= gf1*(0.GF(p)-gf4)-g8*(P`2_3|^2)*(0.GF(p)*0.GF(p)) by C4,VECTSP_1:12 .= gf1*(-gf4)-g8*(P`2_3|^2)*(0.GF(p)*0.GF(p)) by VECTSP_1:18 .= gf1*(-gf4)-g8*(P`2_3|^2)*0.GF(p) by VECTSP_1:12 .= gf1*(-gf4)-0.GF(p) by VECTSP_1:12 .= gf1*(-gf4) by VECTSP_1:18 .= -(gf1*gf4) by VECTSP_1:8; then -R`2_3 = gf1*gf4 by RLVECT_1:17; then -R`2_3 <> 0.GF(p) by C7,C8,VECTSP_1:12; then C9: R`2_3 <> 0.GF(p) by VECTSP_2:3; then R <> [0.GF(p),0.GF(p),0.GF(p)] by MCART_1:def 6; then not R in {[0.GF(p),0.GF(p),0.GF(p)]} by TARSKI:def 1; then R in [:the carrier of GF(p),the carrier of GF(p), the carrier of GF(p):] \ {[0.GF(p),0.GF(p),0.GF(p)]} by XBOOLE_0:def 5; then reconsider R as Element of ProjCo(GF(p)) by EC_PF_1:def 6; R in EC_SetProjCo(a,b,p) proof D1: R`1_3 = g2*gf4*gf2 by MCART_1:def 5 .= 0.GF(p) by C4,VECTSP_1:12; D2: gf2 |^3 = 0.GF(p) by C2,ThGF14,EC_PF_1:11; D3: R`3_3 = g8*(gf2 |^3) by MCART_1:def 7 .= 0.GF(p) by D2,VECTSP_1:12; set d = R`2_3; reconsider d as Element of GF(p); D4: OO`1_3 = 0 & OO`2_3 = 1 & OO`3_3 = 0 by B5,MCART_1:def 5,def 6 ,def 7; D5: d*(OO`1_3) = 0 by D4,EC_PF_1:20 .= R`1_3 by D1,EC_PF_1:11; D6: d*(OO`3_3) = 0 by D4,EC_PF_1:20 .= R`3_3 by D3,EC_PF_1:11; d*(OO`2_3) = d*1.GF(p) by D4,EC_PF_1:12 .= R`2_3 by VECTSP_1:def 6; hence R in EC_SetProjCo(a,b,p) by A1,B5,C9,D5,D6,EC_PF_1:45; end; then reconsider R as Element of EC_SetProjCo(z`1,z`2,p); take R; thus thesis by B6; end; suppose C1: P`2_3 <> 0; C2: gf2 <> 0 by B8,C1,EC_PF_1:20; then (gf2 |^3) <> 0 by EC_PF_1:25; then C3: (gf2 |^3) <> 0.GF(p) by EC_PF_1:11; C4: g4 = (2*2) mod p .= g2*g2 by EC_PF_1:18; X: p > 2 by A1,NAT_1:13; g8 = (4*2) mod p .= g4*g2 by EC_PF_1:18 .= (g2|^2)*g2 by C4,EC_PF_1:22 .= g2|^(2+1) by EC_PF_1:24 .= g2|^3; then C5: g8 <> 0.GF(p) by ThGFX,X; R`3_3 = g8*(gf2 |^3) by MCART_1:def 7; then R`3_3 <> 0.GF(p) by C3,C5,VECTSP_1:12; then R <> [0.GF(p),0.GF(p),0.GF(p)] by MCART_1:def 7; then not R in {[0.GF(p),0.GF(p),0.GF(p)]} by TARSKI:def 1; then R in [:the carrier of GF(p),the carrier of GF(p), the carrier of GF(p):] \ {[0.GF(p),0.GF(p),0.GF(p)]} by XBOOLE_0:def 5; then reconsider R as Element of ProjCo(GF(p)) by EC_PF_1:def 6; g4 = g2 |^2 by C4,EC_PF_1:22; then C7: g4 <> 0.GF(p) by ThGFX,X; gf2 |^2 <> 0 by C2,EC_PF_1:25; then C8: gf2 |^2 <> 0.GF(p) by EC_PF_1:11; P`3_3 |^2 <> 0 by B2,BB,ThRepPoint3,EC_PF_1:25; then C9: P`3_3 |^2 <> 0.GF(p) by EC_PF_1:11; g4 * gf2 |^2 <> 0.GF(p) by C7,C8,VECTSP_1:12; then C10: g4 * gf2 |^2 * (P`3_3 |^2) <> 0.GF(p) by C9,VECTSP_1:12; EC_WEqProjCo(a,b,p).R = 0.GF(p) proof g4*(gf2 |^2)*(P`3_3 |^2)* ((R`2_3 |^2)*(R`3_3) - ((R`1_3 |^3) + a*(R`1_3)*(R`3_3 |^2) + b*(R`3_3 |^3))) = 0.GF(p) by ThDobEllEq5; then g4*(gf2 |^2)*(P`3_3 |^2)* EC_WEqProjCo(a,b,p).R = 0.GF(p) by EC_PF_1:def 8; hence thesis by C10,VECTSP_1:12; end; then R is_on_curve EC_WEqProjCo(a,b,p) by DefOnCurve; then reconsider R as Element of EC_SetProjCo(a,b,p) by ThOnCurve1; take R; thus thesis by B6; end; end; end; consider f being Function of [:EC_SetProjCo(z`1,z`2,p),EC_SetProjCo(z`1,z`2,p):], EC_SetProjCo(z`1,z`2,p) such that A3: for P,Q being Element of EC_SetProjCo(z`1,z`2,p) holds P[P,Q,f.(P,Q)] from BINOP_1:sch 3(A2); take f; thus thesis by A3; end; uniqueness proof set a=z`1; set b=z`2; defpred P[Element of EC_SetProjCo(z`1,z`2,p), Element of EC_SetProjCo(z`1,z`2,p), set] means for O being Element of EC_SetProjCo(z`1,z`2,p) st O = [0,1,0] holds ($1 _EQ_ O implies $3 = $2) & (($2 _EQ_ O & not $1 _EQ_ O) implies $3 = $1) & ((not $1 _EQ_ O & not $2 _EQ_ O & not $1 _EQ_ $2) implies for g2, gf1, gf2, gf3 being Element of GF(p) st g2 = 2 mod p & gf1 = $2`2_3*($1`3_3) - $1`2_3*($2`3_3) & gf2 = $2`1_3*($1`3_3) - $1`1_3*($2`3_3) & gf3 = (gf1 |^2)*($1`3_3)*($2`3_3) - (gf2 |^3) - g2*(gf2 |^2)*($1`1_3)*($2`3_3) holds $3 = [gf2*gf3, gf1 * ((gf2 |^2)*($1`1_3)*($2`3_3)-gf3) - (gf2 |^3)*($1`2_3)*($2`3_3), (gf2|^3)*($1`3_3)*($2`3_3)]) & ((not $1 _EQ_ O & not $2 _EQ_ O & $1 _EQ_ $2) implies for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of GF(p) st g2 = 2 mod p & g3 = 3 mod p & g4 = 4 mod p & g8 = 8 mod p & gf1 = a*($1`3_3 |^ 2) + g3*($1`1_3 |^ 2) & gf2 = $1`2_3*($1`3_3) & gf3 = $1`1_3*($1`2_3)*gf2 & gf4 = (gf1 |^ 2) - g8*gf3 holds $3 = [g2*gf4*gf2, gf1*(g4 * gf3-gf4) - g8*($1`2_3 |^2)*(gf2 |^ 2), g8*(gf2 |^ 3)]); for o1,o2 being Function of [:EC_SetProjCo(z`1,z`2,p), EC_SetProjCo(z`1,z`2,p):], EC_SetProjCo(z`1,z`2,p) st (for P, Q being Element of EC_SetProjCo(z`1,z`2,p) holds P[P,Q,o1.(P,Q)]) & (for P, Q being Element of EC_SetProjCo(z`1,z`2,p) holds P[P,Q,o2.(P,Q)]) holds o1 = o2 proof let o1, o2 be Function of [:EC_SetProjCo(z`1,z`2,p),EC_SetProjCo(z`1,z`2,p):], EC_SetProjCo(z`1,z`2,p) such that B1: for P, Q being Element of EC_SetProjCo(z`1,z`2,p) holds P[P, Q, o1.(P,Q)] and B2: for P, Q being Element of EC_SetProjCo(z`1,z`2,p) holds P[P, Q, o2.(P,Q)]; set O = [0, 1, 0]; reconsider O as Element of EC_SetProjCo(z`1,z`2,p) by EC_PF_1:42; for P, Q be Element of EC_SetProjCo(z`1,z`2,p) holds o1.(P,Q) = o2.(P,Q) proof let P, Q be Element of EC_SetProjCo(z`1,z`2,p); per cases; suppose C1: P _EQ_ O; o1.(P,Q) = Q by B1,C1; hence thesis by B2,C1; end; suppose C1: Q _EQ_ O & not P _EQ_ O; o1.(P,Q) = P by B1,C1; hence thesis by B2,C1; end; suppose C1: not P _EQ_ O & not Q _EQ_ O & not P _EQ_ Q; reconsider g2 = 2 mod p as Element of GF(p) by EC_PF_1:14; set gf1 = Q`2_3*(P`3_3) - P`2_3*(Q`3_3); set gf2 = Q`1_3*(P`3_3) - P`1_3*(Q`3_3); set gf3 = (gf1 |^2)*(P`3_3)*(Q`3_3) - (gf2 |^3) - g2*(gf2 |^2)*(P`1_3)*(Q`3_3); reconsider gf1, gf2, gf3 as Element of GF(p); o1.(P,Q) = [gf2*gf3, gf1*((gf2 |^2)*(P`1_3)*(Q`3_3)-gf3) -(gf2 |^3)*(P`2_3)*(Q`3_3), (gf2|^3)*(P`3_3)*(Q`3_3)] by B1,C1; hence thesis by B2,C1; end; suppose C1: not P _EQ_ O & not Q _EQ_ O & P _EQ_ Q; reconsider g2 = 2 mod p as Element of GF(p) by EC_PF_1:14; reconsider g3 = 3 mod p as Element of GF(p) by EC_PF_1:14; reconsider g4 = 4 mod p as Element of GF(p) by EC_PF_1:14; reconsider g8 = 8 mod p as Element of GF(p) by EC_PF_1:14; set gf1 = a*(P`3_3 |^ 2) + g3*(P`1_3 |^ 2); set gf2 = P`2_3*(P`3_3); set gf3 = P`1_3*(P`2_3)*gf2; set gf4 = (gf1 |^ 2) - g8*gf3; reconsider gf1, gf2, gf3, gf4 as Element of GF(p); o1.(P,Q) = [g2*gf4*gf2, gf1*(g4 * gf3-gf4) - g8*(P`2_3 |^2)*(gf2 |^ 2), g8*(gf2 |^ 3)] by B1,C1; hence thesis by B2,C1; end; end; hence thesis by BINOP_1:2; end; hence thesis; end; end; definition let p be 5_or_greater Prime, z be Element of EC_WParam p; let F be Function of [:EC_SetProjCo(z`1,z`2,p),EC_SetProjCo(z`1,z`2,p):], EC_SetProjCo(z`1,z`2,p); let Q,R be Element of EC_SetProjCo(z`1,z`2,p); redefine func F.(Q,R) -> Element of EC_SetProjCo(z`1,z`2,p); correctness proof F.(Q,R) in EC_SetProjCo(z`1,z`2,p); hence thesis; end; end;