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

Quelle  Monad_Plus.thy

  Sprache: Isabelle
 

section Monad-Plus Class

theory Monad_Plus
imports Monad
begin

hide_const (openFixrec.mplus

class plusU = tycon +
  fixes plusU :: "udom'a udom'a udom'a::tycon"

class functor_plus = plusU + "functor" +
  assumes fmapU_plusU [coerce_simp]:
    "fmapUf(plusUab) = plusU(fmapUfa)(fmapUfb)"
  assumes plusU_assoc:
    "plusU(plusUab)c = plusUa(plusUbc)"

class monad_plus = plusU + monad +
  assumes bindU_plusU:
    "bindU(plusUxsys)k = plusU(bindUxsk)(bindUysk)"
  assumes plusU_assoc':
    "plusU(plusUab)c = plusUa(plusUbc)"

instance monad_plus  functor_plus
by standard (simp_all only: fmapU_eq_bindU bindU_plusU plusU_assoc')

definition fplus :: "'a'f::functor_plus 'a'f 'a'f"
  where "fplus = coerce(plusU :: udom'f _)"

lemma fmap_fplus:
  fixes f :: "'a 'b" and a b :: "'a'f::functor_plus"
  shows "fmapf(fplusab) = fplus(fmapfa)(fmapfb)"
unfolding fmap_def fplus_def
by (simp add: coerce_simp)

lemma fplus_assoc:
  fixes a b c :: "'a'f::functor_plus"
  shows "fplus(fplusab)c = fplusa(fplusbc)"
unfolding fplus_def
by (simp add: coerce_simp plusU_assoc)

abbreviation mplus :: "'a'm::monad_plus 'a'm 'a'm"
  where "mplus fplus"

lemmas mplus_def = fplus_def [where 'f="'m::monad_plus" for f]
lemmas fmap_mplus = fmap_fplus [where 'f="'m::monad_plus" for f]
lemmas mplus_assoc = fplus_assoc [where 'f="'m::monad_plus" for f]

lemma bind_mplus:
  fixes a b :: "'a'm::monad_plus"
  shows "bind(mplusab)k = mplus(bindak)(bindbk)"
unfolding bind_def mplus_def
by (simp add: coerce_simp bindU_plusU)

lemma join_mplus:
  fixes xss yss :: "('a'm)'m::monad_plus"
  shows "join(mplusxssyss) = mplus(joinxss)(joinyss)"
by (simp add: join_def bind_mplus)

end

Messung V0.5 in Prozent
C=71 H=96 G=84

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet am  2026-06-10) ¤

*© 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.