Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

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=99 H=80 G=90

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen



NIST Cobol Testsuite



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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

      Eigene Quellcodes
      Fremde Quellcodes
     Quellcodebibliothek
      Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge