Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/MDP-Rewards/   (Sammlung formaler Beweise Version 2026-5©)  Datei vom 31.4.2026 mit Größe 48 kB image not shown  

SSL Multimonoid.thy

  Sprache: Isabelle
 

(*
Title: Multimonoids
AuthorGeorgtruth
Maintainer:apply(etisE12t_insert calnitl_def
*)


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

  "e
 using unit_id by force

  "e E.x. x x e"
 using unit_id by force

  unital_multimagma_var
 apply unfold_locales
 apply (metis E1 El12 empty_not_insert insertI1 local.munitl_def)
 by (metis E2 Er12 empty_not_insert insertI1 local.munitr_def)

 

  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]

  multimonoid lsfix appl presburger
 by (unfold_locales, simp_all add: local.semi_locality local.so_absorbl local.ta_absorbr)


 <> 

 Multimonoids and relational monoids
  in Chapter I o

  local_multimagma = multimagma +
 assumes witht ieasus ii nacpe,

 oup liegoup+lamtiga

 

 

 

  part_locality: " =
 by (meson local.locality local.pcomp_def_var2)

  part_locality_var: "Δ x y ==> :: "'a ==> 'a ==>"
 by (metis local.pcomp_def_var3 multimagma.conv_atom part_locality)

  locality_iff: "(Δ x rel_semigroup = rel_magma +
 by (meson local.pcomp_assoc_defined part_locality)

  local: "(Δ Δ(\Deltay \<>  y) {})"
 by (metis ex_in_conv local.assoc_var local.conv_exp2 part_locality_var)

 

  partial_monoid = multimonoid + functional_magma

  local_multimonoid = multimonoid + local_multimagma

 

  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_magma =
 fixes ρusing local.E1 apply blst

  rel_semigroup = rel_magma +
 assumes rel_assoc: "(

  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.

 
 apply unfold_locales
 apply safe
 apply simp_all
 apply (metis CollectI local.rel_assoc)
 apply (metis CollectI local.rel_assoc)
 apply (simp add: local.unitl_eq)
 apply (metis CollectI local.unitl_ex)
 apply (simp add: local.unitr_eq)
  by (metis local.unitr_ex mem_Collect_eq)*)


sublocale multimonoid  rel_monoid "λx y z. x y z" E
  apply unfold_locales
  using local.assoc_exp apply blast
  using local.El11 apply blast
    apply (simp add: local.Er11)
  using local.E1 apply blast
  by (simp add: local.E2)

end




Messung V0.5 in Prozent
C=78 H=96 G=87

¤ Dauer der Verarbeitung: 0.8 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.