src/HOL/ex/Classpackage.thy
changeset 19951 d58e2c564100
parent 19933 16a5037f2d25
child 19958 fc4ac94f03e0
equal deleted inserted replaced
19950:fd74bf4e603e 19951:d58e2c564100
   302 
   302 
   303 instance group_prod_def: (group, group) * :: group
   303 instance group_prod_def: (group, group) * :: group
   304   mult_prod_def: "x \<otimes> y == let (x1, x2) = x in (let (y1, y2) = y in
   304   mult_prod_def: "x \<otimes> y == let (x1, x2) = x in (let (y1, y2) = y in
   305               ((x1::'a::group) \<otimes> y1, (x2::'b::group) \<otimes> y2))"
   305               ((x1::'a::group) \<otimes> y1, (x2::'b::group) \<otimes> y2))"
   306   mult_one_def: "\<one> == (\<one>::'a::group, \<one>::'b::group)"
   306   mult_one_def: "\<one> == (\<one>::'a::group, \<one>::'b::group)"
   307   mult_inv_def: "\<div> x == let (x1, x2) = x in (\<div> x1, \<div> x2)"
   307   mult_inv_def: "\<div> x == let (x1::'a::group, x2::'b::group) = x in (\<div> x1, \<div> x2)"
   308 by default (simp_all add: split_paired_all group_prod_def assoc neutl invl)
   308 by default (simp_all add: split_paired_all group_prod_def assoc neutl invl)
   309 
   309 
   310 instance group_comm_prod_def: (group_comm, group_comm) * :: group_comm
   310 instance group_comm_prod_def: (group_comm, group_comm) * :: group_comm
   311 by default (simp_all add: split_paired_all group_prod_def assoc neutl invl comm)
   311 by default (simp_all add: split_paired_all group_prod_def assoc neutl invl comm)
   312 
   312