src/HOL/Algebra/FiniteProduct.thy
changeset 14666 65f8680c3f16
parent 14651 02b8f3bcf7fe
child 14706 71590b7733b7
equal deleted inserted replaced
14665:d2e5df3d1201 14666:65f8680c3f16
   288       then foldD (carrier G) (mult G o f) \<one> A
   288       then foldD (carrier G) (mult G o f) \<one> A
   289       else arbitrary"
   289       else arbitrary"
   290 
   290 
   291 syntax
   291 syntax
   292   "_finprod" :: "index => idt => 'a set => 'b => 'b"
   292   "_finprod" :: "index => idt => 'a set => 'b => 'b"
   293       ("\<Otimes>__:_. _" [1000, 0, 51, 10] 10)
   293       ("(3\<Otimes>__:_. _)" [1000, 0, 51, 10] 10)
   294 syntax (xsymbols)
   294 syntax (xsymbols)
   295   "_finprod" :: "index => idt => 'a set => 'b => 'b"
   295   "_finprod" :: "index => idt => 'a set => 'b => 'b"
   296       ("\<Otimes>__\<in>_. _" [1000, 0, 51, 10] 10)
   296       ("(3\<Otimes>__\<in>_. _)" [1000, 0, 51, 10] 10)
   297 syntax (HTML output)
   297 syntax (HTML output)
   298   "_finprod" :: "index => idt => 'a set => 'b => 'b"
   298   "_finprod" :: "index => idt => 'a set => 'b => 'b"
   299       ("\<Otimes>__\<in>_. _" [1000, 0, 51, 10] 10)
   299       ("(3\<Otimes>__\<in>_. _)" [1000, 0, 51, 10] 10)
   300 translations
   300 translations
   301   "\<Otimes>\<index>i:A. b" == "finprod \<struct>\<index> (%i. b) A"  -- {* Beware of argument permutation! *}
   301   "\<Otimes>\<index>i:A. b" == "finprod \<struct>\<index> (%i. b) A"  -- {* Beware of argument permutation! *}
   302 
   302 
   303 ML_setup {* 
   303 ML_setup {* 
   304   simpset_ref() := simpset() setsubgoaler asm_full_simp_tac;
   304   simpset_ref() := simpset() setsubgoaler asm_full_simp_tac;