Documentation

Elligator.Elligator1.uProperties

theorem Elligator.Elligator1.u_ne_zero {F : Type u_1} [Field F] [Fintype F] (q : ) (field_cardinality : Fintype.card F = q) (q_prime_power : IsPrimePow q) (q_mod_4_congruent_3 : q % 4 = 3) (t : { n : F // n 1 n -1 }) :
u t q field_cardinality q_prime_power q_mod_4_congruent_3 0
theorem Elligator.Elligator1.u_pow_two_ne_zero {F : Type u_1} [Field F] [Fintype F] (q : ) (field_cardinality : Fintype.card F = q) (q_prime_power : IsPrimePow q) (q_mod_4_congruent_3 : q % 4 = 3) (t : { n : F // n 1 n -1 }) :
have u_of_t := u t q field_cardinality q_prime_power q_mod_4_congruent_3; u_of_t ^ 2 0
theorem Elligator.Elligator1.u_comparison {F : Type u_1} [Field F] [Fintype F] (t : { n : F // n 1 n -1 }) (s : F) (s_h1 : s 0) (s_h2 : (s ^ 2 - 2) * (s ^ 2 + 2) 0) (q : ) (field_cardinality : Fintype.card F = q) (q_prime_power : IsPrimePow q) (q_mod_4_congruent_3 : q % 4 = 3) :
let t1 := t; let t2 := -t1; have h2_2 := ; have u1 := u t q field_cardinality q_prime_power q_mod_4_congruent_3; have u2 := u t2, h2_2 q field_cardinality q_prime_power q_mod_4_congruent_3; u2 = 1 / u1
theorem Elligator.Elligator1.u_of_zero {F : Type u_1} [Field F] [Fintype F] (q : ) (field_cardinality : Fintype.card F = q) (q_prime_power : IsPrimePow q) (q_mod_4_congruent_3 : q % 4 = 3) :
have h1 := ; have u_of_t := u 0, h1 q field_cardinality q_prime_power q_mod_4_congruent_3; u_of_t = 1