:: EC_PF_2 semantic presentation begin theorem ThGF10: :: EC_PF_2:1 for K being Field for a1, a2 being Element of K st a1 = - a2 holds a1 |^ 2 = a2 |^ 2 proof let K be Field; ::_thesis: for a1, a2 being Element of K st a1 = - a2 holds a1 |^ 2 = a2 |^ 2 let a1, a2 be Element of K; ::_thesis: ( a1 = - a2 implies a1 |^ 2 = a2 |^ 2 ) assume AS: a1 = - a2 ; ::_thesis: a1 |^ 2 = a2 |^ 2 thus a1 |^ 2 = a1 * a1 by GROUP_1:51 .= a2 * a2 by AS, EC_PF_1:26 .= a2 |^ 2 by GROUP_1:51 ; ::_thesis: verum end; theorem :: EC_PF_2:2 for K being Field holds (1. K) " = 1. K proof let K be Field; ::_thesis: (1. K) " = 1. K 1. K <> 0. K ; then ((1. K) ") * (1. K) = 1. K by VECTSP_1:def_10; hence (1. K) " = 1. K by VECTSP_1:def_6; ::_thesis: verum end; theorem ThGF12: :: EC_PF_2:3 for K being Field for a2, a4, a1, a3 being Element of K st a2 <> 0. K & a4 <> 0. K & a1 * (a2 ") = a3 * (a4 ") holds a1 * a4 = a2 * a3 proof let K be Field; ::_thesis: for a2, a4, a1, a3 being Element of K st a2 <> 0. K & a4 <> 0. K & a1 * (a2 ") = a3 * (a4 ") holds a1 * a4 = a2 * a3 let a2, a4, a1, a3 be Element of K; ::_thesis: ( a2 <> 0. K & a4 <> 0. K & a1 * (a2 ") = a3 * (a4 ") implies a1 * a4 = a2 * a3 ) assume AS1: ( a2 <> 0. K & a4 <> 0. K ) ; ::_thesis: ( not a1 * (a2 ") = a3 * (a4 ") or a1 * a4 = a2 * a3 ) assume B1: a1 * (a2 ") = a3 * (a4 ") ; ::_thesis: a1 * a4 = a2 * a3 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 a1 * a4 = a2 * a3 ; ::_thesis: verum end; theorem ThGF13: :: EC_PF_2:4 for K being Field for a2, a4, a1, a3 being Element of K st a2 <> 0. K & a4 <> 0. K & a1 * a4 = a2 * a3 holds a1 * (a2 ") = a3 * (a4 ") proof let K be Field; ::_thesis: for a2, a4, a1, a3 being Element of K st a2 <> 0. K & a4 <> 0. K & a1 * a4 = a2 * a3 holds a1 * (a2 ") = a3 * (a4 ") let a2, a4, a1, a3 be Element of K; ::_thesis: ( a2 <> 0. K & a4 <> 0. K & a1 * a4 = a2 * a3 implies a1 * (a2 ") = a3 * (a4 ") ) assume AS1: ( a2 <> 0. K & a4 <> 0. K ) ; ::_thesis: ( not a1 * a4 = a2 * a3 or a1 * (a2 ") = a3 * (a4 ") ) assume B1: a1 * a4 = a2 * a3 ; ::_thesis: a1 * (a2 ") = a3 * (a4 ") (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 a1 * (a2 ") = a3 * (a4 ") ; ::_thesis: verum end; theorem ThGF14: :: EC_PF_2:5 for n being Nat for K being Field for a1 being Element of K st a1 = 0. K & n > 1 holds a1 |^ n = 0. K proof let n be Nat; ::_thesis: for K being Field for a1 being Element of K st a1 = 0. K & n > 1 holds a1 |^ n = 0. K let K be Field; ::_thesis: for a1 being Element of K st a1 = 0. K & n > 1 holds a1 |^ n = 0. K let a1 be Element of K; ::_thesis: ( a1 = 0. K & n > 1 implies a1 |^ n = 0. K ) assume AS1: a1 = 0. K ; ::_thesis: ( not n > 1 or a1 |^ n = 0. K ) assume AS2: n > 1 ; ::_thesis: a1 |^ n = 0. K n - 1 is Nat by AS2, NAT_1:20; then consider n1 being 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; ::_thesis: verum end; theorem :: EC_PF_2:6 for K being Field for a1, a2 being Element of K st a1 = - a2 holds - a1 = a2 proof let K be Field; ::_thesis: for a1, a2 being Element of K st a1 = - a2 holds - a1 = a2 let a1, a2 be Element of K; ::_thesis: ( a1 = - a2 implies - a1 = a2 ) assume AS: a1 = - a2 ; ::_thesis: - a1 = a2 a1 + a2 = 0. K by AS, VECTSP_1:16; hence - a1 = a2 by VECTSP_1:16; ::_thesis: verum end; theorem ThGF001: :: EC_PF_2:7 for K being Field for a1, a2, a3, a4 being Element of K holds ( ((a1 + a2) + a3) + a4 = ((a4 + a2) + a3) + a1 & ((a1 + a2) + a3) + a4 = ((a1 + a4) + a3) + a2 ) proof let K be Field; ::_thesis: for a1, a2, a3, a4 being Element of K holds ( ((a1 + a2) + a3) + a4 = ((a4 + a2) + a3) + a1 & ((a1 + a2) + a3) + a4 = ((a1 + a4) + a3) + a2 ) let a1, a2, a3, a4 be Element of K; ::_thesis: ( ((a1 + a2) + a3) + a4 = ((a4 + a2) + a3) + a1 & ((a1 + a2) + a3) + a4 = ((a1 + a4) + a3) + a2 ) 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 ; ::_thesis: ((a1 + a2) + a3) + a4 = ((a1 + a4) + a3) + a2 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 ; ::_thesis: verum end; theorem ThGF002: :: EC_PF_2:8 for K being Field for a1, a2, a3, a4, a5 being Element of K holds ( ((a1 + a2) + a3) + a4 = a1 + ((a2 + a3) + a4) & (((a1 + a2) + a3) + a4) + a5 = a1 + (((a2 + a3) + a4) + a5) ) proof let K be Field; ::_thesis: for a1, a2, a3, a4, a5 being Element of K holds ( ((a1 + a2) + a3) + a4 = a1 + ((a2 + a3) + a4) & (((a1 + a2) + a3) + a4) + a5 = a1 + (((a2 + a3) + a4) + a5) ) let a1, a2, a3, a4, a5 be Element of K; ::_thesis: ( ((a1 + a2) + a3) + a4 = a1 + ((a2 + a3) + a4) & (((a1 + a2) + a3) + a4) + a5 = a1 + (((a2 + a3) + a4) + a5) ) 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 ; ::_thesis: (((a1 + a2) + a3) + a4) + a5 = a1 + (((a2 + a3) + a4) + a5) 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 ; ::_thesis: verum end; theorem :: EC_PF_2:9 for K being Field for a1, a2, a3, a4, a5, a6 being Element of K holds ((((a1 + a2) + a3) + a4) + a5) + a6 = a1 + ((((a2 + a3) + a4) + a5) + a6) proof let K be Field; ::_thesis: for a1, a2, a3, a4, a5, a6 being Element of K holds ((((a1 + a2) + a3) + a4) + a5) + a6 = a1 + ((((a2 + a3) + a4) + a5) + a6) let a1, a2, a3, a4, a5, a6 be Element of K; ::_thesis: ((((a1 + a2) + a3) + a4) + a5) + a6 = a1 + ((((a2 + a3) + a4) + a5) + a6) 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 ; ::_thesis: verum end; theorem ThGF101: :: EC_PF_2:10 for K being Field for a1, a2, a3, a4 being Element of K holds ( ((a1 * a2) * a3) * a4 = ((a4 * a2) * a3) * a1 & ((a1 * a2) * a3) * a4 = ((a1 * a4) * a3) * a2 ) proof let K be Field; ::_thesis: for a1, a2, a3, a4 being Element of K holds ( ((a1 * a2) * a3) * a4 = ((a4 * a2) * a3) * a1 & ((a1 * a2) * a3) * a4 = ((a1 * a4) * a3) * a2 ) let a1, a2, a3, a4 be Element of K; ::_thesis: ( ((a1 * a2) * a3) * a4 = ((a4 * a2) * a3) * a1 & ((a1 * a2) * a3) * a4 = ((a1 * a4) * a3) * a2 ) 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 ; ::_thesis: ((a1 * a2) * a3) * a4 = ((a1 * a4) * a3) * a2 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 ; ::_thesis: verum end; theorem ThGF102: :: EC_PF_2:11 for K being Field for a1, a2, a3, a4, a5 being Element of K holds ( ((a1 * a2) * a3) * a4 = a1 * ((a2 * a3) * a4) & (((a1 * a2) * a3) * a4) * a5 = a1 * (((a2 * a3) * a4) * a5) ) proof let K be Field; ::_thesis: for a1, a2, a3, a4, a5 being Element of K holds ( ((a1 * a2) * a3) * a4 = a1 * ((a2 * a3) * a4) & (((a1 * a2) * a3) * a4) * a5 = a1 * (((a2 * a3) * a4) * a5) ) let a1, a2, a3, a4, a5 be Element of K; ::_thesis: ( ((a1 * a2) * a3) * a4 = a1 * ((a2 * a3) * a4) & (((a1 * a2) * a3) * a4) * a5 = a1 * (((a2 * a3) * a4) * a5) ) 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 ; ::_thesis: (((a1 * a2) * a3) * a4) * a5 = a1 * (((a2 * a3) * a4) * a5) 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 ; ::_thesis: verum end; theorem ThGF103: :: EC_PF_2:12 for K being Field for a1, a2, a3, a4, a5, a6 being Element of K holds ( ((((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 let K be Field; ::_thesis: for a1, a2, a3, a4, a5, a6 being Element of K holds ( ((((a1 * a2) * a3) * a4) * a5) * a6 = a1 * ((((a2 * a3) * a4) * a5) * a6) & ((((a1 * a2) * a3) * a4) * a5) * a6 = ((a1 * ((a2 * a3) * a4)) * a5) * a6 ) let a1, a2, a3, a4, a5, a6 be Element of K; ::_thesis: ( ((((a1 * a2) * a3) * a4) * a5) * a6 = a1 * ((((a2 * a3) * a4) * a5) * a6) & ((((a1 * a2) * a3) * a4) * a5) * a6 = ((a1 * ((a2 * a3) * a4)) * a5) * a6 ) 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 ; ::_thesis: ((((a1 * a2) * a3) * a4) * a5) * a6 = ((a1 * ((a2 * a3) * a4)) * a5) * a6 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 ; ::_thesis: verum end; theorem ThGF200: :: EC_PF_2:13 for n being Nat for K being Field for a1, a2, a3 being Element of K holds ((a1 * a2) * a3) |^ n = ((a1 |^ n) * (a2 |^ n)) * (a3 |^ n) proof let n be Nat; ::_thesis: for K being Field for a1, a2, a3 being Element of K holds ((a1 * a2) * a3) |^ n = ((a1 |^ n) * (a2 |^ n)) * (a3 |^ n) let K be Field; ::_thesis: for a1, a2, a3 being Element of K holds ((a1 * a2) * a3) |^ n = ((a1 |^ n) * (a2 |^ n)) * (a3 |^ n) let a1, a2, a3 be Element of K; ::_thesis: ((a1 * a2) * a3) |^ n = ((a1 |^ n) * (a2 |^ n)) * (a3 |^ n) thus ((a1 * a2) * a3) |^ n = ((a1 * a2) |^ n) * (a3 |^ n) by BINOM:9 .= ((a1 |^ n) * (a2 |^ n)) * (a3 |^ n) by BINOM:9 ; ::_thesis: verum end; theorem ThGF300: :: EC_PF_2:14 for K being Field for a1, a2, a3, a4 being Element of K holds ( 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 let K be Field; ::_thesis: for a1, a2, a3, a4 being Element of K holds ( 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) ) let a1, a2, a3, a4 be Element of K; ::_thesis: ( 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) ) thus a1 * ((a2 + a3) + a4) = (a1 * (a2 + a3)) + (a1 * a4) by VECTSP_1:4 .= ((a1 * a2) + (a1 * a3)) + (a1 * a4) by VECTSP_1:4 ; ::_thesis: ( 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) ) 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 ; ::_thesis: ( 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) ) 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 ; ::_thesis: ( 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) ) 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 ; ::_thesis: ( 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) ) 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 ; ::_thesis: ( 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) ) 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 ; ::_thesis: ( a1 * (((- a2) - a3) + a4) = ((- (a1 * a2)) - (a1 * a3)) + (a1 * a4) & a1 * (((- a2) - a3) - a4) = ((- (a1 * a2)) - (a1 * a3)) - (a1 * a4) ) 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 ; ::_thesis: a1 * (((- a2) - a3) - a4) = ((- (a1 * a2)) - (a1 * a3)) - (a1 * a4) 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 ; ::_thesis: verum end; theorem ThGFA3: :: EC_PF_2:15 for K being Field for a1, a2 being Element of K holds (a1 + a2) * (a1 - a2) = (a1 |^ 2) - (a2 |^ 2) proof let K be Field; ::_thesis: for a1, a2 being Element of K holds (a1 + a2) * (a1 - a2) = (a1 |^ 2) - (a2 |^ 2) let a1, a2 be Element of K; ::_thesis: (a1 + a2) * (a1 - a2) = (a1 |^ 2) - (a2 |^ 2) 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 ; ::_thesis: verum end; theorem :: EC_PF_2:16 for K being Field for a1, a2 being Element of K holds (a1 + a2) * (((a1 |^ 2) - (a1 * a2)) + (a2 |^ 2)) = (a1 |^ 3) + (a2 |^ 3) proof let K be Field; ::_thesis: for a1, a2 being Element of K holds (a1 + a2) * (((a1 |^ 2) - (a1 * a2)) + (a2 |^ 2)) = (a1 |^ 3) + (a2 |^ 3) let a1, a2 be Element of K; ::_thesis: (a1 + a2) * (((a1 |^ 2) - (a1 * a2)) + (a2 |^ 2)) = (a1 |^ 3) + (a2 |^ 3) 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 ; ::_thesis: verum end; theorem ThGFA5: :: EC_PF_2:17 for K being Field for a1, a2 being Element of K holds (a1 - a2) * (((a1 |^ 2) + (a1 * a2)) + (a2 |^ 2)) = (a1 |^ 3) - (a2 |^ 3) proof let K be Field; ::_thesis: for a1, a2 being Element of K holds (a1 - a2) * (((a1 |^ 2) + (a1 * a2)) + (a2 |^ 2)) = (a1 |^ 3) - (a2 |^ 3) let a1, a2 be Element of K; ::_thesis: (a1 - a2) * (((a1 |^ 2) + (a1 * a2)) + (a2 |^ 2)) = (a1 |^ 3) - (a2 |^ 3) 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 ; ::_thesis: verum end; definition let n, p be natural number ; attrp is n _or_greater means :Defgt3: :: EC_PF_2:def 1 n <= p; end; :: deftheorem Defgt3 defines _or_greater EC_PF_2:def_1_:_ for n, p being natural number holds ( p is n _or_greater iff n <= p ); registration cluster epsilon-transitive epsilon-connected ordinal natural V11() V12() integer prime ext-real 5 _or_greater for set ; existence ex b1 being natural number st ( b1 is 5 _or_greater & b1 is prime ) proof take 5 ; ::_thesis: ( 5 is 5 _or_greater & 5 is prime ) thus ( 5 is 5 _or_greater & 5 is prime ) by Defgt3, PEPIN:59; ::_thesis: verum end; end; theorem ThGF3: :: EC_PF_2:18 for i, j being Integer for p being Prime for gi, gj, gij, a being 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 i, j be Integer; ::_thesis: for p being Prime for gi, gj, gij, a being 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 let p be Prime; ::_thesis: for gi, gj, gij, a being 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 let gi, gj, gij, a be Element of (GF p); ::_thesis: ( gi = i mod p & gj = j mod p & gij = (i + j) mod p implies (gi * a) + (gj * a) = gij * a ) assume A1: ( gi = i mod p & gj = j mod p & gij = (i + j) mod p ) ; ::_thesis: (gi * a) + (gj * a) = gij * a (gi + gj) * a = gij * a by A1, EC_PF_1:15; hence (gi * a) + (gj * a) = gij * a by VECTSP_1:4; ::_thesis: verum end; theorem ThGF4: :: EC_PF_2:19 for i, j being Integer for p being Prime for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & j = i + 1 holds (gi * a) + a = gj * a proof let i, j be Integer; ::_thesis: for p being Prime for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & j = i + 1 holds (gi * a) + a = gj * a let p be Prime; ::_thesis: for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & j = i + 1 holds (gi * a) + a = gj * a let gi, gj, a be Element of (GF p); ::_thesis: ( gi = i mod p & gj = j mod p & j = i + 1 implies (gi * a) + a = gj * a ) assume A1: ( gi = i mod p & gj = j mod p & j = i + 1 ) ; ::_thesis: (gi * a) + a = gj * a 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 (gi * a) + a = gj * a by VECTSP_1:def_6; ::_thesis: verum end; theorem ThGF5: :: EC_PF_2:20 for p being Prime for g2, a being Element of (GF p) st g2 = 2 mod p holds a + a = g2 * a proof let p be Prime; ::_thesis: for g2, a being Element of (GF p) st g2 = 2 mod p holds a + a = g2 * a let g2, a be Element of (GF p); ::_thesis: ( g2 = 2 mod p implies a + a = g2 * a ) assume A1: g2 = 2 mod p ; ::_thesis: a + a = g2 * a 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 a + a = g2 * a by VECTSP_1:def_6; ::_thesis: verum end; theorem ThGF6: :: EC_PF_2:21 for i, j being Integer for p being Prime for gi, gj, gij, a being 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 i, j be Integer; ::_thesis: for p being Prime for gi, gj, gij, a being 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 let p be Prime; ::_thesis: for gi, gj, gij, a being 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 let gi, gj, gij, a be Element of (GF p); ::_thesis: ( gi = i mod p & gj = j mod p & gij = (i - j) mod p implies (gi * a) - (gj * a) = gij * a ) assume A1: ( gi = i mod p & gj = j mod p & gij = (i - j) mod p ) ; ::_thesis: (gi * a) - (gj * a) = gij * a 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 (gi * a) - (gj * a) = gij * a by ALGSTR_1:7; ::_thesis: verum end; theorem ThGF7: :: EC_PF_2:22 for i, j being Integer for p being Prime for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & i = j + 1 holds (gi * a) - (gj * a) = a proof let i, j be Integer; ::_thesis: for p being Prime for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & i = j + 1 holds (gi * a) - (gj * a) = a let p be Prime; ::_thesis: for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & i = j + 1 holds (gi * a) - (gj * a) = a let gi, gj, a be Element of (GF p); ::_thesis: ( gi = i mod p & gj = j mod p & i = j + 1 implies (gi * a) - (gj * a) = a ) assume A1: ( gi = i mod p & gj = j mod p & i = j + 1 ) ; ::_thesis: (gi * a) - (gj * a) = a 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 (gi * a) - (gj * a) = a by VECTSP_1:def_6; ::_thesis: verum end; theorem ThGF8: :: EC_PF_2:23 for i, j being Integer for p being Prime for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & i = j + 1 holds (gi * a) - a = gj * a proof let i, j be Integer; ::_thesis: for p being Prime for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & i = j + 1 holds (gi * a) - a = gj * a let p be Prime; ::_thesis: for gi, gj, a being Element of (GF p) st gi = i mod p & gj = j mod p & i = j + 1 holds (gi * a) - a = gj * a let gi, gj, a be Element of (GF p); ::_thesis: ( gi = i mod p & gj = j mod p & i = j + 1 implies (gi * a) - a = gj * a ) assume A1: ( gi = i mod p & gj = j mod p & i = j + 1 ) ; ::_thesis: (gi * a) - a = gj * a 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 (gi * a) - a = gj * a by VECTSP_1:def_6; ::_thesis: verum end; theorem ThGF9: :: EC_PF_2:24 for p being Prime for g2, a being Element of (GF p) st g2 = 2 mod p holds (g2 * a) - a = a proof let p be Prime; ::_thesis: for g2, a being Element of (GF p) st g2 = 2 mod p holds (g2 * a) - a = a let g2, a be Element of (GF p); ::_thesis: ( g2 = 2 mod p implies (g2 * a) - a = a ) assume A1: g2 = 2 mod p ; ::_thesis: (g2 * a) - a = a 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 (g2 * a) - a = a by VECTSP_1:def_6; ::_thesis: verum end; theorem ThGFA1: :: EC_PF_2:25 for p being Prime for g2, a, b being Element of (GF p) st g2 = 2 mod p holds (a + b) |^ 2 = ((a |^ 2) + ((g2 * a) * b)) + (b |^ 2) proof let p be Prime; ::_thesis: for g2, a, b being Element of (GF p) st g2 = 2 mod p holds (a + b) |^ 2 = ((a |^ 2) + ((g2 * a) * b)) + (b |^ 2) let g2, a, b be Element of (GF p); ::_thesis: ( g2 = 2 mod p implies (a + b) |^ 2 = ((a |^ 2) + ((g2 * a) * b)) + (b |^ 2) ) assume A1: g2 = 2 mod p ; ::_thesis: (a + b) |^ 2 = ((a |^ 2) + ((g2 * a) * b)) + (b |^ 2) 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 ; ::_thesis: verum end; theorem ThGFA2: :: EC_PF_2:26 for p being Prime for g2, a, b being Element of (GF p) st g2 = 2 mod p holds (a - b) |^ 2 = ((a |^ 2) - ((g2 * a) * b)) + (b |^ 2) proof let p be Prime; ::_thesis: for g2, a, b being Element of (GF p) st g2 = 2 mod p holds (a - b) |^ 2 = ((a |^ 2) - ((g2 * a) * b)) + (b |^ 2) let g2, a, b be Element of (GF p); ::_thesis: ( g2 = 2 mod p implies (a - b) |^ 2 = ((a |^ 2) - ((g2 * a) * b)) + (b |^ 2) ) assume A1: g2 = 2 mod p ; ::_thesis: (a - b) |^ 2 = ((a |^ 2) - ((g2 * a) * b)) + (b |^ 2) 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 ; ::_thesis: verum end; theorem ThGFA6: :: EC_PF_2:27 for p being Prime for g2, a, b, c, d being 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 p be Prime; ::_thesis: for g2, a, b, c, d being 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)) let g2, a, b, c, d be Element of (GF p); ::_thesis: ( g2 = 2 mod p implies ((a * c) + (b * d)) |^ 2 = (((a |^ 2) * (c |^ 2)) + ((((g2 * a) * b) * c) * d)) + ((b |^ 2) * (d |^ 2)) ) assume A1: g2 = 2 mod p ; ::_thesis: ((a * c) + (b * d)) |^ 2 = (((a |^ 2) * (c |^ 2)) + ((((g2 * a) * b) * c) * d)) + ((b |^ 2) * (d |^ 2)) 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 ; ::_thesis: verum end; theorem ThGFX: :: EC_PF_2:28 for p being Prime for n being Nat for g2 being 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; ::_thesis: for n being Nat for g2 being Element of (GF p) st p > 2 & g2 = 2 mod p holds ( g2 <> 0. (GF p) & g2 |^ n <> 0. (GF p) ) let n be Nat; ::_thesis: for g2 being Element of (GF p) st p > 2 & g2 = 2 mod p holds ( g2 <> 0. (GF p) & g2 |^ n <> 0. (GF p) ) let g2 be Element of (GF p); ::_thesis: ( p > 2 & g2 = 2 mod p implies ( g2 <> 0. (GF p) & g2 |^ n <> 0. (GF p) ) ) assume that A1: p > 2 and A2: g2 = 2 mod p ; ::_thesis: ( g2 <> 0. (GF p) & g2 |^ n <> 0. (GF p) ) A3: g2 <> 0 by A1, A2, NAT_D:63; hence g2 <> 0. (GF p) by EC_PF_1:11; ::_thesis: g2 |^ n <> 0. (GF p) g2 |^ n <> 0 by A3, EC_PF_1:25; hence g2 |^ n <> 0. (GF p) by EC_PF_1:11; ::_thesis: verum end; theorem :: EC_PF_2:29 for p being Prime for n being Nat for g2, g3 being 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; ::_thesis: for n being Nat for g2, g3 being Element of (GF p) st p > 3 & g3 = 3 mod p holds ( g3 <> 0. (GF p) & g3 |^ n <> 0. (GF p) ) let n be Nat; ::_thesis: for g2, g3 being Element of (GF p) st p > 3 & g3 = 3 mod p holds ( g3 <> 0. (GF p) & g3 |^ n <> 0. (GF p) ) let g2, g3 be Element of (GF p); ::_thesis: ( p > 3 & g3 = 3 mod p implies ( g3 <> 0. (GF p) & g3 |^ n <> 0. (GF p) ) ) assume A1: p > 3 ; ::_thesis: ( not g3 = 3 mod p or ( g3 <> 0. (GF p) & g3 |^ n <> 0. (GF p) ) ) assume A3: g3 = 3 mod p ; ::_thesis: ( g3 <> 0. (GF p) & g3 |^ n <> 0. (GF p) ) A4: g3 <> 0 by A1, A3, NAT_D:63; hence g3 <> 0. (GF p) by EC_PF_1:11; ::_thesis: g3 |^ n <> 0. (GF p) g3 |^ n <> 0 by A4, EC_PF_1:25; hence g3 |^ n <> 0. (GF p) by EC_PF_1:11; ::_thesis: verum end; begin 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 :: EC_PF_2:def 2 { [a,b] where a, b is Element of (GF p) : Disc (a,b,p) <> 0. (GF p) } ; correctness coherence { [a,b] where a, b is Element of (GF p) : Disc (a,b,p) <> 0. (GF p) } is Subset of [: the carrier of (GF p), the carrier of (GF p):]; proof now__::_thesis:_for_x_being_set_st_x_in__{__[a,b]_where_a,_b_is_Element_of_(GF_p)_:_Disc_(a,b,p)_<>_0._(GF_p)__}__holds_ x_in_[:_the_carrier_of_(GF_p),_the_carrier_of_(GF_p):] let x be set ; ::_thesis: ( x in { [a,b] where a, b is Element of (GF p) : Disc (a,b,p) <> 0. (GF p) } implies x in [: the carrier of (GF p), the carrier of (GF p):] ) assume x in { [a,b] where a, b is Element of (GF p) : Disc (a,b,p) <> 0. (GF p) } ; ::_thesis: x in [: the carrier of (GF p), the carrier of (GF p):] then ex a, b being 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):] ; ::_thesis: verum end; hence { [a,b] where a, b is Element of (GF p) : Disc (a,b,p) <> 0. (GF p) } is Subset of [: the carrier of (GF p), the carrier of (GF p):] by TARSKI:def_3; ::_thesis: verum end; end; :: deftheorem defines EC_WParam EC_PF_2:def_2_:_ for p being 5 _or_greater Prime holds EC_WParam p = { [a,b] where a, b is Element of (GF p) : Disc (a,b,p) <> 0. (GF p) } ; registration let p be 5 _or_greater Prime; cluster EC_WParam p -> non empty ; coherence not EC_WParam p is empty proof ex a, b being 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 ((1. (GF p)),(0. (GF p)),p) = (g4 * ((1. (GF p)) |^ (2 + 1))) + (g27 * ((0. (GF p)) |^ 2)) by EC_PF_1:def_7 .= (g4 * (((1. (GF p)) |^ 2) * (1. (GF p)))) + (g27 * ((0. (GF p)) |^ 2)) by EC_PF_1:24 .= (g4 * (((1. (GF p)) |^ 2) * (1. (GF p)))) + (g27 * ((0. (GF p)) * (0. (GF p)))) by EC_PF_1:22 .= (g4 * (((1. (GF p)) * (1. (GF p))) * (1. (GF p)))) + (g27 * ((0. (GF p)) * (0. (GF p)))) by EC_PF_1:22 .= (g4 * ((1. (GF p)) * (1. (GF p)))) + (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 ((1. (GF p)),(0. (GF p)),p) <> 0. (GF p) by A4, A5, ThGFX; take 1. (GF p) ; ::_thesis: ex b being Element of (GF p) st [(1. (GF p)),b] in EC_WParam p take 0. (GF p) ; ::_thesis: [(1. (GF p)),(0. (GF p))] in EC_WParam p thus [(1. (GF p)),(0. (GF p))] in EC_WParam p by A6; ::_thesis: verum end; hence not EC_WParam p is empty ; ::_thesis: verum end; end; definition let p be 5 _or_greater Prime; let z be Element of EC_WParam p; :: original: `1 redefine funcz `1 -> Element of (GF p); correctness coherence z `1 is Element of (GF p); proof thus z `1 is Element of (GF p) ; ::_thesis: verum end; :: original: `2 redefine funcz `2 -> Element of (GF p); correctness coherence z `2 is Element of (GF p); proof thus z `2 is Element of (GF p) ; ::_thesis: verum end; end; theorem LMZ1Z2: :: EC_PF_2:30 for p being 5 _or_greater Prime for z being 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; ::_thesis: for z being Element of EC_WParam p holds ( p > 3 & Disc ((z `1),(z `2),p) <> 0. (GF p) ) let z be Element of EC_WParam p; ::_thesis: ( p > 3 & Disc ((z `1),(z `2),p) <> 0. (GF p) ) p >= 4 + 1 by Defgt3; hence p > 3 by XXREAL_0:2; ::_thesis: Disc ((z `1),(z `2),p) <> 0. (GF p) z in { [a,b] where a, b is Element of (GF p) : Disc (a,b,p) <> 0. (GF p) } ; then consider a, b being 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; ::_thesis: verum end; definition let p be Prime; let a, b be Element of (GF p); let P be Element of EC_SetProjCo (a,b,p); funcP `1_3 -> Element of (GF p) means :DefX: :: EC_PF_2:def 3 for px, py, pz being set st P = [px,py,pz] holds it = px; existence ex b1 being Element of (GF p) st for px, py, pz being set st P = [px,py,pz] holds b1 = px proof P is Element of ProjCo (GF p) ; then consider Px, Py, Pz being 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 ; ::_thesis: ( Px is Element of (GF p) & ( for px, py, pz being set st P = [px,py,pz] holds Px = px ) ) thus ( Px is Element of (GF p) & ( for px, py, pz being set st P = [px,py,pz] holds Px = px ) ) by A1, A2, XTUPLE_0:3; ::_thesis: verum end; uniqueness for b1, b2 being Element of (GF p) st ( for px, py, pz being set st P = [px,py,pz] holds b1 = px ) & ( for px, py, pz being set st P = [px,py,pz] holds b2 = px ) holds b1 = b2 proof let y, z be Element of (GF p); ::_thesis: ( ( for px, py, pz being set st P = [px,py,pz] holds y = px ) & ( for px, py, pz being set st P = [px,py,pz] holds z = px ) implies y = z ) assume A1: for px, py, pz being set st P = [px,py,pz] holds y = px ; ::_thesis: ( ex px, py, pz being set st ( P = [px,py,pz] & not z = px ) or y = z ) assume A2: for px, py, pz being set st P = [px,py,pz] holds z = px ; ::_thesis: y = z P is Element of ProjCo (GF p) ; then consider Px, Py, Pz being 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 y = z by A2, A4; ::_thesis: verum end; funcP `2_3 -> Element of (GF p) means :DefY: :: EC_PF_2:def 4 for px, py, pz being set st P = [px,py,pz] holds it = py; existence ex b1 being Element of (GF p) st for px, py, pz being set st P = [px,py,pz] holds b1 = py proof P is Element of ProjCo (GF p) ; then consider Px, Py, Pz being 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 ; ::_thesis: ( Py is Element of (GF p) & ( for px, py, pz being set st P = [px,py,pz] holds Py = py ) ) thus ( Py is Element of (GF p) & ( for px, py, pz being set st P = [px,py,pz] holds Py = py ) ) by A1, A2, XTUPLE_0:3; ::_thesis: verum end; uniqueness for b1, b2 being Element of (GF p) st ( for px, py, pz being set st P = [px,py,pz] holds b1 = py ) & ( for px, py, pz being set st P = [px,py,pz] holds b2 = py ) holds b1 = b2 proof let y, z be Element of (GF p); ::_thesis: ( ( for px, py, pz being set st P = [px,py,pz] holds y = py ) & ( for px, py, pz being set st P = [px,py,pz] holds z = py ) implies y = z ) assume A1: for px, py, pz being set st P = [px,py,pz] holds y = py ; ::_thesis: ( ex px, py, pz being set st ( P = [px,py,pz] & not z = py ) or y = z ) assume A2: for px, py, pz being set st P = [px,py,pz] holds z = py ; ::_thesis: y = z P is Element of ProjCo (GF p) ; then consider Px, Py, Pz being 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 y = z by A2, A4; ::_thesis: verum end; funcP `3_3 -> Element of (GF p) means :DefZ: :: EC_PF_2:def 5 for px, py, pz being set st P = [px,py,pz] holds it = pz; existence ex b1 being Element of (GF p) st for px, py, pz being set st P = [px,py,pz] holds b1 = pz proof P is Element of ProjCo (GF p) ; then consider Px, Py, Pz being 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 ; ::_thesis: ( Pz is Element of (GF p) & ( for px, py, pz being set st P = [px,py,pz] holds Pz = pz ) ) thus ( Pz is Element of (GF p) & ( for px, py, pz being set st P = [px,py,pz] holds Pz = pz ) ) by A1, A2, XTUPLE_0:3; ::_thesis: verum end; uniqueness for b1, b2 being Element of (GF p) st ( for px, py, pz being set st P = [px,py,pz] holds b1 = pz ) & ( for px, py, pz being set st P = [px,py,pz] holds b2 = pz ) holds b1 = b2 proof let y, z be Element of (GF p); ::_thesis: ( ( for px, py, pz being set st P = [px,py,pz] holds y = pz ) & ( for px, py, pz being set st P = [px,py,pz] holds z = pz ) implies y = z ) assume A1: for px, py, pz being set st P = [px,py,pz] holds y = pz ; ::_thesis: ( ex px, py, pz being set st ( P = [px,py,pz] & not z = pz ) or y = z ) assume A2: for px, py, pz being set st P = [px,py,pz] holds z = pz ; ::_thesis: y = z P is Element of ProjCo (GF p) ; then consider Px, Py, Pz being 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 y = z by A2, A4; ::_thesis: verum end; end; :: deftheorem DefX defines `1_3 EC_PF_2:def_3_:_ for p being Prime for a, b being Element of (GF p) for P being Element of EC_SetProjCo (a,b,p) for b5 being Element of (GF p) holds ( b5 = P `1_3 iff for px, py, pz being set st P = [px,py,pz] holds b5 = px ); :: deftheorem DefY defines `2_3 EC_PF_2:def_4_:_ for p being Prime for a, b being Element of (GF p) for P being Element of EC_SetProjCo (a,b,p) for b5 being Element of (GF p) holds ( b5 = P `2_3 iff for px, py, pz being set st P = [px,py,pz] holds b5 = py ); :: deftheorem DefZ defines `3_3 EC_PF_2:def_5_:_ for p being Prime for a, b being Element of (GF p) for P being Element of EC_SetProjCo (a,b,p) for b5 being Element of (GF p) holds ( b5 = P `3_3 iff for px, py, pz being set st P = [px,py,pz] holds b5 = pz ); theorem ThECSet1: :: EC_PF_2:31 for p being Prime for a, b being Element of (GF p) for P being Element of EC_SetProjCo (a,b,p) holds P = [(P `1_3),(P `2_3),(P `3_3)] proof let p be Prime; ::_thesis: for a, b being Element of (GF p) for P being Element of EC_SetProjCo (a,b,p) holds P = [(P `1_3),(P `2_3),(P `3_3)] let a, b be Element of (GF p); ::_thesis: for P being Element of EC_SetProjCo (a,b,p) holds P = [(P `1_3),(P `2_3),(P `3_3)] let P be Element of EC_SetProjCo (a,b,p); ::_thesis: P = [(P `1_3),(P `2_3),(P `3_3)] P is Element of ProjCo (GF p) ; then consider Px, Py, Pz being 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 ; ::_thesis: verum end; theorem ThECSet2: :: EC_PF_2:32 for p being Prime for a, b being Element of (GF p) for P being Element of EC_SetProjCo (a,b,p) for Q being 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; ::_thesis: for a, b being Element of (GF p) for P being Element of EC_SetProjCo (a,b,p) for Q being 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 ) ) let a, b be Element of (GF p); ::_thesis: for P being Element of EC_SetProjCo (a,b,p) for Q being 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 ) ) let P be Element of EC_SetProjCo (a,b,p); ::_thesis: for Q being 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 ) ) let Q be Element of ProjCo (GF p); ::_thesis: ( P = Q iff ( P `1_3 = Q `1_3 & P `2_3 = Q `2_3 & P `3_3 = Q `3_3 ) ) 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; ::_thesis: ( P `1_3 = Q `1_3 & P `2_3 = Q `2_3 & P `3_3 = Q `3_3 implies P = Q ) assume A5: ( P `1_3 = Q `1_3 & P `2_3 = Q `2_3 & P `3_3 = Q `3_3 ) ; ::_thesis: P = Q thus P = Q by A3, A5, ThECSet1; ::_thesis: verum end; theorem :: EC_PF_2:33 for p being Prime for a, b, Px, Py, Pz being Element of (GF p) for P being 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); predP is_on_curve CEQ means :DefOnCurve: :: EC_PF_2:def 6 CEQ . P = 0. (GF p); correctness ; end; :: deftheorem DefOnCurve defines is_on_curve EC_PF_2:def_6_:_ for p being Prime for P being Element of ProjCo (GF p) for CEQ being Function of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):],(GF p) holds ( P is_on_curve CEQ iff CEQ . P = 0. (GF p) ); theorem ThOnCurve1: :: EC_PF_2:34 for p being Prime for a, b being Element of (GF p) for P being Element of ProjCo (GF p) holds ( P is_on_curve EC_WEqProjCo (a,b,p) iff P is Element of EC_SetProjCo (a,b,p) ) proof let p be Prime; ::_thesis: for a, b being Element of (GF p) for P being Element of ProjCo (GF p) holds ( P is_on_curve EC_WEqProjCo (a,b,p) iff P is Element of EC_SetProjCo (a,b,p) ) let a, b be Element of (GF p); ::_thesis: for P being Element of ProjCo (GF p) holds ( P is_on_curve EC_WEqProjCo (a,b,p) iff P is Element of EC_SetProjCo (a,b,p) ) let P be Element of ProjCo (GF p); ::_thesis: ( P is_on_curve EC_WEqProjCo (a,b,p) iff P is Element of EC_SetProjCo (a,b,p) ) hereby ::_thesis: ( P is Element of EC_SetProjCo (a,b,p) implies P is_on_curve EC_WEqProjCo (a,b,p) ) assume P is_on_curve EC_WEqProjCo (a,b,p) ; ::_thesis: P is Element of EC_SetProjCo (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; ::_thesis: verum end; assume P is Element of EC_SetProjCo (a,b,p) ; ::_thesis: P is_on_curve EC_WEqProjCo (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 being 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; ::_thesis: verum end; theorem ThOnCurve2: :: EC_PF_2:35 for p being Prime for a, b being Element of (GF p) for P being 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; ::_thesis: for a, b being Element of (GF p) for P being 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) let a, b be Element of (GF p); ::_thesis: for P being 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) let P be Element of EC_SetProjCo (a,b,p); ::_thesis: (((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) consider PP being 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 (((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 A2, EC_PF_1:def_8; ::_thesis: verum 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: :: EC_PF_2:def 7 [((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 ( ( P `3_3 <> 0 implies [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] is Element of ProjCo (GF p) ) & ( P `3_3 = 0 implies [0,1,0] is Element of ProjCo (GF p) ) ) proof percases ( P `3_3 <> 0 or P `3_3 = 0 ) ; supposeA1: P `3_3 <> 0 ; ::_thesis: ( ( P `3_3 <> 0 implies [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] is Element of ProjCo (GF p) ) & ( P `3_3 = 0 implies [0,1,0] is Element of ProjCo (GF p) ) ) [((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 ( ( P `3_3 <> 0 implies [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] is Element of ProjCo (GF p) ) & ( P `3_3 = 0 implies [0,1,0] is Element of ProjCo (GF p) ) ) by A1, EC_PF_1:12; ::_thesis: verum end; supposeA1: P `3_3 = 0 ; ::_thesis: ( ( P `3_3 <> 0 implies [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] is Element of ProjCo (GF p) ) & ( P `3_3 = 0 implies [0,1,0] is Element of ProjCo (GF p) ) ) set Q = [0,1,0]; thus ( ( P `3_3 <> 0 implies [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] is Element of ProjCo (GF p) ) & ( P `3_3 = 0 implies [0,1,0] is Element of ProjCo (GF p) ) ) by A1, EC_PF_1:42; ::_thesis: verum end; end; end; consistency for b1 being Element of ProjCo (GF p) st P `3_3 <> 0 & P `3_3 = 0 holds ( b1 = [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] iff b1 = [0,1,0] ) ; end; :: deftheorem DefRepPoint defines rep_pt EC_PF_2:def_7_:_ for p being Prime for P being Element of ProjCo (GF p) holds ( ( 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 implies rep_pt P = [0,1,0] ) ); theorem ThRepPoint1: :: EC_PF_2:36 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P being 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; ::_thesis: for z being Element of EC_WParam p for P being 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) ) let z be Element of EC_WParam p; ::_thesis: for P being 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) ) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( rep_pt P _EQ_ P & rep_pt P in EC_SetProjCo ((z `1),(z `2),p) ) set a = z `1 ; set b = z `2 ; A1: ( p > 3 & Disc ((z `1),(z `2),p) <> 0. (GF p) ) by LMZ1Z2; consider PP being Element of ProjCo (GF p) such that A2: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),p) ) ; percases ( P `3_3 = 0 or P `3_3 <> 0 ) ; suppose P `3_3 = 0 ; ::_thesis: ( rep_pt P _EQ_ P & rep_pt P in EC_SetProjCo ((z `1),(z `2),p) ) then A3: PP `3_3 = 0 by A2, ThECSet2; consider Q being Element of ProjCo (GF p) such that A4: ( Q in EC_SetProjCo ((z `1),(z `2),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 ( rep_pt P _EQ_ P & rep_pt P in EC_SetProjCo ((z `1),(z `2),p) ) by A2, A4, A5, MCART_1:44; ::_thesis: verum end; suppose P `3_3 <> 0 ; ::_thesis: ( rep_pt P _EQ_ P & rep_pt P in EC_SetProjCo ((z `1),(z `2),p) ) then A3: PP `3_3 <> 0 by A2, ThECSet2; consider Q being Element of ProjCo (GF p) such that A4: ( Q in EC_SetProjCo ((z `1),(z `2),p) & Q _EQ_ PP ) and A5: Q `3_3 = 1 by A1, A2, A3, EC_PF_1:48; consider d being 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 ( rep_pt P _EQ_ P & rep_pt P in EC_SetProjCo ((z `1),(z `2),p) ) by A2, A3, A4, DefRepPoint; ::_thesis: verum end; end; end; theorem ThRepPoint2: :: EC_PF_2:37 for p being Prime for a, b being Element of (GF p) for P being Element of ProjCo (GF p) st (rep_pt P) `3_3 = 0 holds ( rep_pt P = [0,1,0] & P `3_3 = 0 ) proof let p be Prime; ::_thesis: for a, b being Element of (GF p) for P being Element of ProjCo (GF p) st (rep_pt P) `3_3 = 0 holds ( rep_pt P = [0,1,0] & P `3_3 = 0 ) let a, b be Element of (GF p); ::_thesis: for P being Element of ProjCo (GF p) st (rep_pt P) `3_3 = 0 holds ( rep_pt P = [0,1,0] & P `3_3 = 0 ) let P be Element of ProjCo (GF p); ::_thesis: ( (rep_pt P) `3_3 = 0 implies ( rep_pt P = [0,1,0] & P `3_3 = 0 ) ) assume A1: (rep_pt P) `3_3 = 0 ; ::_thesis: ( rep_pt P = [0,1,0] & P `3_3 = 0 ) hereby ::_thesis: P `3_3 = 0 assume A2: rep_pt P <> [0,1,0] ; ::_thesis: contradiction 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; ::_thesis: verum end; assume A3: P `3_3 <> 0 ; ::_thesis: contradiction 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; ::_thesis: verum end; theorem ThRepPoint3: :: EC_PF_2:38 for p being Prime for a, b being Element of (GF p) for P being Element of ProjCo (GF p) st (rep_pt P) `3_3 <> 0 holds ( 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; ::_thesis: for a, b being Element of (GF p) for P being Element of ProjCo (GF p) st (rep_pt P) `3_3 <> 0 holds ( rep_pt P = [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] & P `3_3 <> 0 ) let a, b be Element of (GF p); ::_thesis: for P being Element of ProjCo (GF p) st (rep_pt P) `3_3 <> 0 holds ( rep_pt P = [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] & P `3_3 <> 0 ) let P be Element of ProjCo (GF p); ::_thesis: ( (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 ) ) assume A1: (rep_pt P) `3_3 <> 0 ; ::_thesis: ( rep_pt P = [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] & P `3_3 <> 0 ) hereby ::_thesis: P `3_3 <> 0 assume A2: rep_pt P <> [((P `1_3) * ((P `3_3) ")),((P `2_3) * ((P `3_3) ")),1] ; ::_thesis: contradiction rep_pt P = [0,1,0] by A2, DefRepPoint; hence contradiction by A1, MCART_1:def_7; ::_thesis: verum end; assume A3: P `3_3 = 0 ; ::_thesis: contradiction rep_pt P = [0,1,0] by A3, DefRepPoint; hence contradiction by A1, MCART_1:def_7; ::_thesis: verum end; theorem ThRepPoint4: :: EC_PF_2:39 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being 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; ::_thesis: for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds ( P _EQ_ Q iff rep_pt P = rep_pt Q ) let z be Element of EC_WParam p; ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds ( P _EQ_ Q iff rep_pt P = rep_pt Q ) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P _EQ_ Q iff rep_pt P = rep_pt Q ) set a = z `1 ; set b = z `2 ; consider PP being Element of ProjCo (GF p) such that A2: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),p) ) ; consider QQ being Element of ProjCo (GF p) such that A3: ( QQ = Q & QQ in EC_SetProjCo ((z `1),(z `2),p) ) ; set RP = rep_pt PP; set RQ = rep_pt QQ; hereby ::_thesis: ( rep_pt P = rep_pt Q implies P _EQ_ Q ) assume B1: P _EQ_ Q ; ::_thesis: rep_pt P = rep_pt Q rep_pt PP _EQ_ P by A2, ThRepPoint1; then B2: rep_pt PP _EQ_ Q by B1, EC_PF_1:44; rep_pt QQ _EQ_ Q by A3, ThRepPoint1; then rep_pt PP _EQ_ rep_pt QQ by B2, EC_PF_1:44; then consider a being Element of (GF p) such that B3: a <> 0. (GF p) and B4: ( (rep_pt PP) `1_3 = a * ((rep_pt QQ) `1_3) & (rep_pt PP) `2_3 = a * ((rep_pt QQ) `2_3) & (rep_pt PP) `3_3 = a * ((rep_pt QQ) `3_3) ) by EC_PF_1:def_10; percases ( PP `3_3 = 0 or PP `3_3 <> 0 ) ; supposeC1: PP `3_3 = 0 ; ::_thesis: rep_pt P = rep_pt Q then rep_pt PP = [0,1,0] by DefRepPoint; then (rep_pt PP) `3_3 = 0 by MCART_1:def_7 .= 0. (GF p) by EC_PF_1:11 ; then (rep_pt QQ) `3_3 = 0. (GF p) by B3, B4, VECTSP_1:12 .= 0 by EC_PF_1:11 ; then rep_pt QQ = [0,1,0] by ThRepPoint2; hence rep_pt P = rep_pt Q by A2, A3, C1, DefRepPoint; ::_thesis: verum end; suppose PP `3_3 <> 0 ; ::_thesis: rep_pt P = rep_pt Q then rep_pt PP = [((PP `1_3) * ((PP `3_3) ")),((PP `2_3) * ((PP `3_3) ")),1] by DefRepPoint; then C1: (rep_pt PP) `3_3 = 1 by MCART_1:def_7 .= 1. (GF p) by EC_PF_1:12 ; then (rep_pt QQ) `3_3 <> 0. (GF p) by B4, VECTSP_1:12; then (rep_pt QQ) `3_3 <> 0 by EC_PF_1:11; then rep_pt QQ = [((QQ `1_3) * ((QQ `3_3) ")),((QQ `2_3) * ((QQ `3_3) ")),1] by ThRepPoint3; then (rep_pt QQ) `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 ( (rep_pt PP) `1_3 = (rep_pt QQ) `1_3 & (rep_pt PP) `2_3 = (rep_pt QQ) `2_3 & (rep_pt PP) `3_3 = (rep_pt QQ) `3_3 ) by B4, VECTSP_1:def_8; then rep_pt PP = [((rep_pt QQ) `1_3),((rep_pt QQ) `2_3),((rep_pt QQ) `3_3)] by MCART_1:44 .= rep_pt QQ by MCART_1:44 ; hence rep_pt P = rep_pt Q by A2, A3; ::_thesis: verum end; end; end; assume B1: rep_pt P = rep_pt Q ; ::_thesis: P _EQ_ Q B3: rep_pt QQ _EQ_ P by A3, B1, ThRepPoint1; rep_pt QQ _EQ_ Q by A3, ThRepPoint1; hence P _EQ_ Q by B3, EC_PF_1:44; ::_thesis: verum end; begin LmCOMPELL: for p being 5 _or_greater Prime for z being Element of EC_WParam p for P being 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; ::_thesis: for z being Element of EC_WParam p for P being 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) let z be Element of EC_WParam p; ::_thesis: for P being 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) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: [(P `1_3),(- (P `2_3)),(P `3_3)] is 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) or not P `2_3 = 0. (GF p) or not P `3_3 = 0. (GF p) ) by ThECSet1; then ( not P `1_3 = 0. (GF p) or not - (P `2_3) = 0. (GF p) or not P `3_3 = 0. (GF p) ) by VECTSP_2:3; then [(P `1_3),(- (P `2_3)),(P `3_3)] <> [(0. (GF p)),(0. (GF p)),(0. (GF p))] by XTUPLE_0:3; then not [(P `1_3),(- (P `2_3)),(P `3_3)] in {[(0. (GF p)),(0. (GF p)),(0. (GF p))]} by TARSKI:def_1; then [(P `1_3),(- (P `2_3)),(P `3_3)] 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 = [(P `1_3),(- (P `2_3)),(P `3_3)] 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, MCART_1:def_7; (((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) by A2, A3, ThOnCurve2; then (EC_WEqProjCo ((z `1),(z `2),p)) . R = 0. (GF p) by EC_PF_1:def_8; then R is_on_curve EC_WEqProjCo ((z `1),(z `2),p) by DefOnCurve; hence [(P `1_3),(- (P `2_3)),(P `3_3)] is Element of EC_SetProjCo ((z `1),(z `2),p) by ThOnCurve1; ::_thesis: verum 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: :: EC_PF_2:def 8 for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds it . P = [(P `1_3),(- (P `2_3)),(P `3_3)]; existence ex b1 being Function of (EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)) st for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds b1 . P = [(P `1_3),(- (P `2_3)),(P `3_3)] proof set a = z `1 ; set b = z `2 ; defpred S1[ Element of EC_SetProjCo ((z `1),(z `2),p), set ] means $2 = [($1 `1_3),(- ($1 `2_3)),($1 `3_3)]; A1: for P being Element of EC_SetProjCo ((z `1),(z `2),p) ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,R] proof let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,R] 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 ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,R] ; ::_thesis: verum end; consider f being Function of (EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)) such that A2: for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds S1[P,f . P] from FUNCT_2:sch_3(A1); take f ; ::_thesis: for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds f . P = [(P `1_3),(- (P `2_3)),(P `3_3)] thus for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds f . P = [(P `1_3),(- (P `2_3)),(P `3_3)] by A2; ::_thesis: verum end; uniqueness for b1, b2 being Function of (EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)) st ( for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds b1 . P = [(P `1_3),(- (P `2_3)),(P `3_3)] ) & ( for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds b2 . P = [(P `1_3),(- (P `2_3)),(P `3_3)] ) holds b1 = b2 proof set a = z `1 ; set b = z `2 ; deffunc H1( Element of EC_SetProjCo ((z `1),(z `2),p)) -> Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):] = [($1 `1_3),(- ($1 `2_3)),($1 `3_3)]; for f1, f2 being Function of (EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)) st ( for x being Element of EC_SetProjCo ((z `1),(z `2),p) holds f1 . x = H1(x) ) & ( for x being Element of EC_SetProjCo ((z `1),(z `2),p) holds f2 . x = H1(x) ) holds f1 = f2 proof let f1, f2 be Function of (EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)); ::_thesis: ( ( for x being Element of EC_SetProjCo ((z `1),(z `2),p) holds f1 . x = H1(x) ) & ( for x being Element of EC_SetProjCo ((z `1),(z `2),p) holds f2 . x = H1(x) ) implies f1 = f2 ) assume that A1: for x being Element of EC_SetProjCo ((z `1),(z `2),p) holds f1 . x = H1(x) and A2: for x being Element of EC_SetProjCo ((z `1),(z `2),p) holds f2 . x = H1(x) ; ::_thesis: f1 = f2 now__::_thesis:_for_x_being_Element_of_EC_SetProjCo_((z_`1),(z_`2),p)_holds_f1_._x_=_f2_._x let x be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: f1 . x = f2 . x thus f1 . x = H1(x) by A1 .= f2 . x by A2 ; ::_thesis: verum end; hence f1 = f2 by FUNCT_2:63; ::_thesis: verum end; hence for b1, b2 being Function of (EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)) st ( for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds b1 . P = [(P `1_3),(- (P `2_3)),(P `3_3)] ) & ( for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds b2 . P = [(P `1_3),(- (P `2_3)),(P `3_3)] ) holds b1 = b2 ; ::_thesis: verum end; end; :: deftheorem DefCompEll defines compell_ProjCo EC_PF_2:def_8_:_ for p being 5 _or_greater Prime for z being Element of EC_WParam p for b3 being Function of (EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)) holds ( b3 = compell_ProjCo (z,p) iff for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds b3 . P = [(P `1_3),(- (P `2_3)),(P `3_3)] ); definition let p be 5 _or_greater Prime; let 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); :: original: . redefine funcF . P -> Element of EC_SetProjCo ((z `1),(z `2),p); correctness coherence F . P is Element of EC_SetProjCo ((z `1),(z `2),p); proof F . P in EC_SetProjCo ((z `1),(z `2),p) ; hence F . P is Element of EC_SetProjCo ((z `1),(z `2),p) ; ::_thesis: verum end; end; theorem ThCOMPELL0: :: EC_PF_2:40 for p being 5 _or_greater Prime for z being Element of EC_WParam p for O being 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; ::_thesis: for z being Element of EC_WParam p for O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds (compell_ProjCo (z,p)) . O _EQ_ O let z be Element of EC_WParam p; ::_thesis: for O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds (compell_ProjCo (z,p)) . O _EQ_ O let O be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( O = [0,1,0] implies (compell_ProjCo (z,p)) . O _EQ_ O ) assume A2: O = [0,1,0] ; ::_thesis: (compell_ProjCo (z,p)) . O _EQ_ O 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 being Element of ProjCo (GF p) such that A4: ( OO = O & OO in EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A6: ( COO = (compell_ProjCo (z,p)) . O & COO in EC_SetProjCo ((z `1),(z `2),p) ) ; A7: ( COO `1_3 = ((compell_ProjCo (z,p)) . O) `1_3 & COO `2_3 = ((compell_ProjCo (z,p)) . O) `2_3 & COO `3_3 = ((compell_ProjCo (z,p)) . O) `3_3 ) by A6, ThECSet2; (compell_ProjCo (z,p)) . O = [(O `1_3),(- (O `2_3)),(O `3_3)] by DefCompEll; then COO `3_3 = 0 by A3, A7, DefZ; then A8: rep_pt ((compell_ProjCo (z,p)) . O) = [0,1,0] by A6, DefRepPoint; rep_pt O = [0,1,0] by A4, A5, DefRepPoint; hence (compell_ProjCo (z,p)) . O _EQ_ O by A8, ThRepPoint4; ::_thesis: verum end; theorem ThCOMPELL1: :: EC_PF_2:41 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P being 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; ::_thesis: for z being Element of EC_WParam p for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P) = P let z be Element of EC_WParam p; ::_thesis: for P being Element of EC_SetProjCo ((z `1),(z `2),p) holds (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P) = P let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P) = P set Q = (compell_ProjCo (z,p)) . P; (compell_ProjCo (z,p)) . P = [(P `1_3),(- (P `2_3)),(P `3_3)] by DefCompEll; then A1: ( ((compell_ProjCo (z,p)) . P) `1_3 = P `1_3 & ((compell_ProjCo (z,p)) . P) `2_3 = - (P `2_3) & ((compell_ProjCo (z,p)) . P) `3_3 = P `3_3 ) by DefX, DefY, DefZ; set R = (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P); (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P) = [(((compell_ProjCo (z,p)) . P) `1_3),(- (((compell_ProjCo (z,p)) . P) `2_3)),(((compell_ProjCo (z,p)) . P) `3_3)] by DefCompEll; then ( ((compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P)) `1_3 = P `1_3 & ((compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P)) `2_3 = - (- (P `2_3)) & ((compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P)) `3_3 = P `3_3 ) by A1, DefX, DefY, DefZ; then ( ((compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P)) `1_3 = P `1_3 & ((compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P)) `2_3 = P `2_3 & ((compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P)) `3_3 = P `3_3 ) by RLVECT_1:17; then (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P) = [(P `1_3),(P `2_3),(P `3_3)] by ThECSet1; hence (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . P) = P by ThECSet1; ::_thesis: verum end; theorem ThCOMPELL2: :: EC_PF_2:42 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P being 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; ::_thesis: for z being Element of EC_WParam p for P being 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) let z be Element of EC_WParam p; ::_thesis: for P being 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) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P `3_3 <> 0 implies rep_pt ((compell_ProjCo (z,p)) . P) = (compell_ProjCo (z,p)) . (rep_pt P) ) assume A2: P `3_3 <> 0 ; ::_thesis: rep_pt ((compell_ProjCo (z,p)) . P) = (compell_ProjCo (z,p)) . (rep_pt P) set a = z `1 ; set b = z `2 ; consider PP being Element of ProjCo (GF p) such that A3: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),p) ) ; set CP = (compell_ProjCo (z,p)) . P; (compell_ProjCo (z,p)) . P = [(P `1_3),(- (P `2_3)),(P `3_3)] by DefCompEll; then A4: ( ((compell_ProjCo (z,p)) . P) `1_3 = P `1_3 & ((compell_ProjCo (z,p)) . P) `2_3 = - (P `2_3) & ((compell_ProjCo (z,p)) . P) `3_3 = P `3_3 ) by DefX, DefY, DefZ; set RP = rep_pt PP; reconsider RP = rep_pt PP as Element of EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A6: ( CPP = (compell_ProjCo (z,p)) . P & CPP in EC_SetProjCo ((z `1),(z `2),p) ) ; set RCP = rep_pt CPP; reconsider RCP = rep_pt CPP as Element of EC_SetProjCo ((z `1),(z `2),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 = (((compell_ProjCo (z,p)) . P) `1_3) * ((CPP `3_3) ") & RCP `2_3 = (((compell_ProjCo (z,p)) . P) `2_3) * ((CPP `3_3) ") & RCP `3_3 = 1 ) by A6, ThECSet2; then ( RCP `1_3 = (((compell_ProjCo (z,p)) . P) `1_3) * ((((compell_ProjCo (z,p)) . P) `3_3) ") & RCP `2_3 = (((compell_ProjCo (z,p)) . P) `2_3) * ((((compell_ProjCo (z,p)) . P) `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; (compell_ProjCo (z,p)) . RP = [((P `1_3) * ((P `3_3) ")),(- ((P `2_3) * ((P `3_3) "))),1] by A5, DefCompEll; hence rep_pt ((compell_ProjCo (z,p)) . P) = (compell_ProjCo (z,p)) . (rep_pt P) by A3, A6, A7, VECTSP_1:9; ::_thesis: verum end; theorem ThCOMPELL3: :: EC_PF_2:43 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being 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; ::_thesis: for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds ( P = Q iff (compell_ProjCo (z,p)) . P = (compell_ProjCo (z,p)) . Q ) let z be Element of EC_WParam p; ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds ( P = Q iff (compell_ProjCo (z,p)) . P = (compell_ProjCo (z,p)) . Q ) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P = Q iff (compell_ProjCo (z,p)) . P = (compell_ProjCo (z,p)) . Q ) thus ( P = Q implies (compell_ProjCo (z,p)) . P = (compell_ProjCo (z,p)) . Q ) ; ::_thesis: ( (compell_ProjCo (z,p)) . P = (compell_ProjCo (z,p)) . Q implies P = Q ) assume A1: (compell_ProjCo (z,p)) . P = (compell_ProjCo (z,p)) . Q ; ::_thesis: P = Q thus P = (compell_ProjCo (z,p)) . ((compell_ProjCo (z,p)) . Q) by A1, ThCOMPELL1 .= Q by ThCOMPELL1 ; ::_thesis: verum end; theorem ThCOMPELL4: :: EC_PF_2:44 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P being 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; ::_thesis: for z being Element of EC_WParam p for P being 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 ) let z be Element of EC_WParam p; ::_thesis: for P being 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 ) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P `3_3 <> 0 implies ( P _EQ_ (compell_ProjCo (z,p)) . P iff P `2_3 = 0 ) ) assume A2: P `3_3 <> 0 ; ::_thesis: ( P _EQ_ (compell_ProjCo (z,p)) . P iff P `2_3 = 0 ) set a = z `1 ; set b = z `2 ; consider PP being Element of ProjCo (GF p) such that A3: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),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; (compell_ProjCo (z,p)) . P = [(P `1_3),(- (P `2_3)),(P `3_3)] by DefCompEll; then A6: ( ((compell_ProjCo (z,p)) . P) `1_3 = P `1_3 & ((compell_ProjCo (z,p)) . P) `2_3 = - (P `2_3) & ((compell_ProjCo (z,p)) . P) `3_3 = P `3_3 ) by DefX, DefY, DefZ; set RP = rep_pt PP; reconsider RP = rep_pt PP as Element of EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A8: ( CPP = (compell_ProjCo (z,p)) . P & CPP in EC_SetProjCo ((z `1),(z `2),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 = rep_pt CPP as Element of EC_SetProjCo ((z `1),(z `2),p) by A8, ThRepPoint1; A11: RCP = [((P `1_3) * ((P `3_3) ")),((- (P `2_3)) * ((P `3_3) ")),1] by A2, A9, DefRepPoint; hereby ::_thesis: ( P `2_3 = 0 implies P _EQ_ (compell_ProjCo (z,p)) . P ) assume B1: P _EQ_ (compell_ProjCo (z,p)) . P ; ::_thesis: P `2_3 = 0 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; ::_thesis: verum end; assume B1: P `2_3 = 0 ; ::_thesis: P _EQ_ (compell_ProjCo (z,p)) . P 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; ::_thesis: verum end; theorem ThCOMPELL5: :: EC_PF_2:45 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being 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; ::_thesis: for z being Element of EC_WParam p for P, Q being 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 ) ) let z be Element of EC_WParam p; ::_thesis: for P, Q being 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 ) ) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P `3_3 <> 0 implies ( ( P `1_3 = Q `1_3 & P `3_3 = Q `3_3 ) iff ( P = Q or P = (compell_ProjCo (z,p)) . Q ) ) ) assume A2: P `3_3 <> 0 ; ::_thesis: ( ( P `1_3 = Q `1_3 & P `3_3 = Q `3_3 ) iff ( P = Q or P = (compell_ProjCo (z,p)) . Q ) ) set a = z `1 ; set b = z `2 ; A3: P `3_3 <> 0. (GF p) by A2, EC_PF_1:11; hereby ::_thesis: ( ( P = Q or P = (compell_ProjCo (z,p)) . Q ) implies ( P `1_3 = Q `1_3 & P `3_3 = Q `3_3 ) ) assume B1: ( P `1_3 = Q `1_3 & P `3_3 = Q `3_3 ) ; ::_thesis: ( P = Q or P = (compell_ProjCo (z,p)) . Q ) B2: (((P `2_3) |^ 2) * (P `3_3)) - ((((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by ThOnCurve2; (((Q `2_3) |^ 2) * (Q `3_3)) - ((((Q `1_3) |^ 3) + (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2))) + ((z `2) * ((Q `3_3) |^ 3))) = 0. (GF p) by ThOnCurve2; then B3: ((Q `2_3) |^ 2) * (Q `3_3) = (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((Q `3_3) |^ 2))) + ((z `2) * ((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; ::_thesis: verum end; assume B1: ( P = Q or P = (compell_ProjCo (z,p)) . Q ) ; ::_thesis: ( P `1_3 = Q `1_3 & P `3_3 = Q `3_3 ) ( 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; ::_thesis: verum end; theorem ThEQCOMP1: :: EC_PF_2:46 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being 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; ::_thesis: for z being Element of EC_WParam p for P, Q being 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 ) let z be Element of EC_WParam p; ::_thesis: for P, Q being 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 ) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P _EQ_ Q iff (compell_ProjCo (z,p)) . P _EQ_ (compell_ProjCo (z,p)) . Q ) set a = z `1 ; set b = z `2 ; consider PP being Element of ProjCo (GF p) such that A2: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A4: ( QQ = Q & QQ in EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A6: ( CPP = (compell_ProjCo (z,p)) . P & CPP in EC_SetProjCo ((z `1),(z `2),p) ) ; A7: ( CPP `1_3 = ((compell_ProjCo (z,p)) . P) `1_3 & CPP `2_3 = ((compell_ProjCo (z,p)) . P) `2_3 & CPP `3_3 = ((compell_ProjCo (z,p)) . P) `3_3 ) by A6, ThECSet2; set CQ = (compell_ProjCo (z,p)) . Q; consider CQQ being Element of ProjCo (GF p) such that A8: ( CQQ = (compell_ProjCo (z,p)) . Q & CQQ in EC_SetProjCo ((z `1),(z `2),p) ) ; A9: ( CQQ `1_3 = ((compell_ProjCo (z,p)) . Q) `1_3 & CQQ `2_3 = ((compell_ProjCo (z,p)) . Q) `2_3 & CQQ `3_3 = ((compell_ProjCo (z,p)) . Q) `3_3 ) by A8, ThECSet2; hereby ::_thesis: ( (compell_ProjCo (z,p)) . P _EQ_ (compell_ProjCo (z,p)) . Q implies P _EQ_ Q ) assume B1: P _EQ_ Q ; ::_thesis: (compell_ProjCo (z,p)) . P _EQ_ (compell_ProjCo (z,p)) . Q B2: rep_pt P = rep_pt Q by B1, ThRepPoint4; percases ( P `3_3 = 0 or P `3_3 <> 0 ) ; supposeC1: P `3_3 = 0 ; ::_thesis: (compell_ProjCo (z,p)) . P _EQ_ (compell_ProjCo (z,p)) . Q 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; (compell_ProjCo (z,p)) . P = [(P `1_3),(- (P `2_3)),0] by C1, DefCompEll; then C3: CPP `3_3 = 0 by A7, DefZ; (compell_ProjCo (z,p)) . Q = [(Q `1_3),(- (Q `2_3)),0] by C2, DefCompEll; then CQQ `3_3 = 0 by A9, DefZ; then rep_pt ((compell_ProjCo (z,p)) . Q) = [0,1,0] by A8, DefRepPoint .= rep_pt ((compell_ProjCo (z,p)) . P) by A6, C3, DefRepPoint ; hence (compell_ProjCo (z,p)) . P _EQ_ (compell_ProjCo (z,p)) . Q by ThRepPoint4; ::_thesis: verum end; supposeC1: P `3_3 <> 0 ; ::_thesis: (compell_ProjCo (z,p)) . P _EQ_ (compell_ProjCo (z,p)) . Q 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; ::_thesis: verum end; end; end; assume B1: (compell_ProjCo (z,p)) . P _EQ_ (compell_ProjCo (z,p)) . Q ; ::_thesis: P _EQ_ Q percases ( P `3_3 = 0 or P `3_3 <> 0 ) ; supposeC1: P `3_3 = 0 ; ::_thesis: P _EQ_ Q (compell_ProjCo (z,p)) . P = [(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: ((compell_ProjCo (z,p)) . Q) `3_3 = 0 by A9, ThRepPoint2; (compell_ProjCo (z,p)) . Q = [(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; ::_thesis: verum end; supposeC1: P `3_3 <> 0 ; ::_thesis: P _EQ_ Q (compell_ProjCo (z,p)) . P = [(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 = rep_pt P as Element of EC_SetProjCo ((z `1),(z `2),p) by ThRepPoint1; set RQ = rep_pt Q; reconsider RQ = rep_pt Q as Element of EC_SetProjCo ((z `1),(z `2),p) by ThRepPoint1; C3: rep_pt ((compell_ProjCo (z,p)) . P) = rep_pt ((compell_ProjCo (z,p)) . Q) 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: ((compell_ProjCo (z,p)) . Q) `3_3 <> 0 by A9, ThRepPoint3; (compell_ProjCo (z,p)) . Q = [(Q `1_3),(- (Q `2_3)),(Q `3_3)] by DefCompEll; then C5: Q `3_3 <> 0 by C4, DefZ; C6: rep_pt ((compell_ProjCo (z,p)) . P) = (compell_ProjCo (z,p)) . RP by C1, ThCOMPELL2; rep_pt ((compell_ProjCo (z,p)) . Q) = (compell_ProjCo (z,p)) . RQ by C5, ThCOMPELL2; then RP = RQ by C3, C6, ThCOMPELL3; hence P _EQ_ Q by ThRepPoint4; ::_thesis: verum end; end; end; theorem ThEQCOMP2: :: EC_PF_2:47 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being 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; ::_thesis: for z being Element of EC_WParam p for P, Q being 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 ) let z be Element of EC_WParam p; ::_thesis: for P, Q being 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 ) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P _EQ_ (compell_ProjCo (z,p)) . Q iff (compell_ProjCo (z,p)) . P _EQ_ Q ) set a = z `1 ; set b = z `2 ; set CP = (compell_ProjCo (z,p)) . P; reconsider CP = (compell_ProjCo (z,p)) . P as Element of EC_SetProjCo ((z `1),(z `2),p) ; set CQ = (compell_ProjCo (z,p)) . Q; reconsider CQ = (compell_ProjCo (z,p)) . Q as Element of EC_SetProjCo ((z `1),(z `2),p) ; hereby ::_thesis: ( (compell_ProjCo (z,p)) . P _EQ_ Q implies P _EQ_ (compell_ProjCo (z,p)) . Q ) assume B1: P _EQ_ (compell_ProjCo (z,p)) . Q ; ::_thesis: (compell_ProjCo (z,p)) . P _EQ_ 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; ::_thesis: verum end; assume B1: (compell_ProjCo (z,p)) . P _EQ_ Q ; ::_thesis: P _EQ_ (compell_ProjCo (z,p)) . 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; ::_thesis: verum end; theorem ThEQCOMP3: :: EC_PF_2:48 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being 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; ::_thesis: for z being Element of EC_WParam p for P, Q being 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 ) let z be Element of EC_WParam p; ::_thesis: for P, Q being 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 ) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P `3_3 <> 0 & Q `3_3 <> 0 implies ( rep_pt P = (compell_ProjCo (z,p)) . (rep_pt Q) iff P _EQ_ (compell_ProjCo (z,p)) . Q ) ) assume A2: ( P `3_3 <> 0 & Q `3_3 <> 0 ) ; ::_thesis: ( rep_pt P = (compell_ProjCo (z,p)) . (rep_pt Q) iff P _EQ_ (compell_ProjCo (z,p)) . Q ) set a = z `1 ; set b = z `2 ; set CQ = (compell_ProjCo (z,p)) . Q; reconsider CQ = (compell_ProjCo (z,p)) . Q as Element of EC_SetProjCo ((z `1),(z `2),p) ; hereby ::_thesis: ( P _EQ_ (compell_ProjCo (z,p)) . Q implies rep_pt P = (compell_ProjCo (z,p)) . (rep_pt Q) ) assume B1: rep_pt P = (compell_ProjCo (z,p)) . (rep_pt Q) ; ::_thesis: P _EQ_ (compell_ProjCo (z,p)) . Q rep_pt P = rep_pt CQ by A2, B1, ThCOMPELL2; hence P _EQ_ (compell_ProjCo (z,p)) . Q by ThRepPoint4; ::_thesis: verum end; assume P _EQ_ (compell_ProjCo (z,p)) . Q ; ::_thesis: rep_pt P = (compell_ProjCo (z,p)) . (rep_pt Q) hence rep_pt P = rep_pt CQ by ThRepPoint4 .= (compell_ProjCo (z,p)) . (rep_pt Q) by A2, ThCOMPELL2 ; ::_thesis: verum end; theorem :: EC_PF_2:49 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st P _EQ_ Q holds (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) proof let p be 5 _or_greater Prime; ::_thesis: for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st P _EQ_ Q holds (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) let z be Element of EC_WParam p; ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st P _EQ_ Q holds (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P _EQ_ Q implies (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) ) set a = z `1 ; set b = z `2 ; consider PP being Element of ProjCo (GF p) such that A2: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A4: ( QQ = Q & QQ in EC_SetProjCo ((z `1),(z `2),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 ; ::_thesis: (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) B2: rep_pt PP = rep_pt QQ by A2, A4, B1, ThRepPoint4; percases ( PP `3_3 = 0 or PP `3_3 <> 0 ) ; supposeC1: PP `3_3 = 0 ; ::_thesis: (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) 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; ::_thesis: verum end; supposeC0: PP `3_3 <> 0 ; ::_thesis: (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) 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; ::_thesis: verum end; end; end; theorem ThECEQ2: :: EC_PF_2:50 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being 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; ::_thesis: for z being Element of EC_WParam p for P, Q being 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) ) let z be Element of EC_WParam p; ::_thesis: for P, Q being 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) ) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P `3_3 <> 0 & Q `3_3 <> 0 implies ( ( P _EQ_ Q or P _EQ_ (compell_ProjCo (z,p)) . Q ) iff (P `1_3) * (Q `3_3) = (Q `1_3) * (P `3_3) ) ) assume A2: ( P `3_3 <> 0 & Q `3_3 <> 0 ) ; ::_thesis: ( ( P _EQ_ Q or P _EQ_ (compell_ProjCo (z,p)) . Q ) iff (P `1_3) * (Q `3_3) = (Q `1_3) * (P `3_3) ) 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 being Element of ProjCo (GF p) such that A3: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A5: ( QQ = Q & QQ in EC_SetProjCo ((z `1),(z `2),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 = rep_pt PP as Element of EC_SetProjCo ((z `1),(z `2),p) by A3, ThRepPoint1; set RQ = rep_pt QQ; reconsider RQ = rep_pt QQ as Element of EC_SetProjCo ((z `1),(z `2),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 ( not RP `1_3 = RQ `1_3 or rep_pt P = rep_pt Q or RP = (compell_ProjCo (z,p)) . RQ ) by A3, A5, A11, ThCOMPELL5; then A15: ( not (P `1_3) * ((PP `3_3) ") = (Q `1_3) * ((QQ `3_3) ") or 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 ( ( P _EQ_ Q or P _EQ_ (compell_ProjCo (z,p)) . Q ) iff (P `1_3) * (Q `3_3) = (Q `1_3) * (P `3_3) ) by A1, A2, A3, A4, A5, A6, A15, ThGF12, ThGF13, ThEQCOMP3; ::_thesis: verum end; theorem ThECEQ3: :: EC_PF_2:51 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st P `3_3 <> 0 & Q `3_3 <> 0 & P `2_3 <> 0 & P _EQ_ (compell_ProjCo (z,p)) . Q holds (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) proof let p be 5 _or_greater Prime; ::_thesis: for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st P `3_3 <> 0 & Q `3_3 <> 0 & P `2_3 <> 0 & P _EQ_ (compell_ProjCo (z,p)) . Q holds (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) let z be Element of EC_WParam p; ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st P `3_3 <> 0 & Q `3_3 <> 0 & P `2_3 <> 0 & P _EQ_ (compell_ProjCo (z,p)) . Q holds (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( P `3_3 <> 0 & Q `3_3 <> 0 & P `2_3 <> 0 & P _EQ_ (compell_ProjCo (z,p)) . Q implies (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) ) assume A2: ( P `3_3 <> 0 & Q `3_3 <> 0 & P `2_3 <> 0 ) ; ::_thesis: ( not P _EQ_ (compell_ProjCo (z,p)) . Q or (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) ) 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 being Element of ProjCo (GF p) such that A4: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),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 being Element of ProjCo (GF p) such that A6: ( QQ = Q & QQ in EC_SetProjCo ((z `1),(z `2),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 ; ::_thesis: (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) assume A9: (P `2_3) * (Q `3_3) = (Q `2_3) * (P `3_3) ; ::_thesis: contradiction (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; ::_thesis: verum end; theorem ThECEQ4: :: EC_PF_2:52 for p being 5 _or_greater Prime for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st not P _EQ_ Q & P _EQ_ (compell_ProjCo (z,p)) . Q holds (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) proof let p be 5 _or_greater Prime; ::_thesis: for z being Element of EC_WParam p for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st not P _EQ_ Q & P _EQ_ (compell_ProjCo (z,p)) . Q holds (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) let z be Element of EC_WParam p; ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) st not P _EQ_ Q & P _EQ_ (compell_ProjCo (z,p)) . Q holds (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( not P _EQ_ Q & P _EQ_ (compell_ProjCo (z,p)) . Q implies (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) ) set a = z `1 ; set b = z `2 ; A1: ( p > 3 & Disc ((z `1),(z `2),p) <> 0. (GF p) ) by LMZ1Z2; assume A2: not P _EQ_ Q ; ::_thesis: ( not P _EQ_ (compell_ProjCo (z,p)) . Q or (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) ) assume A3: P _EQ_ (compell_ProjCo (z,p)) . Q ; ::_thesis: (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) consider PP being Element of ProjCo (GF p) such that A4: ( PP = P & PP in EC_SetProjCo ((z `1),(z `2),p) ) ; A6: P `3_3 <> 0 proof assume B1: P `3_3 = 0 ; ::_thesis: contradiction set CQ = (compell_ProjCo (z,p)) . Q; reconsider CQ = (compell_ProjCo (z,p)) . Q as Element of EC_SetProjCo ((z `1),(z `2),p) ; B2: PP `3_3 = 0 by B1, A4, ThECSet2; consider OO being Element of ProjCo (GF p) such that B3: OO in EC_SetProjCo ((z `1),(z `2),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 being Element of EC_SetProjCo ((z `1),(z `2),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; ::_thesis: verum end; A7: Q `3_3 <> 0 proof assume B1: Q `3_3 = 0 ; ::_thesis: contradiction set CQ = (compell_ProjCo (z,p)) . Q; reconsider CQ = (compell_ProjCo (z,p)) . Q 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 being Element of ProjCo (GF p) such that B4: OO in EC_SetProjCo ((z `1),(z `2),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 being Element of EC_SetProjCo ((z `1),(z `2),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; ::_thesis: verum end; P `2_3 <> 0 proof assume B1: P `2_3 = 0 ; ::_thesis: contradiction 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; ::_thesis: verum end; hence (P `2_3) * (Q `3_3) <> (Q `2_3) * (P `3_3) by A3, A6, A7, ThECEQ3; ::_thesis: verum end; theorem ThNonSingular: :: EC_PF_2:53 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g3 being Element of (GF p) for P being 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; ::_thesis: for z being Element of EC_WParam p for g3 being Element of (GF p) for P being 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 let z be Element of EC_WParam p; ::_thesis: for g3 being Element of (GF p) for P being 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 let g3 be Element of (GF p); ::_thesis: for P being 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 let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ( g3 = 3 mod p & P `2_3 = 0 & P `3_3 <> 0 implies ((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2)) <> 0 ) assume that A3: g3 = 3 mod p and A4: P `2_3 = 0 and A5: P `3_3 <> 0 ; ::_thesis: ((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2)) <> 0 set a = z `1 ; set b = z `2 ; A1: ( p > 3 & Disc ((z `1),(z `2),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: ((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2)) = 0 ; ::_thesis: contradiction (((P `2_3) |^ 2) * (P `3_3)) - ((((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by ThOnCurve2; then ((P `2_3) |^ 2) * (P `3_3) = (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3)) by VECTSP_1:19; then (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3)) = 0. (GF p) by A7, VECTSP_1:7; then g3 * ((((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by VECTSP_1:6; then (g3 * (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2)))) + (g3 * ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by VECTSP_1:4; then ((g3 * ((P `1_3) |^ 3)) + (g3 * (((z `1) * (P `1_3)) * ((P `3_3) |^ 2)))) + (g3 * ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by VECTSP_1:4; then ((g3 * ((P `1_3) |^ (2 + 1))) + (g3 * ((z `1) * ((P `1_3) * ((P `3_3) |^ 2))))) + (g3 * ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by GROUP_1:def_3; then ((g3 * ((P `1_3) |^ (2 + 1))) + ((g3 * (z `1)) * ((P `1_3) * ((P `3_3) |^ 2)))) + (g3 * ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by GROUP_1:def_3; then ((g3 * ((P `1_3) |^ (2 + 1))) + (((g3 * (z `1)) * (P `1_3)) * ((P `3_3) |^ 2))) + (g3 * ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by GROUP_1:def_3; then ((g3 * ((P `1_3) |^ (2 + 1))) + (((g3 * (z `1)) * (P `1_3)) * ((P `3_3) |^ 2))) + ((g3 * (z `2)) * ((P `3_3) |^ 3)) = 0. (GF p) by GROUP_1:def_3; then ((g3 * (((P `1_3) |^ 2) * (P `1_3))) + (((g3 * (z `1)) * (P `1_3)) * ((P `3_3) |^ 2))) + ((g3 * (z `2)) * ((P `3_3) |^ (2 + 1))) = 0. (GF p) by EC_PF_1:24; then ((g3 * (((P `1_3) |^ 2) * (P `1_3))) + (((g3 * (z `1)) * (P `1_3)) * ((P `3_3) |^ 2))) + ((g3 * (z `2)) * (((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 * (z `1)) * (P `1_3)) * ((P `3_3) |^ 2))) + ((g3 * (z `2)) * ((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 * (z `1)) * (P `1_3)) * ((P `3_3) |^ 2))) + (((g3 * (z `2)) * (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 * (z `1)) * (P `1_3))) + (((P `3_3) |^ 2) * ((g3 * (z `2)) * (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 * (z `1)) * (P `1_3)) + ((g3 * (z `2)) * (P `3_3)))) = 0. (GF p) by VECTSP_1:4; B3: ((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2)) = 0. (GF p) by B1, EC_PF_1:11; then ((- ((z `1) * ((P `3_3) |^ 2))) * (P `1_3)) + (((P `3_3) |^ 2) * (((g3 * (z `1)) * (P `1_3)) + ((g3 * (z `2)) * (P `3_3)))) = 0. (GF p) by B2, VECTSP_1:16; then (((- (z `1)) * ((P `3_3) |^ 2)) * (P `1_3)) + (((P `3_3) |^ 2) * (((g3 * (z `1)) * (P `1_3)) + ((g3 * (z `2)) * (P `3_3)))) = 0. (GF p) by VECTSP_1:9; then (((P `3_3) |^ 2) * ((- (z `1)) * (P `1_3))) + (((P `3_3) |^ 2) * (((g3 * (z `1)) * (P `1_3)) + ((g3 * (z `2)) * (P `3_3)))) = 0. (GF p) by GROUP_1:def_3; then ((P `3_3) |^ 2) * (((- (z `1)) * (P `1_3)) + (((g3 * (z `1)) * (P `1_3)) + ((g3 * (z `2)) * (P `3_3)))) = 0. (GF p) by VECTSP_1:4; then ((- (z `1)) * (P `1_3)) + (((g3 * (z `1)) * (P `1_3)) + ((g3 * (z `2)) * (P `3_3))) = 0. (GF p) by A6, VECTSP_1:12; then (((- (z `1)) * (P `1_3)) + ((g3 * (z `1)) * (P `1_3))) + ((g3 * (z `2)) * (P `3_3)) = 0. (GF p) by ALGSTR_1:7; then ((- ((z `1) * (P `1_3))) + ((g3 * (z `1)) * (P `1_3))) + ((g3 * (z `2)) * (P `3_3)) = 0. (GF p) by VECTSP_1:9; then ((g3 * ((z `1) * (P `1_3))) - ((z `1) * (P `1_3))) + ((g3 * (z `2)) * (P `3_3)) = 0. (GF p) by GROUP_1:def_3; then (g2 * ((z `1) * (P `1_3))) + ((g3 * (z `2)) * (P `3_3)) = 0. (GF p) by A3, A16, ThGF8; then g2 * ((z `1) * (P `1_3)) = - ((g3 * (z `2)) * (P `3_3)) by VECTSP_1:16; then (g2 * ((z `1) * (P `1_3))) |^ 2 = ((g3 * (z `2)) * (P `3_3)) |^ 2 by ThGF10; then (g2 |^ 2) * (((z `1) * (P `1_3)) |^ 2) = ((g3 * (z `2)) * (P `3_3)) |^ 2 by BINOM:9; then (g2 |^ 2) * (((z `1) * (P `1_3)) |^ 2) = (g3 * ((z `2) * (P `3_3))) |^ 2 by GROUP_1:def_3; then (g2 |^ 2) * (((z `1) |^ 2) * ((P `1_3) |^ 2)) = (g3 * ((z `2) * (P `3_3))) |^ 2 by BINOM:9; then (g2 |^ 2) * (((z `1) |^ 2) * ((P `1_3) |^ 2)) = (g3 |^ 2) * (((z `2) * (P `3_3)) |^ 2) by BINOM:9; then (g2 |^ 2) * (((z `1) |^ 2) * ((P `1_3) |^ 2)) = (g3 |^ 2) * (((z `2) |^ 2) * ((P `3_3) |^ 2)) by BINOM:9; then ((g2 |^ 2) * ((z `1) |^ 2)) * ((P `1_3) |^ 2) = (g3 |^ 2) * (((z `2) |^ 2) * ((P `3_3) |^ 2)) by GROUP_1:def_3; then B4: ((g2 |^ 2) * ((z `1) |^ 2)) * ((P `1_3) |^ 2) = ((g3 |^ 2) * ((z `2) |^ 2)) * ((P `3_3) |^ 2) by GROUP_1:def_3; ((g2 |^ 2) * ((z `1) |^ 2)) * (((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2))) = 0. (GF p) by B3, VECTSP_1:6; then (((g2 |^ 2) * ((z `1) |^ 2)) * ((z `1) * ((P `3_3) |^ 2))) + (((g2 |^ 2) * ((z `1) |^ 2)) * (g3 * ((P `1_3) |^ 2))) = 0. (GF p) by VECTSP_1:4; then ((g2 |^ 2) * (((z `1) |^ 2) * ((z `1) * ((P `3_3) |^ 2)))) + (((g2 |^ 2) * ((z `1) |^ 2)) * (g3 * ((P `1_3) |^ 2))) = 0. (GF p) by GROUP_1:def_3; then ((g2 |^ 2) * ((((z `1) |^ 2) * (z `1)) * ((P `3_3) |^ 2))) + (((g2 |^ 2) * ((z `1) |^ 2)) * (g3 * ((P `1_3) |^ 2))) = 0. (GF p) by GROUP_1:def_3; then ((g2 |^ 2) * (((z `1) |^ (2 + 1)) * ((P `3_3) |^ 2))) + ((g3 * ((P `1_3) |^ 2)) * ((g2 |^ 2) * ((z `1) |^ 2))) = 0. (GF p) by EC_PF_1:24; then ((g2 |^ 2) * (((z `1) |^ 3) * ((P `3_3) |^ 2))) + (g3 * (((P `1_3) |^ 2) * ((g2 |^ 2) * ((z `1) |^ 2)))) = 0. (GF p) by GROUP_1:def_3; then (((g2 |^ 2) * ((z `1) |^ 3)) * ((P `3_3) |^ 2)) + (g3 * (((g3 |^ 2) * ((z `2) |^ 2)) * ((P `3_3) |^ 2))) = 0. (GF p) by B4, GROUP_1:def_3; then (((g2 |^ 2) * ((z `1) |^ 3)) * ((P `3_3) |^ 2)) + (g3 * ((g3 |^ 2) * (((z `2) |^ 2) * ((P `3_3) |^ 2)))) = 0. (GF p) by GROUP_1:def_3; then (((g2 |^ 2) * ((z `1) |^ 3)) * ((P `3_3) |^ 2)) + ((g3 * (g3 |^ 2)) * (((z `2) |^ 2) * ((P `3_3) |^ 2))) = 0. (GF p) by GROUP_1:def_3; then (((P `3_3) |^ 2) * ((g2 |^ 2) * ((z `1) |^ 3))) + ((g3 |^ (2 + 1)) * (((z `2) |^ 2) * ((P `3_3) |^ 2))) = 0. (GF p) by EC_PF_1:24; then (((P `3_3) |^ 2) * ((g2 |^ 2) * ((z `1) |^ 3))) + (((g3 |^ 3) * ((z `2) |^ 2)) * ((P `3_3) |^ 2)) = 0. (GF p) by GROUP_1:def_3; then ((P `3_3) |^ 2) * (((g2 |^ 2) * ((z `1) |^ 3)) + ((g3 |^ 3) * ((z `2) |^ 2))) = 0. (GF p) by VECTSP_1:4; then (g4 * ((z `1) |^ 3)) + (g27 * ((z `2) |^ 2)) = 0. (GF p) by A6, A17, A19, VECTSP_1:12; hence contradiction by A1, EC_PF_1:def_7; ::_thesis: verum end; theorem ThAddEllEq1: :: EC_PF_2:54 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let z be Element of EC_WParam p; ::_thesis: for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let g2, gf1, gf2, gf3 be Element of (GF p); ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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))) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies (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))) ) assume 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))] ; ::_thesis: (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))) ((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 ; ::_thesis: verum end; theorem ThAddEllEq2: :: EC_PF_2:55 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let z be Element of EC_WParam p; ::_thesis: for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let g2, gf1, gf2, gf3 be Element of (GF p); ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies (- ((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) ) assume 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))] ; ::_thesis: (- ((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) 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; ::_thesis: verum end; theorem ThAddEllEq3: :: EC_PF_2:56 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)) let z be Element of EC_WParam p; ::_thesis: for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)) let g2, gf1, gf2, gf3 be Element of (GF p); ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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)) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies ((((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)) ) assume 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))] ; ::_thesis: ((((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)) 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) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3))) by ThOnCurve2 .= (((P `2_3) |^ 2) * (P `3_3)) - (((P `1_3) |^ 3) + ((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) + ((z `2) * ((P `3_3) |^ 3)))) by ALGSTR_1:7 .= ((((P `2_3) |^ 2) * (P `3_3)) - ((P `1_3) |^ 3)) - ((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) + ((z `2) * ((P `3_3) |^ 3))) by VECTSP_1:17 ; then E8: (((P `2_3) |^ 2) * (P `3_3)) - ((P `1_3) |^ 3) = (((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) + ((z `2) * ((P `3_3) |^ 3)) by VECTSP_1:19; E9: 0. (GF p) = (((Q `2_3) |^ 2) * (Q `3_3)) - ((((Q `1_3) |^ 3) + (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2))) + ((z `2) * ((Q `3_3) |^ 3))) by ThOnCurve2 .= (((Q `2_3) |^ 2) * (Q `3_3)) - (((Q `1_3) |^ 3) + ((((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)) + ((z `2) * ((Q `3_3) |^ 3)))) by ALGSTR_1:7 .= ((((Q `2_3) |^ 2) * (Q `3_3)) - ((Q `1_3) |^ 3)) - ((((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)) + ((z `2) * ((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)) * ((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) + ((z `2) * ((P `3_3) |^ 3)))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)) + ((z `2) * ((Q `3_3) |^ 3))))) by E8, E9, VECTSP_1:19 .= ((gf2 |^ 4) * (P `3_3)) * (((((Q `1_3) * ((Q `3_3) |^ 2)) * (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)) + ((z `2) * ((Q `3_3) |^ 3))))) by VECTSP_1:4 .= ((gf2 |^ 4) * (P `3_3)) * (((((Q `1_3) * ((Q `3_3) |^ 2)) * (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) - ((((P `1_3) * ((P `3_3) |^ 2)) * (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2))) + (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3))))) by VECTSP_1:4 .= ((gf2 |^ 4) * (P `3_3)) * ((((((Q `1_3) * ((Q `3_3) |^ 2)) * (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) - (((P `1_3) * ((P `3_3) |^ 2)) * (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)))) by VECTSP_1:17 .= ((gf2 |^ 4) * (P `3_3)) * ((((((Q `1_3) * ((Q `3_3) |^ 2)) * (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) - (((P `1_3) * ((P `3_3) |^ 2)) * (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by ThGF001 .= ((gf2 |^ 4) * (P `3_3)) * ((((((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * (Q `1_3)) * ((Q `3_3) |^ 2)) - (((P `1_3) * ((P `3_3) |^ 2)) * (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * ((((((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * (Q `1_3)) * ((Q `3_3) |^ 2)) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `1) * ((Q `1_3) * ((Q `3_3) |^ 2))))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * ((((((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * (Q `1_3)) * ((Q `3_3) |^ 2)) - ((((P `1_3) * ((P `3_3) |^ 2)) * (z `1)) * ((Q `1_3) * ((Q `3_3) |^ 2)))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * ((((((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * (Q `1_3)) * ((Q `3_3) |^ 2)) - ((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * ((Q `1_3) * ((Q `3_3) |^ 2)))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * ((((((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * (Q `1_3)) * ((Q `3_3) |^ 2)) - (((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * (Q `1_3)) * ((Q `3_3) |^ 2))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * (((0. (GF p)) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by RLVECT_1:5 .= ((gf2 |^ 4) * (P `3_3)) * ((- (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) + (((Q `1_3) * ((Q `3_3) |^ 2)) * ((z `2) * ((P `3_3) |^ 3)))) by RLVECT_1:4 .= ((gf2 |^ 4) * (P `3_3)) * (((((Q `1_3) * ((Q `3_3) |^ 2)) * (z `2)) * ((P `3_3) |^ (2 + 1))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * (((((Q `1_3) * ((Q `3_3) |^ 2)) * (z `2)) * (((P `3_3) |^ 2) * (P `3_3))) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) by EC_PF_1:24 .= ((gf2 |^ 4) * (P `3_3)) * ((((((Q `1_3) * ((Q `3_3) |^ 2)) * (z `2)) * ((P `3_3) |^ 2)) * (P `3_3)) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * (((((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * (Q `1_3)) * (P `3_3)) - (((P `1_3) * ((P `3_3) |^ 2)) * ((z `2) * ((Q `3_3) |^ 3)))) by ThGF101 .= ((gf2 |^ 4) * (P `3_3)) * (((((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * (Q `1_3)) * (P `3_3)) - ((((P `1_3) * ((P `3_3) |^ 2)) * (z `2)) * ((Q `3_3) |^ (2 + 1)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * (((((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * (Q `1_3)) * (P `3_3)) - ((((P `1_3) * ((P `3_3) |^ 2)) * (z `2)) * (((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)) * (z `2)) * (Q `1_3)) * (P `3_3)) - (((((P `1_3) * ((P `3_3) |^ 2)) * (z `2)) * ((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)) * (z `2)) * (Q `1_3)) * (P `3_3)) - ((((((Q `3_3) |^ 2) * ((P `3_3) |^ 2)) * (z `2)) * (P `1_3)) * (Q `3_3))) by ThGF101 .= ((gf2 |^ 4) * (P `3_3)) * ((((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * ((Q `1_3) * (P `3_3))) - ((((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * (P `1_3)) * (Q `3_3))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * ((((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * ((Q `1_3) * (P `3_3))) - (((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * ((P `1_3) * (Q `3_3)))) by GROUP_1:def_3 .= ((gf2 |^ 4) * (P `3_3)) * (((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (z `2)) * (((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)) * (z `2)) * gf2 by A2, ThGF102 .= (((((gf2 |^ 4) * (P `3_3)) * ((Q `3_3) * (Q `3_3))) * ((P `3_3) |^ 2)) * (z `2)) * gf2 by EC_PF_1:22 .= ((((((gf2 |^ (3 + 1)) * (P `3_3)) * (Q `3_3)) * (Q `3_3)) * ((P `3_3) |^ 2)) * (z `2)) * gf2 by GROUP_1:def_3 .= (((((((gf2 |^ 3) * gf2) * (P `3_3)) * (Q `3_3)) * (Q `3_3)) * ((P `3_3) |^ 2)) * (z `2)) * gf2 by EC_PF_1:24 .= ((((gf2 * (((gf2 |^ 3) * (P `3_3)) * (Q `3_3))) * (Q `3_3)) * ((P `3_3) |^ 2)) * (z `2)) * gf2 by ThGF102 .= ((((gf2 * (R `3_3)) * (Q `3_3)) * ((P `3_3) |^ 2)) * (z `2)) * gf2 by A3, MCART_1:def_7 .= gf2 * (gf2 * ((((R `3_3) * (Q `3_3)) * ((P `3_3) |^ 2)) * (z `2))) by ThGF103 .= (gf2 * gf2) * ((((R `3_3) * (Q `3_3)) * ((P `3_3) |^ 2)) * (z `2)) by GROUP_1:def_3 .= (gf2 |^ 2) * ((((R `3_3) * (Q `3_3)) * ((P `3_3) |^ 2)) * (z `2)) by EC_PF_1:22 .= (gf2 |^ 2) * ((((z `2) * (Q `3_3)) * ((P `3_3) |^ 2)) * (R `3_3)) by ThGF101 .= ((((gf2 |^ 2) * (z `2)) * (Q `3_3)) * ((P `3_3) |^ 2)) * (R `3_3) by ThGF102 .= ((((z `2) * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * (Q `3_3)) * (R `3_3) by GROUP_1:def_3 ; ::_thesis: verum end; theorem ThAddEllEq4: :: EC_PF_2:57 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)))) let z be Element of EC_WParam p; ::_thesis: for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)))) let g2, gf1, gf2, gf3 be Element of (GF p); ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)))) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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)))) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies ((((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)))) ) assume 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))] ; ::_thesis: ((((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)))) 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) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((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) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3))) by VECTSP_1:19 .= (((Q `3_3) |^ 3) * (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2)))) + (((Q `3_3) |^ 3) * ((z `2) * ((P `3_3) |^ 3))) by VECTSP_1:4 .= ((((Q `3_3) |^ 3) * ((P `1_3) |^ 3)) + (((Q `3_3) |^ 3) * (((z `1) * (P `1_3)) * ((P `3_3) |^ 2)))) + (((Q `3_3) |^ 3) * ((z `2) * ((P `3_3) |^ 3))) by VECTSP_1:4 .= ((((Q `3_3) * (P `1_3)) |^ 3) + ((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * ((Q `3_3) |^ (2 + 1)))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by BINOM:9 .= ((((P `1_3) * (Q `3_3)) |^ 3) + ((((z `1) * (P `1_3)) * ((P `3_3) |^ 2)) * (((Q `3_3) |^ 2) * (Q `3_3)))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by EC_PF_1:24 .= ((((P `1_3) * (Q `3_3)) |^ 3) + (((z `1) * (P `1_3)) * (((P `3_3) |^ 2) * (((Q `3_3) |^ 2) * (Q `3_3))))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by GROUP_1:def_3 .= ((((P `1_3) * (Q `3_3)) |^ 3) + (((z `1) * (P `1_3)) * ((((P `3_3) |^ 2) * ((Q `3_3) |^ 2)) * (Q `3_3)))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by GROUP_1:def_3 .= ((((P `1_3) * (Q `3_3)) |^ 3) + (((z `1) * (P `1_3)) * ((((P `3_3) * (Q `3_3)) |^ 2) * (Q `3_3)))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by BINOM:9 .= ((((P `1_3) * (Q `3_3)) |^ 3) + ((z `1) * ((P `1_3) * ((((P `3_3) * (Q `3_3)) |^ 2) * (Q `3_3))))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by GROUP_1:def_3 .= ((((P `1_3) * (Q `3_3)) |^ 3) + ((z `1) * ((((P `3_3) * (Q `3_3)) |^ 2) * ((Q `3_3) * (P `1_3))))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by GROUP_1:def_3 .= ((((P `1_3) * (Q `3_3)) |^ 3) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((P `1_3) * (Q `3_3)))) + (((z `2) * ((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))) = (- (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3))) - ((((P `1_3) * (Q `3_3)) |^ 3) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((P `1_3) * (Q `3_3)))) by VECTSP_1:17 .= (- (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3))) + ((- (((z `1) * (((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) + (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2))) + ((z `2) * ((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) + (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2))) + ((z `2) * ((Q `3_3) |^ 3))) by VECTSP_1:19 .= (((P `3_3) |^ 3) * (((Q `1_3) |^ 3) + (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)))) + (((P `3_3) |^ 3) * ((z `2) * ((Q `3_3) |^ 3))) by VECTSP_1:4 .= ((((P `3_3) |^ 3) * ((Q `1_3) |^ 3)) + (((P `3_3) |^ 3) * (((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)))) + (((P `3_3) |^ 3) * ((z `2) * ((Q `3_3) |^ 3))) by VECTSP_1:4 .= ((((P `3_3) * (Q `1_3)) |^ 3) + ((((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)) * ((P `3_3) |^ (2 + 1)))) + (((z `2) * ((Q `3_3) |^ 3)) * ((P `3_3) |^ 3)) by BINOM:9 .= ((((P `3_3) * (Q `1_3)) |^ 3) + ((((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)) * (((P `3_3) |^ 2) * (P `3_3)))) + (((z `2) * ((Q `3_3) |^ 3)) * ((P `3_3) |^ 3)) by EC_PF_1:24 .= ((((P `3_3) * (Q `1_3)) |^ 3) + ((((z `1) * (Q `1_3)) * ((Q `3_3) |^ 2)) * (((P `3_3) |^ 2) * (P `3_3)))) + ((z `2) * (((Q `3_3) |^ 3) * ((P `3_3) |^ 3))) by GROUP_1:def_3 .= ((((P `3_3) * (Q `1_3)) |^ 3) + (((z `1) * (Q `1_3)) * (((Q `3_3) |^ 2) * (((P `3_3) |^ 2) * (P `3_3))))) + ((z `2) * (((P `3_3) |^ 3) * ((Q `3_3) |^ 3))) by GROUP_1:def_3 .= ((((P `3_3) * (Q `1_3)) |^ 3) + (((z `1) * (Q `1_3)) * ((((Q `3_3) |^ 2) * ((P `3_3) |^ 2)) * (P `3_3)))) + ((z `2) * (((P `3_3) |^ 3) * ((Q `3_3) |^ 3))) by GROUP_1:def_3 .= ((((P `3_3) * (Q `1_3)) |^ 3) + (((z `1) * (Q `1_3)) * ((((Q `3_3) * (P `3_3)) |^ 2) * (P `3_3)))) + ((z `2) * (((P `3_3) |^ 3) * ((Q `3_3) |^ 3))) by BINOM:9 .= ((((P `3_3) * (Q `1_3)) |^ 3) + (((z `1) * (Q `1_3)) * ((((P `3_3) * (Q `3_3)) |^ 2) * (P `3_3)))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by GROUP_1:def_3 .= ((((P `3_3) * (Q `1_3)) |^ 3) + ((z `1) * ((Q `1_3) * ((((P `3_3) * (Q `3_3)) |^ 2) * (P `3_3))))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by GROUP_1:def_3 .= ((((P `3_3) * (Q `1_3)) |^ 3) + ((z `1) * ((((P `3_3) * (Q `3_3)) |^ 2) * ((P `3_3) * (Q `1_3))))) + (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) by GROUP_1:def_3 .= ((((P `3_3) * (Q `1_3)) |^ 3) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3)))) + (((z `2) * ((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) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3)))) + (((z `2) * ((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) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3)))) + ((((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) + ((- (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3))) + ((- (((z `1) * (((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) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3)))) + (((((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3)) - (((z `2) * ((P `3_3) |^ 3)) * ((Q `3_3) |^ 3))) + ((- (((z `1) * (((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) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3)))) + ((0. (GF p)) + ((- (((z `1) * (((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) + (((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3)))) + ((- (((z `1) * (((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) + ((((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3))) + ((- (((z `1) * (((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) + (((((z `1) * (((P `3_3) * (Q `3_3)) |^ 2)) * ((Q `1_3) * (P `3_3))) - (((z `1) * (((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)) + (((z `1) * (((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)) + (((z `1) * (((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)) + (((z `1) * 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)) + (((z `1) * 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)) + (((z `1) * 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 * (((z `1) * 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 * (((z `1) * 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 * ((z `1) * 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))) + (((z `1) * (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))) + (((z `1) * (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))) + (((z `1) * (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))) + (((z `1) * (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))) + (((z `1) * (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))) + (((z `1) * (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))) + (((z `1) * (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)))) + (((z `1) * (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)))) + (((z `1) * (gf2 |^ 2)) * (((P `3_3) * (Q `3_3)) |^ 2))) by VECTSP_1:9 .= (gf2 |^ 3) * ((0. (GF p)) + (((z `1) * (gf2 |^ 2)) * (((P `3_3) * (Q `3_3)) |^ 2))) by RLVECT_1:5 .= (gf2 |^ 3) * (((z `1) * (gf2 |^ 2)) * (((P `3_3) * (Q `3_3)) |^ 2)) by ALGSTR_1:7 .= ((gf2 |^ 3) * ((z `1) * (gf2 |^ 2))) * (((P `3_3) * (Q `3_3)) |^ 2) by GROUP_1:def_3 .= (((z `1) * (gf2 |^ 2)) * (gf2 |^ 3)) * (((P `3_3) * (Q `3_3)) * ((P `3_3) * (Q `3_3))) by EC_PF_1:22 .= ((z `1) * (gf2 |^ 2)) * ((gf2 |^ 3) * (((P `3_3) * (Q `3_3)) * ((P `3_3) * (Q `3_3)))) by GROUP_1:def_3 .= ((z `1) * (gf2 |^ 2)) * (((gf2 |^ 3) * ((P `3_3) * (Q `3_3))) * ((P `3_3) * (Q `3_3))) by GROUP_1:def_3 .= ((z `1) * (gf2 |^ 2)) * ((((gf2 |^ 3) * (P `3_3)) * (Q `3_3)) * ((P `3_3) * (Q `3_3))) by GROUP_1:def_3 .= ((z `1) * (gf2 |^ 2)) * ((R `3_3) * ((P `3_3) * (Q `3_3))) by A3, MCART_1:def_7 .= ((z `1) * (gf2 |^ 2)) * ((P `3_3) * ((Q `3_3) * (R `3_3))) by GROUP_1:def_3 .= (((z `1) * (gf2 |^ 2)) * (P `3_3)) * ((Q `3_3) * (R `3_3)) by GROUP_1:def_3 .= ((((z `1) * (gf2 |^ 2)) * (P `3_3)) * (Q `3_3)) * (R `3_3) by GROUP_1:def_3 ; ::_thesis: verum end; theorem ThAddEllEq5: :: EC_PF_2:58 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let z be Element of EC_WParam p; ::_thesis: for g2, gf1, gf2, gf3 being Element of (GF p) for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let g2, gf1, gf2, gf3 be Element of (GF p); ::_thesis: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies (((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) ) assume 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))] ; ::_thesis: (((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) 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)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) = - ((((gf2 |^ 2) * ((P `3_3) * (P `3_3))) * (Q `3_3)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) by EC_PF_1:22 .= - (((((gf2 |^ 2) * (P `3_3)) * (P `3_3)) * (Q `3_3)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) by GROUP_1:def_3 .= - (((((gf2 |^ 2) * (P `3_3)) * (Q `3_3)) * (P `3_3)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) by GROUP_1:def_3 .= - (((((gf2 |^ 2) * (P `3_3)) * (Q `3_3)) * (P `3_3)) * (((z `1) * (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)) * ((((z `1) * (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)) * ((((z `1) * (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) * ((((z `1) * (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) * ((z `1) * (R `3_3))) * (R `1_3)) * (R `3_3))) by ThGF102 .= - ((((gf2 |^ 2) * (P `3_3)) * (Q `3_3)) * (((z `1) * (R `3_3)) * (((P `3_3) * (R `1_3)) * (R `3_3)))) by ThGF102 .= - (((((gf2 |^ 2) * (P `3_3)) * (Q `3_3)) * ((z `1) * (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)) * (z `1)) * (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)) * (z `1)) * (R `3_3))) * (((P `3_3) * (R `1_3)) * (R `3_3))) by ThGF102 .= - (((gf2 |^ 2) * ((((z `1) * (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) * (z `1)) * (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)) * ((z `2) * ((R `3_3) |^ 3))) = - (((((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * (z `2)) * ((R `3_3) |^ (2 + 1))) by GROUP_1:def_3 .= - (((((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * (z `2)) * (((R `3_3) |^ 2) * (R `3_3))) by EC_PF_1:24 .= - ((((z `2) * (((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3))) * (R `3_3)) * ((R `3_3) |^ 2)) by GROUP_1:def_3 .= - ((((((z `2) * (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)) * ((z `2) * ((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)) * ((z `2) * ((R `3_3) |^ 3)))) - ((((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * (((z `1) * (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) + (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) + ((z `2) * ((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)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2)))) + ((((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * ((z `2) * ((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)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) + ((((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * ((z `2) * ((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)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) + ((((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * ((z `2) * ((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)) * ((z `2) * ((R `3_3) |^ 3)))) - ((((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * (((z `1) * (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 ; ::_thesis: verum end; theorem ThDobEllEq1: :: EC_PF_2:59 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let z be Element of EC_WParam p; ::_thesis: for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of (GF p); ::_thesis: for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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))) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies ((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))) ) assume 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))] ; ::_thesis: ((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))) 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 ; ::_thesis: verum end; theorem ThDobEllEq2: :: EC_PF_2:60 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let z be Element of EC_WParam p; ::_thesis: for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of (GF p); ::_thesis: for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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))) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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))) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies ((g4 * (gf2 |^ 2)) * (P `3_3)) * (R `1_3) = (R `3_3) * (((gf1 |^ 2) * (P `3_3)) - ((g8 * (gf2 |^ 2)) * (P `1_3))) ) assume 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))] ; ::_thesis: ((g4 * (gf2 |^ 2)) * (P `3_3)) * (R `1_3) = (R `3_3) * (((gf1 |^ 2) * (P `3_3)) - ((g8 * (gf2 |^ 2)) * (P `1_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 ; ::_thesis: verum end; theorem ThDobEllEq3: :: EC_PF_2:61 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)) let z be Element of EC_WParam p; ::_thesis: for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)) let g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of (GF p); ::_thesis: for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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)) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies ((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)) ) assume 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))] ; ::_thesis: ((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)) 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) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3))) = 0. (GF p) by ThOnCurve2; then E4: (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((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)) - ((((z `1) * ((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)) - (((((z `1) * ((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)) - (((((z `1) * ((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)) - (((((z `1) * ((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)) - ((((z `1) * ((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)) - ((((z `1) * ((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) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) + ((z `2) * ((P `3_3) |^ 3))) - (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2)))) by E4, GROUP_1:def_3 .= ((g4 * (R `3_3)) * (gf2 * (P `2_3))) * (((z `2) * ((P `3_3) |^ 3)) + ((((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))) - (((P `1_3) |^ 3) + (((z `1) * (P `1_3)) * ((P `3_3) |^ 2))))) by ALGSTR_1:7 .= ((g4 * (R `3_3)) * (gf2 * (P `2_3))) * (((z `2) * ((P `3_3) |^ 3)) + (0. (GF p))) by RLVECT_1:5 .= ((g4 * (R `3_3)) * (gf2 * (P `2_3))) * ((z `2) * ((P `3_3) |^ 3)) by ALGSTR_1:7 .= (((g4 * (R `3_3)) * gf2) * (P `2_3)) * ((z `2) * ((P `3_3) |^ 3)) by GROUP_1:def_3 .= ((g4 * (R `3_3)) * gf2) * ((P `2_3) * ((z `2) * ((P `3_3) |^ 3))) by GROUP_1:def_3 .= ((g4 * (R `3_3)) * gf2) * ((z `2) * ((P `2_3) * ((P `3_3) |^ (2 + 1)))) by GROUP_1:def_3 .= ((g4 * (R `3_3)) * gf2) * ((z `2) * ((P `2_3) * (((P `3_3) |^ 2) * (P `3_3)))) by EC_PF_1:24 .= (((g4 * (R `3_3)) * gf2) * (z `2)) * ((P `2_3) * ((P `3_3) * ((P `3_3) |^ 2))) by GROUP_1:def_3 .= (((g4 * (R `3_3)) * gf2) * (z `2)) * (gf2 * ((P `3_3) |^ 2)) by A2, GROUP_1:def_3 .= ((g4 * ((R `3_3) * gf2)) * (z `2)) * (gf2 * ((P `3_3) |^ 2)) by GROUP_1:def_3 .= (g4 * (((R `3_3) * gf2) * (z `2))) * (gf2 * ((P `3_3) |^ 2)) by GROUP_1:def_3 .= g4 * ((((R `3_3) * gf2) * (z `2)) * (gf2 * ((P `3_3) |^ 2))) by GROUP_1:def_3 .= g4 * (((((R `3_3) * gf2) * (z `2)) * gf2) * ((P `3_3) |^ 2)) by GROUP_1:def_3 .= g4 * ((gf2 * (gf2 * ((R `3_3) * (z `2)))) * ((P `3_3) |^ 2)) by GROUP_1:def_3 .= g4 * (((gf2 * gf2) * ((R `3_3) * (z `2))) * ((P `3_3) |^ 2)) by GROUP_1:def_3 .= g4 * (((gf2 |^ 2) * ((z `2) * (R `3_3))) * ((P `3_3) |^ 2)) by EC_PF_1:22 .= g4 * ((gf2 |^ 2) * (((z `2) * (R `3_3)) * ((P `3_3) |^ 2))) by GROUP_1:def_3 .= (g4 * (gf2 |^ 2)) * (((P `3_3) |^ 2) * ((z `2) * (R `3_3))) by GROUP_1:def_3 .= ((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * ((z `2) * (R `3_3)) by GROUP_1:def_3 ; ::_thesis: verum end; theorem ThDobEllEq4: :: EC_PF_2:62 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)))) let z be Element of EC_WParam p; ::_thesis: for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)))) let g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of (GF p); ::_thesis: for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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)))) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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)))) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies ((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)))) ) assume 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))] ; ::_thesis: ((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)))) 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)) * ((z `1) * (R `3_3)) = (((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * (z `1)) * (R `3_3) by GROUP_1:def_3 .= (R `3_3) * ((g2 * (gf2 |^ 2)) * ((z `1) * ((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)) * ((z `1) * ((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)) * ((z `1) * ((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)) * ((z `1) * ((P `3_3) |^ 2))) + (0. (GF p))) by VECTSP_1:19 .= ((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * ((z `1) * (R `3_3)) by E1, ALGSTR_1:7 ; ::_thesis: verum end; theorem ThDobEllEq5: :: EC_PF_2:63 for p being 5 _or_greater Prime for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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; ::_thesis: for z being Element of EC_WParam p for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let z be Element of EC_WParam p; ::_thesis: for g2, g3, g4, g8, gf1, gf2, gf3, gf4 being Element of (GF p) for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let g2, g3, g4, g8, gf1, gf2, gf3, gf4 be Element of (GF p); ::_thesis: for P being Element of EC_SetProjCo ((z `1),(z `2),p) for R being 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) let P be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: for R being 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) let R be Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):]; ::_thesis: ( 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))] implies ((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) ) assume 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))] ; ::_thesis: ((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) 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)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) = - ((((((g2 * g2) * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * (R `1_3)) * (z `1)) * ((R `3_3) |^ 2)) by C1, ThGF102 .= - ((((g2 * ((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2))) * (R `1_3)) * (z `1)) * ((R `3_3) |^ 2)) by ThGF102 .= - ((((g2 * (R `1_3)) * ((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2))) * (z `1)) * ((R `3_3) |^ 2)) by GROUP_1:def_3 .= - ((((g2 * (R `1_3)) * ((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2))) * (z `1)) * ((R `3_3) * (R `3_3))) by EC_PF_1:22 .= - (((((g2 * (R `1_3)) * ((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2))) * (z `1)) * (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)) * (z `1)) * (R `3_3)) by GROUP_1:def_3 .= - (((((g2 * (R `1_3)) * (R `3_3)) * ((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2))) * (z `1)) * (R `3_3)) by GROUP_1:def_3 .= - ((((g2 * (R `1_3)) * (R `3_3)) * ((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2))) * ((z `1) * (R `3_3))) by GROUP_1:def_3 .= - (((g2 * (R `1_3)) * (R `3_3)) * (((g2 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * ((z `1) * (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)) * ((z `2) * ((R `3_3) |^ 3))) = - ((((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * (z `2)) * ((R `3_3) |^ (2 + 1))) by GROUP_1:def_3 .= - ((((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * (z `2)) * (((R `3_3) |^ 2) * (R `3_3))) by EC_PF_1:24 .= - (((((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * (z `2)) * (R `3_3)) * ((R `3_3) |^ 2)) by GROUP_1:def_3 .= - (((R `3_3) |^ 2) * (((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * ((z `2) * (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)) * ((z `2) * ((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)) * ((((z `1) * (R `1_3)) * ((R `3_3) |^ 2)) + ((z `2) * ((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)) * (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) + (((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * ((z `2) * ((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)) * ((z `2) * ((R `3_3) |^ 3)))) - (((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * (((z `1) * (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) + (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) + ((z `2) * ((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) + (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) + ((z `2) * ((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) + ((((z `1) * (R `1_3)) * ((R `3_3) |^ 2)) + ((z `2) * ((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)) * ((((z `1) * (R `1_3)) * ((R `3_3) |^ 2)) + ((z `2) * ((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)) * ((((z `1) * (R `1_3)) * ((R `3_3) |^ 2)) + ((z `2) * ((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 ; ::_thesis: verum end; definition let p be 5 _or_greater Prime; let 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 :: EC_PF_2:def 9 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 ex b1 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, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies b1 . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies b1 . (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 b1 . (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 b1 . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) proof set a = z `1 ; set b = z `2 ; A1: ( p > 2 + 1 & Disc ((z `1),(z `2),p) <> 0. (GF p) ) by LMZ1Z2; defpred S1[ 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 = ((z `1) * (($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 S1[P,Q,R] proof let P, Q be Element of EC_SetProjCo ((z `1),(z `2),p); ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] consider PP being 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 being 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 = [0,1,0] as Element of EC_SetProjCo ((z `1),(z `2),p) by EC_PF_1:42; consider OO being Element of ProjCo (GF p) such that B5: ( OO = O & OO in EC_SetProjCo ((z `1),(z `2),p) ) ; percases ( P _EQ_ O or ( Q _EQ_ O & not P _EQ_ O ) or ( not P _EQ_ O & not Q _EQ_ O & not P _EQ_ Q ) or ( not P _EQ_ O & not Q _EQ_ O & P _EQ_ Q ) ) ; supposeB6: P _EQ_ O ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] take Q ; ::_thesis: S1[P,Q,Q] thus S1[P,Q,Q] by B6; ::_thesis: verum end; supposeB6: ( Q _EQ_ O & not P _EQ_ O ) ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] take P ; ::_thesis: S1[P,Q,P] thus S1[P,Q,P] by B6; ::_thesis: verum end; supposeB6: ( not P _EQ_ O & not Q _EQ_ O & not P _EQ_ Q ) ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] 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 = (((((((Q `2_3) * (P `3_3)) - ((P `2_3) * (Q `3_3))) |^ 2) * (P `3_3)) * (Q `3_3)) - ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 3)) - (((g2 * ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 2)) * (P `1_3)) * (Q `3_3)); reconsider 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 = (((((((Q `2_3) * (P `3_3)) - ((P `2_3) * (Q `3_3))) |^ 2) * (P `3_3)) * (Q `3_3)) - ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 3)) - (((g2 * ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 2)) * (P `1_3)) * (Q `3_3)) 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 = [(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))] as Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):] ; percases ( P _EQ_ (compell_ProjCo (z,p)) . Q or not P _EQ_ (compell_ProjCo (z,p)) . Q ) ; supposeC1: P _EQ_ (compell_ProjCo (z,p)) . Q ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] 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 = R as Element of ProjCo (GF p) by EC_PF_1:40; R in EC_SetProjCo ((z `1),(z `2),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 = R `2_3 as Element of (GF p) ; D4: ( OO `1_3 = 0 & OO `2_3 = 1 & OO `3_3 = 0 ) by B5, MCART_1:def_5, MCART_1:def_6, MCART_1: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 ((z `1),(z `2),p) by A1, B5, C8, D5, D6, EC_PF_1:45; ::_thesis: verum end; then reconsider R = R as Element of EC_SetProjCo ((z `1),(z `2),p) ; take R ; ::_thesis: S1[P,Q,R] thus S1[P,Q,R] by B6; ::_thesis: verum end; suppose not P _EQ_ (compell_ProjCo (z,p)) . Q ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] 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 = 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 ((z `1),(z `2),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) + (((z `1) * (R `1_3)) * ((R `3_3) |^ 2))) + ((z `2) * ((R `3_3) |^ 3)))) = 0. (GF p) by ThAddEllEq5; then (((gf2 |^ 2) * ((P `3_3) |^ 2)) * (Q `3_3)) * ((EC_WEqProjCo ((z `1),(z `2),p)) . R) = 0. (GF p) by EC_PF_1:def_8; hence (EC_WEqProjCo ((z `1),(z `2),p)) . R = 0. (GF p) by C11, VECTSP_1:12; ::_thesis: verum end; then R is_on_curve EC_WEqProjCo ((z `1),(z `2),p) by DefOnCurve; then reconsider R = R as Element of EC_SetProjCo ((z `1),(z `2),p) by ThOnCurve1; take R ; ::_thesis: S1[P,Q,R] thus S1[P,Q,R] by B6; ::_thesis: verum end; end; end; supposeB6: ( not P _EQ_ O & not Q _EQ_ O & P _EQ_ Q ) ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] 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 = ((z `1) * ((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)) * ((P `2_3) * (P `3_3)); set gf4 = ((((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2))) |^ 2) - (g8 * (((P `1_3) * (P `2_3)) * ((P `2_3) * (P `3_3)))); reconsider 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)) * ((P `2_3) * (P `3_3)), gf4 = ((((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2))) |^ 2) - (g8 * (((P `1_3) * (P `2_3)) * ((P `2_3) * (P `3_3)))) 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 = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] as Element of [: the carrier of (GF p), the carrier of (GF p), the carrier of (GF p):] ; percases ( P `2_3 = 0 or P `2_3 <> 0 ) ; supposeC1: P `2_3 = 0 ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] 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 = R as Element of ProjCo (GF p) by EC_PF_1:def_6; R in EC_SetProjCo ((z `1),(z `2),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 = R `2_3 as Element of (GF p) ; D4: ( OO `1_3 = 0 & OO `2_3 = 1 & OO `3_3 = 0 ) by B5, MCART_1:def_5, MCART_1:def_6, MCART_1: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 ((z `1),(z `2),p) by A1, B5, C9, D5, D6, EC_PF_1:45; ::_thesis: verum end; then reconsider R = R as Element of EC_SetProjCo ((z `1),(z `2),p) ; take R ; ::_thesis: S1[P,Q,R] thus S1[P,Q,R] by B6; ::_thesis: verum end; supposeC1: P `2_3 <> 0 ; ::_thesis: ex R being Element of EC_SetProjCo ((z `1),(z `2),p) st S1[P,Q,R] 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 = 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 ((z `1),(z `2),p)) . R = 0. (GF p) proof ((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) by ThDobEllEq5; then ((g4 * (gf2 |^ 2)) * ((P `3_3) |^ 2)) * ((EC_WEqProjCo ((z `1),(z `2),p)) . R) = 0. (GF p) by EC_PF_1:def_8; hence (EC_WEqProjCo ((z `1),(z `2),p)) . R = 0. (GF p) by C10, VECTSP_1:12; ::_thesis: verum end; then R is_on_curve EC_WEqProjCo ((z `1),(z `2),p) by DefOnCurve; then reconsider R = R as Element of EC_SetProjCo ((z `1),(z `2),p) by ThOnCurve1; take R ; ::_thesis: S1[P,Q,R] thus S1[P,Q,R] by B6; ::_thesis: verum end; end; 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 S1[P,Q,f . (P,Q)] from BINOP_1:sch_3(A2); take f ; ::_thesis: for P, Q, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies f . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies f . (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 f . (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 f . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) thus for P, Q, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies f . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies f . (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 f . (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 f . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) by A3; ::_thesis: verum end; uniqueness for b1, b2 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, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies b1 . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies b1 . (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 b1 . (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 b1 . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) ) & ( for P, Q, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies b2 . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies b2 . (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 b2 . (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 b2 . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) ) holds b1 = b2 proof set a = z `1 ; set b = z `2 ; defpred S1[ 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 = ((z `1) * (($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 S1[P,Q,o1 . (P,Q)] ) & ( for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds S1[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)); ::_thesis: ( ( for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds S1[P,Q,o1 . (P,Q)] ) & ( for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds S1[P,Q,o2 . (P,Q)] ) implies o1 = o2 ) assume that B1: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds S1[P,Q,o1 . (P,Q)] and B2: for P, Q being Element of EC_SetProjCo ((z `1),(z `2),p) holds S1[P,Q,o2 . (P,Q)] ; ::_thesis: o1 = o2 set O = [0,1,0]; reconsider O = [0,1,0] as Element of EC_SetProjCo ((z `1),(z `2),p) by EC_PF_1:42; for P, Q being 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); ::_thesis: o1 . (P,Q) = o2 . (P,Q) percases ( P _EQ_ O or ( Q _EQ_ O & not P _EQ_ O ) or ( not P _EQ_ O & not Q _EQ_ O & not P _EQ_ Q ) or ( not P _EQ_ O & not Q _EQ_ O & P _EQ_ Q ) ) ; supposeC1: P _EQ_ O ; ::_thesis: o1 . (P,Q) = o2 . (P,Q) o1 . (P,Q) = Q by B1, C1; hence o1 . (P,Q) = o2 . (P,Q) by B2, C1; ::_thesis: verum end; supposeC1: ( Q _EQ_ O & not P _EQ_ O ) ; ::_thesis: o1 . (P,Q) = o2 . (P,Q) o1 . (P,Q) = P by B1, C1; hence o1 . (P,Q) = o2 . (P,Q) by B2, C1; ::_thesis: verum end; supposeC1: ( not P _EQ_ O & not Q _EQ_ O & not P _EQ_ Q ) ; ::_thesis: o1 . (P,Q) = o2 . (P,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 = (((((((Q `2_3) * (P `3_3)) - ((P `2_3) * (Q `3_3))) |^ 2) * (P `3_3)) * (Q `3_3)) - ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 3)) - (((g2 * ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 2)) * (P `1_3)) * (Q `3_3)); reconsider 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 = (((((((Q `2_3) * (P `3_3)) - ((P `2_3) * (Q `3_3))) |^ 2) * (P `3_3)) * (Q `3_3)) - ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 3)) - (((g2 * ((((Q `1_3) * (P `3_3)) - ((P `1_3) * (Q `3_3))) |^ 2)) * (P `1_3)) * (Q `3_3)) 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 o1 . (P,Q) = o2 . (P,Q) by B2, C1; ::_thesis: verum end; supposeC1: ( not P _EQ_ O & not Q _EQ_ O & P _EQ_ Q ) ; ::_thesis: o1 . (P,Q) = o2 . (P,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 = ((z `1) * ((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)) * ((P `2_3) * (P `3_3)); set gf4 = ((((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2))) |^ 2) - (g8 * (((P `1_3) * (P `2_3)) * ((P `2_3) * (P `3_3)))); reconsider 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)) * ((P `2_3) * (P `3_3)), gf4 = ((((z `1) * ((P `3_3) |^ 2)) + (g3 * ((P `1_3) |^ 2))) |^ 2) - (g8 * (((P `1_3) * (P `2_3)) * ((P `2_3) * (P `3_3)))) 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 o1 . (P,Q) = o2 . (P,Q) by B2, C1; ::_thesis: verum end; end; end; hence o1 = o2 by BINOP_1:2; ::_thesis: verum end; hence for b1, b2 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, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies b1 . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies b1 . (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 b1 . (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 b1 . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) ) & ( for P, Q, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies b2 . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies b2 . (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 b2 . (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 b2 . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) ) holds b1 = b2 ; ::_thesis: verum end; end; :: deftheorem defines addell_ProjCo EC_PF_2:def_9_:_ for p being 5 _or_greater Prime for z being Element of EC_WParam p for b3 being Function of [:(EC_SetProjCo ((z `1),(z `2),p)),(EC_SetProjCo ((z `1),(z `2),p)):],(EC_SetProjCo ((z `1),(z `2),p)) holds ( b3 = addell_ProjCo (z,p) iff for P, Q, O being Element of EC_SetProjCo ((z `1),(z `2),p) st O = [0,1,0] holds ( ( P _EQ_ O implies b3 . (P,Q) = Q ) & ( Q _EQ_ O & not P _EQ_ O implies b3 . (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 b3 . (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 b3 . (P,Q) = [((g2 * gf4) * gf2),((gf1 * ((g4 * gf3) - gf4)) - ((g8 * ((P `2_3) |^ 2)) * (gf2 |^ 2))),(g8 * (gf2 |^ 3))] ) ) ); definition let p be 5 _or_greater Prime; let 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); :: original: . redefine funcF . (Q,R) -> Element of EC_SetProjCo ((z `1),(z `2),p); correctness coherence F . (Q,R) is Element of EC_SetProjCo ((z `1),(z `2),p); proof F . (Q,R) in EC_SetProjCo ((z `1),(z `2),p) ; hence F . (Q,R) is Element of EC_SetProjCo ((z `1),(z `2),p) ; ::_thesis: verum end; end;