Guest User

Untitled

a guest
Jul 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. import data.nat.prime
  2. import algebra.group_power
  3. import tactic.ring
  4.  
  5. universes u v
  6.  
  7. namespace nat
  8.  
  9. class Prime :=
  10. (p : ℕ) (pp : nat.prime p)
  11.  
  12. end nat
  13.  
  14. open nat.Prime
  15. variable [nat.Prime] -- fix a prime p
  16.  
  17. def Frob {A : Type u} [ring A] (x : A) := x^p
  18.  
  19. def delta_ring.aux {A : Type u} [comm_ring A] : A → A → A := sorry
  20. -- λ a b, (a^p + b^p - (a+b)^p)/p
  21.  
  22. class delta_ring (A : Type u) extends comm_ring A :=
  23. (δ : A → A)
  24. (zero_prop : δ(0) = 0)
  25. (one_prop : δ(1) = 0)
  26. (add_prop : ∀ {a b}, δ(a+b) = δ(a) + δ(b) + (delta_ring.aux a b))
  27. (mul_prop : ∀ {a b}, δ(a*b) = a^p*δ(b) + b^p*δ(a) + p*δ(a)*δ(b))
  28.  
  29. namespace delta_ring
  30.  
  31. variables {A : Type u} [delta_ring A]
  32.  
  33. @[simp] lemma delta_zero : δ(0:A) = 0 := zero_prop A
  34. @[simp] lemma delta_one : δ(1:A) = 0 := one_prop A
  35. @[simp] lemma aux_prop (a b : A) : (p : A) * delta_ring.aux a b = (a^p + b^p - (a+b)^p) := sorry
  36.  
  37. def Frob_lift (x : A) := x^p + p*δ(x)
  38.  
  39. instance : is_ring_hom (Frob_lift : A → A) :=
  40. { map_one := by simp [Frob_lift],
  41. map_add :=
  42. begin
  43. intros a b,
  44. simp [Frob_lift,add_prop,left_distrib]
  45. end,
  46. map_mul :=
  47. begin
  48. intros a b,
  49. simp [Frob_lift,mul_prop,mul_pow],
  50. ring
  51. end }
  52.  
  53. end delta_ring
Add Comment
Please, Sign In to add comment