equal
deleted
inserted
replaced
545 by (induct xs) auto |
545 by (induct xs) auto |
546 |
546 |
547 lemma append_Nil2 [simp]: "xs @ [] = xs" |
547 lemma append_Nil2 [simp]: "xs @ [] = xs" |
548 by (induct xs) auto |
548 by (induct xs) auto |
549 |
549 |
550 class_interpretation semigroup_append: semigroup_add ["op @"] |
550 interpretation semigroup_append!: semigroup_add "op @" |
551 proof qed simp |
551 proof qed simp |
552 class_interpretation monoid_append: monoid_add ["[]" "op @"] |
552 interpretation monoid_append!: monoid_add "[]" "op @" |
553 proof qed simp+ |
553 proof qed simp+ |
554 |
554 |
555 lemma append_is_Nil_conv [iff]: "(xs @ ys = []) = (xs = [] \<and> ys = [])" |
555 lemma append_is_Nil_conv [iff]: "(xs @ ys = []) = (xs = [] \<and> ys = [])" |
556 by (induct xs) auto |
556 by (induct xs) auto |
557 |
557 |