New structure "partial_object" as common root for lattices and magmas.
--- a/src/HOL/Algebra/CRing.thy Wed Dec 10 14:27:50 2003 +0100
+++ b/src/HOL/Algebra/CRing.thy Wed Dec 10 14:29:05 2003 +0100
@@ -90,7 +90,7 @@
by (unfold comm_semigroup_def semigroup_def)
(fast intro: comm_monoid.axioms a_comm_monoid)
-lemmas monoid_record_simps = semigroup.simps monoid.simps
+lemmas monoid_record_simps = partial_object.simps semigroup.simps monoid.simps
lemma (in abelian_monoid) a_closed [intro, simp]:
"[| x \<in> carrier G; y \<in> carrier G |] ==> x \<oplus> y \<in> carrier G"
--- a/src/HOL/Algebra/Group.thy Wed Dec 10 14:27:50 2003 +0100
+++ b/src/HOL/Algebra/Group.thy Wed Dec 10 14:29:05 2003 +0100
@@ -20,8 +20,12 @@
subsection {* Definitions *}
-record 'a semigroup =
+(* Object with a carrier set. *)
+
+record 'a partial_object =
carrier :: "'a set"
+
+record 'a semigroup = "'a partial_object" +
mult :: "['a, 'a] => 'a" (infixl "\<otimes>\<index>" 70)
record 'a monoid = "'a semigroup" +