{VERSION 2 3 "APPLE_PPC_MAC" "2.3" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 269 "" 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Geneva" 1 10 0 0 0 1 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 6 6 0 0 0 0 0 0 -1 0 }{PSTYLE "H eading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 4 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }{PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Monaco" 1 9 0 0 255 1 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 \+ Font 0" -1 257 1 {CSTYLE "" -1 -1 "Geneva" 1 12 0 0 0 1 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 2" -1 258 1 {CSTYLE "" -1 -1 "Geneva" 1 10 0 0 0 1 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 7 "Logique" }{MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 3 "" 0 "" {TEXT -1 21 "La bibliotheque Logic" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 527 "La bibliothe que logic est une bibliotheque utilitaire dont le but est de manipuler des expressions logiques. Ces expressions utilisent des variables, le s valeurs true (vrai) et false (faux) et des operateurs logiques class iques comme le \"et logique\" traduit par &and, le \"ou logique\" trad uit par \"&or\", le \"non logique\" traduit par \"¬\", le \"ou excl usif logique\" traduit par &xor, l'implication logique traduite par &i mplies, l'equivalence logique traduite par \"&iff\". Cette bibliothequ e doit etre chargee par un with(logic)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "with(logic):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 101 "Une premiere fonction permet de creer au hasard des expressions logiq ues. C'est la fonction randbool." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "randbool([a,b,c]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$&orG6&-%%&andG6%%\"aG%\"cG-%%¬G6#%\"bG-F'6%F*F+-F ,6#F)-F'6%F+-F,6#F*F1-F'6%F*F.F1" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 134 "Son utilite est tres reduite et nous prefererons definir notre pr opre fonction permettant de creer des expressions logiques au hasard. " }{MPLTEXT 1 0 0 "" }}{PARA 257 "" 0 "" {TEXT 269 206 "(* la fonction rand_expr(variables,op1,op2,n) retourne une expression formelle de pr ofondeur n en les variables utilisant les operateurs unaires de la lis te op1 et les operateurs binaires de la liste op2 *)" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1040 "rand_expr:=proc(vari ables,op1,op2,n)\n local nvar,noper,n1,n2,m,rn;\n \+ nvar:=nops(variables);\n noper:=nops(op1)+nops(op 2);\n if n=1 then\n m:=(rand() mod noper)+ 1;\n if m<= nops(op1) then\n RETU RN(op1[m](variables[(rand() mod nvar)+1]))\n else \n \+ RETURN(op2[m-nops(op1)](\n \+ variables[(rand() mod nvar)+1],\n v ariables[(rand() mod nvar)+1]))\n fi\n el se\n n1:=(rand() mod (n-1))+1; n2:=(rand() mod (n-1))+ 1;\n m:=(rand() mod noper)+1;\n if m<= nops(op1) then\n RETURN(op1[m](rand_expr(variabl es,op1,op2,n1)))\n else \n RETURN (op2[m-nops(op1)]\n (rand_expr(variab les,op1,op2,n1),\n rand_expr(variabl es,op1,op2,n2)))\n fi\n fi\n end:" }} {PARA 11 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "rand_expr([a,b],[`¬`],[`&and`,`&or`,`&implies`],3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$&orG6$-F$6$-%%¬G6#%\"bG-%%&andG6$F+F+- %)&impliesG6$-F0F.F," }}}{EXCHG {PARA 257 "" 0 "" {TEXT 270 128 "(* la fonction rand_logic(vars,n) retourne une expression logique au hasard de profondeur n en les variables de la liste vars *)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "rand_logic:= (vars,n) ->\nrand_expr(vars,[`¬` ],[`&and`,`&or`,`&iff`,`&xor`,`&implies`],n):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "rand_logic([a,b,c],3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%%¬G6#-%%&andG6$-%%&iffG6$%\"aGF,-%%&xorG6$%\"cGF, " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 197 "La fonction satisfy resoud d es equations logiques: etant donne une expression logique, elle cherch e des valeurs des varaibles qui rendent vraie cette expression (on dit encore qu'elle la satisfont)" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "expr:=rand_logic([a,b,c],5);\nsatisfy(expr); " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%exprG-%%&xorG6$-%)&impliesG6$-% %&iffG6$-F)6$%\"aG%\"cG-%%&andG6$F1%\"bG-%%¬G6#F5-F,6$-F36$-F)F4F6- F,6$F5F1" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<%/%\"bG%%trueG/%\"cG%&fal seG/%\"aGF&" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 128 "La fonction tauto logy teste si une expression est un tautologie, c'est a dire si elle e st vraie pour toute valeurs des variables" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "tautology((a &implies b) &if f ((¬ a) &or b));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 167 "alors que la fonction bequal test e si deux expressions logiques sont equivalentes (c'est a dire si elle s prennent la meme valeur pour toutes les valeurs des variables)" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "bequal( a &implies b,(¬ a) &or b);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%tru eG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 47 "en fournissant eventuelleme nt un contre-exemple" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "bequal(a &implies b,(¬ b) &or a,ctrex);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "ctrex;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$/%\"aG%%tr ueG/%\"bG%&falseG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 294 "On sait que l'on peut effectuer les calculs logiques en se placant dansl'anneau q uotient Z/2Z, en remplacant true par 1, 0 par false, et les operateur s logiques par des operations algebriques a base d'addition et de mult iplications. La fonction convert(...,MOD2) se charge de cette conversi on " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "convert(a &or b, MOD 2,expanded);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(%\"bG\"\"\"%\"aGF%*& F&F%F$F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "convert(a &an d b, MOD2,expanded);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&%\"aG\"\"\"% \"bGF%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "convert(a &implie s b, MOD2,expanded);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(\"\"\"F$%\"a GF$*&F%F$%\"bGF$F$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "conve rt(a &iff b, MOD2,expanded);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(%\"a G\"\"\"%\"bGF%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "conve rt(a &xor b, MOD2,expanded);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&%\"a G\"\"\"%\"bGF%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 233 "La fonction bs imp se charge de simplifier une expression en une somme (ou disjonctio n, ou \"ou logique\") de conjonctions (\"et logique\") de variables ou negations de variables, fournissant aisement les solutions de l'expre ssion logique" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "expr:=`&o r`(`&xor`(`&iff`(`&iff`(c,b),`¬`(a)),`&iff`(c,c)),`¬`(`&and`(`&a nd`(b,b),`&implies`(a,a)))):\nbsimp(expr);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$&orG6%-%%¬G6#%\"bG-%%&andG6$%\"aG%\"cG-F+6$-F'6#F .-F'6#F-" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 119 "autrement dit l'expr ession est vraie si et seulement si soit b est faux, soit a et c sont \+ vrais, soit a et c sont faux." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 305 "Quant a la fonction canon, avec ses diverses opti ons, elle permet de reduire une expression logique en sa forme normale disjonctive (disjonction de conjonctions portant sur toutes les varia bles) ou forme normale conjonctive (conjonction de disjonctions portan t sur toutes les variables) ou encore modulo 2" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 24 "canon(expr,[a,b,c],DNF);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%$&orG6(-%%&andG6%%\"aG%\"cG-%%¬G6#%\"bG-F'6%-F,6#F *F+F)-F'6%-F,6#F)F*F+-F'6%F5F1F+-F'6%F5F1F.-F'6%F*F.F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "canon(expr,[a,b,c],CNF);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%%&andG6$-%$&orG6%%\"aG-%%¬G6#%\"cG-F+6# %\"bG-F'6%-F+6#F)F.F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "ca non(expr,[a,b,c],MOD2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,(\"\"\"F$* &%\"bGF$%\"cGF$F$*&%\"aGF$F&F$F$" }}}{EXCHG {PARA 3 "" 0 "" {TEXT -1 34 "Resolution de problemes de logique" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 145 "Les exercices suivants sont extraits de l'ouvrage hautem ent recomandable \"Quel est le titre de ce livre\" par Raymond Smullya n aux editions Dunod." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 39 "Dans les dossiers de l'Inspecteur Craig" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 775 "L'lnspecteur Leslie Craig d e Scotland Yard nous a aimablement permis de consulter les dossiers de s affaires les plus marquantes auxquelles il ait ete confronte, cela p our le plus grand interet de ceux qui voient dans la detection des cri minels une application de la Logique.\n\nNous debuterons par une affai re tres simple. Une enorme quantite de marchandise avait ete derobee d ans un magasin. Le voleur (ou les voleurs) s'etait enfui en voiture. T rois malfaiteurs notoires A, B, C furent convoques a Scotland Yard pou r y etre interroges. On put etablir les faits suivants de facon certai ne:\n\n(1 ) Nul autre que A, B, C n'avait pu participer au cambriolage .\n(2) C ne faisait jamais un coup sans la complicite de A. \n(3) B ne savait pas conduire. A etait-il innocent ou coupable?" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "regle70:=(a &or b &o r c) &and (c &implies a) &and (a &or c): " }}}{EXCHG {PARA 257 "> " 0 "" {MPLTEXT 1 0 15 "bsimp(regle70);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #%\"aG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 346 "Voici un autre cas tre s simple de vol: Quand A, B et C furent conduits a Scotland Yard pour \+ y etre interroges, les faits suivants furent etablis de facon certaine :\n\n(1 ) Nul autre que A, B, C ne pouvait etre implique dans l'affair e. \n(2) A ne travaillait jamais sans au moins un complice.\n(3) C eta it innocent. \n\nB etait-il innocent ou coupable? " }{MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "regle71:=(a &or b &or c ) &and (a &implies (b &or c)) &and (¬ c):" }}}{EXCHG {PARA 257 "> \+ " 0 "" {MPLTEXT 1 0 15 "bsimp(regle71);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%%&andG6$%\"bG-%%¬G6#%\"cG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 "\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 951 "L'affaire \+ des jumeaux indiscernables\n\nVoici le cas plus interessant, d'un camb riolage commis a Londres pour lequel trois malfaiteurs notoires A, B e t C furent interpeles et entendus a Scotland Yard. Detail tres importa nt: A et C etaient des vrais jumeaux et ils se ressemblaient tant, qu' a peu pres personne ne pouvait les distinguer. Ces trois malfaiteurs a vaient un dossier tres charge et leurs habitudes etaient bien connues. En particulier, on savait que les jumeaux n'etaient pas temeraires, a u point qu'aucun d'eux n'aurait ose entreprendre un coup sans complice . Au contraire B aimait agir seul et il ne s'encombrait jamais de comp lice. D'autre part, plusieurs temoins avaient affirme qu'a l'heure du \+ vol, ils avaient vu l'un des jumeaux dans un bar de Douvres, mais sans pouvoir dire lequel c'etait.\n\nEn supposant, cette fois encore, que \+ nul autre que A, B ou C ne pouvait etre implique dans ce vol, qui etai t le coupable, qui etait innocent ?" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "regle72:=(a &or b &or c) &and (a & implies (b &or c)) &and (c &implies (a &or b)) &and (b &implies (¬ \+ a &and ¬ c)) &and (¬ a &or ¬ c):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 15 "bsimp(regle72);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# -%%&andG6%%\"bG-%%¬G6#%\"cG-F(6#%\"aG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 189 "\" Que pensez-vous de ces trois faits \", demanda un jou r l'Inspecteur Craig au Sergent McPherson.\n\n(1 ) Si A est coupable e t B est innocent, alors C est coupable. \n(2) C n'agit jamais seul. " }}{PARA 0 "" 0 "" {TEXT -1 397 "(3) A n'opere jamais avec C.\n(4) Nul \+ autre que A, B ou C ne peut etre implique dans l'affaire et l'un au mo ins des trois est coupable.\n\nLe Sergent se gratta la tete et dut avo uer: \" Pas grand chose, j'en ai peur. Mais de votre cote, pouvez- vou s en deduire qui est innocent ou coupable ? \"\n\n\" Non \", repondit \+ Craig \" mais j'en sais assez pour inculper l'un des trois suspects de facon certaine. \"\n" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 109 "regle73:=((a &and ¬ b)&implies c)&and (c &implies (a &or b)) &and (a&implies ¬ c) &and (a &or b &or c):" }}}{EXCHG {PARA 257 "> " 0 "" {MPLTEXT 1 0 15 "bsimp(regle73);" }}{PARA 11 "" 1 "" {XPPMATH 20 "-%$&orG6$-%%&andG6$%\"bG-%%¬G6#%\"cG-F&6$F(-F*6#%\" aG" }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 27 "L'ile des Purs et des Pires " }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 799 "Voici un \+ grand assortiment d'enigmes qui concernent une ile ayant deux especes \+ d'habitants: les Purs qui disent toujours la verite et les Pires qui m entent toujours. Chaque habitant de l'ile est soit un Pur soit un Pire . Je commencerai par un probleme bien connu, puis j'enchainerai avec t oute une serie de problemes de mon invention.\n\nSelon ce vieux proble me, trois habitants de l'ile -A, B et C- sont ensemble dans un jardin. Un etranger vient a passer qui demande a A, \" Etes-vous un Pur ou un Pire? \" A repond, mais en bredouillant tant que l'etranger ne compre nd pas sa reponse. Alors l'etranger demande a B \" Qu'est-ce qu'il a d it ? \" B repond \" ll a dit qu'il est un Pire \". Mais a ce moment C \+ intervient et dit \" Ne croyez pas B, il ment! \".\n\nDeterminez si B \+ et C sont des Purs ou des Pires." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "ditque:=(a,p) -> a &iff p;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "regle25:=ditque(c,¬ b) &and ditq ue(b,ditque(a,¬ a)):" }}}{EXCHG {PARA 257 "> " 0 "" {MPLTEXT 1 0 15 "bsimp(regle25);" }}{PARA 11 "" 1 "" {XPPMATH 20 "-%%&andG6$%\"cG-% %¬G6#%\"bG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 177 "Dans ce problem e il n'y a plus que deux personnes A et B et chacune d'elle est soit u n Pur, soit un Pire. A affirme \" Au moins l'un de nous deux est un Pi re. \"\nQue sont A et B ?" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "regle27:=ditque(a,¬ a &or ¬ b):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "bsimp(regle27);" }}{PARA 11 "" 1 "" {XPPMATH 20 "-%%&andG6$%\"aG-%%¬G6#%\"bG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 76 "Supposons que A dise: \" Je suis un Pire ou B e st un Pur. \" Que sont A et B ?" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "regle28:=ditque(a,¬ a &or b):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "bsimp(regle28);" }}{PARA 11 "" 1 "" {XPPMATH 20 "-%%&andG6$%\"bG%\"aG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 229 "Nous retrouvons nos trois personnages A, B et C et chacu n d'eux est soit un Pur, soit un Pire. A et B font les declarations su ivantes: \nA: Nous sommes tous des Pires.\nB: Un et un seul d'entre-no us est un Pur. \nQue sont A, B, C ?\n" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "regle30:=ditque(a,¬ a &and ¬ b &and ¬ c) &and ditque (b,(a &or b &or c) &and ¬ (a &and b) &a nd ¬ (b &and c) &and ¬ (a &and c)):" }}}{EXCHG {PARA 257 "> " 0 "" {MPLTEXT 1 0 15 "bsimp(regle30);" }}{PARA 11 "" 1 "" {XPPMATH 20 "- %%&andG6%%\"bG-%%¬G6#%\"cG-F'6#%\"aG" }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 37 "Les Purs, les Pires et les Versatiles" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 631 "Des problemes tout aussi fascinants mettent en j eux une troisieme espece de personnages, en plus des Purs qui disent t oujours la verite, et des Pires qui mentent toujours. Ce sont les Vers atiles, qui disent de temps en temps la verite ou qui mentent parfois, au gre de leur fantaisie. Voici quelques enigmes de mon invention con cernant les Purs, les Pires et les Versatiles.\n\nVoici une enigme peu ordinaire: Deux personnes A et B (chacune est soit un Pur, un Pire ou un Versatile) font les declarations suivantes:\nA: B est un Pur.\nB: \+ A n'est pas un Pur.\nProuvez qu'au moins l'une d'elles dit la verite s ans pour autant etre un Pur." }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 279 "pur:=x->x.`_Pur`: pire:=x->x.`_Pire`:\nversat ile:=x->¬ pur(x) &and ¬ pire(x):\nexclu:=x-> ¬(pur(x) &and pi re(x)):\nvar1:=x->(pur(x),pire(x)):\nlesvar:=l->map(var1,l):\nlitanie: =l->&and(op(map(exclu,l))):\nditque:=(x,aff)->(pur(x) &implies aff) &a nd (pire(x)&implies ¬ aff):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "exp39:=litanie([a,b]) &and ditque(a,pur(b)) &and ditque(b,¬ pur(a)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "bsimp(exp39); " }}{PARA 11 "" 1 "" {XPPMATH 20 "-%$&orG6$-%%&andG6%-%%¬G6#%&a_Pur G-F)6#%'a_PireG-F)6#%'b_PireG-F&6%F(-F)6#%&b_PurGF/" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 181 "Voici maintenant ce que disent A et B. A: B es t un Pur. B: A est un Pire. Prouvez qu'une de ces personnes dit la ver ite sans etre un Pur, ou qu'une des deux ment sans etre un Pire. " } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "exp40:= litanie([a,b]) &and ditque(a,pur(b)) &and ditque(b,pire(a)):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "bsimp(exp40);" }}{PARA 11 " " 1 "" {XPPMATH 20 "-%$&orG6$-%%&andG6%-%%¬G6#%&a_PurG-F)6#%'a_Pire G-F)6#%&b_PurG-F&6%F(F/-F)6#%'b_PireG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 305 "Sur l'ile des Purs, des Pires et des Versatiles, les Pir es forment la classe inferieure, les Versatiles la classe moyenne et l es Purs la classe superieure. \n\nDeux personnes A et B (qui sont des \+ Purs, des Pires ou des Versatiles) font les declarations suivantes: \n A: Ma classe est inferieure a celle de B. " }}{PARA 0 "" 0 "" {TEXT -1 153 "B: Ce n'est pas vrai! \n\nPeut-on determiner les classes de A \+ et de B? Peut-on dire de chacune des declarations precedentes qu'elles est vraie ou fausse ? " }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 129 "classeinf:=(x,y) -> distrib((pire(x) &implies (ver satile(y) &or pur(y))) &and (versatile(x) &implies pur(y)) &and (¬ \+ pur(x))):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 101 "exp41:=litani e([a,b]) &and ditque(a,bsimp(classeinf(a,b))) &and ditque(b,¬ bsimp (classeinf(a,b))):" }}}{EXCHG {PARA 257 "> " 0 "" {MPLTEXT 1 0 13 "bsi mp(exp41);" }}{PARA 11 "" 1 "" {XPPMATH 20 "-%%&andG6&-%%¬G6#%&a_Pu rG-F&6#%'a_PireG-F&6#%&b_PurG-F&6#%'b_PireG" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 347 "On a trois personnes A, B et C. Une d'elles est un Pur , une autre un Pire et enfm la troisieme un Versatile. A et B font les declarations suivantes: \n\nA: La classe de B est superieure a celle \+ de C. \nB: La classe de C est superieure a celle de A. \nOn demande al ors a C: \" Qui fait partie de la classe la plus elevee, A ou B ? \". \+ Que repond - il ? \n" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 233 "unique:=bsimp(&or(op(map(l->(pur(l[1]) &and pire(l[2 ]) &and versatile(l[3])),combinat[permute]([a,b,c]))))):\nexp42:=litan ie([a,b,c]) &and bsimp(ditque(a,bsimp(classeinf(c,b)))) &and bsimp(dit que(b,bsimp(classeinf(a,c)))) &and unique:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 13 "bsimp(exp42);" }}{PARA 12 "" 1 "" {XPPMATH 20 "-%$& orG6$-%%&andG6(-%%¬G6#%'a_PireG-F)6#%&b_PurG-F)6#%'b_PireG%'c_PireG %&a_PurG-F)6#%&c_PurG-F&6(F+-F)6#F3F,F/F6-F)6#F2" }}}{EXCHG {PARA 12 " " 1 "" {TEXT -1 0 "" }}}}{MARK "32 1 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }