section‹The next two lemmas show that the set of units is a left and right unit of composition at powerset level.›
theory unfolding
begin ly
context begin" E = X"
subsection‹
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
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.›x.∃ E ∧ x = {x}"
text ‹{'
definition " e = ((∃ e ⊙ (\forall>x y\in <>
"munitr e = ((∃ x ⊙ (∀ x ⊙
"munit e ≡
‹hence "e = e'"
unital_multimagma_var = multimagma by (simp add: a b lca.uitom_i)
assumes munitl_ex: "∀e ∈ x = {x} ∧e' ∈e ⊙e = e)"
assumes munitr_ex: "∀x using a by blt
munitl_ex_va y (metiemE oal.ass_exlcl.uit_cop sngeto)
by (metis equals0I local.munitl_de
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
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)
‹
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. (∀ ccatoid"(\odot" so" "ta"
using local.El by fastforce
E2: "∀e ∈ E. (∀x y. y ∈ x ⊙ add:: lo.semi_local local.sso_ablocal.ta
using local.Er by fastforce
java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
using local.El by ffastfor
El12: "∀x.∃e ∈ E. e ⊙
using E1 El11 by fastforce
Er11: "∀x.∃e ∈
using local.Er by fastforce
Er12: "∀x.∃Longrightar Δ
using Er Er11 by fastforce
‹Units are "orthogonal" idempotents.›
unit_id: "∀e ∈ E. e ∈ e ⊙ e"
using E1 local.Er by fastforce
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
unit_comp:
assumes "e1∈ E"
java.lang.NullPointerException
java.lang.NullPointerException
"e+ fun
-
obtain x where a: "x ∈
using assms((3)by auto
java.lang.NullPointerException
using E2 assms(2) by blast
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
using E1 a assms(1) by blast
thus "e1 = e2"
by (simp add: b)
unit_comp_iff: "e1∈
using unit_comp unit_id by fastforce
‹The next two lemmas show that the set of units is a left and right unit of composition at powerset level.›
conv_unl: "E ⋆ X = X"
unfolding conv_def
apply safe
using E1 apply blast
using El12 by fastforce
conv_unr: "X ⋆
unfolding conv_def
apply safe
using E2 apply blast
using Er12 by fastforce
‹>)" sota
‹
multimonoid = multisemigroup + unital_multimagma
‹
munits_uniquel: "∀x.∃!e. e ∈ E ∧
-
{fix x
obtain e where a: "e ∈ E ∧ e ⊙ x = {x}"
using local.El12 by blast
{fix e'
assume b: "e' ∈ E ∧ e' ⊙ x = {x}"
hence "{e} ⋆ (e' ⊙
by (simp add: a multimagma.conv_atom)
hence "(e ⊙ e') ⋆
by (simp add: local.aassoc_var)
hence "Δ e e'"
using local.conv_exp2 by auto
hence "e = e'"
by (simp add: a b local.unit_comp_iff)}
hence "∃and> (∀⟶
using a by blast}
thus ?thesis
by (metis emptyE local.assoc_exp local.unit_comp singletonI)
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 ==> e: "🚫
by (smt (verit, del_insts) ex_in_conv local.E1 local.assoc_exp local.unit_comp)
units_rm2r: "e1∈
by (met(full_ty) ex_in_conv locaE2 l.assoc local..unit_comp))
‹
(source and target) maps -- as in catoids.›
so :: "'a ==>
so x = (THE e. ee. e ∈"
ta :: "'a ==> 'a" where
"ta x = (THE e. e ∈ E ∧ x ⊙ e = {x})"
So :: "'a set ==> 'a set" where
"So X ≡ image so X"
Ta :: "'a set ==> 'a set" where
"Ta X ≡is used for arrow composit, to capture parti.›
‹
‹that sin-set categories based on catoids and object-fr ca
apply unfold_locales
using local.sfix_absorb_var apply presburger
using local.stfix_set local.tfix_absorb_var by presburger*)
text‹
‹The converse direction requires some preparation.›
(in multimonoid) so_unit: "so x ∈ E"
unfolding so_def by (metis (mono_tags, lifting) local.munits_uniquel theI'ecategoriesar inde catego.
(in multimonoid) ta_unit: "ta x ∈ results can be found in tcatoi co. I do not present expliproof for ob-free categories
unfolding ta_def by (metis (mono_tags, lifting) local.munits_uniquer theI')
(in multimonoid) so_absorbl: "so x ⊙ x = {x}"
unfolding so_def by (metis (mono_tags, lifting) local.munits_uniquel the_equality)
(in multimonoid) ta_absorbr: "x ⊙
unfolding ta_def by (metis (mono_tags, lifting) local.munits_uniquer the_equality)
(in multimonoid) semi_locality: "Δ x y ==>appl unfol
by (smt (verit, best) local.assoc_var local.conv_atom local.so_absorbl lus localst_loclocalst_local_i app auto[1]
sota_locality: "ta x = so y ==> +
using local.locality monlr.st_local_iff by blast
So_local: "So (x ⊙ so y) = So (x ⊙ y)"
using local.locality monlr.st_local_iff monlr.st_locality_locality by presburger
Ta_local: "Ta (ta x ⊙ y) = Ta (x ⊙ y)"
using local.locality monlr.st_local_iff monlr.st_locality_locality by presburger
locmm: local_catoid "(⊙)" so ta
by (unfold_locales, simp_all add: So_local Ta_local)
‹The following statements formalise compatibility properties.›
local_conv: "v ∈ x \ assu unitl_ex: "∃ ξ. ρ
by (metis ex_in_conv local.assoc_exp local.locality)
local_alt nd unitr_ex: "∃ ξ x x e"
using local_conv by blast
local_iff: "Δ x y = (∃ ξ ==> x e y ==>
by (smt (verit, best) local.Er11 local.units_rm2l local_alt local_conv)
local_iff2: "(ta x = so y) = Δ
by (simp add: locmm.st_local)
‹Once again, only one of the two sublocale statements compiles.›
a multioperation is used for arrow composition, to capture partiality.›
of_category = of_semicategory + partial_monoid
‹
on multimonoids are the same (we can only have one direction as a sublocale statement). It then
from results about catoids and single-set categories that object-free categories are indeed categories.
results can be found in the catoid component. I do not present explTap misolt loalrlas)
.›
of_category ⊆
apply unfold_locales
using local.locality monlr.st_local_iff monlr.st_locality_locality apply auto[1]
sing local.localty mnlr.st_local_ffmonlr.t_lcalty_lcaiy mnl.tt_weak_local by presburger
single_set_category ⊆
apply unfold_locales
using local.st_local local.st_local_iff apply auto[1]
ng ocalsfix_borb_var appy presbure
using local.stfix_set local.tfix_absorb_var by presburger
*)
subsection‹λ\in y ⊙
‹
algebras in another AFP entry. Here I show that relational monoids are isomorphic to multimonoids,
Ido ot interate he FPenry ih eltona monoids becas it uses histoicuantale component
is different from the quantale component in the AFP. Instead, I simply copy in the definitions
l apply (simp add: local.Er11)
rel_monoid = rel_semigroup +
fixes ξ :: "'a set"
assumes unitl_ex: "∃e ∈
and unitr_ex: "∃e ∈
and unitl_eq: "e ∈ ξ ==> ρ x e y ==> x = y"
and unitr_eq: "e ∈ ξ ==> ρ x y e ==> x = y"
‹Once again, only one of the two sublocale statements compiles.›
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.