%------------------------------------------------------------------------------ % Monads % % Author: Rick Butler % David Lester, Manchester University & NIA % % Version 1.0 3/1/02 % Version 1.1 12/3/03 New library structure % Version 1.2 5/5/04 Reworked for definition files DRL %------------------------------------------------------------------------------
monad[T:Type+,*:[T,T->T],one:T]: THEORY
BEGIN
ASSUMINGIMPORTING monad_def[T,*,one]
fullset_is_monad: ASSUMPTION monad?(fullset[T])
ENDASSUMING
IMPORTING monad_def[T,*,one], groupoid[T,*]
monad: TYPE+ = (monad?) CONTAINING fullset[T]
M: VAR monad
x,y: VAR T
one_member: LEMMA member(one,M)
one_in : LEMMA M(one)
left_identity: LEMMA one * x = x
right_identity: LEMMA x * one = x
unique_left_identity: LEMMA (FORALL (x:(M)): y*x = x) IFF y = one
unique_right_identity: LEMMA (FORALL (x:(M)): x*y = x) IFF y = one
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 ist noch experimentell.