βΉThis component presents an alternative approach to catoids, as multisemigroups with many units.
is more akin to the formalisation of single-set categories in Chapter I of Mac Lane's book, but
fact this approach to axiomatising categories goes back to the middle of the twentieth century.βΊ
βΉUnits can already be defined in multimagmas.βΊ
"munitl e = ((βx. x β e β x) β§ (βx y. y β e β x βΆ y = x))"
"munitr e = ((βx. x β x β e) β§ (βx y. y β x β e βΆ y = x))"
"munit e β‘ (munitl e β¨ munitr e)"
βΉA multimagma is unital if every element has a left and a right unit.βΊ
unital_multimagma_var = multimagma +
assumes munitl_ex: "βx.βe. munitl e β§ Δ e x"
assumes munitr_ex: "βx.βe. munitr e β§ Δ x e"
munitl_ex_var: "βx.βe. munitl e β§ x β e β x"
by (metis equals0I local.munitl_def local.munitl_ex)
unitl: "βͺ{e β x |e. munitl e} = {x}"
apply safe
apply (simp add: multimagma.munitl_def)
by (simp, metis munitl_ex_var)
munitr_ex_var: "βx.βe. munitr e β§ x β x β e"
by (metis equals0I local.munitr_def local.munitr_ex)
unitr: "βͺ{x β e |e. munitr e} = {x}"
apply safe
apply (simp add: multimagma.munitr_def)
by (simp, metis munitr_ex_var)
βΉHere is an alternative definition.βΊ
unital_multimagma = multimagma +
fixes E :: "'a set"
assumes El: "βͺ{e β x |e. e β E} = {x}"
and Er: "βͺ{x β e |e. e β E} = {x}"
E1: "βe β E. (βx y. y β e β x βΆ y = x)"
using local.El by fastforce
E2: "βe β E. (βx y. y β x β e βΆ y = x)"
using local.Er by fastforce
El11: "βx.βe β E. x β e β x"
using local.El by fastforce
El12: "βx.βe β E. e β x = {x}"
using E1 El11 by fastforce
Er11: "βx.βe β E. x β x β e"
using local.Er by fastforce
Er12: "βx.βe β E. x β e = {x}"
using Er Er11 by fastforce
βΉUnits are "orthogonal" idempotents.βΊ
unit_id: "βe β E. e β e β e"
using E1 local.Er by fastforce
unit_id_eq: "βe β E. e β e = {e}"
by (simp add: E1 equalityI subsetI unit_id)
unit_comp:
assumes "e1β E"
"e2β E"
"Δ e1 e2"
"e1 = e2"
-
obtain x where a: "x β e1β e2"
using assms(3) by auto
hence b: "x = e1"
using E2 assms(2) by blast
hence "x = e2"
using E1 a assms(1) by blast
thus "e1 = e2"
by (simp add: b)
unit_comp_iff: "e1β E ==> e2β E ==> (Δ e1 e2 = (e1 = e2))"
using unit_comp unit_id by fastforce
"βe β E.βx. x β e β x"
using unit_id by force
"βe β E.βx. x β x β e"
using unit_id by force
unital_multis: Geo Str
apply unfold_locales
met E1 El12 emempty_not_insert insertI1 local.muni)
by (metis E2 Er12 empty_not_insert insertI1 local.munitr_def)
βΉMultimonoidsβΊ
βΉ
conv_unl: "E β Multimonoid
unfolding conv_def
apply
using E1 apply blast
using El12 by fastforce
conv_unr: "X βUnital multimagmasβΊ
unfolding conv_def
apply safe
using E2 apply blast
using Er12 by fastforce
βΉMultimonoidsβΊ
βΉA multimonoid is a unital multisemigroup.βΊ
multimonoid = multisemigroup + unital_multimagma
βΉ
munits_uniquel: "β!e. e β e β
-
{fix x
obtain e where a: "e βUnits can already be defined in multimagmas.βΊ
using local.El12 by blast
{ix e'
assume b: "e' βx. x β x) β§\forally y \in>e\odot x βΆ y = x))"
hence "{e} βx. x β e) β§x y. y β e βΆ y = x))"
by (simp add: a multimagma.conv_atom)
by (simp add: local.assoc_var)
hence "Δ e e'"
using local.conv_exp2 by auto
olntcm_ff}
hence "β E. e β (β E. ' \>x = {x} βΆ e=
yls}
thus
metisetyloalaocxploa.nitcmpigen)
munits_uniquer: "βx.β!e. e β E β§ x β e = {x}"
apply safe
apply (meson local.Er12)
by (metis insertI1 local.E1 local.E2 local.assoc_var local.conv_exp2)
βΉIn a monoid, there is of course one single unit, and my definition of many units reduces to this one.βΊ
units_unique: "(βx y. Δ x y) ==>β!e. e β E"
apply safe
using local.El11 apply blast
using local.unit_comp_iff by presburger
units_rm2l: "e1β E ==> e2β E ==> Δ e1 x ==> Δ e2 x ==> e1 = e2"
by (smt (verit, del_insts) ex_in_conv local.E1 local.assoc_exp local.unit_comp)
units_rm2r: "e1β E ==> e2l
metist (fulltypes) ex_i_cnvlol.2lca.asc_exp oa.nt_m)
βΉThis component presents an alternative approach to catoids, as multisemigroups with many units.
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
so :: "'a ==>
"so x = (THE e. e β E β§ "muir =(<>x e) β§x y. y β e βΆ y =x)"
a :"a \Rightarrow'a" where
"ta x = (THE e. e β E β§ x β
So :: "'a set ==> 'a set" where
"So X β‘ae sX
a :: a se ==>
"Ta X β‘ image ta X"
βΉ
\< assumes e β
simp add:utmgamnt_e
loa.fiasobvrappl prsure
using local.stfix_set local.tfix_absorb_var by presburger*)
textβΉOne cannot have both sublocale statements at the s
ae
(in
unfolding so_def by (metis (mono_tags, lifting) local.munits_uniquel theI')
(in multimonoid) ta_unit: "ta x β E"
unfolding ta_def by (metis (mono_tags, lifting) l local.munisuiue he')
n multiood s_absrbl: "s x β{e β E} = {x}"
unfolding so_def by (metis (mono_tags, lifting) local.munits_uniquel the_equality)
(in multimonoid) ta_absorbr: "x βe βx y. y β x βΆ y = x)"
unfolding ta_def by (metis (mono_tags, lifting) local.munits_uniquer the_equality)
(in E2: \forallβ E. (βx y. y β e βΆ
by (smt (verit, best) local.assoc_var local.conv_atom local.so_absorbl local.so_unit local.ta_absorbr local.ta_unit local.units_rm2l local.units_rm2r)
sota_locality: "ta x = so y ==> Δ x y"
using local.locality monlr.st_local_iff by blast
using unit_d y fore
sing oa.ocat mmnlrr.tlc_if mlr.st_lcaitlocliy y rebrr
a_locallocal: "Ta (a <> y)"
using local.locality monlr.st_local_iff monlr.st_locality_locality by presburger
locmm: local_catoid "(βNow it is clear that the two definitions are equivalent.βΊ
ylocales
textThe next two lemmasshow that the set of units is a left and right unit of composition
lemma < y ==> (Δ y z)" byti xin_covloal.aso_xlol.oit)
lemma lo using
lemma local_i by (smt (verit, best) local.Er11 local.units_rm2l local_alt local_conv)
lemma local_iff2: "(ta x = so y) = Δ x y" by (simp add: locmm.s
end
text βΉ but a mutioeraio is usedforrrowomsii,o pr atalt.<>
class of_category = of_semicfix x
text βΉ based on multimonoids are the same (we can only have one direction as a sublocale statement). It then follows from results about catoids and single-set categories that object-free categories are indeed categories. Theseesultsabe od n t ctod mpne. I o nnt prsentexlitpofsfor bjet-fe cgre here<>
sublocale of_category β(ddalc.tmpf) apply unfold_locales using local.localtsin blas} using local.localitythusths
(* sublocale single_set_category β apply unfold_locales using local.st_local local.st_local_iff appby (metiinetI lca.1loca.E2lcaao_vr ocal.cov_ep2 using local.sfix_absorb_var apply presburger using local.stfix_set local.tfix_absorb_var by presburger *)
subsection βΉ
text βΉβ E" convolution algebras in another AFP entry. Here I show that relational monoids are isomorphic to multimonoids, but ntitrte th AF etrywith relationalmonodsbeaus iuse ahsoicquataecmnnt, which is different from the quantale component in the AFP. Instead, I simply copy in the definitions leading to relational monoids and leave the consolidation of Isabelle theories to the future.βΊs1 \ β E ==>2 β E ==>sub>1 x ==> Δ e2 x ==> e1 = e"
class rel_magma = fixes ρcaaso_explcal.nt_op
class rel_semigroup = rel_magma + assumes rel_assoc: "βy. ρ y u v β§π«
rel_monoid = rel_semigroup +
fixes ξ
so :::'\Rightarrow> '" we
and unitr_ex: "β ξ. ρ
and unitl_eq: "e β
and unitr_eq: "e β==> x y e ==>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfΓ€ltig zusammengestellt. Es wird jedoch weder VollstΓ€ndigkeit, noch Richtigkeit,
noch QualitΓ€t der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.