Documentation

Elligator.Elligator1.MapProperties

theorem Elligator.Elligator1.y_h1 {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) :
have y_of_t := y t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have X_of_t := X t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; X_of_t ^ 2 + (2 + r_of_s * (y_of_t - 1) / (y_of_t + 1)) * X_of_t + 1 = 0
theorem Elligator.Elligator1.y_h2 {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) :
have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have X_of_t := X t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; X_of_t ^ 2 + 2 * (1 + η_of_point * r_of_s) * X_of_t + 1 = 0
theorem Elligator.Elligator1.y_h3 {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) :
have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have X_of_t := X t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; X_of_t + 1 / X_of_t = -2 * (1 + η_of_point * r_of_s)
theorem Elligator.Elligator1.X_comparison_implication {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t 1 t -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 X1 := X t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have X2 := X t2, h2_2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; X1 + X2 = -2 * (1 + η_of_point * r_of_s)
theorem Elligator.Elligator1.X_comparison_implication2 {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t 1 t -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 X1 := X t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have X2 := X t2, h2_2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; X2 * X1 = 1
theorem Elligator.Elligator1.χ_IsSquare_h1 {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t 1 t -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) :
have v_of_t := v t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have χ_of_v := LegendreSymbol.χ v_of_t q field_cardinality q_prime_power q_mod_4_congruent_3; IsSquare ((χ_of_v * v_of_t) ^ ((q + 1) / 4))
theorem Elligator.Elligator1.y_comparison {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t 1 t -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 y1 := y t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have y2 := y t2, h2_2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; y2 = y1
theorem Elligator.Elligator1.point_comparison {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t 1 t -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 y1 := y t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have y2 := y t2, h2_2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have x1 := x t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have x2 := x t2, h2_2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; (x1, y1) = (x2, y2)
theorem Elligator.Elligator1.X_η_h1 {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) (η_h1 : have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; η_of_point * r_of_s = -2) :
have X_of_t := X t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; (X_of_t - 1) ^ 2 = 0
theorem Elligator.Elligator1.X_η_h2 {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) (η_h1 : have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; η_of_point * r_of_s = -2) :
have X_of_t := X t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; X_of_t = 1
theorem Elligator.Elligator1.u_η_h1 {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) (η_h1 : have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; η_of_point * r_of_s = -2) :
have u_of_t := u t q field_cardinality q_prime_power q_mod_4_congruent_3; u_of_t = 1
theorem Elligator.Elligator1.t_η_h1 {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) (η_h1 : have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; η_of_point * r_of_s = -2) :
t = 0
theorem Elligator.Elligator1.v_η_h1 {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) (η_h1 : have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; η_of_point * r_of_s = -2) :
have v_of_t := v t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; v_of_t = r_of_s ^ 2
theorem Elligator.Elligator1.Y_η_h1 {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) (η_h1 : have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; η_of_point * r_of_s = -2) :
have Y_of_t := Y t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have c_of_s := c s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have χ_of_c_of_s := LegendreSymbol.χ c_of_s q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; Y_of_t = r_of_s * χ_of_c_of_s
theorem Elligator.Elligator1.y_η_h1 {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) (η_h1 : have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have η_of_point := η q field_cardinality q_prime_power q_mod_4_congruent_3 point; η_of_point * r_of_s = -2) :
have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have y_of_t := y t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; y_of_t = (r_of_s - 4) / (r_of_s + 4)
theorem Elligator.Elligator1.y_of_zero {F : Type u_1} [Field F] [Fintype F] (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) :
have h1 := ; have y_of_t := y 0, h1 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have r_of_s := r s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; y_of_t = (r_of_s - 4) / (r_of_s + 4)
theorem Elligator.Elligator1.ϕ_of_t_eq_zero_one {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) :
have ϕ_of_t := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_of_t = (0, 1)
theorem Elligator.Elligator1.y_add_one_eq_two {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t = 1 t = -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) :
have point := (ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3); have y_of_t := point.2; y_of_t + 1 = 2
noncomputable def Elligator.Elligator1.ϕ_over_F_prop1 {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) (point : F × F) :
Equations
Instances For
    def Elligator.Elligator1.ϕ_over_F_prop2 {F : Type u_1} [Field F] [Fintype F] (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) (point : F × F) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Elligator.Elligator1.ϕ_over_F_prop3 {F : Type u_1} [Field F] [Fintype F] (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) (point : F × F) :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Elligator.Elligator1.ϕ_over_F_props {F : Type u_1} [Field F] [Fintype F] (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) (point : F × F) :
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def Elligator.Elligator1.ϕ_over_F {F : Type u_1} [Field F] [Fintype F] (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) :
          Set (F × F)
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop1_base_case {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) :
            have point := (ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3); ϕ_over_F_prop1 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop1_main_case {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) :
            have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop1 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop1 {F : Type u_1} [Field F] [Fintype F] (t 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) :
            have point := ϕ t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop1 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop2_base_case {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) :
            have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop2_main_case {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) :
            have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop2 {F : Type u_1} [Field F] [Fintype F] (t 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) :
            have point := ϕ t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop2 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop3_base_case {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) :
            have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop3 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop3_main_case {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) :
            have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop3 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_in_ϕ_over_F_with_prop3 {F : Type u_1} [Field F] [Fintype F] (t 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) :
            have point := ϕ t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_prop3 s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_props_of_point_in_ϕ_over_F {F : Type u_1} [Field F] [Fintype F] (t 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) :
            have point := (ϕ t s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3); point ϕ_over_F s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3ϕ_over_F_props s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point
            theorem Elligator.Elligator1.point_of_ϕ_in_ϕ_over_F {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t 1 t -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) :
            have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; have ϕ_over_F := ϕ_over_F s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; point ϕ_over_F
            theorem Elligator.Elligator1.point_of_ϕ_fulfills_ϕ_over_F_props {F : Type u_1} [Field F] [Fintype F] (t : { t : F // t 1 t -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) :
            have point := ϕ (↑t) s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3; ϕ_over_F_props s s_h1 s_h2 q field_cardinality q_prime_power q_mod_4_congruent_3 point