{VERSION 4 0 "IBM INTEL NT" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "Helvetica" 1 14 128 0 0 1 0 0 2 0 0 0 0 0 0 1 } {CSTYLE "" -1 257 "" 0 24 0 0 255 1 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "Helvetica" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 259 "Helvetica" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 260 " " 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 261 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 262 "" 0 1 255 0 255 1 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Out put" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }1 1 0 0 12 12 1 0 1 0 2 2 19 1 } {PSTYLE "Normal" -1 257 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT 257 37 "Set Theory - An Introdu ction to Maple" }}{PARA 0 "" 0 "" {TEXT 256 32 "Mth 355/399 Sept 28 20 01 Maple 6" }}{PARA 0 "" 0 "" {TEXT 258 16 "Bent E. Petersen" }}{PARA 0 "" 0 "" {TEXT 259 33 "Filename: 355f2001_set_theory.mws" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 260 13 "The Worksheet" }} {PARA 257 "" 0 "" {TEXT -1 473 "When you are using Maple in a windowin g environment it is possible to move around on the worksheet by left-c licking the mouse. As a result, commands may end up being executed in \+ a nonlinear order. This can cause some confusion, since there is no vi sual clue. One way to fix a mess is to have Maple re-execute the whole worksheet (look on the Edit menu). This works best if old expressions are cleaned up first, so it is a good idea to start each worksheet wi th the command " }{TEXT 261 8 "restart;" }{TEXT -1 40 " You do not nee d to do so of course ...." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 262 115 "Maple commands are exec uted by pressing the Enter key when the mouse cursor is in the line co ntaining the commands." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 468 "Note each Maple command must be terminated by a col on or a semicolon (except help commands preceded by a question mark). \+ You can spread the command over several lines by postponing the termin ating colon or semicolon. You simply move to a new line by pressing En ter. Maple will chatter at you when you move to a new line in this man ner if the previous command is unterminated. Ignore it, but keep in mi nd a command will not be executed before it is properly terminated." } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 76 "The assi gnment operator in Maple is := (colon and equals sign juxtaposed)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 299 "You ca n also stack up several commands on one line by terminating them indiv idually with colons or semicolons. The effect of the colon is to suppr ess output from the corresponding command, though the command is still carried out. All the commands on a line are executed when you press t he Enter key." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 408 "Maple has two ditto operators, % and %%. The value of % is the previous evaluated expression, the value of %% is the one b efore that. Since the Worksheet commands may be executed in any order, the ditto operators can cause a lot of confusion. It is probably best to restrict them to the same line as the expressions they refer to. H ere is a silly example, which also demonstrates the assignment operato r." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 222 "He re's a useful fact: You can open a new command line below the current \+ one by pressing Ctrl-J, or above the current line, by pressing Ctrl-K. This is pretty useful when you realize you omitted something at a cer tain step." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 163 "Functions in maple may be defined in several ways - the easiest is often the arrow notation. For example here is the Euler po lynomial that produces so many primes" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "p:=x->x^2+x+41;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pGR6#%\"xG6\"6$%)operatorG%&arrowG F(,(*$)9$\"\"#\"\"\"F1F/F1\"#TF1F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "for k from 1 to 40 do; k, ifactor(p(k)), isprime(p(k) ); od;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"\"-%!G6#\"#V%%trueG" }} {PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"#-%!G6#\"#Z%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"$-%!G6#\"#`%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"%-%!G6#\"#h%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"&-%!G6#\"#r%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"'-%!G 6#\"#$)%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"(-%!G6#\"#(*%%tr ueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\")-%!G6#\"$8\"%%trueG" }} {PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"*-%!G6#\"$J\"%%trueG" }}{PARA 11 " " 1 "" {XPPMATH 20 "6%\"#5-%!G6#\"$^\"%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#6-%!G6#\"$t\"%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#7-%!G6#\"$(>%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#8-% !G6#\"$B#%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#9-%!G6#\"$^#%%t rueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#:-%!G6#\"$\"G%%trueG" }} {PARA 11 "" 1 "" {XPPMATH 20 "6%\"#;-%!G6#\"$8$%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#<-%!G6#\"$Z$%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#=-%!G6#\"$$Q%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#>-%!G6#\"$@%%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#?-%!G6 #\"$h%%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#@-%!G6#\"$.&%%true G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#A-%!G6#\"$Z&%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#B-%!G6#\"$$f%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#C-%!G6#\"$T'%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#D-%!G6#\"$\"p%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#E-%!G 6#\"$V(%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#F-%!G6#\"$(z%%tru eG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#G-%!G6#\"$`)%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#H-%!G6#\"$6*%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#I-%!G6#\"$r*%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#J-%!G6#\"%L5%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#K-%!G6 #\"%(4\"%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#L-%!G6#\"%j6%%tr ueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#M-%!G6#\"%J7%%trueG" }} {PARA 11 "" 1 "" {XPPMATH 20 "6%\"#N-%!G6#\"%,8%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#O-%!G6#\"%t8%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#P-%!G6#\"%Z9%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#Q-%!G6#\"%B:%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#R-%!G6 #\"%,;%%trueG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"#S*$)-%!G6#\"#T\"\" #\"\"\"%&falseG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 110 "Maple has a few set theory commands built in. Let's apply them to some simple problems modified from our text." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "U :=\{1,2,3,4,5,6,7,8,9,10,11,12\}; # small universe" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%\"UG<.\"\"\"\"\"#\"\"$\"\"%\"\"&\"\"'\"\"(\"\")\"\" *\"#5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "A:=\{3,5,7 ,9\}; B:=\{2,3,5,6,7\}; C:=\{2,4,6,8\};" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"AG<&\"\"$\"\"&\"\"(\"\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%\"BG<'\"\"#\"\"$\"\"&\"\"'\"\"(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %\"CG<&\"\"#\"\"%\"\"'\"\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "A union B;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<(\"\"#\"\"$\"\"&\" \"'\"\"(\"\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "B intersec t C;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$\"\"#\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "B minus A;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$\"\"#\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "A min us B;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<#\"\"*" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 87 "We can define our \+ own absolute complement function (relative to our selected universe): " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "complement:=X->U minus X;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%+complementGR6#%\"XG6\"6$%)operatorG%&arrowGF(-%&minu sG6$%\"UG9$F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "comple ment(A);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<*\"\"\"\"\"#\"\"%\"\"'\" \")\"#5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "compleme nt(B);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<)\"\"\"\"\"%\"\")\"\"*\"#5 \"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "complement(C); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<*\"\"\"\"\"$\"\"&\"\"(\"\"*\"#5\" #6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "(A union B) minus C;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<&\"\"$\"\"&\"\"(\"\"*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "complement(A union B) inters ect complement(B union C);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<&\"\"\" \"#5\"#6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "(A union C) minus (C minus A);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<&\"\"$\"\"&\" \"(\"\"*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 122 "The symmetric difference measures by how much two sets d iffer. We can easily define our own symmetric difference function." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "symdiff:=(X,Y)->(X minus Y) union (Y minus X);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(symdiffGR6$%\"XG%\"YG6\"6$%)operatorG%&arrowGF)-% &unionG6$-%&minusG6$9$9%-F16$F4F3F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "symdiff(A,B);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<%\" \"#\"\"'\"\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "symdiff(A, C);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<*\"\"#\"\"$\"\"%\"\"&\"\"'\"\" (\"\")\"\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "symdiff(B,C) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<'\"\"$\"\"%\"\"&\"\"(\"\")" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 29 "We can easily test membership" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "member(3,A);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "member(4,A);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 179 "H ere's a simple way to define a procedure carp() to compute the Cartesi an product. This is a bit more complicated than the arrow notation for functions, but is much more flexible." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "carp:=proc(X,Y)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " local Z,x,y;" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 8 " Z:=\{\};" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " f or x in X do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 " for y in Y do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 " Z:=Z union \{[x,y]\};" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "return Z;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%carpGR6$%\"XG%\"YG6%%\"ZG%\"xG%\"yG6\"F-C%>8$<\"?&8%9$%%trueG ?&8&9%F5>F0-%&unionG6$F0<#7$F3F7OF0F-F-F-" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 10 "carp(A,A);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<27$ \"\"$F%7$F%\"\"&7$F%\"\"(7$F%\"\"*7$F'F%7$F'F'7$F'F)7$F'F+7$F)F%7$F)F' 7$F)F)7$F)F+7$F+F%7$F+F'7$F+F)7$F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "carp(A,B);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<67$\" \"$F%7$F%\"\"&7$F%\"\"(7$F'F%7$F'F'7$F'F)7$F)F%7$F)F'7$F)F)7$\"\"*F%7$ F1F'7$F1F)7$F%\"\"#7$F%\"\"'7$F'F57$F'F77$F)F57$F)F77$F1F57$F1F7" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "carp(A,C);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<27$\"\"$\"\"#7$F%\"\"'7$\"\"&F&7$F*F(7$\"\"(F&7$F-F (7$\"\"*F&7$F0F(7$F%\"\"%7$F%\"\")7$F*F37$F*F57$F-F37$F-F57$F0F37$F0F5 " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "carp(A,B) minus carp(A, C);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<.7$\"\"$F%7$F%\"\"&7$F%\"\"(7$ F'F%7$F'F'7$F'F)7$F)F%7$F)F'7$F)F)7$\"\"*F%7$F1F'7$F1F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 38 "We can de vise our own test for subsets" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "subset:=proc(X,Y)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " local x,s;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " s:=true;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " fo r x in X do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " s:= s and member (x,Y);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " od;" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'subsetGR6 $%\"XG%\"YG6$%\"xG%\"sG6\"F,C$>8%%%trueG?&8$9$F0>F/3F/-%'memberG6$F29% F,F,F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "subset(A,B);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "subset(\{9,5\},A);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #%%trueG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 126 "Here's a slicker way to check for a subset. Here evalb() means evaluate Boolean, that is, find the truth value of a statement. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "subset2:=(X,Y)->evalb((X minus Y)=\{\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(subset2GR6$%\"XG%\"YG6\"6$%)operatorG%&arrow GF)-%&evalbG6#/-%&minusG6$9$9%<\"F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "subset2(A,B);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&fa lseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "subset2(\{9,5\},A); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 370 "The power set may be c omputed by using the Maple function choose() from the the combinat pa ckage. To use it we have either to load the combinat package by issuin g the command with(combinat) or we have to call the function by using \+ its so called long name combinat[choose](). We will use the second met hod but we will rename the function to the more convenient powset()." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "alias(powset=combinat[choose]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%'powsetG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "powset(A );" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<2<\"<#\"\"*<&\"\"$\"\"&\"\"(F&< %F(F)F*<$F)F&<%F)F*F&<$F*F&<%F(F*F&<$F(F&<%F(F)F&<#F(<#F)<$F(F)<#F*<$F (F*<$F)F*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 121 "Try to be reasonable. If you decide to compute powset(c arp(A,B)) you will have a long wait. This set has 2^20 elements!" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "2^20;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"(w&[5" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 53 "It will t ake a while to list over 1 million elements." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "47 1 " 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }