OKlibrary  0.2.1.6
BasicNotions.mac
Go to the documentation of this file.
00001 /* Oliver Kullmann, 15.7.2008 (Swansea) */
00002 /* Copyright 2008 Oliver Kullmann
00003 This file is part of the OKlibrary. OKlibrary is free software; you can redistribute
00004 it and/or modify it under the terms of the GNU General Public License as published by
00005 the Free Software Foundation and included in this library; either version 3 of the
00006 License, or any later version. */
00007 
00022 /* A "ringframe" is a quintupel RF = [R,+,*,[],[]],
00023    where the fourth component may contain additional
00024    components for the groupoid [R,+], while the fifth
00025    component may contain additional components for the
00026    groupoid [R,*] (in both cases in the standard order,
00027    i.e., so that append([R,+], RF[4]) and append([R,*], RF[5])
00028    fit into the groupoid-notions).
00029    Also [R,+,*] and [R,+,*,[]] is allowed, but RF[4] is always
00030    additive, and RF[5] is always multiplicative.
00031 */
00032 
00033 /* *************
00034    * Downcasts *
00035    *************
00036 */
00037 
00038 rngfrm2grd_add(R) := [R[1],R[2]]$
00039 rngfrm2grd_mul(R) := [R[1],R[3]]$
00040 rngfrm2egrd_add(R) := block([base : [R[1],R[2]]],
00041   if length(R) =3 then base else append(base, R[4]))$
00042 rngfrm2egrd_mul(R) := block([base : [R[1],R[3]]],
00043   if length(R) =3 then base else append(base, R[5]))$
00044 
00045