diff -r 168dba35ecf3 -r 97775f3e8722 src/HOL/Library/Polynomial.thy --- a/src/HOL/Library/Polynomial.thy Fri Aug 27 15:36:02 2010 +0200 +++ b/src/HOL/Library/Polynomial.thy Fri Aug 27 19:34:23 2010 +0200 @@ -1505,23 +1505,27 @@ declare pCons_0_0 [code_post] -instantiation poly :: ("{zero,eq}") eq +instantiation poly :: ("{zero, equal}") equal begin definition - "eq_class.eq (p::'a poly) q \ p = q" + "HOL.equal (p::'a poly) q \ p = q" -instance - by default (rule eq_poly_def) +instance proof +qed (rule equal_poly_def) end lemma eq_poly_code [code]: - "eq_class.eq (0::_ poly) (0::_ poly) \ True" - "eq_class.eq (0::_ poly) (pCons b q) \ eq_class.eq 0 b \ eq_class.eq 0 q" - "eq_class.eq (pCons a p) (0::_ poly) \ eq_class.eq a 0 \ eq_class.eq p 0" - "eq_class.eq (pCons a p) (pCons b q) \ eq_class.eq a b \ eq_class.eq p q" -unfolding eq by simp_all + "HOL.equal (0::_ poly) (0::_ poly) \ True" + "HOL.equal (0::_ poly) (pCons b q) \ HOL.equal 0 b \ HOL.equal 0 q" + "HOL.equal (pCons a p) (0::_ poly) \ HOL.equal a 0 \ HOL.equal p 0" + "HOL.equal (pCons a p) (pCons b q) \ HOL.equal a b \ HOL.equal p q" + by (simp_all add: equal) + +lemma [code nbe]: + "HOL.equal (p :: _ poly) p \ True" + by (fact equal_refl) lemmas coeff_code [code] = coeff_0 coeff_pCons_0 coeff_pCons_Suc