interpretation/interpret: prefixes are mandatory by default;
authorwenzelm
Thu Mar 26 20:08:55 2009 +0100 (2009-03-26)
changeset 30729461ee3e49ad3
parent 30728 f0aeca99b5d9
child 30733 8fe5bf6169e9
interpretation/interpret: prefixes are mandatory by default;
doc-src/Classes/Thy/Classes.thy
doc-src/Classes/Thy/document/Classes.tex
src/FOL/ex/LocaleTest.thy
src/HOL/Algebra/AbelCoset.thy
src/HOL/Algebra/Group.thy
src/HOL/Algebra/Ideal.thy
src/HOL/Algebra/IntRing.thy
src/HOL/Algebra/RingHom.thy
src/HOL/Algebra/UnivPoly.thy
src/HOL/Complex.thy
src/HOL/Decision_Procs/Dense_Linear_Order.thy
src/HOL/Divides.thy
src/HOL/Finite_Set.thy
src/HOL/Groebner_Basis.thy
src/HOL/HahnBanach/Subspace.thy
src/HOL/Lattices.thy
src/HOL/Library/FrechetDeriv.thy
src/HOL/Library/Inner_Product.thy
src/HOL/Library/Multiset.thy
src/HOL/Library/Numeral_Type.thy
src/HOL/Library/Product_Vector.thy
src/HOL/Library/SetsAndFunctions.thy
src/HOL/NSA/StarDef.thy
src/HOL/RealVector.thy
src/HOL/Word/TdThs.thy
src/HOL/Word/WordArith.thy
src/HOL/Word/WordBitwise.thy
src/HOL/Word/WordDefinition.thy
src/HOL/Word/WordGenLib.thy
src/HOL/ex/LocaleTest2.thy
src/HOLCF/Algebraic.thy
src/HOLCF/Bifinite.thy
src/HOLCF/CompactBasis.thy
src/HOLCF/Completion.thy
src/HOLCF/ConvexPD.thy
src/HOLCF/LowerPD.thy
src/HOLCF/Universal.thy
src/HOLCF/UpperPD.thy
src/ZF/Constructible/L_axioms.thy
src/ZF/Constructible/Rec_Separation.thy
src/ZF/Constructible/Separation.thy
     1.1 --- a/doc-src/Classes/Thy/Classes.thy	Thu Mar 26 19:24:21 2009 +0100
     1.2 +++ b/doc-src/Classes/Thy/Classes.thy	Thu Mar 26 20:08:55 2009 +0100
     1.3 @@ -458,7 +458,7 @@
     1.4    of monoids for lists:
     1.5  *}
     1.6  
     1.7 -interpretation %quote list_monoid!: monoid append "[]"
     1.8 +interpretation %quote list_monoid: monoid append "[]"
     1.9    proof qed auto
    1.10  
    1.11  text {*
    1.12 @@ -473,7 +473,7 @@
    1.13    "replicate 0 _ = []"
    1.14    | "replicate (Suc n) xs = xs @ replicate n xs"
    1.15  
    1.16 -interpretation %quote list_monoid!: monoid append "[]" where
    1.17 +interpretation %quote list_monoid: monoid append "[]" where
    1.18    "monoid.pow_nat append [] = replicate"
    1.19  proof -
    1.20    interpret monoid append "[]" ..
     2.1 --- a/doc-src/Classes/Thy/document/Classes.tex	Thu Mar 26 19:24:21 2009 +0100
     2.2 +++ b/doc-src/Classes/Thy/document/Classes.tex	Thu Mar 26 20:08:55 2009 +0100
     2.3 @@ -863,7 +863,7 @@
     2.4  %
     2.5  \isatagquote
     2.6  \isacommand{interpretation}\isamarkupfalse%
     2.7 -\ list{\isacharunderscore}monoid{\isacharbang}{\isacharcolon}\ monoid\ append\ {\isachardoublequoteopen}{\isacharbrackleft}{\isacharbrackright}{\isachardoublequoteclose}\isanewline
     2.8 +\ list{\isacharunderscore}monoid{\isacharcolon}\ monoid\ append\ {\isachardoublequoteopen}{\isacharbrackleft}{\isacharbrackright}{\isachardoublequoteclose}\isanewline
     2.9  \ \ \isacommand{proof}\isamarkupfalse%
    2.10  \ \isacommand{qed}\isamarkupfalse%
    2.11  \ auto%
    2.12 @@ -894,7 +894,7 @@
    2.13  \ \ {\isacharbar}\ {\isachardoublequoteopen}replicate\ {\isacharparenleft}Suc\ n{\isacharparenright}\ xs\ {\isacharequal}\ xs\ {\isacharat}\ replicate\ n\ xs{\isachardoublequoteclose}\isanewline
    2.14  \isanewline
    2.15  \isacommand{interpretation}\isamarkupfalse%
    2.16 -\ list{\isacharunderscore}monoid{\isacharbang}{\isacharcolon}\ monoid\ append\ {\isachardoublequoteopen}{\isacharbrackleft}{\isacharbrackright}{\isachardoublequoteclose}\ \isakeyword{where}\isanewline
    2.17 +\ list{\isacharunderscore}monoid{\isacharcolon}\ monoid\ append\ {\isachardoublequoteopen}{\isacharbrackleft}{\isacharbrackright}{\isachardoublequoteclose}\ \isakeyword{where}\isanewline
    2.18  \ \ {\isachardoublequoteopen}monoid{\isachardot}pow{\isacharunderscore}nat\ append\ {\isacharbrackleft}{\isacharbrackright}\ {\isacharequal}\ replicate{\isachardoublequoteclose}\isanewline
    2.19  \isacommand{proof}\isamarkupfalse%
    2.20  \ {\isacharminus}\isanewline
    2.21 @@ -1191,7 +1191,7 @@
    2.22  \hspace*{0pt}\\
    2.23  \hspace*{0pt}pow{\char95}nat ::~forall a.~(Monoid a) => Nat -> a -> a;\\
    2.24  \hspace*{0pt}pow{\char95}nat Zero{\char95}nat x = neutral;\\
    2.25 -\hspace*{0pt}pow{\char95}nat (Suc n) x = mult x (pow{\char95}nat n x);\\
    2.26 +\hspace*{0pt}pow{\char95}nat (Suc n) xa = mult xa (pow{\char95}nat n xa);\\
    2.27  \hspace*{0pt}\\
    2.28  \hspace*{0pt}pow{\char95}int ::~forall a.~(Group a) => Integer -> a -> a;\\
    2.29  \hspace*{0pt}pow{\char95}int k x =\\
    2.30 @@ -1272,8 +1272,8 @@
    2.31  \hspace*{0pt} ~IntInf.int group;\\
    2.32  \hspace*{0pt}\\
    2.33  \hspace*{0pt}fun pow{\char95}nat A{\char95}~Zero{\char95}nat x = neutral (monoidl{\char95}monoid A{\char95})\\
    2.34 -\hspace*{0pt} ~| pow{\char95}nat A{\char95}~(Suc n) x =\\
    2.35 -\hspace*{0pt} ~~~mult ((semigroup{\char95}monoidl o monoidl{\char95}monoid) A{\char95}) x (pow{\char95}nat A{\char95}~n x);\\
    2.36 +\hspace*{0pt} ~| pow{\char95}nat A{\char95}~(Suc n) xa =\\
    2.37 +\hspace*{0pt} ~~~mult ((semigroup{\char95}monoidl o monoidl{\char95}monoid) A{\char95}) xa (pow{\char95}nat A{\char95}~n xa);\\
    2.38  \hspace*{0pt}\\
    2.39  \hspace*{0pt}fun pow{\char95}int A{\char95}~k x =\\
    2.40  \hspace*{0pt} ~(if IntInf.<= ((0 :~IntInf.int),~k)\\
     3.1 --- a/src/FOL/ex/LocaleTest.thy	Thu Mar 26 19:24:21 2009 +0100
     3.2 +++ b/src/FOL/ex/LocaleTest.thy	Thu Mar 26 20:08:55 2009 +0100
     3.3 @@ -119,7 +119,7 @@
     3.4  
     3.5  term extra_type.test thm extra_type.test_def
     3.6  
     3.7 -interpretation var: extra_type "0" "%x y. x = 0" .
     3.8 +interpretation var?: extra_type "0" "%x y. x = 0" .
     3.9  
    3.10  thm var.test_def
    3.11  
    3.12 @@ -381,13 +381,13 @@
    3.13  
    3.14  subsection {* Sublocale, then interpretation in theory *}
    3.15  
    3.16 -interpretation int: lgrp "op +" "0" "minus"
    3.17 +interpretation int?: lgrp "op +" "0" "minus"
    3.18  proof unfold_locales
    3.19  qed (rule int_assoc int_zero int_minus)+
    3.20  
    3.21  thm int.assoc int.semi_axioms
    3.22  
    3.23 -interpretation int2: semi "op +"
    3.24 +interpretation int2?: semi "op +"
    3.25    by unfold_locales  (* subsumed, thm int2.assoc not generated *)
    3.26  
    3.27  thm int.lone int.right.rone
    3.28 @@ -443,7 +443,7 @@
    3.29  
    3.30  end
    3.31  
    3.32 -interpretation x!: logic_o "op &" "Not"
    3.33 +interpretation x: logic_o "op &" "Not"
    3.34    where bool_logic_o: "logic_o.lor_o(op &, Not, x, y) <-> x | y"
    3.35  proof -
    3.36    show bool_logic_o: "PROP logic_o(op &, Not)" by unfold_locales fast+
     4.1 --- a/src/HOL/Algebra/AbelCoset.thy	Thu Mar 26 19:24:21 2009 +0100
     4.2 +++ b/src/HOL/Algebra/AbelCoset.thy	Thu Mar 26 20:08:55 2009 +0100
     4.3 @@ -540,8 +540,8 @@
     4.4                                    (| carrier = carrier H, mult = add H, one = zero H |) h"
     4.5    shows "abelian_group_hom G H h"
     4.6  proof -
     4.7 -  interpret G!: abelian_group G by fact
     4.8 -  interpret H!: abelian_group H by fact
     4.9 +  interpret G: abelian_group G by fact
    4.10 +  interpret H: abelian_group H by fact
    4.11    show ?thesis apply (intro abelian_group_hom.intro abelian_group_hom_axioms.intro)
    4.12      apply fact
    4.13      apply fact
    4.14 @@ -692,7 +692,7 @@
    4.15    assumes carr: "x \<in> carrier G" "x' \<in> carrier G"
    4.16    shows "(x' \<in> H +> x) = (x' \<ominus> x \<in> H)"
    4.17  proof -
    4.18 -  interpret G!: ring G by fact
    4.19 +  interpret G: ring G by fact
    4.20    from carr
    4.21    have "(x' \<in> H +> x) = (x' \<oplus> \<ominus>x \<in> H)" by (rule a_rcos_module)
    4.22    with carr
     5.1 --- a/src/HOL/Algebra/Group.thy	Thu Mar 26 19:24:21 2009 +0100
     5.2 +++ b/src/HOL/Algebra/Group.thy	Thu Mar 26 20:08:55 2009 +0100
     5.3 @@ -488,8 +488,8 @@
     5.4    assumes "monoid G" and "monoid H"
     5.5    shows "monoid (G \<times>\<times> H)"
     5.6  proof -
     5.7 -  interpret G!: monoid G by fact
     5.8 -  interpret H!: monoid H by fact
     5.9 +  interpret G: monoid G by fact
    5.10 +  interpret H: monoid H by fact
    5.11    from assms
    5.12    show ?thesis by (unfold monoid_def DirProd_def, auto) 
    5.13  qed
    5.14 @@ -500,8 +500,8 @@
    5.15    assumes "group G" and "group H"
    5.16    shows "group (G \<times>\<times> H)"
    5.17  proof -
    5.18 -  interpret G!: group G by fact
    5.19 -  interpret H!: group H by fact
    5.20 +  interpret G: group G by fact
    5.21 +  interpret H: group H by fact
    5.22    show ?thesis by (rule groupI)
    5.23       (auto intro: G.m_assoc H.m_assoc G.l_inv H.l_inv
    5.24             simp add: DirProd_def)
    5.25 @@ -525,9 +525,9 @@
    5.26        and h: "h \<in> carrier H"
    5.27    shows "m_inv (G \<times>\<times> H) (g, h) = (inv\<^bsub>G\<^esub> g, inv\<^bsub>H\<^esub> h)"
    5.28  proof -
    5.29 -  interpret G!: group G by fact
    5.30 -  interpret H!: group H by fact
    5.31 -  interpret Prod!: group "G \<times>\<times> H"
    5.32 +  interpret G: group G by fact
    5.33 +  interpret H: group H by fact
    5.34 +  interpret Prod: group "G \<times>\<times> H"
    5.35      by (auto intro: DirProd_group group.intro group.axioms assms)
    5.36    show ?thesis by (simp add: Prod.inv_equality g h)
    5.37  qed
     6.1 --- a/src/HOL/Algebra/Ideal.thy	Thu Mar 26 19:24:21 2009 +0100
     6.2 +++ b/src/HOL/Algebra/Ideal.thy	Thu Mar 26 20:08:55 2009 +0100
     6.3 @@ -711,7 +711,7 @@
     6.4    obtains "carrier R = I"
     6.5      | "\<exists>a b. a \<in> carrier R \<and> b \<in> carrier R \<and> a \<otimes> b \<in> I \<and> a \<notin> I \<and> b \<notin> I"
     6.6  proof -
     6.7 -  interpret R!: cring R by fact
     6.8 +  interpret R: cring R by fact
     6.9    assume "carrier R = I ==> thesis"
    6.10      and "\<exists>a b. a \<in> carrier R \<and> b \<in> carrier R \<and> a \<otimes> b \<in> I \<and> a \<notin> I \<and> b \<notin> I \<Longrightarrow> thesis"
    6.11    then show thesis using primeidealCD [OF R.is_cring notprime] by blast
     7.1 --- a/src/HOL/Algebra/IntRing.thy	Thu Mar 26 19:24:21 2009 +0100
     7.2 +++ b/src/HOL/Algebra/IntRing.thy	Thu Mar 26 20:08:55 2009 +0100
     7.3 @@ -96,7 +96,7 @@
     7.4    interpretation needs to be done as early as possible --- that is,
     7.5    with as few assumptions as possible. *}
     7.6  
     7.7 -interpretation int!: monoid \<Z>
     7.8 +interpretation int: monoid \<Z>
     7.9    where "carrier \<Z> = UNIV"
    7.10      and "mult \<Z> x y = x * y"
    7.11      and "one \<Z> = 1"
    7.12 @@ -104,7 +104,7 @@
    7.13  proof -
    7.14    -- "Specification"
    7.15    show "monoid \<Z>" proof qed (auto simp: int_ring_def)
    7.16 -  then interpret int!: monoid \<Z> .
    7.17 +  then interpret int: monoid \<Z> .
    7.18  
    7.19    -- "Carrier"
    7.20    show "carrier \<Z> = UNIV" by (simp add: int_ring_def)
    7.21 @@ -116,12 +116,12 @@
    7.22    show "pow \<Z> x n = x^n" by (induct n) (simp, simp add: int_ring_def)+
    7.23  qed
    7.24  
    7.25 -interpretation int!: comm_monoid \<Z>
    7.26 +interpretation int: comm_monoid \<Z>
    7.27    where "finprod \<Z> f A = (if finite A then setprod f A else undefined)"
    7.28  proof -
    7.29    -- "Specification"
    7.30    show "comm_monoid \<Z>" proof qed (auto simp: int_ring_def)
    7.31 -  then interpret int!: comm_monoid \<Z> .
    7.32 +  then interpret int: comm_monoid \<Z> .
    7.33  
    7.34    -- "Operations"
    7.35    { fix x y have "mult \<Z> x y = x * y" by (simp add: int_ring_def) }
    7.36 @@ -139,14 +139,14 @@
    7.37    qed
    7.38  qed
    7.39  
    7.40 -interpretation int!: abelian_monoid \<Z>
    7.41 +interpretation int: abelian_monoid \<Z>
    7.42    where "zero \<Z> = 0"
    7.43      and "add \<Z> x y = x + y"
    7.44      and "finsum \<Z> f A = (if finite A then setsum f A else undefined)"
    7.45  proof -
    7.46    -- "Specification"
    7.47    show "abelian_monoid \<Z>" proof qed (auto simp: int_ring_def)
    7.48 -  then interpret int!: abelian_monoid \<Z> .
    7.49 +  then interpret int: abelian_monoid \<Z> .
    7.50  
    7.51    -- "Operations"
    7.52    { fix x y show "add \<Z> x y = x + y" by (simp add: int_ring_def) }
    7.53 @@ -164,7 +164,7 @@
    7.54    qed
    7.55  qed
    7.56  
    7.57 -interpretation int!: abelian_group \<Z>
    7.58 +interpretation int: abelian_group \<Z>
    7.59    where "a_inv \<Z> x = - x"
    7.60      and "a_minus \<Z> x y = x - y"
    7.61  proof -
    7.62 @@ -174,7 +174,7 @@
    7.63      show "!!x. x \<in> carrier \<Z> ==> EX y : carrier \<Z>. y \<oplus>\<^bsub>\<Z>\<^esub> x = \<zero>\<^bsub>\<Z>\<^esub>"
    7.64        by (simp add: int_ring_def) arith
    7.65    qed (auto simp: int_ring_def)
    7.66 -  then interpret int!: abelian_group \<Z> .
    7.67 +  then interpret int: abelian_group \<Z> .
    7.68  
    7.69    -- "Operations"
    7.70    { fix x y have "add \<Z> x y = x + y" by (simp add: int_ring_def) }
    7.71 @@ -187,7 +187,7 @@
    7.72    show "a_minus \<Z> x y = x - y" by (simp add: int.minus_eq add a_inv)
    7.73  qed
    7.74  
    7.75 -interpretation int!: "domain" \<Z>
    7.76 +interpretation int: "domain" \<Z>
    7.77    proof qed (auto simp: int_ring_def left_distrib right_distrib)
    7.78  
    7.79  
    7.80 @@ -203,7 +203,7 @@
    7.81    "(True ==> PROP R) == PROP R"
    7.82    by simp_all
    7.83  
    7.84 -interpretation int! (* FIXME [unfolded UNIV] *) :
    7.85 +interpretation int (* FIXME [unfolded UNIV] *) :
    7.86    partial_order "(| carrier = UNIV::int set, eq = op =, le = op \<le> |)"
    7.87    where "carrier (| carrier = UNIV::int set, eq = op =, le = op \<le> |) = UNIV"
    7.88      and "le (| carrier = UNIV::int set, eq = op =, le = op \<le> |) x y = (x \<le> y)"
    7.89 @@ -219,7 +219,7 @@
    7.90      by (simp add: lless_def) auto
    7.91  qed
    7.92  
    7.93 -interpretation int! (* FIXME [unfolded UNIV] *) :
    7.94 +interpretation int (* FIXME [unfolded UNIV] *) :
    7.95    lattice "(| carrier = UNIV::int set, eq = op =, le = op \<le> |)"
    7.96    where "join (| carrier = UNIV::int set, eq = op =, le = op \<le> |) x y = max x y"
    7.97      and "meet (| carrier = UNIV::int set, eq = op =, le = op \<le> |) x y = min x y"
    7.98 @@ -232,7 +232,7 @@
    7.99      apply (simp add: greatest_def Lower_def)
   7.100      apply arith
   7.101      done
   7.102 -  then interpret int!: lattice "?Z" .
   7.103 +  then interpret int: lattice "?Z" .
   7.104    show "join ?Z x y = max x y"
   7.105      apply (rule int.joinI)
   7.106      apply (simp_all add: least_def Upper_def)
   7.107 @@ -245,7 +245,7 @@
   7.108      done
   7.109  qed
   7.110  
   7.111 -interpretation int! (* [unfolded UNIV] *) :
   7.112 +interpretation int (* [unfolded UNIV] *) :
   7.113    total_order "(| carrier = UNIV::int set, eq = op =, le = op \<le> |)"
   7.114    proof qed clarsimp
   7.115  
     8.1 --- a/src/HOL/Algebra/RingHom.thy	Thu Mar 26 19:24:21 2009 +0100
     8.2 +++ b/src/HOL/Algebra/RingHom.thy	Thu Mar 26 20:08:55 2009 +0100
     8.3 @@ -61,8 +61,8 @@
     8.4    assumes h: "h \<in> ring_hom R S"
     8.5    shows "ring_hom_ring R S h"
     8.6  proof -
     8.7 -  interpret R!: ring R by fact
     8.8 -  interpret S!: ring S by fact
     8.9 +  interpret R: ring R by fact
    8.10 +  interpret S: ring S by fact
    8.11    show ?thesis apply (intro ring_hom_ring.intro ring_hom_ring_axioms.intro)
    8.12      apply (rule R.is_ring)
    8.13      apply (rule S.is_ring)
    8.14 @@ -78,8 +78,8 @@
    8.15    shows "ring_hom_ring R S h"
    8.16  proof -
    8.17    interpret abelian_group_hom R S h by fact
    8.18 -  interpret R!: ring R by fact
    8.19 -  interpret S!: ring S by fact
    8.20 +  interpret R: ring R by fact
    8.21 +  interpret S: ring S by fact
    8.22    show ?thesis apply (intro ring_hom_ring.intro ring_hom_ring_axioms.intro, rule R.is_ring, rule S.is_ring)
    8.23      apply (insert group_hom.homh[OF a_group_hom])
    8.24      apply (unfold hom_def ring_hom_def, simp)
    8.25 @@ -94,8 +94,8 @@
    8.26    shows "ring_hom_cring R S h"
    8.27  proof -
    8.28    interpret ring_hom_ring R S h by fact
    8.29 -  interpret R!: cring R by fact
    8.30 -  interpret S!: cring S by fact
    8.31 +  interpret R: cring R by fact
    8.32 +  interpret S: cring S by fact
    8.33    show ?thesis by (intro ring_hom_cring.intro ring_hom_cring_axioms.intro)
    8.34      (rule R.is_cring, rule S.is_cring, rule homh)
    8.35  qed
     9.1 --- a/src/HOL/Algebra/UnivPoly.thy	Thu Mar 26 19:24:21 2009 +0100
     9.2 +++ b/src/HOL/Algebra/UnivPoly.thy	Thu Mar 26 20:08:55 2009 +0100
     9.3 @@ -1886,7 +1886,7 @@
     9.4    "UP INTEG"} globally.
     9.5  *}
     9.6  
     9.7 -interpretation INTEG!: UP_pre_univ_prop INTEG INTEG id "UP INTEG"
     9.8 +interpretation INTEG: UP_pre_univ_prop INTEG INTEG id "UP INTEG"
     9.9    using INTEG_id_eval by simp_all
    9.10  
    9.11  lemma INTEG_closed [intro, simp]:
    10.1 --- a/src/HOL/Complex.thy	Thu Mar 26 19:24:21 2009 +0100
    10.2 +++ b/src/HOL/Complex.thy	Thu Mar 26 20:08:55 2009 +0100
    10.3 @@ -348,13 +348,13 @@
    10.4  
    10.5  subsection {* Completeness of the Complexes *}
    10.6  
    10.7 -interpretation Re!: bounded_linear "Re"
    10.8 +interpretation Re: bounded_linear "Re"
    10.9  apply (unfold_locales, simp, simp)
   10.10  apply (rule_tac x=1 in exI)
   10.11  apply (simp add: complex_norm_def)
   10.12  done
   10.13  
   10.14 -interpretation Im!: bounded_linear "Im"
   10.15 +interpretation Im: bounded_linear "Im"
   10.16  apply (unfold_locales, simp, simp)
   10.17  apply (rule_tac x=1 in exI)
   10.18  apply (simp add: complex_norm_def)
   10.19 @@ -516,7 +516,7 @@
   10.20  lemma complex_mod_mult_cnj: "cmod (z * cnj z) = (cmod z)\<twosuperior>"
   10.21  by (simp add: norm_mult power2_eq_square)
   10.22  
   10.23 -interpretation cnj!: bounded_linear "cnj"
   10.24 +interpretation cnj: bounded_linear "cnj"
   10.25  apply (unfold_locales)
   10.26  apply (rule complex_cnj_add)
   10.27  apply (rule complex_cnj_scaleR)
    11.1 --- a/src/HOL/Decision_Procs/Dense_Linear_Order.thy	Thu Mar 26 19:24:21 2009 +0100
    11.2 +++ b/src/HOL/Decision_Procs/Dense_Linear_Order.thy	Thu Mar 26 20:08:55 2009 +0100
    11.3 @@ -637,7 +637,7 @@
    11.4    using eq_diff_eq[where a= x and b=t and c=0] by simp
    11.5  
    11.6  
    11.7 -interpretation class_ordered_field_dense_linear_order!: constr_dense_linear_order
    11.8 +interpretation class_ordered_field_dense_linear_order: constr_dense_linear_order
    11.9   "op <=" "op <"
   11.10     "\<lambda> x y. 1/2 * ((x::'a::{ordered_field,recpower,number_ring}) + y)"
   11.11  proof (unfold_locales, dlo, dlo, auto)
    12.1 --- a/src/HOL/Divides.thy	Thu Mar 26 19:24:21 2009 +0100
    12.2 +++ b/src/HOL/Divides.thy	Thu Mar 26 20:08:55 2009 +0100
    12.3 @@ -852,7 +852,7 @@
    12.4  
    12.5  text {* @{term "op dvd"} is a partial order *}
    12.6  
    12.7 -interpretation dvd!: order "op dvd" "\<lambda>n m \<Colon> nat. n dvd m \<and> \<not> m dvd n"
    12.8 +interpretation dvd: order "op dvd" "\<lambda>n m \<Colon> nat. n dvd m \<and> \<not> m dvd n"
    12.9    proof qed (auto intro: dvd_refl dvd_trans dvd_anti_sym)
   12.10  
   12.11  lemma nat_dvd_diff[simp]: "[| k dvd m; k dvd n |] ==> k dvd (m-n :: nat)"
    13.1 --- a/src/HOL/Finite_Set.thy	Thu Mar 26 19:24:21 2009 +0100
    13.2 +++ b/src/HOL/Finite_Set.thy	Thu Mar 26 20:08:55 2009 +0100
    13.3 @@ -928,7 +928,7 @@
    13.4  
    13.5  subsection {* Generalized summation over a set *}
    13.6  
    13.7 -interpretation comm_monoid_add!: comm_monoid_mult "0::'a::comm_monoid_add" "op +"
    13.8 +interpretation comm_monoid_add: comm_monoid_mult "0::'a::comm_monoid_add" "op +"
    13.9    proof qed (auto intro: add_assoc add_commute)
   13.10  
   13.11  definition setsum :: "('a => 'b) => 'a set => 'b::comm_monoid_add"
    14.1 --- a/src/HOL/Groebner_Basis.thy	Thu Mar 26 19:24:21 2009 +0100
    14.2 +++ b/src/HOL/Groebner_Basis.thy	Thu Mar 26 20:08:55 2009 +0100
    14.3 @@ -163,7 +163,7 @@
    14.4  
    14.5  end
    14.6  
    14.7 -interpretation class_semiring!: gb_semiring
    14.8 +interpretation class_semiring: gb_semiring
    14.9      "op +" "op *" "op ^" "0::'a::{comm_semiring_1, recpower}" "1"
   14.10    proof qed (auto simp add: algebra_simps power_Suc)
   14.11  
   14.12 @@ -242,7 +242,7 @@
   14.13  end
   14.14  
   14.15  
   14.16 -interpretation class_ring!: gb_ring "op +" "op *" "op ^"
   14.17 +interpretation class_ring: gb_ring "op +" "op *" "op ^"
   14.18      "0::'a::{comm_semiring_1,recpower,number_ring}" 1 "op -" "uminus"
   14.19    proof qed simp_all
   14.20  
   14.21 @@ -343,7 +343,7 @@
   14.22    thus "b = 0" by blast
   14.23  qed
   14.24  
   14.25 -interpretation class_ringb!: ringb
   14.26 +interpretation class_ringb: ringb
   14.27    "op +" "op *" "op ^" "0::'a::{idom,recpower,number_ring}" "1" "op -" "uminus"
   14.28  proof(unfold_locales, simp add: algebra_simps power_Suc, auto)
   14.29    fix w x y z ::"'a::{idom,recpower,number_ring}"
   14.30 @@ -359,7 +359,7 @@
   14.31  
   14.32  declaration {* normalizer_funs @{thm class_ringb.ringb_axioms'} *}
   14.33  
   14.34 -interpretation natgb!: semiringb
   14.35 +interpretation natgb: semiringb
   14.36    "op +" "op *" "op ^" "0::nat" "1"
   14.37  proof (unfold_locales, simp add: algebra_simps power_Suc)
   14.38    fix w x y z ::"nat"
   14.39 @@ -463,7 +463,7 @@
   14.40  
   14.41  subsection{* Groebner Bases for fields *}
   14.42  
   14.43 -interpretation class_fieldgb!:
   14.44 +interpretation class_fieldgb:
   14.45    fieldgb "op +" "op *" "op ^" "0::'a::{field,recpower,number_ring}" "1" "op -" "uminus" "op /" "inverse" apply (unfold_locales) by (simp_all add: divide_inverse)
   14.46  
   14.47  lemma divide_Numeral1: "(x::'a::{field,number_ring}) / Numeral1 = x" by simp
    15.1 --- a/src/HOL/HahnBanach/Subspace.thy	Thu Mar 26 19:24:21 2009 +0100
    15.2 +++ b/src/HOL/HahnBanach/Subspace.thy	Thu Mar 26 20:08:55 2009 +0100
    15.3 @@ -59,7 +59,7 @@
    15.4    assumes "vectorspace V"
    15.5    shows "0 \<in> U"
    15.6  proof -
    15.7 -  interpret V!: vectorspace V by fact
    15.8 +  interpret V: vectorspace V by fact
    15.9    have "U \<noteq> {}" by (rule non_empty)
   15.10    then obtain x where x: "x \<in> U" by blast
   15.11    then have "x \<in> V" .. then have "0 = x - x" by simp
    16.1 --- a/src/HOL/Lattices.thy	Thu Mar 26 19:24:21 2009 +0100
    16.2 +++ b/src/HOL/Lattices.thy	Thu Mar 26 20:08:55 2009 +0100
    16.3 @@ -299,7 +299,7 @@
    16.4    by auto
    16.5  qed (auto simp add: min_def max_def not_le less_imp_le)
    16.6  
    16.7 -interpretation min_max!: distrib_lattice "op \<le> :: 'a::linorder \<Rightarrow> 'a \<Rightarrow> bool" "op <" min max
    16.8 +interpretation min_max: distrib_lattice "op \<le> :: 'a::linorder \<Rightarrow> 'a \<Rightarrow> bool" "op <" min max
    16.9    by (rule distrib_lattice_min_max)
   16.10  
   16.11  lemma inf_min: "inf = (min \<Colon> 'a\<Colon>{lower_semilattice, linorder} \<Rightarrow> 'a \<Rightarrow> 'a)"
    17.1 --- a/src/HOL/Library/FrechetDeriv.thy	Thu Mar 26 19:24:21 2009 +0100
    17.2 +++ b/src/HOL/Library/FrechetDeriv.thy	Thu Mar 26 20:08:55 2009 +0100
    17.3 @@ -222,8 +222,8 @@
    17.4    let ?k = "\<lambda>h. f (x + h) - f x"
    17.5    let ?Nf = "\<lambda>h. norm (?Rf h) / norm h"
    17.6    let ?Ng = "\<lambda>h. norm (?Rg (?k h)) / norm (?k h)"
    17.7 -  from f interpret F!: bounded_linear "F" by (rule FDERIV_bounded_linear)
    17.8 -  from g interpret G!: bounded_linear "G" by (rule FDERIV_bounded_linear)
    17.9 +  from f interpret F: bounded_linear "F" by (rule FDERIV_bounded_linear)
   17.10 +  from g interpret G: bounded_linear "G" by (rule FDERIV_bounded_linear)
   17.11    from F.bounded obtain kF where kF: "\<And>x. norm (F x) \<le> norm x * kF" by fast
   17.12    from G.bounded obtain kG where kG: "\<And>x. norm (G x) \<le> norm x * kG" by fast
   17.13  
    18.1 --- a/src/HOL/Library/Inner_Product.thy	Thu Mar 26 19:24:21 2009 +0100
    18.2 +++ b/src/HOL/Library/Inner_Product.thy	Thu Mar 26 20:08:55 2009 +0100
    18.3 @@ -116,7 +116,7 @@
    18.4  
    18.5  end
    18.6  
    18.7 -interpretation inner!:
    18.8 +interpretation inner:
    18.9    bounded_bilinear "inner::'a::real_inner \<Rightarrow> 'a \<Rightarrow> real"
   18.10  proof
   18.11    fix x y z :: 'a and r :: real
   18.12 @@ -135,11 +135,11 @@
   18.13    qed
   18.14  qed
   18.15  
   18.16 -interpretation inner_left!:
   18.17 +interpretation inner_left:
   18.18    bounded_linear "\<lambda>x::'a::real_inner. inner x y"
   18.19    by (rule inner.bounded_linear_left)
   18.20  
   18.21 -interpretation inner_right!:
   18.22 +interpretation inner_right:
   18.23    bounded_linear "\<lambda>y::'a::real_inner. inner x y"
   18.24    by (rule inner.bounded_linear_right)
   18.25  
    19.1 --- a/src/HOL/Library/Multiset.thy	Thu Mar 26 19:24:21 2009 +0100
    19.2 +++ b/src/HOL/Library/Multiset.thy	Thu Mar 26 20:08:55 2009 +0100
    19.3 @@ -1077,15 +1077,15 @@
    19.4  apply simp
    19.5  done
    19.6  
    19.7 -interpretation mset_order!: order "op \<le>#" "op <#"
    19.8 +interpretation mset_order: order "op \<le>#" "op <#"
    19.9  proof qed (auto intro: order.intro mset_le_refl mset_le_antisym
   19.10    mset_le_trans simp: mset_less_def)
   19.11  
   19.12 -interpretation mset_order_cancel_semigroup!:
   19.13 +interpretation mset_order_cancel_semigroup:
   19.14    pordered_cancel_ab_semigroup_add "op +" "op \<le>#" "op <#"
   19.15  proof qed (erule mset_le_mono_add [OF mset_le_refl])
   19.16  
   19.17 -interpretation mset_order_semigroup_cancel!:
   19.18 +interpretation mset_order_semigroup_cancel:
   19.19    pordered_ab_semigroup_add_imp_le "op +" "op \<le>#" "op <#"
   19.20  proof qed simp
   19.21  
   19.22 @@ -1433,7 +1433,7 @@
   19.23  definition [code del]:
   19.24   "image_mset f = fold_mset (op + o single o f) {#}"
   19.25  
   19.26 -interpretation image_left_comm!: left_commutative "op + o single o f"
   19.27 +interpretation image_left_comm: left_commutative "op + o single o f"
   19.28    proof qed (simp add:union_ac)
   19.29  
   19.30  lemma image_mset_empty [simp]: "image_mset f {#} = {#}"
    20.1 --- a/src/HOL/Library/Numeral_Type.thy	Thu Mar 26 19:24:21 2009 +0100
    20.2 +++ b/src/HOL/Library/Numeral_Type.thy	Thu Mar 26 20:08:55 2009 +0100
    20.3 @@ -313,7 +313,7 @@
    20.4  
    20.5  end
    20.6  
    20.7 -interpretation bit0!:
    20.8 +interpretation bit0:
    20.9    mod_type "int CARD('a::finite bit0)"
   20.10             "Rep_bit0 :: 'a::finite bit0 \<Rightarrow> int"
   20.11             "Abs_bit0 :: int \<Rightarrow> 'a::finite bit0"
   20.12 @@ -329,7 +329,7 @@
   20.13  apply (rule power_bit0_def [unfolded Abs_bit0'_def])
   20.14  done
   20.15  
   20.16 -interpretation bit1!:
   20.17 +interpretation bit1:
   20.18    mod_type "int CARD('a::finite bit1)"
   20.19             "Rep_bit1 :: 'a::finite bit1 \<Rightarrow> int"
   20.20             "Abs_bit1 :: int \<Rightarrow> 'a::finite bit1"
   20.21 @@ -363,13 +363,13 @@
   20.22  
   20.23  end
   20.24  
   20.25 -interpretation bit0!:
   20.26 +interpretation bit0:
   20.27    mod_ring "int CARD('a::finite bit0)"
   20.28             "Rep_bit0 :: 'a::finite bit0 \<Rightarrow> int"
   20.29             "Abs_bit0 :: int \<Rightarrow> 'a::finite bit0"
   20.30    ..
   20.31  
   20.32 -interpretation bit1!:
   20.33 +interpretation bit1:
   20.34    mod_ring "int CARD('a::finite bit1)"
   20.35             "Rep_bit1 :: 'a::finite bit1 \<Rightarrow> int"
   20.36             "Abs_bit1 :: int \<Rightarrow> 'a::finite bit1"
    21.1 --- a/src/HOL/Library/Product_Vector.thy	Thu Mar 26 19:24:21 2009 +0100
    21.2 +++ b/src/HOL/Library/Product_Vector.thy	Thu Mar 26 20:08:55 2009 +0100
    21.3 @@ -116,14 +116,14 @@
    21.4  
    21.5  subsection {* Pair operations are linear and continuous *}
    21.6  
    21.7 -interpretation fst!: bounded_linear fst
    21.8 +interpretation fst: bounded_linear fst
    21.9    apply (unfold_locales)
   21.10    apply (rule fst_add)
   21.11    apply (rule fst_scaleR)
   21.12    apply (rule_tac x="1" in exI, simp add: norm_Pair)
   21.13    done
   21.14  
   21.15 -interpretation snd!: bounded_linear snd
   21.16 +interpretation snd: bounded_linear snd
   21.17    apply (unfold_locales)
   21.18    apply (rule snd_add)
   21.19    apply (rule snd_scaleR)
    22.1 --- a/src/HOL/Library/SetsAndFunctions.thy	Thu Mar 26 19:24:21 2009 +0100
    22.2 +++ b/src/HOL/Library/SetsAndFunctions.thy	Thu Mar 26 20:08:55 2009 +0100
    22.3 @@ -107,26 +107,26 @@
    22.4    apply simp
    22.5    done
    22.6  
    22.7 -interpretation set_semigroup_add!: semigroup_add "op \<oplus> :: ('a::semigroup_add) set => 'a set => 'a set"
    22.8 +interpretation set_semigroup_add: semigroup_add "op \<oplus> :: ('a::semigroup_add) set => 'a set => 'a set"
    22.9    apply default
   22.10    apply (unfold set_plus_def)
   22.11    apply (force simp add: add_assoc)
   22.12    done
   22.13  
   22.14 -interpretation set_semigroup_mult!: semigroup_mult "op \<otimes> :: ('a::semigroup_mult) set => 'a set => 'a set"
   22.15 +interpretation set_semigroup_mult: semigroup_mult "op \<otimes> :: ('a::semigroup_mult) set => 'a set => 'a set"
   22.16    apply default
   22.17    apply (unfold set_times_def)
   22.18    apply (force simp add: mult_assoc)
   22.19    done
   22.20  
   22.21 -interpretation set_comm_monoid_add!: comm_monoid_add "{0}" "op \<oplus> :: ('a::comm_monoid_add) set => 'a set => 'a set"
   22.22 +interpretation set_comm_monoid_add: comm_monoid_add "{0}" "op \<oplus> :: ('a::comm_monoid_add) set => 'a set => 'a set"
   22.23    apply default
   22.24     apply (unfold set_plus_def)
   22.25     apply (force simp add: add_ac)
   22.26    apply force
   22.27    done
   22.28  
   22.29 -interpretation set_comm_monoid_mult!: comm_monoid_mult "{1}" "op \<otimes> :: ('a::comm_monoid_mult) set => 'a set => 'a set"
   22.30 +interpretation set_comm_monoid_mult: comm_monoid_mult "{1}" "op \<otimes> :: ('a::comm_monoid_mult) set => 'a set => 'a set"
   22.31    apply default
   22.32     apply (unfold set_times_def)
   22.33     apply (force simp add: mult_ac)
    23.1 --- a/src/HOL/NSA/StarDef.thy	Thu Mar 26 19:24:21 2009 +0100
    23.2 +++ b/src/HOL/NSA/StarDef.thy	Thu Mar 26 20:08:55 2009 +0100
    23.3 @@ -23,7 +23,7 @@
    23.4  apply (rule nat_infinite)
    23.5  done
    23.6  
    23.7 -interpretation FreeUltrafilterNat!: freeultrafilter FreeUltrafilterNat
    23.8 +interpretation FreeUltrafilterNat: freeultrafilter FreeUltrafilterNat
    23.9  by (rule freeultrafilter_FreeUltrafilterNat)
   23.10  
   23.11  text {* This rule takes the place of the old ultra tactic *}
    24.1 --- a/src/HOL/RealVector.thy	Thu Mar 26 19:24:21 2009 +0100
    24.2 +++ b/src/HOL/RealVector.thy	Thu Mar 26 20:08:55 2009 +0100
    24.3 @@ -145,7 +145,7 @@
    24.4    and scaleR_scaleR: "scaleR a (scaleR b x) = scaleR (a * b) x"
    24.5    and scaleR_one: "scaleR 1 x = x"
    24.6  
    24.7 -interpretation real_vector!:
    24.8 +interpretation real_vector:
    24.9    vector_space "scaleR :: real \<Rightarrow> 'a \<Rightarrow> 'a::real_vector"
   24.10  apply unfold_locales
   24.11  apply (rule scaleR_right_distrib)
   24.12 @@ -190,10 +190,10 @@
   24.13  
   24.14  end
   24.15  
   24.16 -interpretation scaleR_left!: additive "(\<lambda>a. scaleR a x::'a::real_vector)"
   24.17 +interpretation scaleR_left: additive "(\<lambda>a. scaleR a x::'a::real_vector)"
   24.18  proof qed (rule scaleR_left_distrib)
   24.19  
   24.20 -interpretation scaleR_right!: additive "(\<lambda>x. scaleR a x::'a::real_vector)"
   24.21 +interpretation scaleR_right: additive "(\<lambda>x. scaleR a x::'a::real_vector)"
   24.22  proof qed (rule scaleR_right_distrib)
   24.23  
   24.24  lemma nonzero_inverse_scaleR_distrib:
   24.25 @@ -789,7 +789,7 @@
   24.26  
   24.27  end
   24.28  
   24.29 -interpretation mult!:
   24.30 +interpretation mult:
   24.31    bounded_bilinear "op * :: 'a \<Rightarrow> 'a \<Rightarrow> 'a::real_normed_algebra"
   24.32  apply (rule bounded_bilinear.intro)
   24.33  apply (rule left_distrib)
   24.34 @@ -800,19 +800,19 @@
   24.35  apply (simp add: norm_mult_ineq)
   24.36  done
   24.37  
   24.38 -interpretation mult_left!:
   24.39 +interpretation mult_left:
   24.40    bounded_linear "(\<lambda>x::'a::real_normed_algebra. x * y)"
   24.41  by (rule mult.bounded_linear_left)
   24.42  
   24.43 -interpretation mult_right!:
   24.44 +interpretation mult_right:
   24.45    bounded_linear "(\<lambda>y::'a::real_normed_algebra. x * y)"
   24.46  by (rule mult.bounded_linear_right)
   24.47  
   24.48 -interpretation divide!:
   24.49 +interpretation divide:
   24.50    bounded_linear "(\<lambda>x::'a::real_normed_field. x / y)"
   24.51  unfolding divide_inverse by (rule mult.bounded_linear_left)
   24.52  
   24.53 -interpretation scaleR!: bounded_bilinear "scaleR"
   24.54 +interpretation scaleR: bounded_bilinear "scaleR"
   24.55  apply (rule bounded_bilinear.intro)
   24.56  apply (rule scaleR_left_distrib)
   24.57  apply (rule scaleR_right_distrib)
   24.58 @@ -822,13 +822,13 @@
   24.59  apply (simp add: norm_scaleR)
   24.60  done
   24.61  
   24.62 -interpretation scaleR_left!: bounded_linear "\<lambda>r. scaleR r x"
   24.63 +interpretation scaleR_left: bounded_linear "\<lambda>r. scaleR r x"
   24.64  by (rule scaleR.bounded_linear_left)
   24.65  
   24.66 -interpretation scaleR_right!: bounded_linear "\<lambda>x. scaleR r x"
   24.67 +interpretation scaleR_right: bounded_linear "\<lambda>x. scaleR r x"
   24.68  by (rule scaleR.bounded_linear_right)
   24.69  
   24.70 -interpretation of_real!: bounded_linear "\<lambda>r. of_real r"
   24.71 +interpretation of_real: bounded_linear "\<lambda>r. of_real r"
   24.72  unfolding of_real_def by (rule scaleR.bounded_linear_left)
   24.73  
   24.74  end
    25.1 --- a/src/HOL/Word/TdThs.thy	Thu Mar 26 19:24:21 2009 +0100
    25.2 +++ b/src/HOL/Word/TdThs.thy	Thu Mar 26 20:08:55 2009 +0100
    25.3 @@ -89,7 +89,7 @@
    25.4  
    25.5  end
    25.6  
    25.7 -interpretation nat_int!: type_definition int nat "Collect (op <= 0)"
    25.8 +interpretation nat_int: type_definition int nat "Collect (op <= 0)"
    25.9    by (rule td_nat_int)
   25.10  
   25.11  declare
    26.1 --- a/src/HOL/Word/WordArith.thy	Thu Mar 26 19:24:21 2009 +0100
    26.2 +++ b/src/HOL/Word/WordArith.thy	Thu Mar 26 20:08:55 2009 +0100
    26.3 @@ -21,7 +21,7 @@
    26.4  proof
    26.5  qed (unfold word_sle_def word_sless_def, auto)
    26.6  
    26.7 -interpretation signed!: linorder "word_sle" "word_sless"
    26.8 +interpretation signed: linorder "word_sle" "word_sless"
    26.9    by (rule signed_linorder)
   26.10  
   26.11  lemmas word_arith_wis = 
   26.12 @@ -862,7 +862,7 @@
   26.13  lemmas td_ext_unat = refl [THEN td_ext_unat']
   26.14  lemmas unat_of_nat = td_ext_unat [THEN td_ext.eq_norm, standard]
   26.15  
   26.16 -interpretation word_unat!:
   26.17 +interpretation word_unat:
   26.18    td_ext "unat::'a::len word => nat" 
   26.19           of_nat 
   26.20           "unats (len_of TYPE('a::len))"
    27.1 --- a/src/HOL/Word/WordBitwise.thy	Thu Mar 26 19:24:21 2009 +0100
    27.2 +++ b/src/HOL/Word/WordBitwise.thy	Thu Mar 26 20:08:55 2009 +0100
    27.3 @@ -343,7 +343,7 @@
    27.4  
    27.5  lemmas td_ext_nth = td_ext_nth' [OF refl refl refl, unfolded word_size]
    27.6  
    27.7 -interpretation test_bit!:
    27.8 +interpretation test_bit:
    27.9    td_ext "op !! :: 'a::len0 word => nat => bool"
   27.10           set_bits
   27.11           "{f. \<forall>i. f i \<longrightarrow> i < len_of TYPE('a::len0)}"
    28.1 --- a/src/HOL/Word/WordDefinition.thy	Thu Mar 26 19:24:21 2009 +0100
    28.2 +++ b/src/HOL/Word/WordDefinition.thy	Thu Mar 26 20:08:55 2009 +0100
    28.3 @@ -351,7 +351,7 @@
    28.4  
    28.5  lemmas int_word_uint = td_ext_uint [THEN td_ext.eq_norm, standard]
    28.6  
    28.7 -interpretation word_uint!:
    28.8 +interpretation word_uint:
    28.9    td_ext "uint::'a::len0 word \<Rightarrow> int" 
   28.10           word_of_int 
   28.11           "uints (len_of TYPE('a::len0))"
   28.12 @@ -363,7 +363,7 @@
   28.13  lemmas td_ext_ubin = td_ext_uint 
   28.14    [simplified len_gt_0 no_bintr_alt1 [symmetric]]
   28.15  
   28.16 -interpretation word_ubin!:
   28.17 +interpretation word_ubin:
   28.18    td_ext "uint::'a::len0 word \<Rightarrow> int" 
   28.19           word_of_int 
   28.20           "uints (len_of TYPE('a::len0))"
   28.21 @@ -418,7 +418,7 @@
   28.22     and interpretations do not produce thm duplicates. I.e. 
   28.23     we get the name word_sint.Rep_eqD, but not word_sbin.Req_eqD,
   28.24     because the latter is the same thm as the former *)
   28.25 -interpretation word_sint!:
   28.26 +interpretation word_sint:
   28.27    td_ext "sint ::'a::len word => int" 
   28.28            word_of_int 
   28.29            "sints (len_of TYPE('a::len))"
   28.30 @@ -426,7 +426,7 @@
   28.31                 2 ^ (len_of TYPE('a::len) - 1)"
   28.32    by (rule td_ext_sint)
   28.33  
   28.34 -interpretation word_sbin!:
   28.35 +interpretation word_sbin:
   28.36    td_ext "sint ::'a::len word => int" 
   28.37            word_of_int 
   28.38            "sints (len_of TYPE('a::len))"
   28.39 @@ -630,7 +630,7 @@
   28.40    apply simp
   28.41    done
   28.42  
   28.43 -interpretation word_bl!:
   28.44 +interpretation word_bl:
   28.45    type_definition "to_bl :: 'a::len0 word => bool list"
   28.46                    of_bl  
   28.47                    "{bl. length bl = len_of TYPE('a::len0)}"
    29.1 --- a/src/HOL/Word/WordGenLib.thy	Thu Mar 26 19:24:21 2009 +0100
    29.2 +++ b/src/HOL/Word/WordGenLib.thy	Thu Mar 26 20:08:55 2009 +0100
    29.3 @@ -106,7 +106,7 @@
    29.4    apply (rule word_or_not)
    29.5    done
    29.6  
    29.7 -interpretation word_bool_alg!:
    29.8 +interpretation word_bool_alg:
    29.9    boolean "op AND" "op OR" bitNOT 0 max_word
   29.10    by (rule word_boolean)
   29.11  
   29.12 @@ -114,7 +114,7 @@
   29.13    "x XOR y = x AND NOT y OR NOT x AND (y::'a::len0 word)"
   29.14    by (rule word_eqI) (auto simp add: word_ops_nth_size word_size)
   29.15  
   29.16 -interpretation word_bool_alg!:
   29.17 +interpretation word_bool_alg:
   29.18    boolean_xor "op AND" "op OR" bitNOT 0 max_word "op XOR"
   29.19    apply (rule boolean_xor.intro)
   29.20     apply (rule word_boolean)
    30.1 --- a/src/HOL/ex/LocaleTest2.thy	Thu Mar 26 19:24:21 2009 +0100
    30.2 +++ b/src/HOL/ex/LocaleTest2.thy	Thu Mar 26 20:08:55 2009 +0100
    30.3 @@ -468,7 +468,7 @@
    30.4  
    30.5  subsubsection {* Total order @{text "<="} on @{typ int} *}
    30.6  
    30.7 -interpretation int!: dpo "op <= :: [int, int] => bool"
    30.8 +interpretation int: dpo "op <= :: [int, int] => bool"
    30.9    where "(dpo.less (op <=) (x::int) y) = (x < y)"
   30.10    txt {* We give interpretation for less, but not @{text is_inf} and @{text is_sub}. *}
   30.11  proof -
   30.12 @@ -487,7 +487,7 @@
   30.13  lemma "(op < :: [int, int] => bool) = op <"
   30.14    apply (rule int.abs_test) done
   30.15  
   30.16 -interpretation int!: dlat "op <= :: [int, int] => bool"
   30.17 +interpretation int: dlat "op <= :: [int, int] => bool"
   30.18    where meet_eq: "dlat.meet (op <=) (x::int) y = min x y"
   30.19      and join_eq: "dlat.join (op <=) (x::int) y = max x y"
   30.20  proof -
   30.21 @@ -511,7 +511,7 @@
   30.22      by auto
   30.23  qed
   30.24  
   30.25 -interpretation int!: dlo "op <= :: [int, int] => bool"
   30.26 +interpretation int: dlo "op <= :: [int, int] => bool"
   30.27    proof qed arith
   30.28  
   30.29  text {* Interpreted theorems from the locales, involving defined terms. *}
   30.30 @@ -524,7 +524,7 @@
   30.31  
   30.32  subsubsection {* Total order @{text "<="} on @{typ nat} *}
   30.33  
   30.34 -interpretation nat!: dpo "op <= :: [nat, nat] => bool"
   30.35 +interpretation nat: dpo "op <= :: [nat, nat] => bool"
   30.36    where "dpo.less (op <=) (x::nat) y = (x < y)"
   30.37    txt {* We give interpretation for less, but not @{text is_inf} and @{text is_sub}. *}
   30.38  proof -
   30.39 @@ -538,7 +538,7 @@
   30.40      done
   30.41  qed
   30.42  
   30.43 -interpretation nat!: dlat "op <= :: [nat, nat] => bool"
   30.44 +interpretation nat: dlat "op <= :: [nat, nat] => bool"
   30.45    where "dlat.meet (op <=) (x::nat) y = min x y"
   30.46      and "dlat.join (op <=) (x::nat) y = max x y"
   30.47  proof -
   30.48 @@ -562,7 +562,7 @@
   30.49      by auto
   30.50  qed
   30.51  
   30.52 -interpretation nat!: dlo "op <= :: [nat, nat] => bool"
   30.53 +interpretation nat: dlo "op <= :: [nat, nat] => bool"
   30.54    proof qed arith
   30.55  
   30.56  text {* Interpreted theorems from the locales, involving defined terms. *}
   30.57 @@ -575,7 +575,7 @@
   30.58  
   30.59  subsubsection {* Lattice @{text "dvd"} on @{typ nat} *}
   30.60  
   30.61 -interpretation nat_dvd!: dpo "op dvd :: [nat, nat] => bool"
   30.62 +interpretation nat_dvd: dpo "op dvd :: [nat, nat] => bool"
   30.63    where "dpo.less (op dvd) (x::nat) y = (x dvd y & x ~= y)"
   30.64    txt {* We give interpretation for less, but not @{text is_inf} and @{text is_sub}. *}
   30.65  proof -
   30.66 @@ -589,7 +589,7 @@
   30.67      done
   30.68  qed
   30.69  
   30.70 -interpretation nat_dvd!: dlat "op dvd :: [nat, nat] => bool"
   30.71 +interpretation nat_dvd: dlat "op dvd :: [nat, nat] => bool"
   30.72    where "dlat.meet (op dvd) (x::nat) y = gcd x y"
   30.73      and "dlat.join (op dvd) (x::nat) y = lcm x y"
   30.74  proof -
   30.75 @@ -834,7 +834,7 @@
   30.76  
   30.77  subsubsection {* Interpretation of Functions *}
   30.78  
   30.79 -interpretation Dfun!: Dmonoid "op o" "id :: 'a => 'a"
   30.80 +interpretation Dfun: Dmonoid "op o" "id :: 'a => 'a"
   30.81    where "Dmonoid.unit (op o) id f = bij (f::'a => 'a)"
   30.82  (*    and "Dmonoid.inv (op o) id" = "inv :: ('a => 'a) => ('a => 'a)" *)
   30.83  proof -
   30.84 @@ -884,7 +884,7 @@
   30.85    "(f :: unit => unit) = id"
   30.86    by rule simp
   30.87  
   30.88 -interpretation Dfun!: Dgrp "op o" "id :: unit => unit"
   30.89 +interpretation Dfun: Dgrp "op o" "id :: unit => unit"
   30.90    where "Dmonoid.inv (op o) id f = inv (f :: unit => unit)"
   30.91  proof -
   30.92    have "Dmonoid op o (id :: 'a => 'a)" ..
    31.1 --- a/src/HOLCF/Algebraic.thy	Thu Mar 26 19:24:21 2009 +0100
    31.2 +++ b/src/HOLCF/Algebraic.thy	Thu Mar 26 20:08:55 2009 +0100
    31.3 @@ -215,7 +215,7 @@
    31.4  lemma finite_deflation_Rep_fin_defl: "finite_deflation (Rep_fin_defl d)"
    31.5  using Rep_fin_defl by simp
    31.6  
    31.7 -interpretation Rep_fin_defl!: finite_deflation "Rep_fin_defl d"
    31.8 +interpretation Rep_fin_defl: finite_deflation "Rep_fin_defl d"
    31.9  by (rule finite_deflation_Rep_fin_defl)
   31.10  
   31.11  lemma fin_defl_lessI:
   31.12 @@ -320,7 +320,7 @@
   31.13  apply (rule Rep_fin_defl.compact)
   31.14  done
   31.15  
   31.16 -interpretation fin_defl!: basis_take sq_le fd_take
   31.17 +interpretation fin_defl: basis_take sq_le fd_take
   31.18  apply default
   31.19  apply (rule fd_take_less)
   31.20  apply (rule fd_take_idem)
   31.21 @@ -370,7 +370,7 @@
   31.22  unfolding alg_defl_principal_def
   31.23  by (simp add: Abs_alg_defl_inverse sq_le.ideal_principal)
   31.24  
   31.25 -interpretation alg_defl!:
   31.26 +interpretation alg_defl:
   31.27    ideal_completion sq_le fd_take alg_defl_principal Rep_alg_defl
   31.28  apply default
   31.29  apply (rule ideal_Rep_alg_defl)
   31.30 @@ -461,7 +461,7 @@
   31.31  apply (rule finite_deflation_Rep_fin_defl)
   31.32  done
   31.33  
   31.34 -interpretation cast!: deflation "cast\<cdot>d"
   31.35 +interpretation cast: deflation "cast\<cdot>d"
   31.36  by (rule deflation_cast)
   31.37  
   31.38  lemma "cast\<cdot>(\<Squnion>i. alg_defl_principal (Abs_fin_defl (approx i)))\<cdot>x = x"
    32.1 --- a/src/HOLCF/Bifinite.thy	Thu Mar 26 19:24:21 2009 +0100
    32.2 +++ b/src/HOLCF/Bifinite.thy	Thu Mar 26 20:08:55 2009 +0100
    32.3 @@ -37,7 +37,7 @@
    32.4      by (rule finite_fixes_approx)
    32.5  qed
    32.6  
    32.7 -interpretation approx!: finite_deflation "approx i"
    32.8 +interpretation approx: finite_deflation "approx i"
    32.9  by (rule finite_deflation_approx)
   32.10  
   32.11  lemma (in deflation) deflation: "deflation d" ..
    33.1 --- a/src/HOLCF/CompactBasis.thy	Thu Mar 26 19:24:21 2009 +0100
    33.2 +++ b/src/HOLCF/CompactBasis.thy	Thu Mar 26 20:08:55 2009 +0100
    33.3 @@ -46,7 +46,7 @@
    33.4  
    33.5  lemmas approx_Rep_compact_basis = Rep_compact_take [symmetric]
    33.6  
    33.7 -interpretation compact_basis!:
    33.8 +interpretation compact_basis:
    33.9    basis_take sq_le compact_take
   33.10  proof
   33.11    fix n :: nat and a :: "'a compact_basis"
   33.12 @@ -92,7 +92,7 @@
   33.13    approximants :: "'a \<Rightarrow> 'a compact_basis set" where
   33.14    "approximants = (\<lambda>x. {a. Rep_compact_basis a \<sqsubseteq> x})"
   33.15  
   33.16 -interpretation compact_basis!:
   33.17 +interpretation compact_basis:
   33.18    ideal_completion sq_le compact_take Rep_compact_basis approximants
   33.19  proof
   33.20    fix w :: 'a
    34.1 --- a/src/HOLCF/Completion.thy	Thu Mar 26 19:24:21 2009 +0100
    34.2 +++ b/src/HOLCF/Completion.thy	Thu Mar 26 20:08:55 2009 +0100
    34.3 @@ -156,7 +156,7 @@
    34.4  
    34.5  end
    34.6  
    34.7 -interpretation sq_le!: preorder "sq_le :: 'a::po \<Rightarrow> 'a \<Rightarrow> bool"
    34.8 +interpretation sq_le: preorder "sq_le :: 'a::po \<Rightarrow> 'a \<Rightarrow> bool"
    34.9  apply unfold_locales
   34.10  apply (rule refl_less)
   34.11  apply (erule (1) trans_less)
    35.1 --- a/src/HOLCF/ConvexPD.thy	Thu Mar 26 19:24:21 2009 +0100
    35.2 +++ b/src/HOLCF/ConvexPD.thy	Thu Mar 26 20:08:55 2009 +0100
    35.3 @@ -20,7 +20,7 @@
    35.4  lemma convex_le_trans: "\<lbrakk>t \<le>\<natural> u; u \<le>\<natural> v\<rbrakk> \<Longrightarrow> t \<le>\<natural> v"
    35.5  unfolding convex_le_def by (fast intro: upper_le_trans lower_le_trans)
    35.6  
    35.7 -interpretation convex_le!: preorder convex_le
    35.8 +interpretation convex_le: preorder convex_le
    35.9  by (rule preorder.intro, rule convex_le_refl, rule convex_le_trans)
   35.10  
   35.11  lemma upper_le_minimal [simp]: "PDUnit compact_bot \<le>\<natural> t"
   35.12 @@ -178,7 +178,7 @@
   35.13  unfolding convex_principal_def
   35.14  by (simp add: Abs_convex_pd_inverse convex_le.ideal_principal)
   35.15  
   35.16 -interpretation convex_pd!:
   35.17 +interpretation convex_pd:
   35.18    ideal_completion convex_le pd_take convex_principal Rep_convex_pd
   35.19  apply unfold_locales
   35.20  apply (rule pd_take_convex_le)
    36.1 --- a/src/HOLCF/LowerPD.thy	Thu Mar 26 19:24:21 2009 +0100
    36.2 +++ b/src/HOLCF/LowerPD.thy	Thu Mar 26 20:08:55 2009 +0100
    36.3 @@ -26,7 +26,7 @@
    36.4  apply (erule (1) trans_less)
    36.5  done
    36.6  
    36.7 -interpretation lower_le!: preorder lower_le
    36.8 +interpretation lower_le: preorder lower_le
    36.9  by (rule preorder.intro, rule lower_le_refl, rule lower_le_trans)
   36.10  
   36.11  lemma lower_le_minimal [simp]: "PDUnit compact_bot \<le>\<flat> t"
   36.12 @@ -133,7 +133,7 @@
   36.13  unfolding lower_principal_def
   36.14  by (simp add: Abs_lower_pd_inverse lower_le.ideal_principal)
   36.15  
   36.16 -interpretation lower_pd!:
   36.17 +interpretation lower_pd:
   36.18    ideal_completion lower_le pd_take lower_principal Rep_lower_pd
   36.19  apply unfold_locales
   36.20  apply (rule pd_take_lower_le)
    37.1 --- a/src/HOLCF/Universal.thy	Thu Mar 26 19:24:21 2009 +0100
    37.2 +++ b/src/HOLCF/Universal.thy	Thu Mar 26 20:08:55 2009 +0100
    37.3 @@ -230,13 +230,13 @@
    37.4  apply (simp add: ubasis_take_same)
    37.5  done
    37.6  
    37.7 -interpretation udom!: preorder ubasis_le
    37.8 +interpretation udom: preorder ubasis_le
    37.9  apply default
   37.10  apply (rule ubasis_le_refl)
   37.11  apply (erule (1) ubasis_le_trans)
   37.12  done
   37.13  
   37.14 -interpretation udom!: basis_take ubasis_le ubasis_take
   37.15 +interpretation udom: basis_take ubasis_le ubasis_take
   37.16  apply default
   37.17  apply (rule ubasis_take_less)
   37.18  apply (rule ubasis_take_idem)
   37.19 @@ -285,7 +285,7 @@
   37.20  unfolding udom_principal_def
   37.21  by (simp add: Abs_udom_inverse udom.ideal_principal)
   37.22  
   37.23 -interpretation udom!:
   37.24 +interpretation udom:
   37.25    ideal_completion ubasis_le ubasis_take udom_principal Rep_udom
   37.26  apply unfold_locales
   37.27  apply (rule ideal_Rep_udom)
    38.1 --- a/src/HOLCF/UpperPD.thy	Thu Mar 26 19:24:21 2009 +0100
    38.2 +++ b/src/HOLCF/UpperPD.thy	Thu Mar 26 20:08:55 2009 +0100
    38.3 @@ -26,7 +26,7 @@
    38.4  apply (erule (1) trans_less)
    38.5  done
    38.6  
    38.7 -interpretation upper_le!: preorder upper_le
    38.8 +interpretation upper_le: preorder upper_le
    38.9  by (rule preorder.intro, rule upper_le_refl, rule upper_le_trans)
   38.10  
   38.11  lemma upper_le_minimal [simp]: "PDUnit compact_bot \<le>\<sharp> t"
   38.12 @@ -131,7 +131,7 @@
   38.13  unfolding upper_principal_def
   38.14  by (simp add: Abs_upper_pd_inverse upper_le.ideal_principal)
   38.15  
   38.16 -interpretation upper_pd!:
   38.17 +interpretation upper_pd:
   38.18    ideal_completion upper_le pd_take upper_principal Rep_upper_pd
   38.19  apply unfold_locales
   38.20  apply (rule pd_take_upper_le)
    39.1 --- a/src/ZF/Constructible/L_axioms.thy	Thu Mar 26 19:24:21 2009 +0100
    39.2 +++ b/src/ZF/Constructible/L_axioms.thy	Thu Mar 26 20:08:55 2009 +0100
    39.3 @@ -99,7 +99,7 @@
    39.4    apply (rule L_nat)
    39.5    done
    39.6  
    39.7 -interpretation L: M_trivial L by (rule M_trivial_L)
    39.8 +interpretation L?: M_trivial L by (rule M_trivial_L)
    39.9  
   39.10  (* Replaces the following declarations...
   39.11  lemmas rall_abs = M_trivial.rall_abs [OF M_trivial_L]
    40.1 --- a/src/ZF/Constructible/Rec_Separation.thy	Thu Mar 26 19:24:21 2009 +0100
    40.2 +++ b/src/ZF/Constructible/Rec_Separation.thy	Thu Mar 26 20:08:55 2009 +0100
    40.3 @@ -185,7 +185,7 @@
    40.4  theorem M_trancl_L: "PROP M_trancl(L)"
    40.5  by (rule M_trancl.intro [OF M_basic_L M_trancl_axioms_L])
    40.6  
    40.7 -interpretation L: M_trancl L by (rule M_trancl_L)
    40.8 +interpretation L?: M_trancl L by (rule M_trancl_L)
    40.9  
   40.10  
   40.11  subsection{*@{term L} is Closed Under the Operator @{term list}*}
   40.12 @@ -372,7 +372,7 @@
   40.13    apply (rule M_datatypes_axioms_L) 
   40.14    done
   40.15  
   40.16 -interpretation L: M_datatypes L by (rule M_datatypes_L)
   40.17 +interpretation L?: M_datatypes L by (rule M_datatypes_L)
   40.18  
   40.19  
   40.20  subsection{*@{term L} is Closed Under the Operator @{term eclose}*}
   40.21 @@ -435,7 +435,7 @@
   40.22    apply (rule M_eclose_axioms_L)
   40.23    done
   40.24  
   40.25 -interpretation L: M_eclose L by (rule M_eclose_L)
   40.26 +interpretation L?: M_eclose L by (rule M_eclose_L)
   40.27  
   40.28  
   40.29  end
    41.1 --- a/src/ZF/Constructible/Separation.thy	Thu Mar 26 19:24:21 2009 +0100
    41.2 +++ b/src/ZF/Constructible/Separation.thy	Thu Mar 26 20:08:55 2009 +0100
    41.3 @@ -305,7 +305,7 @@
    41.4  theorem M_basic_L: "PROP M_basic(L)"
    41.5  by (rule M_basic.intro [OF M_trivial_L M_basic_axioms_L])
    41.6  
    41.7 -interpretation L: M_basic L by (rule M_basic_L)
    41.8 +interpretation L?: M_basic L by (rule M_basic_L)
    41.9  
   41.10  
   41.11  end