Theory RingHomo

Up to index of Isabelle/HOL/HOL-Algebra

theory RingHomo
imports Ring
uses [RingHomo.ML]
begin

(*
    Ring homomorphism
    $Id: RingHomo.thy,v 1.3 2005/09/17 18:49:15 wenzelm Exp $
    Author: Clemens Ballarin, started 15 April 1997
*)

theory RingHomo imports Ring begin

constdefs
  homo  :: "('a::ring => 'b::ring) => bool"
  "homo f == (ALL a b. f (a + b) = f a + f b &
                                   f (a * b) = f a * f b) &
                                   f 1 = 1"

end

theorem homoI:

  [| !!a b. f (a + b) = f a + f b; !!a b. f (a * b) = f a * f b;
     f (1::'a) = (1::'b) |]
  ==> homo f

theorem homo_add:

  homo f ==> f (a + b) = f a + f b

theorem homo_mult:

  homo f ==> f (a * b) = f a * f b

theorem homo_one:

  homo f ==> f (1::'a) = (1::'b)

theorem homo_zero:

  homo f ==> f (0::'a) = (0::'b)

theorem homo_uminus:

  homo f ==> f (- a) = - f a

theorem homo_power:

  homo f ==> f (a ^ n) = f a ^ n

theorem homo_SUM:

  homo f ==> f (setsum g {..n}) = setsum (f o g) {..n}

theorem id_homo:

  homo (%x. x)