Documentation

Mathlib.Algebra.CharP.Frobenius

The Frobenius endomorphism #

Tags #

Frobenius endomorphism

Implementation notes #

The definitions of frobenius and iterateFrobenius ring homomorphisms are in Mathlib.Algebra.CharP.Lemmas as they are needed for some results that in turn are used in files forbidding to import algebra-related definitions (see Mathlib.Algebra.CharP.Two.lean).

theorem frobenius_def {R : Type u_1} [CommSemiring R] (p : ) [ExpChar R p] (x : R) :
(frobenius R p) x = x ^ p
theorem iterateFrobenius_def {R : Type u_1} [CommSemiring R] (p n : ) [ExpChar R p] (x : R) :
(iterateFrobenius R p n) x = x ^ p ^ n
theorem iterate_frobenius {R : Type u_1} [CommSemiring R] (p n : ) [ExpChar R p] (x : R) :
(⇑(frobenius R p))^[n] x = x ^ p ^ n
theorem iterateFrobenius_eq_pow (R : Type u_1) [CommSemiring R] (p n : ) [ExpChar R p] :
theorem coe_iterateFrobenius (R : Type u_1) [CommSemiring R] (p n : ) [ExpChar R p] :
(iterateFrobenius R p n) = (⇑(frobenius R p))^[n]
theorem iterateFrobenius_one_apply (R : Type u_1) [CommSemiring R] (p : ) [ExpChar R p] (x : R) :
(iterateFrobenius R p 1) x = x ^ p
@[simp]
theorem iterateFrobenius_one (R : Type u_1) [CommSemiring R] (p : ) [ExpChar R p] :
theorem iterateFrobenius_zero_apply (R : Type u_1) [CommSemiring R] (p : ) [ExpChar R p] (x : R) :
(iterateFrobenius R p 0) x = x
@[simp]
theorem iterateFrobenius_zero (R : Type u_1) [CommSemiring R] (p : ) [ExpChar R p] :
theorem iterateFrobenius_add_apply (R : Type u_1) [CommSemiring R] (p m n : ) [ExpChar R p] (x : R) :
(iterateFrobenius R p (m + n)) x = (iterateFrobenius R p m) ((iterateFrobenius R p n) x)
theorem iterateFrobenius_add (R : Type u_1) [CommSemiring R] (p m n : ) [ExpChar R p] :
theorem iterateFrobenius_mul_apply (R : Type u_1) [CommSemiring R] (p m n : ) [ExpChar R p] (x : R) :
(iterateFrobenius R p (m * n)) x = (⇑(iterateFrobenius R p m))^[n] x
theorem coe_iterateFrobenius_mul (R : Type u_1) [CommSemiring R] (p m n : ) [ExpChar R p] :
(iterateFrobenius R p (m * n)) = (⇑(iterateFrobenius R p m))^[n]
theorem frobenius_mul {R : Type u_1} [CommSemiring R] (p : ) [ExpChar R p] (x y : R) :
(frobenius R p) (x * y) = (frobenius R p) x * (frobenius R p) y
theorem frobenius_one {R : Type u_1} [CommSemiring R] (p : ) [ExpChar R p] :
(frobenius R p) 1 = 1
theorem MonoidHom.map_frobenius {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (f : R →* S) (p : ) [ExpChar R p] [ExpChar S p] (x : R) :
f ((frobenius R p) x) = (frobenius S p) (f x)
theorem RingHom.map_frobenius {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (g : R →+* S) (p : ) [ExpChar R p] [ExpChar S p] (x : R) :
g ((frobenius R p) x) = (frobenius S p) (g x)
theorem MonoidHom.map_iterate_frobenius {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (f : R →* S) (p : ) [ExpChar R p] [ExpChar S p] (x : R) (n : ) :
f ((⇑(frobenius R p))^[n] x) = (⇑(frobenius S p))^[n] (f x)
theorem MonoidHom.map_iterateFrobenius {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (f : R →* S) (p : ) [ExpChar R p] [ExpChar S p] (x : R) (n : ) :
f ((iterateFrobenius R p n) x) = (iterateFrobenius S p n) (f x)
theorem RingHom.map_iterate_frobenius {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (g : R →+* S) (p : ) [ExpChar R p] [ExpChar S p] (x : R) (n : ) :
g ((⇑(frobenius R p))^[n] x) = (⇑(frobenius S p))^[n] (g x)
theorem RingHom.map_iterateFrobenius {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (g : R →+* S) (p : ) [ExpChar R p] [ExpChar S p] (x : R) (n : ) :
g ((iterateFrobenius R p n) x) = (iterateFrobenius S p n) (g x)
theorem MonoidHom.iterate_map_frobenius {R : Type u_1} [CommSemiring R] (x : R) (f : R →* R) (p : ) [ExpChar R p] (n : ) :
(⇑f)^[n] ((frobenius R p) x) = (frobenius R p) ((⇑f)^[n] x)
theorem RingHom.iterate_map_frobenius {R : Type u_1} [CommSemiring R] (x : R) (f : R →+* R) (p : ) [ExpChar R p] (n : ) :
(⇑f)^[n] ((frobenius R p) x) = (frobenius R p) ((⇑f)^[n] x)
theorem RingHom.frobenius_comm {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (g : R →+* S) (p : ) [ExpChar R p] [ExpChar S p] :
g.comp (frobenius R p) = (frobenius S p).comp g

The Frobenius endomorphism commutes with any ring homomorphism.

theorem RingHom.iterateFrobenius_comm {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] (g : R →+* S) (p : ) [ExpChar R p] [ExpChar S p] (n : ) :

The iterated Frobenius endomorphism commutes with any ring homomorphism.

def LinearMap.frobenius (R : Type u_1) [CommSemiring R] (S : Type u_2) [CommSemiring S] (p : ) [ExpChar R p] [ExpChar S p] [Algebra R S] :

The frobenius map of an algebra as a frobenius-semilinear map.

Equations
Instances For
    def LinearMap.iterateFrobenius (R : Type u_1) [CommSemiring R] (S : Type u_2) [CommSemiring S] (p n : ) [ExpChar R p] [ExpChar S p] [Algebra R S] :

    The iterated frobenius map of an algebra as a iterated-frobenius-semilinear map.

    Equations
    Instances For
      theorem LinearMap.frobenius_def (R : Type u_1) [CommSemiring R] (S : Type u_2) [CommSemiring S] (p : ) [ExpChar R p] [ExpChar S p] [Algebra R S] (x : S) :
      (frobenius R S p) x = x ^ p
      theorem LinearMap.iterateFrobenius_def (R : Type u_1) [CommSemiring R] (S : Type u_2) [CommSemiring S] (p : ) [ExpChar R p] [ExpChar S p] [Algebra R S] (n : ) (x : S) :
      (iterateFrobenius R S p n) x = x ^ p ^ n
      theorem frobenius_zero (R : Type u_1) [CommSemiring R] (p : ) [ExpChar R p] :
      (frobenius R p) 0 = 0
      theorem frobenius_add (R : Type u_1) [CommSemiring R] (p : ) [ExpChar R p] (x y : R) :
      (frobenius R p) (x + y) = (frobenius R p) x + (frobenius R p) y
      theorem frobenius_natCast (R : Type u_1) [CommSemiring R] (p : ) [ExpChar R p] (n : ) :
      (frobenius R p) n = n
      theorem frobenius_neg {R : Type u_1} [CommRing R] (p : ) [ExpChar R p] (x : R) :
      (frobenius R p) (-x) = -(frobenius R p) x
      theorem frobenius_sub {R : Type u_1} [CommRing R] (p : ) [ExpChar R p] (x y : R) :
      (frobenius R p) (x - y) = (frobenius R p) x - (frobenius R p) y